import clsx from "clsx"; import Badge from "@/components/ui/Badge"; type TrackStatus = "live" | "config-ready" | "roadmap"; const STATUS: Record< TrackStatus, { label: string; variant: "accent" | "outline" | "ghost" } > = { live: { label: "Live", variant: "accent" }, "config-ready": { label: "Config-ready", variant: "outline" }, roadmap: { label: "Roadmap", variant: "ghost" }, }; const TRACKS: ReadonlyArray<{ id: string; name: string; rule: string; status: TrackStatus; }> = [ { id: "A", name: "Zero-shot", rule: "The model exactly as released. No dataset-specific signal of any kind — no prompts, no bias lists, no weight updates.", status: "live", }, { id: "B", name: "Contextual biasing", rule: "Bias lists (medical-term hotwords or prompts) allowed at decode time. No weight updates; the bias list is recorded in the run manifest.", status: "live", }, { id: "C", name: "Adapted", rule: "Weights updated using the dataset's frozen Train split only; Valid for tuning. No other in-domain data of any kind.", status: "live", }, { id: "D", name: "Open", rule: "Any external data or method, fully disclosed. The anything-goes track.", status: "roadmap", }, { id: "E", name: "Efficiency", rule: "Deployment-realistic constraints: under 1B parameters, CPU decode, under 8GB VRAM.", status: "config-ready", }, { id: "F", name: "Conversational", rule: "WER + DER on multi-speaker dialogue. Requires conversational corpora (VietMed, clinic data) — the track closest to production.", status: "roadmap", }, ]; /** Tracks A–F: what each track allows, with launch-status chips. */ export default function TracksTable() { return (
| Track | Allowed signal | Status |
|---|---|---|
| {t.id} {t.name} | {t.rule} |
|