tinyagent
Version:
Connect your local shell to any device - access your dev environment from anywhere
155 lines • 4.91 kB
TypeScript
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