import { ActivityIcon } from 'lucide-react'; type TokenUsageSummaryProps = { usage: Record | null; }; const formatTokenCount = (value: number) => { if (!Number.isFinite(value) || value <= 0) { return '0'; } if (value >= 1_000_000) { return `${(value / 1_000_000).toFixed(value >= 10_000_000 ? 0 : 1)}M`; } if (value >= 10_000) { return `${Math.round(value / 1_000)}K`; } if (value >= 1_000) { return `${(value / 1_000).toFixed(1)}K`; } return value.toLocaleString(); }; const readUsageNumber = (value: unknown) => { const parsed = Number(value); return Number.isFinite(parsed) ? parsed : 0; }; export default function TokenUsageSummary({ usage }: TokenUsageSummaryProps) { const breakdown = usage?.breakdown && typeof usage.breakdown === 'object' ? usage.breakdown as Record : null; const inputTokens = readUsageNumber(usage?.inputTokens ?? breakdown?.input); const outputTokens = readUsageNumber(usage?.outputTokens ?? breakdown?.output); const usedTokens = readUsageNumber(usage?.used) || inputTokens + outputTokens; return (
{formatTokenCount(usedTokens)} tokens
); }