{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gateway/types/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Gateway types - Core type definitions for the OpenClaw Gateway\n */\n\n// Agent types are defined locally to avoid circular dependencies\nimport type { ChannelConfig } from \"../channels/base.js\";\n\n/** Gateway server configuration */\nexport interface GatewayConfig {\n\t/** HTTP server port (default: 18789) */\n\tport: number;\n\t/** WebSocket path (default: /ws) */\n\twsPath: string;\n\t/** Static files directory */\n\tpublicDir: string;\n\t/** Session storage directory */\n\tsessionDir: string;\n\t/** Enable debug logging */\n\tdebug: boolean;\n\t/** CORS origins */\n\tcorsOrigins: string[];\n}\n\n/** Gateway server interface */\nexport interface GatewayServer {\n\t/** Start the gateway server */\n\tstart(): Promise<void>;\n\t/** Stop the gateway server */\n\tstop(): Promise<void>;\n\t/** Get current server status */\n\tgetStatus(): ServerStatus;\n}\n\n/** Server status */\nexport interface ServerStatus {\n\trunning: boolean;\n\tport: number;\n\tstartTime?: Date;\n\tconnections: number;\n\tsessions: number;\n}\n\n/** WebSocket connection wrapper */\nexport interface WebSocketConnection {\n\t/** Connection ID */\n\tid: string;\n\t/** Connection type (client, node, channel) */\n\ttype: ConnectionType;\n\t/** Connected agent ID (if applicable) */\n\tagentId?: string;\n\t/** Session key (if applicable) */\n\tsessionKey?: string;\n\t/** Send message to this connection */\n\tsend(data: unknown): void;\n\t/** Close the connection */\n\tclose(): void;\n\t/** Check if connection is alive */\n\tisAlive: boolean;\n\t/** Last activity timestamp */\n\tlastActivity: Date;\n}\n\n/** Connection types */\nexport type ConnectionType = \"client\" | \"node\" | \"channel\" | \"dashboard\";\n\n/** Session key format: agent:{agentId}:{channel}:{scope}:{identifier} */\nexport type SessionKey = string;\n\n/** Session data */\nexport interface Session {\n\t/** Session key */\n\tkey: SessionKey;\n\t/** Session ID (UUID) */\n\tid: string;\n\t/** Agent ID */\n\tagentId: string;\n\t/** Channel type */\n\tchannel: string;\n\t/** Scope (dm, group, thread) */\n\tscope: ChannelScope;\n\t/** Identifier (user ID, group ID, etc.) */\n\tidentifier: string;\n\t/** Creation timestamp */\n\tcreatedAt: Date;\n\t/** Last activity timestamp */\n\tlastActivity: Date;\n\t/** Message count */\n\tmessageCount: number;\n\t/** Token count */\n\ttokenCount: number;\n\t/** Session state */\n\tstate: SessionState;\n\t/** Transcript file path */\n\ttranscriptPath: string;\n}\n\n/** Session states */\nexport type SessionState = \"idle\" | \"active\" | \"paused\" | \"error\";\n\n/** Channel scopes */\nexport type ChannelScope = \"dm\" | \"group\" | \"thread\" | \"channel\";\n\n/** Inbound message from a channel */\nexport interface InboundMessage {\n\t/** Message ID */\n\tid: string;\n\t/** Session key */\n\tsessionKey: SessionKey;\n\t/** Agent ID */\n\tagentId: string;\n\t/** Channel type */\n\tchannel: string;\n\t/** Sender information */\n\tsender: SenderInfo;\n\t/** Message content */\n\tcontent: MessageContent;\n\t/** Timestamp */\n\ttimestamp: Date;\n\t/** Reply to message ID (for threads) */\n\treplyTo?: string;\n\t/** Thread ID */\n\tthreadId?: string;\n}\n\n/** Sender information */\nexport interface SenderInfo {\n\t/** User ID */\n\tid: string;\n\t/** Display name */\n\tname: string;\n\t/** Username/handle */\n\tusername?: string;\n\t/** Avatar URL */\n\tavatar?: string;\n\t/** Is admin/owner */\n\tisAdmin?: boolean;\n\t/** Guild/Server ID (Discord) */\n\tguildId?: string;\n\t/** Team ID (Slack) */\n\tteamId?: string;\n\t/** Account ID (for multi-account channels) */\n\taccountId?: string;\n}\n\n/** Message content types */\nexport type MessageContent = TextContent | ImageContent | FileContent | CommandContent;\n\n/** Text content */\nexport interface TextContent {\n\ttype: \"text\";\n\ttext: string;\n}\n\n/** Image content */\nexport interface ImageContent {\n\ttype: \"image\";\n\turl: string;\n\tmimeType?: string;\n\tcaption?: string;\n}\n\n/** File content */\nexport interface FileContent {\n\ttype: \"file\";\n\turl: string;\n\tname: string;\n\tmimeType?: string;\n\tsize?: number;\n}\n\n/** Command content (e.g., /reset, /new) */\nexport interface CommandContent {\n\ttype: \"command\";\n\tcommand: string;\n\targs: string[];\n}\n\n/** Outbound message to a channel */\nexport interface OutboundMessage {\n\t/** Message ID */\n\tid: string;\n\t/** Session key */\n\tsessionKey: SessionKey;\n\t/** Target channel */\n\tchannel: string;\n\t/** Target identifier */\n\ttarget: string;\n\t/** Message content parts */\n\tparts: OutboundPart[];\n\t/** Reply to message ID */\n\treplyTo?: string;\n\t/** Thread ID */\n\tthreadId?: string;\n\t/** Metadata */\n\tmetadata?: Record<string, unknown>;\n}\n\n/** Outbound message part */\nexport type OutboundPart =\n\t| { type: \"text\"; text: string }\n\t| { type: \"image\"; url: string; caption?: string }\n\t| { type: \"file\"; url: string; name: string }\n\t| { type: \"typing\" }\n\t| { type: \"reaction\"; emoji: string; messageId: string }\n\t| { type: \"card\"; title: string; content: string; actions?: CardAction[] };\n\n/** Card action button */\nexport interface CardAction {\n\tlabel: string;\n\taction: string;\n\tdata?: unknown;\n}\n\n/** Route resolution result */\nexport interface RouteResolution {\n\t/** Resolved agent ID */\n\tagentId: string;\n\t/** Session key */\n\tsessionKey: SessionKey;\n\t/** Channel configuration */\n\tchannelConfig: ChannelConfig;\n\t/** Binding matched */\n\tbinding: ChannelBinding;\n}\n\n/** Channel binding configuration */\nexport interface ChannelBinding {\n\t/** Agent ID */\n\tagentId: string;\n\t/** Channel type */\n\tchannel: string;\n\t/** Binding type */\n\tbindType: \"peer\" | \"guild\" | \"team\" | \"account\" | \"channel\" | \"default\";\n\t/** Binding value */\n\tbindValue: string;\n\t/** Access control */\n\taccess: AccessControlConfig;\n}\n\n/** Access control configuration */\nexport interface AccessControlConfig {\n\t/** DM access policy */\n\tdmPolicy: \"pairing\" | \"allowlist\" | \"open\";\n\t/** Allowlist for DM */\n\tdmAllowlist?: string[];\n\t/** Group access policy */\n\tgroupPolicy: \"mention\" | \"allowlist\" | \"open\";\n\t/** Group allowlist */\n\tgroupAllowlist?: string[];\n}\n\n/** Gateway events */\nexport interface GatewayEventMap {\n\t\"connection:open\": { connectionId: string; type: ConnectionType };\n\t\"connection:close\": { connectionId: string; reason: string };\n\t\"message:inbound\": InboundMessage;\n\t\"message:outbound\": OutboundMessage;\n\t\"session:create\": Session;\n\t\"session:update\": Session;\n\t\"session:close\": { sessionKey: SessionKey };\n\t\"agent:start\": { sessionKey: SessionKey; agentId: string };\n\t\"agent:stop\": { sessionKey: SessionKey; agentId: string };\n\terror: { source: string; error: Error };\n}\n\n/** Event listener type */\nexport type GatewayEventListener<T extends keyof GatewayEventMap> = (data: GatewayEventMap[T]) => void;\n"]}