diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index 4013dcee36e7..ed47467f1628 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -1203,7 +1203,10 @@ const layer: Layer.Layer< name, providerID: ProviderID.make(providerID), capabilities: { - temperature: model.temperature ?? existingModel?.capabilities.temperature ?? false, + temperature: + model.temperature ?? + existingModel?.capabilities.temperature ?? + (apiNpm === "@ai-sdk/openai-compatible" ? true : false), reasoning: model.reasoning ?? existingModel?.capabilities.reasoning ?? false, attachment: model.attachment ?? existingModel?.capabilities.attachment ?? false, toolcall: model.tool_call ?? existingModel?.capabilities.toolcall ?? true, diff --git a/packages/opencode/test/provider/provider.test.ts b/packages/opencode/test/provider/provider.test.ts index cdb9d2057245..a7d1ef6a13da 100644 --- a/packages/opencode/test/provider/provider.test.ts +++ b/packages/opencode/test/provider/provider.test.ts @@ -297,6 +297,7 @@ test("custom provider with npm package", async () => { expect(providers[ProviderID.make("custom-provider")]).toBeDefined() expect(providers[ProviderID.make("custom-provider")].name).toBe("Custom Provider") expect(providers[ProviderID.make("custom-provider")].models["custom-model"]).toBeDefined() + expect(providers[ProviderID.make("custom-provider")].models["custom-model"].capabilities.temperature).toBe(true) }, }) })