import { apiGetWrapped } from './api' import type { TaskRecord } from './tasks' export type ErrorSummaryResponse = { scan_limit: number scanned: number error_kind_counts: Record tasks: TaskRecord[] total: number limit: number offset: number } export type ErrorSummaryParams = { scan_limit?: number limit: number offset: number status?: string[] error_kind?: string[] } function join(values?: string[]) { const parts = (values || []).map((v) => String(v).trim()).filter((v) => v !== '') return parts.length ? parts.join(',') : undefined } export async function getErrorSummary(params: ErrorSummaryParams) { const search = new URLSearchParams() search.set('limit', String(params.limit)) search.set('offset', String(params.offset)) if (typeof params.scan_limit === 'number' && Number.isFinite(params.scan_limit) && params.scan_limit > 0) { search.set('scan_limit', String(Math.floor(params.scan_limit))) } const status = join(params.status) const errorKind = join(params.error_kind) if (status) search.set('status', status) if (errorKind) search.set('error_kind', errorKind) return apiGetWrapped(`errors/summary?${search.toString()}`) }