import { formatNumber } from '../../lib/usage' import styles from '../../pages/usage/UsagePage.module.css' interface TokenBreakdownCardProps { inputTokens: number outputTokens: number reasoningTokens: number cachedTokens: number } export function TokenBreakdownCard({ inputTokens, outputTokens, reasoningTokens, cachedTokens, }: TokenBreakdownCardProps) { const items = [ { key: 'input', label: 'Input tokens', value: inputTokens, colorClass: styles.tokenInput }, { key: 'output', label: 'Output tokens', value: outputTokens, colorClass: styles.tokenOutput }, { key: 'reasoning', label: 'Reasoning tokens', value: reasoningTokens, colorClass: styles.tokenReasoning }, { key: 'cached', label: 'Cached tokens', value: cachedTokens, colorClass: styles.tokenCached }, ] const total = items.reduce((sum, item) => sum + item.value, 0) return (

Token breakdown

Split of persisted tokens across all request events.

{formatNumber(total)} total
{items.map((item) => { const percentage = total > 0 ? (item.value / total) * 100 : 0 return (
{item.label}
{formatNumber(item.value)}
{percentage.toFixed(1)}%
) })}
) }