'use client'; import React, { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { MessageDetails } from '../types/monitoring'; interface MessageDetailsCardProps { details: MessageDetails; } export function MessageDetailsCard({ details }: MessageDetailsCardProps) { const { t } = useTranslation(); // Parse query variables JSON string const queryVariables = useMemo(() => { if (!details.message?.variables) return null; try { return JSON.parse(details.message.variables); } catch { return null; } }, [details.message?.variables]); return (
{/* Context Info Section */} {details.message && (

{t('monitoring.messageList.viewDetails')}

{/* Metadata Grid */}
{details.message.platform && (
{t('monitoring.messageList.platform')}
{details.message.platform}
)} {details.message.userId && (
{t('monitoring.messageList.user')}
{details.message.userId}
)} {details.message.runnerName && (
{t('monitoring.messageList.runner')}
{details.message.runnerName}
)}
{t('monitoring.messageList.level')}
{details.message.level.toUpperCase()}
)} {/* LLM Calls Section */} {details.llmCalls && details.llmCalls.length > 0 && (

{t('monitoring.llmCalls.title')} ({details.llmCalls.length})

{/* LLM Stats Summary */}
{t('monitoring.llmCalls.totalTokens')}
{details.llmStats.totalTokens.toLocaleString()}
{t('monitoring.llmCalls.avgDuration')}
{details.llmStats.averageDurationMs}ms
{t('monitoring.llmCalls.calls')}
{details.llmStats.totalCalls}
{/* Individual LLM Calls */}
{details.llmCalls.map((call, index) => (
#{index + 1} {call.modelName} {call.status}
{call.duration}ms
In:{' '} {call.tokens.input.toLocaleString()}
Out:{' '} {call.tokens.output.toLocaleString()}
Total:{' '} {call.tokens.total.toLocaleString()}
{call.errorMessage && (
{call.errorMessage}
)}
))}
)} {/* Errors Section */} {details.errors && details.errors.length > 0 && (

{t('monitoring.errors.title')} ({details.errors.length})

{details.errors.map((error) => (
{error.errorType}
{error.errorMessage}
{error.stackTrace && (
{t('monitoring.errors.stackTrace')}
                      {error.stackTrace}
                    
)}
))}
)} {/* Query Variables Section - Only show for non-local-agent runners */} {queryVariables && Object.keys(queryVariables).length > 0 && details.message?.runnerName !== 'local-agent' && (

{t('monitoring.queryVariables.title')}

{Object.entries(queryVariables).map(([key, value]) => (
{key}
{value === null || value === undefined ? ( null ) : typeof value === 'string' ? ( value || ( empty ) ) : ( JSON.stringify(value) )}
))}
)} {/* No data message */} {(!details.llmCalls || details.llmCalls.length === 0) && (!details.errors || details.errors.length === 0) && (details.message?.runnerName === 'local-agent' || !queryVariables || Object.keys(queryVariables).length === 0) && (
{t('monitoring.messageDetails.noData')}
)}
); }