import type { BenchmarkEvaluationCardData } from "@/components/benchmark-evaluation-card" import type { BenchmarkEvalListItem, BenchmarkEvalSummary, ModelEvaluationSummary, } from "@/lib/eval-processing" export interface DashboardDataResponse { models: BenchmarkEvaluationCardData[] evals: BenchmarkEvalListItem[] } export interface EvalListResponse { evals: BenchmarkEvalListItem[] totalModels: number } async function fetchJson(input: string): Promise { const response = await fetch(input) if (!response.ok) { throw new Error(`Request failed: ${response.status}`) } return response.json() as Promise } export function fetchDashboardData() { return fetchJson("/api/data") } export function fetchModelCards() { return fetchJson("/api/model-cards") } export function fetchEvalList() { return fetchJson("/api/eval-list") } export function fetchModelSummary(modelId: string) { return fetchJson( `/api/model-summary?id=${encodeURIComponent(modelId)}` ) } export function fetchEvalSummary(evalId: string) { return fetchJson( `/api/eval-summary?id=${encodeURIComponent(evalId)}` ) }