@google/gemini-cli 0.1.10-dev.15 → 0.1.11-nightly.250713.4442e893

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 (170) hide show
  1. package/README.md +16 -2
  2. package/dist/google-gemini-cli-0.1.11.tgz +0 -0
  3. package/dist/package.json +7 -8
  4. package/dist/src/config/auth.js +6 -5
  5. package/dist/src/config/auth.js.map +1 -1
  6. package/dist/src/config/config.d.ts +23 -2
  7. package/dist/src/config/config.js +78 -54
  8. package/dist/src/config/config.js.map +1 -1
  9. package/dist/src/config/extension.d.ts +1 -0
  10. package/dist/src/config/extension.js +34 -6
  11. package/dist/src/config/extension.js.map +1 -1
  12. package/dist/src/config/sandboxConfig.d.ts +1 -1
  13. package/dist/src/config/sandboxConfig.js +1 -1
  14. package/dist/src/config/sandboxConfig.js.map +1 -1
  15. package/dist/src/config/settings.d.ts +8 -2
  16. package/dist/src/config/settings.js +101 -3
  17. package/dist/src/config/settings.js.map +1 -1
  18. package/dist/src/gemini.js +53 -29
  19. package/dist/src/gemini.js.map +1 -1
  20. package/dist/src/generated/git-commit.d.ts +1 -1
  21. package/dist/src/generated/git-commit.js +1 -1
  22. package/dist/src/nonInteractiveCli.d.ts +1 -1
  23. package/dist/src/nonInteractiveCli.js +12 -3
  24. package/dist/src/nonInteractiveCli.js.map +1 -1
  25. package/dist/src/services/CommandService.d.ts +13 -0
  26. package/dist/src/services/CommandService.js +32 -0
  27. package/dist/src/services/CommandService.js.map +1 -0
  28. package/dist/src/ui/App.d.ts +1 -0
  29. package/dist/src/ui/App.js +138 -26
  30. package/dist/src/ui/App.js.map +1 -1
  31. package/dist/src/ui/commands/clearCommand.d.ts +7 -0
  32. package/dist/src/ui/commands/clearCommand.js +15 -0
  33. package/dist/src/ui/commands/clearCommand.js.map +1 -0
  34. package/dist/src/ui/commands/helpCommand.d.ts +7 -0
  35. package/dist/src/ui/commands/helpCommand.js +18 -0
  36. package/dist/src/ui/commands/helpCommand.js.map +1 -0
  37. package/dist/src/ui/commands/memoryCommand.d.ts +7 -0
  38. package/dist/src/ui/commands/memoryCommand.js +81 -0
  39. package/dist/src/ui/commands/memoryCommand.js.map +1 -0
  40. package/dist/src/ui/commands/themeCommand.d.ts +7 -0
  41. package/dist/src/ui/commands/themeCommand.js +14 -0
  42. package/dist/src/ui/commands/themeCommand.js.map +1 -0
  43. package/dist/src/ui/commands/types.d.ts +63 -0
  44. package/dist/src/{gemini.test.d.ts → ui/commands/types.js} +1 -0
  45. package/dist/src/ui/commands/types.js.map +1 -0
  46. package/dist/src/ui/components/AuthDialog.js +36 -8
  47. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  48. package/dist/src/ui/components/Footer.d.ts +1 -0
  49. package/dist/src/ui/components/Footer.js +3 -2
  50. package/dist/src/ui/components/Footer.js.map +1 -1
  51. package/dist/src/ui/components/Header.d.ts +2 -0
  52. package/dist/src/ui/components/Header.js +3 -3
  53. package/dist/src/ui/components/Header.js.map +1 -1
  54. package/dist/src/ui/components/Help.d.ts +1 -1
  55. package/dist/src/ui/components/Help.js +3 -2
  56. package/dist/src/ui/components/Help.js.map +1 -1
  57. package/dist/src/ui/components/InputPrompt.d.ts +2 -1
  58. package/dist/src/ui/components/InputPrompt.js +153 -155
  59. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  60. package/dist/src/ui/components/LoadingIndicator.js +2 -1
  61. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  62. package/dist/src/ui/components/ThemeDialog.js +18 -17
  63. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  64. package/dist/src/ui/components/messages/CompressionMessage.js +1 -1
  65. package/dist/src/ui/components/shared/MaxSizedBox.js +1 -1
  66. package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
  67. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +10 -7
  68. package/dist/src/ui/components/shared/RadioButtonSelect.js +57 -40
  69. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  70. package/dist/src/ui/components/shared/text-buffer.d.ts +2 -1
  71. package/dist/src/ui/components/shared/text-buffer.js +3 -3
  72. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  73. package/dist/src/ui/contexts/SessionContext.d.ts +4 -1
  74. package/dist/src/ui/contexts/SessionContext.js +12 -2
  75. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  76. package/dist/src/ui/hooks/atCommandProcessor.js +5 -7
  77. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  78. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +6 -10
  79. package/dist/src/ui/hooks/slashCommandProcessor.js +221 -129
  80. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  81. package/dist/src/ui/hooks/useAuthCommand.js +12 -2
  82. package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
  83. package/dist/src/ui/hooks/useCompletion.d.ts +2 -2
  84. package/dist/src/ui/hooks/useCompletion.js +106 -56
  85. package/dist/src/ui/hooks/useCompletion.js.map +1 -1
  86. package/dist/src/ui/hooks/useGeminiStream.d.ts +3 -3
  87. package/dist/src/ui/hooks/useGeminiStream.js +54 -28
  88. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  89. package/dist/src/ui/hooks/useKeypress.js +74 -4
  90. package/dist/src/ui/hooks/useKeypress.js.map +1 -1
  91. package/dist/src/ui/types.d.ts +10 -0
  92. package/dist/src/ui/utils/ConsolePatcher.d.ts +23 -0
  93. package/dist/src/ui/utils/ConsolePatcher.js +42 -0
  94. package/dist/src/ui/utils/ConsolePatcher.js.map +1 -0
  95. package/dist/src/ui/utils/InlineMarkdownRenderer.d.ts +16 -0
  96. package/dist/src/ui/utils/InlineMarkdownRenderer.js +104 -0
  97. package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -0
  98. package/dist/src/ui/utils/MarkdownDisplay.js +30 -101
  99. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  100. package/dist/src/ui/utils/TableRenderer.js +50 -32
  101. package/dist/src/ui/utils/TableRenderer.js.map +1 -1
  102. package/dist/src/ui/utils/clipboardUtils.d.ts +22 -0
  103. package/dist/src/ui/utils/clipboardUtils.js +127 -0
  104. package/dist/src/ui/utils/clipboardUtils.js.map +1 -0
  105. package/dist/src/ui/utils/errorParsing.d.ts +2 -10
  106. package/dist/src/ui/utils/errorParsing.js +34 -23
  107. package/dist/src/ui/utils/errorParsing.js.map +1 -1
  108. package/dist/src/utils/cleanup.d.ts +2 -0
  109. package/dist/src/utils/cleanup.js +15 -0
  110. package/dist/src/utils/cleanup.js.map +1 -1
  111. package/dist/src/utils/sandbox-macos-permissive-proxied.sb +1 -1
  112. package/dist/src/utils/sandbox-macos-restrictive-proxied.sb +1 -1
  113. package/dist/src/utils/userStartupWarnings.d.ts +6 -0
  114. package/dist/src/utils/userStartupWarnings.js +33 -0
  115. package/dist/src/utils/userStartupWarnings.js.map +1 -0
  116. package/dist/tsconfig.tsbuildinfo +1 -1
  117. package/package.json +8 -9
  118. package/dist/src/gemini.test.js +0 -122
  119. package/dist/src/gemini.test.js.map +0 -1
  120. package/dist/src/ui/App.test.d.ts +0 -6
  121. package/dist/src/ui/App.test.js +0 -299
  122. package/dist/src/ui/App.test.js.map +0 -1
  123. package/dist/src/ui/components/AuthDialog.test.d.ts +0 -6
  124. package/dist/src/ui/components/AuthDialog.test.js +0 -69
  125. package/dist/src/ui/components/AuthDialog.test.js.map +0 -1
  126. package/dist/src/ui/components/ConsolePatcher.d.ts +0 -12
  127. package/dist/src/ui/components/ConsolePatcher.js +0 -40
  128. package/dist/src/ui/components/ConsolePatcher.js.map +0 -1
  129. package/dist/src/ui/components/HistoryItemDisplay.test.d.ts +0 -6
  130. package/dist/src/ui/components/HistoryItemDisplay.test.js +0 -81
  131. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +0 -1
  132. package/dist/src/ui/components/InputPrompt.test.d.ts +0 -6
  133. package/dist/src/ui/components/InputPrompt.test.js +0 -154
  134. package/dist/src/ui/components/InputPrompt.test.js.map +0 -1
  135. package/dist/src/ui/components/LoadingIndicator.test.d.ts +0 -6
  136. package/dist/src/ui/components/LoadingIndicator.test.js +0 -141
  137. package/dist/src/ui/components/LoadingIndicator.test.js.map +0 -1
  138. package/dist/src/ui/components/ModelStatsDisplay.test.d.ts +0 -6
  139. package/dist/src/ui/components/ModelStatsDisplay.test.js +0 -217
  140. package/dist/src/ui/components/ModelStatsDisplay.test.js.map +0 -1
  141. package/dist/src/ui/components/SessionSummaryDisplay.test.d.ts +0 -6
  142. package/dist/src/ui/components/SessionSummaryDisplay.test.js +0 -60
  143. package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +0 -1
  144. package/dist/src/ui/components/StatsDisplay.test.d.ts +0 -6
  145. package/dist/src/ui/components/StatsDisplay.test.js +0 -275
  146. package/dist/src/ui/components/StatsDisplay.test.js.map +0 -1
  147. package/dist/src/ui/components/ToolStatsDisplay.test.d.ts +0 -6
  148. package/dist/src/ui/components/ToolStatsDisplay.test.js +0 -160
  149. package/dist/src/ui/components/ToolStatsDisplay.test.js.map +0 -1
  150. package/dist/src/ui/components/messages/DiffRenderer.test.d.ts +0 -6
  151. package/dist/src/ui/components/messages/DiffRenderer.test.js +0 -239
  152. package/dist/src/ui/components/messages/DiffRenderer.test.js.map +0 -1
  153. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.d.ts +0 -6
  154. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +0 -37
  155. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +0 -1
  156. package/dist/src/ui/components/messages/ToolMessage.test.d.ts +0 -6
  157. package/dist/src/ui/components/messages/ToolMessage.test.js +0 -116
  158. package/dist/src/ui/components/messages/ToolMessage.test.js.map +0 -1
  159. package/dist/src/ui/components/shared/MaxSizedBox.test.d.ts +0 -6
  160. package/dist/src/ui/components/shared/MaxSizedBox.test.js +0 -134
  161. package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +0 -1
  162. package/dist/src/ui/contexts/SessionContext.test.d.ts +0 -6
  163. package/dist/src/ui/contexts/SessionContext.test.js +0 -96
  164. package/dist/src/ui/contexts/SessionContext.test.js.map +0 -1
  165. package/dist/src/ui/hooks/useGeminiStream.test.d.ts +0 -6
  166. package/dist/src/ui/hooks/useGeminiStream.test.js +0 -775
  167. package/dist/src/ui/hooks/useGeminiStream.test.js.map +0 -1
  168. package/dist/src/ui/utils/MarkdownDisplay.test.d.ts +0 -6
  169. package/dist/src/ui/utils/MarkdownDisplay.test.js +0 -176
  170. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +0 -1
@@ -30,13 +30,14 @@ import { Colors } from './colors.js';
30
30
  import { Help } from './components/Help.js';
31
31
  import { loadHierarchicalGeminiMemory } from '../config/config.js';
32
32
  import { Tips } from './components/Tips.js';
33
- import { useConsolePatcher } from './components/ConsolePatcher.js';
33
+ import { ConsolePatcher } from './utils/ConsolePatcher.js';
34
+ import { registerCleanup } from '../utils/cleanup.js';
34
35
  import { DetailedMessagesDisplay } from './components/DetailedMessagesDisplay.js';
35
36
  import { HistoryItemDisplay } from './components/HistoryItemDisplay.js';
36
37
  import { ContextSummaryDisplay } from './components/ContextSummaryDisplay.js';
37
38
  import { useHistory } from './hooks/useHistoryManager.js';
38
39
  import process from 'node:process';
39
- import { getErrorMessage, getAllGeminiMdFilenames, ApprovalMode, isEditorAvailable, } from '@google/gemini-cli-core';
40
+ import { getErrorMessage, getAllGeminiMdFilenames, ApprovalMode, isEditorAvailable, FlashFallbackEvent, logFlashFallback, } from '@google/gemini-cli-core';
40
41
  import { validateAuthMethod } from '../config/auth.js';
41
42
  import { useLogger } from './hooks/useLogger.js';
42
43
  import { StreamingContext } from './contexts/StreamingContext.js';
@@ -46,6 +47,7 @@ import { useBracketedPaste } from './hooks/useBracketedPaste.js';
46
47
  import { useTextBuffer } from './components/shared/text-buffer.js';
47
48
  import * as fs from 'fs';
48
49
  import { UpdateNotification } from './components/UpdateNotification.js';
50
+ import { isProQuotaExceededError, isGenericQuotaExceededError, UserTierId, } from '@google/gemini-cli-core';
49
51
  import { checkForUpdates } from './utils/updateCheck.js';
50
52
  import ansiEscapes from 'ansi-escapes';
51
53
  import { OverflowProvider } from './contexts/OverflowContext.js';
@@ -53,15 +55,24 @@ import { ShowMoreLines } from './components/ShowMoreLines.js';
53
55
  import { PrivacyNotice } from './privacy/PrivacyNotice.js';
54
56
  const CTRL_EXIT_PROMPT_DURATION_MS = 1000;
55
57
  export const AppWrapper = (props) => (_jsx(SessionStatsProvider, { children: _jsx(App, { ...props }) }));
56
- const App = ({ config, settings, startupWarnings = [] }) => {
58
+ const App = ({ config, settings, startupWarnings = [], version }) => {
57
59
  useBracketedPaste();
58
60
  const [updateMessage, setUpdateMessage] = useState(null);
59
61
  const { stdout } = useStdout();
62
+ const nightly = version.includes('nightly');
60
63
  useEffect(() => {
61
64
  checkForUpdates().then(setUpdateMessage);
62
65
  }, []);
63
66
  const { history, addItem, clearItems, loadHistory } = useHistory();
64
67
  const { consoleMessages, handleNewMessage, clearConsoleMessages: clearConsoleMessagesState, } = useConsoleMessages();
68
+ useEffect(() => {
69
+ const consolePatcher = new ConsolePatcher({
70
+ onNewMessage: handleNewMessage,
71
+ debugMode: config.getDebugMode(),
72
+ });
73
+ consolePatcher.patch();
74
+ registerCleanup(consolePatcher.cleanup);
75
+ }, [handleNewMessage, config]);
65
76
  const { stats: sessionStats } = useSessionStats();
66
77
  const [staticNeedsRefresh, setStaticNeedsRefresh] = useState(false);
67
78
  const [staticKey, setStaticKey] = useState(0);
@@ -88,9 +99,12 @@ const App = ({ config, settings, startupWarnings = [] }) => {
88
99
  const ctrlDTimerRef = useRef(null);
89
100
  const [constrainHeight, setConstrainHeight] = useState(true);
90
101
  const [showPrivacyNotice, setShowPrivacyNotice] = useState(false);
102
+ const [modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError] = useState(false);
103
+ const [userTier, setUserTier] = useState(undefined);
91
104
  const openPrivacyNotice = useCallback(() => {
92
105
  setShowPrivacyNotice(true);
93
106
  }, []);
107
+ const initialPromptSubmitted = useRef(false);
94
108
  const errorCount = useMemo(() => consoleMessages.filter((msg) => msg.type === 'error').length, [consoleMessages]);
95
109
  const { isThemeDialogOpen, openThemeDialog, handleThemeSelect, handleThemeHighlight, } = useThemeCommand(settings, setThemeError, addItem);
96
110
  const { isAuthDialogOpen, openAuthDialog, handleAuthSelect, isAuthenticating, cancelAuthentication, } = useAuthCommand(settings, setAuthError, config);
@@ -103,6 +117,28 @@ const App = ({ config, settings, startupWarnings = [] }) => {
103
117
  }
104
118
  }
105
119
  }, [settings.merged.selectedAuthType, openAuthDialog, setAuthError]);
120
+ // Sync user tier from config when authentication changes
121
+ useEffect(() => {
122
+ const syncUserTier = async () => {
123
+ try {
124
+ const configUserTier = await config.getUserTier();
125
+ if (configUserTier !== userTier) {
126
+ setUserTier(configUserTier);
127
+ }
128
+ }
129
+ catch (error) {
130
+ // Silently fail - this is not critical functionality
131
+ // Only log in debug mode to avoid cluttering the console
132
+ if (config.getDebugMode()) {
133
+ console.debug('Failed to sync user tier:', error);
134
+ }
135
+ }
136
+ };
137
+ // Only sync when not currently authenticating
138
+ if (!isAuthenticating) {
139
+ syncUserTier();
140
+ }
141
+ }, [config, userTier, isAuthenticating]);
106
142
  const { isEditorDialogOpen, openEditorDialog, handleEditorSelect, exitEditorDialog, } = useEditorSettings(settings, setEditorError, addItem);
107
143
  const toggleCorgiMode = useCallback(() => {
108
144
  setCorgiMode((prev) => !prev);
@@ -149,20 +185,72 @@ const App = ({ config, settings, startupWarnings = [] }) => {
149
185
  }, [config, currentModel]);
150
186
  // Set up Flash fallback handler
151
187
  useEffect(() => {
152
- const flashFallbackHandler = async (currentModel, fallbackModel) => {
188
+ const flashFallbackHandler = async (currentModel, fallbackModel, error) => {
189
+ let message;
190
+ // Use actual user tier if available, otherwise default to FREE tier behavior (safe default)
191
+ const isPaidTier = userTier === UserTierId.LEGACY || userTier === UserTierId.STANDARD;
192
+ // Check if this is a Pro quota exceeded error
193
+ if (error && isProQuotaExceededError(error)) {
194
+ if (isPaidTier) {
195
+ message = `⚡ You have reached your daily ${currentModel} quota limit.
196
+ ⚡ Automatically switching from ${currentModel} to ${fallbackModel} for the remainder of this session.
197
+ ⚡ To continue accessing the ${currentModel} model today, consider using /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
198
+ }
199
+ else {
200
+ message = `⚡ You have reached your daily ${currentModel} quota limit.
201
+ ⚡ Automatically switching from ${currentModel} to ${fallbackModel} for the remainder of this session.
202
+ ⚡ To increase your limits, upgrade to a Gemini Code Assist Standard or Enterprise plan with higher limits at https://goo.gle/set-up-gemini-code-assist
203
+ ⚡ Or you can utilize a Gemini API Key. See: https://goo.gle/gemini-cli-docs-auth#gemini-api-key
204
+ ⚡ You can switch authentication methods by typing /auth`;
205
+ }
206
+ }
207
+ else if (error && isGenericQuotaExceededError(error)) {
208
+ if (isPaidTier) {
209
+ message = `⚡ You have reached your daily quota limit.
210
+ ⚡ Automatically switching from ${currentModel} to ${fallbackModel} for the remainder of this session.
211
+ ⚡ To continue accessing the ${currentModel} model today, consider using /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
212
+ }
213
+ else {
214
+ message = `⚡ You have reached your daily quota limit.
215
+ ⚡ Automatically switching from ${currentModel} to ${fallbackModel} for the remainder of this session.
216
+ ⚡ To increase your limits, upgrade to a Gemini Code Assist Standard or Enterprise plan with higher limits at https://goo.gle/set-up-gemini-code-assist
217
+ ⚡ Or you can utilize a Gemini API Key. See: https://goo.gle/gemini-cli-docs-auth#gemini-api-key
218
+ ⚡ You can switch authentication methods by typing /auth`;
219
+ }
220
+ }
221
+ else {
222
+ if (isPaidTier) {
223
+ // Default fallback message for other cases (like consecutive 429s)
224
+ message = `⚡ Automatically switching from ${currentModel} to ${fallbackModel} for faster responses for the remainder of this session.
225
+ ⚡ Possible reasons for this are that you have received multiple consecutive capacity errors or you have reached your daily ${currentModel} quota limit
226
+ ⚡ To continue accessing the ${currentModel} model today, consider using /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
227
+ }
228
+ else {
229
+ // Default fallback message for other cases (like consecutive 429s)
230
+ message = `⚡ Automatically switching from ${currentModel} to ${fallbackModel} for faster responses for the remainder of this session.
231
+ ⚡ Possible reasons for this are that you have received multiple consecutive capacity errors or you have reached your daily ${currentModel} quota limit
232
+ ⚡ To increase your limits, upgrade to a Gemini Code Assist Standard or Enterprise plan with higher limits at https://goo.gle/set-up-gemini-code-assist
233
+ ⚡ Or you can utilize a Gemini API Key. See: https://goo.gle/gemini-cli-docs-auth#gemini-api-key
234
+ ⚡ You can switch authentication methods by typing /auth`;
235
+ }
236
+ }
153
237
  // Add message to UI history
154
238
  addItem({
155
239
  type: MessageType.INFO,
156
- text: `⚡ Slow response times detected. Automatically switching from ${currentModel} to ${fallbackModel} for faster responses for the remainder of this session.
157
- ⚡ To avoid this you can either upgrade to Standard tier. See: https://goo.gle/set-up-gemini-code-assist
158
- ⚡ Or you can utilize a Gemini API Key. See: https://goo.gle/gemini-cli-docs-auth#gemini-api-key
159
- ⚡ You can switch authentication methods by typing /auth`,
240
+ text: message,
160
241
  }, Date.now());
161
- return true; // Always accept the fallback
242
+ // Set the flag to prevent tool continuation
243
+ setModelSwitchedFromQuotaError(true);
244
+ // Set global quota error flag to prevent Flash model calls
245
+ config.setQuotaErrorOccurred(true);
246
+ // Switch model for future use but return false to stop current retry
247
+ config.setModel(fallbackModel);
248
+ logFlashFallback(config, new FlashFallbackEvent(config.getContentGeneratorConfig().authType));
249
+ return false; // Don't continue with current prompt
162
250
  };
163
251
  config.setFlashFallbackHandler(flashFallbackHandler);
164
- }, [config, addItem]);
165
- const { handleSlashCommand, slashCommands, pendingHistoryItems: pendingSlashCommandHistoryItems, } = useSlashCommandProcessor(config, settings, history, addItem, clearItems, loadHistory, refreshStatic, setShowHelp, setDebugMessage, openThemeDialog, openAuthDialog, openEditorDialog, performMemoryRefresh, toggleCorgiMode, showToolDescriptions, setQuittingMessages, openPrivacyNotice);
252
+ }, [config, addItem, userTier]);
253
+ const { handleSlashCommand, slashCommands, pendingHistoryItems: pendingSlashCommandHistoryItems, commandContext, } = useSlashCommandProcessor(config, settings, history, addItem, clearItems, loadHistory, refreshStatic, setShowHelp, setDebugMessage, openThemeDialog, openAuthDialog, openEditorDialog, toggleCorgiMode, showToolDescriptions, setQuittingMessages, openPrivacyNotice);
166
254
  const pendingHistoryItems = [...pendingSlashCommandHistoryItems];
167
255
  const { rows: terminalHeight, columns: terminalWidth } = useTerminalSize();
168
256
  const isInitialMount = useRef(true);
@@ -184,6 +272,7 @@ const App = ({ config, settings, startupWarnings = [] }) => {
184
272
  stdin,
185
273
  setRawMode,
186
274
  isValidPath,
275
+ shellModeActive,
187
276
  });
188
277
  const handleExit = useCallback((pressedOnce, setPressedOnce, timerRef) => {
189
278
  if (pressedOnce) {
@@ -191,10 +280,11 @@ const App = ({ config, settings, startupWarnings = [] }) => {
191
280
  clearTimeout(timerRef.current);
192
281
  }
193
282
  const quitCommand = slashCommands.find((cmd) => cmd.name === 'quit' || cmd.altName === 'exit');
194
- if (quitCommand) {
195
- quitCommand.action('quit', '', '');
283
+ if (quitCommand && quitCommand.action) {
284
+ quitCommand.action(commandContext, '');
196
285
  }
197
286
  else {
287
+ // This is unlikely to be needed but added for an additional fallback.
198
288
  process.exit(0);
199
289
  }
200
290
  }
@@ -205,7 +295,9 @@ const App = ({ config, settings, startupWarnings = [] }) => {
205
295
  timerRef.current = null;
206
296
  }, CTRL_EXIT_PROMPT_DURATION_MS);
207
297
  }
208
- }, [slashCommands]);
298
+ },
299
+ // Add commandContext to the dependency array here!
300
+ [slashCommands, commandContext]);
209
301
  useInput((input, key) => {
210
302
  let enteringConstrainHeightMode = false;
211
303
  if (!constrainHeight) {
@@ -241,10 +333,6 @@ const App = ({ config, settings, startupWarnings = [] }) => {
241
333
  setConstrainHeight(false);
242
334
  }
243
335
  });
244
- useConsolePatcher({
245
- onNewMessage: handleNewMessage,
246
- debugMode: config.getDebugMode(),
247
- });
248
336
  useEffect(() => {
249
337
  if (config) {
250
338
  setGeminiMdFileCount(config.getGeminiMdFileCount());
@@ -263,7 +351,7 @@ const App = ({ config, settings, startupWarnings = [] }) => {
263
351
  setAuthError('reauth required');
264
352
  openAuthDialog();
265
353
  }, [openAuthDialog, setAuthError]);
266
- const { streamingState, submitQuery, initError, pendingHistoryItems: pendingGeminiHistoryItems, thought, } = useGeminiStream(config.getGeminiClient(), history, addItem, setShowHelp, config, setDebugMessage, handleSlashCommand, shellModeActive, getPreferredEditor, onAuthError, performMemoryRefresh);
354
+ const { streamingState, submitQuery, initError, pendingHistoryItems: pendingGeminiHistoryItems, thought, } = useGeminiStream(config.getGeminiClient(), history, addItem, setShowHelp, config, setDebugMessage, handleSlashCommand, shellModeActive, getPreferredEditor, onAuthError, performMemoryRefresh, modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError);
267
355
  pendingHistoryItems.push(...pendingGeminiHistoryItems);
268
356
  const { elapsedTime, currentLoadingPhrase } = useLoadingIndicator(streamingState);
269
357
  const showAutoAcceptIndicator = useAutoAcceptIndicator({ config });
@@ -356,6 +444,30 @@ const App = ({ config, settings, startupWarnings = [] }) => {
356
444
  }
357
445
  return getAllGeminiMdFilenames();
358
446
  }, [settings.merged.contextFileName]);
447
+ const initialPrompt = useMemo(() => config.getQuestion(), [config]);
448
+ const geminiClient = config.getGeminiClient();
449
+ useEffect(() => {
450
+ if (initialPrompt &&
451
+ !initialPromptSubmitted.current &&
452
+ !isAuthenticating &&
453
+ !isAuthDialogOpen &&
454
+ !isThemeDialogOpen &&
455
+ !isEditorDialogOpen &&
456
+ !showPrivacyNotice &&
457
+ geminiClient?.isInitialized?.()) {
458
+ submitQuery(initialPrompt);
459
+ initialPromptSubmitted.current = true;
460
+ }
461
+ }, [
462
+ initialPrompt,
463
+ submitQuery,
464
+ isAuthenticating,
465
+ isAuthDialogOpen,
466
+ isThemeDialogOpen,
467
+ isEditorDialogOpen,
468
+ showPrivacyNotice,
469
+ geminiClient,
470
+ ]);
359
471
  if (quittingMessages) {
360
472
  return (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: quittingMessages.map((item) => (_jsx(HistoryItemDisplay, { availableTerminalHeight: constrainHeight ? availableTerminalHeight : undefined, terminalWidth: terminalWidth, item: item, isPending: false, config: config }, item.id))) }));
361
473
  }
@@ -365,23 +477,23 @@ const App = ({ config, settings, startupWarnings = [] }) => {
365
477
  // enough but not too large to make the terminal hard to use.
366
478
  const staticAreaMaxItemHeight = Math.max(terminalHeight * 4, 100);
367
479
  return (_jsx(StreamingContext.Provider, { value: streamingState, children: _jsxs(Box, { flexDirection: "column", marginBottom: 1, width: "90%", children: [updateMessage && _jsx(UpdateNotification, { message: updateMessage }), _jsx(Static, { items: [
368
- _jsxs(Box, { flexDirection: "column", children: [_jsx(Header, { terminalWidth: terminalWidth }), !settings.merged.hideTips && _jsx(Tips, { config: config })] }, "header"),
480
+ _jsxs(Box, { flexDirection: "column", children: [_jsx(Header, { terminalWidth: terminalWidth, version: version, nightly: nightly }), !settings.merged.hideTips && _jsx(Tips, { config: config })] }, "header"),
369
481
  ...history.map((h) => (_jsx(HistoryItemDisplay, { terminalWidth: mainAreaWidth, availableTerminalHeight: staticAreaMaxItemHeight, item: h, isPending: false, config: config }, h.id))),
370
482
  ], 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,
371
483
  // TODO(taehykim): It seems like references to ids aren't necessary in
372
484
  // HistoryItemDisplay. Refactor later. Use a fake id for now.
373
485
  item: { ...item, id: 0 }, isPending: true, config: config, isFocused: !isEditorDialogOpen }, i))), _jsx(ShowMoreLines, { constrainHeight: constrainHeight })] }) }), showHelp && _jsx(Help, { commands: slashCommands }), _jsxs(Box, { flexDirection: "column", ref: mainControlsRef, children: [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))) })), 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
374
486
  ? terminalHeight - staticExtraHeight
375
- : undefined, terminalWidth: mainAreaWidth })] })) : isAuthenticating ? (_jsx(AuthInProgress, { onTimeout: () => {
376
- setAuthError('Authentication timed out. Please try again.');
377
- cancelAuthentication();
378
- openAuthDialog();
379
- } })) : isAuthDialogOpen ? (_jsx(Box, { flexDirection: "column", children: _jsx(AuthDialog, { onSelect: handleAuthSelect, settings: settings, initialErrorMessage: authError }) })) : isEditorDialogOpen ? (_jsxs(Box, { flexDirection: "column", children: [editorError && (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: Colors.AccentRed, children: editorError }) })), _jsx(EditorSettingsDialog, { onSelect: handleEditorSelect, settings: settings, onExit: exitEditorDialog })] })) : showPrivacyNotice ? (_jsx(PrivacyNotice, { onExit: () => setShowPrivacyNotice(false), config: config })) : (_jsxs(_Fragment, { children: [_jsx(LoadingIndicator, { thought: streamingState === StreamingState.WaitingForConfirmation ||
487
+ : undefined, terminalWidth: mainAreaWidth })] })) : isAuthenticating ? (_jsxs(_Fragment, { children: [_jsx(AuthInProgress, { onTimeout: () => {
488
+ setAuthError('Authentication timed out. Please try again.');
489
+ cancelAuthentication();
490
+ openAuthDialog();
491
+ } }), showErrorDetails && (_jsx(OverflowProvider, { children: _jsxs(Box, { flexDirection: "column", children: [_jsx(DetailedMessagesDisplay, { messages: filteredConsoleMessages, maxHeight: constrainHeight ? debugConsoleMaxHeight : undefined, width: inputWidth }), _jsx(ShowMoreLines, { constrainHeight: constrainHeight })] }) }))] })) : isAuthDialogOpen ? (_jsx(Box, { flexDirection: "column", children: _jsx(AuthDialog, { onSelect: handleAuthSelect, settings: settings, initialErrorMessage: authError }) })) : isEditorDialogOpen ? (_jsxs(Box, { flexDirection: "column", children: [editorError && (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: Colors.AccentRed, children: editorError }) })), _jsx(EditorSettingsDialog, { onSelect: handleEditorSelect, settings: settings, onExit: exitEditorDialog })] })) : showPrivacyNotice ? (_jsx(PrivacyNotice, { onExit: () => setShowPrivacyNotice(false), config: config })) : (_jsxs(_Fragment, { children: [_jsx(LoadingIndicator, { thought: streamingState === StreamingState.WaitingForConfirmation ||
380
492
  config.getAccessibility()?.disableLoadingPhrases
381
493
  ? undefined
382
494
  : thought, currentLoadingPhrase: config.getAccessibility()?.disableLoadingPhrases
383
495
  ? undefined
384
496
  : 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, { geminiMdFileCount: geminiMdFileCount, contextFileNames: contextFileNames, mcpServers: config.getMcpServers(), showToolDescriptions: showToolDescriptions }))] }), _jsxs(Box, { children: [showAutoAcceptIndicator !== ApprovalMode.DEFAULT &&
385
- !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, shellModeActive: shellModeActive, setShellModeActive: setShellModeActive }))] })), 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 })] })] }) }));
497
+ !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 }))] })), 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 })] })] }) }));
386
498
  };
387
499
  //# 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,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { SlashCommand } from './types.js';
7
+ export declare const clearCommand: SlashCommand;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export const clearCommand = {
7
+ name: 'clear',
8
+ description: 'clear the screen and conversation history',
9
+ action: async (context, _args) => {
10
+ context.ui.setDebugMessage('Clearing terminal and resetting chat.');
11
+ await context.services.config?.getGeminiClient()?.resetChat();
12
+ context.ui.clear();
13
+ },
14
+ };
15
+ //# sourceMappingURL=clearCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clearCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/clearCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,2CAA2C;IACxD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC/B,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,uCAAuC,CAAC,CAAC;QACpE,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,CAAC;QAC9D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { SlashCommand } from './types.js';
7
+ export declare const helpCommand: SlashCommand;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export const helpCommand = {
7
+ name: 'help',
8
+ altName: '?',
9
+ description: 'for help on gemini-cli',
10
+ action: (_context, _args) => {
11
+ console.debug('Opening help UI ...');
12
+ return {
13
+ type: 'dialog',
14
+ dialog: 'help',
15
+ };
16
+ },
17
+ };
18
+ //# sourceMappingURL=helpCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/helpCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,GAAG;IACZ,WAAW,EAAE,wBAAwB;IACrC,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAA0B,EAAE;QAClD,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,MAAM;SACf,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { SlashCommand } from './types.js';
7
+ export declare const memoryCommand: SlashCommand;
@@ -0,0 +1,81 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { getErrorMessage } from '@google/gemini-cli-core';
7
+ import { MessageType } from '../types.js';
8
+ export const memoryCommand = {
9
+ name: 'memory',
10
+ description: 'Commands for interacting with memory.',
11
+ subCommands: [
12
+ {
13
+ name: 'show',
14
+ description: 'Show the current memory contents.',
15
+ action: async (context) => {
16
+ const memoryContent = context.services.config?.getUserMemory() || '';
17
+ const fileCount = context.services.config?.getGeminiMdFileCount() || 0;
18
+ const messageContent = memoryContent.length > 0
19
+ ? `Current memory content from ${fileCount} file(s):\n\n---\n${memoryContent}\n---`
20
+ : 'Memory is currently empty.';
21
+ context.ui.addItem({
22
+ type: MessageType.INFO,
23
+ text: messageContent,
24
+ }, Date.now());
25
+ },
26
+ },
27
+ {
28
+ name: 'add',
29
+ description: 'Add content to the memory.',
30
+ action: (context, args) => {
31
+ if (!args || args.trim() === '') {
32
+ return {
33
+ type: 'message',
34
+ messageType: 'error',
35
+ content: 'Usage: /memory add <text to remember>',
36
+ };
37
+ }
38
+ context.ui.addItem({
39
+ type: MessageType.INFO,
40
+ text: `Attempting to save to memory: "${args.trim()}"`,
41
+ }, Date.now());
42
+ return {
43
+ type: 'tool',
44
+ toolName: 'save_memory',
45
+ toolArgs: { fact: args.trim() },
46
+ };
47
+ },
48
+ },
49
+ {
50
+ name: 'refresh',
51
+ description: 'Refresh the memory from the source.',
52
+ action: async (context) => {
53
+ context.ui.addItem({
54
+ type: MessageType.INFO,
55
+ text: 'Refreshing memory from source files...',
56
+ }, Date.now());
57
+ try {
58
+ const result = await context.services.config?.refreshMemory();
59
+ if (result) {
60
+ const { memoryContent, fileCount } = result;
61
+ const successMessage = memoryContent.length > 0
62
+ ? `Memory refreshed successfully. Loaded ${memoryContent.length} characters from ${fileCount} file(s).`
63
+ : 'Memory refreshed successfully. No memory content found.';
64
+ context.ui.addItem({
65
+ type: MessageType.INFO,
66
+ text: successMessage,
67
+ }, Date.now());
68
+ }
69
+ }
70
+ catch (error) {
71
+ const errorMessage = getErrorMessage(error);
72
+ context.ui.addItem({
73
+ type: MessageType.ERROR,
74
+ text: `Error refreshing memory: ${errorMessage}`,
75
+ }, Date.now());
76
+ }
77
+ },
78
+ },
79
+ ],
80
+ };
81
+ //# sourceMappingURL=memoryCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoryCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/memoryCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { SlashCommand } from './types.js';
7
+ export declare const themeCommand: SlashCommand;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export const themeCommand = {
7
+ name: 'theme',
8
+ description: 'change the theme',
9
+ action: (_context, _args) => ({
10
+ type: 'dialog',
11
+ dialog: 'theme',
12
+ }),
13
+ };
14
+ //# sourceMappingURL=themeCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themeCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/themeCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,kBAAkB;IAC/B,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAA0B,EAAE,CAAC,CAAC;QACpD,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,OAAO;KAChB,CAAC;CACH,CAAC"}