Skip to content

Commit d89e907

Browse files
committed
PR
1 parent c28dcaf commit d89e907

File tree

2 files changed

+48
-2
lines changed

2 files changed

+48
-2
lines changed

src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import { IStorageService, StorageScope, StorageTarget } from '../../../../../../
2626
import { IUserDataProfileService } from '../../../../../services/userDataProfile/common/userDataProfile.js';
2727
import { IVariableReference } from '../../chatModes.js';
2828
import { PromptsConfig } from '../config/config.js';
29+
import { IDefaultAccountService } from '../../../../../../platform/defaultAccount/common/defaultAccount.js';
2930
import { getCleanPromptName } from '../config/promptFileLocations.js';
3031
import { PROMPT_LANGUAGE_ID, PromptsType, getPromptsTypeForLanguageId } from '../promptTypes.js';
3132
import { PromptFilesLocator } from '../utils/promptFilesLocator.js';
@@ -93,7 +94,8 @@ export class PromptsService extends Disposable implements IPromptsService {
9394
@IFileService private readonly fileService: IFileService,
9495
@IFilesConfigurationService private readonly filesConfigService: IFilesConfigurationService,
9596
@IStorageService private readonly storageService: IStorageService,
96-
@IExtensionService private readonly extensionService: IExtensionService
97+
@IExtensionService private readonly extensionService: IExtensionService,
98+
@IDefaultAccountService private readonly defaultAccountService: IDefaultAccountService
9799
) {
98100
super();
99101

@@ -579,7 +581,9 @@ export class PromptsService extends Disposable implements IPromptsService {
579581

580582
public async findAgentSkills(token: CancellationToken): Promise<IAgentSkill[] | undefined> {
581583
const useAgentSkills = this.configurationService.getValue(PromptsConfig.USE_AGENT_SKILLS);
582-
if (useAgentSkills) {
584+
const defaultAccount = await this.defaultAccountService.getDefaultAccount();
585+
const previewFeaturesEnabled = defaultAccount?.chat_preview_features_enabled ?? true;
586+
if (useAgentSkills && previewFeaturesEnabled) {
583587
const result: IAgentSkill[] = [];
584588
const process = async (uri: URI, type: 'personal' | 'project'): Promise<void> => {
585589
try {

src/vs/workbench/contrib/chat/test/common/promptSyntax/service/promptsService.test.ts

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ import { InMemoryStorageService, IStorageService } from '../../../../../../../pl
4343
import { IPathService } from '../../../../../../services/path/common/pathService.js';
4444
import { ISearchService } from '../../../../../../services/search/common/search.js';
4545
import { IExtensionService } from '../../../../../../services/extensions/common/extensions.js';
46+
import { IDefaultAccountService } from '../../../../../../../platform/defaultAccount/common/defaultAccount.js';
47+
import { IDefaultAccount } from '../../../../../../../base/common/defaultAccount.js';
4648

4749
suite('PromptsService', () => {
4850
const disposables = ensureNoDisposablesAreLeakedInTestSuite();
@@ -78,6 +80,10 @@ suite('PromptsService', () => {
7880
activateByEvent: () => Promise.resolve()
7981
});
8082

83+
instaService.stub(IDefaultAccountService, {
84+
getDefaultAccount: () => Promise.resolve({ chat_preview_features_enabled: true } as IDefaultAccount)
85+
});
86+
8187
fileService = disposables.add(instaService.createInstance(FileService));
8288
instaService.stub(IFileService, fileService);
8389

@@ -1267,6 +1273,42 @@ suite('PromptsService', () => {
12671273
assert.strictEqual(result, undefined);
12681274
});
12691275

1276+
test('should return undefined when chat_preview_features_enabled is false', async () => {
1277+
testConfigService.setUserConfiguration(PromptsConfig.USE_AGENT_SKILLS, true);
1278+
instaService.stub(IDefaultAccountService, {
1279+
getDefaultAccount: () => Promise.resolve({ chat_preview_features_enabled: false } as IDefaultAccount)
1280+
});
1281+
1282+
// Recreate service with new stub
1283+
service = disposables.add(instaService.createInstance(PromptsService));
1284+
1285+
const result = await service.findAgentSkills(CancellationToken.None);
1286+
assert.strictEqual(result, undefined);
1287+
1288+
// Restore default stub for other tests
1289+
instaService.stub(IDefaultAccountService, {
1290+
getDefaultAccount: () => Promise.resolve({ chat_preview_features_enabled: true } as IDefaultAccount)
1291+
});
1292+
});
1293+
1294+
test('should return undefined when USE_AGENT_SKILLS is enabled but chat_preview_features_enabled is false', async () => {
1295+
testConfigService.setUserConfiguration(PromptsConfig.USE_AGENT_SKILLS, true);
1296+
instaService.stub(IDefaultAccountService, {
1297+
getDefaultAccount: () => Promise.resolve({ chat_preview_features_enabled: false } as IDefaultAccount)
1298+
});
1299+
1300+
// Recreate service with new stub
1301+
service = disposables.add(instaService.createInstance(PromptsService));
1302+
1303+
const result = await service.findAgentSkills(CancellationToken.None);
1304+
assert.strictEqual(result, undefined);
1305+
1306+
// Restore default stub for other tests
1307+
instaService.stub(IDefaultAccountService, {
1308+
getDefaultAccount: () => Promise.resolve({ chat_preview_features_enabled: true } as IDefaultAccount)
1309+
});
1310+
});
1311+
12701312
test('should find skills in workspace and user home', async () => {
12711313
testConfigService.setUserConfiguration(PromptsConfig.USE_AGENT_SKILLS, true);
12721314

0 commit comments

Comments
 (0)