@machina.ai/cell-cli 1.8.2-rc1 → 1.10.0-rc1

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 (253) hide show
  1. package/dist/package.json +4 -3
  2. package/dist/src/commands/extensions/examples/context/GEMINI.md +9 -3
  3. package/dist/src/commands/extensions/install.d.ts +1 -0
  4. package/dist/src/commands/extensions/install.js +9 -3
  5. package/dist/src/commands/extensions/install.js.map +1 -1
  6. package/dist/src/commands/extensions/install.test.js +9 -9
  7. package/dist/src/commands/extensions/install.test.js.map +1 -1
  8. package/dist/src/commands/extensions/link.js +2 -2
  9. package/dist/src/commands/extensions/link.js.map +1 -1
  10. package/dist/src/commands/extensions/uninstall.js +1 -1
  11. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  12. package/dist/src/commands/extensions/update.js +2 -6
  13. package/dist/src/commands/extensions/update.js.map +1 -1
  14. package/dist/src/commands/mcp/list.js +2 -2
  15. package/dist/src/commands/mcp/list.js.map +1 -1
  16. package/dist/src/config/config.d.ts +3 -3
  17. package/dist/src/config/config.js +49 -10
  18. package/dist/src/config/config.js.map +1 -1
  19. package/dist/src/config/extension.d.ts +20 -18
  20. package/dist/src/config/extension.js +75 -52
  21. package/dist/src/config/extension.js.map +1 -1
  22. package/dist/src/config/extensions/extensionEnablement.d.ts +2 -2
  23. package/dist/src/config/extensions/extensionEnablement.js +1 -2
  24. package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
  25. package/dist/src/config/extensions/extensionEnablement.test.js +6 -5
  26. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
  27. package/dist/src/config/extensions/github.d.ts +8 -1
  28. package/dist/src/config/extensions/github.js +40 -66
  29. package/dist/src/config/extensions/github.js.map +1 -1
  30. package/dist/src/config/extensions/github.test.js +56 -12
  31. package/dist/src/config/extensions/github.test.js.map +1 -1
  32. package/dist/src/config/extensions/github_fetch.d.ts +7 -0
  33. package/dist/src/config/extensions/github_fetch.js +34 -0
  34. package/dist/src/config/extensions/github_fetch.js.map +1 -0
  35. package/dist/src/config/extensions/update.d.ts +1 -1
  36. package/dist/src/config/extensions/update.js +15 -12
  37. package/dist/src/config/extensions/update.js.map +1 -1
  38. package/dist/src/config/extensions/update.test.js +5 -5
  39. package/dist/src/config/extensions/update.test.js.map +1 -1
  40. package/dist/src/config/keyBindings.js +1 -1
  41. package/dist/src/config/keyBindings.js.map +1 -1
  42. package/dist/src/config/policy.js +2 -2
  43. package/dist/src/config/policy.js.map +1 -1
  44. package/dist/src/config/settings.d.ts +10 -1
  45. package/dist/src/config/settings.js +17 -6
  46. package/dist/src/config/settings.js.map +1 -1
  47. package/dist/src/config/settingsSchema.d.ts +124 -3
  48. package/dist/src/config/settingsSchema.js +125 -4
  49. package/dist/src/config/settingsSchema.js.map +1 -1
  50. package/dist/src/config/trustedFolders.d.ts +0 -1
  51. package/dist/src/config/trustedFolders.js +2 -3
  52. package/dist/src/config/trustedFolders.js.map +1 -1
  53. package/dist/src/gemini.js +24 -17
  54. package/dist/src/gemini.js.map +1 -1
  55. package/dist/src/gemini.test.js +20 -8
  56. package/dist/src/gemini.test.js.map +1 -1
  57. package/dist/src/generated/git-commit.d.ts +2 -2
  58. package/dist/src/generated/git-commit.js +2 -2
  59. package/dist/src/generated/git-commit.js.map +1 -1
  60. package/dist/src/nonInteractiveCli.js +14 -1
  61. package/dist/src/nonInteractiveCli.js.map +1 -1
  62. package/dist/src/nonInteractiveCliCommands.js +1 -2
  63. package/dist/src/nonInteractiveCliCommands.js.map +1 -1
  64. package/dist/src/services/BuiltinCommandLoader.js +3 -0
  65. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  66. package/dist/src/services/BuiltinCommandLoader.test.js +37 -0
  67. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  68. package/dist/src/services/FileCommandLoader.d.ts +1 -1
  69. package/dist/src/services/FileCommandLoader.js +4 -4
  70. package/dist/src/services/FileCommandLoader.js.map +1 -1
  71. package/dist/src/services/prompt-processors/shellProcessor.js +1 -1
  72. package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
  73. package/dist/src/test-utils/render.d.ts +11 -4
  74. package/dist/src/test-utils/render.js +53 -2
  75. package/dist/src/test-utils/render.js.map +1 -1
  76. package/dist/src/ui/App.js +1 -17
  77. package/dist/src/ui/App.js.map +1 -1
  78. package/dist/src/ui/AppContainer.js +22 -7
  79. package/dist/src/ui/AppContainer.js.map +1 -1
  80. package/dist/src/ui/auth/AuthInProgress.js +2 -2
  81. package/dist/src/ui/auth/AuthInProgress.js.map +1 -1
  82. package/dist/src/ui/commands/chatCommand.js +7 -24
  83. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  84. package/dist/src/ui/commands/extensionsCommand.js +30 -32
  85. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  86. package/dist/src/ui/commands/memoryCommand.js +23 -5
  87. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  88. package/dist/src/ui/commands/profileCommand.d.ts +7 -0
  89. package/dist/src/ui/commands/profileCommand.js +23 -0
  90. package/dist/src/ui/commands/profileCommand.js.map +1 -0
  91. package/dist/src/ui/commands/setupGithubCommand.test.js +2 -1
  92. package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
  93. package/dist/src/ui/commands/types.d.ts +1 -0
  94. package/dist/src/ui/commands/types.js.map +1 -1
  95. package/dist/src/ui/components/AnsiOutput.d.ts +1 -0
  96. package/dist/src/ui/components/AnsiOutput.js +5 -5
  97. package/dist/src/ui/components/AnsiOutput.js.map +1 -1
  98. package/dist/src/ui/components/AnsiOutput.test.js +6 -6
  99. package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
  100. package/dist/src/ui/components/AsciiArt.d.ts +3 -3
  101. package/dist/src/ui/components/AsciiArt.js +3 -3
  102. package/dist/src/ui/components/CliSpinner.d.ts +10 -0
  103. package/dist/src/ui/components/CliSpinner.js +20 -0
  104. package/dist/src/ui/components/CliSpinner.js.map +1 -0
  105. package/dist/src/ui/components/Composer.js +4 -7
  106. package/dist/src/ui/components/Composer.js.map +1 -1
  107. package/dist/src/ui/components/ContextSummaryDisplay.js +2 -2
  108. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  109. package/dist/src/ui/components/DebugProfiler.d.ts +18 -0
  110. package/dist/src/ui/components/DebugProfiler.js +158 -12
  111. package/dist/src/ui/components/DebugProfiler.js.map +1 -1
  112. package/dist/src/ui/components/DebugProfiler.test.d.ts +6 -0
  113. package/dist/src/ui/components/DebugProfiler.test.js +140 -0
  114. package/dist/src/ui/components/DebugProfiler.test.js.map +1 -0
  115. package/dist/src/ui/components/FolderTrustDialog.js +9 -5
  116. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  117. package/dist/src/ui/components/FolderTrustDialog.test.js +7 -11
  118. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  119. package/dist/src/ui/components/Footer.js +7 -6
  120. package/dist/src/ui/components/Footer.js.map +1 -1
  121. package/dist/src/ui/components/GeminiRespondingSpinner.js +2 -2
  122. package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -1
  123. package/dist/src/ui/components/Help.js +1 -1
  124. package/dist/src/ui/components/Help.js.map +1 -1
  125. package/dist/src/ui/components/HistoryItemDisplay.js +2 -1
  126. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  127. package/dist/src/ui/components/InputPrompt.d.ts +7 -1
  128. package/dist/src/ui/components/InputPrompt.js +50 -25
  129. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  130. package/dist/src/ui/components/MainContent.js +1 -1
  131. package/dist/src/ui/components/MainContent.js.map +1 -1
  132. package/dist/src/ui/components/Notifications.js +12 -4
  133. package/dist/src/ui/components/Notifications.js.map +1 -1
  134. package/dist/src/ui/components/SettingsDialog.js +1 -1
  135. package/dist/src/ui/components/SettingsDialog.test.js +1 -1
  136. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  137. package/dist/src/ui/components/WorkspaceMigrationDialog.d.ts +2 -2
  138. package/dist/src/ui/components/WorkspaceMigrationDialog.js +2 -2
  139. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -1
  140. package/dist/src/ui/components/messages/CompressionMessage.js +3 -3
  141. package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
  142. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +1 -1
  143. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  144. package/dist/src/ui/components/messages/ToolGroupMessage.js +1 -1
  145. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  146. package/dist/src/ui/components/messages/ToolMessage.js +2 -2
  147. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  148. package/dist/src/ui/components/views/ChatList.d.ts +12 -0
  149. package/dist/src/ui/components/views/ChatList.js +17 -0
  150. package/dist/src/ui/components/views/ChatList.js.map +1 -0
  151. package/dist/src/ui/components/views/ChatList.test.d.ts +6 -0
  152. package/dist/src/ui/components/views/ChatList.test.js +42 -0
  153. package/dist/src/ui/components/views/ChatList.test.js.map +1 -0
  154. package/dist/src/ui/contexts/KeypressContext.js +43 -3
  155. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  156. package/dist/src/ui/contexts/KeypressContext.test.js +127 -0
  157. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  158. package/dist/src/ui/contexts/UIStateContext.d.ts +3 -1
  159. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  160. package/dist/src/ui/hooks/shellCommandProcessor.js +5 -6
  161. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  162. package/dist/src/ui/hooks/shellCommandProcessor.test.js +19 -32
  163. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  164. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +2 -1
  165. package/dist/src/ui/hooks/slashCommandProcessor.js +9 -7
  166. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  167. package/dist/src/ui/hooks/useExtensionUpdates.js +68 -18
  168. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  169. package/dist/src/ui/hooks/useExtensionUpdates.test.js +7 -4
  170. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  171. package/dist/src/ui/hooks/useFlickerDetector.d.ts +14 -0
  172. package/dist/src/ui/hooks/useFlickerDetector.js +37 -0
  173. package/dist/src/ui/hooks/useFlickerDetector.js.map +1 -0
  174. package/dist/src/ui/hooks/useFlickerDetector.test.d.ts +6 -0
  175. package/dist/src/ui/hooks/useFlickerDetector.test.js +102 -0
  176. package/dist/src/ui/hooks/useFlickerDetector.test.js.map +1 -0
  177. package/dist/src/ui/hooks/useFolderTrust.d.ts +2 -1
  178. package/dist/src/ui/hooks/useFolderTrust.js +12 -3
  179. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  180. package/dist/src/ui/hooks/useGeminiStream.js +33 -2
  181. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  182. package/dist/src/ui/hooks/useHistoryManager.js +3 -3
  183. package/dist/src/ui/hooks/useHistoryManager.js.map +1 -1
  184. package/dist/src/ui/hooks/usePhraseCycler.js +1 -0
  185. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  186. package/dist/src/ui/hooks/useSelectionList.js +50 -23
  187. package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
  188. package/dist/src/ui/hooks/useSelectionList.test.js +24 -0
  189. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
  190. package/dist/src/ui/hooks/useShellHistory.test.js +16 -10
  191. package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
  192. package/dist/src/ui/hooks/useTerminalSize.js +2 -3
  193. package/dist/src/ui/hooks/useTerminalSize.js.map +1 -1
  194. package/dist/src/ui/hooks/useWorkspaceMigration.d.ts +2 -2
  195. package/dist/src/ui/hooks/useWorkspaceMigration.js +13 -8
  196. package/dist/src/ui/hooks/useWorkspaceMigration.js.map +1 -1
  197. package/dist/src/ui/layouts/DefaultAppLayout.d.ts +1 -3
  198. package/dist/src/ui/layouts/DefaultAppLayout.js +5 -2
  199. package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -1
  200. package/dist/src/ui/layouts/ScreenReaderAppLayout.js +4 -1
  201. package/dist/src/ui/layouts/ScreenReaderAppLayout.js.map +1 -1
  202. package/dist/src/ui/noninteractive/nonInteractiveUi.js +1 -0
  203. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -1
  204. package/dist/src/ui/state/extensions.d.ts +22 -3
  205. package/dist/src/ui/state/extensions.js +26 -4
  206. package/dist/src/ui/state/extensions.js.map +1 -1
  207. package/dist/src/ui/types.d.ts +11 -2
  208. package/dist/src/ui/types.js +1 -0
  209. package/dist/src/ui/types.js.map +1 -1
  210. package/dist/src/ui/utils/ui-sizing.d.ts +7 -0
  211. package/dist/src/ui/utils/ui-sizing.js +23 -0
  212. package/dist/src/ui/utils/ui-sizing.js.map +1 -0
  213. package/dist/src/utils/commentJson.js +95 -13
  214. package/dist/src/utils/commentJson.js.map +1 -1
  215. package/dist/src/utils/commentJson.test.js +161 -0
  216. package/dist/src/utils/commentJson.test.js.map +1 -1
  217. package/dist/src/utils/errors.d.ts +8 -3
  218. package/dist/src/utils/errors.js +23 -13
  219. package/dist/src/utils/errors.js.map +1 -1
  220. package/dist/src/utils/errors.test.js +40 -46
  221. package/dist/src/utils/errors.test.js.map +1 -1
  222. package/dist/src/utils/events.d.ts +2 -1
  223. package/dist/src/utils/events.js +1 -0
  224. package/dist/src/utils/events.js.map +1 -1
  225. package/dist/src/utils/handleAutoUpdate.js +4 -1
  226. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  227. package/dist/src/utils/installationInfo.d.ts +1 -0
  228. package/dist/src/utils/installationInfo.js +2 -0
  229. package/dist/src/utils/installationInfo.js.map +1 -1
  230. package/dist/src/utils/sandbox.js +8 -8
  231. package/dist/src/utils/sandbox.js.map +1 -1
  232. package/dist/src/utils/sessionCleanup.d.ts +22 -0
  233. package/dist/src/utils/sessionCleanup.integration.test.d.ts +6 -0
  234. package/dist/src/utils/sessionCleanup.integration.test.js +182 -0
  235. package/dist/src/utils/sessionCleanup.integration.test.js.map +1 -0
  236. package/dist/src/utils/sessionCleanup.js +214 -0
  237. package/dist/src/utils/sessionCleanup.js.map +1 -0
  238. package/dist/src/utils/sessionCleanup.test.d.ts +6 -0
  239. package/dist/src/utils/sessionCleanup.test.js +1232 -0
  240. package/dist/src/utils/sessionCleanup.test.js.map +1 -0
  241. package/dist/src/utils/sessionUtils.d.ts +37 -0
  242. package/dist/src/utils/sessionUtils.js +71 -0
  243. package/dist/src/utils/sessionUtils.js.map +1 -0
  244. package/dist/src/validateNonInterActiveAuth.js +6 -7
  245. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  246. package/dist/src/zed-integration/acp.js +1 -2
  247. package/dist/src/zed-integration/acp.js.map +1 -1
  248. package/dist/src/zed-integration/schema.d.ts +176 -176
  249. package/dist/src/zed-integration/zedIntegration.d.ts +2 -3
  250. package/dist/src/zed-integration/zedIntegration.js +7 -26
  251. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  252. package/dist/tsconfig.tsbuildinfo +1 -1
  253. package/package.json +4 -3
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@machina.ai/cell-cli",
3
- "version": "1.8.2-rc1",
3
+ "version": "1.10.0-rc1",
4
4
  "description": "Cell CLI",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,10 +15,10 @@
15
15
  ""
16
16
  ],
17
17
  "config": {
18
- "sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.8.2"
18
+ "sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.10.0"
19
19
  },
20
20
  "dependencies": {
21
- "@google/gemini-cli-core": "npm:@machina.ai/cell-cli-core@1.8.2-rc1",
21
+ "@google/gemini-cli-core": "npm:@machina.ai/cell-cli-core@1.10.0-rc1",
22
22
  "@google/genai": "1.16.0",
23
23
  "@iarna/toml": "^2.2.5",
24
24
  "@machina.ai/api-proxy": "1.0.21-rc2",
@@ -39,6 +39,7 @@
39
39
  "ink-spinner": "^5.0.0",
40
40
  "ink-text-input": "^6.0.0",
41
41
  "lowlight": "^3.3.0",
42
+ "mnemonist": "^0.40.3",
42
43
  "open": "^10.1.2",
43
44
  "react": "^19.1.0",
44
45
  "read-package-up": "^11.0.0",
@@ -1,8 +1,14 @@
1
1
  # Ink Library Screen Reader Guidance
2
2
 
3
- When building custom components, it's important to keep accessibility in mind. While Ink provides the building blocks, ensuring your components are accessible will make your CLIs usable by a wider audience.
3
+ When building custom components, it's important to keep accessibility in mind.
4
+ While Ink provides the building blocks, ensuring your components are accessible
5
+ will make your CLIs usable by a wider audience.
4
6
 
5
7
  ## General Principles
6
8
 
7
- Provide screen reader-friendly output: Use the useIsScreenReaderEnabled hook to detect if a screen reader is active. You can then render a more descriptive output for screen reader users.
8
- Leverage ARIA props: For components that have a specific role (e.g., a checkbox or a button), use the aria-role, aria-state, and aria-label props on <Box> and <Text> to provide semantic meaning to screen readers.
9
+ Provide screen reader-friendly output: Use the useIsScreenReaderEnabled hook to
10
+ detect if a screen reader is active. You can then render a more descriptive
11
+ output for screen reader users. Leverage ARIA props: For components that have a
12
+ specific role (e.g., a checkbox or a button), use the aria-role, aria-state, and
13
+ aria-label props on <Box> and <Text> to provide semantic meaning to screen
14
+ readers.
@@ -8,6 +8,7 @@ interface InstallArgs {
8
8
  source: string;
9
9
  ref?: string;
10
10
  autoUpdate?: boolean;
11
+ allowPreRelease?: boolean;
11
12
  }
12
13
  export declare function handleInstall(args: InstallArgs): Promise<void>;
13
14
  export declare const installCommand: CommandModule;
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { installExtension, requestConsentNonInteractive, } from '../../config/extension.js';
6
+ import { installOrUpdateExtension, requestConsentNonInteractive, } from '../../config/extension.js';
7
7
  import { getErrorMessage } from '../../utils/errors.js';
8
8
  import { stat } from 'node:fs/promises';
9
9
  export async function handleInstall(args) {
@@ -19,6 +19,7 @@ export async function handleInstall(args) {
19
19
  type: 'git',
20
20
  ref: args.ref,
21
21
  autoUpdate: args.autoUpdate,
22
+ allowPreRelease: args.allowPreRelease,
22
23
  };
23
24
  }
24
25
  else {
@@ -36,7 +37,7 @@ export async function handleInstall(args) {
36
37
  throw new Error('Install source not found.');
37
38
  }
38
39
  }
39
- const name = await installExtension(installMetadata, requestConsentNonInteractive);
40
+ const name = await installOrUpdateExtension(installMetadata, requestConsentNonInteractive);
40
41
  console.log(`Extension "${name}" installed successfully and enabled.`);
41
42
  }
42
43
  catch (error) {
@@ -45,7 +46,7 @@ export async function handleInstall(args) {
45
46
  }
46
47
  }
47
48
  export const installCommand = {
48
- command: 'install <source>',
49
+ command: 'install <source> [--auto-update] [--pre-release]',
49
50
  describe: 'Installs an extension from a git repository URL or a local path.',
50
51
  builder: (yargs) => yargs
51
52
  .positional('source', {
@@ -60,6 +61,10 @@ export const installCommand = {
60
61
  .option('auto-update', {
61
62
  describe: 'Enable auto-update for this extension.',
62
63
  type: 'boolean',
64
+ })
65
+ .option('pre-release', {
66
+ describe: 'Enable pre-release versions for this extension.',
67
+ type: 'boolean',
63
68
  })
64
69
  .check((argv) => {
65
70
  if (!argv.source) {
@@ -72,6 +77,7 @@ export const installCommand = {
72
77
  source: argv['source'],
73
78
  ref: argv['ref'],
74
79
  autoUpdate: argv['auto-update'],
80
+ allowPreRelease: argv['pre-release'],
75
81
  });
76
82
  },
77
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/commands/extensions/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAQxC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAiB;IACnD,IAAI,CAAC;QACH,IAAI,eAAyC,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,IACE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;YAC5B,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;YAC7B,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;YACzB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC3B,CAAC;YACD,eAAe,GAAG;gBAChB,MAAM;gBACN,IAAI,EAAE,KAAK;gBACX,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;YACJ,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,eAAe,GAAG;oBAChB,MAAM;oBACN,IAAI,EAAE,OAAO;iBACd,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,gBAAgB,CACjC,eAAe,EACf,4BAA4B,CAC7B,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,uCAAuC,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,OAAO,EAAE,kBAAkB;IAC3B,QAAQ,EAAE,kEAAkE;IAC5E,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,QAAQ,EAAE;QACpB,QAAQ,EAAE,2DAA2D;QACrE,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,QAAQ,EAAE,8BAA8B;QACxC,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,aAAa,EAAE;QACrB,QAAQ,EAAE,wCAAwC;QAClD,IAAI,EAAE,SAAS;KAChB,CAAC;SACD,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,aAAa,CAAC;YAClB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAW;YAChC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAuB;YACtC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAwB;SACvD,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/commands/extensions/install.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,11 @@
6
6
  import { describe, it, expect, vi } from 'vitest';
7
7
  import { handleInstall, installCommand } from './install.js';
8
8
  import yargs from 'yargs';
9
- const mockInstallExtension = vi.hoisted(() => vi.fn());
9
+ const mockInstallOrUpdateExtension = vi.hoisted(() => vi.fn());
10
10
  const mockRequestConsentNonInteractive = vi.hoisted(() => vi.fn());
11
11
  const mockStat = vi.hoisted(() => vi.fn());
12
12
  vi.mock('../../config/extension.js', () => ({
13
- installExtension: mockInstallExtension,
13
+ installOrUpdateExtension: mockInstallOrUpdateExtension,
14
14
  requestConsentNonInteractive: mockRequestConsentNonInteractive,
15
15
  }));
16
16
  vi.mock('../../utils/errors.js', () => ({
@@ -40,27 +40,27 @@ describe('handleInstall', () => {
40
40
  .mockImplementation(() => undefined);
41
41
  });
42
42
  afterEach(() => {
43
- mockInstallExtension.mockClear();
43
+ mockInstallOrUpdateExtension.mockClear();
44
44
  mockRequestConsentNonInteractive.mockClear();
45
45
  mockStat.mockClear();
46
46
  vi.resetAllMocks();
47
47
  });
48
48
  it('should install an extension from a http source', async () => {
49
- mockInstallExtension.mockResolvedValue('http-extension');
49
+ mockInstallOrUpdateExtension.mockResolvedValue('http-extension');
50
50
  await handleInstall({
51
51
  source: 'http://google.com',
52
52
  });
53
53
  expect(consoleLogSpy).toHaveBeenCalledWith('Extension "http-extension" installed successfully and enabled.');
54
54
  });
55
55
  it('should install an extension from a https source', async () => {
56
- mockInstallExtension.mockResolvedValue('https-extension');
56
+ mockInstallOrUpdateExtension.mockResolvedValue('https-extension');
57
57
  await handleInstall({
58
58
  source: 'https://google.com',
59
59
  });
60
60
  expect(consoleLogSpy).toHaveBeenCalledWith('Extension "https-extension" installed successfully and enabled.');
61
61
  });
62
62
  it('should install an extension from a git source', async () => {
63
- mockInstallExtension.mockResolvedValue('git-extension');
63
+ mockInstallOrUpdateExtension.mockResolvedValue('git-extension');
64
64
  await handleInstall({
65
65
  source: 'git@some-url',
66
66
  });
@@ -75,14 +75,14 @@ describe('handleInstall', () => {
75
75
  expect(processSpy).toHaveBeenCalledWith(1);
76
76
  });
77
77
  it('should install an extension from a sso source', async () => {
78
- mockInstallExtension.mockResolvedValue('sso-extension');
78
+ mockInstallOrUpdateExtension.mockResolvedValue('sso-extension');
79
79
  await handleInstall({
80
80
  source: 'sso://google.com',
81
81
  });
82
82
  expect(consoleLogSpy).toHaveBeenCalledWith('Extension "sso-extension" installed successfully and enabled.');
83
83
  });
84
84
  it('should install an extension from a local path', async () => {
85
- mockInstallExtension.mockResolvedValue('local-extension');
85
+ mockInstallOrUpdateExtension.mockResolvedValue('local-extension');
86
86
  mockStat.mockResolvedValue({});
87
87
  await handleInstall({
88
88
  source: '/some/path',
@@ -90,7 +90,7 @@ describe('handleInstall', () => {
90
90
  expect(consoleLogSpy).toHaveBeenCalledWith('Extension "local-extension" installed successfully and enabled.');
91
91
  });
92
92
  it('should throw an error if install extension fails', async () => {
93
- mockInstallExtension.mockRejectedValue(new Error('Install extension failed'));
93
+ mockInstallOrUpdateExtension.mockRejectedValue(new Error('Install extension failed'));
94
94
  await handleInstall({ source: 'git@some-url' });
95
95
  expect(consoleErrorSpy).toHaveBeenCalledWith('Install extension failed');
96
96
  expect(processSpy).toHaveBeenCalledWith(1);
@@ -1 +1 @@
1
- {"version":3,"file":"install.test.js","sourceRoot":"","sources":["../../../../src/commands/extensions/install.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.test.js","sourceRoot":"","sources":["../../../../src/commands/extensions/install.test.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { installExtension, requestConsentNonInteractive, } from '../../config/extension.js';
6
+ import { installOrUpdateExtension, requestConsentNonInteractive, } from '../../config/extension.js';
7
7
  import { getErrorMessage } from '../../utils/errors.js';
8
8
  export async function handleLink(args) {
9
9
  try {
@@ -11,7 +11,7 @@ export async function handleLink(args) {
11
11
  source: args.path,
12
12
  type: 'link',
13
13
  };
14
- const extensionName = await installExtension(installMetadata, requestConsentNonInteractive);
14
+ const extensionName = await installOrUpdateExtension(installMetadata, requestConsentNonInteractive);
15
15
  console.log(`Extension "${extensionName}" linked successfully and enabled.`);
16
16
  }
17
17
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../../src/commands/extensions/link.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAiB;IAChD,IAAI,CAAC;QACH,MAAM,eAAe,GAA6B;YAChD,MAAM,EAAE,IAAI,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM;SACb,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAC1C,eAAe,EACf,4BAA4B,CAC7B,CAAC;QACF,OAAO,CAAC,GAAG,CACT,cAAc,aAAa,oCAAoC,CAChE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,OAAO,EAAE,aAAa;IACtB,QAAQ,EACN,gGAAgG;IAClG,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,oCAAoC;QAC9C,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;IACvB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,UAAU,CAAC;YACf,IAAI,EAAE,IAAI,CAAC,MAAM,CAAW;SAC7B,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../../src/commands/extensions/link.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAiB;IAChD,IAAI,CAAC;QACH,MAAM,eAAe,GAA6B;YAChD,MAAM,EAAE,IAAI,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM;SACb,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAClD,eAAe,EACf,4BAA4B,CAC7B,CAAC;QACF,OAAO,CAAC,GAAG,CACT,cAAc,aAAa,oCAAoC,CAChE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,OAAO,EAAE,aAAa;IACtB,QAAQ,EACN,gGAAgG;IAClG,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,oCAAoC;QAC9C,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;IACvB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,UAAU,CAAC;YACf,IAAI,EAAE,IAAI,CAAC,MAAM,CAAW;SAC7B,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -7,7 +7,7 @@ import { uninstallExtension } from '../../config/extension.js';
7
7
  import { getErrorMessage } from '../../utils/errors.js';
8
8
  export async function handleUninstall(args) {
9
9
  try {
10
- await uninstallExtension(args.name);
10
+ await uninstallExtension(args.name, false);
11
11
  console.log(`Extension "${args.name}" successfully uninstalled.`);
12
12
  }
13
13
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../../src/commands/extensions/uninstall.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAmB;IACvD,IAAI,CAAC;QACH,MAAM,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,6BAA6B,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAkB;IAC7C,OAAO,EAAE,kBAAkB;IAC3B,QAAQ,EAAE,0BAA0B;IACpC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,wDAAwD;QAClE,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,eAAe,CAAC;YACpB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAW;SAC7B,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../../src/commands/extensions/uninstall.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAmB;IACvD,IAAI,CAAC;QACH,MAAM,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,6BAA6B,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAkB;IAC7C,OAAO,EAAE,kBAAkB;IAC3B,QAAQ,EAAE,0BAA0B;IACpC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,wDAAwD;QAClE,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,eAAe,CAAC;YACpB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAW;SAC7B,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -25,14 +25,11 @@ export async function handleUpdate(args) {
25
25
  console.log(`Extension "${args.name}" not found.`);
26
26
  return;
27
27
  }
28
- let updateState;
29
28
  if (!extension.installMetadata) {
30
29
  console.log(`Unable to install extension "${args.name}" due to missing install metadata`);
31
30
  return;
32
31
  }
33
- await checkForExtensionUpdate(extension, (newState) => {
34
- updateState = newState;
35
- });
32
+ const updateState = await checkForExtensionUpdate(extension);
36
33
  if (updateState !== ExtensionUpdateState.UPDATE_AVAILABLE) {
37
34
  console.log(`Extension "${args.name}" is already up to date.`);
38
35
  return;
@@ -58,10 +55,9 @@ export async function handleUpdate(args) {
58
55
  if (action.type === 'SET_STATE') {
59
56
  extensionState.set(action.payload.name, {
60
57
  status: action.payload.state,
61
- processed: true, // No need to process as we will force the update.
62
58
  });
63
59
  }
64
- });
60
+ }, workingDir);
65
61
  let updateInfos = await updateAllUpdatableExtensions(workingDir, requestConsentNonInteractive, extensions, extensionState, () => { });
66
62
  updateInfos = updateInfos.filter((info) => info.originalVersion !== info.updatedVersion);
67
63
  if (updateInfos.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/extensions/update.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,4BAA4B,EAE5B,2BAA2B,EAC3B,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AAO5F,MAAM,YAAY,GAAG,CAAC,IAAyB,EAAE,EAAE,CACjD,cAAc,IAAI,CAAC,IAAI,2BAA2B,IAAI,CAAC,eAAe,MAAM,IAAI,CAAC,cAAc,GAAG,CAAC;AAErG,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAgB;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,0BAA0B,GAAG,IAAI,0BAA0B,CAC/D,gBAAgB,CAAC,oBAAoB,EAAE;IACvC,2EAA2E;IAC3E,QAAQ;IACR,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAC7B,CAAC;IACF,MAAM,aAAa,GAAG,cAAc,CAAC,0BAA0B,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,wBAAwB,CACzC,aAAa,EACb,UAAU,EACV,0BAA0B,CAC3B,CAAC;IACF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAC/B,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAC5C,CAAC;YACF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;YACD,IAAI,WAA6C,CAAC;YAClD,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CACT,gCAAgC,IAAI,CAAC,IAAI,mCAAmC,CAC7E,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,uBAAuB,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACpD,WAAW,GAAG,QAAQ,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,IAAI,WAAW,KAAK,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YACD,wFAAwF;YACxF,MAAM,oBAAoB,GAAG,CAAC,MAAM,eAAe,CACjD,SAAS,EACT,UAAU,EACV,4BAA4B,EAC5B,WAAW,EACX,GAAG,EAAE,GAAE,CAAC,CACT,CAAE,CAAC;YACJ,IACE,oBAAoB,CAAC,eAAe;gBACpC,oBAAoB,CAAC,cAAc,EACnC,CAAC;gBACD,OAAO,CAAC,GAAG,CACT,cAAc,IAAI,CAAC,IAAI,2BAA2B,oBAAoB,CAAC,eAAe,MAAM,oBAAoB,CAAC,cAAc,GAAG,CACnI,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;YACjC,MAAM,2BAA2B,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;gBACvD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;wBACtC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;wBAC5B,SAAS,EAAE,IAAI,EAAE,kDAAkD;qBACpE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,WAAW,GAAG,MAAM,4BAA4B,CAClD,UAAU,EACV,4BAA4B,EAC5B,UAAU,EACV,cAAc,EACd,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;YACF,WAAW,GAAG,WAAW,CAAC,MAAM,CAC9B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,cAAc,CACvD,CAAC;YACF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,OAAO,EAAE,yBAAyB;IAClC,QAAQ,EACN,oEAAoE;IACtE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,sCAAsC;QAChD,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,QAAQ,EAAE,wBAAwB;QAClC,IAAI,EAAE,SAAS;KAChB,CAAC;SACD,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC;SACxB,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,YAAY,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAuB;YACxC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAwB;SACxC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/extensions/update.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,4BAA4B,EAE5B,2BAA2B,EAC3B,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AAO5F,MAAM,YAAY,GAAG,CAAC,IAAyB,EAAE,EAAE,CACjD,cAAc,IAAI,CAAC,IAAI,2BAA2B,IAAI,CAAC,eAAe,MAAM,IAAI,CAAC,cAAc,GAAG,CAAC;AAErG,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAgB;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,0BAA0B,GAAG,IAAI,0BAA0B,CAC/D,gBAAgB,CAAC,oBAAoB,EAAE;IACvC,2EAA2E;IAC3E,QAAQ;IACR,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAC7B,CAAC;IACF,MAAM,aAAa,GAAG,cAAc,CAAC,0BAA0B,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,wBAAwB,CACzC,aAAa,EACb,UAAU,EACV,0BAA0B,CAC3B,CAAC;IACF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAC/B,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAC5C,CAAC;YACF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CACT,gCAAgC,IAAI,CAAC,IAAI,mCAAmC,CAC7E,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,SAAS,CAAC,CAAC;YAC7D,IAAI,WAAW,KAAK,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YACD,wFAAwF;YACxF,MAAM,oBAAoB,GAAG,CAAC,MAAM,eAAe,CACjD,SAAS,EACT,UAAU,EACV,4BAA4B,EAC5B,WAAW,EACX,GAAG,EAAE,GAAE,CAAC,CACT,CAAE,CAAC;YACJ,IACE,oBAAoB,CAAC,eAAe;gBACpC,oBAAoB,CAAC,cAAc,EACnC,CAAC;gBACD,OAAO,CAAC,GAAG,CACT,cAAc,IAAI,CAAC,IAAI,2BAA2B,oBAAoB,CAAC,eAAe,MAAM,oBAAoB,CAAC,cAAc,GAAG,CACnI,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;YACjC,MAAM,2BAA2B,CAC/B,UAAU,EACV,CAAC,MAAM,EAAE,EAAE;gBACT,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;wBACtC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;qBAC7B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,EACD,UAAU,CACX,CAAC;YACF,IAAI,WAAW,GAAG,MAAM,4BAA4B,CAClD,UAAU,EACV,4BAA4B,EAC5B,UAAU,EACV,cAAc,EACd,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;YACF,WAAW,GAAG,WAAW,CAAC,MAAM,CAC9B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,cAAc,CACvD,CAAC;YACF,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,OAAO,EAAE,yBAAyB;IAClC,QAAQ,EACN,oEAAoE;IACtE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,sCAAsC;QAChD,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,QAAQ,EAAE,wBAAwB;QAClC,IAAI,EAAE,SAAS;KAChB,CAAC;SACD,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC;SACxB,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,YAAY,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAuB;YACxC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAwB;SACxC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -17,13 +17,13 @@ async function getMcpServersFromConfig() {
17
17
  const extensions = loadExtensions(new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir()));
18
18
  const mcpServers = { ...(settings.merged.mcpServers || {}) };
19
19
  for (const extension of extensions) {
20
- Object.entries(extension.config.mcpServers || {}).forEach(([key, server]) => {
20
+ Object.entries(extension.mcpServers || {}).forEach(([key, server]) => {
21
21
  if (mcpServers[key]) {
22
22
  return;
23
23
  }
24
24
  mcpServers[key] = {
25
25
  ...server,
26
- extensionName: extension.config.name,
26
+ extensionName: extension.name,
27
27
  };
28
28
  });
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/mcp/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/mcp/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAC;AAE5F,MAAM,WAAW,GAAG,YAAY,CAAC;AACjC,MAAM,YAAY,GAAG,YAAY,CAAC;AAClC,MAAM,SAAS,GAAG,YAAY,CAAC;AAC/B,MAAM,WAAW,GAAG,WAAW,CAAC;AAEhC,KAAK,UAAU,uBAAuB;IAGpC,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,cAAc,CAC/B,IAAI,0BAA0B,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,CACxE,CAAC;IACF,MAAM,UAAU,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;IAC7D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;YACnE,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,GAAG;gBAChB,GAAG,MAAM;gBACT,aAAa,EAAE,SAAS,CAAC,IAAI;aAC9B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,UAAkB,EAClB,MAAuB;IAEvB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,IAAI,SAAS,CAAC;IACd,IAAI,CAAC;QACH,gDAAgD;QAChD,SAAS,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,eAAe,CAAC,YAAY,CAAC;IACtC,CAAC;IAED,IAAI,CAAC;QACH,mDAAmD;QACnD,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,aAAa;QAEjE,gDAAgD;QAChD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAEpB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,eAAe,CAAC,SAAS,CAAC;IACnC,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,eAAe,CAAC,YAAY,CAAC;IACtC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,UAAkB,EAClB,MAAuB;IAEvB,wDAAwD;IACxD,OAAO,MAAM,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,UAAU,GAAG,MAAM,uBAAuB,EAAE,CAAC;IACnD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAEzC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAEzD,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,eAAe,CAAC,SAAS;gBAC5B,eAAe,GAAG,WAAW,GAAG,GAAG,GAAG,WAAW,CAAC;gBAClD,UAAU,GAAG,WAAW,CAAC;gBACzB,MAAM;YACR,KAAK,eAAe,CAAC,UAAU;gBAC7B,eAAe,GAAG,YAAY,GAAG,GAAG,GAAG,WAAW,CAAC;gBACnD,UAAU,GAAG,YAAY,CAAC;gBAC1B,MAAM;YACR,KAAK,eAAe,CAAC,YAAY,CAAC;YAClC;gBACE,eAAe,GAAG,SAAS,GAAG,GAAG,GAAG,WAAW,CAAC;gBAChD,UAAU,GAAG,cAAc,CAAC;gBAC5B,MAAM;QACV,CAAC;QAED,IAAI,UAAU,GAAG,GAAG,UAAU,IAAI,CAAC;QACnC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,UAAU,IAAI,GAAG,MAAM,CAAC,OAAO,SAAS,CAAC;QAC3C,CAAC;aAAM,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACtB,UAAU,IAAI,GAAG,MAAM,CAAC,GAAG,QAAQ,CAAC;QACtC,CAAC;aAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1B,UAAU,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC;QAC5E,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,IAAI,UAAU,MAAM,UAAU,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,iCAAiC;IAC3C,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,cAAc,EAAE,CAAC;IACzB,CAAC;CACF,CAAC"}
@@ -3,10 +3,9 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import type { FileFilteringOptions } from '@google/gemini-cli-core';
6
+ import type { FileFilteringOptions, GeminiCLIExtension } from '@google/gemini-cli-core';
7
7
  import { Config, FileDiscoveryService } from '@google/gemini-cli-core';
8
8
  import type { Settings } from './settings.js';
9
- import type { Extension } from './extension.js';
10
9
  import type { ExtensionEnablementManager } from './extensions/extensionEnablement.js';
11
10
  export interface CliArgs {
12
11
  query: string | undefined;
@@ -45,6 +44,7 @@ export declare function parseArguments(settings: Settings): Promise<CliArgs>;
45
44
  export declare function loadHierarchicalGeminiMemory(currentWorkingDirectory: string, includeDirectoriesToReadGemini: readonly string[] | undefined, debugMode: boolean, fileService: FileDiscoveryService, settings: Settings, extensionContextFilePaths: string[] | undefined, folderTrust: boolean, memoryImportFormat?: 'flat' | 'tree', fileFilteringOptions?: FileFilteringOptions): Promise<{
46
45
  memoryContent: string;
47
46
  fileCount: number;
47
+ filePaths: string[];
48
48
  }>;
49
49
  export declare function isDebugMode(argv: CliArgs): boolean;
50
- export declare function loadCliConfig(settings: Settings, extensions: Extension[], extensionEnablementManager: ExtensionEnablementManager, sessionId: string, argv: CliArgs, cwd?: string): Promise<Config>;
50
+ export declare function loadCliConfig(settings: Settings, extensions: GeminiCLIExtension[], extensionEnablementManager: ExtensionEnablementManager, sessionId: string, argv: CliArgs, cwd?: string): Promise<Config>;
@@ -11,7 +11,7 @@ import { hideBin } from 'yargs/helpers';
11
11
  import process from 'node:process';
12
12
  import { mcpCommand } from '../commands/mcp.js';
13
13
  import { extensionsCommand } from '../commands/extensions.js';
14
- import { Config, loadServerHierarchicalMemory, setGeminiMdFilename as setServerGeminiMdFilename, getCurrentGeminiMdFilename, ApprovalMode, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, FileDiscoveryService, ShellTool, EditTool, WriteFileTool, resolveTelemetrySettings, FatalConfigError, } from '@google/gemini-cli-core';
14
+ import { Config, loadServerHierarchicalMemory, setGeminiMdFilename as setServerGeminiMdFilename, getCurrentGeminiMdFilename, ApprovalMode, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, FileDiscoveryService, ShellTool, EditTool, WRITE_FILE_TOOL_NAME, SHELL_TOOL_NAMES, resolveTelemetrySettings, FatalConfigError, getPty, } from '@google/gemini-cli-core';
15
15
  import { AuthProviderKeycloak } from '@machina.ai/auth-keycloak';
16
16
  import { annotateActiveExtensions } from './extension.js';
17
17
  import { getCliVersion } from '../utils/version.js';
@@ -158,6 +158,7 @@ export async function parseArguments(settings) {
158
158
  alias: 'e',
159
159
  type: 'array',
160
160
  string: true,
161
+ nargs: 1,
161
162
  description: 'A list of extensions to use. If not provided, all extensions are used.',
162
163
  coerce: (extensions) =>
163
164
  // Handle comma-separated values
@@ -279,6 +280,30 @@ export async function loadHierarchicalGeminiMemory(currentWorkingDirectory, incl
279
280
  // Directly call the server function with the corrected path.
280
281
  return loadServerHierarchicalMemory(effectiveCwd, includeDirectoriesToReadGemini, debugMode, fileService, extensionContextFilePaths, folderTrust, memoryImportFormat, fileFilteringOptions, settings.context?.discoveryMaxDirs);
281
282
  }
283
+ /**
284
+ * Creates a filter function to determine if a tool should be excluded.
285
+ *
286
+ * In non-interactive mode, we want to disable tools that require user
287
+ * interaction to prevent the CLI from hanging. This function creates a predicate
288
+ * that returns `true` if a tool should be excluded.
289
+ *
290
+ * A tool is excluded if it's not in the `allowedToolsSet`. The shell tool
291
+ * has a special case: it's not excluded if any of its subcommands
292
+ * are in the `allowedTools` list.
293
+ *
294
+ * @param allowedTools A list of explicitly allowed tool names.
295
+ * @param allowedToolsSet A set of explicitly allowed tool names for quick lookups.
296
+ * @returns A function that takes a tool name and returns `true` if it should be excluded.
297
+ */
298
+ function createToolExclusionFilter(allowedTools, allowedToolsSet) {
299
+ return (tool) => {
300
+ if (tool === ShellTool.Name) {
301
+ // If any of the allowed tools is ShellTool (even with subcommands), don't exclude it.
302
+ return !allowedTools.some((allowed) => SHELL_TOOL_NAMES.some((shellName) => allowed.startsWith(shellName)));
303
+ }
304
+ return !allowedToolsSet.has(tool);
305
+ };
306
+ }
282
307
  export function isDebugMode(argv) {
283
308
  return (argv.debug ||
284
309
  [process.env['DEBUG'], process.env['DEBUG_MODE']].some((v) => v === 'true' || v === '1'));
@@ -324,7 +349,7 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
324
349
  .map(resolvePath)
325
350
  .concat((argv.includeDirectories || []).map(resolvePath));
326
351
  // Call the (now wrapper) loadHierarchicalGeminiMemory which calls the server's version
327
- const { memoryContent, fileCount } = await loadHierarchicalGeminiMemory(cwd, settings.context?.loadMemoryFromIncludeDirectories
352
+ const { memoryContent, fileCount, filePaths } = await loadHierarchicalGeminiMemory(cwd, settings.context?.loadMemoryFromIncludeDirectories
328
353
  ? includeDirectories
329
354
  : [], debugMode, fileService, settings, extensionContextFilePaths, trustedFolder, memoryImportFormat, fileFiltering);
330
355
  let mcpServers = mergeMcpServers(settings, activeExtensions);
@@ -372,6 +397,8 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
372
397
  throw err;
373
398
  }
374
399
  const policyEngineConfig = createPolicyEngineConfig(settings, approvalMode);
400
+ const allowedTools = argv.allowedTools || settings.tools?.allowed || [];
401
+ const allowedToolsSet = new Set(allowedTools);
375
402
  // Interactive mode: explicit -i flag or (TTY + no args + no -p flag)
376
403
  const hasQuery = !!argv.query;
377
404
  const interactive = !!argv.promptInteractive ||
@@ -379,14 +406,21 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
379
406
  // In non-interactive mode, exclude tools that require a prompt.
380
407
  const extraExcludes = [];
381
408
  if (!interactive && !argv.experimentalAcp) {
409
+ const defaultExcludes = [
410
+ ShellTool.Name,
411
+ EditTool.Name,
412
+ WRITE_FILE_TOOL_NAME,
413
+ ];
414
+ const autoEditExcludes = [ShellTool.Name];
415
+ const toolExclusionFilter = createToolExclusionFilter(allowedTools, allowedToolsSet);
382
416
  switch (approvalMode) {
383
417
  case ApprovalMode.DEFAULT:
384
418
  // In default non-interactive mode, all tools that require approval are excluded.
385
- extraExcludes.push(ShellTool.Name, EditTool.Name, WriteFileTool.Name);
419
+ extraExcludes.push(...defaultExcludes.filter(toolExclusionFilter));
386
420
  break;
387
421
  case ApprovalMode.AUTO_EDIT:
388
422
  // In auto-edit non-interactive mode, only tools that still require a prompt are excluded.
389
- extraExcludes.push(ShellTool.Name);
423
+ extraExcludes.push(...autoEditExcludes.filter(toolExclusionFilter));
390
424
  break;
391
425
  case ApprovalMode.YOLO:
392
426
  // No extra excludes for YOLO mode.
@@ -424,6 +458,7 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
424
458
  const screenReader = argv.screenReader !== undefined
425
459
  ? argv.screenReader
426
460
  : (settings.ui?.accessibility?.screenReader ?? false);
461
+ const ptyInfo = await getPty();
427
462
  return new Config({
428
463
  sessionId,
429
464
  embeddingModel: DEFAULT_GEMINI_EMBEDDING_MODEL,
@@ -435,7 +470,7 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
435
470
  question,
436
471
  fullContext: argv.allFiles || false,
437
472
  coreTools: settings.tools?.core || undefined,
438
- allowedTools: argv.allowedTools || settings.tools?.allowed || undefined,
473
+ allowedTools: allowedTools.length > 0 ? allowedTools : undefined,
439
474
  policyEngineConfig,
440
475
  excludeTools,
441
476
  toolDiscoveryCommand: settings.tools?.discoveryCommand,
@@ -444,6 +479,7 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
444
479
  mcpServers,
445
480
  userMemory: memoryContent,
446
481
  geminiMdFileCount: fileCount,
482
+ geminiMdFilePaths: filePaths,
447
483
  approvalMode,
448
484
  showMemoryUsage: argv.showMemoryUsage || settings.ui?.showMemoryUsage || false,
449
485
  accessibility: {
@@ -452,7 +488,7 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
452
488
  },
453
489
  telemetry: telemetrySettings,
454
490
  usageStatisticsEnabled: settings.privacy?.usageStatisticsEnabled ?? true,
455
- fileFiltering: settings.context?.fileFiltering,
491
+ fileFiltering,
456
492
  checkpointing: argv.checkpointing || settings.general?.checkpointing?.enabled,
457
493
  proxy: argv.proxy ||
458
494
  process.env['HTTPS_PROXY'] ||
@@ -481,7 +517,7 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
481
517
  interactive,
482
518
  trustedFolder,
483
519
  useRipgrep: settings.tools?.useRipgrep,
484
- shouldUseNodePtyShell: settings.tools?.shell?.enableInteractiveShell,
520
+ enableInteractiveShell: settings.tools?.shell?.enableInteractiveShell ?? true,
485
521
  skipNextSpeakerCheck: settings.model?.skipNextSpeakerCheck,
486
522
  enablePromptCompletion: settings.general?.enablePromptCompletion ?? false,
487
523
  truncateToolOutputThreshold: settings.tools?.truncateToolOutputThreshold,
@@ -495,6 +531,9 @@ export async function loadCliConfig(settings, extensions, extensionEnablementMan
495
531
  },
496
532
  useModelRouter,
497
533
  enableMessageBusIntegration: settings.tools?.enableMessageBusIntegration ?? false,
534
+ codebaseInvestigatorSettings: settings.experimental?.codebaseInvestigatorSettings,
535
+ retryFetchErrors: settings.general?.retryFetchErrors ?? false,
536
+ ptyInfo: ptyInfo?.name,
498
537
  });
499
538
  }
500
539
  function allowedMcpServers(mcpServers, allowMCPServers, blockedMcpServers) {
@@ -523,14 +562,14 @@ function allowedMcpServers(mcpServers, allowMCPServers, blockedMcpServers) {
523
562
  function mergeMcpServers(settings, extensions) {
524
563
  const mcpServers = { ...(settings.mcpServers || {}) };
525
564
  for (const extension of extensions) {
526
- Object.entries(extension.config.mcpServers || {}).forEach(([key, server]) => {
565
+ Object.entries(extension.mcpServers || {}).forEach(([key, server]) => {
527
566
  if (mcpServers[key]) {
528
567
  logger.warn(`Skipping extension MCP config for server with key "${key}" as it already exists.`);
529
568
  return;
530
569
  }
531
570
  mcpServers[key] = {
532
571
  ...server,
533
- extensionName: extension.config.name,
572
+ extensionName: extension.name,
534
573
  };
535
574
  });
536
575
  }
@@ -542,7 +581,7 @@ function mergeExcludeTools(settings, extensions, extraExcludes) {
542
581
  ...(extraExcludes || []),
543
582
  ]);
544
583
  for (const extension of extensions) {
545
- for (const tool of extension.config.excludeTools || []) {
584
+ for (const tool of extension.excludeTools || []) {
546
585
  allExcludeTools.add(tool);
547
586
  }
548
587
  }