@google/gemini-cli 0.1.17 → 0.1.18-nightly.250810.c632ec8b

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 (186) hide show
  1. package/README.md +11 -1
  2. package/dist/google-gemini-cli-0.1.18.tgz +0 -0
  3. package/dist/package.json +6 -3
  4. package/dist/src/acp/acpPeer.js +72 -64
  5. package/dist/src/acp/acpPeer.js.map +1 -1
  6. package/dist/src/commands/mcp/add.d.ts +7 -0
  7. package/dist/src/commands/mcp/add.js +155 -0
  8. package/dist/src/commands/mcp/add.js.map +1 -0
  9. package/dist/src/commands/mcp/list.d.ts +8 -0
  10. package/dist/src/commands/mcp/list.js +110 -0
  11. package/dist/src/commands/mcp/list.js.map +1 -0
  12. package/dist/src/commands/mcp/remove.d.ts +7 -0
  13. package/dist/src/commands/mcp/remove.js +44 -0
  14. package/dist/src/commands/mcp/remove.js.map +1 -0
  15. package/dist/src/commands/mcp.d.ts +7 -0
  16. package/dist/src/commands/mcp.js +23 -0
  17. package/dist/src/commands/mcp.js.map +1 -0
  18. package/dist/src/config/config.d.ts +1 -1
  19. package/dist/src/config/config.js +77 -46
  20. package/dist/src/config/config.js.map +1 -1
  21. package/dist/src/config/keyBindings.d.ts +66 -0
  22. package/dist/src/config/keyBindings.js +136 -0
  23. package/dist/src/config/keyBindings.js.map +1 -0
  24. package/dist/src/config/settings.d.ts +8 -1
  25. package/dist/src/config/settings.js +23 -3
  26. package/dist/src/config/settings.js.map +1 -1
  27. package/dist/src/gemini.js +5 -28
  28. package/dist/src/gemini.js.map +1 -1
  29. package/dist/src/generated/git-commit.d.ts +1 -1
  30. package/dist/src/generated/git-commit.js +2 -2
  31. package/dist/src/generated/git-commit.js.map +1 -1
  32. package/dist/src/nonInteractiveCli.js +20 -12
  33. package/dist/src/nonInteractiveCli.js.map +1 -1
  34. package/dist/src/services/BuiltinCommandLoader.js +1 -2
  35. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  36. package/dist/src/ui/App.js +99 -37
  37. package/dist/src/ui/App.js.map +1 -1
  38. package/dist/src/ui/IdeIntegrationNudge.d.ts +13 -0
  39. package/dist/src/ui/IdeIntegrationNudge.js +31 -0
  40. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -0
  41. package/dist/src/ui/commands/chatCommand.js +15 -0
  42. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  43. package/dist/src/ui/commands/directoryCommand.js +21 -1
  44. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  45. package/dist/src/ui/commands/ideCommand.js +103 -35
  46. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  47. package/dist/src/ui/commands/memoryCommand.js +3 -1
  48. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  49. package/dist/src/ui/commands/setupGithubCommand.js +57 -18
  50. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  51. package/dist/src/ui/commands/types.d.ts +13 -1
  52. package/dist/src/ui/commands/types.js.map +1 -1
  53. package/dist/src/ui/components/AsciiArt.d.ts +1 -0
  54. package/dist/src/ui/components/AsciiArt.js +10 -0
  55. package/dist/src/ui/components/AsciiArt.js.map +1 -1
  56. package/dist/src/ui/components/AuthInProgress.js +3 -3
  57. package/dist/src/ui/components/AuthInProgress.js.map +1 -1
  58. package/dist/src/ui/components/ContextSummaryDisplay.js +21 -24
  59. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  60. package/dist/src/ui/components/ContextUsageDisplay.d.ts +9 -0
  61. package/dist/src/ui/components/ContextUsageDisplay.js +14 -0
  62. package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -0
  63. package/dist/src/ui/components/FolderTrustDialog.d.ts +16 -0
  64. package/dist/src/ui/components/FolderTrustDialog.js +38 -0
  65. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -0
  66. package/dist/src/ui/components/Footer.js +14 -5
  67. package/dist/src/ui/components/Footer.js.map +1 -1
  68. package/dist/src/ui/components/Header.d.ts +0 -1
  69. package/dist/src/ui/components/Header.js +13 -5
  70. package/dist/src/ui/components/Header.js.map +1 -1
  71. package/dist/src/ui/components/InputPrompt.d.ts +1 -0
  72. package/dist/src/ui/components/InputPrompt.js +90 -34
  73. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  74. package/dist/src/ui/components/LoadingIndicator.js +10 -5
  75. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  76. package/dist/src/ui/components/SuggestionsDisplay.js +1 -1
  77. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  78. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +29 -9
  79. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  80. package/dist/src/ui/contexts/SettingsContext.d.ts +9 -0
  81. package/dist/src/ui/contexts/SettingsContext.js +15 -0
  82. package/dist/src/ui/contexts/SettingsContext.js.map +1 -0
  83. package/dist/src/ui/hooks/atCommandProcessor.js +7 -4
  84. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  85. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +6 -2
  86. package/dist/src/ui/hooks/slashCommandProcessor.js +30 -3
  87. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  88. package/dist/src/ui/hooks/useAtCompletion.d.ts +23 -0
  89. package/dist/src/ui/hooks/useAtCompletion.js +180 -0
  90. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -0
  91. package/dist/src/ui/hooks/useCommandCompletion.d.ts +6 -1
  92. package/dist/src/ui/hooks/useCommandCompletion.js +95 -383
  93. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  94. package/dist/src/ui/hooks/useFolderTrust.d.ts +11 -0
  95. package/dist/src/ui/hooks/useFolderTrust.js +22 -0
  96. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -0
  97. package/dist/src/ui/hooks/useGeminiStream.d.ts +1 -1
  98. package/dist/src/ui/hooks/useGeminiStream.js +3 -2
  99. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  100. package/dist/src/ui/hooks/usePhraseCycler.js +2 -5
  101. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  102. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +1 -1
  103. package/dist/src/ui/hooks/useReactToolScheduler.js +18 -16
  104. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  105. package/dist/src/ui/hooks/useReverseSearchCompletion.js +4 -2
  106. package/dist/src/ui/hooks/useReverseSearchCompletion.js.map +1 -1
  107. package/dist/src/ui/hooks/useSlashCompletion.d.ts +20 -0
  108. package/dist/src/ui/hooks/useSlashCompletion.js +135 -0
  109. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -0
  110. package/dist/src/ui/hooks/vim.js +13 -4
  111. package/dist/src/ui/hooks/vim.js.map +1 -1
  112. package/dist/src/ui/keyMatchers.d.ts +26 -0
  113. package/dist/src/ui/keyMatchers.js +68 -0
  114. package/dist/src/ui/keyMatchers.js.map +1 -0
  115. package/dist/src/ui/semantic-colors.d.ts +7 -0
  116. package/dist/src/ui/semantic-colors.js +24 -0
  117. package/dist/src/ui/semantic-colors.js.map +1 -0
  118. package/dist/src/ui/themes/ansi-light.js +2 -1
  119. package/dist/src/ui/themes/ansi-light.js.map +1 -1
  120. package/dist/src/ui/themes/ansi.js +2 -1
  121. package/dist/src/ui/themes/ansi.js.map +1 -1
  122. package/dist/src/ui/themes/atom-one-dark.js +2 -1
  123. package/dist/src/ui/themes/atom-one-dark.js.map +1 -1
  124. package/dist/src/ui/themes/ayu-light.js +2 -1
  125. package/dist/src/ui/themes/ayu-light.js.map +1 -1
  126. package/dist/src/ui/themes/ayu.js +2 -1
  127. package/dist/src/ui/themes/ayu.js.map +1 -1
  128. package/dist/src/ui/themes/default-light.js +2 -1
  129. package/dist/src/ui/themes/default-light.js.map +1 -1
  130. package/dist/src/ui/themes/default.js +2 -1
  131. package/dist/src/ui/themes/default.js.map +1 -1
  132. package/dist/src/ui/themes/dracula.js +2 -1
  133. package/dist/src/ui/themes/dracula.js.map +1 -1
  134. package/dist/src/ui/themes/github-dark.js +2 -1
  135. package/dist/src/ui/themes/github-dark.js.map +1 -1
  136. package/dist/src/ui/themes/github-light.js +2 -1
  137. package/dist/src/ui/themes/github-light.js.map +1 -1
  138. package/dist/src/ui/themes/googlecode.js +2 -1
  139. package/dist/src/ui/themes/googlecode.js.map +1 -1
  140. package/dist/src/ui/themes/no-color.js +30 -1
  141. package/dist/src/ui/themes/no-color.js.map +1 -1
  142. package/dist/src/ui/themes/semantic-tokens.d.ts +37 -0
  143. package/dist/src/ui/themes/semantic-tokens.js +94 -0
  144. package/dist/src/ui/themes/semantic-tokens.js.map +1 -0
  145. package/dist/src/ui/themes/shades-of-purple.js +2 -1
  146. package/dist/src/ui/themes/shades-of-purple.js.map +1 -1
  147. package/dist/src/ui/themes/theme-manager.d.ts +6 -0
  148. package/dist/src/ui/themes/theme-manager.js +7 -0
  149. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  150. package/dist/src/ui/themes/theme.d.ts +45 -2
  151. package/dist/src/ui/themes/theme.js +92 -107
  152. package/dist/src/ui/themes/theme.js.map +1 -1
  153. package/dist/src/ui/themes/xcode.js +2 -1
  154. package/dist/src/ui/themes/xcode.js.map +1 -1
  155. package/dist/src/ui/types.d.ts +1 -1
  156. package/dist/src/ui/utils/CodeColorizer.d.ts +2 -1
  157. package/dist/src/ui/utils/CodeColorizer.js +4 -3
  158. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  159. package/dist/src/ui/utils/ConsolePatcher.d.ts +3 -1
  160. package/dist/src/ui/utils/ConsolePatcher.js +18 -8
  161. package/dist/src/ui/utils/ConsolePatcher.js.map +1 -1
  162. package/dist/src/ui/utils/MarkdownDisplay.js +4 -2
  163. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  164. package/dist/src/ui/utils/commandUtils.d.ts +1 -0
  165. package/dist/src/ui/utils/commandUtils.js +22 -1
  166. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  167. package/dist/src/ui/utils/isNarrowWidth.d.ts +6 -0
  168. package/dist/src/ui/utils/isNarrowWidth.js +9 -0
  169. package/dist/src/ui/utils/isNarrowWidth.js.map +1 -0
  170. package/dist/src/utils/cleanup.d.ts +2 -2
  171. package/dist/src/utils/cleanup.js +2 -2
  172. package/dist/src/utils/cleanup.js.map +1 -1
  173. package/dist/src/utils/gitUtils.d.ts +21 -1
  174. package/dist/src/utils/gitUtils.js +70 -3
  175. package/dist/src/utils/gitUtils.js.map +1 -1
  176. package/dist/src/utils/resolvePath.d.ts +6 -0
  177. package/dist/src/utils/resolvePath.js +21 -0
  178. package/dist/src/utils/resolvePath.js.map +1 -0
  179. package/dist/src/utils/sandbox.js +426 -405
  180. package/dist/src/utils/sandbox.js.map +1 -1
  181. package/dist/tsconfig.tsbuildinfo +1 -1
  182. package/package.json +6 -3
  183. package/dist/google-gemini-cli-0.1.16.tgz +0 -0
  184. package/dist/src/ui/components/IDEContextDetailDisplay.d.ts +0 -12
  185. package/dist/src/ui/components/IDEContextDetailDisplay.js +0 -12
  186. package/dist/src/ui/components/IDEContextDetailDisplay.js.map +0 -1
@@ -5,13 +5,14 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
5
5
  * SPDX-License-Identifier: Apache-2.0
6
6
  */
7
7
  import { useCallback, useEffect, useMemo, useState, useRef } from 'react';
8
- import { Box, measureElement, Static, Text, useStdin, useStdout, useInput, } from 'ink';
8
+ import { Box, measureElement, Static, Text, useStdin, useStdout, } from 'ink';
9
9
  import { StreamingState, MessageType } from './types.js';
10
10
  import { useTerminalSize } from './hooks/useTerminalSize.js';
11
11
  import { useGeminiStream } from './hooks/useGeminiStream.js';
12
12
  import { useLoadingIndicator } from './hooks/useLoadingIndicator.js';
13
13
  import { useThemeCommand } from './hooks/useThemeCommand.js';
14
14
  import { useAuthCommand } from './hooks/useAuthCommand.js';
15
+ import { useFolderTrust } from './hooks/useFolderTrust.js';
15
16
  import { useEditorSettings } from './hooks/useEditorSettings.js';
16
17
  import { useSlashCommandProcessor } from './hooks/slashCommandProcessor.js';
17
18
  import { useAutoAcceptIndicator } from './hooks/useAutoAcceptIndicator.js';
@@ -26,19 +27,22 @@ import { ThemeDialog } from './components/ThemeDialog.js';
26
27
  import { AuthDialog } from './components/AuthDialog.js';
27
28
  import { AuthInProgress } from './components/AuthInProgress.js';
28
29
  import { EditorSettingsDialog } from './components/EditorSettingsDialog.js';
30
+ import { FolderTrustDialog } from './components/FolderTrustDialog.js';
29
31
  import { ShellConfirmationDialog } from './components/ShellConfirmationDialog.js';
32
+ import { RadioButtonSelect } from './components/shared/RadioButtonSelect.js';
30
33
  import { Colors } from './colors.js';
31
34
  import { loadHierarchicalGeminiMemory } from '../config/config.js';
35
+ import { SettingScope } from '../config/settings.js';
32
36
  import { Tips } from './components/Tips.js';
33
37
  import { ConsolePatcher } from './utils/ConsolePatcher.js';
34
38
  import { registerCleanup } from '../utils/cleanup.js';
35
39
  import { DetailedMessagesDisplay } from './components/DetailedMessagesDisplay.js';
36
40
  import { HistoryItemDisplay } from './components/HistoryItemDisplay.js';
37
41
  import { ContextSummaryDisplay } from './components/ContextSummaryDisplay.js';
38
- import { IDEContextDetailDisplay } from './components/IDEContextDetailDisplay.js';
39
42
  import { useHistory } from './hooks/useHistoryManager.js';
40
43
  import process from 'node:process';
41
44
  import { getErrorMessage, getAllGeminiMdFilenames, ApprovalMode, isEditorAvailable, FlashFallbackEvent, logFlashFallback, AuthType, ideContext, } from '@google/gemini-cli-core';
45
+ import { IdeIntegrationNudge, } from './IdeIntegrationNudge.js';
42
46
  import { validateAuthMethod } from '../config/auth.js';
43
47
  import { useLogger } from './hooks/useLogger.js';
44
48
  import { StreamingContext } from './contexts/StreamingContext.js';
@@ -49,6 +53,8 @@ import { useBracketedPaste } from './hooks/useBracketedPaste.js';
49
53
  import { useTextBuffer } from './components/shared/text-buffer.js';
50
54
  import { useVimMode, VimModeProvider } from './contexts/VimModeContext.js';
51
55
  import { useVim } from './hooks/vim.js';
56
+ import { useKeypress } from './hooks/useKeypress.js';
57
+ import { keyMatchers, Command } from './keyMatchers.js';
52
58
  import * as fs from 'fs';
53
59
  import { UpdateNotification } from './components/UpdateNotification.js';
54
60
  import { isProQuotaExceededError, isGenericQuotaExceededError, UserTierId, } from '@google/gemini-cli-core';
@@ -58,6 +64,7 @@ import { ShowMoreLines } from './components/ShowMoreLines.js';
58
64
  import { PrivacyNotice } from './privacy/PrivacyNotice.js';
59
65
  import { setUpdateHandler } from '../utils/handleAutoUpdate.js';
60
66
  import { appEvents, AppEvent } from '../utils/events.js';
67
+ import { isNarrowWidth } from './utils/isNarrowWidth.js';
61
68
  const CTRL_EXIT_PROMPT_DURATION_MS = 1000;
62
69
  export const AppWrapper = (props) => (_jsx(SessionStatsProvider, { children: _jsx(VimModeProvider, { settings: props.settings, children: _jsx(App, { ...props }) }) }));
63
70
  const App = ({ config, settings, startupWarnings = [], version }) => {
@@ -67,6 +74,16 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
67
74
  const { stdout } = useStdout();
68
75
  const nightly = version.includes('nightly');
69
76
  const { history, addItem, clearItems, loadHistory } = useHistory();
77
+ const [idePromptAnswered, setIdePromptAnswered] = useState(false);
78
+ const currentIDE = config.getIdeClient().getCurrentIde();
79
+ useEffect(() => {
80
+ registerCleanup(() => config.getIdeClient().disconnect());
81
+ }, [config]);
82
+ const shouldShowIdePrompt = config.getIdeModeFeature() &&
83
+ currentIDE &&
84
+ !config.getIdeMode() &&
85
+ !settings.merged.hasSeenIdeIntegrationNudge &&
86
+ !idePromptAnswered;
70
87
  useEffect(() => {
71
88
  const cleanup = setUpdateHandler(addItem, setUpdateInfo);
72
89
  return cleanup;
@@ -98,7 +115,6 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
98
115
  const [shellModeActive, setShellModeActive] = useState(false);
99
116
  const [showErrorDetails, setShowErrorDetails] = useState(false);
100
117
  const [showToolDescriptions, setShowToolDescriptions] = useState(false);
101
- const [showIDEContextDetail, setShowIDEContextDetail] = useState(false);
102
118
  const [ctrlCPressedOnce, setCtrlCPressedOnce] = useState(false);
103
119
  const [quittingMessages, setQuittingMessages] = useState(null);
104
120
  const ctrlCTimerRef = useRef(null);
@@ -109,6 +125,7 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
109
125
  const [modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError] = useState(false);
110
126
  const [userTier, setUserTier] = useState(undefined);
111
127
  const [ideContextState, setIdeContextState] = useState();
128
+ const [showEscapePrompt, setShowEscapePrompt] = useState(false);
112
129
  const [isProcessing, setIsProcessing] = useState(false);
113
130
  useEffect(() => {
114
131
  const unsubscribe = ideContext.subscribeToIdeContext(setIdeContextState);
@@ -138,11 +155,15 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
138
155
  const openPrivacyNotice = useCallback(() => {
139
156
  setShowPrivacyNotice(true);
140
157
  }, []);
158
+ const handleEscapePromptChange = useCallback((showPrompt) => {
159
+ setShowEscapePrompt(showPrompt);
160
+ }, []);
141
161
  const initialPromptSubmitted = useRef(false);
142
162
  const errorCount = useMemo(() => consoleMessages
143
163
  .filter((msg) => msg.type === 'error')
144
164
  .reduce((total, msg) => total + msg.count, 0), [consoleMessages]);
145
165
  const { isThemeDialogOpen, openThemeDialog, handleThemeSelect, handleThemeHighlight, } = useThemeCommand(settings, setThemeError, addItem);
166
+ const { isFolderTrustDialogOpen, handleFolderTrustSelect } = useFolderTrust(settings);
146
167
  const { isAuthDialogOpen, openAuthDialog, handleAuthSelect, isAuthenticating, cancelAuthentication, } = useAuthCommand(settings, setAuthError, config);
147
168
  useEffect(() => {
148
169
  if (settings.merged.selectedAuthType && !settings.merged.useExternalAuth) {
@@ -175,7 +196,9 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
175
196
  text: 'Refreshing hierarchical memory (GEMINI.md or other context files)...',
176
197
  }, Date.now());
177
198
  try {
178
- const { memoryContent, fileCount } = await loadHierarchicalGeminiMemory(process.cwd(), config.getDebugMode(), config.getFileService(), settings.merged, config.getExtensionContextFilePaths(), settings.merged.memoryImportFormat || 'tree', // Use setting or default to 'tree'
199
+ const { memoryContent, fileCount } = await loadHierarchicalGeminiMemory(process.cwd(), settings.merged.loadMemoryFromIncludeDirectories
200
+ ? config.getWorkspaceContext().getDirectories()
201
+ : [], config.getDebugMode(), config.getFileService(), settings.merged, config.getExtensionContextFilePaths(), settings.merged.memoryImportFormat || 'tree', // Use setting or default to 'tree'
179
202
  config.getFileFilteringOptions());
180
203
  config.setUserMemory(memoryContent);
181
204
  config.setGeminiMdFileCount(fileCount);
@@ -283,11 +306,12 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
283
306
  }, [config, addItem, userTier]);
284
307
  // Terminal and UI setup
285
308
  const { rows: terminalHeight, columns: terminalWidth } = useTerminalSize();
309
+ const isNarrow = isNarrowWidth(terminalWidth);
286
310
  const { stdin, setRawMode } = useStdin();
287
311
  const isInitialMount = useRef(true);
288
312
  const widthFraction = 0.9;
289
313
  const inputWidth = Math.max(20, Math.floor(terminalWidth * widthFraction) - 3);
290
- const suggestionsWidth = Math.max(60, Math.floor(terminalWidth * 0.8));
314
+ const suggestionsWidth = Math.max(20, Math.floor(terminalWidth * 0.8));
291
315
  // Utility callbacks
292
316
  const isValidPath = useCallback((filePath) => {
293
317
  try {
@@ -312,15 +336,7 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
312
336
  }, [openAuthDialog, setAuthError]);
313
337
  // Core hooks and processors
314
338
  const { vimEnabled: vimModeEnabled, vimMode, toggleVimEnabled, } = useVimMode();
315
- const { handleSlashCommand, slashCommands, pendingHistoryItems: pendingSlashCommandHistoryItems, commandContext, shellConfirmationRequest, } = useSlashCommandProcessor(config, settings, addItem, clearItems, loadHistory, refreshStatic, setDebugMessage, openThemeDialog, openAuthDialog, openEditorDialog, toggleCorgiMode, setQuittingMessages, openPrivacyNotice, toggleVimEnabled, setIsProcessing);
316
- const { streamingState, submitQuery, initError, pendingHistoryItems: pendingGeminiHistoryItems, thought, } = useGeminiStream(config.getGeminiClient(), history, addItem, config, setDebugMessage, handleSlashCommand, shellModeActive, getPreferredEditor, onAuthError, performMemoryRefresh, modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError);
317
- // Input handling
318
- const handleFinalSubmit = useCallback((submittedValue) => {
319
- const trimmedValue = submittedValue.trim();
320
- if (trimmedValue.length > 0) {
321
- submitQuery(trimmedValue);
322
- }
323
- }, [submitQuery]);
339
+ const { handleSlashCommand, slashCommands, pendingHistoryItems: pendingSlashCommandHistoryItems, commandContext, shellConfirmationRequest, confirmationRequest, } = useSlashCommandProcessor(config, settings, addItem, clearItems, loadHistory, refreshStatic, setDebugMessage, openThemeDialog, openAuthDialog, openEditorDialog, toggleCorgiMode, setQuittingMessages, openPrivacyNotice, toggleVimEnabled, setIsProcessing, setGeminiMdFileCount);
324
340
  const buffer = useTextBuffer({
325
341
  initialText: '',
326
342
  viewport: { height: 10, width: inputWidth },
@@ -329,6 +345,31 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
329
345
  isValidPath,
330
346
  shellModeActive,
331
347
  });
348
+ const [userMessages, setUserMessages] = useState([]);
349
+ const handleUserCancel = useCallback(() => {
350
+ const lastUserMessage = userMessages.at(-1);
351
+ if (lastUserMessage) {
352
+ buffer.setText(lastUserMessage);
353
+ }
354
+ }, [buffer, userMessages]);
355
+ const { streamingState, submitQuery, initError, pendingHistoryItems: pendingGeminiHistoryItems, thought, } = useGeminiStream(config.getGeminiClient(), history, addItem, config, setDebugMessage, handleSlashCommand, shellModeActive, getPreferredEditor, onAuthError, performMemoryRefresh, modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError, refreshStatic, handleUserCancel);
356
+ // Input handling
357
+ const handleFinalSubmit = useCallback((submittedValue) => {
358
+ const trimmedValue = submittedValue.trim();
359
+ if (trimmedValue.length > 0) {
360
+ submitQuery(trimmedValue);
361
+ }
362
+ }, [submitQuery]);
363
+ const handleIdePromptComplete = useCallback((result) => {
364
+ if (result === 'yes') {
365
+ handleSlashCommand('/ide install');
366
+ settings.setValue(SettingScope.User, 'hasSeenIdeIntegrationNudge', true);
367
+ }
368
+ else if (result === 'dismiss') {
369
+ settings.setValue(SettingScope.User, 'hasSeenIdeIntegrationNudge', true);
370
+ }
371
+ setIdePromptAnswered(true);
372
+ }, [handleSlashCommand, settings]);
332
373
  const { handleInput: vimHandleInput } = useVim(buffer, handleFinalSubmit);
333
374
  const pendingHistoryItems = [...pendingSlashCommandHistoryItems];
334
375
  pendingHistoryItems.push(...pendingGeminiHistoryItems);
@@ -350,20 +391,16 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
350
391
  }, CTRL_EXIT_PROMPT_DURATION_MS);
351
392
  }
352
393
  }, [handleSlashCommand]);
353
- useInput((input, key) => {
394
+ const handleGlobalKeypress = useCallback((key) => {
354
395
  let enteringConstrainHeightMode = false;
355
396
  if (!constrainHeight) {
356
- // Automatically re-enter constrain height mode if the user types
357
- // anything. When constrainHeight==false, the user will experience
358
- // significant flickering so it is best to disable it immediately when
359
- // the user starts interacting with the app.
360
397
  enteringConstrainHeightMode = true;
361
398
  setConstrainHeight(true);
362
399
  }
363
- if (key.ctrl && input === 'o') {
400
+ if (keyMatchers[Command.SHOW_ERROR_DETAILS](key)) {
364
401
  setShowErrorDetails((prev) => !prev);
365
402
  }
366
- else if (key.ctrl && input === 't') {
403
+ else if (keyMatchers[Command.TOGGLE_TOOL_DESCRIPTIONS](key)) {
367
404
  const newValue = !showToolDescriptions;
368
405
  setShowToolDescriptions(newValue);
369
406
  const mcpServers = config.getMcpServers();
@@ -371,33 +408,55 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
371
408
  handleSlashCommand(newValue ? '/mcp desc' : '/mcp nodesc');
372
409
  }
373
410
  }
374
- else if (key.ctrl &&
375
- input === 'e' &&
411
+ else if (keyMatchers[Command.TOGGLE_IDE_CONTEXT_DETAIL](key) &&
376
412
  config.getIdeMode() &&
377
413
  ideContextState) {
378
- setShowIDEContextDetail((prev) => !prev);
414
+ // Show IDE status when in IDE mode and context is available.
415
+ handleSlashCommand('/ide status');
379
416
  }
380
- else if (key.ctrl && (input === 'c' || input === 'C')) {
417
+ else if (keyMatchers[Command.QUIT](key)) {
418
+ // When authenticating, let AuthInProgress component handle Ctrl+C.
419
+ if (isAuthenticating) {
420
+ return;
421
+ }
381
422
  handleExit(ctrlCPressedOnce, setCtrlCPressedOnce, ctrlCTimerRef);
382
423
  }
383
- else if (key.ctrl && (input === 'd' || input === 'D')) {
424
+ else if (keyMatchers[Command.EXIT](key)) {
384
425
  if (buffer.text.length > 0) {
385
- // Do nothing if there is text in the input.
386
426
  return;
387
427
  }
388
428
  handleExit(ctrlDPressedOnce, setCtrlDPressedOnce, ctrlDTimerRef);
389
429
  }
390
- else if (key.ctrl && input === 's' && !enteringConstrainHeightMode) {
430
+ else if (keyMatchers[Command.SHOW_MORE_LINES](key) &&
431
+ !enteringConstrainHeightMode) {
391
432
  setConstrainHeight(false);
392
433
  }
393
- });
434
+ }, [
435
+ constrainHeight,
436
+ setConstrainHeight,
437
+ setShowErrorDetails,
438
+ showToolDescriptions,
439
+ setShowToolDescriptions,
440
+ config,
441
+ ideContextState,
442
+ handleExit,
443
+ ctrlCPressedOnce,
444
+ setCtrlCPressedOnce,
445
+ ctrlCTimerRef,
446
+ buffer.text.length,
447
+ ctrlDPressedOnce,
448
+ setCtrlDPressedOnce,
449
+ ctrlDTimerRef,
450
+ handleSlashCommand,
451
+ isAuthenticating,
452
+ ]);
453
+ useKeypress(handleGlobalKeypress, { isActive: true });
394
454
  useEffect(() => {
395
455
  if (config) {
396
456
  setGeminiMdFileCount(config.getGeminiMdFileCount());
397
457
  }
398
- }, [config]);
458
+ }, [config, config.getGeminiMdFileCount]);
399
459
  const logger = useLogger();
400
- const [userMessages, setUserMessages] = useState([]);
401
460
  useEffect(() => {
402
461
  const fetchUserMessages = async () => {
403
462
  const pastMessagesRaw = (await logger?.getPreviousUserMessages()) || []; // Newest first
@@ -515,12 +574,17 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
515
574
  ? " Press 'i' for INSERT mode and 'Esc' for NORMAL mode."
516
575
  : ' Type your message or @path/to/file';
517
576
  return (_jsx(StreamingContext.Provider, { value: streamingState, children: _jsxs(Box, { flexDirection: "column", width: "90%", children: [_jsx(Static, { items: [
518
- _jsxs(Box, { flexDirection: "column", children: [!settings.merged.hideBanner && (_jsx(Header, { terminalWidth: terminalWidth, version: version, nightly: nightly })), !settings.merged.hideTips && _jsx(Tips, { config: config })] }, "header"),
577
+ _jsxs(Box, { flexDirection: "column", children: [!settings.merged.hideBanner && (_jsx(Header, { version: version, nightly: nightly })), !settings.merged.hideTips && _jsx(Tips, { config: config })] }, "header"),
519
578
  ...history.map((h) => (_jsx(HistoryItemDisplay, { terminalWidth: mainAreaWidth, availableTerminalHeight: staticAreaMaxItemHeight, item: h, isPending: false, config: config, commands: slashCommands }, h.id))),
520
579
  ], children: (item) => item }, staticKey), _jsx(OverflowProvider, { children: _jsxs(Box, { ref: pendingHistoryItemRef, flexDirection: "column", children: [pendingHistoryItems.map((item, i) => (_jsx(HistoryItemDisplay, { availableTerminalHeight: constrainHeight ? availableTerminalHeight : undefined, terminalWidth: mainAreaWidth,
521
580
  // TODO(taehykim): It seems like references to ids aren't necessary in
522
581
  // HistoryItemDisplay. Refactor later. Use a fake id for now.
523
- item: { ...item, id: 0 }, isPending: true, config: config, isFocused: !isEditorDialogOpen }, i))), _jsx(ShowMoreLines, { constrainHeight: constrainHeight })] }) }), _jsxs(Box, { flexDirection: "column", ref: mainControlsRef, children: [updateInfo && _jsx(UpdateNotification, { message: updateInfo.message }), startupWarnings.length > 0 && (_jsx(Box, { borderStyle: "round", borderColor: Colors.AccentYellow, paddingX: 1, marginY: 1, flexDirection: "column", children: startupWarnings.map((warning, index) => (_jsx(Text, { color: Colors.AccentYellow, children: warning }, index))) })), shellConfirmationRequest ? (_jsx(ShellConfirmationDialog, { request: shellConfirmationRequest })) : isThemeDialogOpen ? (_jsxs(Box, { flexDirection: "column", children: [themeError && (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: Colors.AccentRed, children: themeError }) })), _jsx(ThemeDialog, { onSelect: handleThemeSelect, onHighlight: handleThemeHighlight, settings: settings, availableTerminalHeight: constrainHeight
582
+ item: { ...item, id: 0 }, isPending: true, config: config, isFocused: !isEditorDialogOpen }, i))), _jsx(ShowMoreLines, { constrainHeight: constrainHeight })] }) }), _jsxs(Box, { flexDirection: "column", ref: mainControlsRef, children: [updateInfo && _jsx(UpdateNotification, { message: updateInfo.message }), startupWarnings.length > 0 && (_jsx(Box, { borderStyle: "round", borderColor: Colors.AccentYellow, paddingX: 1, marginY: 1, flexDirection: "column", children: startupWarnings.map((warning, index) => (_jsx(Text, { color: Colors.AccentYellow, children: warning }, index))) })), shouldShowIdePrompt ? (_jsx(IdeIntegrationNudge, { question: "Do you want to connect your VS Code editor to Gemini CLI?", description: "If you select Yes, we'll install an extension that allows the CLI to access your open files and display diffs directly in VS Code.", onComplete: handleIdePromptComplete })) : isFolderTrustDialogOpen ? (_jsx(FolderTrustDialog, { onSelect: handleFolderTrustSelect })) : shellConfirmationRequest ? (_jsx(ShellConfirmationDialog, { request: shellConfirmationRequest })) : confirmationRequest ? (_jsxs(Box, { flexDirection: "column", children: [confirmationRequest.prompt, _jsx(Box, { paddingY: 1, children: _jsx(RadioButtonSelect, { items: [
583
+ { label: 'Yes', value: true },
584
+ { label: 'No', value: false },
585
+ ], onSelect: (value) => {
586
+ confirmationRequest.onConfirm(value);
587
+ } }) })] })) : isThemeDialogOpen ? (_jsxs(Box, { flexDirection: "column", children: [themeError && (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: Colors.AccentRed, children: themeError }) })), _jsx(ThemeDialog, { onSelect: handleThemeSelect, onHighlight: handleThemeHighlight, settings: settings, availableTerminalHeight: constrainHeight
524
588
  ? terminalHeight - staticExtraHeight
525
589
  : undefined, terminalWidth: mainAreaWidth })] })) : isAuthenticating ? (_jsxs(_Fragment, { children: [_jsx(AuthInProgress, { onTimeout: () => {
526
590
  setAuthError('Authentication timed out. Please try again.');
@@ -531,9 +595,7 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
531
595
  ? undefined
532
596
  : thought, currentLoadingPhrase: config.getAccessibility()?.disableLoadingPhrases
533
597
  ? undefined
534
- : currentLoadingPhrase, elapsedTime: elapsedTime }), _jsxs(Box, { marginTop: 1, display: "flex", justifyContent: "space-between", width: "100%", children: [_jsxs(Box, { children: [process.env.GEMINI_SYSTEM_MD && (_jsx(Text, { color: Colors.AccentRed, children: "|\u2310\u25A0_\u25A0| " })), ctrlCPressedOnce ? (_jsx(Text, { color: Colors.AccentYellow, children: "Press Ctrl+C again to exit." })) : ctrlDPressedOnce ? (_jsx(Text, { color: Colors.AccentYellow, children: "Press Ctrl+D again to exit." })) : (_jsx(ContextSummaryDisplay, { ideContext: ideContextState, geminiMdFileCount: geminiMdFileCount, contextFileNames: contextFileNames, mcpServers: config.getMcpServers(), blockedMcpServers: config.getBlockedMcpServers(), showToolDescriptions: showToolDescriptions }))] }), _jsxs(Box, { children: [showAutoAcceptIndicator !== ApprovalMode.DEFAULT &&
535
- !shellModeActive && (_jsx(AutoAcceptIndicator, { approvalMode: showAutoAcceptIndicator })), shellModeActive && _jsx(ShellModeIndicator, {})] })] }), showIDEContextDetail && (_jsx(IDEContextDetailDisplay, { ideContext: ideContextState, detectedIdeDisplay: config
536
- .getIdeClient()
537
- .getDetectedIdeDisplayName() })), showErrorDetails && (_jsx(OverflowProvider, { children: _jsxs(Box, { flexDirection: "column", children: [_jsx(DetailedMessagesDisplay, { messages: filteredConsoleMessages, maxHeight: constrainHeight ? debugConsoleMaxHeight : undefined, width: inputWidth }), _jsx(ShowMoreLines, { constrainHeight: constrainHeight })] }) })), isInputActive && (_jsx(InputPrompt, { buffer: buffer, inputWidth: inputWidth, suggestionsWidth: suggestionsWidth, onSubmit: handleFinalSubmit, userMessages: userMessages, onClearScreen: handleClearScreen, config: config, slashCommands: slashCommands, commandContext: commandContext, shellModeActive: shellModeActive, setShellModeActive: setShellModeActive, focus: isFocused, vimHandleInput: vimHandleInput, placeholder: placeholder }))] })), initError && streamingState !== StreamingState.Responding && (_jsx(Box, { borderStyle: "round", borderColor: Colors.AccentRed, paddingX: 1, marginBottom: 1, children: history.find((item) => item.type === 'error' && item.text?.includes(initError))?.text ? (_jsx(Text, { color: Colors.AccentRed, children: history.find((item) => item.type === 'error' && item.text?.includes(initError))?.text })) : (_jsxs(_Fragment, { children: [_jsxs(Text, { color: Colors.AccentRed, children: ["Initialization Error: ", initError] }), _jsxs(Text, { color: Colors.AccentRed, children: [' ', "Please check API key and configuration."] })] })) })), _jsx(Footer, { model: currentModel, targetDir: config.getTargetDir(), debugMode: config.getDebugMode(), branchName: branchName, debugMessage: debugMessage, corgiMode: corgiMode, errorCount: errorCount, showErrorDetails: showErrorDetails, showMemoryUsage: config.getDebugMode() || config.getShowMemoryUsage(), promptTokenCount: sessionStats.lastPromptTokenCount, nightly: nightly, vimMode: vimModeEnabled ? vimMode : undefined })] })] }) }));
598
+ : currentLoadingPhrase, elapsedTime: elapsedTime }), _jsxs(Box, { marginTop: 1, justifyContent: "space-between", width: "100%", flexDirection: isNarrow ? 'column' : 'row', alignItems: isNarrow ? 'flex-start' : 'center', children: [_jsxs(Box, { children: [process.env.GEMINI_SYSTEM_MD && (_jsx(Text, { color: Colors.AccentRed, children: "|\u2310\u25A0_\u25A0| " })), ctrlCPressedOnce ? (_jsx(Text, { color: Colors.AccentYellow, children: "Press Ctrl+C again to exit." })) : ctrlDPressedOnce ? (_jsx(Text, { color: Colors.AccentYellow, children: "Press Ctrl+D again to exit." })) : showEscapePrompt ? (_jsx(Text, { color: Colors.Gray, children: "Press Esc again to clear." })) : (_jsx(ContextSummaryDisplay, { ideContext: ideContextState, geminiMdFileCount: geminiMdFileCount, contextFileNames: contextFileNames, mcpServers: config.getMcpServers(), blockedMcpServers: config.getBlockedMcpServers(), showToolDescriptions: showToolDescriptions }))] }), _jsxs(Box, { paddingTop: isNarrow ? 1 : 0, children: [showAutoAcceptIndicator !== ApprovalMode.DEFAULT &&
599
+ !shellModeActive && (_jsx(AutoAcceptIndicator, { approvalMode: showAutoAcceptIndicator })), shellModeActive && _jsx(ShellModeIndicator, {})] })] }), showErrorDetails && (_jsx(OverflowProvider, { children: _jsxs(Box, { flexDirection: "column", children: [_jsx(DetailedMessagesDisplay, { messages: filteredConsoleMessages, maxHeight: constrainHeight ? debugConsoleMaxHeight : undefined, width: inputWidth }), _jsx(ShowMoreLines, { constrainHeight: constrainHeight })] }) })), isInputActive && (_jsx(InputPrompt, { buffer: buffer, inputWidth: inputWidth, suggestionsWidth: suggestionsWidth, onSubmit: handleFinalSubmit, userMessages: userMessages, onClearScreen: handleClearScreen, config: config, slashCommands: slashCommands, commandContext: commandContext, shellModeActive: shellModeActive, setShellModeActive: setShellModeActive, onEscapePromptChange: handleEscapePromptChange, focus: isFocused, vimHandleInput: vimHandleInput, placeholder: placeholder }))] })), initError && streamingState !== StreamingState.Responding && (_jsx(Box, { borderStyle: "round", borderColor: Colors.AccentRed, paddingX: 1, marginBottom: 1, children: history.find((item) => item.type === 'error' && item.text?.includes(initError))?.text ? (_jsx(Text, { color: Colors.AccentRed, children: history.find((item) => item.type === 'error' && item.text?.includes(initError))?.text })) : (_jsxs(_Fragment, { children: [_jsxs(Text, { color: Colors.AccentRed, children: ["Initialization Error: ", initError] }), _jsxs(Text, { color: Colors.AccentRed, children: [' ', "Please check API key and configuration."] })] })) })), _jsx(Footer, { model: currentModel, targetDir: config.getTargetDir(), debugMode: config.getDebugMode(), branchName: branchName, debugMessage: debugMessage, corgiMode: corgiMode, errorCount: errorCount, showErrorDetails: showErrorDetails, showMemoryUsage: config.getDebugMode() || config.getShowMemoryUsage(), promptTokenCount: sessionStats.lastPromptTokenCount, nightly: nightly, vimMode: vimModeEnabled ? vimMode : undefined })] })] }) }));
538
600
  };
539
601
  //# sourceMappingURL=App.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/ui/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/ui/App.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export type IdeIntegrationNudgeResult = 'yes' | 'no' | 'dismiss';
7
+ interface IdeIntegrationNudgeProps {
8
+ question: string;
9
+ description?: string;
10
+ onComplete: (result: IdeIntegrationNudgeResult) => void;
11
+ }
12
+ export declare function IdeIntegrationNudge({ question, description, onComplete, }: IdeIntegrationNudgeProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { Box, Text, useInput } from 'ink';
8
+ import { RadioButtonSelect, } from './components/shared/RadioButtonSelect.js';
9
+ export function IdeIntegrationNudge({ question, description, onComplete, }) {
10
+ useInput((_input, key) => {
11
+ if (key.escape) {
12
+ onComplete('no');
13
+ }
14
+ });
15
+ const OPTIONS = [
16
+ {
17
+ label: 'Yes',
18
+ value: 'yes',
19
+ },
20
+ {
21
+ label: 'No (esc)',
22
+ value: 'no',
23
+ },
24
+ {
25
+ label: "No, don't ask again",
26
+ value: 'dismiss',
27
+ },
28
+ ];
29
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "yellow", padding: 1, width: "100%", marginLeft: 1, children: [_jsxs(Box, { marginBottom: 1, flexDirection: "column", children: [_jsxs(Text, { children: [_jsx(Text, { color: "yellow", children: '> ' }), question] }), description && _jsx(Text, { dimColor: true, children: description })] }), _jsx(RadioButtonSelect, { items: OPTIONS, onSelect: onComplete, isFocused: true })] }));
30
+ }
31
+ //# sourceMappingURL=IdeIntegrationNudge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdeIntegrationNudge.js","sourceRoot":"","sources":["../../../src/ui/IdeIntegrationNudge.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EACL,iBAAiB,GAElB,MAAM,0CAA0C,CAAC;AAUlD,MAAM,UAAU,mBAAmB,CAAC,EAClC,QAAQ,EACR,WAAW,EACX,UAAU,GACe;IACzB,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACvB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAsD;QACjE;YACE,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;SACb;QACD;YACE,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,IAAI;SACZ;QACD;YACE,KAAK,EAAE,qBAAqB;YAC5B,KAAK,EAAE,SAAS;SACjB;KACF,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,QAAQ,EACpB,OAAO,EAAE,CAAC,EACV,KAAK,EAAC,MAAM,EACZ,UAAU,EAAE,CAAC,aAEb,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aAC1C,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,IAAI,GAAQ,EACjC,QAAQ,IACJ,EACN,WAAW,IAAI,KAAC,IAAI,IAAC,QAAQ,kBAAE,WAAW,GAAQ,IAC/C,EACN,KAAC,iBAAiB,IAChB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,IAAI,GACf,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -4,6 +4,9 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import * as fsPromises from 'fs/promises';
7
+ import React from 'react';
8
+ import { Text } from 'ink';
9
+ import { Colors } from '../colors.js';
7
10
  import { CommandKind, } from './types.js';
8
11
  import path from 'path';
9
12
  import { MessageType } from '../types.js';
@@ -81,6 +84,18 @@ const saveCommand = {
81
84
  }
82
85
  const { logger, config } = context.services;
83
86
  await logger.initialize();
87
+ if (!context.overwriteConfirmed) {
88
+ const exists = await logger.checkpointExists(tag);
89
+ if (exists) {
90
+ return {
91
+ type: 'confirm_action',
92
+ prompt: React.createElement(Text, null, 'A checkpoint with the tag ', React.createElement(Text, { color: Colors.AccentPurple }, tag), ' already exists. Do you want to overwrite it?'),
93
+ originalInvocation: {
94
+ raw: context.invocation?.raw || `/chat save ${tag}`,
95
+ },
96
+ };
97
+ }
98
+ }
84
99
  const chat = await config?.getGeminiClient()?.getChat();
85
100
  if (!chat) {
86
101
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"chatCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/chatCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/chatCommand.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { CommandKind } from './types.js';
7
7
  import { MessageType } from '../types.js';
8
8
  import * as os from 'os';
9
9
  import * as path from 'path';
10
+ import { loadServerHierarchicalMemory } from '@google/gemini-cli-core';
10
11
  export function expandHomeDir(p) {
11
12
  if (!p) {
12
13
  return '';
@@ -15,7 +16,7 @@ export function expandHomeDir(p) {
15
16
  if (p.toLowerCase().startsWith('%userprofile%')) {
16
17
  expandedPath = os.homedir() + p.substring('%userprofile%'.length);
17
18
  }
18
- else if (p.startsWith('~')) {
19
+ else if (p === '~' || p.startsWith('~/')) {
19
20
  expandedPath = os.homedir() + p.substring(1);
20
21
  }
21
22
  return path.normalize(expandedPath);
@@ -71,6 +72,25 @@ export const directoryCommand = {
71
72
  errors.push(`Error adding '${pathToAdd.trim()}': ${error.message}`);
72
73
  }
73
74
  }
75
+ try {
76
+ if (config.shouldLoadMemoryFromIncludeDirectories()) {
77
+ const { memoryContent, fileCount } = await loadServerHierarchicalMemory(config.getWorkingDir(), [
78
+ ...config.getWorkspaceContext().getDirectories(),
79
+ ...pathsToAdd,
80
+ ], config.getDebugMode(), config.getFileService(), config.getExtensionContextFilePaths(), context.services.settings.merged.memoryImportFormat || 'tree', // Use setting or default to 'tree'
81
+ config.getFileFilteringOptions(), context.services.settings.merged.memoryDiscoveryMaxDirs);
82
+ config.setUserMemory(memoryContent);
83
+ config.setGeminiMdFileCount(fileCount);
84
+ context.ui.setGeminiMdFileCount(fileCount);
85
+ }
86
+ addItem({
87
+ type: MessageType.INFO,
88
+ text: `Successfully added GEMINI.md files from the following directories if there are:\n- ${added.join('\n- ')}`,
89
+ }, Date.now());
90
+ }
91
+ catch (error) {
92
+ errors.push(`Error refreshing memory: ${error.message}`);
93
+ }
74
94
  if (added.length > 0) {
75
95
  const gemini = config.getGeminiClient();
76
96
  if (gemini) {