|
|
@@ -3372,6 +3372,42 @@ describe("ProviderTransform.variants", () => {
|
|
|
})
|
|
|
|
|
|
describe("@ai-sdk/gateway", () => {
|
|
|
+ test("configured anthropic aliases route by the API ID", () => {
|
|
|
+ const model = createMockModel({
|
|
|
+ id: "my-claude",
|
|
|
+ providerID: "gateway",
|
|
|
+ api: {
|
|
|
+ id: "anthropic/claude-sonnet-4-6",
|
|
|
+ url: "https://gateway.ai",
|
|
|
+ npm: "@ai-sdk/gateway",
|
|
|
+ },
|
|
|
+ })
|
|
|
+ const result = ProviderTransform.variants(model)
|
|
|
+ expect(Object.keys(result)).toEqual(["low", "medium", "high", "max"])
|
|
|
+ expect(result.high).toEqual({
|
|
|
+ thinking: {
|
|
|
+ type: "adaptive",
|
|
|
+ },
|
|
|
+ effort: "high",
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
+ test("configured google aliases route by the API ID", () => {
|
|
|
+ const model = createMockModel({
|
|
|
+ id: "my-gemini",
|
|
|
+ providerID: "gateway",
|
|
|
+ api: {
|
|
|
+ id: "google/gemini-2.5-pro",
|
|
|
+ url: "https://gateway.ai",
|
|
|
+ npm: "@ai-sdk/gateway",
|
|
|
+ },
|
|
|
+ })
|
|
|
+ expect(ProviderTransform.variants(model)).toEqual({
|
|
|
+ high: { thinkingConfig: { includeThoughts: true, thinkingBudget: 16_000 } },
|
|
|
+ max: { thinkingConfig: { includeThoughts: true, thinkingBudget: 32_768 } },
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
test("anthropic sonnet 4.6 models return adaptive thinking options", () => {
|
|
|
const model = createMockModel({
|
|
|
id: "anthropic/claude-sonnet-4-6",
|