Skip to content

Commit 411996c

Browse files
committed
Keep Zen chat-completions sources on the openai-compatible provider
1 parent 6ebf1a1 commit 411996c

2 files changed

Lines changed: 23 additions & 4 deletions

File tree

src/config/index.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ import {
7272
} from "../../packages/opencode-go/src/index.js";
7373
import {
7474
ZEN_DEFAULT_BASE_URL,
75-
ZEN_PROVIDER_ID,
7675
isZenProvider,
7776
resolveZenEndpoint,
7877
} from "../../packages/zen/src/index.js";
@@ -518,7 +517,6 @@ export function buildZenSource(fields: {
518517
});
519518
return {
520519
...source,
521-
provider: ZEN_PROVIDER_ID,
522520
defaults: {
523521
...source.defaults,
524522
providerOptions: {

src/config/inference-sources.test.ts

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
setProviderContextWindowOverrides,
1313
} from "../provider/context-window.js";
1414
import { createOpenAICompatibleAdapter } from "../provider/openai-compatible-adapter.js";
15+
import { createInferenceDependencies } from "../provider/inference-dependencies.js";
1516
import { OPENAI_RESPONSES_PROVIDER } from "../provider/openai-responses.js";
1617
import { ZEN_MESSAGES_PROVIDER } from "../provider/zen-anthropic-adapter.js";
1718
import { firstClassProviderById } from "../../packages/first-class-providers/src/index.js";
@@ -230,13 +231,33 @@ describe("Zen protocol routing (CL-7811)", () => {
230231

231232
test("Gemini models stay on chat completions", () => {
232233
const source = zenSource("gemini-3-flash");
233-
expect(source?.provider).toBe(ZEN_PROVIDER_ID);
234+
expect(source?.provider).toBe("openai-compatible");
234235
expect(source?.baseURL).toBe(ZEN_DEFAULT_BASE_URL);
235236
});
236237

237238
test("unknown ids default to chat completions, never name-prefix inference", () => {
238239
const source = zenSource("some-future-model");
239-
expect(source?.provider).toBe(ZEN_PROVIDER_ID);
240+
expect(source?.provider).toBe("openai-compatible");
240241
expect(source?.baseURL).toBe(ZEN_DEFAULT_BASE_URL);
241242
});
243+
244+
test("chat-completions Zen sources resolve to a registered adapter", async () => {
245+
const deps = await createInferenceDependencies();
246+
for (const model of ["gemini-3-flash", "some-future-model"]) {
247+
const source = zenSource(model);
248+
expect(source?.provider).toBe("openai-compatible");
249+
expect(source).toBeDefined();
250+
if (source === undefined || source === null) continue;
251+
expect(() =>
252+
deps.adapters.resolve(
253+
{
254+
sourceId: source.id,
255+
provider: source.provider,
256+
model: source.model,
257+
},
258+
source.quirks,
259+
),
260+
).not.toThrow();
261+
}
262+
});
242263
});

0 commit comments

Comments
 (0)