"use client" import { useMemo, useState } from "react" import { EditorRenderer, FreeLayoutEditorProvider } from "@flowgram.ai/free-layout-editor" import { AlertTriangleIcon, CheckCircle2Icon, TimerIcon } from "lucide-react" import { JsonTreeViewer } from "@/components/json-tree-viewer" import { Badge } from "@/components/ui/badge" import { ScrollArea } from "@/components/ui/scroll-area" import type { AIWorkflowNodeRun, AIWorkflowRun } from "@/lib/api/admin" import { cn } from "@/lib/utils" import { useFlowgramEditorProps } from "../../ai-workflows/_components/flowgram-editor-provider" export function WorkflowRunAuditGraph({ run }: { run: AIWorkflowRun }) { const nodeRuns = run.nodes ?? [] const firstNodeId = nodeRuns[0]?.nodeId ?? run.definition?.nodes?.[0]?.id ?? "" const [selectedNodeId, setSelectedNodeId] = useState(firstNodeId) const selectedNodeRun = nodeRuns.find((item) => item.nodeId === selectedNodeId) ?? nodeRuns[0] const executedNodeIds = useMemo(() => new Set(nodeRuns.map((item) => item.nodeId)), [nodeRuns]) const editorProps = useFlowgramEditorProps({ definition: run.definition ?? { schemaVersion: 2, nodes: [], edges: [] }, nodeSpecs: [], readonly: true, }) return (