/** * Collapsible reproducibility card: every version pin that produced this * evaluation run (dataset, model, labels, evaluator code, metric definitions, * thresholds, sampling config, seed, hardware). */ import { useState } from 'react'; import Box from '@mui/material/Box'; import Collapse from '@mui/material/Collapse'; import IconButton from '@mui/material/IconButton'; import Typography from '@mui/material/Typography'; import { ChevronDown, ChevronUp } from 'lucide-react'; import type { RunLineage } from '../../types/megaeval'; import { SectionCard } from '../labeleval/shared'; import { InfoDot } from '../help/InfoTip'; function Field({ label, value, info }: { label: string; value: string | number; info?: string }) { return ( {label} {info ? : null} {value} ); } export default function LineageCard({ lineage }: { lineage: RunLineage }) { const [open, setOpen] = useState(true); return ( setOpen((o) => !o)}> {open ? : } } > Threshold config {JSON.stringify(lineage.threshold_config, null, 2)} Sampling config {JSON.stringify(lineage.sampling_config, null, 2)} Identical inputs + seed reproduce this evaluation bit-for-bit. ); }