mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-10-19 05:20:05 +00:00
Drains 9 v3.8.52 tip unit reds: 1 production fix (combo family-fallback skipped for request-scoped refusals, regression of #13603) + 8 test alignments to intentional contract changes (#15301 #15132 #15035 #15478 #15310 #15710 #15487), each annotated. Validated on a combined board with #15902 after clean npm ci: 32 previously-red files 327/329 (remaining 2 = quality-rail-gate-membership owned by #15682, and route-namespaces fixed in #15902), typecheck/open-sse/api typecheck, lint, 22 gates.
177 lines
5.6 KiB
TypeScript
177 lines
5.6 KiB
TypeScript
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
|
|
import { CodexExecutor } from "../../open-sse/executors/codex.ts";
|
|
import { openaiToOpenAIResponsesRequest } from "../../open-sse/translator/request/openai-responses/toResponses.ts";
|
|
|
|
test("Chat-to-Codex translation preserves max only for GPT-5.6", () => {
|
|
const executor = new CodexExecutor();
|
|
const cases = [
|
|
{ model: "gpt-5.6-sol", expectedEffort: "max" },
|
|
{ model: "gpt-5.6-terra", expectedEffort: "max" },
|
|
{ model: "gpt-5.6-luna", expectedEffort: "max" },
|
|
{ model: "gpt-5.5", expectedEffort: "xhigh" },
|
|
];
|
|
|
|
for (const { model, expectedEffort } of cases) {
|
|
const translated = openaiToOpenAIResponsesRequest(
|
|
model,
|
|
{
|
|
model,
|
|
messages: [{ role: "user", content: "test" }],
|
|
reasoning_effort: "max",
|
|
},
|
|
true,
|
|
{}
|
|
);
|
|
const result = executor.transformRequest(model, translated, true, {
|
|
requestEndpointPath: "/chat/completions",
|
|
});
|
|
|
|
assert.equal(result.model, model);
|
|
assert.equal(result.reasoning.effort, expectedEffort, model);
|
|
assert.equal(result.reasoning_effort, undefined);
|
|
}
|
|
});
|
|
|
|
test("CodexExecutor.transformRequest preserves max effort for GPT-5.6", () => {
|
|
const executor = new CodexExecutor();
|
|
const result = executor.transformRequest(
|
|
"gpt-5.6-sol",
|
|
{
|
|
model: "gpt-5.6-sol",
|
|
input: [],
|
|
reasoning_effort: "max",
|
|
},
|
|
false,
|
|
{ requestEndpointPath: "/responses" }
|
|
);
|
|
|
|
assert.equal(result.model, "gpt-5.6-sol");
|
|
assert.equal(result.reasoning.effort, "max");
|
|
assert.equal(result.reasoning_effort, undefined);
|
|
});
|
|
|
|
test("CodexExecutor.transformRequest maps GPT-5.6 ultra aliases to max wire effort", () => {
|
|
const executor = new CodexExecutor();
|
|
|
|
for (const model of ["gpt-5.6-sol-ultra", "gpt-5.6-terra-ultra"]) {
|
|
const result = executor.transformRequest(model, { model, input: [] }, false, {
|
|
requestEndpointPath: "/responses",
|
|
});
|
|
|
|
assert.equal(result.model, model.replace(/-ultra$/, ""));
|
|
assert.equal(result.reasoning.effort, "max");
|
|
}
|
|
});
|
|
|
|
test("CodexExecutor.transformRequest clamps Luna ultra requests to its max effort", () => {
|
|
const executor = new CodexExecutor();
|
|
const result = executor.transformRequest(
|
|
"gpt-5.6-luna",
|
|
{
|
|
model: "gpt-5.6-luna",
|
|
input: [],
|
|
reasoning_effort: "ultra",
|
|
},
|
|
false,
|
|
{ requestEndpointPath: "/responses" }
|
|
);
|
|
|
|
assert.equal(result.model, "gpt-5.6-luna");
|
|
assert.equal(result.reasoning.effort, "max");
|
|
});
|
|
|
|
test("CodexExecutor.transformRequest accepts parenthesized GPT-5.6 effort overrides", () => {
|
|
const executor = new CodexExecutor();
|
|
const cases = [
|
|
{ model: "gpt-5.6-sol(ultra)", expectedModel: "gpt-5.6-sol", expectedEffort: "max" },
|
|
{ model: "gpt-5.6-terra(max)", expectedModel: "gpt-5.6-terra", expectedEffort: "max" },
|
|
// contract changed by #15710: a parenthesized `(ultra)` now honors the ultra alias
|
|
// set like the hyphen form, and Luna is max-tier only, so `gpt-5.6-luna(ultra)` is no
|
|
// longer an alias (exactly like `gpt-5.6-luna-ultra`). Luna's parenthesized override
|
|
// is `(max)`.
|
|
{ model: "gpt-5.6-luna(max)", expectedModel: "gpt-5.6-luna", expectedEffort: "max" },
|
|
];
|
|
|
|
for (const { model, expectedModel, expectedEffort } of cases) {
|
|
const result = executor.transformRequest(
|
|
model,
|
|
{
|
|
model,
|
|
input: [],
|
|
reasoning: { effort: "low", summary: "detailed" },
|
|
},
|
|
false,
|
|
{ requestEndpointPath: "/responses" }
|
|
);
|
|
|
|
assert.equal(result.model, expectedModel);
|
|
assert.equal(result.reasoning.effort, expectedEffort);
|
|
assert.equal(result.reasoning.summary, "detailed");
|
|
}
|
|
});
|
|
|
|
test("CodexExecutor.execute disables parallel tool calls for Responses Lite markers", async () => {
|
|
const executor = new CodexExecutor();
|
|
const originalFetch = globalThis.fetch;
|
|
const capturedBodies: Record<string, unknown>[] = [];
|
|
|
|
globalThis.fetch = async (_url, init) => {
|
|
capturedBodies.push(JSON.parse(String(init?.body || "{}")));
|
|
return new Response(JSON.stringify({ id: "resp_lite", object: "response" }), {
|
|
status: 200,
|
|
headers: { "Content-Type": "application/json" },
|
|
});
|
|
};
|
|
|
|
const headerBody = {
|
|
_nativeCodexPassthrough: true,
|
|
model: "gpt-5.6-sol",
|
|
input: [],
|
|
parallel_tool_calls: true,
|
|
};
|
|
const metadataBody = {
|
|
_nativeCodexPassthrough: true,
|
|
model: "gpt-5.6-sol",
|
|
input: [],
|
|
client_metadata: {
|
|
ws_request_header_x_openai_internal_codex_responses_lite: "true",
|
|
},
|
|
};
|
|
const standardBody = {
|
|
_nativeCodexPassthrough: true,
|
|
model: "gpt-5.6-sol",
|
|
input: [],
|
|
parallel_tool_calls: true,
|
|
};
|
|
|
|
try {
|
|
for (const request of [
|
|
{
|
|
body: headerBody,
|
|
clientHeaders: { "X-OpenAI-Internal-Codex-Responses-Lite": "true" },
|
|
},
|
|
{ body: metadataBody },
|
|
{ body: standardBody },
|
|
]) {
|
|
const result = await executor.execute({
|
|
model: "gpt-5.6-sol",
|
|
body: request.body,
|
|
stream: true,
|
|
credentials: { accessToken: "codex-token" },
|
|
clientHeaders: request.clientHeaders,
|
|
});
|
|
assert.equal(result.response.status, 200);
|
|
}
|
|
|
|
assert.equal(capturedBodies[0].parallel_tool_calls, false);
|
|
assert.equal(headerBody.parallel_tool_calls, true);
|
|
assert.equal(capturedBodies[1].parallel_tool_calls, false);
|
|
assert.equal(metadataBody.parallel_tool_calls, undefined);
|
|
assert.equal(capturedBodies[2].parallel_tool_calls, true);
|
|
assert.equal(standardBody.parallel_tool_calls, true);
|
|
} finally {
|
|
globalThis.fetch = originalFetch;
|
|
}
|
|
});
|