fix(config): name openai-chatgpt-responses for the removed openai-codex-responses api id

This commit is contained in:
Yuval Dinodia
2026-06-28 22:15:19 -04:00
committed by GitHub
parent 6dccb61e56
commit bbc4c56a6d
2 changed files with 53 additions and 1 deletions
@@ -148,6 +148,49 @@ describe("config validation allowed-values metadata", () => {
});
});
describe("config validation legacy openai-codex api", () => {
it("names openai-chatgpt-responses for the removed openai-codex-responses api id", () => {
const result = validateConfigObjectRaw({
models: {
providers: {
"openai-codex": {
api: "openai-codex-responses",
models: [{ id: "gpt-5.5", api: "openai-codex-responses" }],
},
},
},
});
expect(result.ok).toBe(false);
if (!result.ok) {
const providerIssue = requireIssue(result.issues, "models.providers.openai-codex.api");
expect(providerIssue.message).toContain('"openai-codex-responses" is a removed api id');
expect(providerIssue.message).toContain('use "openai-chatgpt-responses"');
const modelIssue = requireIssue(result.issues, "models.providers.openai-codex.models.0.api");
expect(modelIssue.message).toContain('use "openai-chatgpt-responses"');
}
});
it("keeps the generic enum message for other invalid api ids", () => {
const result = validateConfigObjectRaw({
models: {
providers: {
"openai-codex": {
api: "openai-codex",
},
},
},
});
expect(result.ok).toBe(false);
if (!result.ok) {
const issue = requireIssue(result.issues, "models.providers.openai-codex.api");
expect(issue.message).toContain("expected one of");
expect(issue.message).not.toContain("removed api id");
}
});
});
describe("config validation numeric bound hints", () => {
it("appends maximum for inclusive too_big numeric bound", () => {
const issue = mapFirstIssue(
+10 -1
View File
@@ -207,7 +207,16 @@ export const SecretsConfigSchema = z
.strict()
.optional();
const ModelApiSchema = z.enum(MODEL_APIS);
const LEGACY_OPENAI_CODEX_RESPONSES_API = "openai-codex-responses";
const OPENAI_CHATGPT_RESPONSES_API =
"openai-chatgpt-responses" satisfies (typeof MODEL_APIS)[number];
const ModelApiSchema = z.enum(MODEL_APIS, {
error: (issue) =>
issue.input === LEGACY_OPENAI_CODEX_RESPONSES_API
? `"${LEGACY_OPENAI_CODEX_RESPONSES_API}" is a removed api id; use "${OPENAI_CHATGPT_RESPONSES_API}"`
: undefined,
});
const ModelCompatSchema = z
.object({