1086
1087
private async _resolveAllLanguageModels(vendorId: string, silent: boolean): Promise<void> {
1089
>
const vendor = this._vendors.get(vendorId);
1090
>
1091
>
if (!vendor) {
1092
return;
1093
}
1095
>
// If a provider is already registered (e.g. a renderer-side provider
1096
>
// such as the agent host), skip the activation wait — there's nothing
1097
>
// more for an extension to contribute, and waiting would block on
1098
>
// extension host startup unnecessarily.
1099
>
let provider = this._providers.get(vendorId);
1100
>
if (!provider) {
1101
// Activate extensions before requesting to resolve the models
1102
await this._extensionService.activateByEvent(`onLanguageModelChatProvider:${vendorId}`);
1103
provider = this._providers.get(vendorId);
1104
}
1106
this._logService.warn(`[LM] No provider registered for vendor ${vendorId}`);
1107
return;
1108
}
1110
>
return this._resolveLMSequencer.queue(vendorId, async () => {
1111
>
1112
>
const allModels: ILanguageModelChatMetadataAndIdentifier[] = [];
1113
>
const languageModelsGroups: ILanguageModelsGroup[] = [];
1114
>
1115
>
try {
1116
>
const models = await provider.provideLanguageModelChatInfo({ silent }, CancellationToken.None);
1117
>
if (models.length) {
1118
allModels.push(...models);
1119
const modelIdentifiers = [];