/** * Generic, app-agnostic view-models for the agent-session UI. These decouple the * shared components from any app's data model (no dev-hq `CodingSession`, no * Foundry types) — an app maps its own records into these shapes. */ /** The coarse lifecycle state a session badge/row reflects. */ export type SessionStatusKind = 'active' | 'success' | 'error' | 'warning' | 'idle' | 'completed' /** A single session as the list/card/badge components consume it. */ export interface SessionSummary { id: string /** Optional short sequence number (rendered as a #NNN avatar). */ number?: number name: string /** Whether the underlying session is currently running. */ isActive: boolean /** Coarse status; if omitted the components fall back to `isActive`. */ status?: SessionStatusKind /** Human label for the status (defaults derived from `status`/`isActive`). */ statusLabel?: string projectName?: string agentName?: string branch?: string createdAt: string | number updatedAt?: string | number /** Shows an unread dot on the card/row. */ hasUnread?: boolean }