Skip to content

Commit 5e29dd7

Browse files
no1wudirekram1-node
authored andcommitted
fix: add explicit fallback model and prevent direct opencode provider calls (anomalyco#4653)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
1 parent 20f57ff commit 5e29dd7

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

packages/opencode/src/provider/provider.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -689,7 +689,14 @@ export namespace Provider {
689689
}
690690
}
691691
}
692-
return getModel("opencode", "gpt-5-nano")
692+
693+
// Check if opencode provider is available before using it
694+
const opencodeProvider = await state().then((state) => state.providers["opencode"])
695+
if (opencodeProvider && opencodeProvider.info.models["gpt-5-nano"]) {
696+
return getModel("opencode", "gpt-5-nano")
697+
}
698+
699+
return undefined
693700
}
694701

695702
const priority = ["gpt-5", "claude-sonnet-4", "big-pickle", "gemini-3-pro"]

packages/opencode/src/session/prompt.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1408,7 +1408,8 @@ export namespace SessionPrompt {
14081408
input.history.filter((m) => m.info.role === "user" && !m.parts.every((p) => "synthetic" in p && p.synthetic))
14091409
.length === 1
14101410
if (!isFirst) return
1411-
const small = await Provider.getSmallModel(input.providerID)
1411+
const small =
1412+
(await Provider.getSmallModel(input.providerID)) ?? (await Provider.getModel(input.providerID, input.modelID))
14121413
const options = pipe(
14131414
{},
14141415
mergeDeep(ProviderTransform.options(small.providerID, small.modelID, small.npm ?? "", input.session.id)),

packages/opencode/src/session/summary.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,10 @@ export namespace SessionSummary {
7373
await Session.updateMessage(userMsg)
7474

7575
const assistantMsg = messages.find((m) => m.info.role === "assistant")!.info as MessageV2.Assistant
76-
const small = await Provider.getSmallModel(assistantMsg.providerID)
76+
const small =
77+
(await Provider.getSmallModel(assistantMsg.providerID)) ??
78+
(await Provider.getModel(assistantMsg.providerID, assistantMsg.modelID))
79+
7780
const options = pipe(
7881
{},
7982
mergeDeep(ProviderTransform.options(small.providerID, small.modelID, small.npm ?? "", assistantMsg.sessionID)),

0 commit comments

Comments
 (0)