@google/gemini-cli 0.0.77777772 → 0.0.89999999

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 (232) hide show
  1. package/README.md +4 -10
  2. package/dist/package.json +5 -7
  3. package/dist/src/commands/extensions/examples/mcp-server/example.js +46 -0
  4. package/dist/src/commands/extensions/examples/mcp-server/example.js.map +1 -0
  5. package/dist/src/commands/extensions/examples/mcp-server/gemini-extension.json +2 -3
  6. package/dist/src/commands/extensions/install.js +3 -3
  7. package/dist/src/commands/extensions/install.js.map +1 -1
  8. package/dist/src/commands/extensions/install.test.js +2 -11
  9. package/dist/src/commands/extensions/install.test.js.map +1 -1
  10. package/dist/src/commands/extensions/link.js +2 -2
  11. package/dist/src/commands/extensions/link.js.map +1 -1
  12. package/dist/src/commands/extensions/list.js +1 -1
  13. package/dist/src/commands/extensions/list.js.map +1 -1
  14. package/dist/src/commands/extensions/new.js +1 -6
  15. package/dist/src/commands/extensions/new.js.map +1 -1
  16. package/dist/src/commands/extensions/new.test.js +3 -5
  17. package/dist/src/commands/extensions/new.test.js.map +1 -1
  18. package/dist/src/commands/extensions/uninstall.test.js +1 -4
  19. package/dist/src/commands/extensions/uninstall.test.js.map +1 -1
  20. package/dist/src/commands/extensions/update.js +18 -19
  21. package/dist/src/commands/extensions/update.js.map +1 -1
  22. package/dist/src/commands/mcp/add.js +1 -6
  23. package/dist/src/commands/mcp/add.js.map +1 -1
  24. package/dist/src/config/config.d.ts +0 -2
  25. package/dist/src/config/config.js +24 -70
  26. package/dist/src/config/config.js.map +1 -1
  27. package/dist/src/config/extension.d.ts +4 -26
  28. package/dist/src/config/extension.js +69 -171
  29. package/dist/src/config/extension.js.map +1 -1
  30. package/dist/src/config/extensions/github.d.ts +2 -6
  31. package/dist/src/config/extensions/github.js +32 -84
  32. package/dist/src/config/extensions/github.js.map +1 -1
  33. package/dist/src/config/extensions/github.test.js +1 -5
  34. package/dist/src/config/extensions/github.test.js.map +1 -1
  35. package/dist/src/config/extensions/update.d.ts +3 -3
  36. package/dist/src/config/extensions/update.js +14 -19
  37. package/dist/src/config/extensions/update.js.map +1 -1
  38. package/dist/src/config/extensions/update.test.js +18 -53
  39. package/dist/src/config/extensions/update.test.js.map +1 -1
  40. package/dist/src/config/settings.js +3 -18
  41. package/dist/src/config/settings.js.map +1 -1
  42. package/dist/src/config/settingsSchema.d.ts +2 -20
  43. package/dist/src/config/settingsSchema.js +2 -20
  44. package/dist/src/config/settingsSchema.js.map +1 -1
  45. package/dist/src/config/settingsSchema.test.js +1 -1
  46. package/dist/src/config/settingsSchema.test.js.map +1 -1
  47. package/dist/src/config/trustedFolders.d.ts +1 -10
  48. package/dist/src/config/trustedFolders.js +14 -40
  49. package/dist/src/config/trustedFolders.js.map +1 -1
  50. package/dist/src/config/trustedFolders.test.js +14 -95
  51. package/dist/src/config/trustedFolders.test.js.map +1 -1
  52. package/dist/src/gemini.js +126 -100
  53. package/dist/src/gemini.js.map +1 -1
  54. package/dist/src/gemini.test.js +5 -74
  55. package/dist/src/gemini.test.js.map +1 -1
  56. package/dist/src/generated/git-commit.d.ts +2 -2
  57. package/dist/src/generated/git-commit.js +2 -2
  58. package/dist/src/services/BuiltinCommandLoader.js +0 -4
  59. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  60. package/dist/src/services/BuiltinCommandLoader.test.js +1 -50
  61. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  62. package/dist/src/test-utils/render.d.ts +1 -3
  63. package/dist/src/test-utils/render.js +1 -2
  64. package/dist/src/test-utils/render.js.map +1 -1
  65. package/dist/src/ui/App.js +1 -1
  66. package/dist/src/ui/App.js.map +1 -1
  67. package/dist/src/ui/AppContainer.js +12 -32
  68. package/dist/src/ui/AppContainer.js.map +1 -1
  69. package/dist/src/ui/AppContainer.test.js +0 -31
  70. package/dist/src/ui/AppContainer.test.js.map +1 -1
  71. package/dist/src/ui/commands/chatCommand.js +3 -14
  72. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  73. package/dist/src/ui/commands/extensionsCommand.js +2 -5
  74. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  75. package/dist/src/ui/commands/types.d.ts +1 -1
  76. package/dist/src/ui/commands/types.js.map +1 -1
  77. package/dist/src/ui/components/AppHeader.js +5 -2
  78. package/dist/src/ui/components/AppHeader.js.map +1 -1
  79. package/dist/src/ui/components/Composer.js +4 -2
  80. package/dist/src/ui/components/Composer.js.map +1 -1
  81. package/dist/src/ui/components/DialogManager.d.ts +1 -6
  82. package/dist/src/ui/components/DialogManager.js +1 -10
  83. package/dist/src/ui/components/DialogManager.js.map +1 -1
  84. package/dist/src/ui/components/HistoryItemDisplay.d.ts +1 -1
  85. package/dist/src/ui/components/HistoryItemDisplay.js +1 -6
  86. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  87. package/dist/src/ui/components/HistoryItemDisplay.test.js +1 -42
  88. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  89. package/dist/src/ui/components/InputPrompt.d.ts +1 -1
  90. package/dist/src/ui/components/InputPrompt.js +8 -17
  91. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  92. package/dist/src/ui/components/LoadingIndicator.js +1 -1
  93. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  94. package/dist/src/ui/components/LoadingIndicator.test.js +0 -4
  95. package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
  96. package/dist/src/ui/components/MainContent.js +1 -1
  97. package/dist/src/ui/components/MainContent.js.map +1 -1
  98. package/dist/src/ui/components/SettingsDialog.js +1 -1
  99. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  100. package/dist/src/ui/components/SettingsDialog.test.js +13 -47
  101. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  102. package/dist/src/ui/components/WorkspaceMigrationDialog.js +1 -3
  103. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -1
  104. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +1 -1
  105. package/dist/src/ui/components/messages/ToolGroupMessage.js +5 -5
  106. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  107. package/dist/src/ui/components/messages/ToolMessage.d.ts +1 -1
  108. package/dist/src/ui/components/messages/ToolMessage.js +3 -3
  109. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  110. package/dist/src/ui/components/shared/RadioButtonSelect.js +104 -9
  111. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  112. package/dist/src/ui/components/shared/RadioButtonSelect.test.js +92 -113
  113. package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +1 -1
  114. package/dist/src/ui/components/views/ExtensionsList.test.js +1 -1
  115. package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
  116. package/dist/src/ui/contexts/FocusContext.d.ts +7 -0
  117. package/dist/src/ui/contexts/FocusContext.js +9 -0
  118. package/dist/src/ui/contexts/FocusContext.js.map +1 -0
  119. package/dist/src/ui/contexts/KeypressContext.js +0 -3
  120. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  121. package/dist/src/ui/contexts/UIActionsContext.d.ts +0 -2
  122. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  123. package/dist/src/ui/contexts/UIStateContext.d.ts +1 -5
  124. package/dist/src/ui/contexts/UIStateContext.js +0 -1
  125. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  126. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +0 -2
  127. package/dist/src/ui/hooks/slashCommandProcessor.js +0 -6
  128. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  129. package/dist/src/ui/hooks/useExtensionUpdates.js +17 -23
  130. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  131. package/dist/src/ui/hooks/useExtensionUpdates.test.js +11 -9
  132. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  133. package/dist/src/ui/hooks/useFocus.js +0 -10
  134. package/dist/src/ui/hooks/useFocus.js.map +1 -1
  135. package/dist/src/ui/hooks/useFolderTrust.d.ts +1 -1
  136. package/dist/src/ui/hooks/useFolderTrust.js +7 -2
  137. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  138. package/dist/src/ui/hooks/useGeminiStream.js +1 -5
  139. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  140. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  141. package/dist/src/ui/hooks/useSlashCompletion.js +2 -7
  142. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  143. package/dist/src/ui/hooks/useSlashCompletion.test.js +0 -33
  144. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  145. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +3 -3
  146. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -1
  147. package/dist/src/ui/state/extensions.d.ts +1 -1
  148. package/dist/src/ui/state/extensions.js +1 -1
  149. package/dist/src/ui/state/extensions.js.map +1 -1
  150. package/dist/src/ui/themes/theme.js +2 -2
  151. package/dist/src/ui/themes/theme.js.map +1 -1
  152. package/dist/src/ui/utils/displayUtils.js +1 -1
  153. package/dist/src/ui/utils/textUtils.d.ts +0 -1
  154. package/dist/src/ui/utils/textUtils.js +0 -56
  155. package/dist/src/ui/utils/textUtils.js.map +1 -1
  156. package/dist/src/utils/deepMerge.d.ts +3 -2
  157. package/dist/src/utils/sandbox.js +9 -23
  158. package/dist/src/utils/sandbox.js.map +1 -1
  159. package/dist/src/zed-integration/schema.d.ts +22 -22
  160. package/dist/src/zed-integration/zedIntegration.d.ts +0 -7
  161. package/dist/src/zed-integration/zedIntegration.js +2 -14
  162. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  163. package/dist/tsconfig.tsbuildinfo +1 -1
  164. package/package.json +5 -7
  165. package/dist/src/commands/extensions/examples/mcp-server/package.json +0 -18
  166. package/dist/src/commands/extensions/examples/mcp-server/tsconfig.json +0 -13
  167. package/dist/src/ui/commands/modelCommand.d.ts +0 -7
  168. package/dist/src/ui/commands/modelCommand.js +0 -16
  169. package/dist/src/ui/commands/modelCommand.js.map +0 -1
  170. package/dist/src/ui/commands/modelCommand.test.js +0 -30
  171. package/dist/src/ui/commands/modelCommand.test.js.map +0 -1
  172. package/dist/src/ui/commands/permissionsCommand.d.ts +0 -7
  173. package/dist/src/ui/commands/permissionsCommand.js +0 -16
  174. package/dist/src/ui/commands/permissionsCommand.js.map +0 -1
  175. package/dist/src/ui/commands/permissionsCommand.test.d.ts +0 -6
  176. package/dist/src/ui/commands/permissionsCommand.test.js +0 -30
  177. package/dist/src/ui/commands/permissionsCommand.test.js.map +0 -1
  178. package/dist/src/ui/components/ModelDialog.d.ts +0 -11
  179. package/dist/src/ui/components/ModelDialog.js +0 -53
  180. package/dist/src/ui/components/ModelDialog.js.map +0 -1
  181. package/dist/src/ui/components/ModelDialog.test.d.ts +0 -6
  182. package/dist/src/ui/components/ModelDialog.test.js +0 -153
  183. package/dist/src/ui/components/ModelDialog.test.js.map +0 -1
  184. package/dist/src/ui/components/PermissionsModifyTrustDialog.d.ts +0 -13
  185. package/dist/src/ui/components/PermissionsModifyTrustDialog.js +0 -45
  186. package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +0 -1
  187. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.d.ts +0 -6
  188. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +0 -158
  189. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +0 -1
  190. package/dist/src/ui/components/shared/BaseSelectionList.d.ts +0 -43
  191. package/dist/src/ui/components/shared/BaseSelectionList.js +0 -72
  192. package/dist/src/ui/components/shared/BaseSelectionList.js.map +0 -1
  193. package/dist/src/ui/components/shared/BaseSelectionList.test.d.ts +0 -6
  194. package/dist/src/ui/components/shared/BaseSelectionList.test.js +0 -374
  195. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +0 -1
  196. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.d.ts +0 -36
  197. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js +0 -13
  198. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js.map +0 -1
  199. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.d.ts +0 -6
  200. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js +0 -68
  201. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js.map +0 -1
  202. package/dist/src/ui/contexts/ShellFocusContext.d.ts +0 -7
  203. package/dist/src/ui/contexts/ShellFocusContext.js +0 -9
  204. package/dist/src/ui/contexts/ShellFocusContext.js.map +0 -1
  205. package/dist/src/ui/hooks/useModelCommand.d.ts +0 -12
  206. package/dist/src/ui/hooks/useModelCommand.js +0 -21
  207. package/dist/src/ui/hooks/useModelCommand.js.map +0 -1
  208. package/dist/src/ui/hooks/useModelCommand.test.d.ts +0 -6
  209. package/dist/src/ui/hooks/useModelCommand.test.js +0 -35
  210. package/dist/src/ui/hooks/useModelCommand.test.js.map +0 -1
  211. package/dist/src/ui/hooks/usePermissionsModifyTrust.d.ts +0 -17
  212. package/dist/src/ui/hooks/usePermissionsModifyTrust.js +0 -78
  213. package/dist/src/ui/hooks/usePermissionsModifyTrust.js.map +0 -1
  214. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.d.ts +0 -6
  215. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +0 -182
  216. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +0 -1
  217. package/dist/src/ui/hooks/useSelectionList.d.ts +0 -33
  218. package/dist/src/ui/hooks/useSelectionList.js +0 -252
  219. package/dist/src/ui/hooks/useSelectionList.js.map +0 -1
  220. package/dist/src/ui/hooks/useSelectionList.test.d.ts +0 -6
  221. package/dist/src/ui/hooks/useSelectionList.test.js +0 -651
  222. package/dist/src/ui/hooks/useSelectionList.test.js.map +0 -1
  223. package/dist/src/ui/utils/textUtils.test.d.ts +0 -6
  224. package/dist/src/ui/utils/textUtils.test.js +0 -132
  225. package/dist/src/ui/utils/textUtils.test.js.map +0 -1
  226. package/dist/src/utils/relaunch.d.ts +0 -7
  227. package/dist/src/utils/relaunch.js +0 -57
  228. package/dist/src/utils/relaunch.js.map +0 -1
  229. package/dist/src/utils/relaunch.test.d.ts +0 -6
  230. package/dist/src/utils/relaunch.test.js +0 -273
  231. package/dist/src/utils/relaunch.test.js.map +0 -1
  232. /package/dist/src/{ui/commands/modelCommand.test.d.ts → commands/extensions/examples/mcp-server/example.d.ts} +0 -0
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { GEMINI_DIR, Storage, Config, ExtensionInstallEvent, ExtensionUninstallEvent, ExtensionDisableEvent, ExtensionEnableEvent, logExtensionEnable, logExtensionInstallEvent, logExtensionUninstall, logExtensionDisable, } from '@google/gemini-cli-core';
6
+ import { GEMINI_DIR, Storage, ClearcutLogger, Config, ExtensionInstallEvent, ExtensionUninstallEvent, } from '@google/gemini-cli-core';
7
7
  import * as fs from 'node:fs';
8
8
  import * as path from 'node:path';
9
9
  import * as os from 'node:os';
@@ -15,7 +15,6 @@ import { resolveEnvVarsInObject } from '../utils/envVarResolver.js';
15
15
  import { randomUUID } from 'node:crypto';
16
16
  import { cloneFromGit, downloadFromGitHubRelease, } from './extensions/github.js';
17
17
  import { ExtensionEnablementManager } from './extensions/extensionEnablement.js';
18
- import chalk from 'chalk';
19
18
  export const EXTENSIONS_DIRECTORY_NAME = path.join(GEMINI_DIR, 'extensions');
20
19
  export const EXTENSIONS_CONFIG_FILENAME = 'gemini-extension.json';
21
20
  export const INSTALL_METADATA_FILENAME = '.gemini-extension-install.json';
@@ -48,7 +47,7 @@ export function getWorkspaceExtensions(workspaceDir) {
48
47
  export async function copyExtension(source, destination) {
49
48
  await fs.promises.cp(source, destination, { recursive: true });
50
49
  }
51
- export async function performWorkspaceExtensionMigration(extensions, requestConsent) {
50
+ export async function performWorkspaceExtensionMigration(extensions) {
52
51
  const failedInstallNames = [];
53
52
  for (const extension of extensions) {
54
53
  try {
@@ -56,7 +55,7 @@ export async function performWorkspaceExtensionMigration(extensions, requestCons
56
55
  source: extension.path,
57
56
  type: 'local',
58
57
  };
59
- await installExtension(installMetadata, requestConsent);
58
+ await installExtension(installMetadata);
60
59
  }
61
60
  catch (_) {
62
61
  failedInstallNames.push(extension.config.name);
@@ -64,18 +63,16 @@ export async function performWorkspaceExtensionMigration(extensions, requestCons
64
63
  }
65
64
  return failedInstallNames;
66
65
  }
67
- function getTelemetryConfig(cwd) {
68
- const settings = loadSettings(cwd);
66
+ function getClearcutLogger(cwd) {
69
67
  const config = new Config({
70
- telemetry: settings.merged.telemetry,
71
- interactive: false,
72
68
  sessionId: randomUUID(),
73
69
  targetDir: cwd,
74
70
  cwd,
75
71
  model: '',
76
72
  debugMode: false,
77
73
  });
78
- return config;
74
+ const logger = ClearcutLogger.getInstance(config);
75
+ return logger;
79
76
  }
80
77
  export function loadExtensions(workspaceDir = process.cwd()) {
81
78
  const settings = loadSettings(workspaceDir).merged;
@@ -131,18 +128,24 @@ export function loadExtension(context) {
131
128
  if (installMetadata?.type === 'link') {
132
129
  effectiveExtensionPath = installMetadata.source;
133
130
  }
131
+ const configFilePath = path.join(effectiveExtensionPath, EXTENSIONS_CONFIG_FILENAME);
132
+ if (!fs.existsSync(configFilePath)) {
133
+ console.error(`Warning: extension directory ${effectiveExtensionPath} does not contain a config file ${configFilePath}.`);
134
+ return null;
135
+ }
134
136
  try {
135
- let config = loadExtensionConfig({
136
- extensionDir: effectiveExtensionPath,
137
- workspaceDir,
137
+ const configContent = fs.readFileSync(configFilePath, 'utf-8');
138
+ let config = recursivelyHydrateStrings(JSON.parse(configContent), {
139
+ extensionPath: extensionDir,
140
+ workspacePath: workspaceDir,
141
+ '/': path.sep,
142
+ pathSeparator: path.sep,
138
143
  });
139
- config = resolveEnvVarsInObject(config);
140
- if (config.mcpServers) {
141
- config.mcpServers = Object.fromEntries(Object.entries(config.mcpServers).map(([key, value]) => [
142
- key,
143
- filterMcpConfig(value),
144
- ]));
144
+ if (!config.name || !config.version) {
145
+ console.error(`Invalid extension config in ${configFilePath}: missing name or version.`);
146
+ return null;
145
147
  }
148
+ config = resolveEnvVarsInObject(config);
146
149
  const contextFiles = getContextFileNames(config)
147
150
  .map((contextFileName) => path.join(effectiveExtensionPath, contextFileName))
148
151
  .filter((contextFilePath) => fs.existsSync(contextFilePath));
@@ -154,33 +157,10 @@ export function loadExtension(context) {
154
157
  };
155
158
  }
156
159
  catch (e) {
157
- console.error(`Warning: Skipping extension in ${effectiveExtensionPath}: ${getErrorMessage(e)}`);
160
+ console.error(`Warning: error parsing extension config in ${configFilePath}: ${getErrorMessage(e)}`);
158
161
  return null;
159
162
  }
160
163
  }
161
- export function loadExtensionByName(name, workspaceDir = process.cwd()) {
162
- const userExtensionsDir = ExtensionStorage.getUserExtensionsDir();
163
- if (!fs.existsSync(userExtensionsDir)) {
164
- return null;
165
- }
166
- for (const subdir of fs.readdirSync(userExtensionsDir)) {
167
- const extensionDir = path.join(userExtensionsDir, subdir);
168
- if (!fs.statSync(extensionDir).isDirectory()) {
169
- continue;
170
- }
171
- const extension = loadExtension({ extensionDir, workspaceDir });
172
- if (extension &&
173
- extension.config.name.toLowerCase() === name.toLowerCase()) {
174
- return extension;
175
- }
176
- }
177
- return null;
178
- }
179
- function filterMcpConfig(original) {
180
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
181
- const { trust, ...rest } = original;
182
- return Object.freeze(rest);
183
- }
184
164
  export function loadInstallMetadata(extensionDir) {
185
165
  const metadataFilePath = path.join(extensionDir, INSTALL_METADATA_FILENAME);
186
166
  try {
@@ -252,43 +232,11 @@ export function annotateActiveExtensions(extensions, enabledExtensionNames, work
252
232
  return annotatedExtensions;
253
233
  }
254
234
  /**
255
- * Requests consent from the user to perform an action, by reading a Y/n
256
- * character from stdin.
257
- *
258
- * This should not be called from interactive mode as it will break the CLI.
259
- *
260
- * @param consentDescription The description of the thing they will be consenting to.
261
- * @returns boolean, whether they consented or not.
262
- */
263
- export async function requestConsentNonInteractive(consentDescription) {
264
- console.info(consentDescription);
265
- const result = await promptForContinuationNonInteractive('Do you want to continue? [Y/n]: ');
266
- return result;
267
- }
268
- /**
269
- * Requests consent from the user to perform an action, in interactive mode.
270
- *
271
- * This should not be called from non-interactive mode as it will not work.
272
- *
273
- * @param consentDescription The description of the thing they will be consenting to.
274
- * @returns boolean, whether they consented or not.
275
- */
276
- export async function requestConsentInteractive(_consentDescription, addHistoryItem) {
277
- addHistoryItem({
278
- type: 'info',
279
- text: 'Tried to update an extension but it has some changes that require consent, please use `gemini extensions update`.',
280
- }, Date.now());
281
- return false;
282
- }
283
- /**
284
- * Asks users a prompt and awaits for a y/n response on stdin.
285
- *
286
- * This should not be called from interactive mode as it will break the CLI.
287
- *
235
+ * Asks users a prompt and awaits for a y/n response
288
236
  * @param prompt A yes/no prompt to ask the user
289
- * @returns Whether or not the user answers 'y' (yes). Defaults to 'yes' on enter.
237
+ * @returns Whether or not the user answers 'y' (yes)
290
238
  */
291
- async function promptForContinuationNonInteractive(prompt) {
239
+ async function promptForContinuation(prompt) {
292
240
  const readline = await import('node:readline');
293
241
  const rl = readline.createInterface({
294
242
  input: process.stdin,
@@ -297,12 +245,12 @@ async function promptForContinuationNonInteractive(prompt) {
297
245
  return new Promise((resolve) => {
298
246
  rl.question(prompt, (answer) => {
299
247
  rl.close();
300
- resolve(['y', ''].includes(answer.trim().toLowerCase()));
248
+ resolve(answer.toLowerCase() === 'y');
301
249
  });
302
250
  });
303
251
  }
304
- export async function installExtension(installMetadata, requestConsent, cwd = process.cwd(), previousExtensionConfig) {
305
- const telemetryConfig = getTelemetryConfig(cwd);
252
+ export async function installExtension(installMetadata, askConsent = false, cwd = process.cwd()) {
253
+ const logger = getClearcutLogger(cwd);
306
254
  let newExtensionConfig = null;
307
255
  let localSourcePath;
308
256
  try {
@@ -321,9 +269,9 @@ export async function installExtension(installMetadata, requestConsent, cwd = pr
321
269
  installMetadata.type === 'github-release') {
322
270
  tempDir = await ExtensionStorage.createTmpDir();
323
271
  try {
324
- const result = await downloadFromGitHubRelease(installMetadata, tempDir);
325
- installMetadata.type = result.type;
326
- installMetadata.releaseTag = result.tagName;
272
+ const tagName = await downloadFromGitHubRelease(installMetadata, tempDir);
273
+ updateExtensionVersion(tempDir, tagName);
274
+ installMetadata.type = 'github-release';
327
275
  }
328
276
  catch (_error) {
329
277
  await cloneFromGit(installMetadata, tempDir);
@@ -339,10 +287,13 @@ export async function installExtension(installMetadata, requestConsent, cwd = pr
339
287
  throw new Error(`Unsupported install type: ${installMetadata.type}`);
340
288
  }
341
289
  try {
342
- newExtensionConfig = loadExtensionConfig({
290
+ newExtensionConfig = await loadExtensionConfig({
343
291
  extensionDir: localSourcePath,
344
292
  workspaceDir: cwd,
345
293
  });
294
+ if (!newExtensionConfig) {
295
+ throw new Error(`Invalid extension at ${installMetadata.source}. Please make sure it has a valid gemini-extension.json file.`);
296
+ }
346
297
  const newExtensionName = newExtensionConfig.name;
347
298
  const extensionStorage = new ExtensionStorage(newExtensionName);
348
299
  const destinationPath = extensionStorage.getExtensionDir();
@@ -350,7 +301,9 @@ export async function installExtension(installMetadata, requestConsent, cwd = pr
350
301
  if (installedExtensions.some((installed) => installed.config.name === newExtensionName)) {
351
302
  throw new Error(`Extension "${newExtensionName}" is already installed. Please uninstall it first.`);
352
303
  }
353
- await maybeRequestConsentOrFail(newExtensionConfig, requestConsent, previousExtensionConfig);
304
+ if (askConsent) {
305
+ await requestConsent(newExtensionConfig);
306
+ }
354
307
  await fs.promises.mkdir(destinationPath, { recursive: true });
355
308
  if (installMetadata.type === 'local' ||
356
309
  installMetadata.type === 'git' ||
@@ -366,7 +319,7 @@ export async function installExtension(installMetadata, requestConsent, cwd = pr
366
319
  await fs.promises.rm(tempDir, { recursive: true, force: true });
367
320
  }
368
321
  }
369
- logExtensionInstallEvent(telemetryConfig, new ExtensionInstallEvent(newExtensionConfig.name, newExtensionConfig.version, installMetadata.source, 'success'));
322
+ logger?.logExtensionInstallEvent(new ExtensionInstallEvent(newExtensionConfig.name, newExtensionConfig.version, installMetadata.source, 'success'));
370
323
  enableExtension(newExtensionConfig.name, SettingScope.User);
371
324
  return newExtensionConfig.name;
372
325
  }
@@ -374,77 +327,44 @@ export async function installExtension(installMetadata, requestConsent, cwd = pr
374
327
  // Attempt to load config from the source path even if installation fails
375
328
  // to get the name and version for logging.
376
329
  if (!newExtensionConfig && localSourcePath) {
377
- try {
378
- newExtensionConfig = loadExtensionConfig({
379
- extensionDir: localSourcePath,
380
- workspaceDir: cwd,
381
- });
382
- }
383
- catch {
384
- // Ignore error, this is just for logging.
385
- }
330
+ newExtensionConfig = await loadExtensionConfig({
331
+ extensionDir: localSourcePath,
332
+ workspaceDir: cwd,
333
+ });
386
334
  }
387
- logExtensionInstallEvent(telemetryConfig, new ExtensionInstallEvent(newExtensionConfig?.name ?? '', newExtensionConfig?.version ?? '', installMetadata.source, 'error'));
335
+ logger?.logExtensionInstallEvent(new ExtensionInstallEvent(newExtensionConfig?.name ?? '', newExtensionConfig?.version ?? '', installMetadata.source, 'error'));
388
336
  throw error;
389
337
  }
390
338
  }
391
- /**
392
- * Builds a consent string for installing an extension based on it's
393
- * extensionConfig.
394
- */
395
- function extensionConsentString(extensionConfig) {
396
- const output = [];
339
+ async function updateExtensionVersion(extensionDir, extensionVersion) {
340
+ const configFilePath = path.join(extensionDir, EXTENSIONS_CONFIG_FILENAME);
341
+ if (fs.existsSync(configFilePath)) {
342
+ const configContent = await fs.promises.readFile(configFilePath, 'utf-8');
343
+ const config = JSON.parse(configContent);
344
+ config.version = extensionVersion;
345
+ await fs.promises.writeFile(configFilePath, JSON.stringify(config, null, 2));
346
+ }
347
+ }
348
+ async function requestConsent(extensionConfig) {
397
349
  const mcpServerEntries = Object.entries(extensionConfig.mcpServers || {});
398
- output.push('Extensions may introduce unexpected behavior.');
399
- output.push('Ensure you have investigated the extension source and trust the author.');
400
350
  if (mcpServerEntries.length) {
401
- output.push('This extension will run the following MCP servers:');
351
+ console.info('This extension will run the following MCP servers: ');
402
352
  for (const [key, mcpServer] of mcpServerEntries) {
403
353
  const isLocal = !!mcpServer.command;
404
- const source = mcpServer.httpUrl ??
405
- `${mcpServer.command || ''}${mcpServer.args ? ' ' + mcpServer.args.join(' ') : ''}`;
406
- output.push(` * ${key} (${isLocal ? 'local' : 'remote'}): ${source}`);
354
+ console.info(` * ${key} (${isLocal ? 'local' : 'remote'}): ${mcpServer.description}`);
407
355
  }
408
- }
409
- if (extensionConfig.contextFileName) {
410
- output.push(`This extension will append info to your gemini.md context using ${extensionConfig.contextFileName}`);
411
- }
412
- if (extensionConfig.excludeTools) {
413
- output.push(`This extension will exclude the following core tools: ${extensionConfig.excludeTools}`);
414
- }
415
- return output.join('\n');
416
- }
417
- /**
418
- * Requests consent from the user to install an extension (extensionConfig), if
419
- * there is any difference between the consent string for `extensionConfig` and
420
- * `previousExtensionConfig`.
421
- *
422
- * Always requests consent if previousExtensionConfig is null.
423
- *
424
- * Throws if the user does not consent.
425
- */
426
- async function maybeRequestConsentOrFail(extensionConfig, requestConsent, previousExtensionConfig) {
427
- const extensionConsent = extensionConsentString(extensionConfig);
428
- if (previousExtensionConfig) {
429
- const previousExtensionConsent = extensionConsentString(previousExtensionConfig);
430
- if (previousExtensionConsent === extensionConsent) {
431
- return;
356
+ console.info('The extension will append info to your gemini.md context');
357
+ const shouldContinue = await promptForContinuation('Do you want to continue? (y/n): ');
358
+ if (!shouldContinue) {
359
+ throw new Error('Installation cancelled by user.');
432
360
  }
433
361
  }
434
- if (!(await requestConsent(extensionConsent))) {
435
- throw new Error('Installation cancelled.');
436
- }
437
362
  }
438
- export function validateName(name) {
439
- if (!/^[a-zA-Z0-9-]+$/.test(name)) {
440
- throw new Error(`Invalid extension name: "${name}". Only letters (a-z, A-Z), numbers (0-9), and dashes (-) are allowed.`);
441
- }
442
- }
443
- export function loadExtensionConfig(context) {
363
+ export async function loadExtensionConfig(context) {
444
364
  const { extensionDir, workspaceDir } = context;
445
365
  const configFilePath = path.join(extensionDir, EXTENSIONS_CONFIG_FILENAME);
446
366
  if (!fs.existsSync(configFilePath)) {
447
- throw new Error(`Configuration file not found at ${configFilePath}`);
367
+ return null;
448
368
  }
449
369
  try {
450
370
  const configContent = fs.readFileSync(configFilePath, 'utf-8');
@@ -455,17 +375,16 @@ export function loadExtensionConfig(context) {
455
375
  pathSeparator: path.sep,
456
376
  });
457
377
  if (!config.name || !config.version) {
458
- throw new Error(`Invalid configuration in ${configFilePath}: missing ${!config.name ? '"name"' : '"version"'}`);
378
+ return null;
459
379
  }
460
- validateName(config.name);
461
380
  return config;
462
381
  }
463
- catch (e) {
464
- throw new Error(`Failed to load extension config from ${configFilePath}: ${getErrorMessage(e)}`);
382
+ catch (_) {
383
+ return null;
465
384
  }
466
385
  }
467
386
  export async function uninstallExtension(extensionIdentifier, cwd = process.cwd()) {
468
- const telemetryConfig = getTelemetryConfig(cwd);
387
+ const logger = getClearcutLogger(cwd);
469
388
  const installedExtensions = loadUserExtensions();
470
389
  const extensionName = installedExtensions.find((installed) => installed.config.name.toLowerCase() ===
471
390
  extensionIdentifier.toLowerCase() ||
@@ -481,26 +400,17 @@ export async function uninstallExtension(extensionIdentifier, cwd = process.cwd(
481
400
  recursive: true,
482
401
  force: true,
483
402
  });
484
- logExtensionUninstall(telemetryConfig, new ExtensionUninstallEvent(extensionName, 'success'));
403
+ logger?.logExtensionUninstallEvent(new ExtensionUninstallEvent(extensionName, 'success'));
485
404
  }
486
- export function toOutputString(extension, workspaceDir) {
487
- const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
488
- const userEnabled = manager.isEnabled(extension.config.name, os.homedir());
489
- const workspaceEnabled = manager.isEnabled(extension.config.name, workspaceDir);
490
- const status = workspaceEnabled ? chalk.green('✓') : chalk.red('✗');
491
- let output = `${status} ${extension.config.name} (${extension.config.version})`;
405
+ export function toOutputString(extension) {
406
+ let output = `${extension.config.name} (${extension.config.version})`;
492
407
  output += `\n Path: ${extension.path}`;
493
408
  if (extension.installMetadata) {
494
409
  output += `\n Source: ${extension.installMetadata.source} (Type: ${extension.installMetadata.type})`;
495
410
  if (extension.installMetadata.ref) {
496
411
  output += `\n Ref: ${extension.installMetadata.ref}`;
497
412
  }
498
- if (extension.installMetadata.releaseTag) {
499
- output += `\n Release tag: ${extension.installMetadata.releaseTag}`;
500
- }
501
413
  }
502
- output += `\n Enabled (User): ${userEnabled}`;
503
- output += `\n Enabled (Workspace): ${workspaceEnabled}`;
504
414
  if (extension.contextFiles.length > 0) {
505
415
  output += `\n Context files:`;
506
416
  extension.contextFiles.forEach((contextFile) => {
@@ -522,31 +432,19 @@ export function toOutputString(extension, workspaceDir) {
522
432
  return output;
523
433
  }
524
434
  export function disableExtension(name, scope, cwd = process.cwd()) {
525
- const config = getTelemetryConfig(cwd);
526
435
  if (scope === SettingScope.System || scope === SettingScope.SystemDefaults) {
527
436
  throw new Error('System and SystemDefaults scopes are not supported.');
528
437
  }
529
- const extension = loadExtensionByName(name, cwd);
530
- if (!extension) {
531
- throw new Error(`Extension with name ${name} does not exist.`);
532
- }
533
438
  const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
534
439
  const scopePath = scope === SettingScope.Workspace ? cwd : os.homedir();
535
440
  manager.disable(name, true, scopePath);
536
- logExtensionDisable(config, new ExtensionDisableEvent(name, scope));
537
441
  }
538
442
  export function enableExtension(name, scope, cwd = process.cwd()) {
539
443
  if (scope === SettingScope.System || scope === SettingScope.SystemDefaults) {
540
444
  throw new Error('System and SystemDefaults scopes are not supported.');
541
445
  }
542
- const extension = loadExtensionByName(name, cwd);
543
- if (!extension) {
544
- throw new Error(`Extension with name ${name} does not exist.`);
545
- }
546
446
  const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
547
447
  const scopePath = scope === SettingScope.Workspace ? cwd : os.homedir();
548
448
  manager.enable(name, true, scopePath);
549
- const config = getTelemetryConfig(cwd);
550
- logExtensionEnable(config, new ExtensionEnableEvent(name, scope));
551
449
  }
552
450
  //# sourceMappingURL=extension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../src/config/extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../src/config/extension.ts"],"names":[],"mappings":"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"}
@@ -15,12 +15,8 @@ export declare function parseGitHubRepoForReleases(source: string): {
15
15
  owner: string;
16
16
  repo: string;
17
17
  };
18
- export declare function checkForExtensionUpdate(extension: GeminiCLIExtension, setExtensionUpdateState: (updateState: ExtensionUpdateState) => void, cwd?: string): Promise<void>;
19
- export interface GitHubDownloadResult {
20
- tagName: string;
21
- type: 'git' | 'github-release';
22
- }
23
- export declare function downloadFromGitHubRelease(installMetadata: ExtensionInstallMetadata, destination: string): Promise<GitHubDownloadResult>;
18
+ export declare function checkForExtensionUpdate(extension: GeminiCLIExtension, setExtensionUpdateState: (updateState: ExtensionUpdateState) => void): Promise<void>;
19
+ export declare function downloadFromGitHubRelease(installMetadata: ExtensionInstallMetadata, destination: string): Promise<string>;
24
20
  interface Asset {
25
21
  name: string;
26
22
  browser_download_url: string;