Skip to content

Commit 2175646

Browse files
committed
Fix: Temporal add OpenAI Provider at startup
1 parent 261905f commit 2175646

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

src/services/ai-service.ts

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { AiServiceProvider, CompletionOptions } from './core/ai-service-provider';
2-
import { ProviderFactory, ProviderName } from './providers/providers';
2+
import { ProviderFactory } from './providers/providers';
33
import { Message } from '../types/chat';
44
import { StreamControlHandler } from './streaming-control';
5+
import { AIProvider } from '../components/settings/';
56

67
export interface ModelOption {
78
id: string;
@@ -60,9 +61,17 @@ export class AIService {
6061
*/
6162
private constructor() {
6263
// Initialize with default providers
64+
this.addOpenAIProvider();
6365
this.setupSettingsListener();
6466
}
6567

68+
private addOpenAIProvider(): void {
69+
const openaiProvider = ProviderFactory.getProvider('OpenAI');
70+
if (openaiProvider) {
71+
this.providers.set('OpenAI', openaiProvider);
72+
}
73+
}
74+
6675
/**
6776
* Setup event listener for settings changes
6877
*/
@@ -142,13 +151,13 @@ export class AIService {
142151
/**
143152
* Get a specific provider by name
144153
*/
145-
public getProvider(name: string): AiServiceProvider | undefined {
154+
public getProvider(name: AIProvider): AiServiceProvider | undefined {
146155
if (this.providers.has(name)) {
147156
return this.providers.get(name);
148157
}
149158

150159
// If provider not in cache, try to create it
151-
const provider = ProviderFactory.getProvider(name as ProviderName);
160+
const provider = ProviderFactory.getProvider(name as AIProvider);
152161
if (provider) {
153162
this.providers.set(name, provider);
154163
return provider;
@@ -179,7 +188,7 @@ export class AIService {
179188
const useStreaming = options.stream;
180189

181190
// Get provider instance
182-
const provider = this.getProvider(providerName);
191+
const provider = this.getProvider(providerName as AIProvider);
183192

184193
if (!provider) {
185194
throw new Error(`Provider ${providerName} not available`);
@@ -317,7 +326,7 @@ export class AIService {
317326
const providerPromises = [];
318327

319328
for (const provider of this.getAllProviders()) {
320-
providerPromises.push(this.getModelsForProvider(provider.name));
329+
providerPromises.push(this.getModelsForProvider(provider.name as AIProvider));
321330
}
322331

323332
const results = await Promise.all(providerPromises);
@@ -337,7 +346,7 @@ export class AIService {
337346
/**
338347
* Get models for a specific provider
339348
*/
340-
public async getModelsForProvider(providerName: string): Promise<ModelOption[]> {
349+
public async getModelsForProvider(providerName: AIProvider): Promise<ModelOption[]> {
341350
// Check if we already have a cached result
342351
const cachedTime = this.lastFetchTime.get(providerName) || 0;
343352
const now = Date.now();

src/services/providers/providers.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,18 @@ import { AiServiceProvider } from '../core/ai-service-provider';
88
import { OpenAIService } from './openai-service';
99
import { AnthropicService } from './anthropic-service';
1010
import { SettingsService } from '../settings-service';
11-
12-
export type ProviderName = 'OpenAI' | 'Anthropic' | 'Gemini' | 'Fireworks' | 'Together' | 'OpenRouter' | 'Custom';
11+
import { AIProvider } from '../../components/settings';
1312

1413
/**
1514
* Factory for creating provider instances
1615
*/
1716
export class ProviderFactory {
18-
private static providers = new Map<ProviderName, AiServiceProvider>();
17+
private static providers = new Map<AIProvider, AiServiceProvider>();
1918

2019
/**
2120
* Get a provider instance
2221
*/
23-
public static getProvider(name: ProviderName): AiServiceProvider | undefined {
22+
public static getProvider(name: AIProvider): AiServiceProvider | undefined {
2423
// Return cached provider if available
2524
if (this.providers.has(name)) {
2625
return this.providers.get(name);

0 commit comments

Comments
 (0)