/** * SessionPeek — a popup panel that shows the last few messages of * a selected agent session. Invoked by pressing Space on a session row. */ import React from 'react' import { Box, Text } from 'ink' import type { AgentSession, SessionMessage } from './agent-view-manager' interface SessionPeekProps { session: AgentSession recentMessages: SessionMessage[] } const ROLE_COLORS: Record = { user: 'green', assistant: 'cyan', system: 'yellow', } export function SessionPeek({ session, recentMessages }: SessionPeekProps) { return ( {/* Header */} {' '} Peek: {session.id}{' '} — {session.title} · {session.provider}/{session.model} {/* Divider */} {'─'.repeat(60)} {/* Messages */} {recentMessages.length === 0 ? ( (no messages yet) ) : ( recentMessages.map((msg, i) => ( [{msg.role}] {msg.content.length > 120 ? msg.content.slice(0, 120) + '...' : msg.content} )) )} {/* Footer */} {'─'.repeat(60)} {' '} {recentMessages.length} message(s) · Total: {session.messages.length} · Status:{' '} {session.status} ) }