import { type ToolUIPart } from 'ai' import { Loader2 } from 'lucide-react' import { AssistantQueryCell } from './AssistantQueryCell' import { useMessageInfoContext } from './Message.Context' import { getAssistantLogsQueryTitle, getAssistantLogsTimeRange, parseQueryLogsInput, toQueryLogsResult, } from './MessagePartQueryLogs.utils' type QueryLogsToolPart = Pick< ToolUIPart, 'toolCallId' | 'state' | 'input' | 'output' | 'errorText' > & { rawInput?: unknown } function QueryLogsFailure() { return
Failed to query logs.
} export function MessagePartQueryLogs({ toolPart }: { toolPart: QueryLogsToolPart }) { const { id } = useMessageInfoContext() const { toolCallId, state, input: submittedInput, rawInput, output } = toolPart if (state === 'input-streaming' || state === 'input-available') { return (
Querying logs...
) } if (state !== 'output-available' && state !== 'output-error') return null const parsedInput = parseQueryLogsInput(submittedInput ?? rawInput) if (!parsedInput.success) return const result = state === 'output-error' ? { rows: [], error: { message: toolPart.errorText ?? 'Failed to query logs' } } : toQueryLogsResult(output) if (!result) return return (
) }