feat: Add enableAgents experimental flag (#14371)

Co-authored-by: Abhi <43648792+abhipatel12@users.noreply.github.com>
This commit is contained in:
Adam Weidman
2025-12-03 12:53:06 -08:00
committed by GitHub
parent eb3312e7ba
commit 153d01a01e
6 changed files with 40 additions and 0 deletions
+1
View File
@@ -639,6 +639,7 @@ export async function loadCliConfig(
enabledExtensions: argv.extensions,
extensionLoader: extensionManager,
enableExtensionReloading: settings.experimental?.extensionReloading,
enableAgents: settings.experimental?.enableAgents,
enableModelAvailabilityService:
settings.experimental?.isModelAvailabilityServiceEnabled,
experimentalJitContext: settings.experimental?.jitContext,
@@ -346,6 +346,17 @@ describe('SettingsSchema', () => {
).toBe('Enable preview features (e.g., preview models).');
});
it('should have enableAgents setting in schema', () => {
const setting = getSettingsSchema().experimental.properties.enableAgents;
expect(setting).toBeDefined();
expect(setting.type).toBe('boolean');
expect(setting.category).toBe('Experimental');
expect(setting.default).toBe(false);
expect(setting.requiresRestart).toBe(true);
expect(setting.showInDialog).toBe(false);
expect(setting.description).toBe('Enable local and remote subagents.');
});
it('should have isModelAvailabilityServiceEnabled setting in schema', () => {
const setting =
getSettingsSchema().experimental.properties
@@ -1285,6 +1285,15 @@ const SETTINGS_SCHEMA = {
description: 'Setting to enable experimental features',
showInDialog: false,
properties: {
enableAgents: {
type: 'boolean',
label: 'Enable Agents',
category: 'Experimental',
requiresRestart: true,
default: false,
description: 'Enable local and remote subagents.',
showInDialog: false,
},
extensionManagement: {
type: 'boolean',
label: 'Extension Management',
+7
View File
@@ -320,6 +320,7 @@ export interface ConfigParameters {
[K in HookEventName]?: HookDefinition[];
} & { disabled?: string[] });
previewFeatures?: boolean;
enableAgents?: boolean;
enableModelAvailabilityService?: boolean;
experimentalJitContext?: boolean;
}
@@ -441,6 +442,7 @@ export class Config {
private previewModelFallbackMode = false;
private previewModelBypassMode = false;
private readonly enableModelAvailabilityService: boolean;
private readonly enableAgents: boolean;
private readonly experimentalJitContext: boolean;
private contextManager?: ContextManager;
@@ -504,6 +506,7 @@ export class Config {
this.model = params.model;
this.enableModelAvailabilityService =
params.enableModelAvailabilityService ?? false;
this.enableAgents = params.enableAgents ?? false;
this.experimentalJitContext = params.experimentalJitContext ?? false;
this.modelAvailabilityService = new ModelAvailabilityService();
this.previewFeatures = params.previewFeatures ?? undefined;
@@ -1211,6 +1214,10 @@ export class Config {
return this.enableModelAvailabilityService;
}
isAgentsEnabled(): boolean {
return this.enableAgents;
}
getNoBrowser(): boolean {
return this.noBrowser;
}