import { FileText, FlaskConical, Target, Microscope, Copy, Check, ArrowRight } from 'lucide-react'; import { useState } from 'react'; import type { PaperSummary } from '@/types'; import { cn } from '@/lib/utils'; interface PaperPanelProps { paper: PaperSummary; seed: number; template: string; difficulty: string; round: number; maxRounds: number; episodeId?: string; className?: string; } export default function PaperPanel({ paper, seed, template, difficulty, round, maxRounds, episodeId, className, }: PaperPanelProps) { const [copied, setCopied] = useState(false); const templateLabel = template.replace(/_/g, ' '); function copyEpisodeId() { if (!episodeId) return; navigator.clipboard.writeText(episodeId); setCopied(true); setTimeout(() => setCopied(false), 1500); } return (

Source Paper

PDF to task
PDF Seeded replication brief

{paper.title}

ReplicaLab freezes this paper into a reproducible benchmark so the agents must preserve the claim while adapting to budget, compute, reagent, and scheduling constraints.

Parsed Replication Brief

Objective: {paper.hypothesis}
Original Method: {paper.method}
Result To Preserve: {paper.key_finding}

Original Experiment

{paper.original_controls.map((c) => ( {c.replace(/_/g, ' ')} ))}

Benchmark Context

{episodeId && ( )}
= maxRounds} />

Training and evaluation reuse this exact seed and scenario family so baseline and trained policies can be compared on the same task.

); } function Stat({ label, value, highlight }: { label: string; value: string; highlight?: boolean }) { return (
{label}
{value}
); }