"use client"; import { CheckCircle2, Circle, Loader2, XCircle } from "lucide-react"; import type { AgentStatus } from "@/hooks/use-pipeline-progress"; const AGENT_LABELS: Record = { "trend-scout": "Trend Scout", "marketing-research-agent": "Research Agent", "script-writer": "Script Writer", "ad-creative-designer": "Ad Creative Designer", "video-ad-producer": "Video Ad Producer", "copywriter-agent": "Copywriter", "distribution-agent": "Distribution Agent", }; function formatDuration(ms?: number) { if (!ms) return ""; if (ms < 1000) return `${ms}ms`; if (ms < 60000) return `${Math.round(ms / 1000)}s`; return `${Math.round(ms / 60000)}m ${Math.round((ms % 60000) / 1000)}s`; } function StatusIcon({ status }: { status: AgentStatus["status"] }) { switch (status) { case "completed": return ; case "running": return ; case "failed": return ; default: return ; } } export function PipelineProgress({ agents }: { agents: AgentStatus[] }) { return (
{agents.map((agent) => (
{AGENT_LABELS[agent.agentName] || agent.agentName}
{agent.outputSummary && (

{agent.outputSummary}

)} {agent.error && (

{agent.error}

)}
{agent.durationMs && ( {formatDuration(agent.durationMs)} )}
))}
); }