"use client"; import Link from "next/link"; import { ArrowLeft, Bot, Clock3, Coins, GitBranch, MessagesSquare, } from "lucide-react"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { type ClaudeSession } from "@/lib/api/claude-code"; import { formatTimestamp, truncateText } from "@/lib/formatters"; type SessionHeroHeaderProps = { session: ClaudeSession; }; function formatCost(value: number) { return new Intl.NumberFormat(undefined, { style: "currency", currency: "USD", maximumFractionDigits: value < 1 ? 4 : 2, }).format(value); } export function SessionHeroHeader({ session }: SessionHeroHeaderProps) { const title = session.title?.trim() || truncateText(session.session_id, 18); const model = session.models[0] ?? "Model unavailable"; return (
{session.is_active ? "Active" : "Complete"} {session.git_branch ? ( {session.git_branch} ) : null} {model}

{title}

{session.cwd ?? session.project_dir}

Cost

{formatCost(session.cost_usd)}

Tokens

{session.tokens.total.toLocaleString()}

Turns

{session.message_count.toLocaleString()}

Last seen

{formatTimestamp(session.last_message_at)}

); }