import { formatCompactMetric, formatDuration } from "./format.ts"; export interface ReviewStatus { startedAt: number; session: "fresh" | "resumed"; turns?: number; toolCount?: number; tokens?: number; currentTool?: string; } export interface ElapsedStatus { startedAt: number; now: number; finishedAt?: number; review?: ReviewStatus; } export function formatElapsedStatus(status: ElapsedStatus): string { const end = status.finishedAt ?? status.now; const parts: Array = [`Elapsed ${formatDuration(Math.max(0, end - status.startedAt))}`]; if (status.finishedAt !== undefined) { parts.push("Complete"); } else if (status.review) { parts.push( "Review", status.review.session, `review ${formatDuration(Math.max(0, status.now - status.review.startedAt))}`, status.review.turns !== undefined ? `${status.review.turns} turns` : undefined, status.review.toolCount !== undefined ? `${status.review.toolCount} tools` : undefined, status.review.tokens !== undefined ? `${formatCompactMetric(status.review.tokens)} tokens` : undefined, status.review.currentTool, ); } else { parts.push("Main"); } return parts.filter(Boolean).join(" ยท "); }