summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/provider/provider.ts54
1 files changed, 27 insertions, 27 deletions
diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts
index fc835cf5e..24b599db0 100644
--- a/packages/opencode/src/provider/provider.ts
+++ b/packages/opencode/src/provider/provider.ts
@@ -1140,6 +1140,33 @@ const layer: Layer.Layer<
return true
}
+ for (const hook of plugins) {
+ const p = hook.provider
+ const models = p?.models
+ if (!p || !models) continue
+
+ const providerID = ProviderID.make(p.id)
+ if (disabled.has(providerID)) continue
+
+ const provider = database[providerID]
+ if (!provider) continue
+ const pluginAuth = yield* auth.get(providerID).pipe(Effect.orDie)
+
+ provider.models = yield* Effect.promise(async () => {
+ const next = await models(provider, { auth: pluginAuth })
+ return Object.fromEntries(
+ Object.entries(next).map(([id, model]) => [
+ id,
+ {
+ ...model,
+ id: ModelID.make(id),
+ providerID,
+ },
+ ]),
+ )
+ })
+ }
+
// extend database from config
for (const [providerID, provider] of configProviders) {
const existing = database[providerID]
@@ -1326,33 +1353,6 @@ const layer: Layer.Layer<
})
}
- for (const hook of plugins) {
- const p = hook.provider
- const models = p?.models
- if (!p || !models) continue
-
- const providerID = ProviderID.make(p.id)
- if (disabled.has(providerID)) continue
-
- const provider = providers[providerID]
- if (!provider) continue
- const pluginAuth = yield* auth.get(providerID).pipe(Effect.orDie)
-
- provider.models = yield* Effect.promise(async () => {
- const next = await models(provider, { auth: pluginAuth })
- return Object.fromEntries(
- Object.entries(next).map(([id, model]) => [
- id,
- {
- ...model,
- id: ModelID.make(id),
- providerID,
- },
- ]),
- )
- })
- }
-
for (const [id, provider] of Object.entries(providers)) {
const providerID = ProviderID.make(id)
if (!isProviderAllowed(providerID)) {