@webex/contact-center 0.0.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/README.md +81 -0
  2. package/__mocks__/workerMock.js +15 -0
  3. package/babel.config.js +15 -0
  4. package/dist/cc.js +1416 -0
  5. package/dist/cc.js.map +1 -0
  6. package/dist/config.js +72 -0
  7. package/dist/config.js.map +1 -0
  8. package/dist/constants.js +58 -0
  9. package/dist/constants.js.map +1 -0
  10. package/dist/index.js +142 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/logger-proxy.js +115 -0
  13. package/dist/logger-proxy.js.map +1 -0
  14. package/dist/metrics/MetricsManager.js +474 -0
  15. package/dist/metrics/MetricsManager.js.map +1 -0
  16. package/dist/metrics/behavioral-events.js +322 -0
  17. package/dist/metrics/behavioral-events.js.map +1 -0
  18. package/dist/metrics/constants.js +134 -0
  19. package/dist/metrics/constants.js.map +1 -0
  20. package/dist/services/WebCallingService.js +323 -0
  21. package/dist/services/WebCallingService.js.map +1 -0
  22. package/dist/services/agent/index.js +177 -0
  23. package/dist/services/agent/index.js.map +1 -0
  24. package/dist/services/agent/types.js +137 -0
  25. package/dist/services/agent/types.js.map +1 -0
  26. package/dist/services/config/Util.js +203 -0
  27. package/dist/services/config/Util.js.map +1 -0
  28. package/dist/services/config/constants.js +221 -0
  29. package/dist/services/config/constants.js.map +1 -0
  30. package/dist/services/config/index.js +607 -0
  31. package/dist/services/config/index.js.map +1 -0
  32. package/dist/services/config/types.js +334 -0
  33. package/dist/services/config/types.js.map +1 -0
  34. package/dist/services/constants.js +117 -0
  35. package/dist/services/constants.js.map +1 -0
  36. package/dist/services/core/Err.js +43 -0
  37. package/dist/services/core/Err.js.map +1 -0
  38. package/dist/services/core/GlobalTypes.js +6 -0
  39. package/dist/services/core/GlobalTypes.js.map +1 -0
  40. package/dist/services/core/Utils.js +126 -0
  41. package/dist/services/core/Utils.js.map +1 -0
  42. package/dist/services/core/WebexRequest.js +96 -0
  43. package/dist/services/core/WebexRequest.js.map +1 -0
  44. package/dist/services/core/aqm-reqs.js +246 -0
  45. package/dist/services/core/aqm-reqs.js.map +1 -0
  46. package/dist/services/core/constants.js +109 -0
  47. package/dist/services/core/constants.js.map +1 -0
  48. package/dist/services/core/types.js +6 -0
  49. package/dist/services/core/types.js.map +1 -0
  50. package/dist/services/core/websocket/WebSocketManager.js +187 -0
  51. package/dist/services/core/websocket/WebSocketManager.js.map +1 -0
  52. package/dist/services/core/websocket/connection-service.js +111 -0
  53. package/dist/services/core/websocket/connection-service.js.map +1 -0
  54. package/dist/services/core/websocket/keepalive.worker.js +94 -0
  55. package/dist/services/core/websocket/keepalive.worker.js.map +1 -0
  56. package/dist/services/core/websocket/types.js +6 -0
  57. package/dist/services/core/websocket/types.js.map +1 -0
  58. package/dist/services/index.js +78 -0
  59. package/dist/services/index.js.map +1 -0
  60. package/dist/services/task/AutoWrapup.js +88 -0
  61. package/dist/services/task/AutoWrapup.js.map +1 -0
  62. package/dist/services/task/TaskManager.js +369 -0
  63. package/dist/services/task/TaskManager.js.map +1 -0
  64. package/dist/services/task/constants.js +58 -0
  65. package/dist/services/task/constants.js.map +1 -0
  66. package/dist/services/task/contact.js +464 -0
  67. package/dist/services/task/contact.js.map +1 -0
  68. package/dist/services/task/dialer.js +60 -0
  69. package/dist/services/task/dialer.js.map +1 -0
  70. package/dist/services/task/index.js +1188 -0
  71. package/dist/services/task/index.js.map +1 -0
  72. package/dist/services/task/types.js +214 -0
  73. package/dist/services/task/types.js.map +1 -0
  74. package/dist/types/cc.d.ts +676 -0
  75. package/dist/types/config.d.ts +66 -0
  76. package/dist/types/constants.d.ts +45 -0
  77. package/dist/types/index.d.ts +178 -0
  78. package/dist/types/logger-proxy.d.ts +71 -0
  79. package/dist/types/metrics/MetricsManager.d.ts +223 -0
  80. package/dist/types/metrics/behavioral-events.d.ts +29 -0
  81. package/dist/types/metrics/constants.d.ts +127 -0
  82. package/dist/types/services/WebCallingService.d.ts +1 -0
  83. package/dist/types/services/agent/index.d.ts +46 -0
  84. package/dist/types/services/agent/types.d.ts +413 -0
  85. package/dist/types/services/config/Util.d.ts +19 -0
  86. package/dist/types/services/config/constants.d.ts +203 -0
  87. package/dist/types/services/config/index.d.ts +171 -0
  88. package/dist/types/services/config/types.d.ts +1113 -0
  89. package/dist/types/services/constants.d.ts +97 -0
  90. package/dist/types/services/core/Err.d.ts +119 -0
  91. package/dist/types/services/core/GlobalTypes.d.ts +33 -0
  92. package/dist/types/services/core/Utils.d.ts +36 -0
  93. package/dist/types/services/core/WebexRequest.d.ts +22 -0
  94. package/dist/types/services/core/aqm-reqs.d.ts +16 -0
  95. package/dist/types/services/core/constants.d.ts +85 -0
  96. package/dist/types/services/core/types.d.ts +47 -0
  97. package/dist/types/services/core/websocket/WebSocketManager.d.ts +34 -0
  98. package/dist/types/services/core/websocket/connection-service.d.ts +27 -0
  99. package/dist/types/services/core/websocket/keepalive.worker.d.ts +2 -0
  100. package/dist/types/services/core/websocket/types.d.ts +37 -0
  101. package/dist/types/services/index.d.ts +52 -0
  102. package/dist/types/services/task/AutoWrapup.d.ts +40 -0
  103. package/dist/types/services/task/TaskManager.d.ts +1 -0
  104. package/dist/types/services/task/constants.d.ts +46 -0
  105. package/dist/types/services/task/contact.d.ts +59 -0
  106. package/dist/types/services/task/dialer.d.ts +28 -0
  107. package/dist/types/services/task/index.d.ts +569 -0
  108. package/dist/types/services/task/types.d.ts +1041 -0
  109. package/dist/types/types.d.ts +452 -0
  110. package/dist/types/webex-config.d.ts +53 -0
  111. package/dist/types/webex.d.ts +7 -0
  112. package/dist/types.js +292 -0
  113. package/dist/types.js.map +1 -0
  114. package/dist/webex-config.js +60 -0
  115. package/dist/webex-config.js.map +1 -0
  116. package/dist/webex.js +99 -0
  117. package/dist/webex.js.map +1 -0
  118. package/jest.config.js +45 -0
  119. package/package.json +83 -0
  120. package/src/cc.ts +1618 -0
  121. package/src/config.ts +65 -0
  122. package/src/constants.ts +51 -0
  123. package/src/index.ts +220 -0
  124. package/src/logger-proxy.ts +110 -0
  125. package/src/metrics/MetricsManager.ts +512 -0
  126. package/src/metrics/behavioral-events.ts +332 -0
  127. package/src/metrics/constants.ts +135 -0
  128. package/src/services/WebCallingService.ts +351 -0
  129. package/src/services/agent/index.ts +149 -0
  130. package/src/services/agent/types.ts +440 -0
  131. package/src/services/config/Util.ts +261 -0
  132. package/src/services/config/constants.ts +249 -0
  133. package/src/services/config/index.ts +743 -0
  134. package/src/services/config/types.ts +1117 -0
  135. package/src/services/constants.ts +111 -0
  136. package/src/services/core/Err.ts +126 -0
  137. package/src/services/core/GlobalTypes.ts +34 -0
  138. package/src/services/core/Utils.ts +132 -0
  139. package/src/services/core/WebexRequest.ts +103 -0
  140. package/src/services/core/aqm-reqs.ts +272 -0
  141. package/src/services/core/constants.ts +106 -0
  142. package/src/services/core/types.ts +48 -0
  143. package/src/services/core/websocket/WebSocketManager.ts +196 -0
  144. package/src/services/core/websocket/connection-service.ts +142 -0
  145. package/src/services/core/websocket/keepalive.worker.js +88 -0
  146. package/src/services/core/websocket/types.ts +40 -0
  147. package/src/services/index.ts +71 -0
  148. package/src/services/task/AutoWrapup.ts +86 -0
  149. package/src/services/task/TaskManager.ts +420 -0
  150. package/src/services/task/constants.ts +52 -0
  151. package/src/services/task/contact.ts +429 -0
  152. package/src/services/task/dialer.ts +52 -0
  153. package/src/services/task/index.ts +1375 -0
  154. package/src/services/task/types.ts +1113 -0
  155. package/src/types.ts +639 -0
  156. package/src/webex-config.ts +54 -0
  157. package/src/webex.js +96 -0
  158. package/test/unit/spec/cc.ts +1985 -0
  159. package/test/unit/spec/metrics/MetricsManager.ts +491 -0
  160. package/test/unit/spec/metrics/behavioral-events.ts +102 -0
  161. package/test/unit/spec/services/WebCallingService.ts +416 -0
  162. package/test/unit/spec/services/agent/index.ts +65 -0
  163. package/test/unit/spec/services/config/index.ts +1035 -0
  164. package/test/unit/spec/services/core/Utils.ts +279 -0
  165. package/test/unit/spec/services/core/WebexRequest.ts +144 -0
  166. package/test/unit/spec/services/core/aqm-reqs.ts +570 -0
  167. package/test/unit/spec/services/core/websocket/WebSocketManager.ts +378 -0
  168. package/test/unit/spec/services/core/websocket/connection-service.ts +178 -0
  169. package/test/unit/spec/services/task/TaskManager.ts +1351 -0
  170. package/test/unit/spec/services/task/contact.ts +204 -0
  171. package/test/unit/spec/services/task/dialer.ts +157 -0
  172. package/test/unit/spec/services/task/index.ts +1474 -0
  173. package/tsconfig.json +6 -0
  174. package/typedoc.json +37 -0
  175. package/typedoc.md +240 -0
  176. package/umd/contact-center.min.js +3 -0
  177. package/umd/contact-center.min.js.map +1 -0
@@ -0,0 +1,332 @@
1
+ import {
2
+ MetricEventAgent,
3
+ MetricEventProduct,
4
+ MetricEventVerb,
5
+ } from '@webex/internal-plugin-metrics/src/metrics.types';
6
+
7
+ import {METRIC_EVENT_NAMES} from './constants';
8
+ import {PRODUCT_NAME} from '../constants';
9
+
10
+ /**
11
+ * Represents the taxonomy for a behavioral event in the metrics system.
12
+ * @ignore
13
+ * @typedef BehavioralEventTaxonomy
14
+ * @property {MetricEventProduct} product - The product associated with the behavioral event.
15
+ * @property {MetricEventAgent} agent - The agent responsible for the behavioral event.
16
+ * @property {string} target - The target entity of the behavioral event.
17
+ * @property {MetricEventVerb} verb - The action or verb describing the behavioral event.
18
+ *
19
+ * @category Metrics
20
+ * @type BehavioralEvents
21
+ */
22
+ export type BehavioralEventTaxonomy = {
23
+ product: MetricEventProduct;
24
+ agent: MetricEventAgent;
25
+ target: string;
26
+ verb: MetricEventVerb;
27
+ };
28
+
29
+ const product: MetricEventProduct = PRODUCT_NAME;
30
+
31
+ // Adding new metrics? Please add them to the Cypher CC metrics wiki
32
+ /**
33
+ * @ignore
34
+ * @typedoc
35
+ * A mapping between metric event names and their corresponding behavioral event taxonomy definitions.
36
+ *
37
+ * This map is used to associate each event (such as login, logout, task actions, etc.)
38
+ * with a structured taxonomy object that describes the product, agent, target, and verb
39
+ * for behavioral analytics and metrics reporting.
40
+ *
41
+ * The keys are string constants from `METRIC_EVENT_NAMES`, and the values are
42
+ * `BehavioralEventTaxonomy` objects that define the event's context.
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const taxonomy = eventTaxonomyMap[METRIC_EVENT_NAMES.STATION_LOGIN_SUCCESS];
47
+ * // taxonomy = { product, agent: 'user', target: 'station_login', verb: 'complete' }
48
+ * ```
49
+ *
50
+ * @see BehavioralEventTaxonomy
51
+ * @see METRIC_EVENT_NAMES
52
+ */
53
+ const eventTaxonomyMap: Record<string, BehavioralEventTaxonomy> = {
54
+ [METRIC_EVENT_NAMES.STATION_LOGIN_SUCCESS]: {
55
+ product,
56
+ agent: 'user',
57
+ target: 'station_login',
58
+ verb: 'complete',
59
+ },
60
+ [METRIC_EVENT_NAMES.STATION_LOGIN_FAILED]: {
61
+ product,
62
+ agent: 'user',
63
+ target: 'station_login',
64
+ verb: 'fail',
65
+ },
66
+ [METRIC_EVENT_NAMES.STATION_LOGOUT_SUCCESS]: {
67
+ product,
68
+ agent: 'user',
69
+ target: 'station_logout',
70
+ verb: 'complete',
71
+ },
72
+ [METRIC_EVENT_NAMES.STATION_LOGOUT_FAILED]: {
73
+ product,
74
+ agent: 'user',
75
+ target: 'station_logout',
76
+ verb: 'fail',
77
+ },
78
+ [METRIC_EVENT_NAMES.STATION_RELOGIN_SUCCESS]: {
79
+ product,
80
+ agent: 'user',
81
+ target: 'station_relogin',
82
+ verb: 'complete',
83
+ },
84
+ [METRIC_EVENT_NAMES.STATION_RELOGIN_FAILED]: {
85
+ product,
86
+ agent: 'user',
87
+ target: 'station_relogin',
88
+ verb: 'fail',
89
+ },
90
+ [METRIC_EVENT_NAMES.AGENT_STATE_CHANGE_SUCCESS]: {
91
+ product,
92
+ agent: 'user',
93
+ target: 'state_change',
94
+ verb: 'complete',
95
+ },
96
+ [METRIC_EVENT_NAMES.AGENT_STATE_CHANGE_FAILED]: {
97
+ product,
98
+ agent: 'user',
99
+ target: 'state_change',
100
+ verb: 'fail',
101
+ },
102
+ [METRIC_EVENT_NAMES.FETCH_BUDDY_AGENTS_SUCCESS]: {
103
+ product,
104
+ agent: 'user',
105
+ target: 'buddy_agents_fetch',
106
+ verb: 'complete',
107
+ },
108
+ [METRIC_EVENT_NAMES.FETCH_BUDDY_AGENTS_FAILED]: {
109
+ product,
110
+ agent: 'user',
111
+ target: 'buddy_agents_fetch',
112
+ verb: 'fail',
113
+ },
114
+ [METRIC_EVENT_NAMES.WEBSOCKET_REGISTER_SUCCESS]: {
115
+ product,
116
+ agent: 'user',
117
+ target: 'websocket_register',
118
+ verb: 'complete',
119
+ },
120
+ [METRIC_EVENT_NAMES.WEBSOCKET_REGISTER_FAILED]: {
121
+ product,
122
+ agent: 'user',
123
+ target: 'websocket_register',
124
+ verb: 'fail',
125
+ },
126
+ [METRIC_EVENT_NAMES.AGENT_RONA]: {
127
+ product,
128
+ agent: 'service',
129
+ target: 'agent_rona',
130
+ verb: 'set',
131
+ },
132
+
133
+ // Added Task events
134
+ [METRIC_EVENT_NAMES.TASK_ACCEPT_SUCCESS]: {
135
+ product,
136
+ agent: 'user',
137
+ target: 'task_accept',
138
+ verb: 'complete',
139
+ },
140
+ [METRIC_EVENT_NAMES.TASK_ACCEPT_FAILED]: {
141
+ product,
142
+ agent: 'user',
143
+ target: 'task_accept',
144
+ verb: 'fail',
145
+ },
146
+ [METRIC_EVENT_NAMES.TASK_DECLINE_SUCCESS]: {
147
+ product,
148
+ agent: 'user',
149
+ target: 'task_decline',
150
+ verb: 'complete',
151
+ },
152
+ [METRIC_EVENT_NAMES.TASK_DECLINE_FAILED]: {
153
+ product,
154
+ agent: 'user',
155
+ target: 'task_decline',
156
+ verb: 'fail',
157
+ },
158
+ [METRIC_EVENT_NAMES.TASK_END_SUCCESS]: {
159
+ product,
160
+ agent: 'user',
161
+ target: 'task_end',
162
+ verb: 'complete',
163
+ },
164
+ [METRIC_EVENT_NAMES.TASK_END_FAILED]: {
165
+ product,
166
+ agent: 'user',
167
+ target: 'task_end',
168
+ verb: 'fail',
169
+ },
170
+ [METRIC_EVENT_NAMES.TASK_WRAPUP_SUCCESS]: {
171
+ product,
172
+ agent: 'user',
173
+ target: 'task_wrapup',
174
+ verb: 'complete',
175
+ },
176
+ [METRIC_EVENT_NAMES.TASK_WRAPUP_FAILED]: {
177
+ product,
178
+ agent: 'user',
179
+ target: 'task_wrapup',
180
+ verb: 'fail',
181
+ },
182
+ [METRIC_EVENT_NAMES.TASK_HOLD_SUCCESS]: {
183
+ product,
184
+ agent: 'user',
185
+ target: 'task_hold',
186
+ verb: 'complete',
187
+ },
188
+ [METRIC_EVENT_NAMES.TASK_HOLD_FAILED]: {
189
+ product,
190
+ agent: 'user',
191
+ target: 'task_hold',
192
+ verb: 'fail',
193
+ },
194
+ [METRIC_EVENT_NAMES.TASK_RESUME_SUCCESS]: {
195
+ product,
196
+ agent: 'user',
197
+ target: 'task_resume',
198
+ verb: 'complete',
199
+ },
200
+ [METRIC_EVENT_NAMES.TASK_RESUME_FAILED]: {
201
+ product,
202
+ agent: 'user',
203
+ target: 'task_resume',
204
+ verb: 'fail',
205
+ },
206
+
207
+ // Advanced Tasks handling
208
+ [METRIC_EVENT_NAMES.TASK_CONSULT_START_SUCCESS]: {
209
+ product,
210
+ agent: 'user',
211
+ target: 'task_consult_start',
212
+ verb: 'complete',
213
+ },
214
+ [METRIC_EVENT_NAMES.TASK_CONSULT_START_FAILED]: {
215
+ product,
216
+ agent: 'user',
217
+ target: 'task_consult_start',
218
+ verb: 'fail',
219
+ },
220
+ [METRIC_EVENT_NAMES.TASK_CONSULT_END_SUCCESS]: {
221
+ product,
222
+ agent: 'user',
223
+ target: 'task_consult_end',
224
+ verb: 'complete',
225
+ },
226
+ [METRIC_EVENT_NAMES.TASK_CONSULT_END_FAILED]: {
227
+ product,
228
+ agent: 'user',
229
+ target: 'task_consult_end',
230
+ verb: 'fail',
231
+ },
232
+ [METRIC_EVENT_NAMES.TASK_TRANSFER_SUCCESS]: {
233
+ product,
234
+ agent: 'user',
235
+ target: 'task_transfer',
236
+ verb: 'complete',
237
+ },
238
+ [METRIC_EVENT_NAMES.TASK_TRANSFER_FAILED]: {
239
+ product,
240
+ agent: 'user',
241
+ target: 'task_transfer',
242
+ verb: 'fail',
243
+ },
244
+ [METRIC_EVENT_NAMES.TASK_RESUME_RECORDING_SUCCESS]: {
245
+ product,
246
+ agent: 'user',
247
+ target: 'task_resume_recording',
248
+ verb: 'complete',
249
+ },
250
+ [METRIC_EVENT_NAMES.TASK_RESUME_RECORDING_FAILED]: {
251
+ product,
252
+ agent: 'user',
253
+ target: 'task_resume_recording',
254
+ verb: 'fail',
255
+ },
256
+ [METRIC_EVENT_NAMES.TASK_PAUSE_RECORDING_SUCCESS]: {
257
+ product,
258
+ agent: 'user',
259
+ target: 'task_pause_recording',
260
+ verb: 'complete',
261
+ },
262
+ [METRIC_EVENT_NAMES.TASK_PAUSE_RECORDING_FAILED]: {
263
+ product,
264
+ agent: 'user',
265
+ target: 'task_pause_recording',
266
+ verb: 'fail',
267
+ },
268
+ [METRIC_EVENT_NAMES.TASK_ACCEPT_CONSULT_SUCCESS]: {
269
+ product,
270
+ agent: 'user',
271
+ target: 'task_accept_consult',
272
+ verb: 'complete',
273
+ },
274
+ [METRIC_EVENT_NAMES.TASK_ACCEPT_CONSULT_FAILED]: {
275
+ product,
276
+ agent: 'user',
277
+ target: 'task_accept_consult',
278
+ verb: 'fail',
279
+ },
280
+ [METRIC_EVENT_NAMES.TASK_OUTDIAL_SUCCESS]: {
281
+ product,
282
+ agent: 'user',
283
+ target: 'task_outdial',
284
+ verb: 'complete',
285
+ },
286
+ [METRIC_EVENT_NAMES.TASK_OUTDIAL_FAILED]: {
287
+ product,
288
+ agent: 'user',
289
+ target: 'task_outdial',
290
+ verb: 'fail',
291
+ },
292
+
293
+ // upload logs
294
+ [METRIC_EVENT_NAMES.UPLOAD_LOGS_SUCCESS]: {
295
+ product,
296
+ agent: 'user',
297
+ target: 'upload_logs',
298
+ verb: 'complete',
299
+ },
300
+ [METRIC_EVENT_NAMES.UPLOAD_LOGS_FAILED]: {
301
+ product,
302
+ agent: 'user',
303
+ target: 'upload_logs',
304
+ verb: 'fail',
305
+ },
306
+
307
+ // update profile
308
+ [METRIC_EVENT_NAMES.AGENT_DEVICE_TYPE_UPDATE_SUCCESS]: {
309
+ product,
310
+ agent: 'user',
311
+ target: 'agent_device_type_update',
312
+ verb: 'complete',
313
+ },
314
+ [METRIC_EVENT_NAMES.AGENT_DEVICE_TYPE_UPDATE_FAILED]: {
315
+ product,
316
+ agent: 'user',
317
+ target: 'agent_device_type_update',
318
+ verb: 'fail',
319
+ },
320
+ };
321
+
322
+ /**
323
+ * Get the taxonomy information for a given behavioral event name.
324
+ * @ignore
325
+ * @param name - The name of the metric event to look up.
326
+ * @returns The corresponding {@link BehavioralEventTaxonomy} if found, otherwise `undefined`.
327
+ *
328
+ * @typedoc
329
+ */
330
+ export function getEventTaxonomy(name: METRIC_EVENT_NAMES): BehavioralEventTaxonomy | undefined {
331
+ return eventTaxonomyMap[name];
332
+ }
@@ -0,0 +1,135 @@
1
+ type Enum<T extends Record<string, unknown>> = T[keyof T];
2
+
3
+ /**
4
+ * @ignore
5
+ * @module METRIC_EVENT_NAMES
6
+ * @export
7
+ * @description
8
+ * A constant object containing all metric event names used for tracking various agent and task-related events
9
+ * within the Contact Center plugin. Each property represents a specific event and its corresponding string value
10
+ * as reported in metrics.
11
+ *
12
+ * @property {string} STATION_LOGIN_SUCCESS - Event name for successful station login.
13
+ * @property {string} STATION_LOGIN_FAILED - Event name for failed station login.
14
+ * @property {string} STATION_LOGOUT_SUCCESS - Event name for successful station logout.
15
+ * @property {string} STATION_LOGOUT_FAILED - Event name for failed station logout.
16
+ * @property {string} STATION_RELOGIN_SUCCESS - Event name for successful station relogin.
17
+ * @property {string} STATION_RELOGIN_FAILED - Event name for failed station relogin.
18
+ * @property {string} AGENT_STATE_CHANGE_SUCCESS - Event name for successful agent state change.
19
+ * @property {string} AGENT_STATE_CHANGE_FAILED - Event name for failed agent state change.
20
+ * @property {string} FETCH_BUDDY_AGENTS_SUCCESS - Event name for successfully fetching buddy agents.
21
+ * @property {string} FETCH_BUDDY_AGENTS_FAILED - Event name for failed attempt to fetch buddy agents.
22
+ * @property {string} WEBSOCKET_REGISTER_SUCCESS - Event name for successful websocket registration.
23
+ * @property {string} WEBSOCKET_REGISTER_FAILED - Event name for failed websocket registration.
24
+ * @property {string} AGENT_RONA - Event name for agent RONA (Ring No Answer).
25
+ * @property {string} AGENT_CONTACT_ASSIGN_FAILED - Event name for failed agent contact assignment.
26
+ * @property {string} AGENT_INVITE_FAILED - Event name for failed agent invite.
27
+ *
28
+ * @property {string} TASK_ACCEPT_SUCCESS - Event name for successful task acceptance.
29
+ * @property {string} TASK_ACCEPT_FAILED - Event name for failed task acceptance.
30
+ * @property {string} TASK_DECLINE_SUCCESS - Event name for successful task decline.
31
+ * @property {string} TASK_DECLINE_FAILED - Event name for failed task decline.
32
+ * @property {string} TASK_END_SUCCESS - Event name for successful task end.
33
+ * @property {string} TASK_END_FAILED - Event name for failed task end.
34
+ * @property {string} TASK_WRAPUP_SUCCESS - Event name for successful task wrap-up.
35
+ * @property {string} TASK_WRAPUP_FAILED - Event name for failed task wrap-up.
36
+ * @property {string} TASK_HOLD_SUCCESS - Event name for successful task hold.
37
+ * @property {string} TASK_HOLD_FAILED - Event name for failed task hold.
38
+ * @property {string} TASK_RESUME_SUCCESS - Event name for successful task resume.
39
+ * @property {string} TASK_RESUME_FAILED - Event name for failed task resume.
40
+ *
41
+ * @property {string} TASK_CONSULT_START_SUCCESS - Event name for successful consult start.
42
+ * @property {string} TASK_CONSULT_START_FAILED - Event name for failed consult start.
43
+ * @property {string} TASK_CONSULT_END_SUCCESS - Event name for successful consult end.
44
+ * @property {string} TASK_CONSULT_END_FAILED - Event name for failed consult end.
45
+ * @property {string} TASK_TRANSFER_SUCCESS - Event name for successful task transfer.
46
+ * @property {string} TASK_TRANSFER_FAILED - Event name for failed task transfer.
47
+ * @property {string} TASK_RESUME_RECORDING_SUCCESS - Event name for successful resume of recording.
48
+ * @property {string} TASK_RESUME_RECORDING_FAILED - Event name for failed resume of recording.
49
+ * @property {string} TASK_PAUSE_RECORDING_SUCCESS - Event name for successful pause of recording.
50
+ * @property {string} TASK_PAUSE_RECORDING_FAILED - Event name for failed pause of recording.
51
+ * @property {string} TASK_ACCEPT_CONSULT_SUCCESS - Event name for successful consult acceptance.
52
+ * @property {string} TASK_ACCEPT_CONSULT_FAILED - Event name for failed consult acceptance.
53
+ *
54
+ * @property {string} TASK_OUTDIAL_SUCCESS - Event name for successful outdial task.
55
+ * @property {string} TASK_OUTDIAL_FAILED - Event name for failed outdial task.
56
+ *
57
+ * @property {string} UPLOAD_LOGS_SUCCESS - Event name for successful log upload.
58
+ * @property {string} UPLOAD_LOGS_FAILED - Event name for failed log upload.
59
+ * @property {string} WEBSOCKET_DEREGISTER_SUCCESS - Event name for successful websocket deregistration.
60
+ * @property {string} WEBSOCKET_DEREGISTER_FAIL - Event name for failed websocket deregistration.
61
+ *
62
+ * @property {string} AGENT_DEVICE_TYPE_UPDATE_SUCCESS - Event name for successful agent device type update.
63
+ * @property {string} AGENT_DEVICE_TYPE_UPDATE_FAILED - Event name for failed agent device type update.
64
+ *
65
+ * @readonly
66
+ */
67
+ export const METRIC_EVENT_NAMES = {
68
+ STATION_LOGIN_SUCCESS: 'Station Login Success',
69
+ STATION_LOGIN_FAILED: 'Station Login Failed',
70
+ STATION_LOGOUT_SUCCESS: 'Station Logout Success',
71
+ STATION_LOGOUT_FAILED: 'Station Logout Failed',
72
+ STATION_RELOGIN_SUCCESS: 'Station Relogin Success',
73
+ STATION_RELOGIN_FAILED: 'Station Relogin Failed',
74
+ AGENT_STATE_CHANGE_SUCCESS: 'Agent State Change Success',
75
+ AGENT_STATE_CHANGE_FAILED: 'Agent State Change Failed',
76
+ FETCH_BUDDY_AGENTS_SUCCESS: 'Fetch Buddy Agents Success',
77
+ FETCH_BUDDY_AGENTS_FAILED: 'Fetch Buddy Agents Failed',
78
+ WEBSOCKET_REGISTER_SUCCESS: 'Websocket Register Success',
79
+ WEBSOCKET_REGISTER_FAILED: 'Websocket Register Failed',
80
+ AGENT_RONA: 'Agent RONA',
81
+ AGENT_CONTACT_ASSIGN_FAILED: 'Agent Contact Assign Failed',
82
+ AGENT_INVITE_FAILED: 'Agent Invite Failed',
83
+
84
+ // Basic Tasks
85
+ TASK_ACCEPT_SUCCESS: 'Task Accept Success',
86
+ TASK_ACCEPT_FAILED: 'Task Accept Failed',
87
+ TASK_DECLINE_SUCCESS: 'Task Decline Success',
88
+ TASK_DECLINE_FAILED: 'Task Decline Failed',
89
+ TASK_END_SUCCESS: 'Task End Success',
90
+ TASK_END_FAILED: 'Task End Failed',
91
+ TASK_WRAPUP_SUCCESS: 'Task Wrapup Success',
92
+ TASK_WRAPUP_FAILED: 'Task Wrapup Failed',
93
+ TASK_HOLD_SUCCESS: 'Task Hold Success',
94
+ TASK_HOLD_FAILED: 'Task Hold Failed',
95
+ TASK_RESUME_SUCCESS: 'Task Resume Success',
96
+ TASK_RESUME_FAILED: 'Task Resume Failed',
97
+
98
+ // Advanced Tasks
99
+ TASK_CONSULT_START_SUCCESS: 'Task Consult Start Success',
100
+ TASK_CONSULT_START_FAILED: 'Task Consult Start Failed',
101
+ TASK_CONSULT_END_SUCCESS: 'Task Consult End Success',
102
+ TASK_CONSULT_END_FAILED: 'Task Consult End Failed',
103
+ TASK_TRANSFER_SUCCESS: 'Task Transfer Success',
104
+ TASK_TRANSFER_FAILED: 'Task Transfer Failed',
105
+ TASK_RESUME_RECORDING_SUCCESS: 'Task Resume Recording Success',
106
+ TASK_RESUME_RECORDING_FAILED: 'Task Resume Recording Failed',
107
+ TASK_PAUSE_RECORDING_SUCCESS: 'Task Pause Recording Success',
108
+ TASK_PAUSE_RECORDING_FAILED: 'Task Pause Recording Failed',
109
+ TASK_ACCEPT_CONSULT_SUCCESS: 'Task Accept Consult Success',
110
+ TASK_ACCEPT_CONSULT_FAILED: 'Task Accept Consult Failed',
111
+
112
+ TASK_OUTDIAL_SUCCESS: 'Task Outdial Success',
113
+ TASK_OUTDIAL_FAILED: 'Task Outdial Failed',
114
+
115
+ UPLOAD_LOGS_SUCCESS: 'Upload Logs Success',
116
+ UPLOAD_LOGS_FAILED: 'Upload Logs Failed',
117
+ WEBSOCKET_DEREGISTER_SUCCESS: 'Websocket Deregister Success',
118
+ WEBSOCKET_DEREGISTER_FAIL: 'Websocket Deregister Failed',
119
+
120
+ AGENT_DEVICE_TYPE_UPDATE_SUCCESS: 'Agent Device Type Update Success',
121
+ AGENT_DEVICE_TYPE_UPDATE_FAILED: 'Agent Device Type Update Failed',
122
+ } as const;
123
+
124
+ /**
125
+ * Represents the possible metric event names used within the metrics system.
126
+ *
127
+ * This type is derived from the keys of the `METRIC_EVENT_NAMES` constant, ensuring
128
+ * type safety and consistency when referring to metric event names throughout the codebase.
129
+ * @export
130
+ * @typedef {Enum<typeof METRIC_EVENT_NAMES>} METRIC_EVENT_NAMES
131
+ * @typeParam T - The type of the `METRIC_EVENT_NAMES` constant.
132
+ *
133
+ * @see {@link METRIC_EVENT_NAMES}
134
+ */
135
+ export type METRIC_EVENT_NAMES = Enum<typeof METRIC_EVENT_NAMES>;