@elqnt/chat 1.0.2 → 1.0.4

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.
Files changed (42) hide show
  1. package/dist/hooks/use-websocket-chat-admin.d.mts +3 -2
  2. package/dist/hooks/use-websocket-chat-admin.d.ts +3 -2
  3. package/dist/hooks/use-websocket-chat-admin.js +829 -4
  4. package/dist/hooks/use-websocket-chat-admin.js.map +1 -1
  5. package/dist/hooks/use-websocket-chat-admin.mjs +805 -4
  6. package/dist/hooks/use-websocket-chat-admin.mjs.map +1 -1
  7. package/dist/hooks/use-websocket-chat-base.d.mts +68 -2
  8. package/dist/hooks/use-websocket-chat-base.d.ts +68 -2
  9. package/dist/hooks/use-websocket-chat-base.js +661 -6
  10. package/dist/hooks/use-websocket-chat-base.js.map +1 -1
  11. package/dist/hooks/use-websocket-chat-base.mjs +634 -3
  12. package/dist/hooks/use-websocket-chat-base.mjs.map +1 -1
  13. package/dist/hooks/use-websocket-chat-customer.d.mts +3 -2
  14. package/dist/hooks/use-websocket-chat-customer.d.ts +3 -2
  15. package/dist/hooks/use-websocket-chat-customer.js +726 -5
  16. package/dist/hooks/use-websocket-chat-customer.js.map +1 -1
  17. package/dist/hooks/use-websocket-chat-customer.mjs +701 -4
  18. package/dist/hooks/use-websocket-chat-customer.mjs.map +1 -1
  19. package/dist/index.d.mts +3 -2
  20. package/dist/index.d.ts +3 -2
  21. package/dist/index.js +1685 -590
  22. package/dist/index.js.map +1 -1
  23. package/dist/index.mjs +1064 -197
  24. package/dist/index.mjs.map +1 -1
  25. package/dist/{use-websocket-chat-base-CZDONnTz.d.ts → models/index.d.mts} +2 -66
  26. package/dist/{use-websocket-chat-base-CZDONnTz.d.mts → models/index.d.ts} +2 -66
  27. package/dist/models/index.js +555 -0
  28. package/dist/models/index.js.map +1 -0
  29. package/dist/{chunk-AC5J5LX5.mjs → models/index.mjs} +146 -318
  30. package/dist/models/index.mjs.map +1 -0
  31. package/package.json +6 -1
  32. package/dist/chunk-3PXNBY7J.js +0 -73
  33. package/dist/chunk-3PXNBY7J.js.map +0 -1
  34. package/dist/chunk-AC5J5LX5.mjs.map +0 -1
  35. package/dist/chunk-DTFTLFSY.js +0 -637
  36. package/dist/chunk-DTFTLFSY.js.map +0 -1
  37. package/dist/chunk-E2FJX52R.js +0 -529
  38. package/dist/chunk-E2FJX52R.js.map +0 -1
  39. package/dist/chunk-F6OOS4ZM.mjs +0 -637
  40. package/dist/chunk-F6OOS4ZM.mjs.map +0 -1
  41. package/dist/chunk-XVYABY2Z.mjs +0 -73
  42. package/dist/chunk-XVYABY2Z.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../../hooks/use-websocket-chat-customer.ts","../../hooks/use-websocket-chat-base.ts"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useState } from \"react\";\nimport { Chat, ChatEvent, ChatMessage, ChatUser } from \"../models\";\nimport {\n useWebSocketChatBase,\n UseWebSocketChatBaseConfig,\n UseWebSocketChatBaseReturn,\n} from \"./use-websocket-chat-base\";\n\nexport interface UseWebSocketChatCustomerReturn\n extends UseWebSocketChatBaseReturn {\n title: string | undefined;\n messages: ChatMessage[];\n users: ChatUser[];\n isWaiting: boolean;\n isWaitingForAgent: boolean;\n aiEngaged: boolean;\n humanAgentEngaged: boolean;\n metadata: Record<string, string>;\n status: string | undefined;\n chatKey: string;\n}\n\nexport interface UseWebSocketChatCustomerConfig\n extends Omit<UseWebSocketChatBaseConfig, \"clientType\" | \"onMessage\"> {\n chatKey: string;\n}\n\nexport const useWebSocketChatCustomer = ({\n serverBaseUrl,\n orgId,\n chatKey,\n product,\n}: UseWebSocketChatCustomerConfig): UseWebSocketChatCustomerReturn => {\n const [currentChat, setCurrentChat] = useState<Chat | undefined>(undefined);\n\n const handleMessage = useCallback((chatEvent: ChatEvent) => {\n console.log(\"Received event:\", chatEvent.type);\n\n switch (chatEvent.type) {\n case \"message\":\n if (!chatEvent.message) return;\n\n console.log(\n \"got message:\",\n chatEvent.message.role,\n \":\",\n chatEvent.message.content\n );\n // if (\n // chatEvent.message?.toolCalls?.length &&\n // chatEvent.message.toolCalls.length > 0\n // )\n // return;\n setCurrentChat((prev) => {\n if (!prev) return prev;\n return {\n ...prev,\n messages: [...prev.messages, chatEvent.message!],\n };\n });\n break;\n\n case \"chat_updated\":\n const chat = chatEvent.data?.chat?.value as Chat;\n if (chat) {\n setCurrentChat(chat);\n }\n break;\n\n case \"load_chat\":\n const history = chatEvent.data?.chat as Chat;\n if (!history) return;\n setCurrentChat(history);\n break;\n\n default:\n // console.log(\"unhandled event:\", chatEvent.type);\n break;\n }\n }, []);\n\n const base = useWebSocketChatBase({\n serverBaseUrl,\n orgId,\n clientType: \"customer\",\n onMessage: handleMessage,\n product,\n });\n\n return {\n ...base,\n chatKey,\n title: currentChat?.title,\n messages: currentChat?.messages ?? [],\n users: currentChat?.users ?? [],\n isWaiting: currentChat?.isWaiting ?? false,\n isWaitingForAgent: currentChat?.isWaitingForAgent ?? false,\n aiEngaged: currentChat?.aiEngaged ?? false,\n humanAgentEngaged: currentChat?.humanAgentEngaged ?? false,\n metadata: currentChat?.metadata ?? {},\n status: currentChat?.status,\n };\n};\n","\"use client\";\n\nimport { ProductNameTS } from \"@elqnt/types\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { ChatEvent } from \"../models\";\n\n// Connection state enum\nexport type ConnectionState =\n | \"disconnected\"\n | \"connecting\"\n | \"connected\"\n | \"reconnecting\";\n\n// Error types\nexport interface WebSocketError {\n code:\n | \"CONNECTION_FAILED\"\n | \"PARSE_ERROR\"\n | \"SEND_FAILED\"\n | \"TIMEOUT\"\n | \"NETWORK_ERROR\";\n message: string;\n retryable: boolean;\n timestamp: number;\n}\n\n// Retry configuration\nexport interface RetryConfig {\n maxRetries?: number;\n intervals?: number[];\n backoffMultiplier?: number;\n maxBackoffTime?: number;\n}\n\n// Connection metrics\nexport interface ConnectionMetrics {\n latency: number;\n messagesSent: number;\n messagesReceived: number;\n messagesQueued: number;\n reconnectCount: number;\n lastError?: WebSocketError;\n connectedAt?: number;\n lastMessageAt?: number;\n}\n\n// Message queue configuration\nexport interface QueueConfig {\n maxSize?: number;\n dropStrategy?: \"oldest\" | \"newest\";\n}\n\n// Logger interface\nexport interface Logger {\n debug: (message: string, ...args: any[]) => void;\n info: (message: string, ...args: any[]) => void;\n warn: (message: string, ...args: any[]) => void;\n error: (message: string, ...args: any[]) => void;\n}\n\n// Default logger (can be overridden)\nconst createDefaultLogger = (debug: boolean): Logger => ({\n debug: debug ? console.log : () => {},\n info: console.info,\n warn: console.warn,\n error: console.error,\n});\n\nexport interface UseWebSocketChatBaseConfig {\n serverBaseUrl: string;\n orgId: string;\n clientType: \"customer\" | \"humanAgent\" | \"observer\";\n product: ProductNameTS;\n onMessage?: (event: ChatEvent) => void;\n retryConfig?: RetryConfig;\n queueConfig?: QueueConfig;\n debug?: boolean;\n logger?: Logger;\n heartbeatInterval?: number; // in milliseconds, 0 to disable\n heartbeatTimeout?: number; // in milliseconds\n}\n\nexport interface UseWebSocketChatBaseReturn {\n connectionState: ConnectionState;\n isConnected: boolean;\n sendMessage: (\n event: Omit<ChatEvent, \"timestamp\">,\n overrideUserId?: string\n ) => Promise<void>;\n error: WebSocketError | undefined;\n connect: (userId: string) => Promise<void>;\n startNewChat: (\n userId: string,\n data?: { [key: string]: any }\n ) => Promise<string>;\n startTime: Date | undefined;\n disconnect: (intentional?: boolean) => void;\n metrics: ConnectionMetrics;\n on: (eventType: string, handler: (data: any) => void) => () => void;\n off: (eventType: string, handler: (data: any) => void) => void;\n clearError: () => void;\n}\n\n// Default configurations\nconst DEFAULT_RETRY_CONFIG: RetryConfig = {\n maxRetries: 10,\n intervals: [1000, 2000, 5000],\n backoffMultiplier: 1.5,\n maxBackoffTime: 30000,\n};\n\nconst DEFAULT_QUEUE_CONFIG: QueueConfig = {\n maxSize: 100,\n dropStrategy: \"oldest\",\n};\n\nconst DEFAULT_HEARTBEAT_INTERVAL = 30000; // 30 seconds\nconst DEFAULT_HEARTBEAT_TIMEOUT = 5000; // 5 seconds\n\n// Type guards\nfunction isChatEvent(data: any): data is ChatEvent {\n return (\n data &&\n typeof data === \"object\" &&\n (typeof data.type === \"string\" || data.message)\n );\n}\n\nfunction hasValidChatKey(data: any): boolean {\n return data?.chatKey && typeof data.chatKey === \"string\";\n}\n\nexport const useWebSocketChatBase = ({\n serverBaseUrl,\n orgId,\n clientType,\n product,\n onMessage,\n retryConfig = DEFAULT_RETRY_CONFIG,\n queueConfig = DEFAULT_QUEUE_CONFIG,\n debug = false,\n logger = createDefaultLogger(debug),\n heartbeatInterval = DEFAULT_HEARTBEAT_INTERVAL,\n heartbeatTimeout = DEFAULT_HEARTBEAT_TIMEOUT,\n}: UseWebSocketChatBaseConfig): UseWebSocketChatBaseReturn => {\n // State\n const [connectionState, setConnectionState] =\n useState<ConnectionState>(\"disconnected\");\n const [error, setError] = useState<WebSocketError | undefined>(undefined);\n const [startTime, setStartTime] = useState<Date | undefined>(undefined);\n const [metrics, setMetrics] = useState<ConnectionMetrics>({\n latency: 0,\n messagesSent: 0,\n messagesReceived: 0,\n messagesQueued: 0,\n reconnectCount: 0,\n });\n\n // Refs\n const wsRef = useRef<WebSocket | undefined>(undefined);\n const reconnectTimeoutRef = useRef<NodeJS.Timeout | undefined>(undefined);\n const retryCountRef = useRef(0);\n const messageQueueRef = useRef<ChatEvent[]>([]);\n const mountedRef = useRef(false);\n const currentChatKeyRef = useRef<string | undefined>(undefined);\n const currentUserIdRef = useRef<string | undefined>(undefined);\n const intentionalDisconnectRef = useRef(false);\n const eventHandlersRef = useRef<Map<string, Set<(data: any) => void>>>(\n new Map()\n );\n const onMessageRef = useRef(onMessage);\n const pendingMessagesRef = useRef<\n Map<\n string,\n {\n resolve: () => void;\n reject: (error: Error) => void;\n timeout: NodeJS.Timeout;\n }\n >\n >(new Map());\n const heartbeatIntervalRef = useRef<NodeJS.Timeout | undefined>(undefined);\n const heartbeatTimeoutRef = useRef<NodeJS.Timeout | undefined>(undefined);\n const lastPongRef = useRef<number>(Date.now());\n const chatCreationPromiseRef = useRef<{\n resolve: (value: string) => void;\n reject: (reason?: any) => void;\n } | null>(null);\n\n // Load chat retry state\n const loadChatRetryMapRef = useRef<Map<string, {\n retryCount: number;\n timeoutId: NodeJS.Timeout | null;\n }>>(new Map());\n\n // Update onMessage ref when it changes\n useEffect(() => {\n onMessageRef.current = onMessage;\n }, [onMessage]);\n\n // Computed state\n const isConnected = connectionState === \"connected\";\n\n // Event subscription system\n const on = useCallback((eventType: string, handler: (data: any) => void) => {\n if (!eventHandlersRef.current.has(eventType)) {\n eventHandlersRef.current.set(eventType, new Set());\n }\n eventHandlersRef.current.get(eventType)!.add(handler);\n\n // Return unsubscribe function\n return () => off(eventType, handler);\n }, []);\n\n const off = useCallback((eventType: string, handler: (data: any) => void) => {\n const handlers = eventHandlersRef.current.get(eventType);\n if (handlers) {\n handlers.delete(handler);\n if (handlers.size === 0) {\n eventHandlersRef.current.delete(eventType);\n }\n }\n }, []);\n\n // Emit event to all registered handlers\n const emit = useCallback(\n (eventType: string, data: any) => {\n const handlers = eventHandlersRef.current.get(eventType);\n if (handlers) {\n handlers.forEach((handler) => {\n try {\n handler(data);\n } catch (error) {\n logger.error(`Error in event handler for ${eventType}:`, error);\n }\n });\n }\n },\n [logger]\n );\n\n // Update metrics\n const updateMetrics = useCallback((updates: Partial<ConnectionMetrics>) => {\n setMetrics((prev) => ({ ...prev, ...updates }));\n }, []);\n\n // Queue management\n const addToQueue = useCallback(\n (event: ChatEvent) => {\n const currentQueueSize = messageQueueRef.current.length;\n const maxSize = queueConfig.maxSize || DEFAULT_QUEUE_CONFIG.maxSize!;\n\n if (currentQueueSize >= maxSize) {\n if (queueConfig.dropStrategy === \"newest\") {\n logger.warn(\"Message queue full, dropping new message\");\n return false;\n } else {\n // Drop oldest\n const dropped = messageQueueRef.current.shift();\n logger.warn(\"Message queue full, dropped oldest message\", dropped);\n }\n }\n\n messageQueueRef.current.push(event);\n updateMetrics({ messagesQueued: messageQueueRef.current.length });\n return true;\n },\n [queueConfig, logger, updateMetrics]\n );\n\n // Calculate retry interval\n const calculateRetryInterval = useCallback(\n (retryCount: number): number => {\n const config = { ...DEFAULT_RETRY_CONFIG, ...retryConfig };\n const {\n intervals = [],\n backoffMultiplier = 1.5,\n maxBackoffTime = 30000,\n } = config;\n\n if (retryCount < intervals.length) {\n return intervals[retryCount];\n }\n\n // Exponential backoff after predefined intervals\n const baseInterval = intervals[intervals.length - 1] || 5000;\n const backoffTime =\n baseInterval *\n Math.pow(backoffMultiplier, retryCount - intervals.length + 1);\n return Math.min(backoffTime, maxBackoffTime);\n },\n [retryConfig]\n );\n\n // Heartbeat mechanism\n const startHeartbeat = useCallback(() => {\n if (!heartbeatInterval || heartbeatInterval <= 0) return;\n\n const sendPing = () => {\n if (wsRef.current?.readyState === WebSocket.OPEN) {\n const pingTime = Date.now();\n wsRef.current.send(\n JSON.stringify({ type: \"ping\", timestamp: pingTime })\n );\n\n // Set timeout for pong response\n heartbeatTimeoutRef.current = setTimeout(() => {\n logger.warn(\"Heartbeat timeout - no pong received\");\n // Force reconnection\n if (wsRef.current) {\n wsRef.current.close(4000, \"Heartbeat timeout\");\n }\n }, heartbeatTimeout);\n }\n };\n\n // Clear existing interval\n if (heartbeatIntervalRef.current) {\n clearInterval(heartbeatIntervalRef.current);\n }\n\n // Start new interval\n heartbeatIntervalRef.current = setInterval(sendPing, heartbeatInterval);\n logger.debug(\"Heartbeat started\");\n }, [heartbeatInterval, heartbeatTimeout, logger]);\n\n const stopHeartbeat = useCallback(() => {\n if (heartbeatIntervalRef.current) {\n clearInterval(heartbeatIntervalRef.current);\n heartbeatIntervalRef.current = undefined;\n }\n if (heartbeatTimeoutRef.current) {\n clearTimeout(heartbeatTimeoutRef.current);\n heartbeatTimeoutRef.current = undefined;\n }\n logger.debug(\"Heartbeat stopped\");\n }, [logger]);\n\n // Cleanup function\n const cleanup = useCallback(() => {\n if (wsRef.current && wsRef.current.readyState === WebSocket.OPEN) {\n wsRef.current.close(1000, \"Cleanup\");\n }\n wsRef.current = undefined;\n if (reconnectTimeoutRef.current) {\n clearTimeout(reconnectTimeoutRef.current);\n reconnectTimeoutRef.current = undefined;\n }\n stopHeartbeat();\n\n // Clear pending message promises\n pendingMessagesRef.current.forEach(({ reject, timeout }) => {\n clearTimeout(timeout);\n reject(new Error(\"Connection closed\"));\n });\n pendingMessagesRef.current.clear();\n\n // Clear load chat retry timeouts\n loadChatRetryMapRef.current.forEach((retryState) => {\n if (retryState.timeoutId) {\n clearTimeout(retryState.timeoutId);\n }\n });\n loadChatRetryMapRef.current.clear();\n }, [stopHeartbeat]);\n\n // Connect function\n const connect = useCallback(\n async (userId: string): Promise<void> => {\n if (!mountedRef.current) {\n mountedRef.current = true;\n }\n\n // Guard: Don't connect if orgId is not available\n if (!orgId) {\n const error: WebSocketError = {\n code: \"CONNECTION_FAILED\",\n message: \"Cannot connect: orgId is undefined\",\n retryable: false,\n timestamp: Date.now(),\n };\n logger.error(\"Cannot connect: orgId is undefined\");\n setError(error);\n return Promise.reject(error);\n }\n\n if (wsRef.current?.readyState === WebSocket.OPEN) {\n logger.debug(\"Already connected\");\n return Promise.resolve();\n }\n\n if (\n connectionState === \"connecting\" ||\n connectionState === \"reconnecting\"\n ) {\n logger.debug(\"Connection already in progress\");\n return Promise.resolve();\n }\n\n // Check max retries\n const maxRetries =\n retryConfig.maxRetries ?? DEFAULT_RETRY_CONFIG.maxRetries!;\n if (\n retryCountRef.current >= maxRetries &&\n !intentionalDisconnectRef.current\n ) {\n const error: WebSocketError = {\n code: \"CONNECTION_FAILED\",\n message: `Max retries (${maxRetries}) exceeded`,\n retryable: false,\n timestamp: Date.now(),\n };\n setError(error);\n updateMetrics({ lastError: error });\n return Promise.reject(error);\n }\n\n cleanup();\n setConnectionState(\n retryCountRef.current > 0 ? \"reconnecting\" : \"connecting\"\n );\n intentionalDisconnectRef.current = false;\n\n return new Promise<void>((resolve, reject) => {\n try {\n const wsUrl = `${serverBaseUrl}?orgId=${orgId}&userId=${userId}&clientType=${clientType}&product=${product}`;\n const connectionStartTime = Date.now();\n\n logger.debug(\"Connecting to WebSocket:\", wsUrl);\n console.log(`⏳ Initiating WebSocket connection to ${serverBaseUrl}...`);\n\n const ws = new WebSocket(wsUrl);\n\n ws.onopen = () => {\n if (!mountedRef.current) {\n ws.close(1000, \"Component unmounted\");\n reject(new Error(\"Component unmounted\"));\n return;\n }\n\n const connectionTimeMs = Date.now() - connectionStartTime;\n const connectionTimeSec = (connectionTimeMs / 1000).toFixed(2);\n\n logger.info(\"✅ WebSocket connected\", {\n userId,\n retryCount: retryCountRef.current,\n connectionTime: `${connectionTimeSec}s (${connectionTimeMs}ms)`,\n });\n\n console.log(`🔌 WebSocket connection established in ${connectionTimeSec} seconds`);\n\n setConnectionState(\"connected\");\n setError(undefined);\n const wasReconnecting = retryCountRef.current > 0;\n retryCountRef.current = 0;\n\n // Update metrics\n updateMetrics({\n connectedAt: Date.now(),\n latency: connectionTimeMs,\n reconnectCount: wasReconnecting\n ? metrics.reconnectCount + 1\n : metrics.reconnectCount,\n });\n\n // Process queued messages\n while (\n messageQueueRef.current.length > 0 &&\n ws.readyState === WebSocket.OPEN\n ) {\n const event = messageQueueRef.current.shift();\n if (event) {\n ws.send(JSON.stringify({ ...event, timestamp: Date.now() }));\n updateMetrics({\n messagesSent: metrics.messagesSent + 1,\n messagesQueued: messageQueueRef.current.length,\n });\n }\n }\n\n // Store the userId for reconnection\n currentUserIdRef.current = userId;\n\n // If we have a chat key, resubscribe to the chat\n if (currentChatKeyRef.current) {\n if (!orgId) {\n logger.error(\"Cannot resubscribe to chat: orgId is undefined\");\n } else {\n logger.info(\n \"Resubscribing to chat after reconnection:\",\n currentChatKeyRef.current\n );\n const resubscribeEvent: ChatEvent = {\n type: \"load_chat\",\n orgId,\n chatKey: currentChatKeyRef.current,\n userId,\n timestamp: Date.now(),\n data: {},\n };\n ws.send(JSON.stringify(resubscribeEvent));\n }\n }\n\n // Start heartbeat\n startHeartbeat();\n\n // Emit connected event\n emit(\"connected\", { userId, wasReconnecting });\n\n // Resolve the promise\n resolve();\n };\n\n ws.onmessage = (event) => {\n if (!mountedRef.current) return;\n\n try {\n const data = JSON.parse(event.data);\n\n if (!isChatEvent(data)) {\n logger.warn(\"Received invalid message format:\", data);\n return;\n }\n\n const chatEvent = data as ChatEvent;\n logger.debug(\"Message received:\", chatEvent.type);\n\n // Update metrics\n updateMetrics({\n messagesReceived: metrics.messagesReceived + 1,\n lastMessageAt: Date.now(),\n });\n\n // Handle pong response\n if (chatEvent.type === \"pong\") {\n if (heartbeatTimeoutRef.current) {\n clearTimeout(heartbeatTimeoutRef.current);\n heartbeatTimeoutRef.current = undefined;\n }\n const latency =\n Date.now() - (chatEvent.timestamp || Date.now());\n lastPongRef.current = Date.now();\n updateMetrics({ latency });\n return;\n }\n\n // Handle specific events internally for connection management\n switch (chatEvent.type) {\n case \"new_chat_created\":\n const newChatKey = chatEvent.data?.chatKey as string;\n if (newChatKey) {\n logger.info(\"New chat created with key:\", newChatKey);\n currentChatKeyRef.current = newChatKey;\n\n // Resolve the promise if waiting for chat creation\n if (chatCreationPromiseRef.current) {\n chatCreationPromiseRef.current.resolve(newChatKey);\n chatCreationPromiseRef.current = null;\n }\n\n // Send load_chat to subscribe to the new chat (only if orgId is valid)\n if (!orgId) {\n logger.error(\"Cannot send load_chat: orgId is undefined\");\n return;\n }\n\n const loadChatEvent: ChatEvent = {\n type: \"load_chat\",\n orgId,\n chatKey: newChatKey,\n userId: currentUserIdRef.current || userId,\n timestamp: Date.now(),\n data: {},\n };\n ws.send(JSON.stringify(loadChatEvent));\n }\n break;\n\n case \"load_chat_response\":\n const chat = chatEvent.data?.chat;\n if (chat && chat.key) {\n logger.info(\"Chat loaded with key:\", chat.key);\n currentChatKeyRef.current = chat.key;\n\n // Clear retry state for this chat on success\n const retryState = loadChatRetryMapRef.current.get(chat.key);\n if (retryState) {\n if (retryState.timeoutId) {\n clearTimeout(retryState.timeoutId);\n }\n loadChatRetryMapRef.current.delete(chat.key);\n }\n } else if (!chat) {\n logger.warn(\"Chat load failed, clearing key\");\n currentChatKeyRef.current = undefined;\n }\n break;\n\n case \"chat_ended\":\n logger.info(\"Chat ended, clearing key\");\n currentChatKeyRef.current = undefined;\n break;\n\n case \"error\":\n const errorMessage =\n chatEvent.data?.message || \"Unknown error\";\n logger.error(\"Received error from server:\", errorMessage);\n\n // Check if this is a \"key not found\" error for load_chat\n if (errorMessage.includes(\"nats: key not found\") || errorMessage.includes(\"Failed to load chat\")) {\n const chatKeyFromError = currentChatKeyRef.current;\n if (chatKeyFromError) {\n const maxRetries = 5;\n let retryState = loadChatRetryMapRef.current.get(chatKeyFromError);\n\n if (!retryState) {\n retryState = { retryCount: 0, timeoutId: null };\n loadChatRetryMapRef.current.set(chatKeyFromError, retryState);\n }\n\n if (retryState.retryCount < maxRetries) {\n // Exponential backoff: 200ms, 400ms, 800ms, 1.6s, 3.2s\n const delay = 200 * Math.pow(2, retryState.retryCount);\n retryState.retryCount++;\n\n logger.info(\n `Chat load failed, retrying (${retryState.retryCount}/${maxRetries}) in ${delay}ms...`,\n chatKeyFromError\n );\n\n retryState.timeoutId = setTimeout(() => {\n if (!wsRef.current || !mountedRef.current) return;\n\n // Check if orgId is valid before retrying\n if (!orgId) {\n logger.error(\"Cannot retry load_chat: orgId is undefined\", chatKeyFromError);\n loadChatRetryMapRef.current.delete(chatKeyFromError);\n return;\n }\n\n logger.debug(\"Retrying load_chat:\", chatKeyFromError);\n const retryLoadEvent: ChatEvent = {\n type: \"load_chat\",\n orgId,\n chatKey: chatKeyFromError,\n userId: currentUserIdRef.current || \"\",\n timestamp: Date.now(),\n data: {},\n };\n ws.send(JSON.stringify(retryLoadEvent));\n }, delay);\n } else {\n logger.error(\"Max retries reached for loading chat:\", chatKeyFromError);\n loadChatRetryMapRef.current.delete(chatKeyFromError);\n }\n }\n }\n\n const wsError: WebSocketError = {\n code: \"NETWORK_ERROR\",\n message: errorMessage,\n retryable: true,\n timestamp: Date.now(),\n };\n setError(wsError);\n updateMetrics({ lastError: wsError });\n break;\n }\n\n // Emit event to subscribers\n emit(chatEvent.type || \"message\", chatEvent);\n\n // Call the legacy onMessage handler\n if (onMessageRef.current) {\n onMessageRef.current(chatEvent);\n }\n } catch (error) {\n logger.error(\"Failed to parse WebSocket message:\", error);\n const parseError: WebSocketError = {\n code: \"PARSE_ERROR\",\n message: \"Failed to parse message\",\n retryable: false,\n timestamp: Date.now(),\n };\n setError(parseError);\n updateMetrics({ lastError: parseError });\n }\n };\n\n ws.onclose = (event) => {\n if (!mountedRef.current) return;\n\n logger.info(\"WebSocket closed\", {\n code: event.code,\n reason: event.reason,\n });\n setConnectionState(\"disconnected\");\n wsRef.current = undefined;\n stopHeartbeat();\n\n // Emit disconnected event\n emit(\"disconnected\", { code: event.code, reason: event.reason });\n\n // Handle reconnection\n if (\n event.code !== 1000 &&\n !intentionalDisconnectRef.current &&\n mountedRef.current\n ) {\n const retryInterval = calculateRetryInterval(\n retryCountRef.current\n );\n retryCountRef.current++;\n\n logger.info(\n `Reconnecting in ${retryInterval}ms (attempt ${retryCountRef.current})`\n );\n\n if (reconnectTimeoutRef.current) {\n clearTimeout(reconnectTimeoutRef.current);\n }\n reconnectTimeoutRef.current = setTimeout(() => {\n connect(userId);\n }, retryInterval);\n }\n };\n\n ws.onerror = (error) => {\n logger.error(\"WebSocket error:\", error);\n if (!mountedRef.current) return;\n\n const wsError: WebSocketError = {\n code: \"CONNECTION_FAILED\",\n message: \"WebSocket connection failed\",\n retryable: true,\n timestamp: Date.now(),\n };\n setError(wsError);\n updateMetrics({ lastError: wsError });\n\n // Reject the promise on error\n reject(wsError);\n };\n\n wsRef.current = ws;\n } catch (error) {\n logger.error(\"Failed to create WebSocket:\", error);\n const wsError: WebSocketError = {\n code: \"CONNECTION_FAILED\",\n message:\n error instanceof Error\n ? error.message\n : \"Failed to create connection\",\n retryable: true,\n timestamp: Date.now(),\n };\n setError(wsError);\n updateMetrics({ lastError: wsError });\n reject(wsError);\n }\n });\n },\n [\n serverBaseUrl,\n orgId,\n clientType,\n product,\n connectionState,\n logger,\n retryConfig,\n metrics,\n updateMetrics,\n cleanup,\n calculateRetryInterval,\n startHeartbeat,\n emit,\n ]\n );\n\n // Send message with promise\n const sendMessage = useCallback(\n (\n event: Omit<ChatEvent, \"timestamp\">,\n overrideUserId?: string\n ): Promise<void> => {\n return new Promise((resolve, reject) => {\n if (!mountedRef.current) {\n reject(new Error(\"Component not mounted\"));\n return;\n }\n\n const fullEvent: ChatEvent = {\n ...event,\n timestamp: Date.now(),\n };\n\n const messageId = `${fullEvent.type}_${fullEvent.timestamp}_${Math.random()}`;\n logger.debug(\"Sending message:\", fullEvent.type);\n\n if (!wsRef.current || wsRef.current.readyState !== WebSocket.OPEN) {\n // Queue the message\n if (addToQueue(fullEvent)) {\n logger.debug(\"Message queued, attempting to connect\");\n if (connectionState === \"disconnected\" && overrideUserId) {\n connect(overrideUserId)\n .then(() => resolve())\n .catch(reject);\n } else {\n // Message is queued, will be sent when connected\n resolve();\n }\n } else {\n reject(new Error(\"Message queue full\"));\n }\n return;\n }\n\n try {\n wsRef.current.send(JSON.stringify(fullEvent));\n updateMetrics({ messagesSent: metrics.messagesSent + 1 });\n logger.debug(\"Message sent successfully\");\n resolve();\n } catch (error) {\n logger.error(\"Failed to send message:\", error);\n if (addToQueue(fullEvent)) {\n // Message queued for retry\n resolve();\n } else {\n const sendError: WebSocketError = {\n code: \"SEND_FAILED\",\n message:\n error instanceof Error\n ? error.message\n : \"Failed to send message\",\n retryable: true,\n timestamp: Date.now(),\n };\n setError(sendError);\n updateMetrics({ lastError: sendError });\n reject(sendError);\n }\n }\n });\n },\n [connectionState, connect, addToQueue, logger, metrics, updateMetrics]\n );\n\n // Start new chat with promise\n const startNewChat = useCallback(\n (userId: string, data?: { [key: string]: any }): Promise<string> => {\n return new Promise((resolve, reject) => {\n if (!userId) {\n reject(new Error(\"User ID is required\"));\n return;\n }\n\n logger.info(\"Requesting new chat from server with userId:\", userId);\n setStartTime(new Date());\n\n // Set up promise handlers\n chatCreationPromiseRef.current = { resolve, reject };\n\n // Send request to server to create new chat\n sendMessage(\n {\n type: \"new_chat\",\n orgId,\n chatKey: \"\", // Server will generate\n userId,\n data: data ?? {},\n },\n userId\n ).catch((error) => {\n chatCreationPromiseRef.current = null;\n reject(error);\n });\n\n // Set timeout for chat creation\n setTimeout(() => {\n if (chatCreationPromiseRef.current) {\n chatCreationPromiseRef.current = null;\n reject(new Error(\"Chat creation timed out\"));\n }\n }, 30000); // 30 second timeout\n });\n },\n [sendMessage, orgId, logger]\n );\n\n // Disconnect function\n const disconnect = useCallback(\n (intentional: boolean = true) => {\n logger.info(\"Disconnecting WebSocket\", { intentional });\n intentionalDisconnectRef.current = intentional;\n cleanup();\n setConnectionState(\"disconnected\");\n messageQueueRef.current = [];\n retryCountRef.current = 0;\n mountedRef.current = false;\n currentChatKeyRef.current = undefined;\n currentUserIdRef.current = undefined;\n },\n [cleanup, logger]\n );\n\n // Clear error\n const clearError = useCallback(() => {\n setError(undefined);\n }, []);\n\n // Cleanup on unmount\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n disconnect(true);\n };\n }, []);\n\n return {\n connectionState,\n isConnected,\n sendMessage,\n error,\n connect,\n startNewChat,\n startTime,\n disconnect,\n metrics,\n on,\n off,\n clearError,\n };\n};\n"],"mappings":";;;;AAEA,SAAS,eAAAA,cAAa,YAAAC,iBAAgB;;;ACCtC,SAAS,aAAa,WAAW,QAAQ,gBAAgB;AA0DzD,IAAM,sBAAsB,CAAC,WAA4B;AAAA,EACvD,OAAO,QAAQ,QAAQ,MAAM,MAAM;AAAA,EAAC;AAAA,EACpC,MAAM,QAAQ;AAAA,EACd,MAAM,QAAQ;AAAA,EACd,OAAO,QAAQ;AACjB;AAsCA,IAAM,uBAAoC;AAAA,EACxC,YAAY;AAAA,EACZ,WAAW,CAAC,KAAM,KAAM,GAAI;AAAA,EAC5B,mBAAmB;AAAA,EACnB,gBAAgB;AAClB;AAEA,IAAM,uBAAoC;AAAA,EACxC,SAAS;AAAA,EACT,cAAc;AAChB;AAEA,IAAM,6BAA6B;AACnC,IAAM,4BAA4B;AAGlC,SAAS,YAAY,MAA8B;AACjD,SACE,QACA,OAAO,SAAS,aACf,OAAO,KAAK,SAAS,YAAY,KAAK;AAE3C;AAMO,IAAM,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,SAAS,oBAAoB,KAAK;AAAA,EAClC,oBAAoB;AAAA,EACpB,mBAAmB;AACrB,MAA8D;AAE5D,QAAM,CAAC,iBAAiB,kBAAkB,IACxC,SAA0B,cAAc;AAC1C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAqC,MAAS;AACxE,QAAM,CAAC,WAAW,YAAY,IAAI,SAA2B,MAAS;AACtE,QAAM,CAAC,SAAS,UAAU,IAAI,SAA4B;AAAA,IACxD,SAAS;AAAA,IACT,cAAc;AAAA,IACd,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,EAClB,CAAC;AAGD,QAAM,QAAQ,OAA8B,MAAS;AACrD,QAAM,sBAAsB,OAAmC,MAAS;AACxE,QAAM,gBAAgB,OAAO,CAAC;AAC9B,QAAM,kBAAkB,OAAoB,CAAC,CAAC;AAC9C,QAAM,aAAa,OAAO,KAAK;AAC/B,QAAM,oBAAoB,OAA2B,MAAS;AAC9D,QAAM,mBAAmB,OAA2B,MAAS;AAC7D,QAAM,2BAA2B,OAAO,KAAK;AAC7C,QAAM,mBAAmB;AAAA,IACvB,oBAAI,IAAI;AAAA,EACV;AACA,QAAM,eAAe,OAAO,SAAS;AACrC,QAAM,qBAAqB,OASzB,oBAAI,IAAI,CAAC;AACX,QAAM,uBAAuB,OAAmC,MAAS;AACzE,QAAM,sBAAsB,OAAmC,MAAS;AACxE,QAAM,cAAc,OAAe,KAAK,IAAI,CAAC;AAC7C,QAAM,yBAAyB,OAGrB,IAAI;AAGd,QAAM,sBAAsB,OAGxB,oBAAI,IAAI,CAAC;AAGb,YAAU,MAAM;AACd,iBAAa,UAAU;AAAA,EACzB,GAAG,CAAC,SAAS,CAAC;AAGd,QAAM,cAAc,oBAAoB;AAGxC,QAAM,KAAK,YAAY,CAAC,WAAmB,YAAiC;AAC1E,QAAI,CAAC,iBAAiB,QAAQ,IAAI,SAAS,GAAG;AAC5C,uBAAiB,QAAQ,IAAI,WAAW,oBAAI,IAAI,CAAC;AAAA,IACnD;AACA,qBAAiB,QAAQ,IAAI,SAAS,EAAG,IAAI,OAAO;AAGpD,WAAO,MAAM,IAAI,WAAW,OAAO;AAAA,EACrC,GAAG,CAAC,CAAC;AAEL,QAAM,MAAM,YAAY,CAAC,WAAmB,YAAiC;AAC3E,UAAM,WAAW,iBAAiB,QAAQ,IAAI,SAAS;AACvD,QAAI,UAAU;AACZ,eAAS,OAAO,OAAO;AACvB,UAAI,SAAS,SAAS,GAAG;AACvB,yBAAiB,QAAQ,OAAO,SAAS;AAAA,MAC3C;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAGL,QAAM,OAAO;AAAA,IACX,CAAC,WAAmB,SAAc;AAChC,YAAM,WAAW,iBAAiB,QAAQ,IAAI,SAAS;AACvD,UAAI,UAAU;AACZ,iBAAS,QAAQ,CAAC,YAAY;AAC5B,cAAI;AACF,oBAAQ,IAAI;AAAA,UACd,SAASC,QAAO;AACd,mBAAO,MAAM,8BAA8B,SAAS,KAAKA,MAAK;AAAA,UAChE;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,MAAM;AAAA,EACT;AAGA,QAAM,gBAAgB,YAAY,CAAC,YAAwC;AACzE,eAAW,CAAC,UAAU,EAAE,GAAG,MAAM,GAAG,QAAQ,EAAE;AAAA,EAChD,GAAG,CAAC,CAAC;AAGL,QAAM,aAAa;AAAA,IACjB,CAAC,UAAqB;AACpB,YAAM,mBAAmB,gBAAgB,QAAQ;AACjD,YAAM,UAAU,YAAY,WAAW,qBAAqB;AAE5D,UAAI,oBAAoB,SAAS;AAC/B,YAAI,YAAY,iBAAiB,UAAU;AACzC,iBAAO,KAAK,0CAA0C;AACtD,iBAAO;AAAA,QACT,OAAO;AAEL,gBAAM,UAAU,gBAAgB,QAAQ,MAAM;AAC9C,iBAAO,KAAK,8CAA8C,OAAO;AAAA,QACnE;AAAA,MACF;AAEA,sBAAgB,QAAQ,KAAK,KAAK;AAClC,oBAAc,EAAE,gBAAgB,gBAAgB,QAAQ,OAAO,CAAC;AAChE,aAAO;AAAA,IACT;AAAA,IACA,CAAC,aAAa,QAAQ,aAAa;AAAA,EACrC;AAGA,QAAM,yBAAyB;AAAA,IAC7B,CAAC,eAA+B;AAC9B,YAAM,SAAS,EAAE,GAAG,sBAAsB,GAAG,YAAY;AACzD,YAAM;AAAA,QACJ,YAAY,CAAC;AAAA,QACb,oBAAoB;AAAA,QACpB,iBAAiB;AAAA,MACnB,IAAI;AAEJ,UAAI,aAAa,UAAU,QAAQ;AACjC,eAAO,UAAU,UAAU;AAAA,MAC7B;AAGA,YAAM,eAAe,UAAU,UAAU,SAAS,CAAC,KAAK;AACxD,YAAM,cACJ,eACA,KAAK,IAAI,mBAAmB,aAAa,UAAU,SAAS,CAAC;AAC/D,aAAO,KAAK,IAAI,aAAa,cAAc;AAAA,IAC7C;AAAA,IACA,CAAC,WAAW;AAAA,EACd;AAGA,QAAM,iBAAiB,YAAY,MAAM;AACvC,QAAI,CAAC,qBAAqB,qBAAqB,EAAG;AAElD,UAAM,WAAW,MAAM;AACrB,UAAI,MAAM,SAAS,eAAe,UAAU,MAAM;AAChD,cAAM,WAAW,KAAK,IAAI;AAC1B,cAAM,QAAQ;AAAA,UACZ,KAAK,UAAU,EAAE,MAAM,QAAQ,WAAW,SAAS,CAAC;AAAA,QACtD;AAGA,4BAAoB,UAAU,WAAW,MAAM;AAC7C,iBAAO,KAAK,sCAAsC;AAElD,cAAI,MAAM,SAAS;AACjB,kBAAM,QAAQ,MAAM,KAAM,mBAAmB;AAAA,UAC/C;AAAA,QACF,GAAG,gBAAgB;AAAA,MACrB;AAAA,IACF;AAGA,QAAI,qBAAqB,SAAS;AAChC,oBAAc,qBAAqB,OAAO;AAAA,IAC5C;AAGA,yBAAqB,UAAU,YAAY,UAAU,iBAAiB;AACtE,WAAO,MAAM,mBAAmB;AAAA,EAClC,GAAG,CAAC,mBAAmB,kBAAkB,MAAM,CAAC;AAEhD,QAAM,gBAAgB,YAAY,MAAM;AACtC,QAAI,qBAAqB,SAAS;AAChC,oBAAc,qBAAqB,OAAO;AAC1C,2BAAqB,UAAU;AAAA,IACjC;AACA,QAAI,oBAAoB,SAAS;AAC/B,mBAAa,oBAAoB,OAAO;AACxC,0BAAoB,UAAU;AAAA,IAChC;AACA,WAAO,MAAM,mBAAmB;AAAA,EAClC,GAAG,CAAC,MAAM,CAAC;AAGX,QAAM,UAAU,YAAY,MAAM;AAChC,QAAI,MAAM,WAAW,MAAM,QAAQ,eAAe,UAAU,MAAM;AAChE,YAAM,QAAQ,MAAM,KAAM,SAAS;AAAA,IACrC;AACA,UAAM,UAAU;AAChB,QAAI,oBAAoB,SAAS;AAC/B,mBAAa,oBAAoB,OAAO;AACxC,0BAAoB,UAAU;AAAA,IAChC;AACA,kBAAc;AAGd,uBAAmB,QAAQ,QAAQ,CAAC,EAAE,QAAQ,QAAQ,MAAM;AAC1D,mBAAa,OAAO;AACpB,aAAO,IAAI,MAAM,mBAAmB,CAAC;AAAA,IACvC,CAAC;AACD,uBAAmB,QAAQ,MAAM;AAGjC,wBAAoB,QAAQ,QAAQ,CAAC,eAAe;AAClD,UAAI,WAAW,WAAW;AACxB,qBAAa,WAAW,SAAS;AAAA,MACnC;AAAA,IACF,CAAC;AACD,wBAAoB,QAAQ,MAAM;AAAA,EACpC,GAAG,CAAC,aAAa,CAAC;AAGlB,QAAM,UAAU;AAAA,IACd,OAAO,WAAkC;AACvC,UAAI,CAAC,WAAW,SAAS;AACvB,mBAAW,UAAU;AAAA,MACvB;AAGA,UAAI,CAAC,OAAO;AACV,cAAMA,SAAwB;AAAA,UAC5B,MAAM;AAAA,UACN,SAAS;AAAA,UACT,WAAW;AAAA,UACX,WAAW,KAAK,IAAI;AAAA,QACtB;AACA,eAAO,MAAM,oCAAoC;AACjD,iBAASA,MAAK;AACd,eAAO,QAAQ,OAAOA,MAAK;AAAA,MAC7B;AAEA,UAAI,MAAM,SAAS,eAAe,UAAU,MAAM;AAChD,eAAO,MAAM,mBAAmB;AAChC,eAAO,QAAQ,QAAQ;AAAA,MACzB;AAEA,UACE,oBAAoB,gBACpB,oBAAoB,gBACpB;AACA,eAAO,MAAM,gCAAgC;AAC7C,eAAO,QAAQ,QAAQ;AAAA,MACzB;AAGA,YAAM,aACJ,YAAY,cAAc,qBAAqB;AACjD,UACE,cAAc,WAAW,cACzB,CAAC,yBAAyB,SAC1B;AACA,cAAMA,SAAwB;AAAA,UAC5B,MAAM;AAAA,UACN,SAAS,gBAAgB,UAAU;AAAA,UACnC,WAAW;AAAA,UACX,WAAW,KAAK,IAAI;AAAA,QACtB;AACA,iBAASA,MAAK;AACd,sBAAc,EAAE,WAAWA,OAAM,CAAC;AAClC,eAAO,QAAQ,OAAOA,MAAK;AAAA,MAC7B;AAEA,cAAQ;AACR;AAAA,QACE,cAAc,UAAU,IAAI,iBAAiB;AAAA,MAC/C;AACA,+BAAyB,UAAU;AAEnC,aAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC5C,YAAI;AACF,gBAAM,QAAQ,GAAG,aAAa,UAAU,KAAK,WAAW,MAAM,eAAe,UAAU,YAAY,OAAO;AAC1G,gBAAM,sBAAsB,KAAK,IAAI;AAErC,iBAAO,MAAM,4BAA4B,KAAK;AAC9C,kBAAQ,IAAI,6CAAwC,aAAa,KAAK;AAEtE,gBAAM,KAAK,IAAI,UAAU,KAAK;AAE9B,aAAG,SAAS,MAAM;AAChB,gBAAI,CAAC,WAAW,SAAS;AACvB,iBAAG,MAAM,KAAM,qBAAqB;AACpC,qBAAO,IAAI,MAAM,qBAAqB,CAAC;AACvC;AAAA,YACF;AAEA,kBAAM,mBAAmB,KAAK,IAAI,IAAI;AACtC,kBAAM,qBAAqB,mBAAmB,KAAM,QAAQ,CAAC;AAE7D,mBAAO,KAAK,8BAAyB;AAAA,cACnC;AAAA,cACA,YAAY,cAAc;AAAA,cAC1B,gBAAgB,GAAG,iBAAiB,MAAM,gBAAgB;AAAA,YAC5D,CAAC;AAED,oBAAQ,IAAI,iDAA0C,iBAAiB,UAAU;AAEjF,+BAAmB,WAAW;AAC9B,qBAAS,MAAS;AAClB,kBAAM,kBAAkB,cAAc,UAAU;AAChD,0BAAc,UAAU;AAGxB,0BAAc;AAAA,cACZ,aAAa,KAAK,IAAI;AAAA,cACtB,SAAS;AAAA,cACT,gBAAgB,kBACZ,QAAQ,iBAAiB,IACzB,QAAQ;AAAA,YACd,CAAC;AAGD,mBACE,gBAAgB,QAAQ,SAAS,KACjC,GAAG,eAAe,UAAU,MAC5B;AACA,oBAAM,QAAQ,gBAAgB,QAAQ,MAAM;AAC5C,kBAAI,OAAO;AACT,mBAAG,KAAK,KAAK,UAAU,EAAE,GAAG,OAAO,WAAW,KAAK,IAAI,EAAE,CAAC,CAAC;AAC3D,8BAAc;AAAA,kBACZ,cAAc,QAAQ,eAAe;AAAA,kBACrC,gBAAgB,gBAAgB,QAAQ;AAAA,gBAC1C,CAAC;AAAA,cACH;AAAA,YACF;AAGA,6BAAiB,UAAU;AAG3B,gBAAI,kBAAkB,SAAS;AAC7B,kBAAI,CAAC,OAAO;AACV,uBAAO,MAAM,gDAAgD;AAAA,cAC/D,OAAO;AACL,uBAAO;AAAA,kBACL;AAAA,kBACA,kBAAkB;AAAA,gBACpB;AACA,sBAAM,mBAA8B;AAAA,kBAClC,MAAM;AAAA,kBACN;AAAA,kBACA,SAAS,kBAAkB;AAAA,kBAC3B;AAAA,kBACA,WAAW,KAAK,IAAI;AAAA,kBACpB,MAAM,CAAC;AAAA,gBACT;AACA,mBAAG,KAAK,KAAK,UAAU,gBAAgB,CAAC;AAAA,cAC1C;AAAA,YACF;AAGA,2BAAe;AAGf,iBAAK,aAAa,EAAE,QAAQ,gBAAgB,CAAC;AAG7C,oBAAQ;AAAA,UACV;AAEA,aAAG,YAAY,CAAC,UAAU;AACxB,gBAAI,CAAC,WAAW,QAAS;AAEzB,gBAAI;AACF,oBAAM,OAAO,KAAK,MAAM,MAAM,IAAI;AAElC,kBAAI,CAAC,YAAY,IAAI,GAAG;AACtB,uBAAO,KAAK,oCAAoC,IAAI;AACpD;AAAA,cACF;AAEA,oBAAM,YAAY;AAClB,qBAAO,MAAM,qBAAqB,UAAU,IAAI;AAGhD,4BAAc;AAAA,gBACZ,kBAAkB,QAAQ,mBAAmB;AAAA,gBAC7C,eAAe,KAAK,IAAI;AAAA,cAC1B,CAAC;AAGD,kBAAI,UAAU,SAAS,QAAQ;AAC7B,oBAAI,oBAAoB,SAAS;AAC/B,+BAAa,oBAAoB,OAAO;AACxC,sCAAoB,UAAU;AAAA,gBAChC;AACA,sBAAM,UACJ,KAAK,IAAI,KAAK,UAAU,aAAa,KAAK,IAAI;AAChD,4BAAY,UAAU,KAAK,IAAI;AAC/B,8BAAc,EAAE,QAAQ,CAAC;AACzB;AAAA,cACF;AAGA,sBAAQ,UAAU,MAAM;AAAA,gBACtB,KAAK;AACH,wBAAM,aAAa,UAAU,MAAM;AACnC,sBAAI,YAAY;AACd,2BAAO,KAAK,8BAA8B,UAAU;AACpD,sCAAkB,UAAU;AAG5B,wBAAI,uBAAuB,SAAS;AAClC,6CAAuB,QAAQ,QAAQ,UAAU;AACjD,6CAAuB,UAAU;AAAA,oBACnC;AAGA,wBAAI,CAAC,OAAO;AACV,6BAAO,MAAM,2CAA2C;AACxD;AAAA,oBACF;AAEA,0BAAM,gBAA2B;AAAA,sBAC/B,MAAM;AAAA,sBACN;AAAA,sBACA,SAAS;AAAA,sBACT,QAAQ,iBAAiB,WAAW;AAAA,sBACpC,WAAW,KAAK,IAAI;AAAA,sBACpB,MAAM,CAAC;AAAA,oBACT;AACA,uBAAG,KAAK,KAAK,UAAU,aAAa,CAAC;AAAA,kBACvC;AACA;AAAA,gBAEF,KAAK;AACH,wBAAM,OAAO,UAAU,MAAM;AAC7B,sBAAI,QAAQ,KAAK,KAAK;AACpB,2BAAO,KAAK,yBAAyB,KAAK,GAAG;AAC7C,sCAAkB,UAAU,KAAK;AAGjC,0BAAM,aAAa,oBAAoB,QAAQ,IAAI,KAAK,GAAG;AAC3D,wBAAI,YAAY;AACd,0BAAI,WAAW,WAAW;AACxB,qCAAa,WAAW,SAAS;AAAA,sBACnC;AACA,0CAAoB,QAAQ,OAAO,KAAK,GAAG;AAAA,oBAC7C;AAAA,kBACF,WAAW,CAAC,MAAM;AAChB,2BAAO,KAAK,gCAAgC;AAC5C,sCAAkB,UAAU;AAAA,kBAC9B;AACA;AAAA,gBAEF,KAAK;AACH,yBAAO,KAAK,0BAA0B;AACtC,oCAAkB,UAAU;AAC5B;AAAA,gBAEF,KAAK;AACH,wBAAM,eACJ,UAAU,MAAM,WAAW;AAC7B,yBAAO,MAAM,+BAA+B,YAAY;AAGxD,sBAAI,aAAa,SAAS,qBAAqB,KAAK,aAAa,SAAS,qBAAqB,GAAG;AAChG,0BAAM,mBAAmB,kBAAkB;AAC3C,wBAAI,kBAAkB;AACpB,4BAAMC,cAAa;AACnB,0BAAI,aAAa,oBAAoB,QAAQ,IAAI,gBAAgB;AAEjE,0BAAI,CAAC,YAAY;AACf,qCAAa,EAAE,YAAY,GAAG,WAAW,KAAK;AAC9C,4CAAoB,QAAQ,IAAI,kBAAkB,UAAU;AAAA,sBAC9D;AAEA,0BAAI,WAAW,aAAaA,aAAY;AAEtC,8BAAM,QAAQ,MAAM,KAAK,IAAI,GAAG,WAAW,UAAU;AACrD,mCAAW;AAEX,+BAAO;AAAA,0BACL,+BAA+B,WAAW,UAAU,IAAIA,WAAU,QAAQ,KAAK;AAAA,0BAC/E;AAAA,wBACF;AAEA,mCAAW,YAAY,WAAW,MAAM;AACtC,8BAAI,CAAC,MAAM,WAAW,CAAC,WAAW,QAAS;AAG3C,8BAAI,CAAC,OAAO;AACV,mCAAO,MAAM,8CAA8C,gBAAgB;AAC3E,gDAAoB,QAAQ,OAAO,gBAAgB;AACnD;AAAA,0BACF;AAEA,iCAAO,MAAM,uBAAuB,gBAAgB;AACpD,gCAAM,iBAA4B;AAAA,4BAChC,MAAM;AAAA,4BACN;AAAA,4BACA,SAAS;AAAA,4BACT,QAAQ,iBAAiB,WAAW;AAAA,4BACpC,WAAW,KAAK,IAAI;AAAA,4BACpB,MAAM,CAAC;AAAA,0BACT;AACA,6BAAG,KAAK,KAAK,UAAU,cAAc,CAAC;AAAA,wBACxC,GAAG,KAAK;AAAA,sBACV,OAAO;AACL,+BAAO,MAAM,yCAAyC,gBAAgB;AACtE,4CAAoB,QAAQ,OAAO,gBAAgB;AAAA,sBACrD;AAAA,oBACF;AAAA,kBACF;AAEA,wBAAM,UAA0B;AAAA,oBAC9B,MAAM;AAAA,oBACN,SAAS;AAAA,oBACT,WAAW;AAAA,oBACX,WAAW,KAAK,IAAI;AAAA,kBACtB;AACA,2BAAS,OAAO;AAChB,gCAAc,EAAE,WAAW,QAAQ,CAAC;AACpC;AAAA,cACJ;AAGA,mBAAK,UAAU,QAAQ,WAAW,SAAS;AAG3C,kBAAI,aAAa,SAAS;AACxB,6BAAa,QAAQ,SAAS;AAAA,cAChC;AAAA,YACF,SAASD,QAAO;AACd,qBAAO,MAAM,sCAAsCA,MAAK;AACxD,oBAAM,aAA6B;AAAA,gBACjC,MAAM;AAAA,gBACN,SAAS;AAAA,gBACT,WAAW;AAAA,gBACX,WAAW,KAAK,IAAI;AAAA,cACtB;AACA,uBAAS,UAAU;AACnB,4BAAc,EAAE,WAAW,WAAW,CAAC;AAAA,YACzC;AAAA,UACF;AAEA,aAAG,UAAU,CAAC,UAAU;AACtB,gBAAI,CAAC,WAAW,QAAS;AAEzB,mBAAO,KAAK,oBAAoB;AAAA,cAC9B,MAAM,MAAM;AAAA,cACZ,QAAQ,MAAM;AAAA,YAChB,CAAC;AACD,+BAAmB,cAAc;AACjC,kBAAM,UAAU;AAChB,0BAAc;AAGd,iBAAK,gBAAgB,EAAE,MAAM,MAAM,MAAM,QAAQ,MAAM,OAAO,CAAC;AAG/D,gBACE,MAAM,SAAS,OACf,CAAC,yBAAyB,WAC1B,WAAW,SACX;AACA,oBAAM,gBAAgB;AAAA,gBACpB,cAAc;AAAA,cAChB;AACA,4BAAc;AAEd,qBAAO;AAAA,gBACL,mBAAmB,aAAa,eAAe,cAAc,OAAO;AAAA,cACtE;AAEA,kBAAI,oBAAoB,SAAS;AAC/B,6BAAa,oBAAoB,OAAO;AAAA,cAC1C;AACA,kCAAoB,UAAU,WAAW,MAAM;AAC7C,wBAAQ,MAAM;AAAA,cAChB,GAAG,aAAa;AAAA,YAClB;AAAA,UACF;AAEA,aAAG,UAAU,CAACA,WAAU;AACtB,mBAAO,MAAM,oBAAoBA,MAAK;AACtC,gBAAI,CAAC,WAAW,QAAS;AAEzB,kBAAM,UAA0B;AAAA,cAC9B,MAAM;AAAA,cACN,SAAS;AAAA,cACT,WAAW;AAAA,cACX,WAAW,KAAK,IAAI;AAAA,YACtB;AACA,qBAAS,OAAO;AAChB,0BAAc,EAAE,WAAW,QAAQ,CAAC;AAGpC,mBAAO,OAAO;AAAA,UAChB;AAEA,gBAAM,UAAU;AAAA,QAClB,SAASA,QAAO;AACd,iBAAO,MAAM,+BAA+BA,MAAK;AACjD,gBAAM,UAA0B;AAAA,YAC9B,MAAM;AAAA,YACN,SACEA,kBAAiB,QACbA,OAAM,UACN;AAAA,YACN,WAAW;AAAA,YACX,WAAW,KAAK,IAAI;AAAA,UACtB;AACA,mBAAS,OAAO;AAChB,wBAAc,EAAE,WAAW,QAAQ,CAAC;AACpC,iBAAO,OAAO;AAAA,QAChB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAGA,QAAM,cAAc;AAAA,IAClB,CACE,OACA,mBACkB;AAClB,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,YAAI,CAAC,WAAW,SAAS;AACvB,iBAAO,IAAI,MAAM,uBAAuB,CAAC;AACzC;AAAA,QACF;AAEA,cAAM,YAAuB;AAAA,UAC3B,GAAG;AAAA,UACH,WAAW,KAAK,IAAI;AAAA,QACtB;AAEA,cAAM,YAAY,GAAG,UAAU,IAAI,IAAI,UAAU,SAAS,IAAI,KAAK,OAAO,CAAC;AAC3E,eAAO,MAAM,oBAAoB,UAAU,IAAI;AAE/C,YAAI,CAAC,MAAM,WAAW,MAAM,QAAQ,eAAe,UAAU,MAAM;AAEjE,cAAI,WAAW,SAAS,GAAG;AACzB,mBAAO,MAAM,uCAAuC;AACpD,gBAAI,oBAAoB,kBAAkB,gBAAgB;AACxD,sBAAQ,cAAc,EACnB,KAAK,MAAM,QAAQ,CAAC,EACpB,MAAM,MAAM;AAAA,YACjB,OAAO;AAEL,sBAAQ;AAAA,YACV;AAAA,UACF,OAAO;AACL,mBAAO,IAAI,MAAM,oBAAoB,CAAC;AAAA,UACxC;AACA;AAAA,QACF;AAEA,YAAI;AACF,gBAAM,QAAQ,KAAK,KAAK,UAAU,SAAS,CAAC;AAC5C,wBAAc,EAAE,cAAc,QAAQ,eAAe,EAAE,CAAC;AACxD,iBAAO,MAAM,2BAA2B;AACxC,kBAAQ;AAAA,QACV,SAASA,QAAO;AACd,iBAAO,MAAM,2BAA2BA,MAAK;AAC7C,cAAI,WAAW,SAAS,GAAG;AAEzB,oBAAQ;AAAA,UACV,OAAO;AACL,kBAAM,YAA4B;AAAA,cAChC,MAAM;AAAA,cACN,SACEA,kBAAiB,QACbA,OAAM,UACN;AAAA,cACN,WAAW;AAAA,cACX,WAAW,KAAK,IAAI;AAAA,YACtB;AACA,qBAAS,SAAS;AAClB,0BAAc,EAAE,WAAW,UAAU,CAAC;AACtC,mBAAO,SAAS;AAAA,UAClB;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,CAAC,iBAAiB,SAAS,YAAY,QAAQ,SAAS,aAAa;AAAA,EACvE;AAGA,QAAM,eAAe;AAAA,IACnB,CAAC,QAAgB,SAAmD;AAClE,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,YAAI,CAAC,QAAQ;AACX,iBAAO,IAAI,MAAM,qBAAqB,CAAC;AACvC;AAAA,QACF;AAEA,eAAO,KAAK,gDAAgD,MAAM;AAClE,qBAAa,oBAAI,KAAK,CAAC;AAGvB,+BAAuB,UAAU,EAAE,SAAS,OAAO;AAGnD;AAAA,UACE;AAAA,YACE,MAAM;AAAA,YACN;AAAA,YACA,SAAS;AAAA;AAAA,YACT;AAAA,YACA,MAAM,QAAQ,CAAC;AAAA,UACjB;AAAA,UACA;AAAA,QACF,EAAE,MAAM,CAACA,WAAU;AACjB,iCAAuB,UAAU;AACjC,iBAAOA,MAAK;AAAA,QACd,CAAC;AAGD,mBAAW,MAAM;AACf,cAAI,uBAAuB,SAAS;AAClC,mCAAuB,UAAU;AACjC,mBAAO,IAAI,MAAM,yBAAyB,CAAC;AAAA,UAC7C;AAAA,QACF,GAAG,GAAK;AAAA,MACV,CAAC;AAAA,IACH;AAAA,IACA,CAAC,aAAa,OAAO,MAAM;AAAA,EAC7B;AAGA,QAAM,aAAa;AAAA,IACjB,CAAC,cAAuB,SAAS;AAC/B,aAAO,KAAK,2BAA2B,EAAE,YAAY,CAAC;AACtD,+BAAyB,UAAU;AACnC,cAAQ;AACR,yBAAmB,cAAc;AACjC,sBAAgB,UAAU,CAAC;AAC3B,oBAAc,UAAU;AACxB,iBAAW,UAAU;AACrB,wBAAkB,UAAU;AAC5B,uBAAiB,UAAU;AAAA,IAC7B;AAAA,IACA,CAAC,SAAS,MAAM;AAAA,EAClB;AAGA,QAAM,aAAa,YAAY,MAAM;AACnC,aAAS,MAAS;AAAA,EACpB,GAAG,CAAC,CAAC;AAGL,YAAU,MAAM;AACd,eAAW,UAAU;AACrB,WAAO,MAAM;AACX,iBAAW,UAAU;AACrB,iBAAW,IAAI;AAAA,IACjB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;ADz4BO,IAAM,2BAA2B,CAAC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAsE;AACpE,QAAM,CAAC,aAAa,cAAc,IAAIE,UAA2B,MAAS;AAE1E,QAAM,gBAAgBC,aAAY,CAAC,cAAyB;AAC1D,YAAQ,IAAI,mBAAmB,UAAU,IAAI;AAE7C,YAAQ,UAAU,MAAM;AAAA,MACtB,KAAK;AACH,YAAI,CAAC,UAAU,QAAS;AAExB,gBAAQ;AAAA,UACN;AAAA,UACA,UAAU,QAAQ;AAAA,UAClB;AAAA,UACA,UAAU,QAAQ;AAAA,QACpB;AAMA,uBAAe,CAAC,SAAS;AACvB,cAAI,CAAC,KAAM,QAAO;AAClB,iBAAO;AAAA,YACL,GAAG;AAAA,YACH,UAAU,CAAC,GAAG,KAAK,UAAU,UAAU,OAAQ;AAAA,UACjD;AAAA,QACF,CAAC;AACD;AAAA,MAEF,KAAK;AACH,cAAM,OAAO,UAAU,MAAM,MAAM;AACnC,YAAI,MAAM;AACR,yBAAe,IAAI;AAAA,QACrB;AACA;AAAA,MAEF,KAAK;AACH,cAAM,UAAU,UAAU,MAAM;AAChC,YAAI,CAAC,QAAS;AACd,uBAAe,OAAO;AACtB;AAAA,MAEF;AAEE;AAAA,IACJ;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,OAAO,qBAAqB;AAAA,IAChC;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,WAAW;AAAA,IACX;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,OAAO,aAAa;AAAA,IACpB,UAAU,aAAa,YAAY,CAAC;AAAA,IACpC,OAAO,aAAa,SAAS,CAAC;AAAA,IAC9B,WAAW,aAAa,aAAa;AAAA,IACrC,mBAAmB,aAAa,qBAAqB;AAAA,IACrD,WAAW,aAAa,aAAa;AAAA,IACrC,mBAAmB,aAAa,qBAAqB;AAAA,IACrD,UAAU,aAAa,YAAY,CAAC;AAAA,IACpC,QAAQ,aAAa;AAAA,EACvB;AACF;","names":["useCallback","useState","error","maxRetries","useState","useCallback"]}
package/dist/index.d.mts CHANGED
@@ -1,12 +1,13 @@
1
1
  import React$1 from 'react';
2
- import { C as Chat, a as ChatMessage } from './use-websocket-chat-base-CZDONnTz.mjs';
3
- export { bP as Action, d1 as AgentQueue, P as AgentSession, J as AgentStatus, M as AgentStatusAway, N as AgentStatusBusy, O as AgentStatusOffline, K as AgentStatusOnline, I as AgentStatusTS, ci as AssignChatToAgentRequest, cj as AssignChatToAgentResponse, dn as AssignChatToAgentSubject, bO as Attachment, bu as AttachmentFile, bv as AttachmentType, bG as AttachmentTypeActions, bE as AttachmentTypeArticles, bz as AttachmentTypeAudio, bH as AttachmentTypeBullets, bJ as AttachmentTypeData, bw as AttachmentTypeDocument, bx as AttachmentTypeDocumentAnalysis, bL as AttachmentTypeDocumentSources, by as AttachmentTypeImage, bK as AttachmentTypeKGNodes, bB as AttachmentTypeLocation, bF as AttachmentTypeRecords, bC as AttachmentTypeReferences, bI as AttachmentTypeSticker, bD as AttachmentTypeSubsections, bM as AttachmentTypeTS, bA as AttachmentTypeVideo, c8 as ChatArchivalRequest, c9 as ChatArchivalResponse, di as ChatArchiveSubjectPattern, s as ChatContext, bQ as ChatEvent, S as ChatEventType, aV as ChatEventTypeAgentActivityPing, aW as ChatEventTypeAgentChatAssigned, aX as ChatEventTypeAgentChatCompleted, b4 as ChatEventTypeAgentContextUpdate, b6 as ChatEventTypeAgentExecutionEnded, b5 as ChatEventTypeAgentExecutionStarted, aT as ChatEventTypeAgentSessionEnd, aS as ChatEventTypeAgentSessionStart, aU as ChatEventTypeAgentStatusChange, ak as ChatEventTypeBlockUser, a_ as ChatEventTypeCSATRequest, b0 as ChatEventTypeCSATResponse, a$ as ChatEventTypeCSATSurvey, aR as ChatEventTypeChatEnded, ad as ChatEventTypeChatRemoved, ac as ChatEventTypeChatUpdated, ai as ChatEventTypeClientAction, aj as ChatEventTypeClientActionCallback, al as ChatEventTypeCreateRoom, ap as ChatEventTypeDeleteRoom, _ as ChatEventTypeDelivered, aQ as ChatEventTypeEndChat, a0 as ChatEventTypeError, aY as ChatEventTypeGetAgents, aZ as ChatEventTypeGetAgentsResponse, aO as ChatEventTypeGetOnlineUsers, a7 as ChatEventTypeHumanAgentJoined, a8 as ChatEventTypeHumanAgentLeft, at as ChatEventTypeInviteUser, an as ChatEventTypeJoinRoom, ao as ChatEventTypeLeaveRoom, ab as ChatEventTypeListChats, ay as ChatEventTypeListRooms, b7 as ChatEventTypeLoadAgentContext, b8 as ChatEventTypeLoadAgentContextResponse, a2 as ChatEventTypeLoadChat, a3 as ChatEventTypeLoadChatResponse, aE as ChatEventTypeMentionUser, a4 as ChatEventTypeMessage, aB as ChatEventTypeMessageDeleted, aG as ChatEventTypeMessageDeletedResponse, aA as ChatEventTypeMessageEdited, aF as ChatEventTypeMessageEditedResponse, aC as ChatEventTypeMessageReaction, aH as ChatEventTypeMessageReactionResponse, aD as ChatEventTypeMessageReply, a6 as ChatEventTypeMessageStatusUpdate, bg as ChatEventTypeNewChat, bh as ChatEventTypeNewChatCreated, a9 as ChatEventTypeObserverJoined, aa as ChatEventTypeObserverLeft, aP as ChatEventTypeOnlineUsersResponse, bi as ChatEventTypePing, ba as ChatEventTypePlanApproved, bc as ChatEventTypePlanCompleted, b9 as ChatEventTypePlanPendingApproval, bb as ChatEventTypePlanRejected, bj as ChatEventTypePong, Z as ChatEventTypeRead, $ as ChatEventTypeReconnected, am as ChatEventTypeRoomCreated, aq as ChatEventTypeRoomDeleted, as as ChatEventTypeRoomUpdated, av as ChatEventTypeRoomUserJoined, aw as ChatEventTypeRoomUserLeft, az as ChatEventTypeRoomsResponse, be as ChatEventTypeStepCompleted, bf as ChatEventTypeStepFailed, bd as ChatEventTypeStepStarted, Y as ChatEventTypeStoppedTyping, b3 as ChatEventTypeSummaryUpdate, ae as ChatEventTypeSyncMetadata, af as ChatEventTypeSyncMetadataResponse, ag as ChatEventTypeSyncUserSession, ah as ChatEventTypeSyncUserSessionResponse, bk as ChatEventTypeTS, X as ChatEventTypeTyping, ar as ChatEventTypeUpdateRoom, aL as ChatEventTypeUserActivity, aN as ChatEventTypeUserActivityUpdate, au as ChatEventTypeUserInvited, T as ChatEventTypeUserJoined, V as ChatEventTypeUserLeft, aM as ChatEventTypeUserPresenceChanged, aJ as ChatEventTypeUserPresenceEnd, aI as ChatEventTypeUserPresenceStart, ax as ChatEventTypeUserRemoved, aK as ChatEventTypeUserStatusChange, b2 as ChatEventTypeUserSuggestedActionSelected, b1 as ChatEventTypeUserSuggestedActions, a1 as ChatEventTypeWaiting, a5 as ChatEventTypeWaitingForAgent, t as ChatFlow, bR as ChatGrading, c7 as ChatProductReference, db as ChatQueueInfo, bY as ChatRateLimits, x as ChatRole, z as ChatRoleAI, E as ChatRoleDataQuery, A as ChatRoleEvent, B as ChatRoleHumanAgent, D as ChatRoleObserver, F as ChatRoleSystem, w as ChatRoleTS, G as ChatRoleTool, y as ChatRoleUser, bS as ChatSession, bX as ChatSessionPreferences, bT as ChatSessionStatus, bU as ChatSessionStatusActive, bW as ChatSessionStatusExpired, bV as ChatSessionStatusIdle, f as ChatStatus, i as ChatStatusAbandoned, g as ChatStatusActive, k as ChatStatusArchived, j as ChatStatusClosed, h as ChatStatusDisconnected, e as ChatStatusTS, c4 as ChatSummary, v as ChatTool, m as ChatType, n as ChatTypeCustomerSupport, q as ChatTypeDirect, r as ChatTypeGroup, p as ChatTypePrivateRoom, o as ChatTypePublicRoom, l as ChatTypeTS, H as ChatUser, ck as CompleteChatByAgentRequest, cl as CompleteChatByAgentResponse, dp as CompleteChatByAgentSubject, c as ConnectionMetrics, b as ConnectionState, d3 as CreateAgentQueueRequest, d4 as CreateAgentQueueResponse, dt as CreateAgentQueueSubject, d9 as DeleteAgentQueueRequest, da as DeleteAgentQueueResponse, dw as DeleteAgentQueueSubject, bN as DocumentSource, bs as EmojiReaction, cc as EndAgentSessionRequest, cd as EndAgentSessionResponse, dk as EndAgentSessionSubject, cJ as GetActiveChatCountRequest, cK as GetActiveChatCountResponse, dd as GetActiveChatCountSubject, cL as GetActiveChatsRequest, cM as GetActiveChatsResponse, df as GetActiveChatsSubject, d2 as GetAgentQueuesFilter, d5 as GetAgentQueuesRequest, d6 as GetAgentQueuesResponse, du as GetAgentQueuesSubject, cm as GetAgentSessionRequest, cn as GetAgentSessionResponse, dq as GetAgentSessionSubject, c5 as GetChatRequest, c6 as GetChatResponse, dh as GetChatSubject, cT as GetDailyChatCountRequest, cU as GetDailyChatCountResponse, dz as GetDailyChatCountSubject, cq as GetOnlineAgentCountRequest, cr as GetOnlineAgentCountResponse, ds as GetOnlineAgentCountSubject, co as GetOnlineAgentsRequest, cp as GetOnlineAgentsResponse, dr as GetOnlineAgentsSubject, cF as GetOnlineUsersRequest, cG as GetOnlineUsersResponse, dB as GetOnlineUsersSubject, cu as GetQueueChatCountRequest, cv as GetQueueChatCountResponse, dy as GetQueueChatCountSubject, cs as GetQueueChatsRequest, ct as GetQueueChatsResponse, dx as GetQueueChatsSubject, cR as GetUserChatsRequest, cS as GetUserChatsResponse, dg as GetUserChatsSubject, cN as GetWaitingForAgentChatCountRequest, cO as GetWaitingForAgentChatCountResponse, dc as GetWaitingForAgentChatCountSubject, cP as GetWaitingForAgentChatsRequest, cQ as GetWaitingForAgentChatsResponse, de as GetWaitingForAgentChatsSubject, bZ as LLMConfig, c0 as LLMFunction, b_ as LLMMemoryConfig, c2 as LLMResponse, b$ as LLMTool, c3 as LLMUsage, bt as Location, L as Logger, bl as MessageStatus, bo as MessageStatusDelivered, bq as MessageStatusFailed, bp as MessageStatusRead, bm as MessageStatusSending, bn as MessageStatusSent, br as MessageStatusTS, Q as QueueConfig, cY as QueueType, d0 as QueueTypeComplexity, c$ as QueueTypeDepartment, cX as QueueTypeOptionTS, c_ as QueueTypePriority, cZ as QueueTypeSkill, cW as QueueTypeTS, cV as QueueTypes, R as RetryConfig, dD as SetupOrgSubject, ca as StartAgentSessionRequest, cb as StartAgentSessionResponse, dj as StartAgentSessionSubject, c1 as ToolCall, cH as TriggerAnalyticsScanRequest, cI as TriggerAnalyticsScanResponse, dC as TriggerAnalyticsScanSubject, cg as UpdateAgentLastActivityRequest, ch as UpdateAgentLastActivityResponse, dm as UpdateAgentLastActivitySubject, d7 as UpdateAgentQueueRequest, d8 as UpdateAgentQueueResponse, dv as UpdateAgentQueueSubject, ce as UpdateAgentStatusRequest, cf as UpdateAgentStatusResponse, dl as UpdateAgentStatusSubject, cD as UpdateUserStatusRequest, cE as UpdateUserStatusResponse, dA as UpdateUserStatusSubject, U as UseWebSocketChatBaseConfig, d as UseWebSocketChatBaseReturn, cC as UserSession, cx as UserStatus, cz as UserStatusAway, cA as UserStatusBusy, cB as UserStatusOffline, cy as UserStatusOnline, cw as UserStatusTS, W as WebSocketError, u as useWebSocketChatBase } from './use-websocket-chat-base-CZDONnTz.mjs';
2
+ import { Chat, ChatMessage } from './models/index.mjs';
3
+ export { Action, AgentQueue, AgentSession, AgentStatus, AgentStatusAway, AgentStatusBusy, AgentStatusOffline, AgentStatusOnline, AgentStatusTS, AssignChatToAgentRequest, AssignChatToAgentResponse, AssignChatToAgentSubject, Attachment, AttachmentFile, AttachmentType, AttachmentTypeActions, AttachmentTypeArticles, AttachmentTypeAudio, AttachmentTypeBullets, AttachmentTypeData, AttachmentTypeDocument, AttachmentTypeDocumentAnalysis, AttachmentTypeDocumentSources, AttachmentTypeImage, AttachmentTypeKGNodes, AttachmentTypeLocation, AttachmentTypeRecords, AttachmentTypeReferences, AttachmentTypeSticker, AttachmentTypeSubsections, AttachmentTypeTS, AttachmentTypeVideo, ChatArchivalRequest, ChatArchivalResponse, ChatArchiveSubjectPattern, ChatContext, ChatEvent, ChatEventType, ChatEventTypeAgentActivityPing, ChatEventTypeAgentChatAssigned, ChatEventTypeAgentChatCompleted, ChatEventTypeAgentContextUpdate, ChatEventTypeAgentExecutionEnded, ChatEventTypeAgentExecutionStarted, ChatEventTypeAgentSessionEnd, ChatEventTypeAgentSessionStart, ChatEventTypeAgentStatusChange, ChatEventTypeBlockUser, ChatEventTypeCSATRequest, ChatEventTypeCSATResponse, ChatEventTypeCSATSurvey, ChatEventTypeChatEnded, ChatEventTypeChatRemoved, ChatEventTypeChatUpdated, ChatEventTypeClientAction, ChatEventTypeClientActionCallback, ChatEventTypeCreateRoom, ChatEventTypeDeleteRoom, ChatEventTypeDelivered, ChatEventTypeEndChat, ChatEventTypeError, ChatEventTypeGetAgents, ChatEventTypeGetAgentsResponse, ChatEventTypeGetOnlineUsers, ChatEventTypeHumanAgentJoined, ChatEventTypeHumanAgentLeft, ChatEventTypeInviteUser, ChatEventTypeJoinRoom, ChatEventTypeLeaveRoom, ChatEventTypeListChats, ChatEventTypeListRooms, ChatEventTypeLoadAgentContext, ChatEventTypeLoadAgentContextResponse, ChatEventTypeLoadChat, ChatEventTypeLoadChatResponse, ChatEventTypeMentionUser, ChatEventTypeMessage, ChatEventTypeMessageDeleted, ChatEventTypeMessageDeletedResponse, ChatEventTypeMessageEdited, ChatEventTypeMessageEditedResponse, ChatEventTypeMessageReaction, ChatEventTypeMessageReactionResponse, ChatEventTypeMessageReply, ChatEventTypeMessageStatusUpdate, ChatEventTypeNewChat, ChatEventTypeNewChatCreated, ChatEventTypeObserverJoined, ChatEventTypeObserverLeft, ChatEventTypeOnlineUsersResponse, ChatEventTypePing, ChatEventTypePlanApproved, ChatEventTypePlanCompleted, ChatEventTypePlanPendingApproval, ChatEventTypePlanRejected, ChatEventTypePong, ChatEventTypeRead, ChatEventTypeReconnected, ChatEventTypeRoomCreated, ChatEventTypeRoomDeleted, ChatEventTypeRoomUpdated, ChatEventTypeRoomUserJoined, ChatEventTypeRoomUserLeft, ChatEventTypeRoomsResponse, ChatEventTypeStepCompleted, ChatEventTypeStepFailed, ChatEventTypeStepStarted, ChatEventTypeStoppedTyping, ChatEventTypeSummaryUpdate, ChatEventTypeSyncMetadata, ChatEventTypeSyncMetadataResponse, ChatEventTypeSyncUserSession, ChatEventTypeSyncUserSessionResponse, ChatEventTypeTS, ChatEventTypeTyping, ChatEventTypeUpdateRoom, ChatEventTypeUserActivity, ChatEventTypeUserActivityUpdate, ChatEventTypeUserInvited, ChatEventTypeUserJoined, ChatEventTypeUserLeft, ChatEventTypeUserPresenceChanged, ChatEventTypeUserPresenceEnd, ChatEventTypeUserPresenceStart, ChatEventTypeUserRemoved, ChatEventTypeUserStatusChange, ChatEventTypeUserSuggestedActionSelected, ChatEventTypeUserSuggestedActions, ChatEventTypeWaiting, ChatEventTypeWaitingForAgent, ChatFlow, ChatGrading, ChatProductReference, ChatQueueInfo, ChatRateLimits, ChatRole, ChatRoleAI, ChatRoleDataQuery, ChatRoleEvent, ChatRoleHumanAgent, ChatRoleObserver, ChatRoleSystem, ChatRoleTS, ChatRoleTool, ChatRoleUser, ChatSession, ChatSessionPreferences, ChatSessionStatus, ChatSessionStatusActive, ChatSessionStatusExpired, ChatSessionStatusIdle, ChatStatus, ChatStatusAbandoned, ChatStatusActive, ChatStatusArchived, ChatStatusClosed, ChatStatusDisconnected, ChatStatusTS, ChatSummary, ChatTool, ChatType, ChatTypeCustomerSupport, ChatTypeDirect, ChatTypeGroup, ChatTypePrivateRoom, ChatTypePublicRoom, ChatTypeTS, ChatUser, CompleteChatByAgentRequest, CompleteChatByAgentResponse, CompleteChatByAgentSubject, CreateAgentQueueRequest, CreateAgentQueueResponse, CreateAgentQueueSubject, DeleteAgentQueueRequest, DeleteAgentQueueResponse, DeleteAgentQueueSubject, DocumentSource, EmojiReaction, EndAgentSessionRequest, EndAgentSessionResponse, EndAgentSessionSubject, GetActiveChatCountRequest, GetActiveChatCountResponse, GetActiveChatCountSubject, GetActiveChatsRequest, GetActiveChatsResponse, GetActiveChatsSubject, GetAgentQueuesFilter, GetAgentQueuesRequest, GetAgentQueuesResponse, GetAgentQueuesSubject, GetAgentSessionRequest, GetAgentSessionResponse, GetAgentSessionSubject, GetChatRequest, GetChatResponse, GetChatSubject, GetDailyChatCountRequest, GetDailyChatCountResponse, GetDailyChatCountSubject, GetOnlineAgentCountRequest, GetOnlineAgentCountResponse, GetOnlineAgentCountSubject, GetOnlineAgentsRequest, GetOnlineAgentsResponse, GetOnlineAgentsSubject, GetOnlineUsersRequest, GetOnlineUsersResponse, GetOnlineUsersSubject, GetQueueChatCountRequest, GetQueueChatCountResponse, GetQueueChatCountSubject, GetQueueChatsRequest, GetQueueChatsResponse, GetQueueChatsSubject, GetUserChatsRequest, GetUserChatsResponse, GetUserChatsSubject, GetWaitingForAgentChatCountRequest, GetWaitingForAgentChatCountResponse, GetWaitingForAgentChatCountSubject, GetWaitingForAgentChatsRequest, GetWaitingForAgentChatsResponse, GetWaitingForAgentChatsSubject, LLMConfig, LLMFunction, LLMMemoryConfig, LLMResponse, LLMTool, LLMUsage, Location, MessageStatus, MessageStatusDelivered, MessageStatusFailed, MessageStatusRead, MessageStatusSending, MessageStatusSent, MessageStatusTS, QueueType, QueueTypeComplexity, QueueTypeDepartment, QueueTypeOptionTS, QueueTypePriority, QueueTypeSkill, QueueTypeTS, QueueTypes, SetupOrgSubject, StartAgentSessionRequest, StartAgentSessionResponse, StartAgentSessionSubject, ToolCall, TriggerAnalyticsScanRequest, TriggerAnalyticsScanResponse, TriggerAnalyticsScanSubject, UpdateAgentLastActivityRequest, UpdateAgentLastActivityResponse, UpdateAgentLastActivitySubject, UpdateAgentQueueRequest, UpdateAgentQueueResponse, UpdateAgentQueueSubject, UpdateAgentStatusRequest, UpdateAgentStatusResponse, UpdateAgentStatusSubject, UpdateUserStatusRequest, UpdateUserStatusResponse, UpdateUserStatusSubject, UserSession, UserStatus, UserStatusAway, UserStatusBusy, UserStatusOffline, UserStatusOnline, UserStatusTS } from './models/index.mjs';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import { ProductNameTS } from '@elqnt/types';
6
6
  import { UseWebSocketChatCustomerReturn } from './hooks/use-websocket-chat-customer.mjs';
7
7
  export { UseWebSocketChatCustomerConfig, useWebSocketChatCustomer } from './hooks/use-websocket-chat-customer.mjs';
8
8
  import { UseWebSocketChatAdminReturn } from './hooks/use-websocket-chat-admin.mjs';
9
9
  export { useWebSocketChatAdmin } from './hooks/use-websocket-chat-admin.mjs';
10
+ export { ConnectionMetrics, ConnectionState, Logger, QueueConfig, RetryConfig, UseWebSocketChatBaseConfig, UseWebSocketChatBaseReturn, WebSocketError, useWebSocketChatBase } from './hooks/use-websocket-chat-base.mjs';
10
11
  import '@elqnt/kg';
11
12
  import '@elqnt/docs';
12
13
 
package/dist/index.d.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  import React$1 from 'react';
2
- import { C as Chat, a as ChatMessage } from './use-websocket-chat-base-CZDONnTz.js';
3
- export { bP as Action, d1 as AgentQueue, P as AgentSession, J as AgentStatus, M as AgentStatusAway, N as AgentStatusBusy, O as AgentStatusOffline, K as AgentStatusOnline, I as AgentStatusTS, ci as AssignChatToAgentRequest, cj as AssignChatToAgentResponse, dn as AssignChatToAgentSubject, bO as Attachment, bu as AttachmentFile, bv as AttachmentType, bG as AttachmentTypeActions, bE as AttachmentTypeArticles, bz as AttachmentTypeAudio, bH as AttachmentTypeBullets, bJ as AttachmentTypeData, bw as AttachmentTypeDocument, bx as AttachmentTypeDocumentAnalysis, bL as AttachmentTypeDocumentSources, by as AttachmentTypeImage, bK as AttachmentTypeKGNodes, bB as AttachmentTypeLocation, bF as AttachmentTypeRecords, bC as AttachmentTypeReferences, bI as AttachmentTypeSticker, bD as AttachmentTypeSubsections, bM as AttachmentTypeTS, bA as AttachmentTypeVideo, c8 as ChatArchivalRequest, c9 as ChatArchivalResponse, di as ChatArchiveSubjectPattern, s as ChatContext, bQ as ChatEvent, S as ChatEventType, aV as ChatEventTypeAgentActivityPing, aW as ChatEventTypeAgentChatAssigned, aX as ChatEventTypeAgentChatCompleted, b4 as ChatEventTypeAgentContextUpdate, b6 as ChatEventTypeAgentExecutionEnded, b5 as ChatEventTypeAgentExecutionStarted, aT as ChatEventTypeAgentSessionEnd, aS as ChatEventTypeAgentSessionStart, aU as ChatEventTypeAgentStatusChange, ak as ChatEventTypeBlockUser, a_ as ChatEventTypeCSATRequest, b0 as ChatEventTypeCSATResponse, a$ as ChatEventTypeCSATSurvey, aR as ChatEventTypeChatEnded, ad as ChatEventTypeChatRemoved, ac as ChatEventTypeChatUpdated, ai as ChatEventTypeClientAction, aj as ChatEventTypeClientActionCallback, al as ChatEventTypeCreateRoom, ap as ChatEventTypeDeleteRoom, _ as ChatEventTypeDelivered, aQ as ChatEventTypeEndChat, a0 as ChatEventTypeError, aY as ChatEventTypeGetAgents, aZ as ChatEventTypeGetAgentsResponse, aO as ChatEventTypeGetOnlineUsers, a7 as ChatEventTypeHumanAgentJoined, a8 as ChatEventTypeHumanAgentLeft, at as ChatEventTypeInviteUser, an as ChatEventTypeJoinRoom, ao as ChatEventTypeLeaveRoom, ab as ChatEventTypeListChats, ay as ChatEventTypeListRooms, b7 as ChatEventTypeLoadAgentContext, b8 as ChatEventTypeLoadAgentContextResponse, a2 as ChatEventTypeLoadChat, a3 as ChatEventTypeLoadChatResponse, aE as ChatEventTypeMentionUser, a4 as ChatEventTypeMessage, aB as ChatEventTypeMessageDeleted, aG as ChatEventTypeMessageDeletedResponse, aA as ChatEventTypeMessageEdited, aF as ChatEventTypeMessageEditedResponse, aC as ChatEventTypeMessageReaction, aH as ChatEventTypeMessageReactionResponse, aD as ChatEventTypeMessageReply, a6 as ChatEventTypeMessageStatusUpdate, bg as ChatEventTypeNewChat, bh as ChatEventTypeNewChatCreated, a9 as ChatEventTypeObserverJoined, aa as ChatEventTypeObserverLeft, aP as ChatEventTypeOnlineUsersResponse, bi as ChatEventTypePing, ba as ChatEventTypePlanApproved, bc as ChatEventTypePlanCompleted, b9 as ChatEventTypePlanPendingApproval, bb as ChatEventTypePlanRejected, bj as ChatEventTypePong, Z as ChatEventTypeRead, $ as ChatEventTypeReconnected, am as ChatEventTypeRoomCreated, aq as ChatEventTypeRoomDeleted, as as ChatEventTypeRoomUpdated, av as ChatEventTypeRoomUserJoined, aw as ChatEventTypeRoomUserLeft, az as ChatEventTypeRoomsResponse, be as ChatEventTypeStepCompleted, bf as ChatEventTypeStepFailed, bd as ChatEventTypeStepStarted, Y as ChatEventTypeStoppedTyping, b3 as ChatEventTypeSummaryUpdate, ae as ChatEventTypeSyncMetadata, af as ChatEventTypeSyncMetadataResponse, ag as ChatEventTypeSyncUserSession, ah as ChatEventTypeSyncUserSessionResponse, bk as ChatEventTypeTS, X as ChatEventTypeTyping, ar as ChatEventTypeUpdateRoom, aL as ChatEventTypeUserActivity, aN as ChatEventTypeUserActivityUpdate, au as ChatEventTypeUserInvited, T as ChatEventTypeUserJoined, V as ChatEventTypeUserLeft, aM as ChatEventTypeUserPresenceChanged, aJ as ChatEventTypeUserPresenceEnd, aI as ChatEventTypeUserPresenceStart, ax as ChatEventTypeUserRemoved, aK as ChatEventTypeUserStatusChange, b2 as ChatEventTypeUserSuggestedActionSelected, b1 as ChatEventTypeUserSuggestedActions, a1 as ChatEventTypeWaiting, a5 as ChatEventTypeWaitingForAgent, t as ChatFlow, bR as ChatGrading, c7 as ChatProductReference, db as ChatQueueInfo, bY as ChatRateLimits, x as ChatRole, z as ChatRoleAI, E as ChatRoleDataQuery, A as ChatRoleEvent, B as ChatRoleHumanAgent, D as ChatRoleObserver, F as ChatRoleSystem, w as ChatRoleTS, G as ChatRoleTool, y as ChatRoleUser, bS as ChatSession, bX as ChatSessionPreferences, bT as ChatSessionStatus, bU as ChatSessionStatusActive, bW as ChatSessionStatusExpired, bV as ChatSessionStatusIdle, f as ChatStatus, i as ChatStatusAbandoned, g as ChatStatusActive, k as ChatStatusArchived, j as ChatStatusClosed, h as ChatStatusDisconnected, e as ChatStatusTS, c4 as ChatSummary, v as ChatTool, m as ChatType, n as ChatTypeCustomerSupport, q as ChatTypeDirect, r as ChatTypeGroup, p as ChatTypePrivateRoom, o as ChatTypePublicRoom, l as ChatTypeTS, H as ChatUser, ck as CompleteChatByAgentRequest, cl as CompleteChatByAgentResponse, dp as CompleteChatByAgentSubject, c as ConnectionMetrics, b as ConnectionState, d3 as CreateAgentQueueRequest, d4 as CreateAgentQueueResponse, dt as CreateAgentQueueSubject, d9 as DeleteAgentQueueRequest, da as DeleteAgentQueueResponse, dw as DeleteAgentQueueSubject, bN as DocumentSource, bs as EmojiReaction, cc as EndAgentSessionRequest, cd as EndAgentSessionResponse, dk as EndAgentSessionSubject, cJ as GetActiveChatCountRequest, cK as GetActiveChatCountResponse, dd as GetActiveChatCountSubject, cL as GetActiveChatsRequest, cM as GetActiveChatsResponse, df as GetActiveChatsSubject, d2 as GetAgentQueuesFilter, d5 as GetAgentQueuesRequest, d6 as GetAgentQueuesResponse, du as GetAgentQueuesSubject, cm as GetAgentSessionRequest, cn as GetAgentSessionResponse, dq as GetAgentSessionSubject, c5 as GetChatRequest, c6 as GetChatResponse, dh as GetChatSubject, cT as GetDailyChatCountRequest, cU as GetDailyChatCountResponse, dz as GetDailyChatCountSubject, cq as GetOnlineAgentCountRequest, cr as GetOnlineAgentCountResponse, ds as GetOnlineAgentCountSubject, co as GetOnlineAgentsRequest, cp as GetOnlineAgentsResponse, dr as GetOnlineAgentsSubject, cF as GetOnlineUsersRequest, cG as GetOnlineUsersResponse, dB as GetOnlineUsersSubject, cu as GetQueueChatCountRequest, cv as GetQueueChatCountResponse, dy as GetQueueChatCountSubject, cs as GetQueueChatsRequest, ct as GetQueueChatsResponse, dx as GetQueueChatsSubject, cR as GetUserChatsRequest, cS as GetUserChatsResponse, dg as GetUserChatsSubject, cN as GetWaitingForAgentChatCountRequest, cO as GetWaitingForAgentChatCountResponse, dc as GetWaitingForAgentChatCountSubject, cP as GetWaitingForAgentChatsRequest, cQ as GetWaitingForAgentChatsResponse, de as GetWaitingForAgentChatsSubject, bZ as LLMConfig, c0 as LLMFunction, b_ as LLMMemoryConfig, c2 as LLMResponse, b$ as LLMTool, c3 as LLMUsage, bt as Location, L as Logger, bl as MessageStatus, bo as MessageStatusDelivered, bq as MessageStatusFailed, bp as MessageStatusRead, bm as MessageStatusSending, bn as MessageStatusSent, br as MessageStatusTS, Q as QueueConfig, cY as QueueType, d0 as QueueTypeComplexity, c$ as QueueTypeDepartment, cX as QueueTypeOptionTS, c_ as QueueTypePriority, cZ as QueueTypeSkill, cW as QueueTypeTS, cV as QueueTypes, R as RetryConfig, dD as SetupOrgSubject, ca as StartAgentSessionRequest, cb as StartAgentSessionResponse, dj as StartAgentSessionSubject, c1 as ToolCall, cH as TriggerAnalyticsScanRequest, cI as TriggerAnalyticsScanResponse, dC as TriggerAnalyticsScanSubject, cg as UpdateAgentLastActivityRequest, ch as UpdateAgentLastActivityResponse, dm as UpdateAgentLastActivitySubject, d7 as UpdateAgentQueueRequest, d8 as UpdateAgentQueueResponse, dv as UpdateAgentQueueSubject, ce as UpdateAgentStatusRequest, cf as UpdateAgentStatusResponse, dl as UpdateAgentStatusSubject, cD as UpdateUserStatusRequest, cE as UpdateUserStatusResponse, dA as UpdateUserStatusSubject, U as UseWebSocketChatBaseConfig, d as UseWebSocketChatBaseReturn, cC as UserSession, cx as UserStatus, cz as UserStatusAway, cA as UserStatusBusy, cB as UserStatusOffline, cy as UserStatusOnline, cw as UserStatusTS, W as WebSocketError, u as useWebSocketChatBase } from './use-websocket-chat-base-CZDONnTz.js';
2
+ import { Chat, ChatMessage } from './models/index.js';
3
+ export { Action, AgentQueue, AgentSession, AgentStatus, AgentStatusAway, AgentStatusBusy, AgentStatusOffline, AgentStatusOnline, AgentStatusTS, AssignChatToAgentRequest, AssignChatToAgentResponse, AssignChatToAgentSubject, Attachment, AttachmentFile, AttachmentType, AttachmentTypeActions, AttachmentTypeArticles, AttachmentTypeAudio, AttachmentTypeBullets, AttachmentTypeData, AttachmentTypeDocument, AttachmentTypeDocumentAnalysis, AttachmentTypeDocumentSources, AttachmentTypeImage, AttachmentTypeKGNodes, AttachmentTypeLocation, AttachmentTypeRecords, AttachmentTypeReferences, AttachmentTypeSticker, AttachmentTypeSubsections, AttachmentTypeTS, AttachmentTypeVideo, ChatArchivalRequest, ChatArchivalResponse, ChatArchiveSubjectPattern, ChatContext, ChatEvent, ChatEventType, ChatEventTypeAgentActivityPing, ChatEventTypeAgentChatAssigned, ChatEventTypeAgentChatCompleted, ChatEventTypeAgentContextUpdate, ChatEventTypeAgentExecutionEnded, ChatEventTypeAgentExecutionStarted, ChatEventTypeAgentSessionEnd, ChatEventTypeAgentSessionStart, ChatEventTypeAgentStatusChange, ChatEventTypeBlockUser, ChatEventTypeCSATRequest, ChatEventTypeCSATResponse, ChatEventTypeCSATSurvey, ChatEventTypeChatEnded, ChatEventTypeChatRemoved, ChatEventTypeChatUpdated, ChatEventTypeClientAction, ChatEventTypeClientActionCallback, ChatEventTypeCreateRoom, ChatEventTypeDeleteRoom, ChatEventTypeDelivered, ChatEventTypeEndChat, ChatEventTypeError, ChatEventTypeGetAgents, ChatEventTypeGetAgentsResponse, ChatEventTypeGetOnlineUsers, ChatEventTypeHumanAgentJoined, ChatEventTypeHumanAgentLeft, ChatEventTypeInviteUser, ChatEventTypeJoinRoom, ChatEventTypeLeaveRoom, ChatEventTypeListChats, ChatEventTypeListRooms, ChatEventTypeLoadAgentContext, ChatEventTypeLoadAgentContextResponse, ChatEventTypeLoadChat, ChatEventTypeLoadChatResponse, ChatEventTypeMentionUser, ChatEventTypeMessage, ChatEventTypeMessageDeleted, ChatEventTypeMessageDeletedResponse, ChatEventTypeMessageEdited, ChatEventTypeMessageEditedResponse, ChatEventTypeMessageReaction, ChatEventTypeMessageReactionResponse, ChatEventTypeMessageReply, ChatEventTypeMessageStatusUpdate, ChatEventTypeNewChat, ChatEventTypeNewChatCreated, ChatEventTypeObserverJoined, ChatEventTypeObserverLeft, ChatEventTypeOnlineUsersResponse, ChatEventTypePing, ChatEventTypePlanApproved, ChatEventTypePlanCompleted, ChatEventTypePlanPendingApproval, ChatEventTypePlanRejected, ChatEventTypePong, ChatEventTypeRead, ChatEventTypeReconnected, ChatEventTypeRoomCreated, ChatEventTypeRoomDeleted, ChatEventTypeRoomUpdated, ChatEventTypeRoomUserJoined, ChatEventTypeRoomUserLeft, ChatEventTypeRoomsResponse, ChatEventTypeStepCompleted, ChatEventTypeStepFailed, ChatEventTypeStepStarted, ChatEventTypeStoppedTyping, ChatEventTypeSummaryUpdate, ChatEventTypeSyncMetadata, ChatEventTypeSyncMetadataResponse, ChatEventTypeSyncUserSession, ChatEventTypeSyncUserSessionResponse, ChatEventTypeTS, ChatEventTypeTyping, ChatEventTypeUpdateRoom, ChatEventTypeUserActivity, ChatEventTypeUserActivityUpdate, ChatEventTypeUserInvited, ChatEventTypeUserJoined, ChatEventTypeUserLeft, ChatEventTypeUserPresenceChanged, ChatEventTypeUserPresenceEnd, ChatEventTypeUserPresenceStart, ChatEventTypeUserRemoved, ChatEventTypeUserStatusChange, ChatEventTypeUserSuggestedActionSelected, ChatEventTypeUserSuggestedActions, ChatEventTypeWaiting, ChatEventTypeWaitingForAgent, ChatFlow, ChatGrading, ChatProductReference, ChatQueueInfo, ChatRateLimits, ChatRole, ChatRoleAI, ChatRoleDataQuery, ChatRoleEvent, ChatRoleHumanAgent, ChatRoleObserver, ChatRoleSystem, ChatRoleTS, ChatRoleTool, ChatRoleUser, ChatSession, ChatSessionPreferences, ChatSessionStatus, ChatSessionStatusActive, ChatSessionStatusExpired, ChatSessionStatusIdle, ChatStatus, ChatStatusAbandoned, ChatStatusActive, ChatStatusArchived, ChatStatusClosed, ChatStatusDisconnected, ChatStatusTS, ChatSummary, ChatTool, ChatType, ChatTypeCustomerSupport, ChatTypeDirect, ChatTypeGroup, ChatTypePrivateRoom, ChatTypePublicRoom, ChatTypeTS, ChatUser, CompleteChatByAgentRequest, CompleteChatByAgentResponse, CompleteChatByAgentSubject, CreateAgentQueueRequest, CreateAgentQueueResponse, CreateAgentQueueSubject, DeleteAgentQueueRequest, DeleteAgentQueueResponse, DeleteAgentQueueSubject, DocumentSource, EmojiReaction, EndAgentSessionRequest, EndAgentSessionResponse, EndAgentSessionSubject, GetActiveChatCountRequest, GetActiveChatCountResponse, GetActiveChatCountSubject, GetActiveChatsRequest, GetActiveChatsResponse, GetActiveChatsSubject, GetAgentQueuesFilter, GetAgentQueuesRequest, GetAgentQueuesResponse, GetAgentQueuesSubject, GetAgentSessionRequest, GetAgentSessionResponse, GetAgentSessionSubject, GetChatRequest, GetChatResponse, GetChatSubject, GetDailyChatCountRequest, GetDailyChatCountResponse, GetDailyChatCountSubject, GetOnlineAgentCountRequest, GetOnlineAgentCountResponse, GetOnlineAgentCountSubject, GetOnlineAgentsRequest, GetOnlineAgentsResponse, GetOnlineAgentsSubject, GetOnlineUsersRequest, GetOnlineUsersResponse, GetOnlineUsersSubject, GetQueueChatCountRequest, GetQueueChatCountResponse, GetQueueChatCountSubject, GetQueueChatsRequest, GetQueueChatsResponse, GetQueueChatsSubject, GetUserChatsRequest, GetUserChatsResponse, GetUserChatsSubject, GetWaitingForAgentChatCountRequest, GetWaitingForAgentChatCountResponse, GetWaitingForAgentChatCountSubject, GetWaitingForAgentChatsRequest, GetWaitingForAgentChatsResponse, GetWaitingForAgentChatsSubject, LLMConfig, LLMFunction, LLMMemoryConfig, LLMResponse, LLMTool, LLMUsage, Location, MessageStatus, MessageStatusDelivered, MessageStatusFailed, MessageStatusRead, MessageStatusSending, MessageStatusSent, MessageStatusTS, QueueType, QueueTypeComplexity, QueueTypeDepartment, QueueTypeOptionTS, QueueTypePriority, QueueTypeSkill, QueueTypeTS, QueueTypes, SetupOrgSubject, StartAgentSessionRequest, StartAgentSessionResponse, StartAgentSessionSubject, ToolCall, TriggerAnalyticsScanRequest, TriggerAnalyticsScanResponse, TriggerAnalyticsScanSubject, UpdateAgentLastActivityRequest, UpdateAgentLastActivityResponse, UpdateAgentLastActivitySubject, UpdateAgentQueueRequest, UpdateAgentQueueResponse, UpdateAgentQueueSubject, UpdateAgentStatusRequest, UpdateAgentStatusResponse, UpdateAgentStatusSubject, UpdateUserStatusRequest, UpdateUserStatusResponse, UpdateUserStatusSubject, UserSession, UserStatus, UserStatusAway, UserStatusBusy, UserStatusOffline, UserStatusOnline, UserStatusTS } from './models/index.js';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import { ProductNameTS } from '@elqnt/types';
6
6
  import { UseWebSocketChatCustomerReturn } from './hooks/use-websocket-chat-customer.js';
7
7
  export { UseWebSocketChatCustomerConfig, useWebSocketChatCustomer } from './hooks/use-websocket-chat-customer.js';
8
8
  import { UseWebSocketChatAdminReturn } from './hooks/use-websocket-chat-admin.js';
9
9
  export { useWebSocketChatAdmin } from './hooks/use-websocket-chat-admin.js';
10
+ export { ConnectionMetrics, ConnectionState, Logger, QueueConfig, RetryConfig, UseWebSocketChatBaseConfig, UseWebSocketChatBaseReturn, WebSocketError, useWebSocketChatBase } from './hooks/use-websocket-chat-base.js';
10
11
  import '@elqnt/kg';
11
12
  import '@elqnt/docs';
12
13