From 655343a36a4ffc9992d5b0c1ff95cf0fd67acad5 Mon Sep 17 00:00:00 2001 From: Adam Hosker Date: Sat, 20 Dec 2025 22:24:54 +0000 Subject: [PATCH] fix: resolve type mismatch in provider default models filtering --- packages/opencode/src/server/server.ts | 41 ++++++++++++++++---------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index 19aa1fed0..41a21f736 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -1481,14 +1481,18 @@ export namespace Server { const providers = await Provider.list().then((x) => mapValues(x, (item) => item)) return c.json({ providers: Object.values(providers), - default: mapValues(providers, (item) => { - const sorted = Provider.sort(Object.values(item.models)) - if (sorted.length === 0) { - log.error("Provider has no models available", { providerID: item.id }) - return null - } - return sorted[0].id - }), + default: Object.fromEntries( + Object.entries(providers) + .map(([providerID, item]) => { + const sorted = Provider.sort(Object.values(item.models)) + if (sorted.length === 0) { + log.error("Provider has no models available", { providerID }) + return null + } + return [providerID, sorted[0].id] + }) + .filter((entry): entry is [string, string] => entry !== null), + ), }) }, ) @@ -1533,16 +1537,21 @@ export namespace Server { mapValues(filteredProviders, (x) => Provider.fromModelsDevProvider(x)), connected, ) + return c.json({ all: Object.values(providers), - default: mapValues(providers, (item) => { - const sorted = Provider.sort(Object.values(item.models)) - if (sorted.length === 0) { - log.error("Provider has no models available", { providerID: item.id }) - return null - } - return sorted[0].id - }), + default: Object.fromEntries( + Object.entries(providers) + .map(([providerID, item]) => { + const sorted = Provider.sort(Object.values(item.models)) + if (sorted.length === 0) { + log.error("Provider has no models available", { providerID }) + return null + } + return [providerID, sorted[0].id] + }) + .filter((entry): entry is [string, string] => entry !== null), + ), connected: Object.keys(connected), }) },