@@ -245,7 +245,7 @@ export class ProviderConfigLoader {
245245 results . forEach ( ( result , index ) => {
246246 if ( result . status === 'fulfilled' && result . value ) {
247247 validPresets . push ( result . value ) ;
248- } else {
248+ } else if ( result . status === 'rejected' ) {
249249 console . warn ( `[ProviderConfigLoader] Failed to fetch provider ${ knownProviders [ index ] } :` , result . reason ) ;
250250 }
251251 } ) ;
@@ -294,25 +294,33 @@ export class ProviderConfigLoader {
294294 throw new Error ( `Invalid provider data ${ data . providerId } : missing or invalid name` ) ;
295295 }
296296
297- if ( ! data . apiUrl || typeof data . apiUrl !== 'object' || ! data . apiUrl . codingPlanForAnthropic ) {
297+ if ( ! data . apiUrl || typeof data . apiUrl !== 'object' ) {
298298 throw new Error ( `Invalid provider data ${ data . providerId } : missing or invalid apiUrl` ) ;
299299 }
300300
301+ const apiUrl = data . apiUrl as Record < string , unknown > ;
302+ if ( ! apiUrl . codingPlanForAnthropic ) {
303+ throw new Error ( `Invalid provider data ${ data . providerId } : missing or invalid apiUrl.codingPlanForAnthropic` ) ;
304+ }
305+
306+ // Extract defaultModels with proper typing
307+ const defaultModels = ( data . defaultModels || { } ) as Record < string , unknown > ;
308+
301309 // Construct provider preset with defaults for optional fields
302310 return {
303311 providerId : data . providerId as string ,
304312 name : data . name as string ,
305- description : data . description as string || '' ,
306- category : data . category as string || 'other' ,
313+ description : ( data . description as string ) || '' ,
314+ category : ( data . category as string ) || 'other' ,
307315 apiUrl : {
308- codingPlanForAnthropic : ( data . apiUrl as Record < string , string > ) . codingPlanForAnthropic
316+ codingPlanForAnthropic : ( apiUrl . codingPlanForAnthropic as string )
309317 } ,
310318 recommended : data . recommended === true ,
311319 region : data . region as string | undefined ,
312320 defaultModels : {
313- sonnet : data . defaultModels ? .sonnet as string | null ?? null ,
314- opus : data . defaultModels ? .opus as string | null ?? null ,
315- haiku : data . defaultModels ? .haiku as string | null ?? null
321+ sonnet : ( defaultModels . sonnet as string | null ) ?? null ,
322+ opus : ( defaultModels . opus as string | null ) ?? null ,
323+ haiku : ( defaultModels . haiku as string | null ) ?? null
316324 } ,
317325 supportedModels : Array . isArray ( data . supportedModels ) ? data . supportedModels as string [ ] : undefined ,
318326 features : Array . isArray ( data . features ) ? data . features as string [ ] : undefined ,
0 commit comments