Skip to content

Commit c46f0e5

Browse files
committed
fix: route Codex OpenAI runtime through Codex provider
1 parent 94ed68b commit c46f0e5

2 files changed

Lines changed: 25 additions & 2 deletions

File tree

src/agents/openai-codex-routing.test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,4 +150,22 @@ describe("OpenAI Codex routing policy", () => {
150150
}),
151151
).toEqual(["openai-codex"]);
152152
});
153+
154+
it("routes openai provider to openai-codex when harness runtime is codex", () => {
155+
expect(
156+
resolveSelectedOpenAIPiRuntimeProvider({
157+
provider: "openai",
158+
harnessRuntime: "codex",
159+
}),
160+
).toBe("openai-codex");
161+
});
162+
163+
it("does not route non-OpenAI providers when runtime is codex", () => {
164+
expect(
165+
resolveSelectedOpenAIPiRuntimeProvider({
166+
provider: "anthropic",
167+
harnessRuntime: "codex",
168+
}),
169+
).toBe("anthropic");
170+
});
153171
});

src/agents/openai-codex-routing.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,13 @@ export function resolveSelectedOpenAIPiRuntimeProvider(params: {
181181
return OPENAI_CODEX_PROVIDER_ID;
182182
}
183183
const runtime = normalizeEmbeddedAgentRuntime(params.agentHarnessId ?? params.harnessRuntime);
184-
return isOpenAIProvider(params.provider) &&
185-
runtime === "pi" &&
184+
if (!isOpenAIProvider(params.provider)) {
185+
return params.provider;
186+
}
187+
if (runtime === "codex") {
188+
return OPENAI_CODEX_PROVIDER_ID;
189+
}
190+
return runtime === "pi" &&
186191
!params.authProfileId?.trim() &&
187192
configuredOpenAIAuthOrderStartsWithCodexProfile(params.config)
188193
? OPENAI_CODEX_PROVIDER_ID

0 commit comments

Comments
 (0)