Skip to content

feat(v2): complete model APIs, packages and prices for Azure, Bedrock, Databricks, Snowflake, Copilot and GitLab - #11136

Merged
rekram1-node merged 9 commits into
devfrom
imp-labs-2
Oct 23, 2026
Merged

rekram1-node merged 9 commits into
devfrom
imp-labs-2

Conversation

@rekram1-node

Copy link
Copy Markdown
Collaborator

Builds on #11135. Its first two commits are the same generator fix: a first API table with no aisdk takes the provider's npm for its v1 shape, so Azure can list Responses then Chat Completions without changing v1. Merge #11135 first.

Problem

Cloud and gateway files listed one API per model. Bedrock Mantle, Azure Chat Completions, Copilot's Claude Chat Completions, and the Databricks and Snowflake Messages and Responses endpoints were all missing. GitLab Claude models were labeled Chat Completions, even though they go through the Anthropic proxy. Azure Foundry models had no table at all, so they inherited @ai-sdk/azure's Responses default, which Azure doesn't serve for them.

Change

The first table is always what the model already published.

Provider APIs added Source
Amazon Bedrock Mantle Chat Completions on 15 Responses-first models (/openai/v1 for GPT, Grok 4.3, Gemma 4; /v1 for gpt-oss); [api.converse] + Mantle Chat (/v1) on 26 open-weight models; [api.converse] + Mantle Messages (/anthropic/v1) on 6 bare Claude IDs Mantle GET /v1/models, then each API checked live in us-east-1
Azure Chat Completions (azure/chat) next to Responses on 26 OpenAI chat models Responses supported-models list; reasoning-model API tables
GitHub Copilot Chat Completions next to Messages on 11 Claude models GET /models supported_endpoints (recorded in provider.toml)
GitLab [api.messages] on 14 Claude models (was a derived Chat Completions); Responses next to Chat on 17 OpenAI models gitlab-ai-provider's proxy routes
Databricks Responses (/serving-endpoints/responses) on 12 GPT models; Messages (/serving-endpoints/anthropic/v1) on 8 Claude models Databricks API reference and Anthropic Messages page
Snowflake Cortex Messages (/api/v2/cortex/v1/messages) on 10 Claude models Cortex REST API page
amazon-bedrock/openai.gpt-5.5
  [api.responses]          bedrock-mantle/openai/v1   (unchanged, first)
+ [api.chat-completions]   bedrock-mantle/openai/v1   amazon-bedrock/mantle/chat
amazon-bedrock/zai.glm-5
+ [api.converse]           (provider default, first)
+ [api.chat-completions]   bedrock-mantle/v1          amazon-bedrock/mantle/chat

Packages. Most specific existing entry: amazon-bedrock/mantle/chat|responses|messages, azure/chat, openai-compatible/responses, anthropic-compatible. Prices: nothing missing that v2 can hold (Databricks batch is per DBU-hour and stays unmodeled).

Seven Databricks Claude files and phi-4-multimodal were rewritten by the formatter: number underscores only (8000 -> 8_000).

Pending user approval (last commit)

26 Azure models (Grok, Llama, Mistral, Phi, DeepSeek V3.2, Cohere Command A, gpt-3.5-turbo-0125/1106, gpt-4-turbo, gpt-4-turbo-vision) now list Chat Completions only. Azure's Responses list covers only OpenAI models, and not these legacy ones. v1: the 26 models and their azure-cognitive-services aliases gain provider.shape = "completions" (52 entries).

Out of scope / report only

  • Bare Bedrock Claude IDs (anthropic.claude-opus-4-8, etc.) fail Converse on demand ("on-demand throughput isn't supported"). Converse stays first for provisioned use. Making Mantle Messages first would change v1.
  • Bedrock InvokeModel (Anthropic body) shares the messages key with Mantle and has no OpenCode entry. Databricks Open Responses lives at /serving-endpoints/open-responses (no /responses suffix), so no SDK can reach it from a base URL. Azure gpt-3.5-turbo-instruct is legacy Completions only (no protocol for it).
  • Copilot's GPT models were left on Responses only, because supported_endpoints lists no Chat Completions for them.
  • Missing models: Bedrock Mantle IDs without a file (deepseek.v3.1, six Qwen3 IDs, writer.palmyra-vision-7b, moonshotai.kimi-k2-thinking, zai.glm-4.6).
  • Pre-existing: the three Bedrock Gemma 4 files still use generic modalities.

Verification

  • bun validate: passes.
  • bun run v1:check: byte-identical without the pending commit; with it, only the 52 provider additions above.
  • bun test: 709 pass, 10 fail (the same 10 as dev).
  • v2 output vs dev: API changes only. amazon-bedrock 47 models, azure 52 (26 first-API changes are the pending commit), github-copilot 11, gitlab 31, databricks 20, snowflake-cortex 10.
  • github-copilot sync dry run: 0 updated.

@github-actions

Copy link
Copy Markdown
Contributor

Action items

  • [high] [violation] providers/azure/models/codestral-2501.toml:27 - Check: Never break v1 without sourced fix + maintainer approval. Why: Adding first [api.chat-completions] on @ai-sdk/azure (Responses-default SDK) changes v1 provider.shape from absent to completions for 26 Foundry/legacy models plus azure-cognitive-services aliases, which bun run v1:check will report as changed. Patch 9/9 notes this as pending approval. Action: Confirm bun run v1:check shows only the intended 26 models/aliases gaining shape = "completions", keep the Responses-only source cited in the header, and obtain explicit maintainer approval before merge.

@rekram1-node

Copy link
Copy Markdown
Collaborator Author

Confirmed: the full bun run v1:check shows only the intended change, api provider: added on 52 entries (the 26 Azure models and their azure-cognitive-services aliases), each {"shape":"completions"}. It's isolated in the last commit and listed under pending approval in the PR body.

…for its v1 shape

A leading [api.responses] on an @ai-sdk/openai or @ai-sdk/azure provider is
the SDK's default and should publish no v1 shape, as a file with no tables
does. Two Infer files that relied on the old reading keep their shape with
legacy_shape. v1 is byte-identical.
createXai().languageModel() is the Responses model, so a leading
[api.responses] on xAI is the SDK's default and publishes no v1 shape. No
existing file is affected.
…ions (pending approval)

Azure's Responses API lists only OpenAI models (and not gpt-3.5-turbo or
gpt-4-turbo), but these 26 models had no API table, so they inherited
@ai-sdk/azure's Responses default. Each now lists Chat Completions.

v1: these 26 models (and their azure-cognitive-services aliases) gain
provider.shape = "completions".
@github-actions

Copy link
Copy Markdown
Contributor

No actionable findings.

@github-actions github-actions Bot added the reviewer: ready Automated review found no actionable items label Oct 23, 2026
@rekram1-node
rekram1-node enabled auto-merge (squash) October 23, 2026 05:47
@rekram1-node
rekram1-node disabled auto-merge October 23, 2026 05:47
@rekram1-node
rekram1-node merged commit a0b7654 into dev Oct 23, 2026
2 checks passed
@rekram1-node
rekram1-node deleted the imp-labs-2 branch October 23, 2026 05:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

reviewer: ready Automated review found no actionable items

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant