import { request } from './client' export interface HealthResponse { status: string version?: string } export interface Model { id: string object: string owned_by: string } export interface ModelsResponse { object: string data: Model[] } // Config-based model types export interface ModelInfo { id: string label: string } export interface ModelGroup { provider: string models: ModelInfo[] } export interface ConfigModelsResponse { default: string groups: ModelGroup[] } export interface AvailableModelGroup { provider: string // credential pool key (e.g. "zai", "custom:subrouter.ai") label: string // display name (e.g. "zai", "subrouter.ai") base_url: string models: string[] } export interface AvailableModelsResponse { default: string groups: AvailableModelGroup[] } export interface CustomProvider { name: string base_url: string api_key: string model: string } export async function checkHealth(): Promise { return request('/health') } export async function fetchModels(): Promise { return request('/v1/models') } export async function fetchConfigModels(): Promise { return request('/api/config/models') } export async function fetchAvailableModels(): Promise { return request('/api/available-models') } export async function updateDefaultModel(data: { default: string provider?: string base_url?: string api_key?: string }): Promise { await request('/api/config/model', { method: 'PUT', body: JSON.stringify(data), }) } export async function addCustomProvider(data: CustomProvider): Promise { await request('/api/config/providers', { method: 'POST', body: JSON.stringify(data), }) } export async function removeCustomProvider(name: string): Promise { await request(`/api/config/providers/${encodeURIComponent(name)}`, { method: 'DELETE', }) }