"use client"; import type { Message } from "@langchain/langgraph-sdk"; import { CoinsIcon } from "lucide-react"; import { useMemo } from "react"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/ui/tooltip"; import { useI18n } from "@/core/i18n/hooks"; import { accumulateUsage, formatTokenCount } from "@/core/messages/usage"; import { cn } from "@/lib/utils"; interface TokenUsageIndicatorProps { messages: Message[]; className?: string; } export function TokenUsageIndicator({ messages, className, }: TokenUsageIndicatorProps) { const { t } = useI18n(); const usage = useMemo(() => accumulateUsage(messages), [messages]); if (!usage) { return null; } return (
{t.tokenUsage.title}
{t.tokenUsage.input} {formatTokenCount(usage.inputTokens)}
{t.tokenUsage.output} {formatTokenCount(usage.outputTokens)}
{t.tokenUsage.total} {formatTokenCount(usage.totalTokens)}
); }