UNPKG

tinyagent

Version:

Connect your local shell to any device - access your dev environment from anywhere

155 lines 4.91 kB
export declare enum MessageType { SESSION_INIT = "SESSION_INIT", SESSION_READY = "SESSION_READY", SESSION_ERROR = "SESSION_ERROR", SESSION_CLOSE = "SESSION_CLOSE", SESSION_AUTH_RESPONSE = "SESSION_AUTH_RESPONSE", SHELL_DATA = "SHELL_DATA", SHELL_RESIZE = "SHELL_RESIZE", TUNNEL_URL = "TUNNEL_URL", HEARTBEAT = "HEARTBEAT", COMMAND = "COMMAND", HOST_REGISTER = "HOST_REGISTER", HOST_STATUS = "HOST_STATUS", HOST_CONNECT = "HOST_CONNECT", HTTP_REQUEST = "HTTP_REQUEST", HTTP_RESPONSE = "HTTP_RESPONSE", REGISTER_PORT = "REGISTER_PORT", CLIENT_COUNT = "CLIENT_COUNT", COMMAND_UPDATE = "COMMAND_UPDATE", PASSWORD_REQUIRED = "PASSWORD_REQUIRED", SESSION_AUTH = "SESSION_AUTH", AUTH_TOKEN = "AUTH_TOKEN" } export type SecurityTier = 1 | 2 | 3; export interface BaseMessage { type: MessageType; sessionId: string; timestamp: number; } export interface SessionInitMessage extends BaseMessage { type: MessageType.SESSION_INIT; clientType: 'mobile' | 'shell' | 'host'; hostId?: string; sessionToken?: string; authToken?: string; password?: string; } export interface SessionReadyMessage extends BaseMessage { type: MessageType.SESSION_READY; } export interface SessionErrorMessage extends BaseMessage { type: MessageType.SESSION_ERROR; error: string; } export interface SessionCloseMessage extends BaseMessage { type: MessageType.SESSION_CLOSE; reason?: string; } export interface ShellDataMessage extends BaseMessage { type: MessageType.SHELL_DATA; data: string; } export interface ShellResizeMessage extends BaseMessage { type: MessageType.SHELL_RESIZE; cols: number; rows: number; } export interface TunnelUrlMessage extends BaseMessage { type: MessageType.TUNNEL_URL; url: string; port: number; } export interface HeartbeatMessage extends BaseMessage { type: MessageType.HEARTBEAT; } export interface CommandMessage extends BaseMessage { type: MessageType.COMMAND; command: 'start_server' | 'stop_server' | 'terminate'; args?: any; } export interface HostRegisterMessage extends BaseMessage { type: MessageType.HOST_REGISTER; hostId: string; registrationToken: string; specs?: { cpu: number; memory: number; storage: number; }; } export interface HostStatusMessage extends BaseMessage { type: MessageType.HOST_STATUS; hostId: string; status: 'online' | 'offline' | 'starting' | 'stopping' | 'error'; metadata?: Record<string, any>; } export interface HostConnectMessage extends BaseMessage { type: MessageType.HOST_CONNECT; hostId: string; userId: string; } export interface HttpRequestMessage extends BaseMessage { type: MessageType.HTTP_REQUEST; streamId: string; method: string; path: string; headers: Record<string, string | string[]>; body?: Buffer | string; targetPort?: number; } export interface HttpResponseMessage extends BaseMessage { type: MessageType.HTTP_RESPONSE; streamId: string; head?: { status: number; headers: Record<string, string | string[]>; }; data?: Buffer | string; end?: boolean; } export interface RegisterPortMessage extends BaseMessage { type: MessageType.REGISTER_PORT; ports: number[]; portActivity?: Record<number, { lastAccess?: number; requestCount?: number; }>; } export interface ClientCountMessage extends BaseMessage { type: MessageType.CLIENT_COUNT; count: number; clientTypes: { mobile: number; shell: number; host: number; }; } export interface CommandUpdateMessage extends BaseMessage { type: MessageType.COMMAND_UPDATE; command: string; } export interface PasswordRequiredMessage extends BaseMessage { type: MessageType.PASSWORD_REQUIRED; } export interface SessionAuthMessage extends BaseMessage { type: MessageType.SESSION_AUTH; password: string; } export interface SessionAuthResponseMessage extends BaseMessage { type: MessageType.SESSION_AUTH_RESPONSE; success: boolean; error?: string; securityTier?: SecurityTier; } export interface AuthTokenMessage extends BaseMessage { type: MessageType.AUTH_TOKEN; token?: string; user?: { id: string; email?: string; name?: string; }; } export type Message = SessionInitMessage | SessionReadyMessage | SessionErrorMessage | SessionCloseMessage | SessionAuthResponseMessage | ShellDataMessage | ShellResizeMessage | TunnelUrlMessage | HeartbeatMessage | CommandMessage | HostRegisterMessage | HostStatusMessage | HostConnectMessage | HttpRequestMessage | HttpResponseMessage | RegisterPortMessage | ClientCountMessage | CommandUpdateMessage | PasswordRequiredMessage | SessionAuthMessage | AuthTokenMessage; //# sourceMappingURL=messages.d.ts.map