export interface ModelDef { id: string; name: string; role: "chat" | "autocomplete"; ollamaTag: string; ctxSize: number; } export const MODELS: ModelDef[] = [ { id: "qwen-32b-chat", name: "Qwen 2.5 Coder 32B", role: "chat", ollamaTag: "qwen2.5-coder:32b", ctxSize: 16384, }, { id: "qwen-14b-chat", name: "Qwen 2.5 Coder 14B", role: "chat", ollamaTag: "qwen2.5-coder:14b", ctxSize: 16384, }, { id: "qwen-7b-chat", name: "Qwen 2.5 Coder 7B", role: "chat", ollamaTag: "qwen2.5-coder:7b", ctxSize: 16384, }, { id: "qwen3-coder", name: "Qwen3 Coder 30B-A3B", role: "chat", ollamaTag: "qwen3-coder", ctxSize: 65536, }, { id: "glm-flash", name: "GLM-4.7 Flash 30B-A3B", role: "chat", ollamaTag: "glm-4.7-flash", ctxSize: 65536, }, { id: "gpt-oss", name: "GPT-OSS 20B", role: "chat", ollamaTag: "gpt-oss:20b", ctxSize: 65536, }, { id: "qwen-1.5b-autocomplete", name: "Qwen 2.5 Coder 1.5B", role: "autocomplete", ollamaTag: "qwen2.5-coder:1.5b", ctxSize: 4096, }, ]; export function getModelById(id: string): ModelDef | undefined { return MODELS.find((m) => m.id === id); } export function getChatModels(): ModelDef[] { return MODELS.filter((m) => m.role === "chat"); } export function getAutocompleteModels(): ModelDef[] { return MODELS.filter((m) => m.role === "autocomplete"); }