Align GPT-5.5 Codex capability handling (#3618)

* fix(ai): align gpt-5.5 codex capabilities

* chore(ai): update generated models

* fix(ai): apply gpt-5.5 priority pricing to api

---------

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
This commit is contained in:
Markus Ylisiurunen
2026-04-24 00:49:33 +03:00
committed by GitHub
parent 86ba08a2e3
commit ba8f1c228a
5 changed files with 273 additions and 137 deletions

View File

@@ -137,4 +137,49 @@ describe("openai-responses provider defaults", () => {
expect(captured).toEqual({ sessionId: null, clientRequestId: null });
});
it.each([
["gpt-5.4", "priority", 2],
["gpt-5.5", "priority", 2.5],
["gpt-5.5", "flex", 0.5],
] as const)("applies %s %s service-tier cost multiplier", async (modelId, serviceTier, multiplier) => {
const model = getModel("openai", modelId);
const sse = `${[
`data: ${JSON.stringify({
type: "response.completed",
response: {
status: "completed",
service_tier: serviceTier,
usage: {
input_tokens: 1000000,
output_tokens: 1000000,
total_tokens: 2000000,
input_tokens_details: { cached_tokens: 0 },
},
},
})}`,
].join("\n\n")}\n\n`;
vi.spyOn(globalThis, "fetch").mockResolvedValue(
new Response(sse, {
status: 200,
headers: { "content-type": "text/event-stream" },
}),
);
const stream = streamOpenAIResponses(
model,
{
systemPrompt: "sys",
messages: [{ role: "user", content: "hi", timestamp: Date.now() }],
},
{ apiKey: "test-key", serviceTier },
);
const result = await stream.result();
expect(result.usage.cost.input).toBe(model.cost.input * multiplier);
expect(result.usage.cost.output).toBe(model.cost.output * multiplier);
expect(result.usage.cost.total).toBe((model.cost.input + model.cost.output) * multiplier);
});
});