1
1
import { AiServiceProvider , CompletionOptions } from './core/ai-service-provider' ;
2
- import { ProviderFactory , ProviderName } from './providers/providers' ;
2
+ import { ProviderFactory } from './providers/providers' ;
3
3
import { Message } from '../types/chat' ;
4
4
import { StreamControlHandler } from './streaming-control' ;
5
+ import { AIProvider } from '../components/settings/' ;
5
6
6
7
export interface ModelOption {
7
8
id : string ;
@@ -60,9 +61,17 @@ export class AIService {
60
61
*/
61
62
private constructor ( ) {
62
63
// Initialize with default providers
64
+ this . addOpenAIProvider ( ) ;
63
65
this . setupSettingsListener ( ) ;
64
66
}
65
67
68
+ private addOpenAIProvider ( ) : void {
69
+ const openaiProvider = ProviderFactory . getProvider ( 'OpenAI' ) ;
70
+ if ( openaiProvider ) {
71
+ this . providers . set ( 'OpenAI' , openaiProvider ) ;
72
+ }
73
+ }
74
+
66
75
/**
67
76
* Setup event listener for settings changes
68
77
*/
@@ -142,13 +151,13 @@ export class AIService {
142
151
/**
143
152
* Get a specific provider by name
144
153
*/
145
- public getProvider ( name : string ) : AiServiceProvider | undefined {
154
+ public getProvider ( name : AIProvider ) : AiServiceProvider | undefined {
146
155
if ( this . providers . has ( name ) ) {
147
156
return this . providers . get ( name ) ;
148
157
}
149
158
150
159
// 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 ) ;
152
161
if ( provider ) {
153
162
this . providers . set ( name , provider ) ;
154
163
return provider ;
@@ -179,7 +188,7 @@ export class AIService {
179
188
const useStreaming = options . stream ;
180
189
181
190
// Get provider instance
182
- const provider = this . getProvider ( providerName ) ;
191
+ const provider = this . getProvider ( providerName as AIProvider ) ;
183
192
184
193
if ( ! provider ) {
185
194
throw new Error ( `Provider ${ providerName } not available` ) ;
@@ -317,7 +326,7 @@ export class AIService {
317
326
const providerPromises = [ ] ;
318
327
319
328
for ( const provider of this . getAllProviders ( ) ) {
320
- providerPromises . push ( this . getModelsForProvider ( provider . name ) ) ;
329
+ providerPromises . push ( this . getModelsForProvider ( provider . name as AIProvider ) ) ;
321
330
}
322
331
323
332
const results = await Promise . all ( providerPromises ) ;
@@ -337,7 +346,7 @@ export class AIService {
337
346
/**
338
347
* Get models for a specific provider
339
348
*/
340
- public async getModelsForProvider ( providerName : string ) : Promise < ModelOption [ ] > {
349
+ public async getModelsForProvider ( providerName : AIProvider ) : Promise < ModelOption [ ] > {
341
350
// Check if we already have a cached result
342
351
const cachedTime = this . lastFetchTime . get ( providerName ) || 0 ;
343
352
const now = Date . now ( ) ;
0 commit comments