mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-04-24 03:54:43 -07:00
Add ExtensionLoader interface, use that on Config object (#12116)
This commit is contained in:
@@ -98,7 +98,7 @@ import {
|
||||
useExtensionUpdates,
|
||||
} from './hooks/useExtensionUpdates.js';
|
||||
import { ShellFocusContext } from './contexts/ShellFocusContext.js';
|
||||
import { ExtensionManager } from '../config/extension-manager.js';
|
||||
import { type ExtensionManager } from '../config/extension-manager.js';
|
||||
import { requestConsentInteractive } from '../config/extensions/consent.js';
|
||||
|
||||
const CTRL_EXIT_PROMPT_DURATION_MS = 1000;
|
||||
@@ -168,21 +168,12 @@ export const AppContainer = (props: AppContainerProps) => {
|
||||
null,
|
||||
);
|
||||
|
||||
const extensions = config.getExtensions();
|
||||
const [extensionManager] = useState<ExtensionManager>(
|
||||
new ExtensionManager({
|
||||
enabledExtensionOverrides: config.getEnabledExtensions(),
|
||||
workspaceDir: config.getWorkingDir(),
|
||||
requestConsent: (description) =>
|
||||
requestConsentInteractive(
|
||||
description,
|
||||
addConfirmUpdateExtensionRequest,
|
||||
),
|
||||
// TODO: Support requesting settings in the interactive CLI
|
||||
requestSetting: null,
|
||||
loadedSettings: settings,
|
||||
}),
|
||||
const extensionManager = config.getExtensionLoader() as ExtensionManager;
|
||||
// We are in the interactive CLI, update how we request consent and settings.
|
||||
extensionManager.setRequestConsent((description) =>
|
||||
requestConsentInteractive(description, addConfirmUpdateExtensionRequest),
|
||||
);
|
||||
extensionManager.setRequestSetting();
|
||||
|
||||
const { addConfirmUpdateExtensionRequest, confirmUpdateExtensionRequests } =
|
||||
useConfirmUpdateRequests();
|
||||
@@ -190,7 +181,7 @@ export const AppContainer = (props: AppContainerProps) => {
|
||||
extensionsUpdateState,
|
||||
extensionsUpdateStateInternal,
|
||||
dispatchExtensionStateUpdate,
|
||||
} = useExtensionUpdates(extensions, extensionManager, historyManager.addItem);
|
||||
} = useExtensionUpdates(extensionManager, historyManager.addItem);
|
||||
|
||||
const [isPermissionsDialogOpen, setPermissionsDialogOpen] = useState(false);
|
||||
const openPermissionsDialog = useCallback(
|
||||
@@ -548,7 +539,7 @@ Logging in with Google... Please restart Gemini CLI to continue.
|
||||
config.getDebugMode(),
|
||||
config.getFileService(),
|
||||
settings.merged,
|
||||
config.getExtensions(),
|
||||
config.getExtensionLoader(),
|
||||
config.isTrustedFolder(),
|
||||
settings.merged.context?.importFormat || 'tree', // Use setting or default to 'tree'
|
||||
config.getFileFilteringOptions(),
|
||||
|
||||
Reference in New Issue
Block a user