From afa04d6454f54628386b0c42b2942629c7d8bda7 Mon Sep 17 00:00:00 2001 From: Ayaan Zaidi Date: Fri, 5 Jun 2026 17:04:11 +0530 Subject: [PATCH] fix(gateway): share codex model visibility --- src/agents/model-catalog-visibility.test.ts | 16 ++++++++++++- src/agents/model-catalog-visibility.ts | 8 +++++-- .../server-methods/models-list-result.ts | 23 ++++--------------- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/src/agents/model-catalog-visibility.test.ts b/src/agents/model-catalog-visibility.test.ts index fbe816d0e296..96b2b1f625c3 100644 --- a/src/agents/model-catalog-visibility.test.ts +++ b/src/agents/model-catalog-visibility.test.ts @@ -58,6 +58,12 @@ describe("resolveVisibleModelCatalog", () => { name: "GPT 5.5", api: "openai-responses", }, + { + provider: "openai", + id: "gpt-5.4-codex", + name: "GPT 5.4 Codex", + api: "openai-responses", + }, ]; const result = await resolveVisibleModelCatalog({ @@ -71,8 +77,16 @@ describe("resolveVisibleModelCatalog", () => { expect(authChecker).toHaveBeenNthCalledWith(1, "openai", "openai-responses"); expect(authChecker).toHaveBeenNthCalledWith(2, "openai", "openai-responses"); expect(authChecker).toHaveBeenNthCalledWith(3, "openai", "openai-chatgpt-responses"); - expect(authChecker).toHaveBeenCalledTimes(3); + expect(authChecker).toHaveBeenNthCalledWith(4, "openai", "openai-responses"); + expect(authChecker).toHaveBeenNthCalledWith(5, "openai", "openai-chatgpt-responses"); + expect(authChecker).toHaveBeenCalledTimes(5); expect(result).toEqual([ + { + provider: "openai", + id: "gpt-5.4-codex", + name: "GPT 5.4 Codex", + api: "openai-responses", + }, { provider: "openai", id: "gpt-5.5", diff --git a/src/agents/model-catalog-visibility.ts b/src/agents/model-catalog-visibility.ts index 0bacc07b86af..ebeb3a7d1d03 100644 --- a/src/agents/model-catalog-visibility.ts +++ b/src/agents/model-catalog-visibility.ts @@ -14,13 +14,17 @@ import { } from "./model-visibility-policy.js"; type ModelCatalogVisibilityView = "default" | "configured" | "all"; -export type ProviderAuthChecker = (provider: string, modelApi?: string) => boolean | Promise; +export type ProviderAuthChecker = ( + provider: string, + modelApi?: string, +) => boolean | Promise; const OPENAI_PROVIDER_ID = "openai"; const OPENAI_CODEX_RESPONSES_API = "openai-chatgpt-responses"; const OPENAI_CODEX_ROUTABLE_MODEL_IDS = new Set([ "gpt-5.5", "gpt-5.5-pro", "gpt-5.4", + "gpt-5.4-codex", "gpt-5.4-pro", "gpt-5.4-mini", ]); @@ -29,7 +33,7 @@ function isPromiseLike(value: boolean | Promise): value is Promise