[] = [
+ { key: 'device', label: 'Device' },
+ { key: 'parameter', label: 'Parameter' },
+ {
+ key: 'value',
+ label: 'Value',
+ render: (entry) => (
+
+ {formatContractValue(entry)}
+
+ ),
+ },
+ {
+ key: 'range',
+ label: 'Working range',
+ render: (entry) => {
+ const range = formatContractRange(entry);
+ return (
+ {range ?? '—'}
+ );
+ },
+ },
+ {
+ key: 'cited_measurements',
+ label: 'Cited measurements',
+ render: (entry) => (
+
+ {entry.cited_measurements.map((path, index) => (
+
+ {path}
+
+ ))}
+
+ ),
+ },
+];
+
+export function ReconstructionContractPanel({
+ contract,
+ className,
+}: ReconstructionContractPanelProps) {
+ const [open, setOpen] = useState(false);
+ const entries = contract?.recommendations ?? [];
+ if (entries.length === 0) {
+ return null;
+ }
+
+ return (
+ setOpen((prev) => !prev)}
+ tone="success"
+ className={className}
+ eyebrow="recommendations.v1 · exported to .als"
+ title={`Reconstruction Contract · ${entries.length} validated recommendation${
+ entries.length === 1 ? '' : 's'
+ }`}
+ >
+
+
+ );
+}