import { useRef, useEffect } from 'react'; import type { TimelineFilter as TFilter, ToolCall } from '{{PACKAGE_SCOPE}}/core/shared/types.js'; import { useAppState } from '../context/AppStateContext.js'; import { timelineService } from '../services/grpc-client.js'; import { TimelineFilter } from './TimelineFilter.js'; import { TimelineEntry } from './TimelineEntry.js'; export function ToolTimeline() { const state = useAppState(); const bottomRef = useRef(null); const { filter, entries } = state.timeline; const visibleEntries: ToolCall[] = filter === 'all' ? entries : entries.filter((e) => e.model === filter); useEffect(() => { bottomRef.current?.scrollIntoView({ behavior: 'smooth' }); }, [visibleEntries.length]); return (
Tool Timeline timelineService.setFilter(f)} />
{visibleEntries.length === 0 && (
No tool calls yet
)} {visibleEntries.map((entry) => ())}
); }