Add message and entity types

This commit is contained in:
Jared Miller 2026-01-28 11:09:44 -05:00
parent 82f3d18117
commit e61bcb544d
Signed by: shmup
GPG key ID: 22B5C6D66A38B06C

View file

@ -1 +1,58 @@
// Shared types for claude-remote // 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" }