import type { UsageTotals } from "../pi-common"; export function formatTokens(count: number): string { if (!count) return "0"; if (count < 1000) return count.toString(); if (count < 10000) return `${(count / 1000).toFixed(1)}k`; if (count < 1000000) return `${Math.round(count / 1000)}k`; return `${(count / 1000000).toFixed(1)}M`; } export function formatUsage(usage: UsageTotals): string { const parts: string[] = []; if (usage.input) parts.push(`↑${formatTokens(usage.input)}`); if (usage.output) parts.push(`↓${formatTokens(usage.output)}`); if (usage.cacheRead) parts.push(`R${formatTokens(usage.cacheRead)}`); if (usage.cost) parts.push(`$${usage.cost.toFixed(4)}`); return parts.join(" "); } export function formatDuration(ms: number): string { if (!Number.isFinite(ms) || ms < 0) return "0s"; const totalSeconds = Math.floor(ms / 1000); if (totalSeconds < 60) return `${totalSeconds}s`; const minutes = Math.floor(totalSeconds / 60); const seconds = totalSeconds % 60; if (minutes < 60) { return seconds ? `${minutes}m${seconds.toString().padStart(2, "0")}s` : `${minutes}m`; } const hours = Math.floor(minutes / 60); const remMinutes = minutes % 60; return `${hours}h${remMinutes.toString().padStart(2, "0")}m`; }