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)}
))}
)}
))}
);
}