@@ -46,6 +46,7 @@ export const dynamicProviders = [
4646 "litellm" ,
4747 "deepinfra" ,
4848 "io-intelligence" ,
49+ "keywords-ai" ,
4950 "requesty" ,
5051 "unbound" ,
5152 "roo" ,
@@ -399,6 +400,13 @@ const ioIntelligenceSchema = apiModelIdProviderModelSchema.extend({
399400 ioIntelligenceApiKey : z . string ( ) . optional ( ) ,
400401} )
401402
403+ const keywordsAiSchema = baseProviderSettingsSchema . extend ( {
404+ keywordsAiApiKey : z . string ( ) . optional ( ) ,
405+ keywordsAiBaseUrl : z . string ( ) . optional ( ) ,
406+ keywordsAiModelId : z . string ( ) . optional ( ) ,
407+ keywordsAiEnableLogging : z . boolean ( ) . optional ( ) ,
408+ } )
409+
402410const qwenCodeSchema = apiModelIdProviderModelSchema . extend ( {
403411 qwenCodeOauthPath : z . string ( ) . optional ( ) ,
404412} )
@@ -455,6 +463,7 @@ export const providerSettingsSchemaDiscriminated = z.discriminatedUnion("apiProv
455463 fireworksSchema . merge ( z . object ( { apiProvider : z . literal ( "fireworks" ) } ) ) ,
456464 featherlessSchema . merge ( z . object ( { apiProvider : z . literal ( "featherless" ) } ) ) ,
457465 ioIntelligenceSchema . merge ( z . object ( { apiProvider : z . literal ( "io-intelligence" ) } ) ) ,
466+ keywordsAiSchema . merge ( z . object ( { apiProvider : z . literal ( "keywords-ai" ) } ) ) ,
458467 qwenCodeSchema . merge ( z . object ( { apiProvider : z . literal ( "qwen-code" ) } ) ) ,
459468 rooSchema . merge ( z . object ( { apiProvider : z . literal ( "roo" ) } ) ) ,
460469 vercelAiGatewaySchema . merge ( z . object ( { apiProvider : z . literal ( "vercel-ai-gateway" ) } ) ) ,
@@ -496,6 +505,7 @@ export const providerSettingsSchema = z.object({
496505 ...fireworksSchema . shape ,
497506 ...featherlessSchema . shape ,
498507 ...ioIntelligenceSchema . shape ,
508+ ...keywordsAiSchema . shape ,
499509 ...qwenCodeSchema . shape ,
500510 ...rooSchema . shape ,
501511 ...vercelAiGatewaySchema . shape ,
@@ -530,6 +540,7 @@ export const modelIdKeys = [
530540 "litellmModelId" ,
531541 "huggingFaceModelId" ,
532542 "ioIntelligenceModelId" ,
543+ "keywordsAiModelId" ,
533544 "vercelAiGatewayModelId" ,
534545 "deepInfraModelId" ,
535546] as const satisfies readonly ( keyof ProviderSettings ) [ ]
@@ -582,6 +593,7 @@ export const modelIdKeysByProvider: Record<TypicalProvider, ModelIdKey> = {
582593 fireworks : "apiModelId" ,
583594 featherless : "apiModelId" ,
584595 "io-intelligence" : "ioIntelligenceModelId" ,
596+ "keywords-ai" : "keywordsAiModelId" ,
585597 roo : "apiModelId" ,
586598 "vercel-ai-gateway" : "vercelAiGatewayModelId" ,
587599}
@@ -716,6 +728,7 @@ export const MODELS_BY_PROVIDER: Record<
716728 litellm : { id : "litellm" , label : "LiteLLM" , models : [ ] } ,
717729 openrouter : { id : "openrouter" , label : "OpenRouter" , models : [ ] } ,
718730 requesty : { id : "requesty" , label : "Requesty" , models : [ ] } ,
731+ "keywords-ai" : { id : "keywords-ai" , label : "Keywords AI" , models : [ ] } ,
719732 unbound : { id : "unbound" , label : "Unbound" , models : [ ] } ,
720733 deepinfra : { id : "deepinfra" , label : "DeepInfra" , models : [ ] } ,
721734 "vercel-ai-gateway" : { id : "vercel-ai-gateway" , label : "Vercel AI Gateway" , models : [ ] } ,
0 commit comments