diff --git a/packages/cli/src/config/settings.test.ts b/packages/cli/src/config/settings.test.ts index d3ca45ab08..029d2988b5 100644 --- a/packages/cli/src/config/settings.test.ts +++ b/packages/cli/src/config/settings.test.ts @@ -2200,6 +2200,23 @@ describe('Settings Loading and Merging', () => { expect(loadedSettings.merged.admin?.mcp?.enabled).toBe(true); expect(loadedSettings.merged.admin?.extensions?.enabled).toBe(false); }); + + it('should set skills based on advancedFeaturesEnabled', () => { + const loadedSettings = loadSettings(); + loadedSettings.setRemoteAdminSettings({ + cliFeatureSetting: { + advancedFeaturesEnabled: true, + }, + }); + expect(loadedSettings.merged.admin.skills?.enabled).toBe(true); + + loadedSettings.setRemoteAdminSettings({ + cliFeatureSetting: { + advancedFeaturesEnabled: false, + }, + }); + expect(loadedSettings.merged.admin.skills?.enabled).toBe(false); + }); }); describe('getDefaultsFromSchema', () => { diff --git a/packages/cli/src/config/settings.ts b/packages/cli/src/config/settings.ts index 545866cddf..f8b88b910a 100644 --- a/packages/cli/src/config/settings.ts +++ b/packages/cli/src/config/settings.ts @@ -363,6 +363,10 @@ export class LoadedSettings { admin.extensions = { enabled: extensionsSetting.extensionsEnabled }; } + if (cliFeatureSetting?.advancedFeaturesEnabled !== undefined) { + admin.skills = { enabled: cliFeatureSetting.advancedFeaturesEnabled }; + } + this._remoteAdminSettings = { admin }; this._merged = this.computeMergedSettings(); } diff --git a/packages/core/src/code_assist/types.ts b/packages/core/src/code_assist/types.ts index 7f13d85398..fd74d69b38 100644 --- a/packages/core/src/code_assist/types.ts +++ b/packages/core/src/code_assist/types.ts @@ -302,6 +302,7 @@ const ExtensionsSettingSchema = z.object({ const CliFeatureSettingSchema = z.object({ extensionsSetting: ExtensionsSettingSchema.optional(), + advancedFeaturesEnabled: z.boolean().optional(), }); const McpSettingSchema = z.object({