@google/gemini-cli 0.6.0-preview.7 → 0.6.0-preview.9

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 (65) hide show
  1. package/dist/package.json +2 -2
  2. package/dist/src/commands/extensions/disable.d.ts +1 -2
  3. package/dist/src/commands/extensions/disable.js +17 -3
  4. package/dist/src/commands/extensions/disable.js.map +1 -1
  5. package/dist/src/commands/extensions/enable.d.ts +1 -2
  6. package/dist/src/commands/extensions/enable.js +17 -4
  7. package/dist/src/commands/extensions/enable.js.map +1 -1
  8. package/dist/src/commands/extensions/install.d.ts +1 -0
  9. package/dist/src/commands/extensions/install.js +10 -2
  10. package/dist/src/commands/extensions/install.js.map +1 -1
  11. package/dist/src/commands/extensions/install.test.js +5 -1
  12. package/dist/src/commands/extensions/install.test.js.map +1 -1
  13. package/dist/src/commands/extensions/link.js +1 -1
  14. package/dist/src/commands/extensions/link.js.map +1 -1
  15. package/dist/src/commands/extensions/uninstall.js +1 -1
  16. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  17. package/dist/src/commands/extensions/update.js +38 -17
  18. package/dist/src/commands/extensions/update.js.map +1 -1
  19. package/dist/src/config/extension.d.ts +5 -18
  20. package/dist/src/config/extension.js +93 -201
  21. package/dist/src/config/extension.js.map +1 -1
  22. package/dist/src/config/extensions/extensionEnablement.d.ts +14 -0
  23. package/dist/src/config/extensions/extensionEnablement.js +81 -33
  24. package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
  25. package/dist/src/config/extensions/extensionEnablement.test.js +164 -19
  26. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
  27. package/dist/src/config/extensions/github.d.ts +29 -0
  28. package/dist/src/config/extensions/github.js +314 -0
  29. package/dist/src/config/extensions/github.js.map +1 -0
  30. package/dist/src/config/extensions/github.test.d.ts +6 -0
  31. package/dist/src/config/extensions/github.test.js +267 -0
  32. package/dist/src/config/extensions/github.test.js.map +1 -0
  33. package/dist/src/config/extensions/update.d.ts +20 -0
  34. package/dist/src/config/extensions/update.js +94 -0
  35. package/dist/src/config/extensions/update.js.map +1 -0
  36. package/dist/src/config/extensions/update.test.d.ts +6 -0
  37. package/dist/src/config/extensions/update.test.js +324 -0
  38. package/dist/src/config/extensions/update.test.js.map +1 -0
  39. package/dist/src/generated/git-commit.d.ts +2 -2
  40. package/dist/src/generated/git-commit.js +2 -2
  41. package/dist/src/test-utils/createExtension.d.ts +15 -0
  42. package/dist/src/test-utils/createExtension.js +25 -0
  43. package/dist/src/test-utils/createExtension.js.map +1 -0
  44. package/dist/src/test-utils/mockCommandContext.js +2 -0
  45. package/dist/src/test-utils/mockCommandContext.js.map +1 -1
  46. package/dist/src/ui/AppContainer.js +3 -6
  47. package/dist/src/ui/AppContainer.js.map +1 -1
  48. package/dist/src/ui/commands/extensionsCommand.js +22 -6
  49. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  50. package/dist/src/ui/commands/types.d.ts +2 -2
  51. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +2 -1
  52. package/dist/src/ui/hooks/slashCommandProcessor.js +1 -1
  53. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  54. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +12 -0
  55. package/dist/src/ui/hooks/useExtensionUpdates.js +64 -0
  56. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -0
  57. package/dist/src/ui/hooks/useExtensionUpdates.test.d.ts +6 -0
  58. package/dist/src/ui/hooks/useExtensionUpdates.test.js +162 -0
  59. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -0
  60. package/dist/src/ui/state/extensions.d.ts +2 -1
  61. package/dist/src/ui/state/extensions.js +1 -0
  62. package/dist/src/ui/state/extensions.js.map +1 -1
  63. package/dist/src/zed-integration/schema.d.ts +22 -22
  64. package/dist/tsconfig.tsbuildinfo +1 -1
  65. package/package.json +3 -3
@@ -3,18 +3,17 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { GEMINI_DIR, Storage, ClearcutLogger, Config, ExtensionInstallEvent, ExtensionUninstallEvent, } from '@google/gemini-cli-core';
6
+ import { GEMINI_DIR, Storage, Config, ExtensionInstallEvent, ExtensionUninstallEvent, ExtensionEnableEvent, logExtensionEnable, logExtensionInstallEvent, logExtensionUninstall, } 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';
10
- import { simpleGit } from 'simple-git';
11
10
  import { SettingScope, loadSettings } from '../config/settings.js';
12
11
  import { getErrorMessage } from '../utils/errors.js';
13
12
  import { recursivelyHydrateStrings } from './extensions/variables.js';
14
13
  import { isWorkspaceTrusted } from './trustedFolders.js';
15
14
  import { resolveEnvVarsInObject } from '../utils/envVarResolver.js';
16
15
  import { randomUUID } from 'node:crypto';
17
- import { ExtensionUpdateState } from '../ui/state/extensions.js';
16
+ import { cloneFromGit, downloadFromGitHubRelease, } from './extensions/github.js';
18
17
  import { ExtensionEnablementManager } from './extensions/extensionEnablement.js';
19
18
  export const EXTENSIONS_DIRECTORY_NAME = path.join(GEMINI_DIR, 'extensions');
20
19
  export const EXTENSIONS_CONFIG_FILENAME = 'gemini-extension.json';
@@ -45,7 +44,7 @@ export function getWorkspaceExtensions(workspaceDir) {
45
44
  }
46
45
  return loadExtensionsFromDir(workspaceDir);
47
46
  }
48
- async function copyExtension(source, destination) {
47
+ export async function copyExtension(source, destination) {
49
48
  await fs.promises.cp(source, destination, { recursive: true });
50
49
  }
51
50
  export async function performWorkspaceExtensionMigration(extensions) {
@@ -64,16 +63,18 @@ export async function performWorkspaceExtensionMigration(extensions) {
64
63
  }
65
64
  return failedInstallNames;
66
65
  }
67
- function getClearcutLogger(cwd) {
66
+ function getTelemetryConfig(cwd) {
67
+ const settings = loadSettings(cwd);
68
68
  const config = new Config({
69
+ telemetry: settings.merged.telemetry,
70
+ interactive: false,
69
71
  sessionId: randomUUID(),
70
72
  targetDir: cwd,
71
73
  cwd,
72
74
  model: '',
73
75
  debugMode: false,
74
76
  });
75
- const logger = ClearcutLogger.getInstance(config);
76
- return logger;
77
+ return config;
77
78
  }
78
79
  export function loadExtensions(workspaceDir = process.cwd()) {
79
80
  const settings = loadSettings(workspaceDir).merged;
@@ -129,24 +130,18 @@ export function loadExtension(context) {
129
130
  if (installMetadata?.type === 'link') {
130
131
  effectiveExtensionPath = installMetadata.source;
131
132
  }
132
- const configFilePath = path.join(effectiveExtensionPath, EXTENSIONS_CONFIG_FILENAME);
133
- if (!fs.existsSync(configFilePath)) {
134
- console.error(`Warning: extension directory ${effectiveExtensionPath} does not contain a config file ${configFilePath}.`);
135
- return null;
136
- }
137
133
  try {
138
- const configContent = fs.readFileSync(configFilePath, 'utf-8');
139
- let config = recursivelyHydrateStrings(JSON.parse(configContent), {
140
- extensionPath: extensionDir,
141
- workspacePath: workspaceDir,
142
- '/': path.sep,
143
- pathSeparator: path.sep,
134
+ let config = loadExtensionConfig({
135
+ extensionDir: effectiveExtensionPath,
136
+ workspaceDir,
144
137
  });
145
- if (!config.name || !config.version) {
146
- console.error(`Invalid extension config in ${configFilePath}: missing name or version.`);
147
- return null;
148
- }
149
138
  config = resolveEnvVarsInObject(config);
139
+ if (config.mcpServers) {
140
+ config.mcpServers = Object.fromEntries(Object.entries(config.mcpServers).map(([key, value]) => [
141
+ key,
142
+ filterMcpConfig(value),
143
+ ]));
144
+ }
150
145
  const contextFiles = getContextFileNames(config)
151
146
  .map((contextFileName) => path.join(effectiveExtensionPath, contextFileName))
152
147
  .filter((contextFilePath) => fs.existsSync(contextFilePath));
@@ -158,11 +153,16 @@ export function loadExtension(context) {
158
153
  };
159
154
  }
160
155
  catch (e) {
161
- console.error(`Warning: error parsing extension config in ${configFilePath}: ${getErrorMessage(e)}`);
156
+ console.error(`Warning: Skipping extension in ${effectiveExtensionPath}: ${getErrorMessage(e)}`);
162
157
  return null;
163
158
  }
164
159
  }
165
- function loadInstallMetadata(extensionDir) {
160
+ function filterMcpConfig(original) {
161
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
162
+ const { trust, ...rest } = original;
163
+ return Object.freeze(rest);
164
+ }
165
+ export function loadInstallMetadata(extensionDir) {
166
166
  const metadataFilePath = path.join(extensionDir, INSTALL_METADATA_FILENAME);
167
167
  try {
168
168
  const configContent = fs.readFileSync(metadataFilePath, 'utf-8');
@@ -198,9 +198,7 @@ export function annotateActiveExtensions(extensions, enabledExtensionNames, work
198
198
  version: extension.config.version,
199
199
  isActive: manager.isEnabled(extension.config.name, workspaceDir),
200
200
  path: extension.path,
201
- source: extension.installMetadata?.source,
202
- type: extension.installMetadata?.type,
203
- ref: extension.installMetadata?.ref,
201
+ installMetadata: extension.installMetadata,
204
202
  }));
205
203
  }
206
204
  const lowerCaseEnabledExtensions = new Set(enabledExtensionNames.map((e) => e.trim().toLowerCase()));
@@ -211,9 +209,7 @@ export function annotateActiveExtensions(extensions, enabledExtensionNames, work
211
209
  version: extension.config.version,
212
210
  isActive: false,
213
211
  path: extension.path,
214
- source: extension.installMetadata?.source,
215
- type: extension.installMetadata?.type,
216
- ref: extension.installMetadata?.ref,
212
+ installMetadata: extension.installMetadata,
217
213
  }));
218
214
  }
219
215
  const notFoundNames = new Set(lowerCaseEnabledExtensions);
@@ -228,6 +224,7 @@ export function annotateActiveExtensions(extensions, enabledExtensionNames, work
228
224
  version: extension.config.version,
229
225
  isActive,
230
226
  path: extension.path,
227
+ installMetadata: extension.installMetadata,
231
228
  });
232
229
  }
233
230
  for (const requestedName of notFoundNames) {
@@ -235,35 +232,10 @@ export function annotateActiveExtensions(extensions, enabledExtensionNames, work
235
232
  }
236
233
  return annotatedExtensions;
237
234
  }
238
- /**
239
- * Clones a Git repository to a specified local path.
240
- * @param installMetadata The metadata for the extension to install.
241
- * @param destination The destination path to clone the repository to.
242
- */
243
- async function cloneFromGit(installMetadata, destination) {
244
- try {
245
- const git = simpleGit(destination);
246
- await git.clone(installMetadata.source, './', ['--depth', '1']);
247
- const remotes = await git.getRemotes(true);
248
- if (remotes.length === 0) {
249
- throw new Error(`Unable to find any remotes for repo ${installMetadata.source}`);
250
- }
251
- const refToFetch = installMetadata.ref || 'HEAD';
252
- await git.fetch(remotes[0].name, refToFetch);
253
- // After fetching, checkout FETCH_HEAD to get the content of the fetched ref.
254
- // This results in a detached HEAD state, which is fine for this purpose.
255
- await git.checkout('FETCH_HEAD');
256
- }
257
- catch (error) {
258
- throw new Error(`Failed to clone Git repository from ${installMetadata.source}`, {
259
- cause: error,
260
- });
261
- }
262
- }
263
235
  /**
264
236
  * Asks users a prompt and awaits for a y/n response
265
237
  * @param prompt A yes/no prompt to ask the user
266
- * @returns Whether or not the user answers 'y' (yes)
238
+ * @returns Whether or not the user answers 'y' (yes). Defaults to 'yes' on enter.
267
239
  */
268
240
  async function promptForContinuation(prompt) {
269
241
  const readline = await import('node:readline');
@@ -274,12 +246,12 @@ async function promptForContinuation(prompt) {
274
246
  return new Promise((resolve) => {
275
247
  rl.question(prompt, (answer) => {
276
248
  rl.close();
277
- resolve(answer.toLowerCase() === 'y');
249
+ resolve(['y', ''].includes(answer.trim().toLowerCase()));
278
250
  });
279
251
  });
280
252
  }
281
253
  export async function installExtension(installMetadata, askConsent = false, cwd = process.cwd()) {
282
- const logger = getClearcutLogger(cwd);
254
+ const telemetryConfig = getTelemetryConfig(cwd);
283
255
  let newExtensionConfig = null;
284
256
  let localSourcePath;
285
257
  try {
@@ -294,9 +266,18 @@ export async function installExtension(installMetadata, askConsent = false, cwd
294
266
  installMetadata.source = path.resolve(cwd, installMetadata.source);
295
267
  }
296
268
  let tempDir;
297
- if (installMetadata.type === 'git') {
269
+ if (installMetadata.type === 'git' ||
270
+ installMetadata.type === 'github-release') {
298
271
  tempDir = await ExtensionStorage.createTmpDir();
299
- await cloneFromGit(installMetadata, tempDir);
272
+ try {
273
+ const result = await downloadFromGitHubRelease(installMetadata, tempDir);
274
+ installMetadata.type = result.type;
275
+ installMetadata.releaseTag = result.tagName;
276
+ }
277
+ catch (_error) {
278
+ await cloneFromGit(installMetadata, tempDir);
279
+ installMetadata.type = 'git';
280
+ }
300
281
  localSourcePath = tempDir;
301
282
  }
302
283
  else if (installMetadata.type === 'local' ||
@@ -307,13 +288,10 @@ export async function installExtension(installMetadata, askConsent = false, cwd
307
288
  throw new Error(`Unsupported install type: ${installMetadata.type}`);
308
289
  }
309
290
  try {
310
- newExtensionConfig = await loadExtensionConfig({
291
+ newExtensionConfig = loadExtensionConfig({
311
292
  extensionDir: localSourcePath,
312
293
  workspaceDir: cwd,
313
294
  });
314
- if (!newExtensionConfig) {
315
- throw new Error(`Invalid extension at ${installMetadata.source}. Please make sure it has a valid gemini-extension.json file.`);
316
- }
317
295
  const newExtensionName = newExtensionConfig.name;
318
296
  const extensionStorage = new ExtensionStorage(newExtensionName);
319
297
  const destinationPath = extensionStorage.getExtensionDir();
@@ -325,7 +303,9 @@ export async function installExtension(installMetadata, askConsent = false, cwd
325
303
  await requestConsent(newExtensionConfig);
326
304
  }
327
305
  await fs.promises.mkdir(destinationPath, { recursive: true });
328
- if (installMetadata.type === 'local' || installMetadata.type === 'git') {
306
+ if (installMetadata.type === 'local' ||
307
+ installMetadata.type === 'git' ||
308
+ installMetadata.type === 'github-release') {
329
309
  await copyExtension(localSourcePath, destinationPath);
330
310
  }
331
311
  const metadataString = JSON.stringify(installMetadata, null, 2);
@@ -337,7 +317,7 @@ export async function installExtension(installMetadata, askConsent = false, cwd
337
317
  await fs.promises.rm(tempDir, { recursive: true, force: true });
338
318
  }
339
319
  }
340
- logger?.logExtensionInstallEvent(new ExtensionInstallEvent(newExtensionConfig.name, newExtensionConfig.version, installMetadata.source, 'success'));
320
+ logExtensionInstallEvent(telemetryConfig, new ExtensionInstallEvent(newExtensionConfig.name, newExtensionConfig.version, installMetadata.source, 'success'));
341
321
  enableExtension(newExtensionConfig.name, SettingScope.User);
342
322
  return newExtensionConfig.name;
343
323
  }
@@ -345,35 +325,51 @@ export async function installExtension(installMetadata, askConsent = false, cwd
345
325
  // Attempt to load config from the source path even if installation fails
346
326
  // to get the name and version for logging.
347
327
  if (!newExtensionConfig && localSourcePath) {
348
- newExtensionConfig = await loadExtensionConfig({
349
- extensionDir: localSourcePath,
350
- workspaceDir: cwd,
351
- });
328
+ try {
329
+ newExtensionConfig = loadExtensionConfig({
330
+ extensionDir: localSourcePath,
331
+ workspaceDir: cwd,
332
+ });
333
+ }
334
+ catch {
335
+ // Ignore error, this is just for logging.
336
+ }
352
337
  }
353
- logger?.logExtensionInstallEvent(new ExtensionInstallEvent(newExtensionConfig?.name ?? '', newExtensionConfig?.version ?? '', installMetadata.source, 'error'));
338
+ logExtensionInstallEvent(telemetryConfig, new ExtensionInstallEvent(newExtensionConfig?.name ?? '', newExtensionConfig?.version ?? '', installMetadata.source, 'error'));
354
339
  throw error;
355
340
  }
356
341
  }
357
342
  async function requestConsent(extensionConfig) {
343
+ const output = [];
358
344
  const mcpServerEntries = Object.entries(extensionConfig.mcpServers || {});
345
+ output.push('Extensions may introduce unexpected behavior.');
346
+ output.push('Ensure you have investigated the extension source and trust the author.');
359
347
  if (mcpServerEntries.length) {
360
- console.info('This extension will run the following MCP servers: ');
348
+ output.push('This extension will run the following MCP servers:');
361
349
  for (const [key, mcpServer] of mcpServerEntries) {
362
350
  const isLocal = !!mcpServer.command;
363
- console.info(` * ${key} (${isLocal ? 'local' : 'remote'}): ${mcpServer.description}`);
364
- }
365
- console.info('The extension will append info to your gemini.md context');
366
- const shouldContinue = await promptForContinuation('Do you want to continue? (y/n): ');
367
- if (!shouldContinue) {
368
- throw new Error('Installation cancelled by user.');
351
+ const source = mcpServer.httpUrl ??
352
+ `${mcpServer.command || ''}${mcpServer.args ? ' ' + mcpServer.args.join(' ') : ''}`;
353
+ output.push(` * ${key} (${isLocal ? 'local' : 'remote'}): ${source}`);
369
354
  }
370
355
  }
356
+ if (extensionConfig.contextFileName) {
357
+ output.push(`This extension will append info to your gemini.md context using ${extensionConfig.contextFileName}`);
358
+ }
359
+ if (extensionConfig.excludeTools) {
360
+ output.push(`This extension will exclude the following core tools: ${extensionConfig.excludeTools}`);
361
+ }
362
+ console.info(output.join('\n'));
363
+ const shouldContinue = await promptForContinuation('Do you want to continue? [Y/n]: ');
364
+ if (!shouldContinue) {
365
+ throw new Error('Installation cancelled by user.');
366
+ }
371
367
  }
372
- export async function loadExtensionConfig(context) {
368
+ export function loadExtensionConfig(context) {
373
369
  const { extensionDir, workspaceDir } = context;
374
370
  const configFilePath = path.join(extensionDir, EXTENSIONS_CONFIG_FILENAME);
375
371
  if (!fs.existsSync(configFilePath)) {
376
- return null;
372
+ throw new Error(`Configuration file not found at ${configFilePath}`);
377
373
  }
378
374
  try {
379
375
  const configContent = fs.readFileSync(configFilePath, 'utf-8');
@@ -384,19 +380,23 @@ export async function loadExtensionConfig(context) {
384
380
  pathSeparator: path.sep,
385
381
  });
386
382
  if (!config.name || !config.version) {
387
- return null;
383
+ throw new Error(`Invalid configuration in ${configFilePath}: missing ${!config.name ? '"name"' : '"version"'}`);
388
384
  }
389
385
  return config;
390
386
  }
391
- catch (_) {
392
- return null;
387
+ catch (e) {
388
+ throw new Error(`Failed to load extension config from ${configFilePath}: ${getErrorMessage(e)}`);
393
389
  }
394
390
  }
395
- export async function uninstallExtension(extensionName, cwd = process.cwd()) {
396
- const logger = getClearcutLogger(cwd);
391
+ export async function uninstallExtension(extensionIdentifier, cwd = process.cwd()) {
392
+ const telemetryConfig = getTelemetryConfig(cwd);
397
393
  const installedExtensions = loadUserExtensions();
398
- if (!installedExtensions.some((installed) => installed.config.name === extensionName)) {
399
- throw new Error(`Extension "${extensionName}" not found.`);
394
+ const extensionName = installedExtensions.find((installed) => installed.config.name.toLowerCase() ===
395
+ extensionIdentifier.toLowerCase() ||
396
+ installed.installMetadata?.source.toLowerCase() ===
397
+ extensionIdentifier.toLowerCase())?.config.name;
398
+ if (!extensionName) {
399
+ throw new Error(`Extension not found.`);
400
400
  }
401
401
  const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
402
402
  manager.remove(extensionName);
@@ -405,7 +405,7 @@ export async function uninstallExtension(extensionName, cwd = process.cwd()) {
405
405
  recursive: true,
406
406
  force: true,
407
407
  });
408
- logger?.logExtensionUninstallEvent(new ExtensionUninstallEvent(extensionName, 'success'));
408
+ logExtensionUninstall(telemetryConfig, new ExtensionUninstallEvent(extensionName, 'success'));
409
409
  }
410
410
  export function toOutputString(extension) {
411
411
  let output = `${extension.config.name} (${extension.config.version})`;
@@ -415,6 +415,9 @@ export function toOutputString(extension) {
415
415
  if (extension.installMetadata.ref) {
416
416
  output += `\n Ref: ${extension.installMetadata.ref}`;
417
417
  }
418
+ if (extension.installMetadata.releaseTag) {
419
+ output += `\n Release tag: ${extension.installMetadata.releaseTag}`;
420
+ }
418
421
  }
419
422
  if (extension.contextFiles.length > 0) {
420
423
  output += `\n Context files:`;
@@ -436,60 +439,6 @@ export function toOutputString(extension) {
436
439
  }
437
440
  return output;
438
441
  }
439
- export async function updateExtensionByName(extensionName, cwd = process.cwd(), extensions, setExtensionUpdateState) {
440
- const extension = extensions.find((installed) => installed.name === extensionName);
441
- if (!extension) {
442
- throw new Error(`Extension "${extensionName}" not found. Run gemini extensions list to see available extensions.`);
443
- }
444
- return await updateExtension(extension, cwd, setExtensionUpdateState);
445
- }
446
- export async function updateExtension(extension, cwd = process.cwd(), setExtensionUpdateState) {
447
- if (!extension.type) {
448
- setExtensionUpdateState(ExtensionUpdateState.ERROR);
449
- throw new Error(`Extension ${extension.name} cannot be updated, type is unknown.`);
450
- }
451
- if (extension.type === 'link') {
452
- setExtensionUpdateState(ExtensionUpdateState.UP_TO_DATE);
453
- throw new Error(`Extension is linked so does not need to be updated`);
454
- }
455
- setExtensionUpdateState(ExtensionUpdateState.UPDATING);
456
- const originalVersion = extension.version;
457
- const tempDir = await ExtensionStorage.createTmpDir();
458
- try {
459
- await copyExtension(extension.path, tempDir);
460
- await uninstallExtension(extension.name, cwd);
461
- await installExtension({
462
- source: extension.source,
463
- type: extension.type,
464
- ref: extension.ref,
465
- }, false, cwd);
466
- const updatedExtensionStorage = new ExtensionStorage(extension.name);
467
- const updatedExtension = loadExtension({
468
- extensionDir: updatedExtensionStorage.getExtensionDir(),
469
- workspaceDir: cwd,
470
- });
471
- if (!updatedExtension) {
472
- setExtensionUpdateState(ExtensionUpdateState.ERROR);
473
- throw new Error('Updated extension not found after installation.');
474
- }
475
- const updatedVersion = updatedExtension.config.version;
476
- setExtensionUpdateState(ExtensionUpdateState.UPDATED_NEEDS_RESTART);
477
- return {
478
- name: extension.name,
479
- originalVersion,
480
- updatedVersion,
481
- };
482
- }
483
- catch (e) {
484
- console.error(`Error updating extension, rolling back. ${getErrorMessage(e)}`);
485
- setExtensionUpdateState(ExtensionUpdateState.ERROR);
486
- await copyExtension(tempDir, extension.path);
487
- throw e;
488
- }
489
- finally {
490
- await fs.promises.rm(tempDir, { recursive: true, force: true });
491
- }
492
- }
493
442
  export function disableExtension(name, scope, cwd = process.cwd()) {
494
443
  if (scope === SettingScope.System || scope === SettingScope.SystemDefaults) {
495
444
  throw new Error('System and SystemDefaults scopes are not supported.');
@@ -505,64 +454,7 @@ export function enableExtension(name, scope, cwd = process.cwd()) {
505
454
  const manager = new ExtensionEnablementManager(ExtensionStorage.getUserExtensionsDir());
506
455
  const scopePath = scope === SettingScope.Workspace ? cwd : os.homedir();
507
456
  manager.enable(name, true, scopePath);
508
- }
509
- export async function updateAllUpdatableExtensions(cwd = process.cwd(), extensions, extensionsState, setExtensionsUpdateState) {
510
- return await Promise.all(extensions
511
- .filter((extension) => extensionsState.get(extension.name) ===
512
- ExtensionUpdateState.UPDATE_AVAILABLE)
513
- .map((extension) => updateExtension(extension, cwd, (updateState) => {
514
- const newState = new Map(extensionsState);
515
- newState.set(extension.name, updateState);
516
- setExtensionsUpdateState(newState);
517
- })));
518
- }
519
- export async function checkForAllExtensionUpdates(extensions, setExtensionsUpdateState) {
520
- const finalState = new Map();
521
- for (const extension of extensions) {
522
- finalState.set(extension.name, await checkForExtensionUpdate(extension));
523
- }
524
- setExtensionsUpdateState(finalState);
525
- return finalState;
526
- }
527
- export async function checkForExtensionUpdate(extension) {
528
- if (extension.type !== 'git') {
529
- return ExtensionUpdateState.NOT_UPDATABLE;
530
- }
531
- try {
532
- const git = simpleGit(extension.path);
533
- const remotes = await git.getRemotes(true);
534
- if (remotes.length === 0) {
535
- console.error('No git remotes found.');
536
- return ExtensionUpdateState.ERROR;
537
- }
538
- const remoteUrl = remotes[0].refs.fetch;
539
- if (!remoteUrl) {
540
- console.error(`No fetch URL found for git remote ${remotes[0].name}.`);
541
- return ExtensionUpdateState.ERROR;
542
- }
543
- // Determine the ref to check on the remote.
544
- const refToCheck = extension.ref || 'HEAD';
545
- const lsRemoteOutput = await git.listRemote([remoteUrl, refToCheck]);
546
- if (typeof lsRemoteOutput !== 'string' || lsRemoteOutput.trim() === '') {
547
- console.error(`Git ref ${refToCheck} not found.`);
548
- return ExtensionUpdateState.ERROR;
549
- }
550
- const remoteHash = lsRemoteOutput.split('\t')[0];
551
- const localHash = await git.revparse(['HEAD']);
552
- if (!remoteHash) {
553
- console.error(`Unable to parse hash from git ls-remote output "${lsRemoteOutput}"`);
554
- return ExtensionUpdateState.ERROR;
555
- }
556
- else if (remoteHash === localHash) {
557
- return ExtensionUpdateState.UP_TO_DATE;
558
- }
559
- else {
560
- return ExtensionUpdateState.UPDATE_AVAILABLE;
561
- }
562
- }
563
- catch (error) {
564
- console.error(`Failed to check for updates for extension "${extension.name}": ${getErrorMessage(error)}`);
565
- return ExtensionUpdateState.ERROR;
566
- }
457
+ const config = getTelemetryConfig(cwd);
458
+ logExtensionEnable(config, new ExtensionEnableEvent(name, scope));
567
459
  }
568
460
  //# 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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"}
@@ -9,6 +9,20 @@ export interface ExtensionEnablementConfig {
9
9
  export interface AllExtensionsEnablementConfig {
10
10
  [extensionName: string]: ExtensionEnablementConfig;
11
11
  }
12
+ export declare class Override {
13
+ baseRule: string;
14
+ isDisable: boolean;
15
+ includeSubdirs: boolean;
16
+ constructor(baseRule: string, isDisable: boolean, includeSubdirs: boolean);
17
+ static fromInput(inputRule: string, includeSubdirs: boolean): Override;
18
+ static fromFileRule(fileRule: string): Override;
19
+ conflictsWith(other: Override): boolean;
20
+ isEqualTo(other: Override): boolean;
21
+ asRegex(): RegExp;
22
+ isChildOf(parent: Override): boolean;
23
+ output(): string;
24
+ matchesPath(path: string): boolean;
25
+ }
12
26
  /**
13
27
  * Determines if an extension is enabled based on the configuration and current path.
14
28
  * The last matching rule in the overrides list wins.