/** * Dashboard Types * Shared interfaces for the dashboard hub, clients, and frontend */ export type ConnectionState = 'active' | 'idle' | 'paused'; export interface ActionInfo { tool: string; timestamp: number; connectionReference?: string; } export interface ConnectionInfo { reference: string; type: 'chrome' | 'node' | 'unknown'; state: ConnectionState; createdAt: number; lastActivityAt: number; } export interface SessionInfo { pid: number; ppid?: number; sessionId?: string; shortId?: string; cwd: string; startedAt: number; lastHeartbeat: number; connections: ConnectionInfo[]; lastAction?: ActionInfo; sessionEntryCount?: number; allPids?: number[]; allPpids?: number[]; } export interface ProjectInfo { cwd: string; sessions: SessionInfo[]; issues: { bugs: number; features: number; }; } export interface HubLockData { pid: number; port: number; startedAt: string; } export interface HeartbeatPayload { pid: number; ppid?: number; sessionId?: string; shortId?: string; cwd: string; startedAt: number; connections: ConnectionInfo[]; lastAction?: ActionInfo; sessionEntryCount?: number; } export interface DashboardState { projects: ProjectInfo[]; hubPid: number; hubPort: number; hubStartedAt: number; } export type WSMessageType = 'state' | 'update' | 'session_added' | 'session_removed'; export interface WSMessage { type: WSMessageType; data: DashboardState | SessionInfo | { pid: number; }; } export type MCPMessageType = 'mcp_heartbeat' | 'mcp_heartbeat_ack' | 'need_new_hub'; export interface MCPHeartbeatMessage { type: 'mcp_heartbeat'; payload: HeartbeatPayload; } export interface MCPHeartbeatAckMessage { type: 'mcp_heartbeat_ack'; allPids: number[]; allPpids: number[]; } export interface MCPNeedNewHubMessage { type: 'need_new_hub'; } export type MCPMessage = MCPHeartbeatMessage | MCPHeartbeatAckMessage | MCPNeedNewHubMessage; //# sourceMappingURL=types.d.ts.map