feat(ai): derive generated model types from JSON

This commit is contained in:
Armin Ronacher
2026-07-22 13:11:21 +02:00
parent 906b40a753
commit 5dc40fee33
45 changed files with 384 additions and 4687 deletions
@@ -2,119 +2,7 @@
// Do not edit manually - run 'npm run generate-models' to update
import values from "./data/github-copilot.json" with { type: "json" };
import type { Model } from "../types.ts";
import { flattenModelCatalog, type ModelCatalog } from "../model-catalog.ts";
export const GITHUB_COPILOT_MODELS = values as {
"claude-fable-5": Model<"openai-completions"> & {
id: "claude-fable-5";
provider: "github-copilot";
};
"claude-haiku-4.5": Model<"anthropic-messages"> & {
id: "claude-haiku-4.5";
provider: "github-copilot";
};
"claude-opus-4.5": Model<"anthropic-messages"> & {
id: "claude-opus-4.5";
provider: "github-copilot";
};
"claude-opus-4.6": Model<"anthropic-messages"> & {
id: "claude-opus-4.6";
provider: "github-copilot";
};
"claude-opus-4.7": Model<"anthropic-messages"> & {
id: "claude-opus-4.7";
provider: "github-copilot";
};
"claude-opus-4.8": Model<"anthropic-messages"> & {
id: "claude-opus-4.8";
provider: "github-copilot";
};
"claude-sonnet-4": Model<"anthropic-messages"> & {
id: "claude-sonnet-4";
provider: "github-copilot";
};
"claude-sonnet-4.5": Model<"anthropic-messages"> & {
id: "claude-sonnet-4.5";
provider: "github-copilot";
};
"claude-sonnet-4.6": Model<"anthropic-messages"> & {
id: "claude-sonnet-4.6";
provider: "github-copilot";
};
"claude-sonnet-5": Model<"anthropic-messages"> & {
id: "claude-sonnet-5";
provider: "github-copilot";
};
"gemini-2.5-pro": Model<"openai-completions"> & {
id: "gemini-2.5-pro";
provider: "github-copilot";
};
"gemini-3-flash-preview": Model<"openai-completions"> & {
id: "gemini-3-flash-preview";
provider: "github-copilot";
};
"gemini-3.1-pro-preview": Model<"openai-completions"> & {
id: "gemini-3.1-pro-preview";
provider: "github-copilot";
};
"gemini-3.5-flash": Model<"openai-completions"> & {
id: "gemini-3.5-flash";
provider: "github-copilot";
};
"gpt-4.1": Model<"openai-completions"> & {
id: "gpt-4.1";
provider: "github-copilot";
};
"gpt-5-mini": Model<"openai-responses"> & {
id: "gpt-5-mini";
provider: "github-copilot";
};
"gpt-5.2": Model<"openai-responses"> & {
id: "gpt-5.2";
provider: "github-copilot";
};
"gpt-5.2-codex": Model<"openai-responses"> & {
id: "gpt-5.2-codex";
provider: "github-copilot";
};
"gpt-5.3-codex": Model<"openai-responses"> & {
id: "gpt-5.3-codex";
provider: "github-copilot";
};
"gpt-5.4": Model<"openai-responses"> & {
id: "gpt-5.4";
provider: "github-copilot";
};
"gpt-5.4-mini": Model<"openai-responses"> & {
id: "gpt-5.4-mini";
provider: "github-copilot";
};
"gpt-5.4-nano": Model<"openai-responses"> & {
id: "gpt-5.4-nano";
provider: "github-copilot";
};
"gpt-5.5": Model<"openai-responses"> & {
id: "gpt-5.5";
provider: "github-copilot";
};
"gpt-5.6-luna": Model<"openai-responses"> & {
id: "gpt-5.6-luna";
provider: "github-copilot";
};
"gpt-5.6-sol": Model<"openai-responses"> & {
id: "gpt-5.6-sol";
provider: "github-copilot";
};
"gpt-5.6-terra": Model<"openai-responses"> & {
id: "gpt-5.6-terra";
provider: "github-copilot";
};
"kimi-k2.7-code": Model<"openai-completions"> & {
id: "kimi-k2.7-code";
provider: "github-copilot";
};
"mai-code-1-flash-picker": Model<"openai-responses"> & {
id: "mai-code-1-flash-picker";
provider: "github-copilot";
};
};
export const GITHUB_COPILOT_MODELS: ModelCatalog<typeof values, "github-copilot"> =
flattenModelCatalog("github-copilot", values);