"use client"; import { ClipboardCheckIcon } from "lucide-react"; import type { ProbeDoneResult, ProbeDoneInput } from "@/src/core"; /** * The probe conclusion card (docs/probe-teach-split.md §2): renders the * prober's probe_done call. The INPUT is the learner assessment — strand by * strand, where his edge sits — and it belongs to the learner as much as to * the transcript: it streams live while the prober writes it and stays as * the handoff artifact. The OUTPUT is the seam's ack (ok) or the refusal * the prober retried on (rendered quiet and small — it is model-facing * bookkeeping, kept only for transcript honesty). * * Deliberately plain v1: the proper assessment viewer design is deferred to * the UI wave; this card just guarantees the data is never invisible. */ export function ProbeDoneCard({ part }: { part: { input?: unknown; output?: unknown } }) { const input = part.input as ProbeDoneInput | undefined; const output = part.output as ProbeDoneResult | undefined; const assessment = output?.ok ? output.assessment : (input?.assessment ?? null); return (
The prober retried: {output.error}
) : assessment ? ({assessment.summary}
)}Writing the assessment…
)}