import React, { memo } from 'react'; import { Box, Text } from 'ink'; export interface StatusBarProps { sessionId: string; messageCount: number; model: string; tokenUsage?: { input: number; output: number; }; isStreaming?: boolean; } function formatTokens(n: number): string { if (n >= 1000) { return `${(n / 1000).toFixed(1)}k`; } return String(n); } export const StatusBar = memo(function StatusBar({ sessionId, messageCount, model, tokenUsage, isStreaming, }: StatusBarProps): React.ReactElement { // Extract short model name (e.g., "claude-opus-4-5-20251101" -> "opus-4.5") const shortModel = model .replace('claude-', '') .replace(/-\d{8}$/, '') .replace('-4-5', '-4.5'); return ( Flynn {isStreaming && ( <> | streaming... )} Model: {shortModel} | Msgs: {messageCount} {tokenUsage && ( <> | Tokens: {formatTokens(tokenUsage.input)}/{formatTokens(tokenUsage.output)} )} ); });