import type { BackendManifestStatus, ComparisonIndex, CorpusAggregates, EvalHierarchy } from "@/lib/backend-artifacts" import type { BenchmarkEvaluationCardData } from "@/components/benchmark-evaluation-card" import type { HFEvalDetail } from "@/lib/hf-data" import type { BenchmarkCard, BenchmarkEvalListItem, BenchmarkEvalSummary, ModelEvaluationSummary, } from "@/lib/eval-processing" export interface EvalListResponse { evals: BenchmarkEvalListItem[] totalModels: number } export interface DeveloperListItem { developer: string route_id: string model_count: number benchmark_count: number evaluation_count: number popular_evals: Array<{ benchmark: string model_count: number }> } export interface DeveloperSummaryResponse { developer: string route_id: string model_count: number benchmark_count: number evaluation_count: number popular_evals: Array<{ benchmark: string model_count: number }> models: BenchmarkEvaluationCardData[] } 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 fetchModelCards() { return fetchJson("/api/model-cards-lite") } export function fetchEvalList() { return fetchJson("/api/eval-list-lite") } 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)}` ) } export function fetchEvalDetail(evalId: string) { return fetchJson( `/api/eval-detail?id=${encodeURIComponent(evalId)}` ) } export function fetchDevelopers() { return fetchJson("/api/developers") } export function fetchDeveloperSummary(developerId: string) { return fetchJson( `/api/developer-summary?id=${encodeURIComponent(developerId)}` ) } export function fetchBenchmarkMetadata() { return fetchJson>("/api/benchmark-metadata") } export function fetchBackendManifest() { return fetchJson("/api/backend-manifest") } export function fetchEvalHierarchy() { return fetchJson("/api/eval-hierarchy") } export function fetchComparisonIndex() { return fetchJson("/api/comparison-index") } export function fetchCorpusAggregates() { return fetchJson("/api/corpus-aggregates") }