summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/provider/transform.ts4
-rw-r--r--packages/opencode/src/session/llm.ts12
2 files changed, 8 insertions, 8 deletions
diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts
index 832e8c91e..080da6378 100644
--- a/packages/opencode/src/provider/transform.ts
+++ b/packages/opencode/src/provider/transform.ts
@@ -497,6 +497,10 @@ export namespace ProviderTransform {
return { reasoningEffort: "minimal" }
}
if (model.providerID === "google") {
+ // gemini-3 uses thinkingLevel, gemini-2.5 uses thinkingBudget
+ if (model.api.id.includes("gemini-3")) {
+ return { thinkingConfig: { thinkingLevel: "minimal" } }
+ }
return { thinkingConfig: { thinkingBudget: 0 } }
}
if (model.providerID === "openrouter") {
diff --git a/packages/opencode/src/session/llm.ts b/packages/opencode/src/session/llm.ts
index 7e2967e31..0db453a22 100644
--- a/packages/opencode/src/session/llm.ts
+++ b/packages/opencode/src/session/llm.ts
@@ -82,16 +82,12 @@ export namespace LLM {
}
const provider = await Provider.getProvider(input.model.providerID)
- const small = input.small ? ProviderTransform.smallOptions(input.model) : {}
const variant =
!input.small && input.model.variants && input.user.variant ? input.model.variants[input.user.variant] : {}
- const options = pipe(
- ProviderTransform.options(input.model, input.sessionID, provider.options),
- mergeDeep(small),
- mergeDeep(input.model.options),
- mergeDeep(input.agent.options),
- mergeDeep(variant),
- )
+ const base = input.small
+ ? ProviderTransform.smallOptions(input.model)
+ : ProviderTransform.options(input.model, input.sessionID, provider.options)
+ const options = pipe(base, mergeDeep(input.model.options), mergeDeep(input.agent.options), mergeDeep(variant))
const params = await Plugin.trigger(
"chat.params",