Skip to content

Commit 1e770ae

Browse files
committed
Falls to AI provider selection when the selected provider becomes disabled
(#4300, #4338)
1 parent 2b4a2c1 commit 1e770ae

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

src/plus/ai/aiProviderService.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -325,12 +325,18 @@ export class AIProviderService implements Disposable {
325325

326326
let chosenProviderId: AIProviders | undefined;
327327
let chosenModel: AIModel | undefined;
328+
const orgAiConf = getOrgAIConfig();
328329

329330
if (!options?.force) {
330-
const vsCodeModels = await this.getModels('vscode');
331-
if (vsCodeModels.length !== 0) {
332-
chosenProviderId = 'vscode';
333-
} else if ((await this.container.subscription.getSubscription()).account?.verified) {
331+
if (isProviderEnabledByOrg('vscode', orgAiConf)) {
332+
const vsCodeModels = await this.getModels('vscode');
333+
if (vsCodeModels.length !== 0) {
334+
chosenProviderId = 'vscode';
335+
}
336+
} else if (
337+
isProviderEnabledByOrg('gitkraken', orgAiConf) &&
338+
(await this.container.subscription.getSubscription()).account?.verified
339+
) {
334340
chosenProviderId = 'gitkraken';
335341
const gitkrakenModels = await this.getModels('gitkraken');
336342
chosenModel = gitkrakenModels.find(m => m.default);
@@ -422,6 +428,12 @@ export class AIProviderService implements Disposable {
422428
providerId = model.provider.id;
423429
}
424430

431+
if (providerId && !isProviderEnabledByOrg(providerId)) {
432+
this._provider = undefined;
433+
this._model = undefined;
434+
return undefined;
435+
}
436+
425437
let changed = false;
426438

427439
if (providerId !== this._provider?.id) {

0 commit comments

Comments
 (0)