mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-29 15:30:40 -07:00
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Shreya Keshive <shreyakeshive@google.com>
42 lines
1.0 KiB
TypeScript
42 lines
1.0 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import { listExtensions } from '@google/gemini-cli-core';
|
|
import type {
|
|
Command,
|
|
CommandContext,
|
|
CommandExecutionResponse,
|
|
} from './types.js';
|
|
|
|
export class ExtensionsCommand implements Command {
|
|
readonly name = 'extensions';
|
|
readonly description = 'Manage extensions.';
|
|
readonly subCommands = [new ListExtensionsCommand()];
|
|
readonly topLevel = true;
|
|
|
|
async execute(
|
|
context: CommandContext,
|
|
_: string[],
|
|
): Promise<CommandExecutionResponse> {
|
|
return new ListExtensionsCommand().execute(context, _);
|
|
}
|
|
}
|
|
|
|
export class ListExtensionsCommand implements Command {
|
|
readonly name = 'extensions list';
|
|
readonly description = 'Lists all installed extensions.';
|
|
|
|
async execute(
|
|
context: CommandContext,
|
|
_: string[],
|
|
): Promise<CommandExecutionResponse> {
|
|
const extensions = listExtensions(context.config);
|
|
const data = extensions.length ? extensions : 'No extensions installed.';
|
|
|
|
return { name: this.name, data };
|
|
}
|
|
}
|