summaryrefslogtreecommitdiff
path: root/packages/cli/src/config/extension.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/config/extension.ts')
-rw-r--r--packages/cli/src/config/extension.ts47
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;
}