import { throwGatewayApiError } from "@/core/api/errors"; import { fetch } from "@/core/api/fetcher"; import { getBackendBaseURL } from "../config"; import { isStaticWebsiteOnly } from "../static-mode"; import type { ModelsResponse } from "./types"; const STATIC_MODELS_RESPONSE: ModelsResponse = { models: [], token_usage: { enabled: false }, }; export async function loadModels(): Promise { if (isStaticWebsiteOnly()) { return STATIC_MODELS_RESPONSE; } const res = await fetch(`${getBackendBaseURL()}/api/models`); if (!res.ok) { await throwGatewayApiError( res, `Failed to load models: ${res.status} ${res.statusText}`.trim(), ); } const data = (await res.json()) as Partial; return { models: data.models ?? [], token_usage: data.token_usage ?? { enabled: false }, }; }