@elqnt/chat 1.0.0 → 1.0.2
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/chunk-3PXNBY7J.js +73 -0
- package/dist/chunk-3PXNBY7J.js.map +1 -0
- package/dist/chunk-AC5J5LX5.mjs +529 -0
- package/dist/chunk-AC5J5LX5.mjs.map +1 -0
- package/dist/chunk-DTFTLFSY.js +637 -0
- package/dist/chunk-DTFTLFSY.js.map +1 -0
- package/dist/chunk-E2FJX52R.js +529 -0
- package/dist/chunk-E2FJX52R.js.map +1 -0
- package/dist/chunk-F6OOS4ZM.mjs +637 -0
- package/dist/chunk-F6OOS4ZM.mjs.map +1 -0
- package/dist/chunk-XVYABY2Z.mjs +73 -0
- package/dist/chunk-XVYABY2Z.mjs.map +1 -0
- package/dist/hooks/use-websocket-chat-admin.d.mts +16 -0
- package/dist/hooks/use-websocket-chat-admin.d.ts +16 -0
- package/dist/hooks/use-websocket-chat-admin.js +9 -0
- package/dist/hooks/use-websocket-chat-admin.js.map +1 -0
- package/dist/hooks/use-websocket-chat-admin.mjs +9 -0
- package/dist/hooks/use-websocket-chat-admin.mjs.map +1 -0
- package/dist/hooks/use-websocket-chat-base.d.mts +4 -0
- package/dist/hooks/use-websocket-chat-base.d.ts +4 -0
- package/dist/hooks/use-websocket-chat-base.js +8 -0
- package/dist/hooks/use-websocket-chat-base.js.map +1 -0
- package/dist/hooks/use-websocket-chat-base.mjs +8 -0
- package/dist/hooks/use-websocket-chat-base.mjs.map +1 -0
- package/dist/hooks/use-websocket-chat-customer.d.mts +23 -0
- package/dist/hooks/use-websocket-chat-customer.d.ts +23 -0
- package/dist/hooks/use-websocket-chat-customer.js +9 -0
- package/dist/hooks/use-websocket-chat-customer.js.map +1 -0
- package/dist/hooks/use-websocket-chat-customer.mjs +9 -0
- package/dist/hooks/use-websocket-chat-customer.mjs.map +1 -0
- package/dist/index.d.mts +10 -1015
- package/dist/index.d.ts +10 -1015
- package/dist/index.js +727 -16678
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +373 -16122
- package/dist/index.mjs.map +1 -1
- package/dist/use-websocket-chat-base-CZDONnTz.d.mts +989 -0
- package/dist/use-websocket-chat-base-CZDONnTz.d.ts +989 -0
- package/package.json +21 -2
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
+
|
|
3
|
+
var _chunkDTFTLFSYjs = require('./chunk-DTFTLFSY.js');
|
|
4
|
+
|
|
5
|
+
// hooks/use-websocket-chat-customer.ts
|
|
6
|
+
var _react = require('react');
|
|
7
|
+
var useWebSocketChatCustomer = ({
|
|
8
|
+
serverBaseUrl,
|
|
9
|
+
orgId,
|
|
10
|
+
chatKey,
|
|
11
|
+
product
|
|
12
|
+
}) => {
|
|
13
|
+
const [currentChat, setCurrentChat] = _react.useState.call(void 0, void 0);
|
|
14
|
+
const handleMessage = _react.useCallback.call(void 0, (chatEvent) => {
|
|
15
|
+
console.log("Received event:", chatEvent.type);
|
|
16
|
+
switch (chatEvent.type) {
|
|
17
|
+
case "message":
|
|
18
|
+
if (!chatEvent.message) return;
|
|
19
|
+
console.log(
|
|
20
|
+
"got message:",
|
|
21
|
+
chatEvent.message.role,
|
|
22
|
+
":",
|
|
23
|
+
chatEvent.message.content
|
|
24
|
+
);
|
|
25
|
+
setCurrentChat((prev) => {
|
|
26
|
+
if (!prev) return prev;
|
|
27
|
+
return {
|
|
28
|
+
...prev,
|
|
29
|
+
messages: [...prev.messages, chatEvent.message]
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
break;
|
|
33
|
+
case "chat_updated":
|
|
34
|
+
const chat = _optionalChain([chatEvent, 'access', _ => _.data, 'optionalAccess', _2 => _2.chat, 'optionalAccess', _3 => _3.value]);
|
|
35
|
+
if (chat) {
|
|
36
|
+
setCurrentChat(chat);
|
|
37
|
+
}
|
|
38
|
+
break;
|
|
39
|
+
case "load_chat":
|
|
40
|
+
const history = _optionalChain([chatEvent, 'access', _4 => _4.data, 'optionalAccess', _5 => _5.chat]);
|
|
41
|
+
if (!history) return;
|
|
42
|
+
setCurrentChat(history);
|
|
43
|
+
break;
|
|
44
|
+
default:
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}, []);
|
|
48
|
+
const base = _chunkDTFTLFSYjs.useWebSocketChatBase.call(void 0, {
|
|
49
|
+
serverBaseUrl,
|
|
50
|
+
orgId,
|
|
51
|
+
clientType: "customer",
|
|
52
|
+
onMessage: handleMessage,
|
|
53
|
+
product
|
|
54
|
+
});
|
|
55
|
+
return {
|
|
56
|
+
...base,
|
|
57
|
+
chatKey,
|
|
58
|
+
title: _optionalChain([currentChat, 'optionalAccess', _6 => _6.title]),
|
|
59
|
+
messages: _nullishCoalesce(_optionalChain([currentChat, 'optionalAccess', _7 => _7.messages]), () => ( [])),
|
|
60
|
+
users: _nullishCoalesce(_optionalChain([currentChat, 'optionalAccess', _8 => _8.users]), () => ( [])),
|
|
61
|
+
isWaiting: _nullishCoalesce(_optionalChain([currentChat, 'optionalAccess', _9 => _9.isWaiting]), () => ( false)),
|
|
62
|
+
isWaitingForAgent: _nullishCoalesce(_optionalChain([currentChat, 'optionalAccess', _10 => _10.isWaitingForAgent]), () => ( false)),
|
|
63
|
+
aiEngaged: _nullishCoalesce(_optionalChain([currentChat, 'optionalAccess', _11 => _11.aiEngaged]), () => ( false)),
|
|
64
|
+
humanAgentEngaged: _nullishCoalesce(_optionalChain([currentChat, 'optionalAccess', _12 => _12.humanAgentEngaged]), () => ( false)),
|
|
65
|
+
metadata: _nullishCoalesce(_optionalChain([currentChat, 'optionalAccess', _13 => _13.metadata]), () => ( {})),
|
|
66
|
+
status: _optionalChain([currentChat, 'optionalAccess', _14 => _14.status])
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
exports.useWebSocketChatCustomer = useWebSocketChatCustomer;
|
|
73
|
+
//# sourceMappingURL=chunk-3PXNBY7J.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent-packages/eloquent-packages/packages/chat/dist/chunk-3PXNBY7J.js","../hooks/use-websocket-chat-customer.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACFA,8BAAsC;AA2B/B,IAAM,yBAAA,EAA2B,CAAC;AAAA,EACvC,aAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAAA,GAAsE;AACpE,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,EAAA,EAAI,6BAAA,KAA2B,CAAS,CAAA;AAE1E,EAAA,MAAM,cAAA,EAAgB,gCAAA,CAAa,SAAA,EAAA,GAAyB;AAC1D,IAAA,OAAA,CAAQ,GAAA,CAAI,iBAAA,EAAmB,SAAA,CAAU,IAAI,CAAA;AAE7C,IAAA,OAAA,CAAQ,SAAA,CAAU,IAAA,EAAM;AAAA,MACtB,KAAK,SAAA;AACH,QAAA,GAAA,CAAI,CAAC,SAAA,CAAU,OAAA,EAAS,MAAA;AAExB,QAAA,OAAA,CAAQ,GAAA;AAAA,UACN,cAAA;AAAA,UACA,SAAA,CAAU,OAAA,CAAQ,IAAA;AAAA,UAClB,GAAA;AAAA,UACA,SAAA,CAAU,OAAA,CAAQ;AAAA,QACpB,CAAA;AAMA,QAAA,cAAA,CAAe,CAAC,IAAA,EAAA,GAAS;AACvB,UAAA,GAAA,CAAI,CAAC,IAAA,EAAM,OAAO,IAAA;AAClB,UAAA,OAAO;AAAA,YACL,GAAG,IAAA;AAAA,YACH,QAAA,EAAU,CAAC,GAAG,IAAA,CAAK,QAAA,EAAU,SAAA,CAAU,OAAQ;AAAA,UACjD,CAAA;AAAA,QACF,CAAC,CAAA;AACD,QAAA,KAAA;AAAA,MAEF,KAAK,cAAA;AACH,QAAA,MAAM,KAAA,kBAAO,SAAA,mBAAU,IAAA,6BAAM,IAAA,6BAAM,OAAA;AACnC,QAAA,GAAA,CAAI,IAAA,EAAM;AACR,UAAA,cAAA,CAAe,IAAI,CAAA;AAAA,QACrB;AACA,QAAA,KAAA;AAAA,MAEF,KAAK,WAAA;AACH,QAAA,MAAM,QAAA,kBAAU,SAAA,qBAAU,IAAA,6BAAM,MAAA;AAChC,QAAA,GAAA,CAAI,CAAC,OAAA,EAAS,MAAA;AACd,QAAA,cAAA,CAAe,OAAO,CAAA;AACtB,QAAA,KAAA;AAAA,MAEF,OAAA;AAEE,QAAA,KAAA;AAAA,IACJ;AAAA,EACF,CAAA,EAAG,CAAC,CAAC,CAAA;AAEL,EAAA,MAAM,KAAA,EAAO,mDAAA;AAAqB,IAChC,aAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA,EAAY,UAAA;AAAA,IACZ,SAAA,EAAW,aAAA;AAAA,IACX;AAAA,EACF,CAAC,CAAA;AAED,EAAA,OAAO;AAAA,IACL,GAAG,IAAA;AAAA,IACH,OAAA;AAAA,IACA,KAAA,kBAAO,WAAA,6BAAa,OAAA;AAAA,IACpB,QAAA,mCAAU,WAAA,6BAAa,UAAA,UAAY,CAAC,GAAA;AAAA,IACpC,KAAA,mCAAO,WAAA,6BAAa,OAAA,UAAS,CAAC,GAAA;AAAA,IAC9B,SAAA,mCAAW,WAAA,6BAAa,WAAA,UAAa,OAAA;AAAA,IACrC,iBAAA,mCAAmB,WAAA,+BAAa,mBAAA,UAAqB,OAAA;AAAA,IACrD,SAAA,mCAAW,WAAA,+BAAa,WAAA,UAAa,OAAA;AAAA,IACrC,iBAAA,mCAAmB,WAAA,+BAAa,mBAAA,UAAqB,OAAA;AAAA,IACrD,QAAA,mCAAU,WAAA,+BAAa,UAAA,UAAY,CAAC,GAAA;AAAA,IACpC,MAAA,kBAAQ,WAAA,+BAAa;AAAA,EACvB,CAAA;AACF,CAAA;ADpCA;AACA;AACE;AACF,4DAAC","file":"/home/runner/work/eloquent-packages/eloquent-packages/packages/chat/dist/chunk-3PXNBY7J.js","sourcesContent":[null,"\"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"]}
|
|
@@ -0,0 +1,529 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useWebSocketChatBase
|
|
3
|
+
} from "./chunk-F6OOS4ZM.mjs";
|
|
4
|
+
|
|
5
|
+
// hooks/use-websocket-chat-admin.ts
|
|
6
|
+
import { useCallback, useState } from "react";
|
|
7
|
+
|
|
8
|
+
// models/chat-models.ts
|
|
9
|
+
var ChatStatusActive = "active";
|
|
10
|
+
var ChatStatusDisconnected = "disconnected";
|
|
11
|
+
var ChatStatusAbandoned = "abandoned";
|
|
12
|
+
var ChatStatusClosed = "closed";
|
|
13
|
+
var ChatStatusArchived = "archived";
|
|
14
|
+
var ChatTypeCustomerSupport = "customer_support";
|
|
15
|
+
var ChatTypePublicRoom = "public_room";
|
|
16
|
+
var ChatTypePrivateRoom = "private_room";
|
|
17
|
+
var ChatTypeDirect = "direct";
|
|
18
|
+
var ChatTypeGroup = "group";
|
|
19
|
+
var ChatRoleUser = "user";
|
|
20
|
+
var ChatRoleAI = "ai";
|
|
21
|
+
var ChatRoleEvent = "event";
|
|
22
|
+
var ChatRoleHumanAgent = "humanAgent";
|
|
23
|
+
var ChatRoleObserver = "observer";
|
|
24
|
+
var ChatRoleDataQuery = "dataQuery";
|
|
25
|
+
var ChatRoleSystem = "system";
|
|
26
|
+
var ChatRoleTool = "tool";
|
|
27
|
+
var AgentStatusOnline = "online";
|
|
28
|
+
var AgentStatusAway = "away";
|
|
29
|
+
var AgentStatusBusy = "busy";
|
|
30
|
+
var AgentStatusOffline = "offline";
|
|
31
|
+
var ChatEventTypeUserJoined = "user_joined";
|
|
32
|
+
var ChatEventTypeUserLeft = "user_left";
|
|
33
|
+
var ChatEventTypeTyping = "typing";
|
|
34
|
+
var ChatEventTypeStoppedTyping = "stopped_typing";
|
|
35
|
+
var ChatEventTypeRead = "read";
|
|
36
|
+
var ChatEventTypeDelivered = "delivered";
|
|
37
|
+
var ChatEventTypeReconnected = "reconnected";
|
|
38
|
+
var ChatEventTypeError = "error";
|
|
39
|
+
var ChatEventTypeWaiting = "waiting";
|
|
40
|
+
var ChatEventTypeLoadChat = "load_chat";
|
|
41
|
+
var ChatEventTypeLoadChatResponse = "load_chat_response";
|
|
42
|
+
var ChatEventTypeMessage = "message";
|
|
43
|
+
var ChatEventTypeWaitingForAgent = "waiting_for_agent";
|
|
44
|
+
var ChatEventTypeMessageStatusUpdate = "message_status_update";
|
|
45
|
+
var ChatEventTypeHumanAgentJoined = "human_agent_joined";
|
|
46
|
+
var ChatEventTypeHumanAgentLeft = "human_agent_left";
|
|
47
|
+
var ChatEventTypeObserverJoined = "observer_joined";
|
|
48
|
+
var ChatEventTypeObserverLeft = "observer_left";
|
|
49
|
+
var ChatEventTypeListChats = "list_chats";
|
|
50
|
+
var ChatEventTypeChatUpdated = "chat_updated";
|
|
51
|
+
var ChatEventTypeChatRemoved = "chat_removed";
|
|
52
|
+
var ChatEventTypeSyncMetadata = "sync_metadata";
|
|
53
|
+
var ChatEventTypeSyncMetadataResponse = "sync_metadata_response";
|
|
54
|
+
var ChatEventTypeSyncUserSession = "sync_user_session";
|
|
55
|
+
var ChatEventTypeSyncUserSessionResponse = "sync_user_session_response";
|
|
56
|
+
var ChatEventTypeClientAction = "client_action";
|
|
57
|
+
var ChatEventTypeClientActionCallback = "client_action_callback";
|
|
58
|
+
var ChatEventTypeBlockUser = "block_user";
|
|
59
|
+
var ChatEventTypeCreateRoom = "create_room";
|
|
60
|
+
var ChatEventTypeRoomCreated = "room_created";
|
|
61
|
+
var ChatEventTypeJoinRoom = "join_room";
|
|
62
|
+
var ChatEventTypeLeaveRoom = "leave_room";
|
|
63
|
+
var ChatEventTypeDeleteRoom = "delete_room";
|
|
64
|
+
var ChatEventTypeRoomDeleted = "room_deleted";
|
|
65
|
+
var ChatEventTypeUpdateRoom = "update_room";
|
|
66
|
+
var ChatEventTypeRoomUpdated = "room_updated";
|
|
67
|
+
var ChatEventTypeInviteUser = "invite_user";
|
|
68
|
+
var ChatEventTypeUserInvited = "user_invited";
|
|
69
|
+
var ChatEventTypeRoomUserJoined = "room_user_joined";
|
|
70
|
+
var ChatEventTypeRoomUserLeft = "room_user_left";
|
|
71
|
+
var ChatEventTypeUserRemoved = "user_removed";
|
|
72
|
+
var ChatEventTypeListRooms = "list_rooms";
|
|
73
|
+
var ChatEventTypeRoomsResponse = "rooms_response";
|
|
74
|
+
var ChatEventTypeMessageEdited = "message_edited";
|
|
75
|
+
var ChatEventTypeMessageDeleted = "message_deleted";
|
|
76
|
+
var ChatEventTypeMessageReaction = "message_reaction";
|
|
77
|
+
var ChatEventTypeMessageReply = "message_reply";
|
|
78
|
+
var ChatEventTypeMentionUser = "mention_user";
|
|
79
|
+
var ChatEventTypeMessageEditedResponse = "message_edited_response";
|
|
80
|
+
var ChatEventTypeMessageDeletedResponse = "message_deleted_response";
|
|
81
|
+
var ChatEventTypeMessageReactionResponse = "message_reaction_response";
|
|
82
|
+
var ChatEventTypeUserPresenceStart = "user_presence_start";
|
|
83
|
+
var ChatEventTypeUserPresenceEnd = "user_presence_end";
|
|
84
|
+
var ChatEventTypeUserStatusChange = "user_status_change";
|
|
85
|
+
var ChatEventTypeUserActivity = "user_activity";
|
|
86
|
+
var ChatEventTypeUserPresenceChanged = "user_presence_changed";
|
|
87
|
+
var ChatEventTypeUserActivityUpdate = "user_activity_update";
|
|
88
|
+
var ChatEventTypeGetOnlineUsers = "get_online_users";
|
|
89
|
+
var ChatEventTypeOnlineUsersResponse = "online_users";
|
|
90
|
+
var ChatEventTypeEndChat = "end_chat";
|
|
91
|
+
var ChatEventTypeChatEnded = "chat_ended";
|
|
92
|
+
var ChatEventTypeAgentSessionStart = "agent_session_start";
|
|
93
|
+
var ChatEventTypeAgentSessionEnd = "agent_session_end";
|
|
94
|
+
var ChatEventTypeAgentStatusChange = "agent_status_change";
|
|
95
|
+
var ChatEventTypeAgentActivityPing = "agent_activity_ping";
|
|
96
|
+
var ChatEventTypeAgentChatAssigned = "agent_chat_assigned";
|
|
97
|
+
var ChatEventTypeAgentChatCompleted = "agent_chat_completed";
|
|
98
|
+
var ChatEventTypeGetAgents = "get_agents";
|
|
99
|
+
var ChatEventTypeGetAgentsResponse = "get_agents_response";
|
|
100
|
+
var ChatEventTypeCSATRequest = "csat_request";
|
|
101
|
+
var ChatEventTypeCSATSurvey = "show_csat_survey";
|
|
102
|
+
var ChatEventTypeCSATResponse = "csat_response";
|
|
103
|
+
var ChatEventTypeUserSuggestedActions = "user_suggested_actions";
|
|
104
|
+
var ChatEventTypeUserSuggestedActionSelected = "user_suggested_action_selected";
|
|
105
|
+
var ChatEventTypeSummaryUpdate = "summary_update";
|
|
106
|
+
var ChatEventTypeAgentContextUpdate = "agent_context_update";
|
|
107
|
+
var ChatEventTypeAgentExecutionStarted = "agent_execution_started";
|
|
108
|
+
var ChatEventTypeAgentExecutionEnded = "agent_execution_ended";
|
|
109
|
+
var ChatEventTypeLoadAgentContext = "load_agent_context";
|
|
110
|
+
var ChatEventTypeLoadAgentContextResponse = "load_agent_context_response";
|
|
111
|
+
var ChatEventTypePlanPendingApproval = "plan_pending_approval";
|
|
112
|
+
var ChatEventTypePlanApproved = "plan_approved";
|
|
113
|
+
var ChatEventTypePlanRejected = "plan_rejected";
|
|
114
|
+
var ChatEventTypePlanCompleted = "plan_completed";
|
|
115
|
+
var ChatEventTypeStepStarted = "step_started";
|
|
116
|
+
var ChatEventTypeStepCompleted = "step_completed";
|
|
117
|
+
var ChatEventTypeStepFailed = "step_failed";
|
|
118
|
+
var ChatEventTypeNewChat = "new_chat";
|
|
119
|
+
var ChatEventTypeNewChatCreated = "new_chat_created";
|
|
120
|
+
var ChatEventTypePing = "ping";
|
|
121
|
+
var ChatEventTypePong = "pong";
|
|
122
|
+
var MessageStatusSending = "sending";
|
|
123
|
+
var MessageStatusSent = "sent";
|
|
124
|
+
var MessageStatusDelivered = "delivered";
|
|
125
|
+
var MessageStatusRead = "read";
|
|
126
|
+
var MessageStatusFailed = "failed";
|
|
127
|
+
var AttachmentTypeDocument = "document";
|
|
128
|
+
var AttachmentTypeDocumentAnalysis = "document_analysis";
|
|
129
|
+
var AttachmentTypeImage = "image";
|
|
130
|
+
var AttachmentTypeAudio = "audio";
|
|
131
|
+
var AttachmentTypeVideo = "video";
|
|
132
|
+
var AttachmentTypeLocation = "location";
|
|
133
|
+
var AttachmentTypeReferences = "references";
|
|
134
|
+
var AttachmentTypeSubsections = "subsections";
|
|
135
|
+
var AttachmentTypeArticles = "articles";
|
|
136
|
+
var AttachmentTypeRecords = "records";
|
|
137
|
+
var AttachmentTypeActions = "actions";
|
|
138
|
+
var AttachmentTypeBullets = "bullets";
|
|
139
|
+
var AttachmentTypeSticker = "sticker";
|
|
140
|
+
var AttachmentTypeData = "data";
|
|
141
|
+
var AttachmentTypeKGNodes = "kgNodes";
|
|
142
|
+
var AttachmentTypeDocumentSources = "document_sources";
|
|
143
|
+
var ChatSessionStatusActive = "active";
|
|
144
|
+
var ChatSessionStatusIdle = "idle";
|
|
145
|
+
var ChatSessionStatusExpired = "expired";
|
|
146
|
+
var UserStatusOnline = "online";
|
|
147
|
+
var UserStatusAway = "away";
|
|
148
|
+
var UserStatusBusy = "busy";
|
|
149
|
+
var UserStatusOffline = "offline";
|
|
150
|
+
var QueueTypes = {
|
|
151
|
+
skill: { value: "skill", label: "Skill-based", description: "Route by agent expertise and skills" },
|
|
152
|
+
priority: { value: "priority", label: "Priority-based", description: "Route by customer tier and urgency level" },
|
|
153
|
+
department: { value: "department", label: "Department-based", description: "Route by business function alignment" },
|
|
154
|
+
complexity: { value: "complexity", label: "Complexity-based", description: "Route by issue difficulty assessment" }
|
|
155
|
+
};
|
|
156
|
+
var QueueTypeSkill = "skill";
|
|
157
|
+
var QueueTypePriority = "priority";
|
|
158
|
+
var QueueTypeDepartment = "department";
|
|
159
|
+
var QueueTypeComplexity = "complexity";
|
|
160
|
+
var GetWaitingForAgentChatCountSubject = "chat.get_waiting_for_agent_chat_count";
|
|
161
|
+
var GetActiveChatCountSubject = "chat.get_active_chat_count";
|
|
162
|
+
var GetWaitingForAgentChatsSubject = "chat.get_waiting_for_agent_chats";
|
|
163
|
+
var GetActiveChatsSubject = "chat.get_active_chats";
|
|
164
|
+
var GetUserChatsSubject = "chat.get_user_chats";
|
|
165
|
+
var GetChatSubject = "chat.get_chat";
|
|
166
|
+
var ChatArchiveSubjectPattern = "chat.archive.%s.server";
|
|
167
|
+
var StartAgentSessionSubject = "chat.agent_session.start";
|
|
168
|
+
var EndAgentSessionSubject = "chat.agent_session.end";
|
|
169
|
+
var UpdateAgentStatusSubject = "chat.agent_session.update_status";
|
|
170
|
+
var UpdateAgentLastActivitySubject = "chat.agent_session.update_last_activity";
|
|
171
|
+
var AssignChatToAgentSubject = "chat.agent_session.assign_chat";
|
|
172
|
+
var CompleteChatByAgentSubject = "chat.agent_session.complete_chat";
|
|
173
|
+
var GetAgentSessionSubject = "chat.agent_session.get";
|
|
174
|
+
var GetOnlineAgentsSubject = "chat.agent_session.get_online_agents";
|
|
175
|
+
var GetOnlineAgentCountSubject = "chat.agent_session.get_online_agent_count";
|
|
176
|
+
var CreateAgentQueueSubject = "chat.agent_queue.create";
|
|
177
|
+
var GetAgentQueuesSubject = "chat.agent_queue.get";
|
|
178
|
+
var UpdateAgentQueueSubject = "chat.agent_queue.update";
|
|
179
|
+
var DeleteAgentQueueSubject = "chat.agent_queue.delete";
|
|
180
|
+
var GetQueueChatsSubject = "chat.queue.get_chats";
|
|
181
|
+
var GetQueueChatCountSubject = "chat.queue.get_chat_count";
|
|
182
|
+
var GetDailyChatCountSubject = "chat.get_daily_chat_count";
|
|
183
|
+
var UpdateUserStatusSubject = "chat.user.status.update";
|
|
184
|
+
var GetOnlineUsersSubject = "chat.users.online.get";
|
|
185
|
+
var TriggerAnalyticsScanSubject = "chat.analytics.trigger-scan";
|
|
186
|
+
var SetupOrgSubject = "chat.org.setup";
|
|
187
|
+
|
|
188
|
+
// hooks/use-websocket-chat-admin.ts
|
|
189
|
+
var useWebSocketChatAdmin = ({
|
|
190
|
+
serverBaseUrl,
|
|
191
|
+
orgId,
|
|
192
|
+
product
|
|
193
|
+
}) => {
|
|
194
|
+
const [chats, setChats] = useState(/* @__PURE__ */ new Map());
|
|
195
|
+
const [selectedChat, setSelectedChat] = useState(void 0);
|
|
196
|
+
const handleMessage = useCallback(
|
|
197
|
+
(chatEvent) => {
|
|
198
|
+
switch (chatEvent.type) {
|
|
199
|
+
case "message":
|
|
200
|
+
if (!selectedChat || !chatEvent.message) return;
|
|
201
|
+
setChats((prev) => {
|
|
202
|
+
const newMap = new Map(prev);
|
|
203
|
+
newMap.set(selectedChat.key, {
|
|
204
|
+
...selectedChat,
|
|
205
|
+
messages: [...selectedChat.messages, chatEvent.message]
|
|
206
|
+
});
|
|
207
|
+
return newMap;
|
|
208
|
+
});
|
|
209
|
+
setSelectedChat((prev) => {
|
|
210
|
+
if (!prev) return prev;
|
|
211
|
+
return {
|
|
212
|
+
...prev,
|
|
213
|
+
messages: [...prev.messages, chatEvent.message]
|
|
214
|
+
};
|
|
215
|
+
});
|
|
216
|
+
break;
|
|
217
|
+
case "list_chats":
|
|
218
|
+
const chatList = chatEvent.data?.chats;
|
|
219
|
+
if (!chatList) return;
|
|
220
|
+
setChats(new Map(chatList.map((chat) => [chat.key, chat])));
|
|
221
|
+
break;
|
|
222
|
+
case "chat_updated":
|
|
223
|
+
const updatedChat = chatEvent.data?.chat?.value;
|
|
224
|
+
if (updatedChat) {
|
|
225
|
+
setChats((prev) => new Map(prev).set(updatedChat.key, updatedChat));
|
|
226
|
+
}
|
|
227
|
+
break;
|
|
228
|
+
case "chat_removed":
|
|
229
|
+
const chatKey = chatEvent.data?.chatKey?.value;
|
|
230
|
+
if (chatKey) {
|
|
231
|
+
setChats((prev) => {
|
|
232
|
+
const newMap = new Map(prev);
|
|
233
|
+
newMap.delete(chatKey);
|
|
234
|
+
return newMap;
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
break;
|
|
238
|
+
case "load_chat":
|
|
239
|
+
const history = chatEvent.data?.chat?.value;
|
|
240
|
+
if (history) {
|
|
241
|
+
setChats((prev) => {
|
|
242
|
+
const existingChat = prev.get(history.key);
|
|
243
|
+
if (!existingChat) return prev;
|
|
244
|
+
return new Map(prev).set(history.key, {
|
|
245
|
+
...existingChat,
|
|
246
|
+
messages: history.messages
|
|
247
|
+
});
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
break;
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
[selectedChat]
|
|
254
|
+
);
|
|
255
|
+
const base = useWebSocketChatBase({
|
|
256
|
+
serverBaseUrl,
|
|
257
|
+
orgId,
|
|
258
|
+
clientType: "humanAgent",
|
|
259
|
+
onMessage: handleMessage,
|
|
260
|
+
product
|
|
261
|
+
});
|
|
262
|
+
const selectChat = useCallback(
|
|
263
|
+
(chatKey) => {
|
|
264
|
+
const chat = chats.get(chatKey);
|
|
265
|
+
if (!chat) {
|
|
266
|
+
console.error("Unable to select chat", chatKey);
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
setSelectedChat(chat);
|
|
270
|
+
},
|
|
271
|
+
[chats, orgId, base.sendMessage]
|
|
272
|
+
);
|
|
273
|
+
const addUserToChat = useCallback(
|
|
274
|
+
(orgId2, chatKey, user) => {
|
|
275
|
+
base.sendMessage({
|
|
276
|
+
type: "human_agent_joined",
|
|
277
|
+
orgId: orgId2,
|
|
278
|
+
chatKey,
|
|
279
|
+
userId: user.email,
|
|
280
|
+
data: { user }
|
|
281
|
+
});
|
|
282
|
+
setChats((prev) => {
|
|
283
|
+
const newMap = new Map(prev);
|
|
284
|
+
const chat = newMap.get(chatKey);
|
|
285
|
+
if (!chat) return prev;
|
|
286
|
+
newMap.set(chatKey, {
|
|
287
|
+
...chat,
|
|
288
|
+
humanAgentEngaged: user.role === ChatRoleHumanAgent,
|
|
289
|
+
users: [...chat?.users ?? [], user]
|
|
290
|
+
});
|
|
291
|
+
return newMap;
|
|
292
|
+
});
|
|
293
|
+
setSelectedChat((prev) => {
|
|
294
|
+
if (!prev) return prev;
|
|
295
|
+
return {
|
|
296
|
+
...prev,
|
|
297
|
+
humanAgentEngaged: user.role === ChatRoleHumanAgent,
|
|
298
|
+
users: [...prev.users ?? [], user]
|
|
299
|
+
};
|
|
300
|
+
});
|
|
301
|
+
},
|
|
302
|
+
[base.sendMessage]
|
|
303
|
+
);
|
|
304
|
+
const removeUserFromChat = useCallback(
|
|
305
|
+
(orgId2, chatKey, userId) => {
|
|
306
|
+
const chat = chats.get(chatKey);
|
|
307
|
+
if (!chat) return;
|
|
308
|
+
const user = chat.users?.find((u) => u.id === userId);
|
|
309
|
+
if (!user) return;
|
|
310
|
+
base.sendMessage({
|
|
311
|
+
type: "human_agent_left",
|
|
312
|
+
orgId: orgId2,
|
|
313
|
+
chatKey,
|
|
314
|
+
userId,
|
|
315
|
+
data: { user }
|
|
316
|
+
});
|
|
317
|
+
setChats((prev) => {
|
|
318
|
+
const newMap = new Map(prev);
|
|
319
|
+
const chat2 = newMap.get(chatKey);
|
|
320
|
+
if (!chat2) return prev;
|
|
321
|
+
newMap.set(chatKey, {
|
|
322
|
+
...chat2,
|
|
323
|
+
humanAgentEngaged: false,
|
|
324
|
+
users: chat2.users?.filter((u) => u.id !== userId)
|
|
325
|
+
});
|
|
326
|
+
return newMap;
|
|
327
|
+
});
|
|
328
|
+
},
|
|
329
|
+
[chats, base.sendMessage]
|
|
330
|
+
);
|
|
331
|
+
const blockUser = useCallback(
|
|
332
|
+
(orgId2, chatKey, userId) => {
|
|
333
|
+
base.sendMessage({
|
|
334
|
+
type: "block_user",
|
|
335
|
+
orgId: orgId2,
|
|
336
|
+
chatKey,
|
|
337
|
+
userId
|
|
338
|
+
});
|
|
339
|
+
},
|
|
340
|
+
[base.sendMessage]
|
|
341
|
+
);
|
|
342
|
+
return {
|
|
343
|
+
...base,
|
|
344
|
+
chats,
|
|
345
|
+
selectedChat,
|
|
346
|
+
selectChat,
|
|
347
|
+
addUserToChat,
|
|
348
|
+
removeUserFromChat,
|
|
349
|
+
blockUser
|
|
350
|
+
};
|
|
351
|
+
};
|
|
352
|
+
|
|
353
|
+
export {
|
|
354
|
+
ChatStatusActive,
|
|
355
|
+
ChatStatusDisconnected,
|
|
356
|
+
ChatStatusAbandoned,
|
|
357
|
+
ChatStatusClosed,
|
|
358
|
+
ChatStatusArchived,
|
|
359
|
+
ChatTypeCustomerSupport,
|
|
360
|
+
ChatTypePublicRoom,
|
|
361
|
+
ChatTypePrivateRoom,
|
|
362
|
+
ChatTypeDirect,
|
|
363
|
+
ChatTypeGroup,
|
|
364
|
+
ChatRoleUser,
|
|
365
|
+
ChatRoleAI,
|
|
366
|
+
ChatRoleEvent,
|
|
367
|
+
ChatRoleHumanAgent,
|
|
368
|
+
ChatRoleObserver,
|
|
369
|
+
ChatRoleDataQuery,
|
|
370
|
+
ChatRoleSystem,
|
|
371
|
+
ChatRoleTool,
|
|
372
|
+
AgentStatusOnline,
|
|
373
|
+
AgentStatusAway,
|
|
374
|
+
AgentStatusBusy,
|
|
375
|
+
AgentStatusOffline,
|
|
376
|
+
ChatEventTypeUserJoined,
|
|
377
|
+
ChatEventTypeUserLeft,
|
|
378
|
+
ChatEventTypeTyping,
|
|
379
|
+
ChatEventTypeStoppedTyping,
|
|
380
|
+
ChatEventTypeRead,
|
|
381
|
+
ChatEventTypeDelivered,
|
|
382
|
+
ChatEventTypeReconnected,
|
|
383
|
+
ChatEventTypeError,
|
|
384
|
+
ChatEventTypeWaiting,
|
|
385
|
+
ChatEventTypeLoadChat,
|
|
386
|
+
ChatEventTypeLoadChatResponse,
|
|
387
|
+
ChatEventTypeMessage,
|
|
388
|
+
ChatEventTypeWaitingForAgent,
|
|
389
|
+
ChatEventTypeMessageStatusUpdate,
|
|
390
|
+
ChatEventTypeHumanAgentJoined,
|
|
391
|
+
ChatEventTypeHumanAgentLeft,
|
|
392
|
+
ChatEventTypeObserverJoined,
|
|
393
|
+
ChatEventTypeObserverLeft,
|
|
394
|
+
ChatEventTypeListChats,
|
|
395
|
+
ChatEventTypeChatUpdated,
|
|
396
|
+
ChatEventTypeChatRemoved,
|
|
397
|
+
ChatEventTypeSyncMetadata,
|
|
398
|
+
ChatEventTypeSyncMetadataResponse,
|
|
399
|
+
ChatEventTypeSyncUserSession,
|
|
400
|
+
ChatEventTypeSyncUserSessionResponse,
|
|
401
|
+
ChatEventTypeClientAction,
|
|
402
|
+
ChatEventTypeClientActionCallback,
|
|
403
|
+
ChatEventTypeBlockUser,
|
|
404
|
+
ChatEventTypeCreateRoom,
|
|
405
|
+
ChatEventTypeRoomCreated,
|
|
406
|
+
ChatEventTypeJoinRoom,
|
|
407
|
+
ChatEventTypeLeaveRoom,
|
|
408
|
+
ChatEventTypeDeleteRoom,
|
|
409
|
+
ChatEventTypeRoomDeleted,
|
|
410
|
+
ChatEventTypeUpdateRoom,
|
|
411
|
+
ChatEventTypeRoomUpdated,
|
|
412
|
+
ChatEventTypeInviteUser,
|
|
413
|
+
ChatEventTypeUserInvited,
|
|
414
|
+
ChatEventTypeRoomUserJoined,
|
|
415
|
+
ChatEventTypeRoomUserLeft,
|
|
416
|
+
ChatEventTypeUserRemoved,
|
|
417
|
+
ChatEventTypeListRooms,
|
|
418
|
+
ChatEventTypeRoomsResponse,
|
|
419
|
+
ChatEventTypeMessageEdited,
|
|
420
|
+
ChatEventTypeMessageDeleted,
|
|
421
|
+
ChatEventTypeMessageReaction,
|
|
422
|
+
ChatEventTypeMessageReply,
|
|
423
|
+
ChatEventTypeMentionUser,
|
|
424
|
+
ChatEventTypeMessageEditedResponse,
|
|
425
|
+
ChatEventTypeMessageDeletedResponse,
|
|
426
|
+
ChatEventTypeMessageReactionResponse,
|
|
427
|
+
ChatEventTypeUserPresenceStart,
|
|
428
|
+
ChatEventTypeUserPresenceEnd,
|
|
429
|
+
ChatEventTypeUserStatusChange,
|
|
430
|
+
ChatEventTypeUserActivity,
|
|
431
|
+
ChatEventTypeUserPresenceChanged,
|
|
432
|
+
ChatEventTypeUserActivityUpdate,
|
|
433
|
+
ChatEventTypeGetOnlineUsers,
|
|
434
|
+
ChatEventTypeOnlineUsersResponse,
|
|
435
|
+
ChatEventTypeEndChat,
|
|
436
|
+
ChatEventTypeChatEnded,
|
|
437
|
+
ChatEventTypeAgentSessionStart,
|
|
438
|
+
ChatEventTypeAgentSessionEnd,
|
|
439
|
+
ChatEventTypeAgentStatusChange,
|
|
440
|
+
ChatEventTypeAgentActivityPing,
|
|
441
|
+
ChatEventTypeAgentChatAssigned,
|
|
442
|
+
ChatEventTypeAgentChatCompleted,
|
|
443
|
+
ChatEventTypeGetAgents,
|
|
444
|
+
ChatEventTypeGetAgentsResponse,
|
|
445
|
+
ChatEventTypeCSATRequest,
|
|
446
|
+
ChatEventTypeCSATSurvey,
|
|
447
|
+
ChatEventTypeCSATResponse,
|
|
448
|
+
ChatEventTypeUserSuggestedActions,
|
|
449
|
+
ChatEventTypeUserSuggestedActionSelected,
|
|
450
|
+
ChatEventTypeSummaryUpdate,
|
|
451
|
+
ChatEventTypeAgentContextUpdate,
|
|
452
|
+
ChatEventTypeAgentExecutionStarted,
|
|
453
|
+
ChatEventTypeAgentExecutionEnded,
|
|
454
|
+
ChatEventTypeLoadAgentContext,
|
|
455
|
+
ChatEventTypeLoadAgentContextResponse,
|
|
456
|
+
ChatEventTypePlanPendingApproval,
|
|
457
|
+
ChatEventTypePlanApproved,
|
|
458
|
+
ChatEventTypePlanRejected,
|
|
459
|
+
ChatEventTypePlanCompleted,
|
|
460
|
+
ChatEventTypeStepStarted,
|
|
461
|
+
ChatEventTypeStepCompleted,
|
|
462
|
+
ChatEventTypeStepFailed,
|
|
463
|
+
ChatEventTypeNewChat,
|
|
464
|
+
ChatEventTypeNewChatCreated,
|
|
465
|
+
ChatEventTypePing,
|
|
466
|
+
ChatEventTypePong,
|
|
467
|
+
MessageStatusSending,
|
|
468
|
+
MessageStatusSent,
|
|
469
|
+
MessageStatusDelivered,
|
|
470
|
+
MessageStatusRead,
|
|
471
|
+
MessageStatusFailed,
|
|
472
|
+
AttachmentTypeDocument,
|
|
473
|
+
AttachmentTypeDocumentAnalysis,
|
|
474
|
+
AttachmentTypeImage,
|
|
475
|
+
AttachmentTypeAudio,
|
|
476
|
+
AttachmentTypeVideo,
|
|
477
|
+
AttachmentTypeLocation,
|
|
478
|
+
AttachmentTypeReferences,
|
|
479
|
+
AttachmentTypeSubsections,
|
|
480
|
+
AttachmentTypeArticles,
|
|
481
|
+
AttachmentTypeRecords,
|
|
482
|
+
AttachmentTypeActions,
|
|
483
|
+
AttachmentTypeBullets,
|
|
484
|
+
AttachmentTypeSticker,
|
|
485
|
+
AttachmentTypeData,
|
|
486
|
+
AttachmentTypeKGNodes,
|
|
487
|
+
AttachmentTypeDocumentSources,
|
|
488
|
+
ChatSessionStatusActive,
|
|
489
|
+
ChatSessionStatusIdle,
|
|
490
|
+
ChatSessionStatusExpired,
|
|
491
|
+
UserStatusOnline,
|
|
492
|
+
UserStatusAway,
|
|
493
|
+
UserStatusBusy,
|
|
494
|
+
UserStatusOffline,
|
|
495
|
+
QueueTypes,
|
|
496
|
+
QueueTypeSkill,
|
|
497
|
+
QueueTypePriority,
|
|
498
|
+
QueueTypeDepartment,
|
|
499
|
+
QueueTypeComplexity,
|
|
500
|
+
GetWaitingForAgentChatCountSubject,
|
|
501
|
+
GetActiveChatCountSubject,
|
|
502
|
+
GetWaitingForAgentChatsSubject,
|
|
503
|
+
GetActiveChatsSubject,
|
|
504
|
+
GetUserChatsSubject,
|
|
505
|
+
GetChatSubject,
|
|
506
|
+
ChatArchiveSubjectPattern,
|
|
507
|
+
StartAgentSessionSubject,
|
|
508
|
+
EndAgentSessionSubject,
|
|
509
|
+
UpdateAgentStatusSubject,
|
|
510
|
+
UpdateAgentLastActivitySubject,
|
|
511
|
+
AssignChatToAgentSubject,
|
|
512
|
+
CompleteChatByAgentSubject,
|
|
513
|
+
GetAgentSessionSubject,
|
|
514
|
+
GetOnlineAgentsSubject,
|
|
515
|
+
GetOnlineAgentCountSubject,
|
|
516
|
+
CreateAgentQueueSubject,
|
|
517
|
+
GetAgentQueuesSubject,
|
|
518
|
+
UpdateAgentQueueSubject,
|
|
519
|
+
DeleteAgentQueueSubject,
|
|
520
|
+
GetQueueChatsSubject,
|
|
521
|
+
GetQueueChatCountSubject,
|
|
522
|
+
GetDailyChatCountSubject,
|
|
523
|
+
UpdateUserStatusSubject,
|
|
524
|
+
GetOnlineUsersSubject,
|
|
525
|
+
TriggerAnalyticsScanSubject,
|
|
526
|
+
SetupOrgSubject,
|
|
527
|
+
useWebSocketChatAdmin
|
|
528
|
+
};
|
|
529
|
+
//# sourceMappingURL=chunk-AC5J5LX5.mjs.map
|