import { TimelineContent, TimelineHeader, TimelineIndicator, TimelineItem, TimelineSeparator, } from '@/components/originui/timeline'; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, } from '@/components/ui/accordion'; import { cn } from '@/lib/utils'; import { Operator } from '../constant'; import OperatorIcon from '../operator-icon'; import { JsonViewer } from './workFlowTimeline'; const ToolTimelineItem = ({ tools }: { tools: Record[] }) => { if (!tools || tools.length === 0 || !Array.isArray(tools)) return null; const blackList = ['add_memory', 'gen_citations']; const filteredTools = tools.filter( (tool) => !blackList.includes(tool.tool_name), ); const capitalizeWords = (str: string, separator: string = '_'): string => { if (!str) return ''; return str .split(separator) .map((word) => { return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase(); }) .join(' '); }; return ( <> {filteredTools?.map((tool, idx) => { return ( = filteredTools.length - 1 && tool.result === '...' ), }, )} >
= filteredTools.length - 1 && tool.result === '...', })} >
{tool.path + ' '} {capitalizeWords(tool.tool_name, '_')} {/* 0:00 {x.data.elapsed_time?.toString().slice(0, 6)} */} Online
); })} ); }; export default ToolTimelineItem;