Adds executeCommand endpoint with support for /extensions list (#11515)

This commit is contained in:
jdgarrido1105
2025-10-23 08:05:43 -05:00
committed by GitHub
parent 445ef4fbed
commit 3f38f95b1d
16 changed files with 365 additions and 45 deletions
@@ -4,15 +4,20 @@
* SPDX-License-Identifier: Apache-2.0
*/
import type React from 'react';
import { Box, Text } from 'ink';
import { useUIState } from '../../contexts/UIStateContext.js';
import { ExtensionUpdateState } from '../../state/extensions.js';
import type { GeminiCLIExtension } from '@google/gemini-cli-core';
export const ExtensionsList = () => {
const { commandContext, extensionsUpdateState } = useUIState();
const allExtensions = commandContext.services.config!.getExtensions();
interface ExtensionsList {
extensions: readonly GeminiCLIExtension[];
}
if (allExtensions.length === 0) {
export const ExtensionsList: React.FC<ExtensionsList> = ({ extensions }) => {
const { extensionsUpdateState } = useUIState();
if (extensions.length === 0) {
return <Text>No extensions installed.</Text>;
}
@@ -20,7 +25,7 @@ export const ExtensionsList = () => {
<Box flexDirection="column" marginTop={1} marginBottom={1}>
<Text>Installed extensions:</Text>
<Box flexDirection="column" paddingLeft={2}>
{allExtensions.map((ext) => {
{extensions.map((ext) => {
const state = extensionsUpdateState.get(ext.name);
const isActive = ext.isActive;
const activeString = isActive ? 'active' : 'disabled';