fix(images): route bare dall-e-3 to OpenAI (#10847)

Merged — validated together with a batch of related RaviTharuma PRs in one combined worktree (typecheck:core clean, complexity/file-size/changelog gates green, focused tests passing). Thanks for the contribution!
This commit is contained in:
Ravi Tharuma
2026-08-20 16:47:34 +02:00
committed by GitHub
parent 8122f6b71c
commit 80a59c0ae5
3 changed files with 45 additions and 0 deletions

View File

@@ -0,0 +1 @@
- **fix(images):** register OpenAI `dall-e-3` in the image registry so unprefixed `dall-e-3` (and `openai/dall-e-3`) route to OpenAI Images instead of Microsoft Designer Web, and so the chat catalog no longer lists `openai/dall-e-3` as a 128k chat model ([#10832](https://github.com/diegosouzapw/OmniRoute/issues/10832))

View File

@@ -210,6 +210,7 @@ export const IMAGE_PROVIDERS: Record<string, ImageProviderConfig> = {
authHeader: "bearer",
format: "openai", // native OpenAI format
models: [
{ id: "dall-e-3", name: "DALL·E 3" },
{ id: "gpt-image-2", name: "GPT Image 2" },
{ id: "gpt-image-1.5", name: "GPT Image 1.5" },
{ id: "gpt-image-1-mini", name: "GPT Image 1 Mini" },

View File

@@ -0,0 +1,43 @@
import test from "node:test";
import assert from "node:assert/strict";
import {
IMAGE_PROVIDERS,
parseImageModel,
getAllImageModels,
isRegisteredImageModel,
} from "../../open-sse/config/imageRegistry.ts";
test("#10832 unprefixed dall-e-3 routes to OpenAI, not Microsoft Designer Web", () => {
assert.deepEqual(parseImageModel("dall-e-3"), {
provider: "openai",
model: "dall-e-3",
});
assert.deepEqual(parseImageModel("openai/dall-e-3"), {
provider: "openai",
model: "dall-e-3",
});
assert.deepEqual(parseImageModel("microsoft-designer-web/dall-e-3"), {
provider: "microsoft-designer-web",
model: "dall-e-3",
});
assert.deepEqual(parseImageModel("msdesigner/dall-e-3"), {
provider: "microsoft-designer-web",
model: "dall-e-3",
});
assert.equal(isRegisteredImageModel("openai", "dall-e-3"), true);
assert.equal(isRegisteredImageModel("microsoft-designer-web", "dall-e-3"), true);
const openai = IMAGE_PROVIDERS.openai;
assert.ok(openai.models.some((model) => model.id === "dall-e-3"));
const catalog = getAllImageModels();
assert.ok(catalog.some((model) => model.id === "openai/dall-e-3" && model.provider === "openai"));
assert.ok(
catalog.some(
(model) =>
model.id === "microsoft-designer-web/dall-e-3" &&
model.provider === "microsoft-designer-web"
)
);
});