fix(groq): pass through reasoning effort (#42166)

Co-authored-by: Aiden Cline <rekram1-node@users.noreply.github.com>
This commit is contained in:
opencode-agent[bot]
2026-08-12 17:20:23 -05:00
committed by GitHub
parent beeabe2e4b
commit 6fea419feb
4 changed files with 110 additions and 1 deletions
+1
View File
@@ -1075,6 +1075,7 @@
"@silvia-odwyer/photon-node@0.3.4": "patches/@silvia-odwyer%2Fphoton-node@0.3.4.patch",
"@npmcli/agent@4.0.2": "patches/@npmcli%2Fagent@4.0.2.patch",
"solid-js@1.9.10": "patches/solid-js@1.9.10.patch",
"@ai-sdk/groq@3.0.31": "patches/@ai-sdk%2Fgroq@3.0.31.patch",
"@ai-sdk/google@3.0.73": "patches/@ai-sdk%2Fgoogle@3.0.73.patch",
"pacote@21.5.0": "patches/pacote@21.5.0.patch",
"@dnd-kit/dom@0.5.0": "patches/@dnd-kit%2Fdom@0.5.0.patch",
+2 -1
View File
@@ -159,6 +159,7 @@
"@modelcontextprotocol/sdk@1.29.0": "patches/@modelcontextprotocol%2Fsdk@1.29.0.patch",
"effect@4.0.0-beta.83": "patches/effect@4.0.0-beta.83.patch",
"@tanstack/virtual-core@3.17.3": "patches/@tanstack%2Fvirtual-core@3.17.3.patch",
"@ai-sdk/openai-compatible@2.0.41": "patches/@ai-sdk%2Fopenai-compatible@2.0.41.patch"
"@ai-sdk/openai-compatible@2.0.41": "patches/@ai-sdk%2Fopenai-compatible@2.0.41.patch",
"@ai-sdk/groq@3.0.31": "patches/@ai-sdk%2Fgroq@3.0.31.patch"
}
}
+28
View File
@@ -0,0 +1,28 @@
import { createGroq } from "@ai-sdk/groq"
import { expect, test } from "bun:test"
test("Groq passes through unknown reasoning effort", async () => {
let body: Record<string, unknown> | undefined
const mockFetch = Object.assign(
async (_input: Parameters<typeof fetch>[0], init?: RequestInit) => {
body = JSON.parse(String(init?.body))
return Response.json({
id: "response-1",
created: 0,
model: "openai/gpt-oss-120b",
object: "chat.completion",
choices: [{ index: 0, message: { role: "assistant", content: "Hello" }, finish_reason: "stop" }],
usage: { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 },
})
},
{ preconnect: fetch.preconnect },
)
const model = createGroq({ apiKey: "test", fetch: mockFetch })("openai/gpt-oss-120b")
await model.doGenerate({
prompt: [{ role: "user", content: [{ type: "text", text: "Hello" }] }],
providerOptions: { groq: { reasoningEffort: "custom" } },
})
expect(body?.reasoning_effort).toBe("custom")
})
+79
View File
@@ -0,0 +1,79 @@
diff --git a/dist/index.d.mts b/dist/index.d.mts
index 8b23996dcce6c1ad5b17ef59f92196fb97312d79..80be2e52a347042b89da8e502834afd92120877a 100644
--- a/dist/index.d.mts
+++ b/dist/index.d.mts
@@ -10,13 +10,7 @@ declare const groqLanguageModelOptions: z.ZodObject<{
raw: "raw";
hidden: "hidden";
}>>;
- reasoningEffort: z.ZodOptional<z.ZodEnum<{
- none: "none";
- default: "default";
- low: "low";
- medium: "medium";
- high: "high";
- }>>;
+ reasoningEffort: z.ZodOptional<z.ZodString>;
parallelToolCalls: z.ZodOptional<z.ZodBoolean>;
user: z.ZodOptional<z.ZodString>;
structuredOutputs: z.ZodOptional<z.ZodBoolean>;
diff --git a/dist/index.d.ts b/dist/index.d.ts
index 8b23996dcce6c1ad5b17ef59f92196fb97312d79..80be2e52a347042b89da8e502834afd92120877a 100644
--- a/dist/index.d.ts
+++ b/dist/index.d.ts
@@ -10,13 +10,7 @@ declare const groqLanguageModelOptions: z.ZodObject<{
raw: "raw";
hidden: "hidden";
}>>;
- reasoningEffort: z.ZodOptional<z.ZodEnum<{
- none: "none";
- default: "default";
- low: "low";
- medium: "medium";
- high: "high";
- }>>;
+ reasoningEffort: z.ZodOptional<z.ZodString>;
parallelToolCalls: z.ZodOptional<z.ZodBoolean>;
user: z.ZodOptional<z.ZodString>;
structuredOutputs: z.ZodOptional<z.ZodBoolean>;
diff --git a/dist/index.js b/dist/index.js
index 45a104f2e0775761858eac2a82ced64bceba1f5e..f60ac36f4a064d527e8f8881b1d6c58ff69286a3 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -214,7 +214,7 @@ var groqLanguageModelOptions = import_v4.z.object({
* Specifies the reasoning effort level for model inference.
* @see https://console.groq.com/docs/reasoning#reasoning-effort
*/
- reasoningEffort: import_v4.z.enum(["none", "default", "low", "medium", "high"]).optional(),
+ reasoningEffort: import_v4.z.string().optional(),
/**
* Whether to enable parallel function calling during tool use. Default to true.
*/
diff --git a/dist/index.mjs b/dist/index.mjs
index c644c32235d8fa88c51c0fc6958feb1da4877c96..2c2f81869673eb4633e843d93ff5376abf1e67d0 100644
--- a/dist/index.mjs
+++ b/dist/index.mjs
@@ -203,7 +203,7 @@ var groqLanguageModelOptions = z.object({
* Specifies the reasoning effort level for model inference.
* @see https://console.groq.com/docs/reasoning#reasoning-effort
*/
- reasoningEffort: z.enum(["none", "default", "low", "medium", "high"]).optional(),
+ reasoningEffort: z.string().optional(),
/**
* Whether to enable parallel function calling during tool use. Default to true.
*/
diff --git a/src/groq-chat-options.ts b/src/groq-chat-options.ts
index 3812cdf53308709f166f05c58c5d46a5d8189c8b..af520c5459bd752b3cce03c3b4afbeed31157d90 100644
--- a/src/groq-chat-options.ts
+++ b/src/groq-chat-options.ts
@@ -33,9 +33,7 @@ export const groqLanguageModelOptions = z.object({
* Specifies the reasoning effort level for model inference.
* @see https://console.groq.com/docs/reasoning#reasoning-effort
*/
- reasoningEffort: z
- .enum(['none', 'default', 'low', 'medium', 'high'])
- .optional(),
+ reasoningEffort: z.string().optional(),
/**
* Whether to enable parallel function calling during tool use. Default to true.