573
return allAgents.filter(agent => matchesSessionType(agent.sessionTypes, sessionType));
574
}
576
>
if (harness.itemProvider.provideCustomAgents) {
577
return harness.itemProvider.provideCustomAgents(sessionResource, token);
578
}
580
>
581
>
const items = await harness.itemProvider.provideChatSessionCustomizations(sessionResource, token);
582
if (!items || token.isCancellationRequested) {
583
return [];
584
}
586
>
const getSource = (item: ICustomizationItem): IAgentSource => {
587
>
if (item.source === PromptsStorage.extension && item.extensionId) {
588
return { storage: PromptsStorage.extension, extensionId: new ExtensionIdentifier(item.extensionId) };
590
return { storage: PromptsStorage.plugin, pluginUri: item.pluginUri };
592
return { storage: PromptsStorage.user };
593
}
595
>
};
596
>
597
>
const result: ICustomAgent[] = [];
598
>
for (const item of items) {
599
>
if (item.type === PromptsType.agent) {
600
>
const promptFile = await this.promptsService.parseNew(item.uri, token);
601
>
const extra = {
602
>
name: item.name,
603
>
description: item.description,
604
>
sessionTypes: [sessionType],
605
>
hooks: undefined,
606
>
source: getSource(item),
607
>
type: PromptsType.agent,
608
>
enabled: item.enabled !== false,
609
>
};
610
>
result.push(CustomAgent.fromParsedPromptFile(promptFile, extra));
611
>
}
612
>
}
613
>
return result;
614
}
615