Pass whole extensions rather than just context files (#10910)

Co-authored-by: Jake Macdonald <jakemac@google.com>
This commit is contained in:
Zack Birkenbuel
2025-10-20 16:15:23 -07:00
committed by GitHub
parent 995ae717cc
commit cc7e1472f9
35 changed files with 487 additions and 1193 deletions
@@ -8,6 +8,7 @@ import { type CommandModule } from 'yargs';
import { disableExtension } from '../../config/extension.js';
import { SettingScope } from '../../config/settings.js';
import { getErrorMessage } from '../../utils/errors.js';
import { ExtensionEnablementManager } from '../../config/extensions/extensionEnablement.js';
import { debugLogger } from '@google/gemini-cli-core';
interface DisableArgs {
@@ -16,11 +17,20 @@ interface DisableArgs {
}
export function handleDisable(args: DisableArgs) {
const extensionEnablementManager = new ExtensionEnablementManager();
try {
if (args.scope?.toLowerCase() === 'workspace') {
disableExtension(args.name, SettingScope.Workspace);
disableExtension(
args.name,
SettingScope.Workspace,
extensionEnablementManager,
);
} else {
disableExtension(args.name, SettingScope.User);
disableExtension(
args.name,
SettingScope.User,
extensionEnablementManager,
);
}
debugLogger.log(
`Extension "${args.name}" successfully disabled for scope "${args.scope}".`,
@@ -41,7 +51,7 @@ export const disableCommand: CommandModule = {
type: 'string',
})
.option('scope', {
describe: 'The scope to disable the extenison in.',
describe: 'The scope to disable the extension in.',
type: 'string',
default: SettingScope.User,
})