import type { ModelId } from "@/lib/chat/types"; import { isModelId } from "@/lib/chat/types"; export type ChatModel = { id: ModelId; name: string; description: string; }; export const AUTO_MODEL: ChatModel = { id: "auto", name: "Aegida Auto", description: "Автоматический выбор модели через Aegida Gate.", }; export const MODELS: ChatModel[] = [AUTO_MODEL]; export function parseChatModelsResponse(value: unknown): ChatModel[] | null { if (!isRecord(value) || !Array.isArray(value.models)) return null; const models: ChatModel[] = []; const seen = new Set(); for (const item of value.models) { if ( !isRecord(item) || !isModelId(item.id) || typeof item.name !== "string" || !item.name.trim() || typeof item.description !== "string" || seen.has(item.id) ) { return null; } seen.add(item.id); models.push({ id: item.id, name: item.name, description: item.description }); } return seen.has("auto") ? models : null; } function isRecord(value: unknown): value is Record { return typeof value === "object" && value !== null && !Array.isArray(value); }