@webex/contact-center 3.12.0-next.147 → 3.12.0-next.149
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/.sdd/manifest.json +4 -2
- package/ai-docs/CONTRACTS.md +2 -0
- package/dist/cc.js +3 -1
- package/dist/cc.js.map +1 -1
- package/dist/constants.js +10 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/metrics/constants.js +9 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/services/ApiAiAssistant.js +87 -10
- package/dist/services/ApiAiAssistant.js.map +1 -1
- package/dist/services/config/types.js +10 -4
- package/dist/services/config/types.js.map +1 -1
- package/dist/services/core/types.js.map +1 -1
- package/dist/services/task/Task.js +202 -1
- package/dist/services/task/Task.js.map +1 -1
- package/dist/services/task/TaskFactory.js +4 -4
- package/dist/services/task/TaskFactory.js.map +1 -1
- package/dist/services/task/TaskManager.js +113 -26
- package/dist/services/task/TaskManager.js.map +1 -1
- package/dist/services/task/TaskUtils.js +11 -1
- package/dist/services/task/TaskUtils.js.map +1 -1
- package/dist/services/task/constants.js +11 -2
- package/dist/services/task/constants.js.map +1 -1
- package/dist/services/task/digital/Digital.js +2 -2
- package/dist/services/task/digital/Digital.js.map +1 -1
- package/dist/services/task/types.js +31 -0
- package/dist/services/task/types.js.map +1 -1
- package/dist/services/task/voice/Voice.js +2 -2
- package/dist/services/task/voice/Voice.js.map +1 -1
- package/dist/services/task/voice/WebRTC.js +2 -2
- package/dist/services/task/voice/WebRTC.js.map +1 -1
- package/dist/types/constants.d.ts +9 -0
- package/dist/types/index.d.ts +4 -5
- package/dist/types/metrics/constants.d.ts +8 -0
- package/dist/types/services/ApiAiAssistant.d.ts +4 -2
- package/dist/types/services/config/types.d.ts +17 -7
- package/dist/types/services/task/Task.d.ts +15 -4
- package/dist/types/services/task/TaskFactory.d.ts +3 -2
- package/dist/types/services/task/TaskUtils.d.ts +6 -0
- package/dist/types/services/task/constants.d.ts +9 -0
- package/dist/types/services/task/digital/Digital.d.ts +3 -2
- package/dist/types/services/task/types.d.ts +109 -1
- package/dist/types/services/task/voice/Voice.d.ts +3 -2
- package/dist/types/services/task/voice/WebRTC.d.ts +3 -2
- package/dist/types/types.d.ts +10 -4
- package/dist/types.js +8 -4
- package/dist/types.js.map +1 -1
- package/dist/webex.js +1 -1
- package/package.json +3 -3
- package/src/cc.ts +4 -0
- package/src/constants.ts +12 -0
- package/src/index.ts +10 -2
- package/src/metrics/ai-docs/metrics-spec.md +12 -4
- package/src/metrics/constants.ts +10 -0
- package/src/services/ApiAiAssistant.ts +120 -12
- package/src/services/config/types.ts +10 -4
- package/src/services/core/types.ts +31 -1
- package/src/services/task/Task.ts +308 -5
- package/src/services/task/TaskFactory.ts +26 -5
- package/src/services/task/TaskManager.ts +148 -29
- package/src/services/task/TaskUtils.ts +13 -0
- package/src/services/task/ai-docs/task-spec.md +30 -5
- package/src/services/task/constants.ts +10 -0
- package/src/services/task/digital/Digital.ts +8 -3
- package/src/services/task/types.ts +139 -0
- package/src/services/task/voice/Voice.ts +8 -3
- package/src/services/task/voice/WebRTC.ts +6 -3
- package/src/types.ts +10 -4
- package/test/unit/fixtures/aiSummaryTestUtils.ts +40 -0
- package/test/unit/spec/cc.ts +1314 -32
- package/test/unit/spec/index.ts +881 -0
- package/test/unit/spec/services/ApiAiAssistant.ts +122 -6
- package/test/unit/spec/services/core/WebexRequest.ts +5 -6
- package/test/unit/spec/services/task/Task.ts +1988 -10
- package/test/unit/spec/services/task/TaskFactory.ts +17 -0
- package/test/unit/spec/services/task/TaskManager.ts +2327 -180
- package/test/unit/spec/services/task/TaskUtils.ts +72 -0
- package/test/unit/spec/services/task/voice/Voice.ts +353 -18
- package/umd/contact-center.min.js +2 -2
- package/umd/contact-center.min.js.map +1 -1
package/dist/constants.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.WELLNESS_BREAK_HANDLER = exports.WEB_SOCKET_MANAGER_FILE = exports.WEB_CALLING_SERVICE_FILE = exports.WEBEX_REQUEST_FILE = exports.UNKNOWN_ERROR = exports.TIMEOUT_DURATION = exports.TASK_MANAGER_FILE = exports.TASK_FILE = exports.READY = exports.PRODUCT_NAME = exports.OUTDIAL_MEDIA_TYPE = exports.OUTDIAL_DIRECTION = exports.OUTBOUND_TYPE = exports.METHODS = exports.MERCURY_DISCONNECTED_SUCCESS = exports.LOG_PREFIX = exports.INBOUND_DIRECTION = exports.EVENT = exports.EMPTY_STRING = exports.CONNECTION_SERVICE_FILE = exports.CONFIG_FILE_NAME = exports.CC_FILE = exports.ATTRIBUTES = exports.AQM_REQS_FILE = void 0;
|
|
6
|
+
exports.WELLNESS_BREAK_HANDLER = exports.WEB_SOCKET_MANAGER_FILE = exports.WEB_CALLING_SERVICE_FILE = exports.WEBEX_REQUEST_FILE = exports.UNKNOWN_ERROR = exports.TIMEOUT_DURATION = exports.TASK_MANAGER_FILE = exports.TASK_FILE = exports.READY = exports.PRODUCT_NAME = exports.OUTDIAL_MEDIA_TYPE = exports.OUTDIAL_DIRECTION = exports.OUTBOUND_TYPE = exports.METHODS = exports.MERCURY_DISCONNECTED_SUCCESS = exports.LOG_PREFIX = exports.INBOUND_DIRECTION = exports.EVENT = exports.EMPTY_STRING = exports.CONNECTION_SERVICE_FILE = exports.CONFIG_FILE_NAME = exports.CC_FILE = exports.ATTRIBUTES = exports.AQM_REQS_FILE = exports.AI_SUMMARY_INVALID_RESPONSE_PAYLOAD = exports.AI_SUMMARY_ERROR_CODES = exports.AI_ASSISTANT_CLIENT_TYPE = void 0;
|
|
7
7
|
const EVENT = exports.EVENT = 'event';
|
|
8
8
|
const READY = exports.READY = 'ready';
|
|
9
9
|
const TIMEOUT_DURATION = exports.TIMEOUT_DURATION = 20000; // 20 seconds timeout duration for webrtc registration
|
|
@@ -88,4 +88,13 @@ const METHODS = exports.METHODS = {
|
|
|
88
88
|
GET_CALL_DETAILS_ON_WEBEX: 'getCallDetailsOnWebex',
|
|
89
89
|
ENSURE_WXAPP_MERCURY_CONNECTED: 'ensureWxAppMercuryConnected'
|
|
90
90
|
};
|
|
91
|
+
const AI_SUMMARY_ERROR_CODES = exports.AI_SUMMARY_ERROR_CODES = {
|
|
92
|
+
POST_CALL_SUMMARY_DISABLED: 'POST_CALL_SUMMARY_DISABLED',
|
|
93
|
+
MID_CALL_SUMMARY_DISABLED: 'MID_CALL_SUMMARY_DISABLED',
|
|
94
|
+
AI_ASSISTANT_BASE_URL_NOT_AVAILABLE: 'AI_ASSISTANT_BASE_URL_NOT_AVAILABLE',
|
|
95
|
+
POST_CALL_SUMMARY_TIMEOUT: 'POST_CALL_SUMMARY_TIMEOUT',
|
|
96
|
+
MID_CALL_SUMMARY_TIMEOUT: 'MID_CALL_SUMMARY_TIMEOUT'
|
|
97
|
+
};
|
|
98
|
+
const AI_SUMMARY_INVALID_RESPONSE_PAYLOAD = exports.AI_SUMMARY_INVALID_RESPONSE_PAYLOAD = 'AI_SUMMARY_INVALID_RESPONSE_PAYLOAD';
|
|
99
|
+
const AI_ASSISTANT_CLIENT_TYPE = exports.AI_ASSISTANT_CLIENT_TYPE = 'WxCC';
|
|
91
100
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EVENT","exports","READY","TIMEOUT_DURATION","EMPTY_STRING","PRODUCT_NAME","LOG_PREFIX","WEB_CALLING_SERVICE_FILE","CONFIG_FILE_NAME","CC_FILE","WELLNESS_BREAK_HANDLER","CONNECTION_SERVICE_FILE","WEB_SOCKET_MANAGER_FILE","AQM_REQS_FILE","WEBEX_REQUEST_FILE","TASK_MANAGER_FILE","TASK_FILE","INBOUND_DIRECTION","OUTDIAL_DIRECTION","ATTRIBUTES","OUTDIAL_MEDIA_TYPE","OUTBOUND_TYPE","UNKNOWN_ERROR","MERCURY_DISCONNECTED_SUCCESS","METHODS","REGISTER","DEREGISTER","GET_BUDDY_AGENTS","CONNECT_WEBSOCKET","STATION_LOGIN","STATION_LOGOUT","STATION_RELOGIN","SET_AGENT_STATE","HANDLE_WEBSOCKET_MESSAGE","SETUP_EVENT_LISTENERS","GET_CONNECTION_CONFIG","HANDLE_CONNECTION_LOST","SILENT_RELOGIN","HANDLE_DEVICE_TYPE","START_OUTDIAL","GET_QUEUES","UPLOAD_LOGS","UPDATE_AGENT_PROFILE","GET_DEVICE_ID","HANDLE_INCOMING_TASK","HANDLE_TASK_HYDRATE","INCOMING_TASK_LISTENER","ACCEPT","REJECT","HOLD","RESUME","HOLD_RESUME","TRANSFER_CALL","CONSULT_TRANSFER","CONSULT_CONFERENCE","DROP_CONFERENCE_PARTICIPANT","EXIT_CONFERENCE","TRANSFER_CONFERENCE","TOGGLE_MUTE","TRANSMIT_DTMF","COMPLETE_TRANSFER","GET_OUTDIAL_ANI_ENTRIES","ACCEPT_PREVIEW_CONTACT","SKIP_PREVIEW_CONTACT","REMOVE_PREVIEW_CONTACT","GET_BASE_URL","SEND_EVENT","GET_REAL_TIME_ASSISTANCE","SEND_REAL_TIME_ASSISTANCE_USER_ACTION","FETCH_HISTORIC_TRANSCRIPTS","REQUEST_WELLNESS_BREAK","RESPOND_TO_WELLNESS_BREAK","GET_WELLBEING_BREAK_IDLE_CODE","SET_MANAGE_WEBEX_CALLING_IN_WXCC","IS_WX_BETTER_TOGETHER_ENABLED","SYNC_WXAPP_MUTE_FROM_MERCURY","GET_CALL_DETAILS_ON_WEBEX","ENSURE_WXAPP_MERCURY_CONNECTED"],"sources":["constants.ts"],"sourcesContent":["export const EVENT = 'event';\nexport const READY = 'ready';\nexport const TIMEOUT_DURATION = 20000; // 20 seconds timeout duration for webrtc registration\nexport const EMPTY_STRING = '';\nexport const PRODUCT_NAME = 'wxcc_sdk';\n// FILE NAMES\nexport const LOG_PREFIX = 'PLUGIN_CC';\nexport const WEB_CALLING_SERVICE_FILE = 'WebCallingService';\nexport const CONFIG_FILE_NAME = 'config-index';\nexport const CC_FILE = 'cc';\nexport const WELLNESS_BREAK_HANDLER = 'Wellness_Break_Handler';\nexport const CONNECTION_SERVICE_FILE = 'connection-service';\nexport const WEB_SOCKET_MANAGER_FILE = 'WebSocketManager';\nexport const AQM_REQS_FILE = 'aqm-reqs';\nexport const WEBEX_REQUEST_FILE = 'WebexRequest';\nexport const TASK_MANAGER_FILE = 'TaskManager';\nexport const TASK_FILE = 'Task';\n// AGENT OUTDIAL CONSTANTS\nexport const INBOUND_DIRECTION = 'INBOUND';\nexport const OUTDIAL_DIRECTION = 'OUTBOUND';\nexport const ATTRIBUTES = {};\nexport const OUTDIAL_MEDIA_TYPE = 'telephony';\nexport const OUTBOUND_TYPE = 'OUTDIAL';\n\n// Log related constants\nexport const UNKNOWN_ERROR = 'Unknown error';\nexport const MERCURY_DISCONNECTED_SUCCESS = 'Mercury disconnected successfully';\n\n// METHOD NAMES\nexport const METHODS = {\n REGISTER: 'register',\n DEREGISTER: 'deregister',\n GET_BUDDY_AGENTS: 'getBuddyAgents',\n CONNECT_WEBSOCKET: 'connectWebsocket',\n STATION_LOGIN: 'stationLogin',\n STATION_LOGOUT: 'stationLogout',\n STATION_RELOGIN: 'stationReLogin',\n SET_AGENT_STATE: 'setAgentState',\n HANDLE_WEBSOCKET_MESSAGE: 'handleWebsocketMessage',\n SETUP_EVENT_LISTENERS: 'setupEventListeners',\n GET_CONNECTION_CONFIG: 'getConnectionConfig',\n HANDLE_CONNECTION_LOST: 'handleConnectionLost',\n SILENT_RELOGIN: 'silentRelogin',\n HANDLE_DEVICE_TYPE: 'handleDeviceType',\n START_OUTDIAL: 'startOutdial',\n GET_QUEUES: 'getQueues',\n UPLOAD_LOGS: 'uploadLogs',\n UPDATE_AGENT_PROFILE: 'updateAgentProfile',\n GET_DEVICE_ID: 'getDeviceId',\n HANDLE_INCOMING_TASK: 'handleIncomingTask',\n HANDLE_TASK_HYDRATE: 'handleTaskHydrate',\n INCOMING_TASK_LISTENER: 'incomingTaskListener',\n ACCEPT: 'accept',\n REJECT: 'decline',\n HOLD: 'hold',\n RESUME: 'resume',\n HOLD_RESUME: 'holdResume',\n TRANSFER_CALL: 'transfer',\n CONSULT_TRANSFER: 'consultTransfer',\n CONSULT_CONFERENCE: 'consultConference',\n DROP_CONFERENCE_PARTICIPANT: 'dropConferenceParticipant',\n EXIT_CONFERENCE: 'exitConference',\n TRANSFER_CONFERENCE: 'transferConference',\n TOGGLE_MUTE: 'toggleMute',\n TRANSMIT_DTMF: 'transmitDtmf',\n COMPLETE_TRANSFER: 'completeTransfer',\n GET_OUTDIAL_ANI_ENTRIES: 'getOutdialAniEntries',\n ACCEPT_PREVIEW_CONTACT: 'acceptPreviewContact',\n SKIP_PREVIEW_CONTACT: 'skipPreviewContact',\n REMOVE_PREVIEW_CONTACT: 'removePreviewContact',\n GET_BASE_URL: 'getBaseUrl',\n SEND_EVENT: 'sendEvent',\n GET_REAL_TIME_ASSISTANCE: 'getRealTimeAssistance',\n SEND_REAL_TIME_ASSISTANCE_USER_ACTION: 'sendRealTimeAssistanceUserAction',\n FETCH_HISTORIC_TRANSCRIPTS: 'fetchHistoricTranscripts',\n REQUEST_WELLNESS_BREAK: 'requestWellnessBreak',\n RESPOND_TO_WELLNESS_BREAK: 'respondToWellnessBreak',\n GET_WELLBEING_BREAK_IDLE_CODE: 'getWellbeingBreakIdleCode',\n SET_MANAGE_WEBEX_CALLING_IN_WXCC: 'setManageWebexCallingInWxcc',\n IS_WX_BETTER_TOGETHER_ENABLED: 'isWxBetterTogetherEnabled',\n SYNC_WXAPP_MUTE_FROM_MERCURY: 'syncWxAppMuteFromMercury',\n GET_CALL_DETAILS_ON_WEBEX: 'getCallDetailsOnWebex',\n ENSURE_WXAPP_MERCURY_CONNECTED: 'ensureWxAppMercuryConnected',\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["EVENT","exports","READY","TIMEOUT_DURATION","EMPTY_STRING","PRODUCT_NAME","LOG_PREFIX","WEB_CALLING_SERVICE_FILE","CONFIG_FILE_NAME","CC_FILE","WELLNESS_BREAK_HANDLER","CONNECTION_SERVICE_FILE","WEB_SOCKET_MANAGER_FILE","AQM_REQS_FILE","WEBEX_REQUEST_FILE","TASK_MANAGER_FILE","TASK_FILE","INBOUND_DIRECTION","OUTDIAL_DIRECTION","ATTRIBUTES","OUTDIAL_MEDIA_TYPE","OUTBOUND_TYPE","UNKNOWN_ERROR","MERCURY_DISCONNECTED_SUCCESS","METHODS","REGISTER","DEREGISTER","GET_BUDDY_AGENTS","CONNECT_WEBSOCKET","STATION_LOGIN","STATION_LOGOUT","STATION_RELOGIN","SET_AGENT_STATE","HANDLE_WEBSOCKET_MESSAGE","SETUP_EVENT_LISTENERS","GET_CONNECTION_CONFIG","HANDLE_CONNECTION_LOST","SILENT_RELOGIN","HANDLE_DEVICE_TYPE","START_OUTDIAL","GET_QUEUES","UPLOAD_LOGS","UPDATE_AGENT_PROFILE","GET_DEVICE_ID","HANDLE_INCOMING_TASK","HANDLE_TASK_HYDRATE","INCOMING_TASK_LISTENER","ACCEPT","REJECT","HOLD","RESUME","HOLD_RESUME","TRANSFER_CALL","CONSULT_TRANSFER","CONSULT_CONFERENCE","DROP_CONFERENCE_PARTICIPANT","EXIT_CONFERENCE","TRANSFER_CONFERENCE","TOGGLE_MUTE","TRANSMIT_DTMF","COMPLETE_TRANSFER","GET_OUTDIAL_ANI_ENTRIES","ACCEPT_PREVIEW_CONTACT","SKIP_PREVIEW_CONTACT","REMOVE_PREVIEW_CONTACT","GET_BASE_URL","SEND_EVENT","GET_REAL_TIME_ASSISTANCE","SEND_REAL_TIME_ASSISTANCE_USER_ACTION","FETCH_HISTORIC_TRANSCRIPTS","REQUEST_WELLNESS_BREAK","RESPOND_TO_WELLNESS_BREAK","GET_WELLBEING_BREAK_IDLE_CODE","SET_MANAGE_WEBEX_CALLING_IN_WXCC","IS_WX_BETTER_TOGETHER_ENABLED","SYNC_WXAPP_MUTE_FROM_MERCURY","GET_CALL_DETAILS_ON_WEBEX","ENSURE_WXAPP_MERCURY_CONNECTED","AI_SUMMARY_ERROR_CODES","POST_CALL_SUMMARY_DISABLED","MID_CALL_SUMMARY_DISABLED","AI_ASSISTANT_BASE_URL_NOT_AVAILABLE","POST_CALL_SUMMARY_TIMEOUT","MID_CALL_SUMMARY_TIMEOUT","AI_SUMMARY_INVALID_RESPONSE_PAYLOAD","AI_ASSISTANT_CLIENT_TYPE"],"sources":["constants.ts"],"sourcesContent":["export const EVENT = 'event';\nexport const READY = 'ready';\nexport const TIMEOUT_DURATION = 20000; // 20 seconds timeout duration for webrtc registration\nexport const EMPTY_STRING = '';\nexport const PRODUCT_NAME = 'wxcc_sdk';\n// FILE NAMES\nexport const LOG_PREFIX = 'PLUGIN_CC';\nexport const WEB_CALLING_SERVICE_FILE = 'WebCallingService';\nexport const CONFIG_FILE_NAME = 'config-index';\nexport const CC_FILE = 'cc';\nexport const WELLNESS_BREAK_HANDLER = 'Wellness_Break_Handler';\nexport const CONNECTION_SERVICE_FILE = 'connection-service';\nexport const WEB_SOCKET_MANAGER_FILE = 'WebSocketManager';\nexport const AQM_REQS_FILE = 'aqm-reqs';\nexport const WEBEX_REQUEST_FILE = 'WebexRequest';\nexport const TASK_MANAGER_FILE = 'TaskManager';\nexport const TASK_FILE = 'Task';\n// AGENT OUTDIAL CONSTANTS\nexport const INBOUND_DIRECTION = 'INBOUND';\nexport const OUTDIAL_DIRECTION = 'OUTBOUND';\nexport const ATTRIBUTES = {};\nexport const OUTDIAL_MEDIA_TYPE = 'telephony';\nexport const OUTBOUND_TYPE = 'OUTDIAL';\n\n// Log related constants\nexport const UNKNOWN_ERROR = 'Unknown error';\nexport const MERCURY_DISCONNECTED_SUCCESS = 'Mercury disconnected successfully';\n\n// METHOD NAMES\nexport const METHODS = {\n REGISTER: 'register',\n DEREGISTER: 'deregister',\n GET_BUDDY_AGENTS: 'getBuddyAgents',\n CONNECT_WEBSOCKET: 'connectWebsocket',\n STATION_LOGIN: 'stationLogin',\n STATION_LOGOUT: 'stationLogout',\n STATION_RELOGIN: 'stationReLogin',\n SET_AGENT_STATE: 'setAgentState',\n HANDLE_WEBSOCKET_MESSAGE: 'handleWebsocketMessage',\n SETUP_EVENT_LISTENERS: 'setupEventListeners',\n GET_CONNECTION_CONFIG: 'getConnectionConfig',\n HANDLE_CONNECTION_LOST: 'handleConnectionLost',\n SILENT_RELOGIN: 'silentRelogin',\n HANDLE_DEVICE_TYPE: 'handleDeviceType',\n START_OUTDIAL: 'startOutdial',\n GET_QUEUES: 'getQueues',\n UPLOAD_LOGS: 'uploadLogs',\n UPDATE_AGENT_PROFILE: 'updateAgentProfile',\n GET_DEVICE_ID: 'getDeviceId',\n HANDLE_INCOMING_TASK: 'handleIncomingTask',\n HANDLE_TASK_HYDRATE: 'handleTaskHydrate',\n INCOMING_TASK_LISTENER: 'incomingTaskListener',\n ACCEPT: 'accept',\n REJECT: 'decline',\n HOLD: 'hold',\n RESUME: 'resume',\n HOLD_RESUME: 'holdResume',\n TRANSFER_CALL: 'transfer',\n CONSULT_TRANSFER: 'consultTransfer',\n CONSULT_CONFERENCE: 'consultConference',\n DROP_CONFERENCE_PARTICIPANT: 'dropConferenceParticipant',\n EXIT_CONFERENCE: 'exitConference',\n TRANSFER_CONFERENCE: 'transferConference',\n TOGGLE_MUTE: 'toggleMute',\n TRANSMIT_DTMF: 'transmitDtmf',\n COMPLETE_TRANSFER: 'completeTransfer',\n GET_OUTDIAL_ANI_ENTRIES: 'getOutdialAniEntries',\n ACCEPT_PREVIEW_CONTACT: 'acceptPreviewContact',\n SKIP_PREVIEW_CONTACT: 'skipPreviewContact',\n REMOVE_PREVIEW_CONTACT: 'removePreviewContact',\n GET_BASE_URL: 'getBaseUrl',\n SEND_EVENT: 'sendEvent',\n GET_REAL_TIME_ASSISTANCE: 'getRealTimeAssistance',\n SEND_REAL_TIME_ASSISTANCE_USER_ACTION: 'sendRealTimeAssistanceUserAction',\n FETCH_HISTORIC_TRANSCRIPTS: 'fetchHistoricTranscripts',\n REQUEST_WELLNESS_BREAK: 'requestWellnessBreak',\n RESPOND_TO_WELLNESS_BREAK: 'respondToWellnessBreak',\n GET_WELLBEING_BREAK_IDLE_CODE: 'getWellbeingBreakIdleCode',\n SET_MANAGE_WEBEX_CALLING_IN_WXCC: 'setManageWebexCallingInWxcc',\n IS_WX_BETTER_TOGETHER_ENABLED: 'isWxBetterTogetherEnabled',\n SYNC_WXAPP_MUTE_FROM_MERCURY: 'syncWxAppMuteFromMercury',\n GET_CALL_DETAILS_ON_WEBEX: 'getCallDetailsOnWebex',\n ENSURE_WXAPP_MERCURY_CONNECTED: 'ensureWxAppMercuryConnected',\n};\n\nexport const AI_SUMMARY_ERROR_CODES = {\n POST_CALL_SUMMARY_DISABLED: 'POST_CALL_SUMMARY_DISABLED',\n MID_CALL_SUMMARY_DISABLED: 'MID_CALL_SUMMARY_DISABLED',\n AI_ASSISTANT_BASE_URL_NOT_AVAILABLE: 'AI_ASSISTANT_BASE_URL_NOT_AVAILABLE',\n POST_CALL_SUMMARY_TIMEOUT: 'POST_CALL_SUMMARY_TIMEOUT',\n MID_CALL_SUMMARY_TIMEOUT: 'MID_CALL_SUMMARY_TIMEOUT',\n} as const;\n\nexport const AI_SUMMARY_INVALID_RESPONSE_PAYLOAD = 'AI_SUMMARY_INVALID_RESPONSE_PAYLOAD';\n\nexport const AI_ASSISTANT_CLIENT_TYPE = 'WxCC' as const;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "AGENT_EVENTS", {
|
|
|
9
9
|
return _types3.AGENT_EVENTS;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
Object.defineProperty(exports, "AI_SUMMARY_ERROR_CODES", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _constants.AI_SUMMARY_ERROR_CODES;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
12
18
|
Object.defineProperty(exports, "AddressBook", {
|
|
13
19
|
enumerable: true,
|
|
14
20
|
get: function () {
|
|
@@ -107,6 +113,7 @@ var _agent = _interopRequireDefault(require("./services/agent"));
|
|
|
107
113
|
var _Task = _interopRequireDefault(require("./services/task/Task"));
|
|
108
114
|
var _AddressBook = _interopRequireDefault(require("./services/AddressBook"));
|
|
109
115
|
var _ApiAiAssistant = _interopRequireDefault(require("./services/ApiAiAssistant"));
|
|
116
|
+
var _constants = require("./constants");
|
|
110
117
|
var _UserPreference = _interopRequireDefault(require("./services/UserPreference"));
|
|
111
118
|
var _types = require("./types");
|
|
112
119
|
var _types2 = require("./services/task/types");
|
|
@@ -116,7 +123,7 @@ var _uiControlsComputer = require("./services/task/state-machine/uiControlsCompu
|
|
|
116
123
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
117
124
|
/**
|
|
118
125
|
* @module ContactCenterModule
|
|
119
|
-
|
|
126
|
+
*/
|
|
120
127
|
|
|
121
128
|
// Core exports
|
|
122
129
|
/**
|
|
@@ -154,7 +161,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
154
161
|
*/
|
|
155
162
|
|
|
156
163
|
/**
|
|
157
|
-
* Contact Center
|
|
164
|
+
* Contact Center task, realtime, and AI Assistant events
|
|
158
165
|
* @enum {string}
|
|
159
166
|
* @category Enums
|
|
160
167
|
*/
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_webexCore","require","_config","_interopRequireDefault","_cc","_agent","_Task","_AddressBook","_ApiAiAssistant","_UserPreference","_types","_types2","_types3","_types4","_uiControlsComputer","e","__esModule","default","registerPlugin","ContactCenter","config","_default","exports"],"sources":["index.ts"],"sourcesContent":["import {registerPlugin} from '@webex/webex-core';\nimport config from './config';\nimport ContactCenter from './cc';\n\n/**\n * @module ContactCenterModule\n
|
|
1
|
+
{"version":3,"names":["_webexCore","require","_config","_interopRequireDefault","_cc","_agent","_Task","_AddressBook","_ApiAiAssistant","_constants","_UserPreference","_types","_types2","_types3","_types4","_uiControlsComputer","e","__esModule","default","registerPlugin","ContactCenter","config","_default","exports"],"sources":["index.ts"],"sourcesContent":["import {registerPlugin} from '@webex/webex-core';\nimport config from './config';\nimport ContactCenter from './cc';\n\n/**\n * @module ContactCenterModule\n */\n\n// Core exports\n/**\n * ContactCenter is the main plugin class for Webex Contact Center integration\n * @category Core\n */\nexport {default as ContactCenter} from './cc';\n\n/**\n * Agent routing service for Contact Center operations\n * @category Services\n */\nexport {default as routingAgent} from './services/agent';\n\n/**\n * Task class represents a contact center task that can be managed by an agent\n * @category Services\n */\nexport {default as Task} from './services/task/Task';\n\n// API exports (AddressBook is public, EntryPoint and Queue are accessed via cc wrappers)\nexport {default as AddressBook} from './services/AddressBook';\nexport {default as ApiAIAssistant} from './services/ApiAiAssistant';\nexport {AI_SUMMARY_ERROR_CODES} from './constants';\nexport {default as UserPreference} from './services/UserPreference';\n\n/** Agent Wellness Break notification and action wire values. */\nexport {WELLNESS_BREAK_NOTIFICATION_ACTIONS, WELLNESS_BREAK_USER_ACTIONS} from './types';\n\n/** EntryPoint API types */\nexport type {\n EntryPointRecord,\n EntryPointListResponse,\n EntryPointSearchParams,\n AddressBookEntry,\n AddressBookEntriesResponse,\n AddressBookEntrySearchParams,\n ContactServiceQueuesResponse,\n ContactServiceQueueSearchParams,\n ContactServiceQueue,\n} from './types';\n\n// Enums\n/**\n * Task Events for Contact Center operations\n * @enum {string}\n * @category Enums\n */\nexport {TASK_EVENTS} from './services/task/types';\nexport type {TASK_EVENTS as TaskEvents} from './services/task/types';\n\n/**\n * Agent Events for Contact Center operations\n * @enum {string}\n * @category Enums\n */\nexport {AGENT_EVENTS} from './services/agent/types';\nexport type {AGENT_EVENTS as AgentEvents} from './services/agent/types';\n\n/**\n * Contact Center task, realtime, and AI Assistant events\n * @enum {string}\n * @category Enums\n */\nexport {CC_TASK_EVENTS} from './services/config/types';\n\n/**\n * Contact Center Agent Events\n * @enum {string}\n * @category Enums\n */\nexport {CC_AGENT_EVENTS} from './services/config/types';\n\n/**\n * Combined Contact Center Events\n * @enum {string}\n * @category Enums\n */\nexport {CC_EVENTS} from './services/config/types';\nexport type {CC_EVENTS as ContactCenterEvents} from './services/config/types';\n\n// Interfaces\n/** Main types and interfaces for Contact Center functionality */\nexport type {\n /** Interface for Contact Center plugin */\n IContactCenter,\n /** Configuration options for Contact Center plugin */\n CCPluginConfig,\n /** WebexSDK interface */\n WebexSDK,\n} from './types';\n\n// Types\n/** Agent related types */\nexport type {\n /** Login options for agents */\n LoginOption,\n /** Agent login information */\n AgentLogin,\n /** Agent device update information */\n AgentProfileUpdate,\n /** Station login response */\n StationLoginResponse,\n /** Station logout response */\n StationLogoutResponse,\n /** Buddy agents response */\n BuddyAgentsResponse,\n /** Buddy agents information */\n BuddyAgents,\n /** Subscribe request parameters */\n SubscribeRequest,\n /** Upload logs response */\n UploadLogsResponse,\n /** Update device type response */\n UpdateDeviceTypeResponse,\n /** Generic error interface */\n GenericError,\n /** Set state response */\n SetStateResponse,\n /** Wellness notification action */\n WellnessBreakNotificationAction,\n /** Wellness action API value */\n WellnessBreakUserAction,\n /** Validated agent-scoped wellness notification */\n WellnessBreakEvent,\n /** Wellness offer-response parameters */\n RespondToWellnessBreakParams,\n} from './types';\n\n/** Task related types */\nexport type {\n AgentContact,\n /** Event emitter contract for task consumers (no @types/node needed) */\n IEventEmitter,\n /** Task interface */\n ITask,\n Interaction,\n TaskData,\n /** Task response */\n TaskResponse,\n /** Conference participant drop request */\n DropConferenceParticipantPayload,\n ConsultPayload,\n ConsultEndPayload,\n ConsultTransferPayLoad,\n /** Dialer payload */\n DialerPayload,\n TransferPayLoad,\n ResumeRecordingPayload,\n WrapupPayLoad,\n /** UI control types for task buttons */\n InteractionUIControls,\n TaskUILeg,\n TaskUIControls,\n TaskUIControlState,\n AISummaryAction,\n AISummaryFeedback,\n AISummaryState,\n AISummarySections,\n AISummary,\n AISummaryFeatureEnablement,\n AISummaryResponse,\n} from './services/task/types';\n\n/** UI controls utilities */\nexport {getDefaultUIControls} from './services/task/state-machine/uiControlsComputer';\n\n/** Agent related types */\nexport type {\n /** State change interface */\n StateChange,\n /** Logout interface */\n Logout,\n /** State change success response */\n StateChangeSuccess,\n /** Station login success response */\n StationLoginSuccess,\n /** Extended station login success response with notification tracking */\n StationLoginSuccessResponse,\n /** Device type update success response */\n DeviceTypeUpdateSuccess,\n /** Agent login success response */\n LogoutSuccess,\n /** Agent relogin success response */\n ReloginSuccess,\n /** Agent state type */\n AgentState,\n /** User station login parameters */\n UserStationLogin,\n /** Device type for agent login */\n DeviceType,\n /** Buddy agent details */\n BuddyDetails,\n /** Buddy agents success response */\n BuddyAgentsSuccess,\n} from './services/agent/types';\n\n/** Config related types */\nexport type {\n /** Profile interface */\n Profile,\n /** Response type from getUserUsingCI method */\n AgentResponse,\n /** Response from getDesktopProfileById */\n DesktopProfileResponse,\n /** Response from getMultimediaProfileById */\n MultimediaProfileResponse,\n /** Response from getListOfTeams */\n ListTeamsResponse,\n /** Response from getListOfAuxCodes */\n ListAuxCodesResponse,\n /** Response from getSiteInfo */\n SiteInfo,\n /** Response from getOrgInfo */\n OrgInfo,\n /** Response from getOrganizationSetting */\n OrgSettings,\n /** Response from getTenantData */\n TenantData,\n /** Response from getURLMapping */\n URLMapping,\n /** Response from getDialPlanData */\n DialPlanEntity,\n /** Auxiliary code information */\n AuxCode,\n /** Team information */\n TeamList,\n /** Wrap-up reason information */\n WrapUpReason,\n /** WebSocket event data */\n WebSocketEvent,\n /** Wrap-up configuration data */\n WrapupData,\n /** Base entity type */\n Entity,\n /** Dial plan configuration */\n DialPlan,\n /** Auxiliary code type (IDLE_CODE or WRAP_UP_CODE) */\n AuxCodeType,\n /** User preference data structure */\n UserPreference as UserPreferenceData,\n /** Request payload for creating user preferences */\n CreateUserPreferenceRequest,\n /** Request payload for updating user preferences */\n UpdateUserPreferenceRequest,\n /** Query parameters for fetching user preferences */\n GetUserPreferenceParams,\n} from './services/config/types';\n\n// Constants\n/**\n * Idle code constant\n * @constant {string}\n * @category Enums\n */\nexport {IDLE_CODE} from './services/config/types';\n\n/**\n * Wrap up code constant\n * @constant {string}\n * @category Enums\n */\nexport {WRAP_UP_CODE} from './services/config/types';\n\nregisterPlugin('cc', ContactCenter, {\n config,\n});\n\n/** The Contact Center plugin default export */\nexport default ContactCenter;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,GAAA,GAAAD,sBAAA,CAAAF,OAAA;AAiBA,IAAAI,MAAA,GAAAF,sBAAA,CAAAF,OAAA;AAMA,IAAAK,KAAA,GAAAH,sBAAA,CAAAF,OAAA;AAGA,IAAAM,YAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,eAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AACA,IAAAS,eAAA,GAAAP,sBAAA,CAAAF,OAAA;AAGA,IAAAU,MAAA,GAAAV,OAAA;AAqBA,IAAAW,OAAA,GAAAX,OAAA;AAQA,IAAAY,OAAA,GAAAZ,OAAA;AAQA,IAAAa,OAAA,GAAAb,OAAA;AAqGA,IAAAc,mBAAA,GAAAd,OAAA;AAAsF,SAAAE,uBAAAa,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAxKtF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;;AAMA;;AAGA;;AAaA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAIA;AACA;;AAUA;AACA;;AAoCA;;AAmCA;;AAGA;;AA8BA;;AAoDA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAGA,IAAAG,yBAAc,EAAC,IAAI,EAAEC,WAAa,EAAE;EAClCC,MAAM,EAANA;AACF,CAAC,CAAC;;AAEF;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAL,OAAA,GACeE,WAAa","ignoreList":[]}
|
|
@@ -196,6 +196,15 @@ const METRIC_EVENT_NAMES = exports.METRIC_EVENT_NAMES = {
|
|
|
196
196
|
AI_ASSISTANT_WELLNESS_EVENT_INVALID: 'AI Assistant Wellness Event Invalid',
|
|
197
197
|
WELLBEING_BREAK_IDLE_CODE_FETCH_SUCCESS: 'Wellbeing Break Idle Code Fetch Success',
|
|
198
198
|
WELLBEING_BREAK_IDLE_CODE_FETCH_FAILED: 'Wellbeing Break Idle Code Fetch Failed',
|
|
199
|
+
// AI summary events
|
|
200
|
+
AI_SUMMARY_GET_POST_CALL_SUCCESS: 'Post Call Summary Get Success',
|
|
201
|
+
AI_SUMMARY_GET_POST_CALL_FAILED: 'Post Call Summary Get Failed',
|
|
202
|
+
AI_SUMMARY_GET_MID_CALL_SUCCESS: 'Mid Call Summary Get Success',
|
|
203
|
+
AI_SUMMARY_GET_MID_CALL_FAILED: 'Mid Call Summary Get Failed',
|
|
204
|
+
AI_SUMMARY_POST_CALL_RESPONSE_SUCCESS: 'Post Call Summary Response Success',
|
|
205
|
+
AI_SUMMARY_POST_CALL_RESPONSE_FAILED: 'Post Call Summary Response Failed',
|
|
206
|
+
AI_SUMMARY_MID_CALL_RESPONSE_SUCCESS: 'Mid Call Summary Response Success',
|
|
207
|
+
AI_SUMMARY_MID_CALL_RESPONSE_FAILED: 'Mid Call Summary Response Failed',
|
|
199
208
|
// User Preference API Events
|
|
200
209
|
USER_PREFERENCE_GET_SUCCESS: 'User Preference Get Success',
|
|
201
210
|
USER_PREFERENCE_GET_FAILED: 'User Preference Get Failed',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["METRIC_EVENT_NAMES","exports","STATION_LOGIN_SUCCESS","STATION_LOGIN_FAILED","STATION_LOGOUT_SUCCESS","STATION_LOGOUT_FAILED","STATION_RELOGIN_SUCCESS","STATION_RELOGIN_FAILED","AGENT_STATE_CHANGE_SUCCESS","AGENT_STATE_CHANGE_FAILED","FETCH_BUDDY_AGENTS_SUCCESS","FETCH_BUDDY_AGENTS_FAILED","WEBSOCKET_REGISTER_SUCCESS","WEBSOCKET_REGISTER_FAILED","AGENT_RONA","AGENT_CONTACT_ASSIGN_FAILED","AGENT_INVITE_FAILED","TASK_ACCEPT_SUCCESS","TASK_ACCEPT_FAILED","TASK_DECLINE_SUCCESS","TASK_DECLINE_FAILED","TASK_END_SUCCESS","TASK_END_FAILED","TASK_WRAPUP_SUCCESS","TASK_WRAPUP_FAILED","TASK_HOLD_SUCCESS","TASK_HOLD_FAILED","TASK_RESUME_SUCCESS","TASK_RESUME_FAILED","TASK_CONSULT_START_SUCCESS","TASK_CONSULT_START_FAILED","TASK_CONSULT_END_SUCCESS","TASK_CONSULT_END_FAILED","TASK_TRANSFER_SUCCESS","TASK_TRANSFER_FAILED","TASK_RESUME_RECORDING_SUCCESS","TASK_RESUME_RECORDING_FAILED","TASK_PAUSE_RECORDING_SUCCESS","TASK_PAUSE_RECORDING_FAILED","TASK_ACCEPT_CONSULT_SUCCESS","TASK_ACCEPT_CONSULT_FAILED","TASK_AUTO_ANSWER_SUCCESS","TASK_AUTO_ANSWER_FAILED","TASK_CONFERENCE_START_SUCCESS","TASK_CONFERENCE_START_FAILED","TASK_CONFERENCE_END_SUCCESS","TASK_CONFERENCE_END_FAILED","TASK_CONFERENCE_TRANSFER_SUCCESS","TASK_CONFERENCE_TRANSFER_FAILED","TASK_CONFERENCE_EXIT_SUCCESS","TASK_CONFERENCE_EXIT_FAILED","TASK_CONFERENCE_PARTICIPANT_DROP_SUCCESS","TASK_CONFERENCE_PARTICIPANT_DROP_FAILED","TASK_SWITCH_CALL_SUCCESS","TASK_SWITCH_CALL_FAILED","TASK_OUTDIAL_SUCCESS","TASK_OUTDIAL_FAILED","WXAPP_TASK_MUTE_SUCCESS","WXAPP_TASK_MUTE_FAILED","WXAPP_TASK_DTMF_SUCCESS","WXAPP_TASK_DTMF_FAILED","WXAPP_TASK_ACCEPT_SUCCESS","WXAPP_TASK_ACCEPT_FAILED","WXAPP_TASK_DECLINE_SUCCESS","WXAPP_TASK_DECLINE_FAILED","WXAPP_SESSION_INIT_SUCCESS","WXAPP_SESSION_INIT_FAILED","WXAPP_SESSION_SKIPPED","WXAPP_USERSUB_PUBLISH_SUCCESS","WXAPP_USERSUB_PUBLISH_FAILED","WXAPP_MERCURY_SUBSCRIBE_SUCCESS","WXAPP_MERCURY_SUBSCRIBE_FAILED","WXAPP_OFFER_PARTICIPANT_FIELDS_MISSING","UPLOAD_LOGS_SUCCESS","UPLOAD_LOGS_FAILED","WEBSOCKET_DEREGISTER_SUCCESS","WEBSOCKET_DEREGISTER_FAIL","AGENT_DEVICE_TYPE_UPDATE_SUCCESS","AGENT_DEVICE_TYPE_UPDATE_FAILED","WEBSOCKET_EVENT_RECEIVED","ENTRYPOINT_FETCH_SUCCESS","ENTRYPOINT_FETCH_FAILED","ADDRESSBOOK_FETCH_SUCCESS","ADDRESSBOOK_FETCH_FAILED","QUEUE_FETCH_SUCCESS","QUEUE_FETCH_FAILED","OUTDIAL_ANI_EP_FETCH_SUCCESS","OUTDIAL_ANI_EP_FETCH_FAILED","CAMPAIGN_PREVIEW_ACCEPT_SUCCESS","CAMPAIGN_PREVIEW_ACCEPT_FAILED","CAMPAIGN_PREVIEW_SKIP_SUCCESS","CAMPAIGN_PREVIEW_SKIP_FAILED","CAMPAIGN_PREVIEW_REMOVE_SUCCESS","CAMPAIGN_PREVIEW_REMOVE_FAILED","AI_ASSISTANT_SEND_EVENT_SUCCESS","AI_ASSISTANT_SEND_EVENT_FAILED","AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_SUCCESS","AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_FAILED","AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_SUCCESS","AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_FAILED","AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_SUCCESS","AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_FAILED","AI_ASSISTANT_WELLNESS_ACTION_ACCEPTED","AI_ASSISTANT_WELLNESS_ACTION_FAILED","AI_ASSISTANT_WELLNESS_EVENT_INVALID","WELLBEING_BREAK_IDLE_CODE_FETCH_SUCCESS","WELLBEING_BREAK_IDLE_CODE_FETCH_FAILED","USER_PREFERENCE_GET_SUCCESS","USER_PREFERENCE_GET_FAILED","USER_PREFERENCE_CREATE_SUCCESS","USER_PREFERENCE_CREATE_FAILED","USER_PREFERENCE_UPDATE_SUCCESS","USER_PREFERENCE_UPDATE_FAILED","USER_PREFERENCE_DELETE_SUCCESS","USER_PREFERENCE_DELETE_FAILED"],"sources":["constants.ts"],"sourcesContent":["type Enum<T extends Record<string, unknown>> = T[keyof T];\n\n/**\n * @ignore\n * @module METRIC_EVENT_NAMES\n * @export\n * @description\n * A constant object containing all metric event names used for tracking various agent and task-related events\n * within the Contact Center plugin. Each property represents a specific event and its corresponding string value\n * as reported in metrics.\n *\n * @property {string} STATION_LOGIN_SUCCESS - Event name for successful station login.\n * @property {string} STATION_LOGIN_FAILED - Event name for failed station login.\n * @property {string} STATION_LOGOUT_SUCCESS - Event name for successful station logout.\n * @property {string} STATION_LOGOUT_FAILED - Event name for failed station logout.\n * @property {string} STATION_RELOGIN_SUCCESS - Event name for successful station relogin.\n * @property {string} STATION_RELOGIN_FAILED - Event name for failed station relogin.\n * @property {string} AGENT_STATE_CHANGE_SUCCESS - Event name for successful agent state change.\n * @property {string} AGENT_STATE_CHANGE_FAILED - Event name for failed agent state change.\n * @property {string} FETCH_BUDDY_AGENTS_SUCCESS - Event name for successfully fetching buddy agents.\n * @property {string} FETCH_BUDDY_AGENTS_FAILED - Event name for failed attempt to fetch buddy agents.\n * @property {string} WEBSOCKET_REGISTER_SUCCESS - Event name for successful websocket registration.\n * @property {string} WEBSOCKET_REGISTER_FAILED - Event name for failed websocket registration.\n * @property {string} AGENT_RONA - Event name for agent RONA (Ring No Answer).\n * @property {string} AGENT_CONTACT_ASSIGN_FAILED - Event name for failed agent contact assignment.\n * @property {string} AGENT_INVITE_FAILED - Event name for failed agent invite.\n *\n * @property {string} TASK_ACCEPT_SUCCESS - Event name for successful task acceptance.\n * @property {string} TASK_ACCEPT_FAILED - Event name for failed task acceptance.\n * @property {string} TASK_DECLINE_SUCCESS - Event name for successful task decline.\n * @property {string} TASK_DECLINE_FAILED - Event name for failed task decline.\n * @property {string} TASK_END_SUCCESS - Event name for successful task end.\n * @property {string} TASK_END_FAILED - Event name for failed task end.\n * @property {string} TASK_WRAPUP_SUCCESS - Event name for successful task wrap-up.\n * @property {string} TASK_WRAPUP_FAILED - Event name for failed task wrap-up.\n * @property {string} TASK_HOLD_SUCCESS - Event name for successful task hold.\n * @property {string} TASK_HOLD_FAILED - Event name for failed task hold.\n * @property {string} TASK_RESUME_SUCCESS - Event name for successful task resume.\n * @property {string} TASK_RESUME_FAILED - Event name for failed task resume.\n * @property {string} TASK_CONSULT_START_SUCCESS - Event name for successful consult start.\n * @property {string} TASK_CONSULT_START_FAILED - Event name for failed consult start.\n * @property {string} TASK_CONSULT_END_SUCCESS - Event name for successful consult end.\n * @property {string} TASK_CONSULT_END_FAILED - Event name for failed consult end.\n * @property {string} TASK_TRANSFER_SUCCESS - Event name for successful task transfer.\n * @property {string} TASK_TRANSFER_FAILED - Event name for failed task transfer.\n * @property {string} TASK_RESUME_RECORDING_SUCCESS - Event name for successful resume of recording.\n * @property {string} TASK_RESUME_RECORDING_FAILED - Event name for failed resume of recording.\n * @property {string} TASK_PAUSE_RECORDING_SUCCESS - Event name for successful pause of recording.\n * @property {string} TASK_PAUSE_RECORDING_FAILED - Event name for failed pause of recording.\n * @property {string} TASK_ACCEPT_CONSULT_SUCCESS - Event name for successful consult acceptance.\n * @property {string} TASK_ACCEPT_CONSULT_FAILED - Event name for failed consult acceptance.\n * @property {string} TASK_AUTO_ANSWER_SUCCESS - Event name for successful auto-answer.\n * @property {string} TASK_AUTO_ANSWER_FAILED - Event name for failed auto-answer.\n *\n * @property {string} TASK_CONFERENCE_START_SUCCESS - Event name for successful conference start.\n * @property {string} TASK_CONFERENCE_START_FAILED - Event name for failed conference start.\n * @property {string} TASK_CONFERENCE_END_SUCCESS - Event name for successful conference end.\n * @property {string} TASK_CONFERENCE_END_FAILED - Event name for failed conference end.\n * @property {string} TASK_CONFERENCE_TRANSFER_SUCCESS - Event name for successful conference transfer.\n * @property {string} TASK_CONFERENCE_TRANSFER_FAILED - Event name for failed conference transfer.\n *\n * @property {string} TASK_OUTDIAL_SUCCESS - Event name for successful outdial task.\n * @property {string} TASK_OUTDIAL_FAILED - Event name for failed outdial task.\n *\n * @property {string} UPLOAD_LOGS_SUCCESS - Event name for successful log upload.\n * @property {string} UPLOAD_LOGS_FAILED - Event name for failed log upload.\n * @property {string} WEBSOCKET_DEREGISTER_SUCCESS - Event name for successful websocket deregistration.\n * @property {string} WEBSOCKET_DEREGISTER_FAIL - Event name for failed websocket deregistration.\n *\n * @property {string} AGENT_DEVICE_TYPE_UPDATE_SUCCESS - Event name for successful agent device type update.\n * @property {string} AGENT_DEVICE_TYPE_UPDATE_FAILED - Event name for failed agent device type update.\n *\n * @property {string} OUTDIAL_ANI_EP_FETCH_SUCCESS - Event name for successful outdial ANI entries fetch.\n * @property {string} OUTDIAL_ANI_EP_FETCH_FAILED - Event name for failed outdial ANI entries fetch.\n *\n * @readonly\n */\nexport const METRIC_EVENT_NAMES = {\n STATION_LOGIN_SUCCESS: 'Station Login Success',\n STATION_LOGIN_FAILED: 'Station Login Failed',\n STATION_LOGOUT_SUCCESS: 'Station Logout Success',\n STATION_LOGOUT_FAILED: 'Station Logout Failed',\n STATION_RELOGIN_SUCCESS: 'Station Relogin Success',\n STATION_RELOGIN_FAILED: 'Station Relogin Failed',\n AGENT_STATE_CHANGE_SUCCESS: 'Agent State Change Success',\n AGENT_STATE_CHANGE_FAILED: 'Agent State Change Failed',\n FETCH_BUDDY_AGENTS_SUCCESS: 'Fetch Buddy Agents Success',\n FETCH_BUDDY_AGENTS_FAILED: 'Fetch Buddy Agents Failed',\n WEBSOCKET_REGISTER_SUCCESS: 'Websocket Register Success',\n WEBSOCKET_REGISTER_FAILED: 'Websocket Register Failed',\n AGENT_RONA: 'Agent RONA',\n AGENT_CONTACT_ASSIGN_FAILED: 'Agent Contact Assign Failed',\n AGENT_INVITE_FAILED: 'Agent Invite Failed',\n\n // Basic Tasks\n TASK_ACCEPT_SUCCESS: 'Task Accept Success',\n TASK_ACCEPT_FAILED: 'Task Accept Failed',\n TASK_DECLINE_SUCCESS: 'Task Decline Success',\n TASK_DECLINE_FAILED: 'Task Decline Failed',\n TASK_END_SUCCESS: 'Task End Success',\n TASK_END_FAILED: 'Task End Failed',\n TASK_WRAPUP_SUCCESS: 'Task Wrapup Success',\n TASK_WRAPUP_FAILED: 'Task Wrapup Failed',\n TASK_HOLD_SUCCESS: 'Task Hold Success',\n TASK_HOLD_FAILED: 'Task Hold Failed',\n TASK_RESUME_SUCCESS: 'Task Resume Success',\n TASK_RESUME_FAILED: 'Task Resume Failed',\n\n // Advanced Tasks\n TASK_CONSULT_START_SUCCESS: 'Task Consult Start Success',\n TASK_CONSULT_START_FAILED: 'Task Consult Start Failed',\n TASK_CONSULT_END_SUCCESS: 'Task Consult End Success',\n TASK_CONSULT_END_FAILED: 'Task Consult End Failed',\n TASK_TRANSFER_SUCCESS: 'Task Transfer Success',\n TASK_TRANSFER_FAILED: 'Task Transfer Failed',\n TASK_RESUME_RECORDING_SUCCESS: 'Task Resume Recording Success',\n TASK_RESUME_RECORDING_FAILED: 'Task Resume Recording Failed',\n TASK_PAUSE_RECORDING_SUCCESS: 'Task Pause Recording Success',\n TASK_PAUSE_RECORDING_FAILED: 'Task Pause Recording Failed',\n TASK_ACCEPT_CONSULT_SUCCESS: 'Task Accept Consult Success',\n TASK_ACCEPT_CONSULT_FAILED: 'Task Accept Consult Failed',\n TASK_AUTO_ANSWER_SUCCESS: 'Task Auto Answer Success',\n TASK_AUTO_ANSWER_FAILED: 'Task Auto Answer Failed',\n\n // Conference Tasks\n TASK_CONFERENCE_START_SUCCESS: 'Task Conference Start Success',\n TASK_CONFERENCE_START_FAILED: 'Task Conference Start Failed',\n TASK_CONFERENCE_END_SUCCESS: 'Task Conference End Success',\n TASK_CONFERENCE_END_FAILED: 'Task Conference End Failed',\n TASK_CONFERENCE_TRANSFER_SUCCESS: 'Task Conference Transfer Success',\n TASK_CONFERENCE_TRANSFER_FAILED: 'Task Conference Transfer Failed',\n TASK_CONFERENCE_EXIT_SUCCESS: 'Task Conference Exit Success',\n TASK_CONFERENCE_EXIT_FAILED: 'Task Conference Exit Failed',\n TASK_CONFERENCE_PARTICIPANT_DROP_SUCCESS: 'Task Conference Participant Drop Success',\n TASK_CONFERENCE_PARTICIPANT_DROP_FAILED: 'Task Conference Participant Drop Failed',\n TASK_SWITCH_CALL_SUCCESS: 'Task Switch Call Success',\n TASK_SWITCH_CALL_FAILED: 'Task Switch Call Failed',\n\n TASK_OUTDIAL_SUCCESS: 'Task Outdial Success',\n TASK_OUTDIAL_FAILED: 'Task Outdial Failed',\n\n WXAPP_TASK_MUTE_SUCCESS: 'WxApp Task Mute Success',\n WXAPP_TASK_MUTE_FAILED: 'WxApp Task Mute Failed',\n WXAPP_TASK_DTMF_SUCCESS: 'WxApp Task Dtmf Success',\n WXAPP_TASK_DTMF_FAILED: 'WxApp Task Dtmf Failed',\n\n // WxApp Better Together\n WXAPP_TASK_ACCEPT_SUCCESS: 'WxApp Task Accept Success',\n WXAPP_TASK_ACCEPT_FAILED: 'WxApp Task Accept Failed',\n WXAPP_TASK_DECLINE_SUCCESS: 'WxApp Task Decline Success',\n WXAPP_TASK_DECLINE_FAILED: 'WxApp Task Decline Failed',\n WXAPP_SESSION_INIT_SUCCESS: 'WxApp Session Init Success',\n WXAPP_SESSION_INIT_FAILED: 'WxApp Session Init Failed',\n WXAPP_SESSION_SKIPPED: 'WxApp Session Skipped',\n WXAPP_USERSUB_PUBLISH_SUCCESS: 'WxApp Usersub Publish Success',\n WXAPP_USERSUB_PUBLISH_FAILED: 'WxApp Usersub Publish Failed',\n WXAPP_MERCURY_SUBSCRIBE_SUCCESS: 'WxApp Mercury Subscribe Success',\n WXAPP_MERCURY_SUBSCRIBE_FAILED: 'WxApp Mercury Subscribe Failed',\n WXAPP_OFFER_PARTICIPANT_FIELDS_MISSING: 'WxApp Offer Participant Fields Missing',\n\n UPLOAD_LOGS_SUCCESS: 'Upload Logs Success',\n UPLOAD_LOGS_FAILED: 'Upload Logs Failed',\n WEBSOCKET_DEREGISTER_SUCCESS: 'Websocket Deregister Success',\n WEBSOCKET_DEREGISTER_FAIL: 'Websocket Deregister Failed',\n\n AGENT_DEVICE_TYPE_UPDATE_SUCCESS: 'Agent Device Type Update Success',\n AGENT_DEVICE_TYPE_UPDATE_FAILED: 'Agent Device Type Update Failed',\n // WebSocket message events\n WEBSOCKET_EVENT_RECEIVED: 'Websocket Event Received',\n\n // EntryPoint API Events\n ENTRYPOINT_FETCH_SUCCESS: 'Entrypoint Fetch Success',\n ENTRYPOINT_FETCH_FAILED: 'Entrypoint Fetch Failed',\n\n // AddressBook API Events\n ADDRESSBOOK_FETCH_SUCCESS: 'AddressBook Fetch Success',\n ADDRESSBOOK_FETCH_FAILED: 'AddressBook Fetch Failed',\n\n // Queue API Events\n QUEUE_FETCH_SUCCESS: 'Queue Fetch Success',\n QUEUE_FETCH_FAILED: 'Queue Fetch Failed',\n\n // Outdial ANI Entries API Events\n OUTDIAL_ANI_EP_FETCH_SUCCESS: 'Outdial ANI Entries Fetch Success',\n OUTDIAL_ANI_EP_FETCH_FAILED: 'Outdial ANI Entries Fetch Failed',\n\n // Campaign Preview API Events\n CAMPAIGN_PREVIEW_ACCEPT_SUCCESS: 'Campaign Preview Accept Success',\n CAMPAIGN_PREVIEW_ACCEPT_FAILED: 'Campaign Preview Accept Failed',\n CAMPAIGN_PREVIEW_SKIP_SUCCESS: 'Campaign Preview Skip Success',\n CAMPAIGN_PREVIEW_SKIP_FAILED: 'Campaign Preview Skip Failed',\n CAMPAIGN_PREVIEW_REMOVE_SUCCESS: 'Campaign Preview Remove Success',\n CAMPAIGN_PREVIEW_REMOVE_FAILED: 'Campaign Preview Remove Failed',\n\n // AI Assistant Transcript events\n AI_ASSISTANT_SEND_EVENT_SUCCESS: 'AI Assistant Send Event Success',\n AI_ASSISTANT_SEND_EVENT_FAILED: 'AI Assistant Send Event Failed',\n AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_SUCCESS: 'AI Assistant Get Real Time Assistance Success',\n AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_FAILED: 'AI Assistant Get Real Time Assistance Failed',\n AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_SUCCESS:\n 'AI Assistant Send Real Time Assistance User Action Success',\n AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_FAILED:\n 'AI Assistant Send Real Time Assistance User Action Failed',\n AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_SUCCESS:\n 'AI Assistant Fetch Historic Transcripts Success',\n AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_FAILED: 'AI Assistant Fetch Historic Transcripts Failed',\n AI_ASSISTANT_WELLNESS_ACTION_ACCEPTED: 'AI Assistant Wellness Action Accepted',\n AI_ASSISTANT_WELLNESS_ACTION_FAILED: 'AI Assistant Wellness Action Failed',\n AI_ASSISTANT_WELLNESS_EVENT_INVALID: 'AI Assistant Wellness Event Invalid',\n WELLBEING_BREAK_IDLE_CODE_FETCH_SUCCESS: 'Wellbeing Break Idle Code Fetch Success',\n WELLBEING_BREAK_IDLE_CODE_FETCH_FAILED: 'Wellbeing Break Idle Code Fetch Failed',\n\n // User Preference API Events\n USER_PREFERENCE_GET_SUCCESS: 'User Preference Get Success',\n USER_PREFERENCE_GET_FAILED: 'User Preference Get Failed',\n USER_PREFERENCE_CREATE_SUCCESS: 'User Preference Create Success',\n USER_PREFERENCE_CREATE_FAILED: 'User Preference Create Failed',\n USER_PREFERENCE_UPDATE_SUCCESS: 'User Preference Update Success',\n USER_PREFERENCE_UPDATE_FAILED: 'User Preference Update Failed',\n USER_PREFERENCE_DELETE_SUCCESS: 'User Preference Delete Success',\n USER_PREFERENCE_DELETE_FAILED: 'User Preference Delete Failed',\n} as const;\n\n/**\n * Represents the possible metric event names used within the metrics system.\n *\n * This type is derived from the keys of the `METRIC_EVENT_NAMES` constant, ensuring\n * type safety and consistency when referring to metric event names throughout the codebase.\n * @export\n * @typedef {Enum<typeof METRIC_EVENT_NAMES>} METRIC_EVENT_NAMES\n * @typeParam T - The type of the `METRIC_EVENT_NAMES` constant.\n *\n * @see {@link METRIC_EVENT_NAMES}\n */\nexport type METRIC_EVENT_NAMES = Enum<typeof METRIC_EVENT_NAMES>;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["METRIC_EVENT_NAMES","exports","STATION_LOGIN_SUCCESS","STATION_LOGIN_FAILED","STATION_LOGOUT_SUCCESS","STATION_LOGOUT_FAILED","STATION_RELOGIN_SUCCESS","STATION_RELOGIN_FAILED","AGENT_STATE_CHANGE_SUCCESS","AGENT_STATE_CHANGE_FAILED","FETCH_BUDDY_AGENTS_SUCCESS","FETCH_BUDDY_AGENTS_FAILED","WEBSOCKET_REGISTER_SUCCESS","WEBSOCKET_REGISTER_FAILED","AGENT_RONA","AGENT_CONTACT_ASSIGN_FAILED","AGENT_INVITE_FAILED","TASK_ACCEPT_SUCCESS","TASK_ACCEPT_FAILED","TASK_DECLINE_SUCCESS","TASK_DECLINE_FAILED","TASK_END_SUCCESS","TASK_END_FAILED","TASK_WRAPUP_SUCCESS","TASK_WRAPUP_FAILED","TASK_HOLD_SUCCESS","TASK_HOLD_FAILED","TASK_RESUME_SUCCESS","TASK_RESUME_FAILED","TASK_CONSULT_START_SUCCESS","TASK_CONSULT_START_FAILED","TASK_CONSULT_END_SUCCESS","TASK_CONSULT_END_FAILED","TASK_TRANSFER_SUCCESS","TASK_TRANSFER_FAILED","TASK_RESUME_RECORDING_SUCCESS","TASK_RESUME_RECORDING_FAILED","TASK_PAUSE_RECORDING_SUCCESS","TASK_PAUSE_RECORDING_FAILED","TASK_ACCEPT_CONSULT_SUCCESS","TASK_ACCEPT_CONSULT_FAILED","TASK_AUTO_ANSWER_SUCCESS","TASK_AUTO_ANSWER_FAILED","TASK_CONFERENCE_START_SUCCESS","TASK_CONFERENCE_START_FAILED","TASK_CONFERENCE_END_SUCCESS","TASK_CONFERENCE_END_FAILED","TASK_CONFERENCE_TRANSFER_SUCCESS","TASK_CONFERENCE_TRANSFER_FAILED","TASK_CONFERENCE_EXIT_SUCCESS","TASK_CONFERENCE_EXIT_FAILED","TASK_CONFERENCE_PARTICIPANT_DROP_SUCCESS","TASK_CONFERENCE_PARTICIPANT_DROP_FAILED","TASK_SWITCH_CALL_SUCCESS","TASK_SWITCH_CALL_FAILED","TASK_OUTDIAL_SUCCESS","TASK_OUTDIAL_FAILED","WXAPP_TASK_MUTE_SUCCESS","WXAPP_TASK_MUTE_FAILED","WXAPP_TASK_DTMF_SUCCESS","WXAPP_TASK_DTMF_FAILED","WXAPP_TASK_ACCEPT_SUCCESS","WXAPP_TASK_ACCEPT_FAILED","WXAPP_TASK_DECLINE_SUCCESS","WXAPP_TASK_DECLINE_FAILED","WXAPP_SESSION_INIT_SUCCESS","WXAPP_SESSION_INIT_FAILED","WXAPP_SESSION_SKIPPED","WXAPP_USERSUB_PUBLISH_SUCCESS","WXAPP_USERSUB_PUBLISH_FAILED","WXAPP_MERCURY_SUBSCRIBE_SUCCESS","WXAPP_MERCURY_SUBSCRIBE_FAILED","WXAPP_OFFER_PARTICIPANT_FIELDS_MISSING","UPLOAD_LOGS_SUCCESS","UPLOAD_LOGS_FAILED","WEBSOCKET_DEREGISTER_SUCCESS","WEBSOCKET_DEREGISTER_FAIL","AGENT_DEVICE_TYPE_UPDATE_SUCCESS","AGENT_DEVICE_TYPE_UPDATE_FAILED","WEBSOCKET_EVENT_RECEIVED","ENTRYPOINT_FETCH_SUCCESS","ENTRYPOINT_FETCH_FAILED","ADDRESSBOOK_FETCH_SUCCESS","ADDRESSBOOK_FETCH_FAILED","QUEUE_FETCH_SUCCESS","QUEUE_FETCH_FAILED","OUTDIAL_ANI_EP_FETCH_SUCCESS","OUTDIAL_ANI_EP_FETCH_FAILED","CAMPAIGN_PREVIEW_ACCEPT_SUCCESS","CAMPAIGN_PREVIEW_ACCEPT_FAILED","CAMPAIGN_PREVIEW_SKIP_SUCCESS","CAMPAIGN_PREVIEW_SKIP_FAILED","CAMPAIGN_PREVIEW_REMOVE_SUCCESS","CAMPAIGN_PREVIEW_REMOVE_FAILED","AI_ASSISTANT_SEND_EVENT_SUCCESS","AI_ASSISTANT_SEND_EVENT_FAILED","AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_SUCCESS","AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_FAILED","AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_SUCCESS","AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_FAILED","AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_SUCCESS","AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_FAILED","AI_ASSISTANT_WELLNESS_ACTION_ACCEPTED","AI_ASSISTANT_WELLNESS_ACTION_FAILED","AI_ASSISTANT_WELLNESS_EVENT_INVALID","WELLBEING_BREAK_IDLE_CODE_FETCH_SUCCESS","WELLBEING_BREAK_IDLE_CODE_FETCH_FAILED","AI_SUMMARY_GET_POST_CALL_SUCCESS","AI_SUMMARY_GET_POST_CALL_FAILED","AI_SUMMARY_GET_MID_CALL_SUCCESS","AI_SUMMARY_GET_MID_CALL_FAILED","AI_SUMMARY_POST_CALL_RESPONSE_SUCCESS","AI_SUMMARY_POST_CALL_RESPONSE_FAILED","AI_SUMMARY_MID_CALL_RESPONSE_SUCCESS","AI_SUMMARY_MID_CALL_RESPONSE_FAILED","USER_PREFERENCE_GET_SUCCESS","USER_PREFERENCE_GET_FAILED","USER_PREFERENCE_CREATE_SUCCESS","USER_PREFERENCE_CREATE_FAILED","USER_PREFERENCE_UPDATE_SUCCESS","USER_PREFERENCE_UPDATE_FAILED","USER_PREFERENCE_DELETE_SUCCESS","USER_PREFERENCE_DELETE_FAILED"],"sources":["constants.ts"],"sourcesContent":["type Enum<T extends Record<string, unknown>> = T[keyof T];\n\n/**\n * @ignore\n * @module METRIC_EVENT_NAMES\n * @export\n * @description\n * A constant object containing all metric event names used for tracking various agent and task-related events\n * within the Contact Center plugin. Each property represents a specific event and its corresponding string value\n * as reported in metrics.\n *\n * @property {string} STATION_LOGIN_SUCCESS - Event name for successful station login.\n * @property {string} STATION_LOGIN_FAILED - Event name for failed station login.\n * @property {string} STATION_LOGOUT_SUCCESS - Event name for successful station logout.\n * @property {string} STATION_LOGOUT_FAILED - Event name for failed station logout.\n * @property {string} STATION_RELOGIN_SUCCESS - Event name for successful station relogin.\n * @property {string} STATION_RELOGIN_FAILED - Event name for failed station relogin.\n * @property {string} AGENT_STATE_CHANGE_SUCCESS - Event name for successful agent state change.\n * @property {string} AGENT_STATE_CHANGE_FAILED - Event name for failed agent state change.\n * @property {string} FETCH_BUDDY_AGENTS_SUCCESS - Event name for successfully fetching buddy agents.\n * @property {string} FETCH_BUDDY_AGENTS_FAILED - Event name for failed attempt to fetch buddy agents.\n * @property {string} WEBSOCKET_REGISTER_SUCCESS - Event name for successful websocket registration.\n * @property {string} WEBSOCKET_REGISTER_FAILED - Event name for failed websocket registration.\n * @property {string} AGENT_RONA - Event name for agent RONA (Ring No Answer).\n * @property {string} AGENT_CONTACT_ASSIGN_FAILED - Event name for failed agent contact assignment.\n * @property {string} AGENT_INVITE_FAILED - Event name for failed agent invite.\n *\n * @property {string} TASK_ACCEPT_SUCCESS - Event name for successful task acceptance.\n * @property {string} TASK_ACCEPT_FAILED - Event name for failed task acceptance.\n * @property {string} TASK_DECLINE_SUCCESS - Event name for successful task decline.\n * @property {string} TASK_DECLINE_FAILED - Event name for failed task decline.\n * @property {string} TASK_END_SUCCESS - Event name for successful task end.\n * @property {string} TASK_END_FAILED - Event name for failed task end.\n * @property {string} TASK_WRAPUP_SUCCESS - Event name for successful task wrap-up.\n * @property {string} TASK_WRAPUP_FAILED - Event name for failed task wrap-up.\n * @property {string} TASK_HOLD_SUCCESS - Event name for successful task hold.\n * @property {string} TASK_HOLD_FAILED - Event name for failed task hold.\n * @property {string} TASK_RESUME_SUCCESS - Event name for successful task resume.\n * @property {string} TASK_RESUME_FAILED - Event name for failed task resume.\n * @property {string} TASK_CONSULT_START_SUCCESS - Event name for successful consult start.\n * @property {string} TASK_CONSULT_START_FAILED - Event name for failed consult start.\n * @property {string} TASK_CONSULT_END_SUCCESS - Event name for successful consult end.\n * @property {string} TASK_CONSULT_END_FAILED - Event name for failed consult end.\n * @property {string} TASK_TRANSFER_SUCCESS - Event name for successful task transfer.\n * @property {string} TASK_TRANSFER_FAILED - Event name for failed task transfer.\n * @property {string} TASK_RESUME_RECORDING_SUCCESS - Event name for successful resume of recording.\n * @property {string} TASK_RESUME_RECORDING_FAILED - Event name for failed resume of recording.\n * @property {string} TASK_PAUSE_RECORDING_SUCCESS - Event name for successful pause of recording.\n * @property {string} TASK_PAUSE_RECORDING_FAILED - Event name for failed pause of recording.\n * @property {string} TASK_ACCEPT_CONSULT_SUCCESS - Event name for successful consult acceptance.\n * @property {string} TASK_ACCEPT_CONSULT_FAILED - Event name for failed consult acceptance.\n * @property {string} TASK_AUTO_ANSWER_SUCCESS - Event name for successful auto-answer.\n * @property {string} TASK_AUTO_ANSWER_FAILED - Event name for failed auto-answer.\n *\n * @property {string} TASK_CONFERENCE_START_SUCCESS - Event name for successful conference start.\n * @property {string} TASK_CONFERENCE_START_FAILED - Event name for failed conference start.\n * @property {string} TASK_CONFERENCE_END_SUCCESS - Event name for successful conference end.\n * @property {string} TASK_CONFERENCE_END_FAILED - Event name for failed conference end.\n * @property {string} TASK_CONFERENCE_TRANSFER_SUCCESS - Event name for successful conference transfer.\n * @property {string} TASK_CONFERENCE_TRANSFER_FAILED - Event name for failed conference transfer.\n *\n * @property {string} TASK_OUTDIAL_SUCCESS - Event name for successful outdial task.\n * @property {string} TASK_OUTDIAL_FAILED - Event name for failed outdial task.\n *\n * @property {string} UPLOAD_LOGS_SUCCESS - Event name for successful log upload.\n * @property {string} UPLOAD_LOGS_FAILED - Event name for failed log upload.\n * @property {string} WEBSOCKET_DEREGISTER_SUCCESS - Event name for successful websocket deregistration.\n * @property {string} WEBSOCKET_DEREGISTER_FAIL - Event name for failed websocket deregistration.\n *\n * @property {string} AGENT_DEVICE_TYPE_UPDATE_SUCCESS - Event name for successful agent device type update.\n * @property {string} AGENT_DEVICE_TYPE_UPDATE_FAILED - Event name for failed agent device type update.\n *\n * @property {string} OUTDIAL_ANI_EP_FETCH_SUCCESS - Event name for successful outdial ANI entries fetch.\n * @property {string} OUTDIAL_ANI_EP_FETCH_FAILED - Event name for failed outdial ANI entries fetch.\n *\n * @readonly\n */\nexport const METRIC_EVENT_NAMES = {\n STATION_LOGIN_SUCCESS: 'Station Login Success',\n STATION_LOGIN_FAILED: 'Station Login Failed',\n STATION_LOGOUT_SUCCESS: 'Station Logout Success',\n STATION_LOGOUT_FAILED: 'Station Logout Failed',\n STATION_RELOGIN_SUCCESS: 'Station Relogin Success',\n STATION_RELOGIN_FAILED: 'Station Relogin Failed',\n AGENT_STATE_CHANGE_SUCCESS: 'Agent State Change Success',\n AGENT_STATE_CHANGE_FAILED: 'Agent State Change Failed',\n FETCH_BUDDY_AGENTS_SUCCESS: 'Fetch Buddy Agents Success',\n FETCH_BUDDY_AGENTS_FAILED: 'Fetch Buddy Agents Failed',\n WEBSOCKET_REGISTER_SUCCESS: 'Websocket Register Success',\n WEBSOCKET_REGISTER_FAILED: 'Websocket Register Failed',\n AGENT_RONA: 'Agent RONA',\n AGENT_CONTACT_ASSIGN_FAILED: 'Agent Contact Assign Failed',\n AGENT_INVITE_FAILED: 'Agent Invite Failed',\n\n // Basic Tasks\n TASK_ACCEPT_SUCCESS: 'Task Accept Success',\n TASK_ACCEPT_FAILED: 'Task Accept Failed',\n TASK_DECLINE_SUCCESS: 'Task Decline Success',\n TASK_DECLINE_FAILED: 'Task Decline Failed',\n TASK_END_SUCCESS: 'Task End Success',\n TASK_END_FAILED: 'Task End Failed',\n TASK_WRAPUP_SUCCESS: 'Task Wrapup Success',\n TASK_WRAPUP_FAILED: 'Task Wrapup Failed',\n TASK_HOLD_SUCCESS: 'Task Hold Success',\n TASK_HOLD_FAILED: 'Task Hold Failed',\n TASK_RESUME_SUCCESS: 'Task Resume Success',\n TASK_RESUME_FAILED: 'Task Resume Failed',\n\n // Advanced Tasks\n TASK_CONSULT_START_SUCCESS: 'Task Consult Start Success',\n TASK_CONSULT_START_FAILED: 'Task Consult Start Failed',\n TASK_CONSULT_END_SUCCESS: 'Task Consult End Success',\n TASK_CONSULT_END_FAILED: 'Task Consult End Failed',\n TASK_TRANSFER_SUCCESS: 'Task Transfer Success',\n TASK_TRANSFER_FAILED: 'Task Transfer Failed',\n TASK_RESUME_RECORDING_SUCCESS: 'Task Resume Recording Success',\n TASK_RESUME_RECORDING_FAILED: 'Task Resume Recording Failed',\n TASK_PAUSE_RECORDING_SUCCESS: 'Task Pause Recording Success',\n TASK_PAUSE_RECORDING_FAILED: 'Task Pause Recording Failed',\n TASK_ACCEPT_CONSULT_SUCCESS: 'Task Accept Consult Success',\n TASK_ACCEPT_CONSULT_FAILED: 'Task Accept Consult Failed',\n TASK_AUTO_ANSWER_SUCCESS: 'Task Auto Answer Success',\n TASK_AUTO_ANSWER_FAILED: 'Task Auto Answer Failed',\n\n // Conference Tasks\n TASK_CONFERENCE_START_SUCCESS: 'Task Conference Start Success',\n TASK_CONFERENCE_START_FAILED: 'Task Conference Start Failed',\n TASK_CONFERENCE_END_SUCCESS: 'Task Conference End Success',\n TASK_CONFERENCE_END_FAILED: 'Task Conference End Failed',\n TASK_CONFERENCE_TRANSFER_SUCCESS: 'Task Conference Transfer Success',\n TASK_CONFERENCE_TRANSFER_FAILED: 'Task Conference Transfer Failed',\n TASK_CONFERENCE_EXIT_SUCCESS: 'Task Conference Exit Success',\n TASK_CONFERENCE_EXIT_FAILED: 'Task Conference Exit Failed',\n TASK_CONFERENCE_PARTICIPANT_DROP_SUCCESS: 'Task Conference Participant Drop Success',\n TASK_CONFERENCE_PARTICIPANT_DROP_FAILED: 'Task Conference Participant Drop Failed',\n TASK_SWITCH_CALL_SUCCESS: 'Task Switch Call Success',\n TASK_SWITCH_CALL_FAILED: 'Task Switch Call Failed',\n\n TASK_OUTDIAL_SUCCESS: 'Task Outdial Success',\n TASK_OUTDIAL_FAILED: 'Task Outdial Failed',\n\n WXAPP_TASK_MUTE_SUCCESS: 'WxApp Task Mute Success',\n WXAPP_TASK_MUTE_FAILED: 'WxApp Task Mute Failed',\n WXAPP_TASK_DTMF_SUCCESS: 'WxApp Task Dtmf Success',\n WXAPP_TASK_DTMF_FAILED: 'WxApp Task Dtmf Failed',\n\n // WxApp Better Together\n WXAPP_TASK_ACCEPT_SUCCESS: 'WxApp Task Accept Success',\n WXAPP_TASK_ACCEPT_FAILED: 'WxApp Task Accept Failed',\n WXAPP_TASK_DECLINE_SUCCESS: 'WxApp Task Decline Success',\n WXAPP_TASK_DECLINE_FAILED: 'WxApp Task Decline Failed',\n WXAPP_SESSION_INIT_SUCCESS: 'WxApp Session Init Success',\n WXAPP_SESSION_INIT_FAILED: 'WxApp Session Init Failed',\n WXAPP_SESSION_SKIPPED: 'WxApp Session Skipped',\n WXAPP_USERSUB_PUBLISH_SUCCESS: 'WxApp Usersub Publish Success',\n WXAPP_USERSUB_PUBLISH_FAILED: 'WxApp Usersub Publish Failed',\n WXAPP_MERCURY_SUBSCRIBE_SUCCESS: 'WxApp Mercury Subscribe Success',\n WXAPP_MERCURY_SUBSCRIBE_FAILED: 'WxApp Mercury Subscribe Failed',\n WXAPP_OFFER_PARTICIPANT_FIELDS_MISSING: 'WxApp Offer Participant Fields Missing',\n\n UPLOAD_LOGS_SUCCESS: 'Upload Logs Success',\n UPLOAD_LOGS_FAILED: 'Upload Logs Failed',\n WEBSOCKET_DEREGISTER_SUCCESS: 'Websocket Deregister Success',\n WEBSOCKET_DEREGISTER_FAIL: 'Websocket Deregister Failed',\n\n AGENT_DEVICE_TYPE_UPDATE_SUCCESS: 'Agent Device Type Update Success',\n AGENT_DEVICE_TYPE_UPDATE_FAILED: 'Agent Device Type Update Failed',\n // WebSocket message events\n WEBSOCKET_EVENT_RECEIVED: 'Websocket Event Received',\n\n // EntryPoint API Events\n ENTRYPOINT_FETCH_SUCCESS: 'Entrypoint Fetch Success',\n ENTRYPOINT_FETCH_FAILED: 'Entrypoint Fetch Failed',\n\n // AddressBook API Events\n ADDRESSBOOK_FETCH_SUCCESS: 'AddressBook Fetch Success',\n ADDRESSBOOK_FETCH_FAILED: 'AddressBook Fetch Failed',\n\n // Queue API Events\n QUEUE_FETCH_SUCCESS: 'Queue Fetch Success',\n QUEUE_FETCH_FAILED: 'Queue Fetch Failed',\n\n // Outdial ANI Entries API Events\n OUTDIAL_ANI_EP_FETCH_SUCCESS: 'Outdial ANI Entries Fetch Success',\n OUTDIAL_ANI_EP_FETCH_FAILED: 'Outdial ANI Entries Fetch Failed',\n\n // Campaign Preview API Events\n CAMPAIGN_PREVIEW_ACCEPT_SUCCESS: 'Campaign Preview Accept Success',\n CAMPAIGN_PREVIEW_ACCEPT_FAILED: 'Campaign Preview Accept Failed',\n CAMPAIGN_PREVIEW_SKIP_SUCCESS: 'Campaign Preview Skip Success',\n CAMPAIGN_PREVIEW_SKIP_FAILED: 'Campaign Preview Skip Failed',\n CAMPAIGN_PREVIEW_REMOVE_SUCCESS: 'Campaign Preview Remove Success',\n CAMPAIGN_PREVIEW_REMOVE_FAILED: 'Campaign Preview Remove Failed',\n\n // AI Assistant Transcript events\n AI_ASSISTANT_SEND_EVENT_SUCCESS: 'AI Assistant Send Event Success',\n AI_ASSISTANT_SEND_EVENT_FAILED: 'AI Assistant Send Event Failed',\n AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_SUCCESS: 'AI Assistant Get Real Time Assistance Success',\n AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_FAILED: 'AI Assistant Get Real Time Assistance Failed',\n AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_SUCCESS:\n 'AI Assistant Send Real Time Assistance User Action Success',\n AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_FAILED:\n 'AI Assistant Send Real Time Assistance User Action Failed',\n AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_SUCCESS:\n 'AI Assistant Fetch Historic Transcripts Success',\n AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_FAILED: 'AI Assistant Fetch Historic Transcripts Failed',\n AI_ASSISTANT_WELLNESS_ACTION_ACCEPTED: 'AI Assistant Wellness Action Accepted',\n AI_ASSISTANT_WELLNESS_ACTION_FAILED: 'AI Assistant Wellness Action Failed',\n AI_ASSISTANT_WELLNESS_EVENT_INVALID: 'AI Assistant Wellness Event Invalid',\n WELLBEING_BREAK_IDLE_CODE_FETCH_SUCCESS: 'Wellbeing Break Idle Code Fetch Success',\n WELLBEING_BREAK_IDLE_CODE_FETCH_FAILED: 'Wellbeing Break Idle Code Fetch Failed',\n\n // AI summary events\n AI_SUMMARY_GET_POST_CALL_SUCCESS: 'Post Call Summary Get Success',\n AI_SUMMARY_GET_POST_CALL_FAILED: 'Post Call Summary Get Failed',\n AI_SUMMARY_GET_MID_CALL_SUCCESS: 'Mid Call Summary Get Success',\n AI_SUMMARY_GET_MID_CALL_FAILED: 'Mid Call Summary Get Failed',\n AI_SUMMARY_POST_CALL_RESPONSE_SUCCESS: 'Post Call Summary Response Success',\n AI_SUMMARY_POST_CALL_RESPONSE_FAILED: 'Post Call Summary Response Failed',\n AI_SUMMARY_MID_CALL_RESPONSE_SUCCESS: 'Mid Call Summary Response Success',\n AI_SUMMARY_MID_CALL_RESPONSE_FAILED: 'Mid Call Summary Response Failed',\n\n // User Preference API Events\n USER_PREFERENCE_GET_SUCCESS: 'User Preference Get Success',\n USER_PREFERENCE_GET_FAILED: 'User Preference Get Failed',\n USER_PREFERENCE_CREATE_SUCCESS: 'User Preference Create Success',\n USER_PREFERENCE_CREATE_FAILED: 'User Preference Create Failed',\n USER_PREFERENCE_UPDATE_SUCCESS: 'User Preference Update Success',\n USER_PREFERENCE_UPDATE_FAILED: 'User Preference Update Failed',\n USER_PREFERENCE_DELETE_SUCCESS: 'User Preference Delete Success',\n USER_PREFERENCE_DELETE_FAILED: 'User Preference Delete Failed',\n} as const;\n\n/**\n * Represents the possible metric event names used within the metrics system.\n *\n * This type is derived from the keys of the `METRIC_EVENT_NAMES` constant, ensuring\n * type safety and consistency when referring to metric event names throughout the codebase.\n * @export\n * @typedef {Enum<typeof METRIC_EVENT_NAMES>} METRIC_EVENT_NAMES\n * @typeParam T - The type of the `METRIC_EVENT_NAMES` constant.\n *\n * @see {@link METRIC_EVENT_NAMES}\n */\nexport type METRIC_EVENT_NAMES = Enum<typeof METRIC_EVENT_NAMES>;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,6 +18,9 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
18
18
|
* @public
|
|
19
19
|
*/
|
|
20
20
|
class ApiAIAssistant {
|
|
21
|
+
/** @internal Current AI flags from the agent configuration. */
|
|
22
|
+
|
|
23
|
+
pendingRtdRequests = new Map();
|
|
21
24
|
createWellnessError(reason) {
|
|
22
25
|
const error = new Error(reason);
|
|
23
26
|
error.details = {
|
|
@@ -147,7 +150,7 @@ class ApiAIAssistant {
|
|
|
147
150
|
if (!wccApiGatewayUrl) {
|
|
148
151
|
const {
|
|
149
152
|
error: detailedError
|
|
150
|
-
} = (0, _Utils.getErrorDetails)(new Error(
|
|
153
|
+
} = (0, _Utils.getErrorDetails)(new Error(_constants2.AI_SUMMARY_ERROR_CODES.AI_ASSISTANT_BASE_URL_NOT_AVAILABLE), _constants2.METHODS.GET_BASE_URL, _constants2.CC_FILE);
|
|
151
154
|
throw detailedError;
|
|
152
155
|
}
|
|
153
156
|
let hostname = '';
|
|
@@ -160,11 +163,78 @@ class ApiAIAssistant {
|
|
|
160
163
|
if (!resolvedEnv) {
|
|
161
164
|
const {
|
|
162
165
|
error: detailedError
|
|
163
|
-
} = (0, _Utils.getErrorDetails)(new Error(
|
|
166
|
+
} = (0, _Utils.getErrorDetails)(new Error(_constants2.AI_SUMMARY_ERROR_CODES.AI_ASSISTANT_BASE_URL_NOT_AVAILABLE), _constants2.METHODS.GET_BASE_URL, _constants2.CC_FILE);
|
|
164
167
|
throw detailedError;
|
|
165
168
|
}
|
|
166
169
|
return _constants3.AI_ASSISTANT_BASE_URL_TEMPLATE.replace('%s', resolvedEnv);
|
|
167
170
|
}
|
|
171
|
+
static getRtdRequestKey(rtdEventType, correlationId) {
|
|
172
|
+
return JSON.stringify([rtdEventType, correlationId]);
|
|
173
|
+
}
|
|
174
|
+
removeRtdRequest(rtdEventType, correlationId, settle) {
|
|
175
|
+
const key = ApiAIAssistant.getRtdRequestKey(rtdEventType, correlationId);
|
|
176
|
+
const request = this.pendingRtdRequests.get(key);
|
|
177
|
+
if (!request) {
|
|
178
|
+
return undefined;
|
|
179
|
+
}
|
|
180
|
+
if (request.timeoutId) {
|
|
181
|
+
clearTimeout(request.timeoutId);
|
|
182
|
+
}
|
|
183
|
+
settle?.(request);
|
|
184
|
+
this.pendingRtdRequests.delete(key);
|
|
185
|
+
return request;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/** Sends an AI event and waits for its matching RTD response. @internal */
|
|
189
|
+
async requestAndWaitForRtd(options) {
|
|
190
|
+
const key = ApiAIAssistant.getRtdRequestKey(options.rtdEventType, options.correlationId);
|
|
191
|
+
let resolveResult = () => undefined;
|
|
192
|
+
let rejectResult = () => undefined;
|
|
193
|
+
const result = new Promise((resolve, reject) => {
|
|
194
|
+
resolveResult = resolve;
|
|
195
|
+
rejectResult = reject;
|
|
196
|
+
});
|
|
197
|
+
const previousRequest = this.pendingRtdRequests.get(key);
|
|
198
|
+
if (previousRequest?.timeoutId) {
|
|
199
|
+
clearTimeout(previousRequest.timeoutId);
|
|
200
|
+
}
|
|
201
|
+
const request = {
|
|
202
|
+
correlationId: options.correlationId,
|
|
203
|
+
rtdEventType: options.rtdEventType,
|
|
204
|
+
resolve: resolveResult,
|
|
205
|
+
reject: rejectResult
|
|
206
|
+
};
|
|
207
|
+
request.timeoutId = setTimeout(() => {
|
|
208
|
+
this.removeRtdRequest(options.rtdEventType, options.correlationId, currentRequest => {
|
|
209
|
+
currentRequest.reject(options.createTimeoutError());
|
|
210
|
+
});
|
|
211
|
+
}, options.timeoutMs);
|
|
212
|
+
this.pendingRtdRequests.set(key, request);
|
|
213
|
+
const publishTimestamp = options.publishTimestamp ?? Date.now();
|
|
214
|
+
const acknowledgement = Promise.resolve().then(() => this.sendEvent(options.agentId, options.interactionId, options.eventType, options.eventName, options.eventMetaData, undefined, undefined, publishTimestamp, options.timeout)).catch(error => {
|
|
215
|
+
this.removeRtdRequest(options.rtdEventType, options.correlationId);
|
|
216
|
+
throw error;
|
|
217
|
+
});
|
|
218
|
+
const [payload] = await Promise.all([result, acknowledgement]);
|
|
219
|
+
return payload;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/** Resolves a pending request from a parsed RTD event. @internal */
|
|
223
|
+
resolveFromRtdEvent(rtdEventType, correlationId, payload) {
|
|
224
|
+
const request = this.removeRtdRequest(rtdEventType, correlationId, currentRequest => {
|
|
225
|
+
currentRequest.resolve(payload);
|
|
226
|
+
});
|
|
227
|
+
return request ? 'resolved' : 'not-found';
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/** Clears pending RTD requests when the RTD lifecycle ends. @internal */
|
|
231
|
+
clearAllRtdRequests() {
|
|
232
|
+
Array.from(this.pendingRtdRequests.values()).forEach(request => {
|
|
233
|
+
this.removeRtdRequest(request.rtdEventType, request.correlationId, currentRequest => {
|
|
234
|
+
currentRequest.reject(new Error('RTD request cleared'));
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
}
|
|
168
238
|
|
|
169
239
|
/**
|
|
170
240
|
* Sends an event to the AI Assistant service.
|
|
@@ -176,7 +246,7 @@ class ApiAIAssistant {
|
|
|
176
246
|
* @param languageCode - language code within eventDetails.data
|
|
177
247
|
* @param trackingId - tracking identifier within eventDetails.data
|
|
178
248
|
*/
|
|
179
|
-
async sendEvent(agentId, interactionId, eventType, eventName, eventMetaData, languageCode, trackingId) {
|
|
249
|
+
async sendEvent(agentId, interactionId, eventType, eventName, eventMetaData, languageCode, trackingId, publishTimestamp, timeout) {
|
|
180
250
|
_loggerProxy.default.info('Sending event', {
|
|
181
251
|
module: _constants2.CC_FILE,
|
|
182
252
|
method: _constants2.METHODS.SEND_EVENT,
|
|
@@ -191,23 +261,30 @@ class ApiAIAssistant {
|
|
|
191
261
|
try {
|
|
192
262
|
const baseUrl = this.getBaseUrl();
|
|
193
263
|
const orgId = this.webex.credentials.getOrgId();
|
|
264
|
+
const data = {
|
|
265
|
+
...eventMetaData,
|
|
266
|
+
interactionId,
|
|
267
|
+
actionTimeStamp: String(Date.now()),
|
|
268
|
+
languageCode,
|
|
269
|
+
trackingId
|
|
270
|
+
};
|
|
194
271
|
const response = await this.webex.request({
|
|
195
272
|
uri: `${baseUrl}${_constants3.AI_ASSISTANT_API_URLS.EVENT}`,
|
|
196
273
|
method: _types.HTTP_METHODS.POST,
|
|
197
274
|
addAuthHeader: true,
|
|
275
|
+
...(timeout !== undefined ? {
|
|
276
|
+
timeout
|
|
277
|
+
} : {}),
|
|
198
278
|
body: {
|
|
199
279
|
agentId,
|
|
200
280
|
orgId,
|
|
201
281
|
eventType,
|
|
202
282
|
eventName,
|
|
283
|
+
...(publishTimestamp !== undefined ? {
|
|
284
|
+
publishTimestamp
|
|
285
|
+
} : {}),
|
|
203
286
|
eventDetails: {
|
|
204
|
-
data
|
|
205
|
-
...eventMetaData,
|
|
206
|
-
interactionId,
|
|
207
|
-
actionTimeStamp: String(Date.now()),
|
|
208
|
-
languageCode,
|
|
209
|
-
trackingId
|
|
210
|
-
}
|
|
287
|
+
data
|
|
211
288
|
}
|
|
212
289
|
}
|
|
213
290
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_uuid","require","_loggerProxy","_interopRequireDefault","_MetricsManager","_constants","_constants2","_types","_Utils","_constants3","e","__esModule","default","ApiAIAssistant","createWellnessError","reason","error","Error","details","type","orgId","webex","credentials","getOrgId","trackingId","data","constructor","wellnessContextProvider","metricsManager","MetricsManager","getInstance","setAIFeatureFlags","aiFeature","sendWellnessBreakAction","action","method","timeEvent","METRIC_EVENT_NAMES","AI_ASSISTANT_WELLNESS_ACTION_ACCEPTED","AI_ASSISTANT_WELLNESS_ACTION_FAILED","context","agentId","trim","agentSessionId","isWellnessBreakEnabled","baseUrl","getBaseUrl","response","request","uri","AI_ASSISTANT_API_URLS","EVENT","HTTP_METHODS","POST","addAuthHeader","body","eventType","AIAssistantEventType","CUSTOM_EVENT","eventName","AIAssistantEventName","WELLNESS_BREAK_ACTION","eventDetails","actionTimeStamp","Date","now","statusCode","trackEvent","LoggerProxy","log","module","CC_FILE","message","String","detailedError","getErrorDetails","requestWellnessBreak","WELLNESS_BREAK_USER_ACTIONS","REQUESTED","METHODS","REQUEST_WELLNESS_BREAK","respondToWellnessBreak","params","ACCEPTED","REJECTED","NO_RESPONSE","includes","RESPOND_TO_WELLNESS_BREAK","wccApiGatewayUrl","internal","services","get","WCC_API_GATEWAY","GET_BASE_URL","hostname","URL","toLowerCase","resolvedEnv","AI_ASSISTANT_ENV_MAP","AI_ASSISTANT_BASE_URL_TEMPLATE","replace","sendEvent","interactionId","eventMetaData","languageCode","info","SEND_EVENT","AI_ASSISTANT_SEND_EVENT_SUCCESS","AI_ASSISTANT_SEND_EVENT_FAILED","getRealTimeAssistance","trimmedContext","uuidv4","ADD_SUGGESTIONS_EXTRA_CONTEXT","GET_SUGGESTIONS","loggerContext","GET_REAL_TIME_ASSISTANCE","AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_SUCCESS","AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_FAILED","suggestedResponses","enable","undefined","sendRealTimeAssistanceUserAction","adaptiveCardId","actionId","actionType","SEND_REAL_TIME_ASSISTANCE_USER_ACTION","AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_SUCCESS","AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_FAILED","SUGGESTED_RESPONSES_USER_ACTION","userAction","fetchHistoricTranscripts","FETCH_HISTORIC_TRANSCRIPTS","AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_SUCCESS","AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_FAILED","realtimeTranscripts","TRANSCRIPTS_LIST","exports","_default"],"sources":["ApiAiAssistant.ts"],"sourcesContent":["import {v4 as uuidv4} from 'uuid';\nimport LoggerProxy from '../logger-proxy';\nimport MetricsManager from '../metrics/MetricsManager';\nimport {METRIC_EVENT_NAMES} from '../metrics/constants';\nimport {CC_FILE, METHODS} from '../constants';\nimport {\n HTTP_METHODS,\n WebexSDK,\n IHttpResponse,\n AIAssistantEventType,\n AIAssistantEventName,\n HistoricTranscriptsResponse,\n RealTimeAssistanceParams,\n RealTimeAssistanceUserActionParams,\n RespondToWellnessBreakParams,\n WellnessBreakUserAction,\n WELLNESS_BREAK_USER_ACTIONS,\n GenericError,\n} from '../types';\nimport {getErrorDetails} from './core/Utils';\nimport {\n AI_ASSISTANT_BASE_URL_TEMPLATE,\n AI_ASSISTANT_ENV_MAP,\n AI_ASSISTANT_API_URLS,\n WCC_API_GATEWAY,\n} from './constants';\nimport {AIFeatureFlags} from './config/types';\n\ntype WellnessBreakContextProvider = () => {\n isWellnessBreakEnabled: boolean;\n agentId?: string;\n agentSessionId?: string;\n};\n\n/**\n * ApiAIAssistant provides AI Assistant APIs for transcript controls.\n * @public\n */\nexport class ApiAIAssistant {\n private webex: WebexSDK;\n private metricsManager: MetricsManager;\n private aiFeature: AIFeatureFlags;\n private readonly wellnessContextProvider?: WellnessBreakContextProvider;\n\n private createWellnessError(reason: string): GenericError {\n const error = new Error(reason) as GenericError;\n error.details = {\n type: 'SDK_VALIDATION_ERROR',\n orgId: this.webex.credentials.getOrgId(),\n trackingId: '',\n data: {reason},\n };\n\n return error;\n }\n\n constructor(webex: WebexSDK, wellnessContextProvider?: WellnessBreakContextProvider) {\n this.webex = webex;\n this.wellnessContextProvider = wellnessContextProvider;\n this.metricsManager = MetricsManager.getInstance({webex});\n }\n\n public setAIFeatureFlags(aiFeature: AIFeatureFlags): void {\n this.aiFeature = aiFeature;\n }\n\n private async sendWellnessBreakAction(\n action: WellnessBreakUserAction,\n method: string\n ): Promise<void> {\n this.metricsManager.timeEvent([\n METRIC_EVENT_NAMES.AI_ASSISTANT_WELLNESS_ACTION_ACCEPTED,\n METRIC_EVENT_NAMES.AI_ASSISTANT_WELLNESS_ACTION_FAILED,\n ]);\n\n try {\n const context = this.wellnessContextProvider?.();\n const agentId = context?.agentId?.trim();\n const agentSessionId = context?.agentSessionId?.trim();\n const orgId = this.webex.credentials.getOrgId()?.trim();\n\n if (context?.isWellnessBreakEnabled !== true) {\n throw this.createWellnessError('WELLNESS_BREAK_NOT_ENABLED');\n }\n if (!orgId) {\n throw this.createWellnessError('WELLNESS_BREAK_ORG_ID_REQUIRED');\n }\n if (!agentId) {\n throw this.createWellnessError('WELLNESS_BREAK_AGENT_ID_REQUIRED');\n }\n if (!agentSessionId) {\n throw this.createWellnessError('WELLNESS_BREAK_AGENT_SESSION_REQUIRED');\n }\n\n const baseUrl = this.getBaseUrl();\n const response = (await this.webex.request({\n uri: `${baseUrl}${AI_ASSISTANT_API_URLS.EVENT}`,\n method: HTTP_METHODS.POST,\n addAuthHeader: true,\n body: {\n agentId,\n orgId,\n eventType: AIAssistantEventType.CUSTOM_EVENT,\n eventName: AIAssistantEventName.WELLNESS_BREAK_ACTION,\n eventDetails: {\n data: {\n action,\n agentSessionId,\n actionTimeStamp: Date.now(),\n },\n },\n },\n })) as IHttpResponse;\n\n if (response.statusCode !== 202) {\n throw this.createWellnessError(\n `WELLNESS_BREAK_ACTION_UNEXPECTED_STATUS_${response.statusCode}`\n );\n }\n\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_WELLNESS_ACTION_ACCEPTED,\n {action},\n ['operational']\n );\n LoggerProxy.log('Wellness action accepted by AI Assistant', {\n module: CC_FILE,\n method,\n data: {action},\n });\n } catch (error) {\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_WELLNESS_ACTION_FAILED,\n {\n action,\n error: error instanceof Error ? error.message : String(error),\n },\n ['operational']\n );\n const {error: detailedError} = getErrorDetails(error, method, CC_FILE);\n throw detailedError;\n }\n }\n\n /**\n * Requests an Agent Wellness Break.\n * The promise resolves when the HTTP request is accepted with status 202; the later\n * approval or denial is delivered independently through a wellness notification.\n * @returns A promise that resolves with no value after HTTP acceptance\n * @throws Structured Contact Center error when disabled, stale, invalid, or delivery fails\n * @example\n * await webex.cc.apiAIAssistant.requestWellnessBreak();\n * @public\n */\n public async requestWellnessBreak(): Promise<void> {\n return this.sendWellnessBreakAction(\n WELLNESS_BREAK_USER_ACTIONS.REQUESTED,\n METHODS.REQUEST_WELLNESS_BREAK\n );\n }\n\n /**\n * Responds to a backend-provided Agent Wellness Break offer.\n * The promise resolves when the HTTP request is accepted with status 202 and does not\n * wait for a WebSocket completion event.\n * @param params - ACCEPTED, REJECTED, or NO_RESPONSE\n * @returns A promise that resolves with no value after HTTP acceptance\n * @throws Structured Contact Center error when disabled, stale, invalid, or delivery fails\n * @example\n * await webex.cc.apiAIAssistant.respondToWellnessBreak({\n * action: WELLNESS_BREAK_USER_ACTIONS.ACCEPTED,\n * });\n * @public\n */\n public async respondToWellnessBreak(params: RespondToWellnessBreakParams): Promise<void> {\n const {action} = params;\n if (\n ![\n WELLNESS_BREAK_USER_ACTIONS.ACCEPTED,\n WELLNESS_BREAK_USER_ACTIONS.REJECTED,\n WELLNESS_BREAK_USER_ACTIONS.NO_RESPONSE,\n ].includes(action)\n ) {\n const {error} = getErrorDetails(\n this.createWellnessError('WELLNESS_BREAK_ACTION_INVALID'),\n METHODS.RESPOND_TO_WELLNESS_BREAK,\n CC_FILE\n );\n throw error;\n }\n\n return this.sendWellnessBreakAction(action, METHODS.RESPOND_TO_WELLNESS_BREAK);\n }\n\n private getBaseUrl(): string {\n const wccApiGatewayUrl = this.webex.internal.services.get(WCC_API_GATEWAY) || '';\n\n if (!wccApiGatewayUrl) {\n const {error: detailedError} = getErrorDetails(\n new Error('AI_ASSISTANT_BASE_URL_NOT_AVAILABLE'),\n METHODS.GET_BASE_URL,\n CC_FILE\n );\n throw detailedError;\n }\n\n let hostname = '';\n try {\n hostname = new URL(wccApiGatewayUrl).hostname.toLowerCase();\n } catch (error) {\n hostname = wccApiGatewayUrl.toLowerCase();\n }\n\n const resolvedEnv = AI_ASSISTANT_ENV_MAP[hostname];\n if (!resolvedEnv) {\n const {error: detailedError} = getErrorDetails(\n new Error('AI_ASSISTANT_BASE_URL_NOT_AVAILABLE'),\n METHODS.GET_BASE_URL,\n CC_FILE\n );\n throw detailedError;\n }\n\n return AI_ASSISTANT_BASE_URL_TEMPLATE.replace('%s', resolvedEnv);\n }\n\n /**\n * Sends an event to the AI Assistant service.\n * @param agentId - agent identifier\n * @param interactionId - interaction/conversation identifier\n * @param eventType - the type of event (e.g. 'CUSTOM_EVENT')\n * @param eventName - the name of the event (e.g. 'GET_TRANSCRIPTS')\n * @param eventMetaData - event-specific fields to include in eventDetails.data\n * @param languageCode - language code within eventDetails.data\n * @param trackingId - tracking identifier within eventDetails.data\n */\n public async sendEvent(\n agentId: string,\n interactionId: string,\n eventType: AIAssistantEventType,\n eventName: AIAssistantEventName,\n eventMetaData?: Record<string, unknown>,\n languageCode?: string,\n trackingId?: string\n ): Promise<Record<string, unknown>> {\n LoggerProxy.info('Sending event', {\n module: CC_FILE,\n method: METHODS.SEND_EVENT,\n interactionId,\n data: {eventType, eventName, eventMetaData},\n });\n this.metricsManager.timeEvent([\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_EVENT_SUCCESS,\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_EVENT_FAILED,\n ]);\n\n try {\n const baseUrl = this.getBaseUrl();\n const orgId = this.webex.credentials.getOrgId();\n const response = (await this.webex.request({\n uri: `${baseUrl}${AI_ASSISTANT_API_URLS.EVENT}`,\n method: HTTP_METHODS.POST,\n addAuthHeader: true,\n body: {\n agentId,\n orgId,\n eventType,\n eventName,\n eventDetails: {\n data: {\n ...eventMetaData,\n interactionId,\n actionTimeStamp: String(Date.now()),\n languageCode,\n trackingId,\n },\n },\n },\n })) as IHttpResponse;\n\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_EVENT_SUCCESS,\n {agentId, orgId, interactionId, eventType, eventName},\n ['operational']\n );\n\n return response?.body || {};\n } catch (error) {\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_EVENT_FAILED,\n {\n interactionId,\n eventType,\n eventName,\n error: error instanceof Error ? error.message : String(error),\n },\n ['operational']\n );\n\n const {error: detailedError} = getErrorDetails(error, METHODS.SEND_EVENT, CC_FILE);\n throw detailedError;\n }\n }\n\n /**\n * Requests real-time assistance for an interaction.\n *\n * @param params - Real-time assistance request parameters\n * @returns HTTP response body from the AI Assistant event API\n * @public\n */\n public async getRealTimeAssistance(params: RealTimeAssistanceParams) {\n const {agentId, interactionId, context} = params;\n const trimmedContext = context?.trim();\n const languageCode = params.languageCode ?? 'en';\n const trackingId = `WX_CC_SDK_${uuidv4()}`;\n const eventName = trimmedContext\n ? AIAssistantEventName.ADD_SUGGESTIONS_EXTRA_CONTEXT\n : AIAssistantEventName.GET_SUGGESTIONS;\n\n const loggerContext = {\n module: CC_FILE,\n method: METHODS.GET_REAL_TIME_ASSISTANCE,\n interactionId,\n trackingId,\n data: {eventName},\n };\n\n LoggerProxy.info('Requesting real-time assistance', loggerContext);\n\n this.metricsManager.timeEvent([\n METRIC_EVENT_NAMES.AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_SUCCESS,\n METRIC_EVENT_NAMES.AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_FAILED,\n ]);\n\n try {\n if (!this.aiFeature?.suggestedResponses?.enable) {\n const {error: detailedError} = getErrorDetails(\n new Error('SUGGESTED_RESPONSES_NOT_ENABLED'),\n METHODS.GET_REAL_TIME_ASSISTANCE,\n CC_FILE\n );\n throw detailedError;\n }\n\n const orgId = this.webex.credentials.getOrgId();\n\n const response = await this.sendEvent(\n agentId,\n interactionId,\n AIAssistantEventType.CUSTOM_EVENT,\n eventName,\n trimmedContext !== undefined ? {context: trimmedContext} : undefined,\n languageCode,\n trackingId\n );\n\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_SUCCESS,\n {\n agentId,\n orgId,\n interactionId,\n eventName,\n trackingId,\n context,\n },\n ['operational']\n );\n LoggerProxy.log('Real-time assistance request succeeded', loggerContext);\n\n return response;\n } catch (error) {\n LoggerProxy.error('Real-time assistance request failed', {...loggerContext, error});\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_FAILED,\n {\n agentId,\n interactionId,\n trackingId,\n eventName,\n error: error instanceof Error ? error.message : String(error),\n },\n ['operational']\n );\n\n const {error: detailedError} = getErrorDetails(\n error,\n METHODS.GET_REAL_TIME_ASSISTANCE,\n CC_FILE\n );\n throw detailedError;\n }\n }\n\n /**\n * Sends user action feedback for a real-time assistance adaptive card.\n *\n * @param params - Real-time assistance user action parameters\n * @returns HTTP response body from the AI Assistant event API\n * @public\n */\n public async sendRealTimeAssistanceUserAction(\n params: RealTimeAssistanceUserActionParams\n ): Promise<Record<string, unknown>> {\n const {agentId, interactionId, adaptiveCardId, actionId} = params;\n const actionType = 'Action.Submit';\n const languageCode = params.languageCode ?? 'en';\n const trackingId = `WX_CC_SDK_${uuidv4()}`;\n\n const loggerContext = {\n module: CC_FILE,\n method: METHODS.SEND_REAL_TIME_ASSISTANCE_USER_ACTION,\n interactionId,\n trackingId,\n data: {actionId, adaptiveCardId},\n };\n\n LoggerProxy.info('Sending real-time assistance user action', loggerContext);\n\n this.metricsManager.timeEvent([\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_SUCCESS,\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_FAILED,\n ]);\n\n try {\n if (!this.aiFeature?.suggestedResponses?.enable) {\n const {error: detailedError} = getErrorDetails(\n new Error('SUGGESTED_RESPONSES_NOT_ENABLED'),\n METHODS.SEND_REAL_TIME_ASSISTANCE_USER_ACTION,\n CC_FILE\n );\n throw detailedError;\n }\n\n const orgId = this.webex.credentials.getOrgId();\n const response = await this.sendEvent(\n agentId,\n interactionId,\n AIAssistantEventType.CUSTOM_EVENT,\n AIAssistantEventName.SUGGESTED_RESPONSES_USER_ACTION,\n {\n adaptiveCardId,\n userAction: {\n actionType,\n actionId,\n },\n },\n languageCode,\n trackingId\n );\n\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_SUCCESS,\n {\n agentId,\n orgId,\n interactionId,\n adaptiveCardId,\n actionId,\n trackingId,\n },\n ['operational']\n );\n LoggerProxy.log('Real-time assistance user action sent', loggerContext);\n\n return response;\n } catch (error) {\n LoggerProxy.error('Real-time assistance user action failed', {...loggerContext, error});\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_FAILED,\n {\n agentId,\n interactionId,\n adaptiveCardId,\n actionId,\n trackingId,\n error: error instanceof Error ? error.message : String(error),\n },\n ['operational']\n );\n\n const {error: detailedError} = getErrorDetails(\n error,\n METHODS.SEND_REAL_TIME_ASSISTANCE_USER_ACTION,\n CC_FILE\n );\n throw detailedError;\n }\n }\n\n /**\n * Fetches historic transcripts for an interaction.\n * This API is allowed only when real-time transcription feature is enabled.\n *\n * @param interactionId - interaction/conversation identifier\n */\n public async fetchHistoricTranscripts(\n agentId: string,\n interactionId: string\n ): Promise<HistoricTranscriptsResponse> {\n LoggerProxy.info('Fetching historic transcripts', {\n module: CC_FILE,\n method: METHODS.FETCH_HISTORIC_TRANSCRIPTS,\n interactionId,\n });\n this.metricsManager.timeEvent([\n METRIC_EVENT_NAMES.AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_SUCCESS,\n METRIC_EVENT_NAMES.AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_FAILED,\n ]);\n if (!this.aiFeature?.realtimeTranscripts?.enable) {\n const {error: detailedError} = getErrorDetails(\n new Error('REAL_TIME_TRANSCRIPTION_NOT_ENABLED'),\n METHODS.FETCH_HISTORIC_TRANSCRIPTS,\n CC_FILE\n );\n throw detailedError;\n }\n\n try {\n const baseUrl = this.getBaseUrl();\n const orgId = this.webex.credentials.getOrgId();\n const response = (await this.webex.request({\n uri: `${baseUrl}${AI_ASSISTANT_API_URLS.TRANSCRIPTS_LIST}`,\n method: HTTP_METHODS.POST,\n addAuthHeader: true,\n body: {\n agentId,\n orgId,\n interactionId,\n },\n })) as IHttpResponse;\n\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_SUCCESS,\n {agentId, orgId, interactionId},\n ['operational']\n );\n\n return response.body as HistoricTranscriptsResponse;\n } catch (error) {\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_FAILED,\n {\n interactionId,\n error: error instanceof Error ? error.message : String(error),\n },\n ['operational']\n );\n\n if (error instanceof Error) {\n throw error;\n }\n const {error: detailedError} = getErrorDetails(\n error,\n METHODS.FETCH_HISTORIC_TRANSCRIPTS,\n CC_FILE\n );\n throw detailedError;\n }\n }\n}\n\nexport default ApiAIAssistant;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_uuid","require","_loggerProxy","_interopRequireDefault","_MetricsManager","_constants","_constants2","_types","_Utils","_constants3","e","__esModule","default","ApiAIAssistant","pendingRtdRequests","Map","createWellnessError","reason","error","Error","details","type","orgId","webex","credentials","getOrgId","trackingId","data","constructor","wellnessContextProvider","metricsManager","MetricsManager","getInstance","setAIFeatureFlags","aiFeature","sendWellnessBreakAction","action","method","timeEvent","METRIC_EVENT_NAMES","AI_ASSISTANT_WELLNESS_ACTION_ACCEPTED","AI_ASSISTANT_WELLNESS_ACTION_FAILED","context","agentId","trim","agentSessionId","isWellnessBreakEnabled","baseUrl","getBaseUrl","response","request","uri","AI_ASSISTANT_API_URLS","EVENT","HTTP_METHODS","POST","addAuthHeader","body","eventType","AIAssistantEventType","CUSTOM_EVENT","eventName","AIAssistantEventName","WELLNESS_BREAK_ACTION","eventDetails","actionTimeStamp","Date","now","statusCode","trackEvent","LoggerProxy","log","module","CC_FILE","message","String","detailedError","getErrorDetails","requestWellnessBreak","WELLNESS_BREAK_USER_ACTIONS","REQUESTED","METHODS","REQUEST_WELLNESS_BREAK","respondToWellnessBreak","params","ACCEPTED","REJECTED","NO_RESPONSE","includes","RESPOND_TO_WELLNESS_BREAK","wccApiGatewayUrl","internal","services","get","WCC_API_GATEWAY","AI_SUMMARY_ERROR_CODES","AI_ASSISTANT_BASE_URL_NOT_AVAILABLE","GET_BASE_URL","hostname","URL","toLowerCase","resolvedEnv","AI_ASSISTANT_ENV_MAP","AI_ASSISTANT_BASE_URL_TEMPLATE","replace","getRtdRequestKey","rtdEventType","correlationId","JSON","stringify","removeRtdRequest","settle","key","undefined","timeoutId","clearTimeout","delete","requestAndWaitForRtd","options","resolveResult","rejectResult","result","Promise","resolve","reject","previousRequest","setTimeout","currentRequest","createTimeoutError","timeoutMs","set","publishTimestamp","acknowledgement","then","sendEvent","interactionId","eventMetaData","timeout","catch","payload","all","resolveFromRtdEvent","clearAllRtdRequests","Array","from","values","forEach","languageCode","info","SEND_EVENT","AI_ASSISTANT_SEND_EVENT_SUCCESS","AI_ASSISTANT_SEND_EVENT_FAILED","getRealTimeAssistance","trimmedContext","uuidv4","ADD_SUGGESTIONS_EXTRA_CONTEXT","GET_SUGGESTIONS","loggerContext","GET_REAL_TIME_ASSISTANCE","AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_SUCCESS","AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_FAILED","suggestedResponses","enable","sendRealTimeAssistanceUserAction","adaptiveCardId","actionId","actionType","SEND_REAL_TIME_ASSISTANCE_USER_ACTION","AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_SUCCESS","AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_FAILED","SUGGESTED_RESPONSES_USER_ACTION","userAction","fetchHistoricTranscripts","FETCH_HISTORIC_TRANSCRIPTS","AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_SUCCESS","AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_FAILED","realtimeTranscripts","TRANSCRIPTS_LIST","exports","_default"],"sources":["ApiAiAssistant.ts"],"sourcesContent":["import {v4 as uuidv4} from 'uuid';\nimport LoggerProxy from '../logger-proxy';\nimport MetricsManager from '../metrics/MetricsManager';\nimport {METRIC_EVENT_NAMES} from '../metrics/constants';\nimport {AI_SUMMARY_ERROR_CODES, CC_FILE, METHODS} from '../constants';\nimport {\n HTTP_METHODS,\n WebexSDK,\n IHttpResponse,\n AIAssistantEventType,\n AIAssistantEventName,\n HistoricTranscriptsResponse,\n RealTimeAssistanceParams,\n RealTimeAssistanceUserActionParams,\n RespondToWellnessBreakParams,\n WellnessBreakUserAction,\n WELLNESS_BREAK_USER_ACTIONS,\n GenericError,\n} from '../types';\nimport {getErrorDetails} from './core/Utils';\nimport type {PendingRtdRequest, RtdRequestOptions} from './core/types';\nimport {\n AI_ASSISTANT_BASE_URL_TEMPLATE,\n AI_ASSISTANT_ENV_MAP,\n AI_ASSISTANT_API_URLS,\n WCC_API_GATEWAY,\n} from './constants';\nimport {AIFeatureFlags} from './config/types';\n\ntype WellnessBreakContextProvider = () => {\n isWellnessBreakEnabled: boolean;\n agentId?: string;\n agentSessionId?: string;\n};\n\n/**\n * ApiAIAssistant provides AI Assistant APIs for transcript controls.\n * @public\n */\nexport class ApiAIAssistant {\n private webex: WebexSDK;\n private metricsManager: MetricsManager;\n /** @internal Current AI flags from the agent configuration. */\n public aiFeature: AIFeatureFlags;\n private pendingRtdRequests = new Map<string, PendingRtdRequest<unknown>>();\n private readonly wellnessContextProvider?: WellnessBreakContextProvider;\n\n private createWellnessError(reason: string): GenericError {\n const error = new Error(reason) as GenericError;\n error.details = {\n type: 'SDK_VALIDATION_ERROR',\n orgId: this.webex.credentials.getOrgId(),\n trackingId: '',\n data: {reason},\n };\n\n return error;\n }\n\n constructor(webex: WebexSDK, wellnessContextProvider?: WellnessBreakContextProvider) {\n this.webex = webex;\n this.wellnessContextProvider = wellnessContextProvider;\n this.metricsManager = MetricsManager.getInstance({webex});\n }\n\n public setAIFeatureFlags(aiFeature: AIFeatureFlags): void {\n this.aiFeature = aiFeature;\n }\n\n private async sendWellnessBreakAction(\n action: WellnessBreakUserAction,\n method: string\n ): Promise<void> {\n this.metricsManager.timeEvent([\n METRIC_EVENT_NAMES.AI_ASSISTANT_WELLNESS_ACTION_ACCEPTED,\n METRIC_EVENT_NAMES.AI_ASSISTANT_WELLNESS_ACTION_FAILED,\n ]);\n\n try {\n const context = this.wellnessContextProvider?.();\n const agentId = context?.agentId?.trim();\n const agentSessionId = context?.agentSessionId?.trim();\n const orgId = this.webex.credentials.getOrgId()?.trim();\n\n if (context?.isWellnessBreakEnabled !== true) {\n throw this.createWellnessError('WELLNESS_BREAK_NOT_ENABLED');\n }\n if (!orgId) {\n throw this.createWellnessError('WELLNESS_BREAK_ORG_ID_REQUIRED');\n }\n if (!agentId) {\n throw this.createWellnessError('WELLNESS_BREAK_AGENT_ID_REQUIRED');\n }\n if (!agentSessionId) {\n throw this.createWellnessError('WELLNESS_BREAK_AGENT_SESSION_REQUIRED');\n }\n\n const baseUrl = this.getBaseUrl();\n const response = (await this.webex.request({\n uri: `${baseUrl}${AI_ASSISTANT_API_URLS.EVENT}`,\n method: HTTP_METHODS.POST,\n addAuthHeader: true,\n body: {\n agentId,\n orgId,\n eventType: AIAssistantEventType.CUSTOM_EVENT,\n eventName: AIAssistantEventName.WELLNESS_BREAK_ACTION,\n eventDetails: {\n data: {\n action,\n agentSessionId,\n actionTimeStamp: Date.now(),\n },\n },\n },\n })) as IHttpResponse;\n\n if (response.statusCode !== 202) {\n throw this.createWellnessError(\n `WELLNESS_BREAK_ACTION_UNEXPECTED_STATUS_${response.statusCode}`\n );\n }\n\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_WELLNESS_ACTION_ACCEPTED,\n {action},\n ['operational']\n );\n LoggerProxy.log('Wellness action accepted by AI Assistant', {\n module: CC_FILE,\n method,\n data: {action},\n });\n } catch (error) {\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_WELLNESS_ACTION_FAILED,\n {\n action,\n error: error instanceof Error ? error.message : String(error),\n },\n ['operational']\n );\n const {error: detailedError} = getErrorDetails(error, method, CC_FILE);\n throw detailedError;\n }\n }\n\n /**\n * Requests an Agent Wellness Break.\n * The promise resolves when the HTTP request is accepted with status 202; the later\n * approval or denial is delivered independently through a wellness notification.\n * @returns A promise that resolves with no value after HTTP acceptance\n * @throws Structured Contact Center error when disabled, stale, invalid, or delivery fails\n * @example\n * await webex.cc.apiAIAssistant.requestWellnessBreak();\n * @public\n */\n public async requestWellnessBreak(): Promise<void> {\n return this.sendWellnessBreakAction(\n WELLNESS_BREAK_USER_ACTIONS.REQUESTED,\n METHODS.REQUEST_WELLNESS_BREAK\n );\n }\n\n /**\n * Responds to a backend-provided Agent Wellness Break offer.\n * The promise resolves when the HTTP request is accepted with status 202 and does not\n * wait for a WebSocket completion event.\n * @param params - ACCEPTED, REJECTED, or NO_RESPONSE\n * @returns A promise that resolves with no value after HTTP acceptance\n * @throws Structured Contact Center error when disabled, stale, invalid, or delivery fails\n * @example\n * await webex.cc.apiAIAssistant.respondToWellnessBreak({\n * action: WELLNESS_BREAK_USER_ACTIONS.ACCEPTED,\n * });\n * @public\n */\n public async respondToWellnessBreak(params: RespondToWellnessBreakParams): Promise<void> {\n const {action} = params;\n if (\n ![\n WELLNESS_BREAK_USER_ACTIONS.ACCEPTED,\n WELLNESS_BREAK_USER_ACTIONS.REJECTED,\n WELLNESS_BREAK_USER_ACTIONS.NO_RESPONSE,\n ].includes(action)\n ) {\n const {error} = getErrorDetails(\n this.createWellnessError('WELLNESS_BREAK_ACTION_INVALID'),\n METHODS.RESPOND_TO_WELLNESS_BREAK,\n CC_FILE\n );\n throw error;\n }\n\n return this.sendWellnessBreakAction(action, METHODS.RESPOND_TO_WELLNESS_BREAK);\n }\n\n private getBaseUrl(): string {\n const wccApiGatewayUrl = this.webex.internal.services.get(WCC_API_GATEWAY) || '';\n\n if (!wccApiGatewayUrl) {\n const {error: detailedError} = getErrorDetails(\n new Error(AI_SUMMARY_ERROR_CODES.AI_ASSISTANT_BASE_URL_NOT_AVAILABLE),\n METHODS.GET_BASE_URL,\n CC_FILE\n );\n throw detailedError;\n }\n\n let hostname = '';\n try {\n hostname = new URL(wccApiGatewayUrl).hostname.toLowerCase();\n } catch (error) {\n hostname = wccApiGatewayUrl.toLowerCase();\n }\n\n const resolvedEnv = AI_ASSISTANT_ENV_MAP[hostname];\n\n if (!resolvedEnv) {\n const {error: detailedError} = getErrorDetails(\n new Error(AI_SUMMARY_ERROR_CODES.AI_ASSISTANT_BASE_URL_NOT_AVAILABLE),\n METHODS.GET_BASE_URL,\n CC_FILE\n );\n throw detailedError;\n }\n\n return AI_ASSISTANT_BASE_URL_TEMPLATE.replace('%s', resolvedEnv);\n }\n\n private static getRtdRequestKey(rtdEventType: string, correlationId: string): string {\n return JSON.stringify([rtdEventType, correlationId]);\n }\n\n private removeRtdRequest<T>(\n rtdEventType: string,\n correlationId: string,\n settle?: (request: PendingRtdRequest<T>) => void\n ): PendingRtdRequest<T> | undefined {\n const key = ApiAIAssistant.getRtdRequestKey(rtdEventType, correlationId);\n const request = this.pendingRtdRequests.get(key) as PendingRtdRequest<T> | undefined;\n\n if (!request) {\n return undefined;\n }\n\n if (request.timeoutId) {\n clearTimeout(request.timeoutId);\n }\n\n settle?.(request);\n this.pendingRtdRequests.delete(key);\n\n return request;\n }\n\n /** Sends an AI event and waits for its matching RTD response. @internal */\n public async requestAndWaitForRtd<T>(options: RtdRequestOptions): Promise<T> {\n const key = ApiAIAssistant.getRtdRequestKey(options.rtdEventType, options.correlationId);\n let resolveResult: (payload: T) => void = () => undefined;\n let rejectResult: (error: Error) => void = () => undefined;\n const result = new Promise<T>((resolve, reject) => {\n resolveResult = resolve;\n rejectResult = reject;\n });\n const previousRequest = this.pendingRtdRequests.get(key);\n if (previousRequest?.timeoutId) {\n clearTimeout(previousRequest.timeoutId);\n }\n const request: PendingRtdRequest<T> = {\n correlationId: options.correlationId,\n rtdEventType: options.rtdEventType,\n resolve: resolveResult,\n reject: rejectResult,\n };\n\n request.timeoutId = setTimeout(() => {\n this.removeRtdRequest<T>(options.rtdEventType, options.correlationId, (currentRequest) => {\n currentRequest.reject(options.createTimeoutError());\n });\n }, options.timeoutMs);\n this.pendingRtdRequests.set(key, request as PendingRtdRequest<unknown>);\n const publishTimestamp = options.publishTimestamp ?? Date.now();\n const acknowledgement = Promise.resolve()\n .then(() =>\n this.sendEvent(\n options.agentId,\n options.interactionId,\n options.eventType,\n options.eventName,\n options.eventMetaData,\n undefined,\n undefined,\n publishTimestamp,\n options.timeout\n )\n )\n .catch((error) => {\n this.removeRtdRequest(options.rtdEventType, options.correlationId);\n throw error;\n });\n\n const [payload] = await Promise.all([result, acknowledgement]);\n\n return payload;\n }\n\n /** Resolves a pending request from a parsed RTD event. @internal */\n public resolveFromRtdEvent<T>(\n rtdEventType: string,\n correlationId: string,\n payload: T\n ): 'resolved' | 'not-found' {\n const request = this.removeRtdRequest<T>(rtdEventType, correlationId, (currentRequest) => {\n currentRequest.resolve(payload);\n });\n\n return request ? 'resolved' : 'not-found';\n }\n\n /** Clears pending RTD requests when the RTD lifecycle ends. @internal */\n public clearAllRtdRequests(): void {\n Array.from(this.pendingRtdRequests.values()).forEach((request) => {\n this.removeRtdRequest(request.rtdEventType, request.correlationId, (currentRequest) => {\n currentRequest.reject(new Error('RTD request cleared'));\n });\n });\n }\n\n /**\n * Sends an event to the AI Assistant service.\n * @param agentId - agent identifier\n * @param interactionId - interaction/conversation identifier\n * @param eventType - the type of event (e.g. 'CUSTOM_EVENT')\n * @param eventName - the name of the event (e.g. 'GET_TRANSCRIPTS')\n * @param eventMetaData - event-specific fields to include in eventDetails.data\n * @param languageCode - language code within eventDetails.data\n * @param trackingId - tracking identifier within eventDetails.data\n */\n public async sendEvent(\n agentId: string,\n interactionId: string,\n eventType: AIAssistantEventType,\n eventName: AIAssistantEventName,\n eventMetaData?: Record<string, unknown>,\n languageCode?: string,\n trackingId?: string,\n publishTimestamp?: number,\n timeout?: number\n ): Promise<Record<string, unknown>> {\n LoggerProxy.info('Sending event', {\n module: CC_FILE,\n method: METHODS.SEND_EVENT,\n interactionId,\n data: {eventType, eventName, eventMetaData},\n });\n this.metricsManager.timeEvent([\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_EVENT_SUCCESS,\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_EVENT_FAILED,\n ]);\n\n try {\n const baseUrl = this.getBaseUrl();\n const orgId = this.webex.credentials.getOrgId();\n const data = {\n ...eventMetaData,\n interactionId,\n actionTimeStamp: String(Date.now()),\n languageCode,\n trackingId,\n };\n const response = (await this.webex.request({\n uri: `${baseUrl}${AI_ASSISTANT_API_URLS.EVENT}`,\n method: HTTP_METHODS.POST,\n addAuthHeader: true,\n ...(timeout !== undefined ? {timeout} : {}),\n body: {\n agentId,\n orgId,\n eventType,\n eventName,\n ...(publishTimestamp !== undefined ? {publishTimestamp} : {}),\n eventDetails: {\n data,\n },\n },\n })) as IHttpResponse;\n\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_EVENT_SUCCESS,\n {agentId, orgId, interactionId, eventType, eventName},\n ['operational']\n );\n\n return response?.body || {};\n } catch (error) {\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_EVENT_FAILED,\n {\n interactionId,\n eventType,\n eventName,\n error: error instanceof Error ? error.message : String(error),\n },\n ['operational']\n );\n\n const {error: detailedError} = getErrorDetails(error, METHODS.SEND_EVENT, CC_FILE);\n throw detailedError;\n }\n }\n\n /**\n * Requests real-time assistance for an interaction.\n *\n * @param params - Real-time assistance request parameters\n * @returns HTTP response body from the AI Assistant event API\n * @public\n */\n public async getRealTimeAssistance(params: RealTimeAssistanceParams) {\n const {agentId, interactionId, context} = params;\n const trimmedContext = context?.trim();\n const languageCode = params.languageCode ?? 'en';\n const trackingId = `WX_CC_SDK_${uuidv4()}`;\n const eventName = trimmedContext\n ? AIAssistantEventName.ADD_SUGGESTIONS_EXTRA_CONTEXT\n : AIAssistantEventName.GET_SUGGESTIONS;\n\n const loggerContext = {\n module: CC_FILE,\n method: METHODS.GET_REAL_TIME_ASSISTANCE,\n interactionId,\n trackingId,\n data: {eventName},\n };\n\n LoggerProxy.info('Requesting real-time assistance', loggerContext);\n\n this.metricsManager.timeEvent([\n METRIC_EVENT_NAMES.AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_SUCCESS,\n METRIC_EVENT_NAMES.AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_FAILED,\n ]);\n\n try {\n if (!this.aiFeature?.suggestedResponses?.enable) {\n const {error: detailedError} = getErrorDetails(\n new Error('SUGGESTED_RESPONSES_NOT_ENABLED'),\n METHODS.GET_REAL_TIME_ASSISTANCE,\n CC_FILE\n );\n throw detailedError;\n }\n\n const orgId = this.webex.credentials.getOrgId();\n\n const response = await this.sendEvent(\n agentId,\n interactionId,\n AIAssistantEventType.CUSTOM_EVENT,\n eventName,\n trimmedContext !== undefined ? {context: trimmedContext} : undefined,\n languageCode,\n trackingId\n );\n\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_SUCCESS,\n {\n agentId,\n orgId,\n interactionId,\n eventName,\n trackingId,\n context,\n },\n ['operational']\n );\n LoggerProxy.log('Real-time assistance request succeeded', loggerContext);\n\n return response;\n } catch (error) {\n LoggerProxy.error('Real-time assistance request failed', {...loggerContext, error});\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_FAILED,\n {\n agentId,\n interactionId,\n trackingId,\n eventName,\n error: error instanceof Error ? error.message : String(error),\n },\n ['operational']\n );\n\n const {error: detailedError} = getErrorDetails(\n error,\n METHODS.GET_REAL_TIME_ASSISTANCE,\n CC_FILE\n );\n throw detailedError;\n }\n }\n\n /**\n * Sends user action feedback for a real-time assistance adaptive card.\n *\n * @param params - Real-time assistance user action parameters\n * @returns HTTP response body from the AI Assistant event API\n * @public\n */\n public async sendRealTimeAssistanceUserAction(\n params: RealTimeAssistanceUserActionParams\n ): Promise<Record<string, unknown>> {\n const {agentId, interactionId, adaptiveCardId, actionId} = params;\n const actionType = 'Action.Submit';\n const languageCode = params.languageCode ?? 'en';\n const trackingId = `WX_CC_SDK_${uuidv4()}`;\n\n const loggerContext = {\n module: CC_FILE,\n method: METHODS.SEND_REAL_TIME_ASSISTANCE_USER_ACTION,\n interactionId,\n trackingId,\n data: {actionId, adaptiveCardId},\n };\n\n LoggerProxy.info('Sending real-time assistance user action', loggerContext);\n\n this.metricsManager.timeEvent([\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_SUCCESS,\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_FAILED,\n ]);\n\n try {\n if (!this.aiFeature?.suggestedResponses?.enable) {\n const {error: detailedError} = getErrorDetails(\n new Error('SUGGESTED_RESPONSES_NOT_ENABLED'),\n METHODS.SEND_REAL_TIME_ASSISTANCE_USER_ACTION,\n CC_FILE\n );\n throw detailedError;\n }\n\n const orgId = this.webex.credentials.getOrgId();\n const response = await this.sendEvent(\n agentId,\n interactionId,\n AIAssistantEventType.CUSTOM_EVENT,\n AIAssistantEventName.SUGGESTED_RESPONSES_USER_ACTION,\n {\n adaptiveCardId,\n userAction: {\n actionType,\n actionId,\n },\n },\n languageCode,\n trackingId\n );\n\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_SUCCESS,\n {\n agentId,\n orgId,\n interactionId,\n adaptiveCardId,\n actionId,\n trackingId,\n },\n ['operational']\n );\n LoggerProxy.log('Real-time assistance user action sent', loggerContext);\n\n return response;\n } catch (error) {\n LoggerProxy.error('Real-time assistance user action failed', {...loggerContext, error});\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_FAILED,\n {\n agentId,\n interactionId,\n adaptiveCardId,\n actionId,\n trackingId,\n error: error instanceof Error ? error.message : String(error),\n },\n ['operational']\n );\n\n const {error: detailedError} = getErrorDetails(\n error,\n METHODS.SEND_REAL_TIME_ASSISTANCE_USER_ACTION,\n CC_FILE\n );\n throw detailedError;\n }\n }\n\n /**\n * Fetches historic transcripts for an interaction.\n * This API is allowed only when real-time transcription feature is enabled.\n *\n * @param interactionId - interaction/conversation identifier\n */\n public async fetchHistoricTranscripts(\n agentId: string,\n interactionId: string\n ): Promise<HistoricTranscriptsResponse> {\n LoggerProxy.info('Fetching historic transcripts', {\n module: CC_FILE,\n method: METHODS.FETCH_HISTORIC_TRANSCRIPTS,\n interactionId,\n });\n this.metricsManager.timeEvent([\n METRIC_EVENT_NAMES.AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_SUCCESS,\n METRIC_EVENT_NAMES.AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_FAILED,\n ]);\n if (!this.aiFeature?.realtimeTranscripts?.enable) {\n const {error: detailedError} = getErrorDetails(\n new Error('REAL_TIME_TRANSCRIPTION_NOT_ENABLED'),\n METHODS.FETCH_HISTORIC_TRANSCRIPTS,\n CC_FILE\n );\n throw detailedError;\n }\n\n try {\n const baseUrl = this.getBaseUrl();\n const orgId = this.webex.credentials.getOrgId();\n const response = (await this.webex.request({\n uri: `${baseUrl}${AI_ASSISTANT_API_URLS.TRANSCRIPTS_LIST}`,\n method: HTTP_METHODS.POST,\n addAuthHeader: true,\n body: {\n agentId,\n orgId,\n interactionId,\n },\n })) as IHttpResponse;\n\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_SUCCESS,\n {agentId, orgId, interactionId},\n ['operational']\n );\n\n return response.body as HistoricTranscriptsResponse;\n } catch (error) {\n this.metricsManager.trackEvent(\n METRIC_EVENT_NAMES.AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_FAILED,\n {\n interactionId,\n error: error instanceof Error ? error.message : String(error),\n },\n ['operational']\n );\n\n if (error instanceof Error) {\n throw error;\n }\n const {error: detailedError} = getErrorDetails(\n error,\n METHODS.FETCH_HISTORIC_TRANSCRIPTS,\n CC_FILE\n );\n throw detailedError;\n }\n }\n}\n\nexport default ApiAIAssistant;\n"],"mappings":"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","ignoreList":[]}
|