Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
90a20e4
feat: add dedicated Azure OpenAI provider using @ai-sdk/azure package
roomote Feb 1, 2026
8c91b45
feat: add Azure provider UI component and translations
roomote Feb 1, 2026
02843a6
feat: add Azure provider translations for all locales
roomote Feb 1, 2026
5be29ae
chore: add missing Azure placeholder translations
daniel-lxs Feb 1, 2026
73dab61
Delete .changeset/azure-ai-sdk-migration.md
mrubens Feb 2, 2026
c0bbf3b
fix: add Azure provider validation for onboarding workflow
hannesrudolph Feb 3, 2026
40c8158
feat(azure): add model metadata, model picker, rename to Azure AI Fou…
hannesrudolph Feb 5, 2026
61a6709
fix(azure): add missing isAiSdkProvider() override for reasoning bloc…
hannesrudolph Feb 5, 2026
7fd6059
fix: upgrade @ai-sdk/azure to v3 and use deployment-based URLs
hannesrudolph Feb 6, 2026
0c63825
feat(azure): add all tool-calling models from models.dev/api.json
hannesrudolph Feb 6, 2026
a9ebabe
refactor(azure): remove models with <128k context window
hannesrudolph Feb 6, 2026
9a4db8d
refactor(azure): scope provider to Azure OpenAI models only
hannesrudolph Feb 6, 2026
8c31b80
refactor(azure): replace resourceName with baseURL and fix translations
hannesrudolph Feb 6, 2026
880bcc5
feat(azure): add URL auto-parser and improve settings UX
hannesrudolph Feb 7, 2026
6838445
fix(azure): stop auto-filling API version from pasted URL
hannesrudolph Feb 7, 2026
619db5b
refactor(azure): hide API version field in Welcome view
hannesrudolph Feb 7, 2026
70d51d8
feat(azure): change default model to gpt-5.2
hannesrudolph Feb 7, 2026
da10b71
fix(azure): coerce empty azureApiKey to undefined for env var fallback
roomote Feb 7, 2026
770b071
fix(settings): default reasoning effort from model definition
hannesrudolph Feb 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/types/src/global-settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,7 @@ export const SECRET_STATE_KEYS = [
"ioIntelligenceApiKey",
"vercelAiGatewayApiKey",
"basetenApiKey",
"azureApiKey",
] as const

// Global secrets that are part of GlobalSettings (not ProviderSettings)
Expand Down
17 changes: 17 additions & 0 deletions packages/types/src/provider-settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ export const providerNames = [
...customProviders,
...fauxProviders,
"anthropic",
"azure",
"bedrock",
"baseten",
"cerebras",
Expand Down Expand Up @@ -413,12 +414,20 @@ const basetenSchema = apiModelIdProviderModelSchema.extend({
basetenApiKey: z.string().optional(),
})

const azureSchema = apiModelIdProviderModelSchema.extend({
azureApiKey: z.string().optional(),
azureBaseUrl: z.string().optional(),
azureDeploymentName: z.string().optional(),
azureApiVersion: z.string().optional(),
})

const defaultSchema = z.object({
apiProvider: z.undefined(),
})

export const providerSettingsSchemaDiscriminated = z.discriminatedUnion("apiProvider", [
anthropicSchema.merge(z.object({ apiProvider: z.literal("anthropic") })),
azureSchema.merge(z.object({ apiProvider: z.literal("azure") })),
openRouterSchema.merge(z.object({ apiProvider: z.literal("openrouter") })),
bedrockSchema.merge(z.object({ apiProvider: z.literal("bedrock") })),
vertexSchema.merge(z.object({ apiProvider: z.literal("vertex") })),
Expand Down Expand Up @@ -460,6 +469,7 @@ export const providerSettingsSchemaDiscriminated = z.discriminatedUnion("apiProv
export const providerSettingsSchema = z.object({
apiProvider: providerNamesSchema.optional(),
...anthropicSchema.shape,
...azureSchema.shape,
...openRouterSchema.shape,
...bedrockSchema.shape,
...vertexSchema.shape,
Expand Down Expand Up @@ -548,6 +558,7 @@ export const isTypicalProvider = (key: unknown): key is TypicalProvider =>

export const modelIdKeysByProvider: Record<TypicalProvider, ModelIdKey> = {
anthropic: "apiModelId",
azure: "apiModelId",
openrouter: "openRouterModelId",
bedrock: "apiModelId",
vertex: "apiModelId",
Expand Down Expand Up @@ -624,6 +635,12 @@ export const MODELS_BY_PROVIDER: Record<
label: "Anthropic",
models: Object.keys(anthropicModels),
},
azure: {
id: "azure",
label: "Azure OpenAI",
// Azure uses deployment names configured by the user (not a fixed upstream model ID list)
models: [],
},
bedrock: {
id: "bedrock",
label: "Amazon Bedrock",
Expand Down
Loading