mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-21 02:06:00 +00:00
fix(provider): route gateway variants by api id (#36614)
This commit is contained in:
@@ -759,7 +759,7 @@ export function variants(model: Provider.Model): Record<string, Record<string, a
|
||||
}
|
||||
|
||||
case "@ai-sdk/gateway":
|
||||
if (model.id.includes("anthropic")) {
|
||||
if (model.api.id.includes("anthropic")) {
|
||||
if (adaptiveEfforts) {
|
||||
return Object.fromEntries(
|
||||
adaptiveEfforts.map((effort) => [
|
||||
@@ -792,8 +792,8 @@ export function variants(model: Provider.Model): Record<string, Record<string, a
|
||||
},
|
||||
}
|
||||
}
|
||||
if (model.id.includes("google")) {
|
||||
if (id.includes("2.5")) {
|
||||
if (model.api.id.includes("google")) {
|
||||
if (model.api.id.includes("2.5")) {
|
||||
return {
|
||||
high: {
|
||||
thinkingConfig: {
|
||||
@@ -804,7 +804,7 @@ export function variants(model: Provider.Model): Record<string, Record<string, a
|
||||
max: {
|
||||
thinkingConfig: {
|
||||
includeThoughts: true,
|
||||
thinkingBudget: googleThinkingBudgetMax(id),
|
||||
thinkingBudget: googleThinkingBudgetMax(model.api.id.toLowerCase()),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user