@@ -119,6 +119,7 @@ export const providerNames = [
119119 ...customProviders ,
120120 ...fauxProviders ,
121121 "anthropic" ,
122+ "azure" ,
122123 "bedrock" ,
123124 "baseten" ,
124125 "cerebras" ,
@@ -417,12 +418,20 @@ const basetenSchema = apiModelIdProviderModelSchema.extend({
417418 basetenApiKey : z . string ( ) . optional ( ) ,
418419} )
419420
421+ const azureSchema = apiModelIdProviderModelSchema . extend ( {
422+ azureApiKey : z . string ( ) . optional ( ) ,
423+ azureResourceName : z . string ( ) . optional ( ) ,
424+ azureDeploymentName : z . string ( ) . optional ( ) ,
425+ azureApiVersion : z . string ( ) . optional ( ) ,
426+ } )
427+
420428const defaultSchema = z . object ( {
421429 apiProvider : z . undefined ( ) ,
422430} )
423431
424432export const providerSettingsSchemaDiscriminated = z . discriminatedUnion ( "apiProvider" , [
425433 anthropicSchema . merge ( z . object ( { apiProvider : z . literal ( "anthropic" ) } ) ) ,
434+ azureSchema . merge ( z . object ( { apiProvider : z . literal ( "azure" ) } ) ) ,
426435 openRouterSchema . merge ( z . object ( { apiProvider : z . literal ( "openrouter" ) } ) ) ,
427436 bedrockSchema . merge ( z . object ( { apiProvider : z . literal ( "bedrock" ) } ) ) ,
428437 vertexSchema . merge ( z . object ( { apiProvider : z . literal ( "vertex" ) } ) ) ,
@@ -464,6 +473,7 @@ export const providerSettingsSchemaDiscriminated = z.discriminatedUnion("apiProv
464473export const providerSettingsSchema = z . object ( {
465474 apiProvider : providerNamesSchema . optional ( ) ,
466475 ...anthropicSchema . shape ,
476+ ...azureSchema . shape ,
467477 ...openRouterSchema . shape ,
468478 ...bedrockSchema . shape ,
469479 ...vertexSchema . shape ,
@@ -552,6 +562,7 @@ export const isTypicalProvider = (key: unknown): key is TypicalProvider =>
552562
553563export const modelIdKeysByProvider : Record < TypicalProvider , ModelIdKey > = {
554564 anthropic : "apiModelId" ,
565+ azure : "apiModelId" ,
555566 openrouter : "openRouterModelId" ,
556567 bedrock : "apiModelId" ,
557568 vertex : "apiModelId" ,
@@ -628,6 +639,11 @@ export const MODELS_BY_PROVIDER: Record<
628639 label : "Anthropic" ,
629640 models : Object . keys ( anthropicModels ) ,
630641 } ,
642+ azure : {
643+ id : "azure" ,
644+ label : "Azure OpenAI" ,
645+ models : [ ] , // Azure uses deployment names configured by the user
646+ } ,
631647 bedrock : {
632648 id : "bedrock" ,
633649 label : "Amazon Bedrock" ,
0 commit comments