Skip to content

Commit 49769ff

Browse files
committed
feat(zen): map grok-4.7 to the responses protocol
1 parent 57a376f commit 49769ff

4 files changed

Lines changed: 36 additions & 1 deletion

File tree

‎packages/zen/src/index.ts‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,9 @@ export {
66
} from "./constants.js";
77
export { resolveZenEndpoint } from "./endpoint.js";
88
export { isZenProvider, isZenProviderId } from "./identity.js";
9-
export { isKnownZenModel, ZEN_DEFAULT_MODEL, ZEN_MODEL_IDS } from "./models.js";
9+
export {
10+
isKnownZenModel,
11+
protocolForZenModel,
12+
ZEN_DEFAULT_MODEL,
13+
ZEN_MODEL_IDS,
14+
} from "./models.js";

‎packages/zen/src/models.test.ts‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { describe, expect, test } from "bun:test";
2+
3+
import { resolveZenEndpoint } from "./endpoint.js";
4+
import { isKnownZenModel, protocolForZenModel } from "./models.js";
5+
6+
describe("protocolForZenModel", () => {
7+
test("maps grok-4.7 to responses like grok-4.6", () => {
8+
expect(protocolForZenModel("grok-4.7")).toBe("responses");
9+
expect(protocolForZenModel("grok-4.6")).toBe("responses");
10+
expect(isKnownZenModel("grok-4.7")).toBe(true);
11+
expect(isKnownZenModel("grok-4.6")).toBe(true);
12+
});
13+
});
14+
15+
describe("resolveZenEndpoint", () => {
16+
test("routes grok-4.7 the same as grok-4.6", () => {
17+
expect(resolveZenEndpoint("grok-4.7")).toEqual(
18+
resolveZenEndpoint("grok-4.6"),
19+
);
20+
expect(resolveZenEndpoint("grok-4.7").adapter).toBe("openai-responses");
21+
});
22+
});

‎packages/zen/src/models.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ const ZEN_MODELS: readonly ZenModel[] = [
6363
{ id: "gpt-5", protocol: "responses" },
6464
{ id: "gpt-5-codex", protocol: "responses" },
6565
{ id: "gpt-5-nano", protocol: "responses" },
66+
{ id: "grok-4.7", protocol: "responses" },
6667
{ id: "grok-4.6", protocol: "responses" },
6768
{ id: "grok-4.5", protocol: "responses" },
6869
{ id: "grok-build-0.1", protocol: "responses" },

‎src/provider/identity-divergence.test.ts‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
ZEN_DEFAULT_MODEL,
1515
ZEN_MODEL_IDS,
1616
isKnownZenModel,
17+
protocolForZenModel,
1718
} from "../../packages/zen/src/index.js";
1819
import {
1920
CODEX_BASE_URL,
@@ -131,6 +132,12 @@ describe("provider identity divergence", () => {
131132
}
132133
});
133134

135+
test("Zen protocol map pins grok-4.7 to responses like grok-4.6", () => {
136+
expect(protocolForZenModel("grok-4.7")).toBe("responses");
137+
expect(protocolForZenModel("grok-4.6")).toBe("responses");
138+
expect(isKnownZenModel("grok-4.7")).toBe(true);
139+
});
140+
134141
test("OpenCode Go registry entry tracks the packaged seed catalog", () => {
135142
const go = firstClassProviderById("opencode-go");
136143
expect([...(go?.models ?? [])]).toEqual([...OPENCODE_GO_MODEL_IDS]);

0 commit comments

Comments
 (0)