diff options
Diffstat (limited to 'packages/cli/src/ui/commands/extensionsCommand.ts')
| -rw-r--r-- | packages/cli/src/ui/commands/extensionsCommand.ts | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/packages/cli/src/ui/commands/extensionsCommand.ts b/packages/cli/src/ui/commands/extensionsCommand.ts new file mode 100644 index 00000000..87d23afb --- /dev/null +++ b/packages/cli/src/ui/commands/extensionsCommand.ts @@ -0,0 +1,39 @@ +/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import { type CommandContext, type SlashCommand } from './types.js'; +import { MessageType } from '../types.js'; + +export const extensionsCommand: SlashCommand = { + name: 'extensions', + description: 'list active extensions', + action: async (context: CommandContext): Promise<void> => { + const activeExtensions = context.services.config?.getActiveExtensions(); + if (!activeExtensions || activeExtensions.length === 0) { + context.ui.addItem( + { + type: MessageType.INFO, + text: 'No active extensions.', + }, + Date.now(), + ); + return; + } + + const extensionLines = activeExtensions.map( + (ext) => ` - \u001b[36m${ext.name} (v${ext.version})\u001b[0m`, + ); + const message = `Active extensions:\n\n${extensionLines.join('\n')}\n`; + + context.ui.addItem( + { + type: MessageType.INFO, + text: message, + }, + Date.now(), + ); + }, +}; |
