diff options
Diffstat (limited to 'packages/cli/src/config/extension.ts')
| -rw-r--r-- | packages/cli/src/config/extension.ts | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/packages/cli/src/config/extension.ts b/packages/cli/src/config/extension.ts index aa540cfd..adefec29 100644 --- a/packages/cli/src/config/extension.ts +++ b/packages/cli/src/config/extension.ts @@ -4,7 +4,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { MCPServerConfig } from '@google/gemini-cli-core'; +import { MCPServerConfig, GeminiCLIExtension } from '@google/gemini-cli-core'; import * as fs from 'fs'; import * as path from 'path'; import * as os from 'os'; @@ -34,9 +34,6 @@ export function loadExtensions(workspaceDir: string): Extension[] { const uniqueExtensions = new Map<string, Extension>(); for (const extension of allExtensions) { if (!uniqueExtensions.has(extension.config.name)) { - console.log( - `Loading extension: ${extension.config.name} (version: ${extension.config.version})`, - ); uniqueExtensions.set(extension.config.name, extension); } } @@ -113,12 +110,18 @@ function getContextFileNames(config: ExtensionConfig): string[] { return config.contextFileName; } -export function filterActiveExtensions( +export function annotateActiveExtensions( extensions: Extension[], enabledExtensionNames: string[], -): Extension[] { +): GeminiCLIExtension[] { + const annotatedExtensions: GeminiCLIExtension[] = []; + if (enabledExtensionNames.length === 0) { - return extensions; + return extensions.map((extension) => ({ + name: extension.config.name, + version: extension.config.version, + isActive: true, + })); } const lowerCaseEnabledExtensions = new Set( @@ -129,31 +132,33 @@ export function filterActiveExtensions( lowerCaseEnabledExtensions.size === 1 && lowerCaseEnabledExtensions.has('none') ) { - if (extensions.length > 0) { - console.log('All extensions are disabled.'); - } - return []; + return extensions.map((extension) => ({ + name: extension.config.name, + version: extension.config.version, + isActive: false, + })); } - const activeExtensions: Extension[] = []; const notFoundNames = new Set(lowerCaseEnabledExtensions); for (const extension of extensions) { const lowerCaseName = extension.config.name.toLowerCase(); - if (lowerCaseEnabledExtensions.has(lowerCaseName)) { - console.log( - `Activated extension: ${extension.config.name} (version: ${extension.config.version})`, - ); - activeExtensions.push(extension); + const isActive = lowerCaseEnabledExtensions.has(lowerCaseName); + + if (isActive) { notFoundNames.delete(lowerCaseName); - } else { - console.log(`Disabled extension: ${extension.config.name}`); } + + annotatedExtensions.push({ + name: extension.config.name, + version: extension.config.version, + isActive, + }); } for (const requestedName of notFoundNames) { - console.log(`Extension not found: ${requestedName}`); + console.error(`Extension not found: ${requestedName}`); } - return activeExtensions; + return annotatedExtensions; } |
