934
export async function readPluginSkills(pluginRoot: URI, dirs: readonly URI[], format: IPluginFormatConfig, fileService: IFileService): Promise<readonly INamedPluginResource[]> {
935
return readSkills(pluginRoot, dirs, fileService, format.format === PluginFormat.AgentPlugin
936
>
? { childDirectoriesOnly: true, containmentRoot: pluginRoot }
pluginParsers.ts
937
: undefined);
938
}
939
940
>
async function isResolvedWithin(root: URI, resource: URI, fileService: IFileService): Promise<boolean> {
pluginParsers.ts
941
>
try {
942
>
const [resolvedRoot, resolvedResource] = await Promise.all([
943
>
fileService.realpath(root),
944
>
fileService.realpath(resource),
945
>
]);
946
>
return isEqualOrParent(resolvedResource ?? normalizePath(resource), resolvedRoot ?? normalizePath(root));
947
>
} catch {
948
return false;
949
}
951
952
export async function readMarkdownComponents(dirs: readonly URI[], fileService: IFileService): Promise<readonly INamedPluginResource[]> {