From 59a89e0c1cb315ee41d33da72f3a407b844191ea Mon Sep 17 00:00:00 2001 From: Cristina Poncela Cubeiro <140309543+cristinaponcela@users.noreply.github.com> Date: Wed, 29 Apr 2026 09:51:57 +0200 Subject: [PATCH] fix: modalities from openrouter --- packages/ai/src/providers/openai-completions.ts | 4 ++++ packages/ai/test/openai-completions-image-output.test.ts | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/ai/src/providers/openai-completions.ts b/packages/ai/src/providers/openai-completions.ts index ffe4e28e..f2d36e7c 100644 --- a/packages/ai/src/providers/openai-completions.ts +++ b/packages/ai/src/providers/openai-completions.ts @@ -575,6 +575,10 @@ function buildParams( prompt_cache_retention: cacheRetention === "long" && compat.supportsLongCacheRetention ? "24h" : undefined, }; + if (isOpenRouterImageGenerationModel(model)) { + Reflect.set(params, "modalities", ["image"]); + } + if (compat.supportsUsageInStreaming !== false) { (params as any).stream_options = { include_usage: true }; } diff --git a/packages/ai/test/openai-completions-image-output.test.ts b/packages/ai/test/openai-completions-image-output.test.ts index 2cf1b7fb..745305c4 100644 --- a/packages/ai/test/openai-completions-image-output.test.ts +++ b/packages/ai/test/openai-completions-image-output.test.ts @@ -92,8 +92,9 @@ describe("openai-completions image output", () => { data: "ZmFrZS1wbmc=", }); - const params = mockState.lastParams as { stream?: boolean; stream_options?: unknown }; + const params = mockState.lastParams as { stream?: boolean; stream_options?: unknown; modalities?: string[] }; expect(params.stream).toBe(false); expect("stream_options" in (params as object)).toBe(false); + expect(params.modalities).toEqual(["image"]); }); });