'use client'; import { motion } from 'framer-motion'; import { FileText, ArrowSquareOut as ExternalLink } from '@phosphor-icons/react'; import type { FinalSynthesisReport } from '@/types/pipeline'; import { fadeUp } from '@/lib/animations'; import { ConfidenceBadge } from '@/components/results/ConfidenceBadge'; const TOOL_LABELS: Record = { blast: 'BLAST', uniprot: 'UniProt', domains: 'Domains', msa: 'MSA', pathway_enrichment: 'Pathways', alphafold: 'Structure', }; interface FinalReportProps { data: FinalSynthesisReport; } export function FinalReport({ data }: FinalReportProps) { if (!data || !data.findings?.length) return null; return (

Final Report

{data.headline}

{data._mode === 'llm_polished' && ( AI-polished )}
{data.summary && data.summary !== data.headline && (

{data.summary}

)}
{data.findings.map((f, i) => (
{f.claim} {f.page_url && ( source )} ({TOOL_LABELS[f.source_tool] ?? f.source_tool})
))}
{data.caveats?.length > 0 && (
{data.caveats.map((c, i) => (

{c}

))}
)}
); }