@google/gemini-cli 0.1.13 → 0.1.14

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 (176) hide show
  1. package/README.md +22 -1
  2. package/dist/google-gemini-cli-0.1.13.tgz +0 -0
  3. package/dist/package.json +6 -3
  4. package/dist/src/config/config.d.ts +3 -2
  5. package/dist/src/config/config.js +19 -29
  6. package/dist/src/config/config.js.map +1 -1
  7. package/dist/src/config/settings.d.ts +6 -2
  8. package/dist/src/config/settings.js +25 -10
  9. package/dist/src/config/settings.js.map +1 -1
  10. package/dist/src/gemini.js +7 -21
  11. package/dist/src/gemini.js.map +1 -1
  12. package/dist/src/generated/git-commit.d.ts +1 -1
  13. package/dist/src/generated/git-commit.js +1 -1
  14. package/dist/src/patches/is-in-ci.d.ts +7 -0
  15. package/dist/src/patches/is-in-ci.js +15 -0
  16. package/dist/src/patches/is-in-ci.js.map +1 -0
  17. package/dist/src/services/BuiltinCommandLoader.d.ts +24 -0
  18. package/dist/src/services/BuiltinCommandLoader.js +70 -0
  19. package/dist/src/services/BuiltinCommandLoader.js.map +1 -0
  20. package/dist/src/services/CommandService.d.ts +43 -7
  21. package/dist/src/services/CommandService.js +61 -56
  22. package/dist/src/services/CommandService.js.map +1 -1
  23. package/dist/src/services/FileCommandLoader.d.ts +37 -0
  24. package/dist/src/services/FileCommandLoader.js +156 -0
  25. package/dist/src/services/FileCommandLoader.js.map +1 -0
  26. package/dist/src/services/prompt-processors/argumentProcessor.d.ts +21 -0
  27. package/dist/src/services/prompt-processors/argumentProcessor.js +28 -0
  28. package/dist/src/services/prompt-processors/argumentProcessor.js.map +1 -0
  29. package/dist/src/services/prompt-processors/types.d.ts +34 -0
  30. package/dist/src/services/prompt-processors/types.js +10 -0
  31. package/dist/src/services/prompt-processors/types.js.map +1 -0
  32. package/dist/src/services/types.d.ts +22 -0
  33. package/dist/src/services/types.js +7 -0
  34. package/dist/src/services/types.js.map +1 -0
  35. package/dist/src/ui/App.js +15 -25
  36. package/dist/src/ui/App.js.map +1 -1
  37. package/dist/src/ui/colors.js +6 -0
  38. package/dist/src/ui/colors.js.map +1 -1
  39. package/dist/src/ui/commands/aboutCommand.js +2 -0
  40. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  41. package/dist/src/ui/commands/authCommand.js +2 -0
  42. package/dist/src/ui/commands/authCommand.js.map +1 -1
  43. package/dist/src/ui/commands/bugCommand.js +2 -0
  44. package/dist/src/ui/commands/bugCommand.js.map +1 -1
  45. package/dist/src/ui/commands/chatCommand.js +12 -2
  46. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  47. package/dist/src/ui/commands/clearCommand.js +2 -0
  48. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  49. package/dist/src/ui/commands/compressCommand.js +3 -1
  50. package/dist/src/ui/commands/compressCommand.js.map +1 -1
  51. package/dist/src/ui/commands/copyCommand.d.ts +7 -0
  52. package/dist/src/ui/commands/copyCommand.js +59 -0
  53. package/dist/src/ui/commands/copyCommand.js.map +1 -0
  54. package/dist/src/ui/commands/corgiCommand.js +2 -0
  55. package/dist/src/ui/commands/corgiCommand.js.map +1 -1
  56. package/dist/src/ui/commands/docsCommand.js +2 -0
  57. package/dist/src/ui/commands/docsCommand.js.map +1 -1
  58. package/dist/src/ui/commands/editorCommand.js +2 -0
  59. package/dist/src/ui/commands/editorCommand.js.map +1 -1
  60. package/dist/src/ui/commands/extensionsCommand.js +2 -0
  61. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  62. package/dist/src/ui/commands/helpCommand.js +3 -1
  63. package/dist/src/ui/commands/helpCommand.js.map +1 -1
  64. package/dist/src/ui/commands/ideCommand.js +20 -22
  65. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  66. package/dist/src/ui/commands/mcpCommand.js +181 -5
  67. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  68. package/dist/src/ui/commands/memoryCommand.js +11 -4
  69. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  70. package/dist/src/ui/commands/privacyCommand.js +2 -0
  71. package/dist/src/ui/commands/privacyCommand.js.map +1 -1
  72. package/dist/src/ui/commands/quitCommand.js +3 -1
  73. package/dist/src/ui/commands/quitCommand.js.map +1 -1
  74. package/dist/src/ui/commands/restoreCommand.js +2 -0
  75. package/dist/src/ui/commands/restoreCommand.js.map +1 -1
  76. package/dist/src/ui/commands/statsCommand.js +5 -1
  77. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  78. package/dist/src/ui/commands/themeCommand.js +2 -0
  79. package/dist/src/ui/commands/themeCommand.js.map +1 -1
  80. package/dist/src/ui/commands/toolsCommand.js +2 -0
  81. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  82. package/dist/src/ui/commands/types.d.ts +24 -3
  83. package/dist/src/ui/commands/types.js +5 -1
  84. package/dist/src/ui/commands/types.js.map +1 -1
  85. package/dist/src/ui/components/ContextSummaryDisplay.d.ts +2 -2
  86. package/dist/src/ui/components/ContextSummaryDisplay.js +12 -12
  87. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  88. package/dist/src/ui/components/Footer.js +1 -1
  89. package/dist/src/ui/components/Help.d.ts +1 -1
  90. package/dist/src/ui/components/IDEContextDetailDisplay.d.ts +11 -0
  91. package/dist/src/ui/components/IDEContextDetailDisplay.js +19 -0
  92. package/dist/src/ui/components/IDEContextDetailDisplay.js.map +1 -0
  93. package/dist/src/ui/components/InputPrompt.d.ts +1 -1
  94. package/dist/src/ui/components/InputPrompt.js +9 -99
  95. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  96. package/dist/src/ui/components/ThemeDialog.js +42 -17
  97. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  98. package/dist/src/ui/components/messages/DiffRenderer.d.ts +1 -0
  99. package/dist/src/ui/components/messages/DiffRenderer.js +12 -11
  100. package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
  101. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +5 -4
  102. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  103. package/dist/src/ui/components/shared/text-buffer.d.ts +3 -1
  104. package/dist/src/ui/components/shared/text-buffer.js +10 -9
  105. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  106. package/dist/src/ui/hooks/atCommandProcessor.js +54 -15
  107. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  108. package/dist/src/ui/hooks/shellCommandProcessor.js +22 -8
  109. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  110. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -1
  111. package/dist/src/ui/hooks/slashCommandProcessor.js +40 -10
  112. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  113. package/dist/src/ui/hooks/useAuthCommand.js +2 -2
  114. package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
  115. package/dist/src/ui/hooks/useCompletion.d.ts +3 -1
  116. package/dist/src/ui/hooks/useCompletion.js +113 -24
  117. package/dist/src/ui/hooks/useCompletion.js.map +1 -1
  118. package/dist/src/ui/hooks/useGeminiStream.js +57 -11
  119. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  120. package/dist/src/ui/hooks/useInputHistory.d.ts +1 -1
  121. package/dist/src/ui/hooks/useShellHistory.d.ts +3 -2
  122. package/dist/src/ui/hooks/useShellHistory.js.map +1 -1
  123. package/dist/src/ui/hooks/useThemeCommand.js +24 -23
  124. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
  125. package/dist/src/ui/themes/ansi-light.js +2 -0
  126. package/dist/src/ui/themes/ansi-light.js.map +1 -1
  127. package/dist/src/ui/themes/ansi.js +2 -0
  128. package/dist/src/ui/themes/ansi.js.map +1 -1
  129. package/dist/src/ui/themes/atom-one-dark.js +2 -0
  130. package/dist/src/ui/themes/atom-one-dark.js.map +1 -1
  131. package/dist/src/ui/themes/ayu-light.js +3 -1
  132. package/dist/src/ui/themes/ayu-light.js.map +1 -1
  133. package/dist/src/ui/themes/ayu.js +3 -1
  134. package/dist/src/ui/themes/ayu.js.map +1 -1
  135. package/dist/src/ui/themes/color-utils.d.ts +21 -0
  136. package/dist/src/ui/themes/color-utils.js +221 -0
  137. package/dist/src/ui/themes/color-utils.js.map +1 -0
  138. package/dist/src/ui/themes/dracula.js +2 -0
  139. package/dist/src/ui/themes/dracula.js.map +1 -1
  140. package/dist/src/ui/themes/github-dark.js +2 -0
  141. package/dist/src/ui/themes/github-dark.js.map +1 -1
  142. package/dist/src/ui/themes/github-light.js +2 -0
  143. package/dist/src/ui/themes/github-light.js.map +1 -1
  144. package/dist/src/ui/themes/googlecode.js +2 -0
  145. package/dist/src/ui/themes/googlecode.js.map +1 -1
  146. package/dist/src/ui/themes/no-color.js +3 -1
  147. package/dist/src/ui/themes/no-color.js.map +1 -1
  148. package/dist/src/ui/themes/shades-of-purple.d.ts +1 -1
  149. package/dist/src/ui/themes/shades-of-purple.js +3 -1
  150. package/dist/src/ui/themes/shades-of-purple.js.map +1 -1
  151. package/dist/src/ui/themes/theme-manager.d.ts +31 -6
  152. package/dist/src/ui/themes/theme-manager.js +104 -34
  153. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  154. package/dist/src/ui/themes/theme.d.ts +22 -3
  155. package/dist/src/ui/themes/theme.js +229 -182
  156. package/dist/src/ui/themes/theme.js.map +1 -1
  157. package/dist/src/ui/themes/xcode.js +2 -0
  158. package/dist/src/ui/themes/xcode.js.map +1 -1
  159. package/dist/src/ui/types.d.ts +9 -1
  160. package/dist/src/ui/utils/CodeColorizer.d.ts +3 -1
  161. package/dist/src/ui/utils/CodeColorizer.js +23 -11
  162. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  163. package/dist/src/ui/utils/commandUtils.d.ts +1 -0
  164. package/dist/src/ui/utils/commandUtils.js +47 -0
  165. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  166. package/dist/src/ui/utils/markdownUtilities.js +1 -1
  167. package/dist/src/utils/sandbox.js +7 -3
  168. package/dist/src/utils/sandbox.js.map +1 -1
  169. package/dist/src/utils/userStartupWarnings.js +22 -1
  170. package/dist/src/utils/userStartupWarnings.js.map +1 -1
  171. package/dist/src/validateNonInterActiveAuth.d.ts +7 -0
  172. package/dist/src/validateNonInterActiveAuth.js +35 -0
  173. package/dist/src/validateNonInterActiveAuth.js.map +1 -0
  174. package/dist/tsconfig.tsbuildinfo +1 -1
  175. package/package.json +7 -4
  176. package/dist/google-gemini-cli-0.1.12.tgz +0 -0
@@ -4,9 +4,10 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { spawn } from 'child_process';
7
- import { StringDecoder } from 'string_decoder';
7
+ import { TextDecoder } from 'util';
8
8
  import { ToolCallStatus, } from '../types.js';
9
9
  import { useCallback } from 'react';
10
+ import { getCachedEncodingForBuffer, } from '@google/gemini-cli-core';
10
11
  import { formatMemoryUsage } from '../utils/formatters.js';
11
12
  import { isBinary } from '../utils/textUtils.js';
12
13
  import { SHELL_COMMAND_NAME } from '../constants.js';
@@ -39,10 +40,14 @@ function executeShellCommand(commandToExecute, cwd, abortSignal, onOutputChunk,
39
40
  cwd,
40
41
  stdio: ['ignore', 'pipe', 'pipe'],
41
42
  detached: !isWindows, // Use process groups on non-Windows for robust killing
43
+ env: {
44
+ ...process.env,
45
+ GEMINI_CLI: '1',
46
+ },
42
47
  });
43
48
  // Use decoders to handle multi-byte characters safely (for streaming output).
44
- const stdoutDecoder = new StringDecoder('utf8');
45
- const stderrDecoder = new StringDecoder('utf8');
49
+ let stdoutDecoder = null;
50
+ let stderrDecoder = null;
46
51
  let stdout = '';
47
52
  let stderr = '';
48
53
  const outputChunks = [];
@@ -52,6 +57,11 @@ function executeShellCommand(commandToExecute, cwd, abortSignal, onOutputChunk,
52
57
  const MAX_SNIFF_SIZE = 4096;
53
58
  let sniffedBytes = 0;
54
59
  const handleOutput = (data, stream) => {
60
+ if (!stdoutDecoder || !stderrDecoder) {
61
+ const encoding = getCachedEncodingForBuffer(data);
62
+ stdoutDecoder = new TextDecoder(encoding);
63
+ stderrDecoder = new TextDecoder(encoding);
64
+ }
55
65
  outputChunks.push(data);
56
66
  if (streamToUi && sniffedBytes < MAX_SNIFF_SIZE) {
57
67
  // Use a limited-size buffer for the check to avoid performance issues.
@@ -64,8 +74,8 @@ function executeShellCommand(commandToExecute, cwd, abortSignal, onOutputChunk,
64
74
  }
65
75
  }
66
76
  const decodedChunk = stream === 'stdout'
67
- ? stdoutDecoder.write(data)
68
- : stderrDecoder.write(data);
77
+ ? stdoutDecoder.decode(data, { stream: true })
78
+ : stderrDecoder.decode(data, { stream: true });
69
79
  if (stream === 'stdout') {
70
80
  stdout += stripAnsi(decodedChunk);
71
81
  }
@@ -105,7 +115,7 @@ function executeShellCommand(commandToExecute, cwd, abortSignal, onOutputChunk,
105
115
  }
106
116
  }
107
117
  catch (_e) {
108
- // Fallback to killing just the main process if group kill fails.
118
+ // Fall back to killing just the main process if group kill fails.
109
119
  if (!exited)
110
120
  child.kill('SIGKILL');
111
121
  }
@@ -117,8 +127,12 @@ function executeShellCommand(commandToExecute, cwd, abortSignal, onOutputChunk,
117
127
  exited = true;
118
128
  abortSignal.removeEventListener('abort', abortHandler);
119
129
  // Handle any final bytes lingering in the decoders
120
- stdout += stdoutDecoder.end();
121
- stderr += stderrDecoder.end();
130
+ if (stdoutDecoder) {
131
+ stdout += stdoutDecoder.decode();
132
+ }
133
+ if (stderrDecoder) {
134
+ stderr += stderrDecoder.decode();
135
+ }
122
136
  const finalBuffer = Buffer.concat(outputChunks);
123
137
  resolve({
124
138
  rawOutput: finalBuffer,
@@ -1 +1 @@
1
- {"version":3,"file":"shellCommandProcessor.js","sourceRoot":"","sources":["../../../../src/ui/hooks/shellCommandProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shellCommandProcessor.js","sourceRoot":"","sources":["../../../../src/ui/hooks/shellCommandProcessor.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ import { type CommandContext, type SlashCommand } from '../commands/types.js';
14
14
  */
15
15
  export declare const useSlashCommandProcessor: (config: Config | null, settings: LoadedSettings, addItem: UseHistoryManagerReturn["addItem"], clearItems: UseHistoryManagerReturn["clearItems"], loadHistory: UseHistoryManagerReturn["loadHistory"], refreshStatic: () => void, setShowHelp: React.Dispatch<React.SetStateAction<boolean>>, onDebugMessage: (message: string) => void, openThemeDialog: () => void, openAuthDialog: () => void, openEditorDialog: () => void, toggleCorgiMode: () => void, setQuittingMessages: (message: HistoryItem[]) => void, openPrivacyNotice: () => void) => {
16
16
  handleSlashCommand: (rawQuery: PartListUnion) => Promise<SlashCommandProcessorResult | false>;
17
- slashCommands: SlashCommand[];
17
+ slashCommands: readonly SlashCommand[];
18
18
  pendingHistoryItems: HistoryItemWithoutId[];
19
19
  commandContext: CommandContext;
20
20
  };
@@ -10,6 +10,8 @@ import { GitService, Logger } from '@google/gemini-cli-core';
10
10
  import { useSessionStats } from '../contexts/SessionContext.js';
11
11
  import { MessageType, } from '../types.js';
12
12
  import { CommandService } from '../../services/CommandService.js';
13
+ import { BuiltinCommandLoader } from '../../services/BuiltinCommandLoader.js';
14
+ import { FileCommandLoader } from '../../services/FileCommandLoader.js';
13
15
  /**
14
16
  * Hook to define and process slash commands (e.g., /help, /clear).
15
17
  */
@@ -124,14 +126,21 @@ export const useSlashCommandProcessor = (config, settings, addItem, clearItems,
124
126
  setPendingCompressionItem,
125
127
  toggleCorgiMode,
126
128
  ]);
127
- const commandService = useMemo(() => new CommandService(config), [config]);
128
129
  useEffect(() => {
130
+ const controller = new AbortController();
129
131
  const load = async () => {
130
- await commandService.loadCommands();
132
+ const loaders = [
133
+ new BuiltinCommandLoader(config),
134
+ new FileCommandLoader(config),
135
+ ];
136
+ const commandService = await CommandService.create(loaders, controller.signal);
131
137
  setCommands(commandService.getCommands());
132
138
  };
133
139
  load();
134
- }, [commandService]);
140
+ return () => {
141
+ controller.abort();
142
+ };
143
+ }, [config]);
135
144
  const handleSlashCommand = useCallback(async (rawQuery) => {
136
145
  if (typeof rawQuery !== 'string') {
137
146
  return false;
@@ -141,16 +150,24 @@ export const useSlashCommandProcessor = (config, settings, addItem, clearItems,
141
150
  return false;
142
151
  }
143
152
  const userMessageTimestamp = Date.now();
144
- if (trimmed !== '/quit' && trimmed !== '/exit') {
145
- addItem({ type: MessageType.USER, text: trimmed }, userMessageTimestamp);
146
- }
153
+ addItem({ type: MessageType.USER, text: trimmed }, userMessageTimestamp);
147
154
  const parts = trimmed.substring(1).trim().split(/\s+/);
148
155
  const commandPath = parts.filter((p) => p); // The parts of the command, e.g., ['memory', 'add']
149
156
  let currentCommands = commands;
150
157
  let commandToExecute;
151
158
  let pathIndex = 0;
152
159
  for (const part of commandPath) {
153
- const foundCommand = currentCommands.find((cmd) => cmd.name === part || cmd.altName === part);
160
+ // TODO: For better performance and architectural clarity, this two-pass
161
+ // search could be replaced. A more optimal approach would be to
162
+ // pre-compute a single lookup map in `CommandService.ts` that resolves
163
+ // all name and alias conflicts during the initial loading phase. The
164
+ // processor would then perform a single, fast lookup on that map.
165
+ // First pass: check for an exact match on the primary command name.
166
+ let foundCommand = currentCommands.find((cmd) => cmd.name === part);
167
+ // Second pass: if no primary name matches, check for an alias.
168
+ if (!foundCommand) {
169
+ foundCommand = currentCommands.find((cmd) => cmd.altNames?.includes(part));
170
+ }
154
171
  if (foundCommand) {
155
172
  commandToExecute = foundCommand;
156
173
  pathIndex++;
@@ -168,7 +185,15 @@ export const useSlashCommandProcessor = (config, settings, addItem, clearItems,
168
185
  if (commandToExecute) {
169
186
  const args = parts.slice(pathIndex).join(' ');
170
187
  if (commandToExecute.action) {
171
- const result = await commandToExecute.action(commandContext, args);
188
+ const fullCommandContext = {
189
+ ...commandContext,
190
+ invocation: {
191
+ raw: trimmed,
192
+ name: commandToExecute.name,
193
+ args,
194
+ },
195
+ };
196
+ const result = await commandToExecute.action(fullCommandContext, args);
172
197
  if (result) {
173
198
  switch (result.type) {
174
199
  case 'tool':
@@ -211,9 +236,9 @@ export const useSlashCommandProcessor = (config, settings, addItem, clearItems,
211
236
  await config
212
237
  ?.getGeminiClient()
213
238
  ?.setHistory(result.clientHistory);
214
- commandContext.ui.clear();
239
+ fullCommandContext.ui.clear();
215
240
  result.history.forEach((item, index) => {
216
- commandContext.ui.addItem(item, index);
241
+ fullCommandContext.ui.addItem(item, index);
217
242
  });
218
243
  return { type: 'handled' };
219
244
  }
@@ -223,6 +248,11 @@ export const useSlashCommandProcessor = (config, settings, addItem, clearItems,
223
248
  process.exit(0);
224
249
  }, 100);
225
250
  return { type: 'handled' };
251
+ case 'submit_prompt':
252
+ return {
253
+ type: 'submit_prompt',
254
+ content: result.content,
255
+ };
226
256
  default: {
227
257
  const unhandled = result;
228
258
  throw new Error(`Unhandled slash command result: ${unhandled}`);
@@ -1 +1 @@
1
- {"version":3,"file":"slashCommandProcessor.js","sourceRoot":"","sources":["../../../../src/ui/hooks/slashCommandProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slashCommandProcessor.js","sourceRoot":"","sources":["../../../../src/ui/hooks/slashCommandProcessor.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { useState, useCallback, useEffect } from 'react';
7
- import { AuthType, clearCachedCredentialFile, getErrorMessage, shouldAttemptBrowserLaunch, } from '@google/gemini-cli-core';
7
+ import { AuthType, clearCachedCredentialFile, getErrorMessage, } from '@google/gemini-cli-core';
8
8
  import { runExitCleanup } from '../../utils/cleanup.js';
9
9
  export const useAuthCommand = (settings, setAuthError, config) => {
10
10
  const [isAuthDialogOpen, setIsAuthDialogOpen] = useState(settings.merged.selectedAuthType === undefined);
@@ -38,7 +38,7 @@ export const useAuthCommand = (settings, setAuthError, config) => {
38
38
  await clearCachedCredentialFile();
39
39
  settings.setValue(scope, 'selectedAuthType', authType);
40
40
  if (authType === AuthType.LOGIN_WITH_GOOGLE &&
41
- (config.getNoBrowser() || !shouldAttemptBrowserLaunch())) {
41
+ config.isBrowserLaunchSuppressed()) {
42
42
  runExitCleanup();
43
43
  console.log(`
44
44
  ----------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"useAuthCommand.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useAuthCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EACL,QAAQ,EAER,yBAAyB,EACzB,eAAe,EACf,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,QAAwB,EACxB,YAA4C,EAC5C,MAAc,EACd,EAAE;IACF,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CACtD,QAAQ,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAC/C,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAClD,IAAI,gBAAgB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,IAAI,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,YAAY,CAAC,6BAA6B,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChE,cAAc,EAAE,CAAC;YACnB,CAAC;oBAAS,CAAC;gBACT,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,QAAQ,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IAEvE,MAAM,gBAAgB,GAAG,WAAW,CAClC,KAAK,EAAE,QAA8B,EAAE,KAAmB,EAAE,EAAE;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,yBAAyB,EAAE,CAAC;YAClC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;YACvD,IACE,QAAQ,KAAK,QAAQ,CAAC,iBAAiB;gBACvC,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,0BAA0B,EAAE,CAAC,EACxD,CAAC;gBACD,cAAc,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CACT;;;;aAIC,CACF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QACD,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3B,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,EACD,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CACjC,CAAC;IAEF,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5C,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,gBAAgB;QAChB,cAAc;QACd,gBAAgB;QAChB,gBAAgB;QAChB,oBAAoB;KACrB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"useAuthCommand.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useAuthCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EACL,QAAQ,EAER,yBAAyB,EACzB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,QAAwB,EACxB,YAA4C,EAC5C,MAAc,EACd,EAAE;IACF,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CACtD,QAAQ,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAC/C,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAClD,IAAI,gBAAgB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,IAAI,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,YAAY,CAAC,6BAA6B,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChE,cAAc,EAAE,CAAC;YACnB,CAAC;oBAAS,CAAC;gBACT,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,QAAQ,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IAEvE,MAAM,gBAAgB,GAAG,WAAW,CAClC,KAAK,EAAE,QAA8B,EAAE,KAAmB,EAAE,EAAE;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,yBAAyB,EAAE,CAAC;YAElC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;YACvD,IACE,QAAQ,KAAK,QAAQ,CAAC,iBAAiB;gBACvC,MAAM,CAAC,yBAAyB,EAAE,EAClC,CAAC;gBACD,cAAc,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CACT;;;;aAIC,CACF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QACD,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3B,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,EACD,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CACjC,CAAC;IAEF,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5C,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,gBAAgB;QAChB,cAAc;QACd,gBAAgB;QAChB,gBAAgB;QAChB,oBAAoB;KACrB,CAAC;AACJ,CAAC,CAAC"}
@@ -6,6 +6,7 @@
6
6
  import { Config } from '@google/gemini-cli-core';
7
7
  import { Suggestion } from '../components/SuggestionsDisplay.js';
8
8
  import { CommandContext, SlashCommand } from '../commands/types.js';
9
+ import { TextBuffer } from '../components/shared/text-buffer.js';
9
10
  export interface UseCompletionReturn {
10
11
  suggestions: Suggestion[];
11
12
  activeSuggestionIndex: number;
@@ -18,5 +19,6 @@ export interface UseCompletionReturn {
18
19
  resetCompletionState: () => void;
19
20
  navigateUp: () => void;
20
21
  navigateDown: () => void;
22
+ handleAutocomplete: (indexToUse: number) => void;
21
23
  }
22
- export declare function useCompletion(query: string, cwd: string, isActive: boolean, slashCommands: SlashCommand[], commandContext: CommandContext, config?: Config): UseCompletionReturn;
24
+ export declare function useCompletion(buffer: TextBuffer, cwd: string, slashCommands: readonly SlashCommand[], commandContext: CommandContext, config?: Config): UseCompletionReturn;
@@ -3,13 +3,15 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { useState, useEffect, useCallback } from 'react';
6
+ import { useState, useEffect, useCallback, useMemo } from 'react';
7
7
  import * as fs from 'fs/promises';
8
8
  import * as path from 'path';
9
9
  import { glob } from 'glob';
10
- import { isNodeError, escapePath, unescapePath, getErrorMessage, } from '@google/gemini-cli-core';
10
+ import { isNodeError, escapePath, unescapePath, getErrorMessage, DEFAULT_FILE_FILTERING_OPTIONS, } from '@google/gemini-cli-core';
11
11
  import { MAX_SUGGESTIONS_TO_SHOW, } from '../components/SuggestionsDisplay.js';
12
- export function useCompletion(query, cwd, isActive, slashCommands, commandContext, config) {
12
+ import { isSlashCommand } from '../utils/commandUtils.js';
13
+ import { toCodePoints } from '../utils/textUtils.js';
14
+ export function useCompletion(buffer, cwd, slashCommands, commandContext, config) {
13
15
  const [suggestions, setSuggestions] = useState([]);
14
16
  const [activeSuggestionIndex, setActiveSuggestionIndex] = useState(-1);
15
17
  const [visibleStartIndex, setVisibleStartIndex] = useState(0);
@@ -71,12 +73,40 @@ export function useCompletion(query, cwd, isActive, slashCommands, commandContex
71
73
  return newActiveIndex;
72
74
  });
73
75
  }, [suggestions.length]);
76
+ // Check if cursor is after @ or / without unescaped spaces
77
+ const isActive = useMemo(() => {
78
+ if (isSlashCommand(buffer.text.trim())) {
79
+ return true;
80
+ }
81
+ // For other completions like '@', we search backwards from the cursor.
82
+ const [row, col] = buffer.cursor;
83
+ const currentLine = buffer.lines[row] || '';
84
+ const codePoints = toCodePoints(currentLine);
85
+ for (let i = col - 1; i >= 0; i--) {
86
+ const char = codePoints[i];
87
+ if (char === ' ') {
88
+ // Check for unescaped spaces.
89
+ let backslashCount = 0;
90
+ for (let j = i - 1; j >= 0 && codePoints[j] === '\\'; j--) {
91
+ backslashCount++;
92
+ }
93
+ if (backslashCount % 2 === 0) {
94
+ return false; // Inactive on unescaped space.
95
+ }
96
+ }
97
+ else if (char === '@') {
98
+ // Active if we find an '@' before any unescaped space.
99
+ return true;
100
+ }
101
+ }
102
+ return false;
103
+ }, [buffer.text, buffer.cursor, buffer.lines]);
74
104
  useEffect(() => {
75
105
  if (!isActive) {
76
106
  resetCompletionState();
77
107
  return;
78
108
  }
79
- const trimmedQuery = query.trimStart();
109
+ const trimmedQuery = buffer.text.trimStart();
80
110
  if (trimmedQuery.startsWith('/')) {
81
111
  // Always reset perfect match at the beginning of processing.
82
112
  setIsPerfectMatch(false);
@@ -101,7 +131,7 @@ export function useCompletion(query, cwd, isActive, slashCommands, commandContex
101
131
  currentLevel = [];
102
132
  break;
103
133
  }
104
- const found = currentLevel.find((cmd) => cmd.name === part || cmd.altName === part);
134
+ const found = currentLevel.find((cmd) => cmd.name === part || cmd.altNames?.includes(part));
105
135
  if (found) {
106
136
  leafCommand = found;
107
137
  currentLevel = found.subCommands;
@@ -114,7 +144,7 @@ export function useCompletion(query, cwd, isActive, slashCommands, commandContex
114
144
  }
115
145
  // Handle the Ambiguous Case
116
146
  if (!hasTrailingSpace && currentLevel) {
117
- const exactMatchAsParent = currentLevel.find((cmd) => (cmd.name === partial || cmd.altName === partial) &&
147
+ const exactMatchAsParent = currentLevel.find((cmd) => (cmd.name === partial || cmd.altNames?.includes(partial)) &&
118
148
  cmd.subCommands);
119
149
  if (exactMatchAsParent) {
120
150
  // It's a perfect match for a parent command. Override our initial guess.
@@ -132,7 +162,8 @@ export function useCompletion(query, cwd, isActive, slashCommands, commandContex
132
162
  }
133
163
  else if (currentLevel) {
134
164
  // Case: /command subcommand<enter>
135
- const perfectMatch = currentLevel.find((cmd) => (cmd.name === partial || cmd.altName === partial) && cmd.action);
165
+ const perfectMatch = currentLevel.find((cmd) => (cmd.name === partial || cmd.altNames?.includes(partial)) &&
166
+ cmd.action);
136
167
  if (perfectMatch) {
137
168
  setIsPerfectMatch(true);
138
169
  }
@@ -161,11 +192,12 @@ export function useCompletion(query, cwd, isActive, slashCommands, commandContex
161
192
  const commandsToSearch = currentLevel || [];
162
193
  if (commandsToSearch.length > 0) {
163
194
  let potentialSuggestions = commandsToSearch.filter((cmd) => cmd.description &&
164
- (cmd.name.startsWith(partial) || cmd.altName?.startsWith(partial)));
195
+ (cmd.name.startsWith(partial) ||
196
+ cmd.altNames?.some((alt) => alt.startsWith(partial))));
165
197
  // If a user's input is an exact match and it is a leaf command,
166
198
  // enter should submit immediately.
167
199
  if (potentialSuggestions.length > 0 && !hasTrailingSpace) {
168
- const perfectMatch = potentialSuggestions.find((s) => s.name === partial || s.altName === partial);
200
+ const perfectMatch = potentialSuggestions.find((s) => s.name === partial || s.altNames?.includes(partial));
169
201
  if (perfectMatch && perfectMatch.action) {
170
202
  potentialSuggestions = [];
171
203
  }
@@ -186,12 +218,12 @@ export function useCompletion(query, cwd, isActive, slashCommands, commandContex
186
218
  return;
187
219
  }
188
220
  // Handle At Command Completion
189
- const atIndex = query.lastIndexOf('@');
221
+ const atIndex = buffer.text.lastIndexOf('@');
190
222
  if (atIndex === -1) {
191
223
  resetCompletionState();
192
224
  return;
193
225
  }
194
- const partialPath = query.substring(atIndex + 1);
226
+ const partialPath = buffer.text.substring(atIndex + 1);
195
227
  const lastSlashIndex = partialPath.lastIndexOf('/');
196
228
  const baseDirRelative = lastSlashIndex === -1
197
229
  ? '.'
@@ -253,13 +285,10 @@ export function useCompletion(query, cwd, isActive, slashCommands, commandContex
253
285
  nocase: true,
254
286
  });
255
287
  const suggestions = files
256
- .map((file) => {
257
- const relativePath = path.relative(cwd, file);
258
- return {
259
- label: relativePath,
260
- value: escapePath(relativePath),
261
- };
262
- })
288
+ .map((file) => ({
289
+ label: file,
290
+ value: escapePath(file),
291
+ }))
263
292
  .filter((s) => {
264
293
  if (fileDiscoveryService) {
265
294
  return !fileDiscoveryService.shouldIgnoreFile(s.label, filterOptions); // relative path
@@ -274,10 +303,7 @@ export function useCompletion(query, cwd, isActive, slashCommands, commandContex
274
303
  let fetchedSuggestions = [];
275
304
  const fileDiscoveryService = config ? config.getFileService() : null;
276
305
  const enableRecursiveSearch = config?.getEnableRecursiveFileSearch() ?? true;
277
- const filterOptions = {
278
- respectGitIgnore: config?.getFileFilteringRespectGitIgnore() ?? true,
279
- respectGeminiIgnore: true,
280
- };
306
+ const filterOptions = config?.getFileFilteringOptions() ?? DEFAULT_FILE_FILTERING_OPTIONS;
281
307
  try {
282
308
  // If there's no slash, or it's the root, do a recursive search from cwd
283
309
  if (partialPath.indexOf('/') === -1 &&
@@ -287,7 +313,7 @@ export function useCompletion(query, cwd, isActive, slashCommands, commandContex
287
313
  fetchedSuggestions = await findFilesWithGlob(prefix, fileDiscoveryService, filterOptions);
288
314
  }
289
315
  else {
290
- fetchedSuggestions = await findFilesRecursively(cwd, prefix, fileDiscoveryService, filterOptions);
316
+ fetchedSuggestions = await findFilesRecursively(cwd, prefix, null, filterOptions);
291
317
  }
292
318
  }
293
319
  else {
@@ -320,6 +346,12 @@ export function useCompletion(query, cwd, isActive, slashCommands, commandContex
320
346
  };
321
347
  });
322
348
  }
349
+ // Like glob, we always return forwardslashes, even in windows.
350
+ fetchedSuggestions = fetchedSuggestions.map((suggestion) => ({
351
+ ...suggestion,
352
+ label: suggestion.label.replace(/\\/g, '/'),
353
+ value: suggestion.value.replace(/\\/g, '/'),
354
+ }));
323
355
  // Sort by depth, then directories first, then alphabetically
324
356
  fetchedSuggestions.sort((a, b) => {
325
357
  const depthA = (a.label.match(/\//g) || []).length;
@@ -369,7 +401,7 @@ export function useCompletion(query, cwd, isActive, slashCommands, commandContex
369
401
  clearTimeout(debounceTimeout);
370
402
  };
371
403
  }, [
372
- query,
404
+ buffer.text,
373
405
  cwd,
374
406
  isActive,
375
407
  resetCompletionState,
@@ -377,6 +409,62 @@ export function useCompletion(query, cwd, isActive, slashCommands, commandContex
377
409
  commandContext,
378
410
  config,
379
411
  ]);
412
+ const handleAutocomplete = useCallback((indexToUse) => {
413
+ if (indexToUse < 0 || indexToUse >= suggestions.length) {
414
+ return;
415
+ }
416
+ const query = buffer.text;
417
+ const suggestion = suggestions[indexToUse].value;
418
+ if (query.trimStart().startsWith('/')) {
419
+ const hasTrailingSpace = query.endsWith(' ');
420
+ const parts = query
421
+ .trimStart()
422
+ .substring(1)
423
+ .split(/\s+/)
424
+ .filter(Boolean);
425
+ let isParentPath = false;
426
+ // If there's no trailing space, we need to check if the current query
427
+ // is already a complete path to a parent command.
428
+ if (!hasTrailingSpace) {
429
+ let currentLevel = slashCommands;
430
+ for (let i = 0; i < parts.length; i++) {
431
+ const part = parts[i];
432
+ const found = currentLevel?.find((cmd) => cmd.name === part || cmd.altNames?.includes(part));
433
+ if (found) {
434
+ if (i === parts.length - 1 && found.subCommands) {
435
+ isParentPath = true;
436
+ }
437
+ currentLevel = found.subCommands;
438
+ }
439
+ else {
440
+ // Path is invalid, so it can't be a parent path.
441
+ currentLevel = undefined;
442
+ break;
443
+ }
444
+ }
445
+ }
446
+ // Determine the base path of the command.
447
+ // - If there's a trailing space, the whole command is the base.
448
+ // - If it's a known parent path, the whole command is the base.
449
+ // - Otherwise, the base is everything EXCEPT the last partial part.
450
+ const basePath = hasTrailingSpace || isParentPath ? parts : parts.slice(0, -1);
451
+ const newValue = `/${[...basePath, suggestion].join(' ')}`;
452
+ buffer.setText(newValue);
453
+ }
454
+ else {
455
+ const atIndex = query.lastIndexOf('@');
456
+ if (atIndex === -1)
457
+ return;
458
+ const pathPart = query.substring(atIndex + 1);
459
+ const lastSlashIndexInPath = pathPart.lastIndexOf('/');
460
+ let autoCompleteStartIndex = atIndex + 1;
461
+ if (lastSlashIndexInPath !== -1) {
462
+ autoCompleteStartIndex += lastSlashIndexInPath + 1;
463
+ }
464
+ buffer.replaceRangeByOffset(autoCompleteStartIndex, buffer.text.length, suggestion);
465
+ }
466
+ resetCompletionState();
467
+ }, [resetCompletionState, buffer, suggestions, slashCommands]);
380
468
  return {
381
469
  suggestions,
382
470
  activeSuggestionIndex,
@@ -389,6 +477,7 @@ export function useCompletion(query, cwd, isActive, slashCommands, commandContex
389
477
  resetCompletionState,
390
478
  navigateUp,
391
479
  navigateDown,
480
+ handleAutocomplete,
392
481
  };
393
482
  }
394
483
  //# sourceMappingURL=useCompletion.js.map