@agentxjs/network 1.7.0 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +8 -1
- package/dist/index.js.map +3 -3
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -381,8 +381,14 @@ class BrowserWebSocketClient {
|
|
|
381
381
|
resolvedHeaders = this.options.headers;
|
|
382
382
|
}
|
|
383
383
|
}
|
|
384
|
+
logger2.debug("Connecting to WebSocket", {
|
|
385
|
+
serverUrl: this.serverUrl,
|
|
386
|
+
autoReconnect: this.options.autoReconnect,
|
|
387
|
+
connectionTimeout: this.options.connectionTimeout
|
|
388
|
+
});
|
|
384
389
|
if (this.options.autoReconnect) {
|
|
385
390
|
const ReconnectingWebSocket = (await import("reconnecting-websocket")).default;
|
|
391
|
+
logger2.debug("Using ReconnectingWebSocket");
|
|
386
392
|
this.ws = new ReconnectingWebSocket(this.serverUrl, [], {
|
|
387
393
|
maxReconnectionDelay: this.options.maxReconnectionDelay,
|
|
388
394
|
minReconnectionDelay: this.options.minReconnectionDelay,
|
|
@@ -392,6 +398,7 @@ class BrowserWebSocketClient {
|
|
|
392
398
|
debug: this.options.debug
|
|
393
399
|
});
|
|
394
400
|
} else {
|
|
401
|
+
logger2.debug("Using native WebSocket");
|
|
395
402
|
this.ws = new WebSocket(this.serverUrl);
|
|
396
403
|
}
|
|
397
404
|
return new Promise((resolve, reject) => {
|
|
@@ -511,4 +518,4 @@ export {
|
|
|
511
518
|
WebSocketClient
|
|
512
519
|
};
|
|
513
520
|
|
|
514
|
-
//# debugId=
|
|
521
|
+
//# debugId=11069204D1FF528964756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"sources": ["../src/WebSocketServer.ts", "../src/WebSocketClient.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"/**\n * WebSocket Server implementation of ChannelServer\n */\n\nimport type { WebSocket as WS, WebSocketServer as WSS } from \"ws\";\nimport type {\n ChannelServer,\n ChannelConnection,\n ChannelServerOptions,\n MinimalHTTPServer,\n Unsubscribe,\n} from \"@agentxjs/types/network\";\nimport { createLogger } from \"@agentxjs/common\";\n\nconst logger = createLogger(\"network/WebSocketServer\");\n\n/**\n * WebSocket connection implementation\n */\nclass WebSocketConnection implements ChannelConnection {\n public readonly id: string;\n private ws: WS;\n private messageHandlers = new Set<(message: string) => void>();\n private closeHandlers = new Set<() => void>();\n private errorHandlers = new Set<(error: Error) => void>();\n private heartbeatInterval?: ReturnType<typeof setInterval>;\n private isAlive = true;\n\n constructor(ws: WS, options: ChannelServerOptions) {\n this.ws = ws;\n this.id = `conn_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`;\n\n // Setup heartbeat if enabled\n if (options.heartbeat !== false) {\n const interval = options.heartbeatInterval || 30000;\n\n ws.on(\"pong\", () => {\n this.isAlive = true;\n logger.debug(\"Heartbeat pong received\", { id: this.id });\n });\n\n this.heartbeatInterval = setInterval(() => {\n if (!this.isAlive) {\n logger.warn(\"Client heartbeat timeout, terminating connection\", { id: this.id });\n clearInterval(this.heartbeatInterval);\n ws.terminate();\n return;\n }\n this.isAlive = false;\n ws.ping();\n logger.debug(\"Heartbeat ping sent\", { id: this.id });\n }, interval);\n }\n\n // Setup message handler\n ws.on(\"message\", (data: Buffer) => {\n const message = data.toString();\n for (const handler of this.messageHandlers) {\n handler(message);\n }\n });\n\n // Setup close handler\n ws.on(\"close\", () => {\n if (this.heartbeatInterval) {\n clearInterval(this.heartbeatInterval);\n }\n for (const handler of this.closeHandlers) {\n handler();\n }\n });\n\n // Setup error handler\n ws.on(\"error\", (err: Error) => {\n if (this.heartbeatInterval) {\n clearInterval(this.heartbeatInterval);\n }\n for (const handler of this.errorHandlers) {\n handler(err);\n }\n });\n }\n\n send(message: string): void {\n if (this.ws.readyState === 1) {\n // WebSocket.OPEN\n this.ws.send(message);\n }\n }\n\n onMessage(handler: (message: string) => void): Unsubscribe {\n this.messageHandlers.add(handler);\n return () => {\n this.messageHandlers.delete(handler);\n };\n }\n\n onClose(handler: () => void): Unsubscribe {\n this.closeHandlers.add(handler);\n return () => {\n this.closeHandlers.delete(handler);\n };\n }\n\n onError(handler: (error: Error) => void): Unsubscribe {\n this.errorHandlers.add(handler);\n return () => {\n this.errorHandlers.delete(handler);\n };\n }\n\n close(): void {\n if (this.heartbeatInterval) {\n clearInterval(this.heartbeatInterval);\n }\n this.ws.close();\n }\n}\n\n/**\n * WebSocket Server\n */\nexport class WebSocketServer implements ChannelServer {\n private wss: WSS | null = null;\n private connections = new Set<WebSocketConnection>();\n private connectionHandlers = new Set<(connection: ChannelConnection) => void>();\n private options: ChannelServerOptions;\n private attachedToServer = false;\n\n constructor(options: ChannelServerOptions = {}) {\n this.options = options;\n }\n\n async listen(port: number, host: string = \"0.0.0.0\"): Promise<void> {\n if (this.wss) {\n throw new Error(\"Server already listening\");\n }\n if (this.attachedToServer) {\n throw new Error(\n \"Cannot listen when attached to existing server. The server should call listen() instead.\"\n );\n }\n\n const { WebSocketServer: WSS } = await import(\"ws\");\n this.wss = new WSS({ port, host });\n\n this.wss.on(\"connection\", (ws: WS) => {\n this.handleConnection(ws);\n });\n\n logger.info(\"WebSocket server listening\", { port, host });\n }\n\n attach(server: MinimalHTTPServer, path: string = \"/ws\"): void {\n if (this.wss) {\n throw new Error(\"Server already initialized\");\n }\n\n import(\"ws\").then(({ WebSocketServer: WSS }) => {\n this.wss = new WSS({ noServer: true });\n\n // Handle WebSocket upgrade on the HTTP server\n server.on(\"upgrade\", (request, socket, head) => {\n const url = new URL(request.url || \"\", `http://${request.headers.host}`);\n if (url.pathname === path) {\n this.wss!.handleUpgrade(request as any, socket as any, head as any, (ws: WS) => {\n this.wss!.emit(\"connection\", ws, request);\n });\n } else {\n (socket as any).destroy();\n }\n });\n\n this.wss.on(\"connection\", (ws: WS) => {\n this.handleConnection(ws);\n });\n\n this.attachedToServer = true;\n logger.info(\"WebSocket attached to existing HTTP server\", { path });\n });\n }\n\n private handleConnection(ws: WS): void {\n const connection = new WebSocketConnection(ws, this.options);\n this.connections.add(connection);\n\n logger.info(\"Client connected\", {\n connectionId: connection.id,\n totalConnections: this.connections.size,\n });\n\n connection.onClose(() => {\n this.connections.delete(connection);\n logger.info(\"Client disconnected\", {\n connectionId: connection.id,\n totalConnections: this.connections.size,\n });\n });\n\n // Notify handlers\n for (const handler of this.connectionHandlers) {\n handler(connection);\n }\n }\n\n onConnection(handler: (connection: ChannelConnection) => void): Unsubscribe {\n this.connectionHandlers.add(handler);\n return () => {\n this.connectionHandlers.delete(handler);\n };\n }\n\n broadcast(message: string): void {\n for (const connection of this.connections) {\n connection.send(message);\n }\n }\n\n async close(): Promise<void> {\n if (!this.wss) return;\n\n for (const connection of this.connections) {\n connection.close();\n }\n this.connections.clear();\n\n // Don't close the server if attached to existing HTTP server\n if (!this.attachedToServer) {\n await new Promise<void>((resolve) => {\n this.wss!.close(() => resolve());\n });\n }\n this.wss = null;\n }\n\n async dispose(): Promise<void> {\n await this.close();\n this.connectionHandlers.clear();\n }\n}\n",
|
|
6
|
-
"/**\n * WebSocket Client implementation of ChannelClient\n */\n\nimport type { ChannelClient, ChannelClientOptions, Unsubscribe } from \"@agentxjs/types/network\";\nimport { createLogger } from \"@agentxjs/common\";\n\nconst logger = createLogger(\"network/WebSocketClient\");\n\n// Detect browser environment\nconst isBrowser =\n typeof globalThis !== \"undefined\" &&\n typeof (globalThis as any).window !== \"undefined\" &&\n typeof (globalThis as any).window.WebSocket !== \"undefined\";\n\n/**\n * WebSocket Client (Node.js version - no auto-reconnect)\n */\nexport class WebSocketClient implements ChannelClient {\n private ws: WebSocket | null = null;\n private serverUrl: string;\n private headers?:\n | Record<string, string>\n | (() => Record<string, string> | Promise<Record<string, string>>);\n private messageHandlers = new Set<(message: string) => void>();\n private openHandlers = new Set<() => void>();\n private closeHandlers = new Set<() => void>();\n private errorHandlers = new Set<(error: Error) => void>();\n\n constructor(options: ChannelClientOptions) {\n if (isBrowser) {\n throw new Error(\n \"Use createBrowserWebSocketClient() in browser environment for auto-reconnect support\"\n );\n }\n\n this.serverUrl = options.serverUrl;\n this.headers = options.headers;\n }\n\n get readyState(): \"connecting\" | \"open\" | \"closing\" | \"closed\" {\n if (!this.ws) return \"closed\";\n const state = this.ws.readyState;\n if (state === 0) return \"connecting\";\n if (state === 1) return \"open\";\n if (state === 2) return \"closing\";\n return \"closed\";\n }\n\n async connect(): Promise<void> {\n if (this.ws) {\n throw new Error(\"Already connected or connecting\");\n }\n\n const { WebSocket: NodeWebSocket } = await import(\"ws\");\n\n // Resolve headers (support static, sync function, and async function)\n let resolvedHeaders: Record<string, string> | undefined;\n if (this.headers) {\n if (typeof this.headers === \"function\") {\n resolvedHeaders = await Promise.resolve(this.headers());\n } else {\n resolvedHeaders = this.headers;\n }\n }\n\n // Create WebSocket with headers (Node.js ws library supports this)\n this.ws = new NodeWebSocket(this.serverUrl, {\n headers: resolvedHeaders,\n }) as unknown as WebSocket;\n\n return new Promise<void>((resolve, reject) => {\n const onOpen = () => {\n logger.info(\"WebSocket connected\", { serverUrl: this.serverUrl });\n for (const handler of this.openHandlers) {\n handler();\n }\n resolve();\n };\n\n const onError = (err?: Error) => {\n logger.error(\"WebSocket connection failed\", {\n serverUrl: this.serverUrl,\n error: err?.message,\n });\n reject(err || new Error(\"WebSocket connection failed\"));\n };\n\n (this.ws as any).once(\"open\", onOpen);\n (this.ws as any).once(\"error\", onError);\n\n // Setup permanent handlers\n (this.ws as any).on(\"message\", (data: Buffer) => {\n const message = data.toString();\n for (const handler of this.messageHandlers) {\n handler(message);\n }\n });\n\n (this.ws as any).on(\"close\", () => {\n logger.warn(\"WebSocket closed\");\n for (const handler of this.closeHandlers) {\n handler();\n }\n });\n\n (this.ws as any).on(\"error\", (err: Error) => {\n logger.error(\"WebSocket error\", { error: err.message });\n for (const handler of this.errorHandlers) {\n handler(err);\n }\n });\n });\n }\n\n send(message: string): void {\n if (!this.ws || this.ws.readyState !== 1) {\n throw new Error(\"WebSocket is not open\");\n }\n this.ws.send(message);\n }\n\n onMessage(handler: (message: string) => void): Unsubscribe {\n this.messageHandlers.add(handler);\n return () => {\n this.messageHandlers.delete(handler);\n };\n }\n\n onOpen(handler: () => void): Unsubscribe {\n this.openHandlers.add(handler);\n return () => {\n this.openHandlers.delete(handler);\n };\n }\n\n onClose(handler: () => void): Unsubscribe {\n this.closeHandlers.add(handler);\n return () => {\n this.closeHandlers.delete(handler);\n };\n }\n\n onError(handler: (error: Error) => void): Unsubscribe {\n this.errorHandlers.add(handler);\n return () => {\n this.errorHandlers.delete(handler);\n };\n }\n\n close(): void {\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n\n dispose(): void {\n this.close();\n this.messageHandlers.clear();\n this.openHandlers.clear();\n this.closeHandlers.clear();\n this.errorHandlers.clear();\n }\n}\n\n/**\n * Browser WebSocket Client with auto-reconnect\n */\nexport class BrowserWebSocketClient implements ChannelClient {\n private ws: WebSocket | null = null;\n private serverUrl: string;\n private options: ChannelClientOptions;\n private messageHandlers = new Set<(message: string) => void>();\n private openHandlers = new Set<() => void>();\n private closeHandlers = new Set<() => void>();\n private errorHandlers = new Set<(error: Error) => void>();\n private hasConnectedBefore = false; // Track if this is a reconnection\n\n constructor(options: ChannelClientOptions) {\n if (!isBrowser) {\n throw new Error(\"BrowserWebSocketClient can only be used in browser environment\");\n }\n\n this.serverUrl = options.serverUrl;\n this.options = {\n autoReconnect: true,\n minReconnectionDelay: 1000,\n maxReconnectionDelay: 10000,\n maxRetries: Infinity,\n connectionTimeout: 4000,\n debug: false,\n ...options,\n };\n }\n\n get readyState(): \"connecting\" | \"open\" | \"closing\" | \"closed\" {\n if (!this.ws) return \"closed\";\n const state = this.ws.readyState;\n if (state === 0) return \"connecting\";\n if (state === 1) return \"open\";\n if (state === 2) return \"closing\";\n return \"closed\";\n }\n\n async connect(): Promise<void> {\n if (this.ws) {\n throw new Error(\"Already connected or connecting\");\n }\n\n // Resolve headers before creating WebSocket (if any)\n let resolvedHeaders: Record<string, string> | undefined;\n if (this.options.headers) {\n if (typeof this.options.headers === \"function\") {\n resolvedHeaders = await Promise.resolve(this.options.headers());\n } else {\n resolvedHeaders = this.options.headers;\n }\n }\n\n if (this.options.autoReconnect) {\n // Use reconnecting-websocket for auto-reconnect\n const ReconnectingWebSocket = (await import(\"reconnecting-websocket\")).default;\n this.ws = new ReconnectingWebSocket(this.serverUrl, [], {\n maxReconnectionDelay: this.options.maxReconnectionDelay,\n minReconnectionDelay: this.options.minReconnectionDelay,\n reconnectionDelayGrowFactor: 1.3,\n connectionTimeout: this.options.connectionTimeout,\n maxRetries: this.options.maxRetries,\n debug: this.options.debug,\n });\n } else {\n // Use native WebSocket\n this.ws = new WebSocket(this.serverUrl);\n }\n\n return new Promise<void>((resolve, reject) => {\n const onOpen = async () => {\n if (this.hasConnectedBefore) {\n logger.info(\"WebSocket reconnected successfully\", { serverUrl: this.serverUrl });\n } else {\n logger.info(\"WebSocket connected\", { serverUrl: this.serverUrl });\n this.hasConnectedBefore = true;\n }\n\n // Browser WebSocket API doesn't support custom headers in handshake\n // Send authentication message as first message instead\n if (resolvedHeaders && Object.keys(resolvedHeaders).length > 0) {\n try {\n const authMessage = JSON.stringify({\n type: \"auth\",\n headers: resolvedHeaders,\n });\n this.ws!.send(authMessage);\n logger.info(\"Sent authentication message to server\");\n } catch (error) {\n logger.error(\"Failed to send authentication message\", { error });\n }\n }\n\n for (const handler of this.openHandlers) {\n handler();\n }\n resolve();\n };\n\n const onError = (_event: Event) => {\n logger.error(\"WebSocket connection failed\", { serverUrl: this.serverUrl });\n const error = new Error(\"WebSocket connection failed\");\n for (const handler of this.errorHandlers) {\n handler(error);\n }\n reject(error);\n };\n\n this.ws!.addEventListener(\"open\", onOpen as any, { once: true });\n this.ws!.addEventListener(\"error\", onError as any, { once: true });\n\n // Setup permanent handlers\n this.ws!.addEventListener(\"message\", ((event: any) => {\n const message = event.data;\n for (const handler of this.messageHandlers) {\n handler(message);\n }\n }) as any);\n\n this.ws!.addEventListener(\"close\", (() => {\n logger.info(\"WebSocket closed, attempting to reconnect...\");\n for (const handler of this.closeHandlers) {\n handler();\n }\n }) as any);\n\n this.ws!.addEventListener(\"error\", ((_event: Event) => {\n logger.error(\"WebSocket error\");\n const error = new Error(\"WebSocket error\");\n for (const handler of this.errorHandlers) {\n handler(error);\n }\n }) as any);\n });\n }\n\n send(message: string): void {\n if (!this.ws || this.ws.readyState !== 1) {\n throw new Error(\"WebSocket is not open\");\n }\n this.ws.send(message);\n }\n\n onMessage(handler: (message: string) => void): Unsubscribe {\n this.messageHandlers.add(handler);\n return () => {\n this.messageHandlers.delete(handler);\n };\n }\n\n onOpen(handler: () => void): Unsubscribe {\n this.openHandlers.add(handler);\n return () => {\n this.openHandlers.delete(handler);\n };\n }\n\n onClose(handler: () => void): Unsubscribe {\n this.closeHandlers.add(handler);\n return () => {\n this.closeHandlers.delete(handler);\n };\n }\n\n onError(handler: (error: Error) => void): Unsubscribe {\n this.errorHandlers.add(handler);\n return () => {\n this.errorHandlers.delete(handler);\n };\n }\n\n close(): void {\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n\n dispose(): void {\n this.close();\n this.messageHandlers.clear();\n this.openHandlers.clear();\n this.closeHandlers.clear();\n this.errorHandlers.clear();\n }\n}\n\n/**\n * Factory function to create the appropriate WebSocket client\n */\nexport async function createWebSocketClient(options: ChannelClientOptions): Promise<ChannelClient> {\n if (isBrowser) {\n const client = new BrowserWebSocketClient(options);\n await client.connect();\n return client;\n } else {\n const client = new WebSocketClient(options);\n await client.connect();\n return client;\n }\n}\n"
|
|
6
|
+
"/**\n * WebSocket Client implementation of ChannelClient\n */\n\nimport type { ChannelClient, ChannelClientOptions, Unsubscribe } from \"@agentxjs/types/network\";\nimport { createLogger } from \"@agentxjs/common\";\n\nconst logger = createLogger(\"network/WebSocketClient\");\n\n// Detect browser environment\nconst isBrowser =\n typeof globalThis !== \"undefined\" &&\n typeof (globalThis as any).window !== \"undefined\" &&\n typeof (globalThis as any).window.WebSocket !== \"undefined\";\n\n/**\n * WebSocket Client (Node.js version - no auto-reconnect)\n */\nexport class WebSocketClient implements ChannelClient {\n private ws: WebSocket | null = null;\n private serverUrl: string;\n private headers?:\n | Record<string, string>\n | (() => Record<string, string> | Promise<Record<string, string>>);\n private messageHandlers = new Set<(message: string) => void>();\n private openHandlers = new Set<() => void>();\n private closeHandlers = new Set<() => void>();\n private errorHandlers = new Set<(error: Error) => void>();\n\n constructor(options: ChannelClientOptions) {\n if (isBrowser) {\n throw new Error(\n \"Use createBrowserWebSocketClient() in browser environment for auto-reconnect support\"\n );\n }\n\n this.serverUrl = options.serverUrl;\n this.headers = options.headers;\n }\n\n get readyState(): \"connecting\" | \"open\" | \"closing\" | \"closed\" {\n if (!this.ws) return \"closed\";\n const state = this.ws.readyState;\n if (state === 0) return \"connecting\";\n if (state === 1) return \"open\";\n if (state === 2) return \"closing\";\n return \"closed\";\n }\n\n async connect(): Promise<void> {\n if (this.ws) {\n throw new Error(\"Already connected or connecting\");\n }\n\n const { WebSocket: NodeWebSocket } = await import(\"ws\");\n\n // Resolve headers (support static, sync function, and async function)\n let resolvedHeaders: Record<string, string> | undefined;\n if (this.headers) {\n if (typeof this.headers === \"function\") {\n resolvedHeaders = await Promise.resolve(this.headers());\n } else {\n resolvedHeaders = this.headers;\n }\n }\n\n // Create WebSocket with headers (Node.js ws library supports this)\n this.ws = new NodeWebSocket(this.serverUrl, {\n headers: resolvedHeaders,\n }) as unknown as WebSocket;\n\n return new Promise<void>((resolve, reject) => {\n const onOpen = () => {\n logger.info(\"WebSocket connected\", { serverUrl: this.serverUrl });\n for (const handler of this.openHandlers) {\n handler();\n }\n resolve();\n };\n\n const onError = (err?: Error) => {\n logger.error(\"WebSocket connection failed\", {\n serverUrl: this.serverUrl,\n error: err?.message,\n });\n reject(err || new Error(\"WebSocket connection failed\"));\n };\n\n (this.ws as any).once(\"open\", onOpen);\n (this.ws as any).once(\"error\", onError);\n\n // Setup permanent handlers\n (this.ws as any).on(\"message\", (data: Buffer) => {\n const message = data.toString();\n for (const handler of this.messageHandlers) {\n handler(message);\n }\n });\n\n (this.ws as any).on(\"close\", () => {\n logger.warn(\"WebSocket closed\");\n for (const handler of this.closeHandlers) {\n handler();\n }\n });\n\n (this.ws as any).on(\"error\", (err: Error) => {\n logger.error(\"WebSocket error\", { error: err.message });\n for (const handler of this.errorHandlers) {\n handler(err);\n }\n });\n });\n }\n\n send(message: string): void {\n if (!this.ws || this.ws.readyState !== 1) {\n throw new Error(\"WebSocket is not open\");\n }\n this.ws.send(message);\n }\n\n onMessage(handler: (message: string) => void): Unsubscribe {\n this.messageHandlers.add(handler);\n return () => {\n this.messageHandlers.delete(handler);\n };\n }\n\n onOpen(handler: () => void): Unsubscribe {\n this.openHandlers.add(handler);\n return () => {\n this.openHandlers.delete(handler);\n };\n }\n\n onClose(handler: () => void): Unsubscribe {\n this.closeHandlers.add(handler);\n return () => {\n this.closeHandlers.delete(handler);\n };\n }\n\n onError(handler: (error: Error) => void): Unsubscribe {\n this.errorHandlers.add(handler);\n return () => {\n this.errorHandlers.delete(handler);\n };\n }\n\n close(): void {\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n\n dispose(): void {\n this.close();\n this.messageHandlers.clear();\n this.openHandlers.clear();\n this.closeHandlers.clear();\n this.errorHandlers.clear();\n }\n}\n\n/**\n * Browser WebSocket Client with auto-reconnect\n */\nexport class BrowserWebSocketClient implements ChannelClient {\n private ws: WebSocket | null = null;\n private serverUrl: string;\n private options: ChannelClientOptions;\n private messageHandlers = new Set<(message: string) => void>();\n private openHandlers = new Set<() => void>();\n private closeHandlers = new Set<() => void>();\n private errorHandlers = new Set<(error: Error) => void>();\n private hasConnectedBefore = false; // Track if this is a reconnection\n\n constructor(options: ChannelClientOptions) {\n if (!isBrowser) {\n throw new Error(\"BrowserWebSocketClient can only be used in browser environment\");\n }\n\n this.serverUrl = options.serverUrl;\n this.options = {\n autoReconnect: true,\n minReconnectionDelay: 1000,\n maxReconnectionDelay: 10000,\n maxRetries: Infinity,\n connectionTimeout: 4000,\n debug: false,\n ...options,\n };\n }\n\n get readyState(): \"connecting\" | \"open\" | \"closing\" | \"closed\" {\n if (!this.ws) return \"closed\";\n const state = this.ws.readyState;\n if (state === 0) return \"connecting\";\n if (state === 1) return \"open\";\n if (state === 2) return \"closing\";\n return \"closed\";\n }\n\n async connect(): Promise<void> {\n if (this.ws) {\n throw new Error(\"Already connected or connecting\");\n }\n\n // Resolve headers before creating WebSocket (if any)\n let resolvedHeaders: Record<string, string> | undefined;\n if (this.options.headers) {\n if (typeof this.options.headers === \"function\") {\n resolvedHeaders = await Promise.resolve(this.options.headers());\n } else {\n resolvedHeaders = this.options.headers;\n }\n }\n\n logger.debug(\"Connecting to WebSocket\", {\n serverUrl: this.serverUrl,\n autoReconnect: this.options.autoReconnect,\n connectionTimeout: this.options.connectionTimeout,\n });\n\n if (this.options.autoReconnect) {\n // Use reconnecting-websocket for auto-reconnect\n const ReconnectingWebSocket = (await import(\"reconnecting-websocket\")).default;\n logger.debug(\"Using ReconnectingWebSocket\");\n this.ws = new ReconnectingWebSocket(this.serverUrl, [], {\n maxReconnectionDelay: this.options.maxReconnectionDelay,\n minReconnectionDelay: this.options.minReconnectionDelay,\n reconnectionDelayGrowFactor: 1.3,\n connectionTimeout: this.options.connectionTimeout,\n maxRetries: this.options.maxRetries,\n debug: this.options.debug,\n });\n } else {\n // Use native WebSocket\n logger.debug(\"Using native WebSocket\");\n this.ws = new WebSocket(this.serverUrl);\n }\n\n return new Promise<void>((resolve, reject) => {\n const onOpen = async () => {\n if (this.hasConnectedBefore) {\n logger.info(\"WebSocket reconnected successfully\", { serverUrl: this.serverUrl });\n } else {\n logger.info(\"WebSocket connected\", { serverUrl: this.serverUrl });\n this.hasConnectedBefore = true;\n }\n\n // Browser WebSocket API doesn't support custom headers in handshake\n // Send authentication message as first message instead\n if (resolvedHeaders && Object.keys(resolvedHeaders).length > 0) {\n try {\n const authMessage = JSON.stringify({\n type: \"auth\",\n headers: resolvedHeaders,\n });\n this.ws!.send(authMessage);\n logger.info(\"Sent authentication message to server\");\n } catch (error) {\n logger.error(\"Failed to send authentication message\", { error });\n }\n }\n\n for (const handler of this.openHandlers) {\n handler();\n }\n resolve();\n };\n\n const onError = (_event: Event) => {\n logger.error(\"WebSocket connection failed\", { serverUrl: this.serverUrl });\n const error = new Error(\"WebSocket connection failed\");\n for (const handler of this.errorHandlers) {\n handler(error);\n }\n reject(error);\n };\n\n this.ws!.addEventListener(\"open\", onOpen as any, { once: true });\n this.ws!.addEventListener(\"error\", onError as any, { once: true });\n\n // Setup permanent handlers\n this.ws!.addEventListener(\"message\", ((event: any) => {\n const message = event.data;\n for (const handler of this.messageHandlers) {\n handler(message);\n }\n }) as any);\n\n this.ws!.addEventListener(\"close\", (() => {\n logger.info(\"WebSocket closed, attempting to reconnect...\");\n for (const handler of this.closeHandlers) {\n handler();\n }\n }) as any);\n\n this.ws!.addEventListener(\"error\", ((_event: Event) => {\n logger.error(\"WebSocket error\");\n const error = new Error(\"WebSocket error\");\n for (const handler of this.errorHandlers) {\n handler(error);\n }\n }) as any);\n });\n }\n\n send(message: string): void {\n if (!this.ws || this.ws.readyState !== 1) {\n throw new Error(\"WebSocket is not open\");\n }\n this.ws.send(message);\n }\n\n onMessage(handler: (message: string) => void): Unsubscribe {\n this.messageHandlers.add(handler);\n return () => {\n this.messageHandlers.delete(handler);\n };\n }\n\n onOpen(handler: () => void): Unsubscribe {\n this.openHandlers.add(handler);\n return () => {\n this.openHandlers.delete(handler);\n };\n }\n\n onClose(handler: () => void): Unsubscribe {\n this.closeHandlers.add(handler);\n return () => {\n this.closeHandlers.delete(handler);\n };\n }\n\n onError(handler: (error: Error) => void): Unsubscribe {\n this.errorHandlers.add(handler);\n return () => {\n this.errorHandlers.delete(handler);\n };\n }\n\n close(): void {\n if (this.ws) {\n this.ws.close();\n this.ws = null;\n }\n }\n\n dispose(): void {\n this.close();\n this.messageHandlers.clear();\n this.openHandlers.clear();\n this.closeHandlers.clear();\n this.errorHandlers.clear();\n }\n}\n\n/**\n * Factory function to create the appropriate WebSocket client\n */\nexport async function createWebSocketClient(options: ChannelClientOptions): Promise<ChannelClient> {\n if (isBrowser) {\n const client = new BrowserWebSocketClient(options);\n await client.connect();\n return client;\n } else {\n const client = new WebSocketClient(options);\n await client.connect();\n return client;\n }\n}\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": "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",
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "11069204D1FF528964756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentxjs/network",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.1",
|
|
4
4
|
"description": "Network layer abstraction for AgentX platform - WebSocket client/server with heartbeat and auto-reconnect",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agentx",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"clean": "rm -rf dist"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@agentxjs/common": "^1.
|
|
42
|
-
"@agentxjs/types": "^1.
|
|
41
|
+
"@agentxjs/common": "^1.8.1",
|
|
42
|
+
"@agentxjs/types": "^1.8.1",
|
|
43
43
|
"reconnecting-websocket": "^4.4.0",
|
|
44
44
|
"ws": "^8.18.0"
|
|
45
45
|
},
|