From e61bcb544dc8bd328cdfd443ccbab9ee6ed2f349 Mon Sep 17 00:00:00 2001 From: Jared Miller Date: Wed, 28 Jan 2026 11:09:44 -0500 Subject: [PATCH] Add message and entity types --- src/types.ts | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/src/types.ts b/src/types.ts index 4618f69..a66e4bf 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1 +1,58 @@ // Shared types for claude-remote + +// Database entities + +export interface Device { + id: number; + secret: string; + name: string | null; + created_at: number; + last_seen: number; +} + +export interface Session { + id: number; + device_id: number; + started_at: number; + ended_at: number | null; + cwd: string | null; + command: string | null; +} + +export interface Prompt { + id: number; + session_id: number; + created_at: number; + prompt_text: string; + response: string | null; + responded_at: number | null; +} + +export interface OutputLog { + id: number; + session_id: number; + timestamp: number; + line: string; +} + +// WebSocket messages (CLI <-> Server) + +export type ClientMessage = + | { type: "auth"; secret: string; cwd?: string; command?: string } + | { type: "output"; data: string } + | { type: "resize"; cols: number; rows: number } + | { type: "exit"; code: number }; + +export type ServerMessage = + | { type: "input"; data: string } + | { type: "resize"; cols: number; rows: number } + | { type: "ping" }; + +// SSE events (Server -> Dashboard) + +export type SSEEvent = + | { type: "session_start"; session_id: number; cwd: string | null; command: string | null } + | { type: "session_end"; session_id: number; exit_code: number } + | { type: "output"; session_id: number; data: string } + | { type: "prompt"; prompt_id: number; session_id: number; prompt_text: string } + | { type: "prompt_response"; prompt_id: number; response: "approve" | "reject" }