summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2026-02-11 23:10:47 -0500
committerDax Raad <[email protected]>2026-02-11 23:10:47 -0500
commitad2087094d84cb9255f08c787f8ffbe0f78fdba0 (patch)
treeb1e2f1481e50ba0775fb2ba1446e98d902c5fd8e /packages
parent5bdf1c4b96545619e3b062b47912f845de7ca1b8 (diff)
downloadopencode-ad2087094d84cb9255f08c787f8ffbe0f78fdba0.tar.gz
opencode-ad2087094d84cb9255f08c787f8ffbe0f78fdba0.zip
support custom api url per model
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/provider/models.ts2
-rw-r--r--packages/opencode/src/provider/provider.ts4
2 files changed, 3 insertions, 3 deletions
diff --git a/packages/opencode/src/provider/models.ts b/packages/opencode/src/provider/models.ts
index 07881cbfe..4725d0d39 100644
--- a/packages/opencode/src/provider/models.ts
+++ b/packages/opencode/src/provider/models.ts
@@ -64,7 +64,7 @@ export namespace ModelsDev {
status: z.enum(["alpha", "beta", "deprecated"]).optional(),
options: z.record(z.string(), z.any()),
headers: z.record(z.string(), z.string()).optional(),
- provider: z.object({ npm: z.string() }).optional(),
+ provider: z.object({ npm: z.string(), api: z.string() }).optional(),
variants: z.record(z.string(), z.record(z.string(), z.any())).optional(),
})
export type Model = z.infer<typeof Model>
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index a02a017e7..d76cc902a 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -629,7 +629,7 @@ export namespace Provider {
family: model.family,
api: {
id: model.id,
- url: provider.api!,
+ url: model.provider?.api ?? provider.api!,
npm: model.provider?.npm ?? provider.npm ?? "@ai-sdk/openai-compatible",
},
status: model.status ?? "active",
@@ -781,7 +781,7 @@ export namespace Provider {
existingModel?.api.npm ??
modelsDev[providerID]?.npm ??
"@ai-sdk/openai-compatible",
- url: provider?.api ?? existingModel?.api.url ?? modelsDev[providerID]?.api,
+ url: model.provider?.api ?? provider?.api ?? existingModel?.api.url ?? modelsDev[providerID]?.api,
},
status: model.status ?? existingModel?.status ?? "active",
name,