import { copilotBaseUrl, copilotHeaders } from "~/lib/api-config" import { HTTPError } from "~/lib/error" import { state } from "~/lib/state" export const getModels = async () => { const response = await fetch(`${copilotBaseUrl(state)}/models`, { headers: copilotHeaders(state), }) if (!response.ok) throw new HTTPError("Failed to get models", response) return (await response.json()) as ModelsResponse } export interface ModelsResponse { data: Array object: string } interface ModelLimits { max_context_window_tokens?: number max_output_tokens?: number max_prompt_tokens?: number max_inputs?: number } interface ModelSupports { tool_calls?: boolean parallel_tool_calls?: boolean dimensions?: boolean } interface ModelCapabilities { family: string limits: ModelLimits object: string supports: ModelSupports tokenizer: string type: string } export interface Model { capabilities: ModelCapabilities id: string model_picker_enabled: boolean name: string object: string preview: boolean vendor: string version: string policy?: { state: string terms: string } }