























@@ -444,6 +444,7 @@ describe("openai codex provider", () => {
444444id: "gpt-5.5",
445445api: "openai-codex-responses",
446446baseUrl: "https://chatgpt.com/backend-api",
447+input: ["text", "image"],
447448contextWindow: 400_000,
448449contextTokens: 272_000,
449450maxTokens: 128_000,
@@ -460,6 +461,40 @@ describe("openai codex provider", () => {
460461});
461462});
462463464+it("repairs sparse configured gpt-5.5 catalog rows to remain image-capable", () => {
465+const provider = buildOpenAICodexProviderPlugin();
466+const sparseConfiguredModel = {
467+id: "gpt-5.5",
468+name: "gpt-5.5",
469+provider: "openai-codex",
470+api: "openai-codex-responses",
471+baseUrl: "https://chatgpt.com/backend-api/codex",
472+reasoning: false,
473+input: ["text"] as const,
474+cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
475+contextWindow: 200_000,
476+maxTokens: 8_192,
477+};
478+479+const model = provider.resolveDynamicModel?.({
480+provider: "openai-codex",
481+modelId: "gpt-5.5",
482+modelRegistry: {
483+find: (providerId: string, modelId: string) =>
484+providerId === "openai-codex" && modelId === "gpt-5.5" ? sparseConfiguredModel : null,
485+} as never,
486+});
487+488+expectModelFields(model, {
489+id: "gpt-5.5",
490+api: "openai-codex-responses",
491+input: ["text", "image"],
492+contextWindow: 400_000,
493+contextTokens: 200_000,
494+maxTokens: 8_192,
495+});
496+});
497+463498it("synthesizes gpt-5.5 when the Codex catalog omits the OAuth row", () => {
464499const provider = buildOpenAICodexProviderPlugin();
465500此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。