import React from 'react'; import { CheckCircle2, CircleDashed, AlertCircle, Code, Layers, FileText } from 'lucide-react'; import { motion, AnimatePresence } from 'framer-motion'; export default function PipelineVisualizer({ steps }) { if (!steps || steps.length === 0) return null; return (

A-to-Z Execution Trace & Index Log

{steps.length} Steps Recorded
{steps.map((step, i) => (
{step.status === 'done' || step.step === 'RETRIEVAL_COMPLETE' || step.step === 'DONE' ? ( ) : step.status === 'error' || step.step === 'ERROR' ? ( ) : ( )}
STEP {i + 1}: {step.step}
{step.timestamp ? new Date(step.timestamp).toLocaleTimeString() : new Date().toLocaleTimeString()}

{step.detail}

{step.metadata && Object.keys(step.metadata).length > 0 && (
Execution Parameters & Storage Metadata
{Object.entries(step.metadata).map(([key, val]) => (
{key}: {typeof val === 'object' ? JSON.stringify(val) : String(val)}
))}
)}
))}
); }