Skip to content

Commit 12315f6

Browse files
committed
Add new Copilot model aliases and catalog entries
1 parent cbd6ea4 commit 12315f6

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

packages/contracts/src/model.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export const MODEL_OPTIONS_BY_PROVIDER = {
3535
],
3636
copilot: [
3737
{ slug: "gpt-5.4", name: "GPT-5.4" },
38+
{ slug: "gpt-5.4-mini", name: "GPT-5.4 mini" },
3839
{ slug: "claude-sonnet-4.6", name: "Claude Sonnet 4.6" },
3940
{ slug: "claude-sonnet-4.5", name: "Claude Sonnet 4.5" },
4041
{ slug: "claude-haiku-4.5", name: "Claude Haiku 4.5" },
@@ -43,6 +44,7 @@ export const MODEL_OPTIONS_BY_PROVIDER = {
4344
{ slug: "claude-opus-4.5", name: "Claude Opus 4.5" },
4445
{ slug: "claude-sonnet-4", name: "Claude Sonnet 4" },
4546
{ slug: "gemini-3-pro-preview", name: "Gemini 3 Pro (Preview)" },
47+
{ slug: "gemini-3.1-pro", name: "Gemini 3.1 Pro" },
4648
{ slug: "gpt-5.3-codex", name: "GPT-5.3 Codex" },
4749
{ slug: "gpt-5.2-codex", name: "GPT-5.2 Codex" },
4850
{ slug: "gpt-5.2", name: "GPT-5.2" },
@@ -52,6 +54,7 @@ export const MODEL_OPTIONS_BY_PROVIDER = {
5254
{ slug: "gpt-5.1", name: "GPT-5.1" },
5355
{ slug: "gpt-5-mini", name: "GPT-5 mini" },
5456
{ slug: "gpt-4.1", name: "GPT-4.1" },
57+
{ slug: "raptor-mini", name: "Raptor mini" },
5558
],
5659
} as const satisfies Record<ProviderKind, readonly ModelOption[]>;
5760
export type ModelOptionsByProvider = typeof MODEL_OPTIONS_BY_PROVIDER;
@@ -75,6 +78,7 @@ export const MODEL_SLUG_ALIASES_BY_PROVIDER = {
7578
copilot: {
7679
"4.1": "gpt-4.1",
7780
"5.4": "gpt-5.4",
81+
"5.4-mini": "gpt-5.4-mini",
7882
"5-mini": "gpt-5-mini",
7983
"5.1": "gpt-5.1",
8084
"5.1-codex": "gpt-5.1-codex",
@@ -87,6 +91,8 @@ export const MODEL_SLUG_ALIASES_BY_PROVIDER = {
8791
sonnet: "claude-sonnet-4.6",
8892
opus: "claude-opus-4.6",
8993
gemini: "gemini-3-pro-preview",
94+
"gemini-3.1": "gemini-3.1-pro",
95+
raptor: "raptor-mini",
9096
},
9197
} as const satisfies Record<ProviderKind, Record<string, ModelSlug>>;
9298

packages/shared/src/model.test.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ describe("normalizeModelSlug", () => {
1616
expect(normalizeModelSlug("gpt-5.3")).toBe("gpt-5.3-codex");
1717
});
1818

19+
it("maps copilot aliases to canonical slugs", () => {
20+
expect(normalizeModelSlug("5.4-mini", "copilot")).toBe("gpt-5.4-mini");
21+
expect(normalizeModelSlug("gemini-3.1", "copilot")).toBe("gemini-3.1-pro");
22+
expect(normalizeModelSlug("raptor", "copilot")).toBe("raptor-mini");
23+
});
24+
1925
it("returns null for empty or missing values", () => {
2026
expect(normalizeModelSlug("")).toBeNull();
2127
expect(normalizeModelSlug(" ")).toBeNull();
@@ -50,6 +56,13 @@ describe("resolveModelSlug", () => {
5056
expect(resolveModelSlug(model.slug)).toBe(model.slug);
5157
}
5258
});
59+
60+
it("resolves supported copilot model options", () => {
61+
for (const model of MODEL_OPTIONS_BY_PROVIDER.copilot) {
62+
expect(resolveModelSlug(model.slug, "copilot")).toBe(model.slug);
63+
}
64+
});
65+
5366
it("keeps codex defaults for backward compatibility", () => {
5467
expect(getDefaultModel()).toBe(DEFAULT_MODEL_BY_PROVIDER.codex);
5568
expect(getModelOptions()).toEqual(MODEL_OPTIONS_BY_PROVIDER.codex);

0 commit comments

Comments
 (0)