@webex/contact-center 3.12.0-next.13 → 3.12.0-next.130

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 (312) hide show
  1. package/.sdd/manifest.json +884 -0
  2. package/AGENTS.md +94 -0
  3. package/ai-docs/ARCHITECTURE.md +168 -0
  4. package/ai-docs/CONTRACTS.md +53 -0
  5. package/ai-docs/GETTING_STARTED.md +168 -0
  6. package/ai-docs/GLOSSARY.md +43 -0
  7. package/ai-docs/README.md +138 -0
  8. package/ai-docs/REVIEW_CHECKLIST.md +41 -0
  9. package/ai-docs/RULES.md +444 -0
  10. package/ai-docs/SECURITY.md +52 -0
  11. package/ai-docs/SERVICE_STATE.md +52 -0
  12. package/ai-docs/SPEC_INDEX.md +65 -0
  13. package/ai-docs/adr/0001-spec-source-policy.md +55 -0
  14. package/ai-docs/adr/README.md +8 -0
  15. package/ai-docs/adr/_adr-template.md +31 -0
  16. package/ai-docs/contact-center-spec.md +382 -0
  17. package/ai-docs/features/consult-transfer-list-policy/spec/feature-spec.md +362 -0
  18. package/ai-docs/features/contact-owner-change-refactor.md +78 -0
  19. package/ai-docs/features/generated-spec-conformance-fidelity-remediation/spec/feature-spec.md +117 -0
  20. package/ai-docs/features/residual-warning-coverage-completion/spec/feature-spec.md +203 -0
  21. package/ai-docs/features/validator-code-fidelity-drift-fix/spec/feature-spec.md +315 -0
  22. package/ai-docs/patterns/event-driven-patterns.md +485 -0
  23. package/ai-docs/patterns/testing-patterns.md +480 -0
  24. package/ai-docs/patterns/typescript-patterns.md +365 -0
  25. package/ai-docs/templates/README.md +102 -0
  26. package/ai-docs/templates/documentation/create-agents-md.md +240 -0
  27. package/ai-docs/templates/documentation/create-architecture-md.md +295 -0
  28. package/ai-docs/templates/existing-service/bug-fix.md +254 -0
  29. package/ai-docs/templates/existing-service/feature-enhancement.md +450 -0
  30. package/ai-docs/templates/new-method/00-master.md +80 -0
  31. package/ai-docs/templates/new-method/01-requirements.md +232 -0
  32. package/ai-docs/templates/new-method/02-implementation.md +295 -0
  33. package/ai-docs/templates/new-method/03-tests.md +201 -0
  34. package/ai-docs/templates/new-method/04-validation.md +141 -0
  35. package/ai-docs/templates/new-service/00-master.md +109 -0
  36. package/ai-docs/templates/new-service/01-pre-questions.md +159 -0
  37. package/ai-docs/templates/new-service/02-code-generation.md +346 -0
  38. package/ai-docs/templates/new-service/03-integration.md +178 -0
  39. package/ai-docs/templates/new-service/04-test-generation.md +205 -0
  40. package/ai-docs/templates/new-service/05-validation.md +145 -0
  41. package/dist/cc.js +971 -42
  42. package/dist/cc.js.map +1 -1
  43. package/dist/config.js +13 -0
  44. package/dist/config.js.map +1 -1
  45. package/dist/constants.js +31 -3
  46. package/dist/constants.js.map +1 -1
  47. package/dist/index.js +45 -15
  48. package/dist/index.js.map +1 -1
  49. package/dist/metrics/MetricsManager.js +16 -0
  50. package/dist/metrics/MetricsManager.js.map +1 -1
  51. package/dist/metrics/behavioral-events.js +205 -0
  52. package/dist/metrics/behavioral-events.js.map +1 -1
  53. package/dist/metrics/constants.js +48 -4
  54. package/dist/metrics/constants.js.map +1 -1
  55. package/dist/services/AddressBook.js +18 -15
  56. package/dist/services/AddressBook.js.map +1 -1
  57. package/dist/services/AnswerCallOnWebexService.js +202 -0
  58. package/dist/services/AnswerCallOnWebexService.js.map +1 -0
  59. package/dist/services/ApiAiAssistant.js +269 -9
  60. package/dist/services/ApiAiAssistant.js.map +1 -1
  61. package/dist/services/EntryPoint.js +46 -68
  62. package/dist/services/EntryPoint.js.map +1 -1
  63. package/dist/services/Queue.js +27 -22
  64. package/dist/services/Queue.js.map +1 -1
  65. package/dist/services/UserPreference.js +427 -0
  66. package/dist/services/UserPreference.js.map +1 -0
  67. package/dist/services/WebexCrossClientService.js +222 -0
  68. package/dist/services/WebexCrossClientService.js.map +1 -0
  69. package/dist/services/WxAppTelephonyMercurySync.js +108 -0
  70. package/dist/services/WxAppTelephonyMercurySync.js.map +1 -0
  71. package/dist/services/config/Util.js +11 -4
  72. package/dist/services/config/Util.js.map +1 -1
  73. package/dist/services/config/constants.js +41 -7
  74. package/dist/services/config/constants.js.map +1 -1
  75. package/dist/services/config/index.js +51 -0
  76. package/dist/services/config/index.js.map +1 -1
  77. package/dist/services/config/types.js +57 -12
  78. package/dist/services/config/types.js.map +1 -1
  79. package/dist/services/core/Err.js.map +1 -1
  80. package/dist/services/core/Utils.js +111 -32
  81. package/dist/services/core/Utils.js.map +1 -1
  82. package/dist/services/core/WebexRequest.js +6 -2
  83. package/dist/services/core/WebexRequest.js.map +1 -1
  84. package/dist/services/core/aqm-reqs.js +28 -14
  85. package/dist/services/core/aqm-reqs.js.map +1 -1
  86. package/dist/services/core/types.js.map +1 -1
  87. package/dist/services/core/websocket/WebSocketManager.js +2 -1
  88. package/dist/services/core/websocket/WebSocketManager.js.map +1 -1
  89. package/dist/services/core/websocket/types.js.map +1 -1
  90. package/dist/services/index.js +1 -1
  91. package/dist/services/index.js.map +1 -1
  92. package/dist/services/task/Task.js +754 -0
  93. package/dist/services/task/Task.js.map +1 -0
  94. package/dist/services/task/TaskFactory.js +49 -0
  95. package/dist/services/task/TaskFactory.js.map +1 -0
  96. package/dist/services/task/TaskManager.js +1172 -521
  97. package/dist/services/task/TaskManager.js.map +1 -1
  98. package/dist/services/task/TaskUtils.js +211 -27
  99. package/dist/services/task/TaskUtils.js.map +1 -1
  100. package/dist/services/task/WebexCallingUtils.js +70 -0
  101. package/dist/services/task/WebexCallingUtils.js.map +1 -0
  102. package/dist/services/task/constants.js +12 -2
  103. package/dist/services/task/constants.js.map +1 -1
  104. package/dist/services/task/contact.js +29 -0
  105. package/dist/services/task/contact.js.map +1 -1
  106. package/dist/services/task/dialer.js +78 -0
  107. package/dist/services/task/dialer.js.map +1 -1
  108. package/dist/services/task/digital/Digital.js +78 -0
  109. package/dist/services/task/digital/Digital.js.map +1 -0
  110. package/dist/services/task/state-machine/TaskStateMachine.js +982 -0
  111. package/dist/services/task/state-machine/TaskStateMachine.js.map +1 -0
  112. package/dist/services/task/state-machine/actions.js +572 -0
  113. package/dist/services/task/state-machine/actions.js.map +1 -0
  114. package/dist/services/task/state-machine/constants.js +161 -0
  115. package/dist/services/task/state-machine/constants.js.map +1 -0
  116. package/dist/services/task/state-machine/guards.js +379 -0
  117. package/dist/services/task/state-machine/guards.js.map +1 -0
  118. package/dist/services/task/state-machine/index.js +53 -0
  119. package/dist/services/task/state-machine/index.js.map +1 -0
  120. package/dist/services/task/state-machine/types.js +54 -0
  121. package/dist/services/task/state-machine/types.js.map +1 -0
  122. package/dist/services/task/state-machine/uiControlsComputer.js +703 -0
  123. package/dist/services/task/state-machine/uiControlsComputer.js.map +1 -0
  124. package/dist/services/task/taskDataNormalizer.js +99 -0
  125. package/dist/services/task/taskDataNormalizer.js.map +1 -0
  126. package/dist/services/task/types.js +228 -5
  127. package/dist/services/task/types.js.map +1 -1
  128. package/dist/services/task/voice/Voice.js +1485 -0
  129. package/dist/services/task/voice/Voice.js.map +1 -0
  130. package/dist/services/task/voice/WebRTC.js +152 -0
  131. package/dist/services/task/voice/WebRTC.js.map +1 -0
  132. package/dist/services/task/voice/wxAppVoiceMethods.js +354 -0
  133. package/dist/services/task/voice/wxAppVoiceMethods.js.map +1 -0
  134. package/dist/services/wxAppDiagnosticLogging.js +122 -0
  135. package/dist/services/wxAppDiagnosticLogging.js.map +1 -0
  136. package/dist/services/wxAppTelephonyUtils.js +19 -0
  137. package/dist/services/wxAppTelephonyUtils.js.map +1 -0
  138. package/dist/types/cc.d.ts +193 -6
  139. package/dist/types/config.d.ts +13 -0
  140. package/dist/types/constants.d.ts +29 -1
  141. package/dist/types/index.d.ts +35 -8
  142. package/dist/types/metrics/MetricsManager.d.ts +6 -0
  143. package/dist/types/metrics/constants.d.ts +43 -1
  144. package/dist/types/services/AddressBook.d.ts +2 -1
  145. package/dist/types/services/AnswerCallOnWebexService.d.ts +38 -0
  146. package/dist/types/services/ApiAiAssistant.d.ts +56 -5
  147. package/dist/types/services/EntryPoint.d.ts +7 -5
  148. package/dist/types/services/Queue.d.ts +5 -3
  149. package/dist/types/services/UserPreference.d.ts +118 -0
  150. package/dist/types/services/WebexCrossClientService.d.ts +32 -0
  151. package/dist/types/services/WxAppTelephonyMercurySync.d.ts +28 -0
  152. package/dist/types/services/config/constants.d.ts +34 -5
  153. package/dist/types/services/config/types.d.ts +197 -12
  154. package/dist/types/services/core/Err.d.ts +6 -0
  155. package/dist/types/services/core/Utils.d.ts +35 -13
  156. package/dist/types/services/core/WebexRequest.d.ts +1 -0
  157. package/dist/types/services/core/types.d.ts +2 -0
  158. package/dist/types/services/core/websocket/WebSocketManager.d.ts +1 -0
  159. package/dist/types/services/core/websocket/types.d.ts +1 -1
  160. package/dist/types/services/index.d.ts +1 -1
  161. package/dist/types/services/task/Task.d.ts +175 -0
  162. package/dist/types/services/task/TaskFactory.d.ts +13 -0
  163. package/dist/types/services/task/TaskUtils.d.ts +48 -2
  164. package/dist/types/services/task/WebexCallingUtils.d.ts +11 -0
  165. package/dist/types/services/task/constants.d.ts +10 -0
  166. package/dist/types/services/task/contact.d.ts +4 -0
  167. package/dist/types/services/task/dialer.d.ts +30 -0
  168. package/dist/types/services/task/digital/Digital.d.ts +22 -0
  169. package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +1442 -0
  170. package/dist/types/services/task/state-machine/actions.d.ts +10 -0
  171. package/dist/types/services/task/state-machine/constants.d.ts +107 -0
  172. package/dist/types/services/task/state-machine/guards.d.ts +103 -0
  173. package/dist/types/services/task/state-machine/index.d.ts +13 -0
  174. package/dist/types/services/task/state-machine/types.d.ts +277 -0
  175. package/dist/types/services/task/state-machine/uiControlsComputer.d.ts +9 -0
  176. package/dist/types/services/task/taskDataNormalizer.d.ts +10 -0
  177. package/dist/types/services/task/types.d.ts +680 -66
  178. package/dist/types/services/task/voice/Voice.d.ts +227 -0
  179. package/dist/types/services/task/voice/WebRTC.d.ts +53 -0
  180. package/dist/types/services/task/voice/wxAppVoiceMethods.d.ts +55 -0
  181. package/dist/types/services/wxAppDiagnosticLogging.d.ts +51 -0
  182. package/dist/types/services/wxAppTelephonyUtils.d.ts +5 -0
  183. package/dist/types/types.d.ts +205 -9
  184. package/dist/types/utils/PageCache.d.ts +20 -3
  185. package/dist/types/webex.d.ts +1 -0
  186. package/dist/types.js +162 -4
  187. package/dist/types.js.map +1 -1
  188. package/dist/utils/PageCache.js +19 -5
  189. package/dist/utils/PageCache.js.map +1 -1
  190. package/dist/webex.js +22 -2
  191. package/dist/webex.js.map +1 -1
  192. package/package.json +16 -12
  193. package/src/cc.ts +1289 -112
  194. package/src/config.ts +13 -0
  195. package/src/constants.ts +29 -1
  196. package/src/index.ts +36 -5
  197. package/src/metrics/MetricsManager.ts +16 -0
  198. package/src/metrics/ai-docs/AGENTS.md +350 -0
  199. package/src/metrics/ai-docs/ARCHITECTURE.md +338 -0
  200. package/src/metrics/ai-docs/metrics-spec.md +921 -0
  201. package/src/metrics/behavioral-events.ts +212 -0
  202. package/src/metrics/constants.ts +52 -4
  203. package/src/services/AddressBook.ts +17 -6
  204. package/src/services/AnswerCallOnWebexService.ts +239 -0
  205. package/src/services/ApiAiAssistant.ts +356 -9
  206. package/src/services/EntryPoint.ts +59 -60
  207. package/src/services/Queue.ts +29 -12
  208. package/src/services/UserPreference.ts +509 -0
  209. package/src/services/WebexCrossClientService.ts +293 -0
  210. package/src/services/WxAppTelephonyMercurySync.ts +142 -0
  211. package/src/services/agent/ai-docs/AGENTS.md +240 -0
  212. package/src/services/agent/ai-docs/ARCHITECTURE.md +304 -0
  213. package/src/services/agent/ai-docs/agent-spec.md +505 -0
  214. package/src/services/ai-docs/AGENTS.md +386 -0
  215. package/src/services/ai-docs/services-spec.md +505 -0
  216. package/src/services/config/Util.ts +12 -3
  217. package/src/services/config/ai-docs/AGENTS.md +255 -0
  218. package/src/services/config/ai-docs/ARCHITECTURE.md +426 -0
  219. package/src/services/config/ai-docs/config-spec.md +686 -0
  220. package/src/services/config/constants.ts +46 -6
  221. package/src/services/config/index.ts +65 -0
  222. package/src/services/config/types.ts +197 -13
  223. package/src/services/core/Err.ts +3 -0
  224. package/src/services/core/Utils.ts +127 -37
  225. package/src/services/core/WebexRequest.ts +3 -1
  226. package/src/services/core/ai-docs/AGENTS.md +381 -0
  227. package/src/services/core/ai-docs/ARCHITECTURE.md +698 -0
  228. package/src/services/core/ai-docs/core-spec.md +787 -0
  229. package/src/services/core/aqm-reqs.ts +30 -15
  230. package/src/services/core/types.ts +2 -0
  231. package/src/services/core/websocket/WebSocketManager.ts +2 -0
  232. package/src/services/core/websocket/types.ts +1 -1
  233. package/src/services/index.ts +1 -1
  234. package/src/services/task/Task.ts +908 -0
  235. package/src/services/task/TaskFactory.ts +60 -0
  236. package/src/services/task/TaskManager.ts +1419 -608
  237. package/src/services/task/TaskUtils.ts +303 -25
  238. package/src/services/task/WebexCallingUtils.ts +136 -0
  239. package/src/services/task/ai-docs/AGENTS.md +457 -0
  240. package/src/services/task/ai-docs/ARCHITECTURE.md +595 -0
  241. package/src/services/task/ai-docs/task-spec.md +1474 -0
  242. package/src/services/task/constants.ts +10 -0
  243. package/src/services/task/contact.ts +30 -0
  244. package/src/services/task/dialer.ts +80 -0
  245. package/src/services/task/digital/Digital.ts +97 -0
  246. package/src/services/task/state-machine/TaskStateMachine.ts +1320 -0
  247. package/src/services/task/state-machine/actions.ts +741 -0
  248. package/src/services/task/state-machine/ai-docs/AGENTS.md +460 -0
  249. package/src/services/task/state-machine/ai-docs/ARCHITECTURE.md +1156 -0
  250. package/src/services/task/state-machine/ai-docs/task-state-machine-spec.md +2247 -0
  251. package/src/services/task/state-machine/constants.ts +172 -0
  252. package/src/services/task/state-machine/guards.ts +442 -0
  253. package/src/services/task/state-machine/index.ts +28 -0
  254. package/src/services/task/state-machine/types.ts +258 -0
  255. package/src/services/task/state-machine/uiControlsComputer.ts +1135 -0
  256. package/src/services/task/taskDataNormalizer.ts +137 -0
  257. package/src/services/task/types.ts +819 -70
  258. package/src/services/task/voice/Voice.ts +1851 -0
  259. package/src/services/task/voice/WebRTC.ts +191 -0
  260. package/src/services/task/voice/wxAppVoiceMethods.ts +516 -0
  261. package/src/services/wxAppDiagnosticLogging.ts +174 -0
  262. package/src/services/wxAppTelephonyUtils.ts +14 -0
  263. package/src/types.ts +262 -11
  264. package/src/utils/AGENTS.md +289 -0
  265. package/src/utils/PageCache.ts +38 -5
  266. package/src/utils/ai-docs/utils-spec.md +391 -0
  267. package/src/webex.js +10 -0
  268. package/test/unit/spec/cc.ts +2210 -119
  269. package/test/unit/spec/logger-proxy.ts +70 -0
  270. package/test/unit/spec/metrics/MetricsManager.ts +25 -0
  271. package/test/unit/spec/metrics/behavioral-events.ts +60 -0
  272. package/test/unit/spec/services/AddressBook.ts +37 -6
  273. package/test/unit/spec/services/AnswerCallOnWebexService.ts +264 -0
  274. package/test/unit/spec/services/ApiAiAssistant.ts +311 -21
  275. package/test/unit/spec/services/EntryPoint.ts +87 -40
  276. package/test/unit/spec/services/Queue.ts +123 -12
  277. package/test/unit/spec/services/UserPreference.ts +401 -0
  278. package/test/unit/spec/services/WebCallingService.ts +7 -1
  279. package/test/unit/spec/services/WebexCrossClientService.ts +467 -0
  280. package/test/unit/spec/services/WxAppTelephonyMercurySync.ts +136 -0
  281. package/test/unit/spec/services/config/Util.ts +129 -0
  282. package/test/unit/spec/services/config/index.ts +97 -29
  283. package/test/unit/spec/services/core/Utils.ts +425 -8
  284. package/test/unit/spec/services/core/WebexRequest.ts +3 -1
  285. package/test/unit/spec/services/core/aqm-reqs.ts +113 -1
  286. package/test/unit/spec/services/core/websocket/WebSocketManager.ts +66 -40
  287. package/test/unit/spec/services/task/AutoWrapup.ts +63 -0
  288. package/test/unit/spec/services/task/Task.ts +745 -0
  289. package/test/unit/spec/services/task/TaskFactory.ts +99 -0
  290. package/test/unit/spec/services/task/TaskManager.ts +2518 -1494
  291. package/test/unit/spec/services/task/TaskUtils.ts +235 -0
  292. package/test/unit/spec/services/task/WebexCallingUtils.ts +153 -0
  293. package/test/unit/spec/services/task/contact.ts +33 -0
  294. package/test/unit/spec/services/task/dialer.ts +190 -0
  295. package/test/unit/spec/services/task/digital/Digital.ts +105 -0
  296. package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +4060 -0
  297. package/test/unit/spec/services/task/state-machine/guards.ts +839 -0
  298. package/test/unit/spec/services/task/state-machine/types.ts +18 -0
  299. package/test/unit/spec/services/task/state-machine/uiControlsComputer.ts +3101 -0
  300. package/test/unit/spec/services/task/taskTestUtils.ts +87 -0
  301. package/test/unit/spec/services/task/voice/Voice.ts +2061 -0
  302. package/test/unit/spec/services/task/voice/WebRTC.ts +235 -0
  303. package/test/unit/spec/services/task/voice/wxAppVoiceMethods.ts +603 -0
  304. package/test/unit/spec/services/wxAppDiagnosticLogging.ts +143 -0
  305. package/test/unit/spec/wellnessSampleUtils.ts +288 -0
  306. package/umd/contact-center.min.js +2 -2
  307. package/umd/contact-center.min.js.map +1 -1
  308. package/dist/services/task/index.js +0 -1525
  309. package/dist/services/task/index.js.map +0 -1
  310. package/dist/types/services/task/index.d.ts +0 -650
  311. package/src/services/task/index.ts +0 -1801
  312. package/test/unit/spec/services/task/index.ts +0 -2184
@@ -1,4 +1,7 @@
1
1
  import * as Agent from '../agent/types';
2
+ import { COLLABORATION_ACCESS } from './constants';
3
+ /** Desktop Profile access level for a collaboration destination category. */
4
+ export type CollaborationAccess = Enum<typeof COLLABORATION_ACCESS>;
2
5
  /**
3
6
  * Events emitted on task objects
4
7
  * @enum {string}
@@ -50,6 +53,8 @@ export declare const CC_TASK_EVENTS: {
50
53
  readonly PARTICIPANT_LEFT_CONFERENCE: "ParticipantLeftConference";
51
54
  /** Event emitted when participant leaving conference fails */
52
55
  readonly PARTICIPANT_LEFT_CONFERENCE_FAILED: "ParticipantLeftConferenceFailed";
56
+ /** Event emitted when dropping another conference participant fails */
57
+ readonly PARTICIPANT_DROP_CONFERENCE_FAILED: "ParticipantDropConferenceFailed";
53
58
  /** Event emitted when consultation conference end fails */
54
59
  readonly AGENT_CONSULT_CONFERENCE_END_FAILED: "AgentConsultConferenceEndFailed";
55
60
  /** Event emitted when conference is successfully transferred */
@@ -58,6 +63,8 @@ export declare const CC_TASK_EVENTS: {
58
63
  readonly AGENT_CONFERENCE_TRANSFER_FAILED: "AgentConferenceTransferFailed";
59
64
  /** Event emitted for post-call activity by participant */
60
65
  readonly PARTICIPANT_POST_CALL_ACTIVITY: "ParticipantPostCallActivity";
66
+ /** Event emitted when consulted participant is being moved/transferred */
67
+ readonly CONSULTED_PARTICIPANT_MOVING: "ConsultedParticipantMoving";
61
68
  /** Event emitted when contact is blind transferred */
62
69
  readonly AGENT_BLIND_TRANSFERRED: "AgentBlindTransferred";
63
70
  /** Event emitted when blind transfer fails */
@@ -74,6 +81,8 @@ export declare const CC_TASK_EVENTS: {
74
81
  readonly AGENT_CONSULT_TRANSFER_FAILED: "AgentConsultTransferFailed";
75
82
  /** Event emitted when contact recording is paused */
76
83
  readonly CONTACT_RECORDING_PAUSED: "ContactRecordingPaused";
84
+ /** Event emitted when contact recording is started */
85
+ readonly CONTACT_RECORDING_STARTED: "ContactRecordingStarted";
77
86
  /** Event emitted when pausing contact recording fails */
78
87
  readonly CONTACT_RECORDING_PAUSE_FAILED: "ContactRecordingPauseFailed";
79
88
  /** Event emitted when contact recording is resumed */
@@ -84,6 +93,10 @@ export declare const CC_TASK_EVENTS: {
84
93
  readonly CONTACT_ENDED: "ContactEnded";
85
94
  /** Event emitted when contact is merged */
86
95
  readonly CONTACT_MERGED: "ContactMerged";
96
+ /** Event emitted when contact payload is updated (routing updates) */
97
+ readonly CONTACT_UPDATED: "ContactUpdated";
98
+ /** Event emitted when contact owner changes */
99
+ readonly CONTACT_OWNER_CHANGED: "ContactOwnerChanged";
87
100
  /** Event emitted when ending contact fails */
88
101
  readonly AGENT_CONTACT_END_FAILED: "AgentContactEndFailed";
89
102
  /** Event emitted when agent enters wrap-up state */
@@ -110,14 +123,25 @@ export declare const CC_TASK_EVENTS: {
110
123
  readonly CAMPAIGN_CONTACT_UPDATED: "CampaignContactUpdated";
111
124
  /** Event emitted when accepting a campaign preview contact fails */
112
125
  readonly CAMPAIGN_PREVIEW_ACCEPT_FAILED: "CampaignPreviewAcceptFailed";
126
+ /** Event emitted when skipping a campaign preview contact fails */
127
+ readonly CAMPAIGN_PREVIEW_SKIP_FAILED: "CampaignPreviewSkipFailed";
128
+ /** Event emitted when removing a campaign preview contact fails */
129
+ readonly CAMPAIGN_PREVIEW_REMOVE_FAILED: "CampaignPreviewRemoveFailed";
113
130
  /** Event emitted when a real-time transcript chunk is received */
114
131
  readonly REAL_TIME_TRANSCRIPTION: "REAL_TIME_TRANSCRIPTION";
132
+ /** Event emitted when an AI assistant suggested response is available */
133
+ readonly SUGGESTED_RESPONSE: "SUGGESTED_RESPONSE";
134
+ /** Event emitted when backend acknowledges it is listening for more context */
135
+ readonly SUGGESTED_RESPONSE_ACKNOWLEDGE: "SUGGESTED_RESPONSE_ACKNOWLEDGE";
136
+ /** Event emitted when a mid-call summary is available */
137
+ readonly MID_CALL_SUMMARY: "MID_CALL_SUMMARY";
138
+ /** Event emitted when a post-call summary is available */
139
+ readonly POST_CALL_SUMMARY: "POST_CALL_SUMMARY";
115
140
  };
116
141
  /**
117
142
  * Events emitted on Contact Center agent operations
118
143
  * @enum {string}
119
- * @private
120
- * @ignore
144
+ * @public
121
145
  */
122
146
  export declare const CC_AGENT_EVENTS: {
123
147
  /** Welcome event when agent connects to websocket/backend */
@@ -156,6 +180,8 @@ export declare const CC_AGENT_EVENTS: {
156
180
  readonly AGENT_BUDDY_AGENTS_RETRIEVE_FAILED: "BuddyAgentsRetrieveFailed";
157
181
  /** Event emitted when contact is reserved for agent */
158
182
  readonly AGENT_CONTACT_RESERVED: "AgentContactReserved";
183
+ /** Agent-level Agent Wellness Break notification */
184
+ readonly WELLNESS_BREAK: "WellnessBreak";
159
185
  };
160
186
  /**
161
187
  * Combined Contact Center events including both agent and task events
@@ -207,6 +233,8 @@ export declare const CC_EVENTS: {
207
233
  readonly PARTICIPANT_LEFT_CONFERENCE: "ParticipantLeftConference";
208
234
  /** Event emitted when participant leaving conference fails */
209
235
  readonly PARTICIPANT_LEFT_CONFERENCE_FAILED: "ParticipantLeftConferenceFailed";
236
+ /** Event emitted when dropping another conference participant fails */
237
+ readonly PARTICIPANT_DROP_CONFERENCE_FAILED: "ParticipantDropConferenceFailed";
210
238
  /** Event emitted when consultation conference end fails */
211
239
  readonly AGENT_CONSULT_CONFERENCE_END_FAILED: "AgentConsultConferenceEndFailed";
212
240
  /** Event emitted when conference is successfully transferred */
@@ -215,6 +243,8 @@ export declare const CC_EVENTS: {
215
243
  readonly AGENT_CONFERENCE_TRANSFER_FAILED: "AgentConferenceTransferFailed";
216
244
  /** Event emitted for post-call activity by participant */
217
245
  readonly PARTICIPANT_POST_CALL_ACTIVITY: "ParticipantPostCallActivity";
246
+ /** Event emitted when consulted participant is being moved/transferred */
247
+ readonly CONSULTED_PARTICIPANT_MOVING: "ConsultedParticipantMoving";
218
248
  /** Event emitted when contact is blind transferred */
219
249
  readonly AGENT_BLIND_TRANSFERRED: "AgentBlindTransferred";
220
250
  /** Event emitted when blind transfer fails */
@@ -231,6 +261,8 @@ export declare const CC_EVENTS: {
231
261
  readonly AGENT_CONSULT_TRANSFER_FAILED: "AgentConsultTransferFailed";
232
262
  /** Event emitted when contact recording is paused */
233
263
  readonly CONTACT_RECORDING_PAUSED: "ContactRecordingPaused";
264
+ /** Event emitted when contact recording is started */
265
+ readonly CONTACT_RECORDING_STARTED: "ContactRecordingStarted";
234
266
  /** Event emitted when pausing contact recording fails */
235
267
  readonly CONTACT_RECORDING_PAUSE_FAILED: "ContactRecordingPauseFailed";
236
268
  /** Event emitted when contact recording is resumed */
@@ -241,6 +273,10 @@ export declare const CC_EVENTS: {
241
273
  readonly CONTACT_ENDED: "ContactEnded";
242
274
  /** Event emitted when contact is merged */
243
275
  readonly CONTACT_MERGED: "ContactMerged";
276
+ /** Event emitted when contact payload is updated (routing updates) */
277
+ readonly CONTACT_UPDATED: "ContactUpdated";
278
+ /** Event emitted when contact owner changes */
279
+ readonly CONTACT_OWNER_CHANGED: "ContactOwnerChanged";
244
280
  /** Event emitted when ending contact fails */
245
281
  readonly AGENT_CONTACT_END_FAILED: "AgentContactEndFailed";
246
282
  /** Event emitted when agent enters wrap-up state */
@@ -267,8 +303,20 @@ export declare const CC_EVENTS: {
267
303
  readonly CAMPAIGN_CONTACT_UPDATED: "CampaignContactUpdated";
268
304
  /** Event emitted when accepting a campaign preview contact fails */
269
305
  readonly CAMPAIGN_PREVIEW_ACCEPT_FAILED: "CampaignPreviewAcceptFailed";
306
+ /** Event emitted when skipping a campaign preview contact fails */
307
+ readonly CAMPAIGN_PREVIEW_SKIP_FAILED: "CampaignPreviewSkipFailed";
308
+ /** Event emitted when removing a campaign preview contact fails */
309
+ readonly CAMPAIGN_PREVIEW_REMOVE_FAILED: "CampaignPreviewRemoveFailed";
270
310
  /** Event emitted when a real-time transcript chunk is received */
271
311
  readonly REAL_TIME_TRANSCRIPTION: "REAL_TIME_TRANSCRIPTION";
312
+ /** Event emitted when an AI assistant suggested response is available */
313
+ readonly SUGGESTED_RESPONSE: "SUGGESTED_RESPONSE";
314
+ /** Event emitted when backend acknowledges it is listening for more context */
315
+ readonly SUGGESTED_RESPONSE_ACKNOWLEDGE: "SUGGESTED_RESPONSE_ACKNOWLEDGE";
316
+ /** Event emitted when a mid-call summary is available */
317
+ readonly MID_CALL_SUMMARY: "MID_CALL_SUMMARY";
318
+ /** Event emitted when a post-call summary is available */
319
+ readonly POST_CALL_SUMMARY: "POST_CALL_SUMMARY";
272
320
  /** Welcome event when agent connects to websocket/backend */
273
321
  readonly WELCOME: "Welcome";
274
322
  /** Event emitted when agent re-login is successful */
@@ -305,6 +353,8 @@ export declare const CC_EVENTS: {
305
353
  readonly AGENT_BUDDY_AGENTS_RETRIEVE_FAILED: "BuddyAgentsRetrieveFailed";
306
354
  /** Event emitted when contact is reserved for agent */
307
355
  readonly AGENT_CONTACT_RESERVED: "AgentContactReserved";
356
+ /** Agent-level Agent Wellness Break notification */
357
+ readonly WELLNESS_BREAK: "WellnessBreak";
308
358
  };
309
359
  /**
310
360
  * Event data received when agent connects to the system
@@ -314,6 +364,14 @@ export type WelcomeEvent = {
314
364
  /** ID of the agent that connected */
315
365
  agentId: string;
316
366
  };
367
+ /**
368
+ * Available login options for voice channel access
369
+ * 'AGENT_DN' - Login using agent's DN
370
+ * 'EXTENSION' - Login using extension number
371
+ * 'BROWSER' - Login using browser-based WebRTC
372
+ * @public
373
+ */
374
+ export type LoginOption = 'AGENT_DN' | 'EXTENSION' | 'BROWSER';
317
375
  /**
318
376
  * Response type for welcome events which can be either success or error
319
377
  * @public
@@ -384,13 +442,34 @@ export type AgentResponse = {
384
442
  dbId?: string;
385
443
  /**
386
444
  * The default dialed number of the agent.
445
+ * Note: The API returns this field as "deafultDialledNumber" (with typo).
387
446
  */
388
- defaultDialledNumber?: string;
447
+ deafultDialledNumber?: string;
389
448
  };
390
449
  /**
391
450
  * Represents the response from getDesktopProfileById method.
392
451
  */
393
452
  export type DesktopProfileResponse = {
453
+ /**
454
+ * Unique identifier of the agent profile configuration.
455
+ */
456
+ id: string;
457
+ /**
458
+ * Display name for the agent profile.
459
+ */
460
+ name: string;
461
+ /**
462
+ * Description of the agent profile.
463
+ */
464
+ description: string;
465
+ /**
466
+ * Parent entity type for the profile (for example ORGANIZATION).
467
+ */
468
+ parentType: string;
469
+ /**
470
+ * Indicates whether screen pop is enabled.
471
+ */
472
+ screenPopup: boolean;
394
473
  /**
395
474
  * Represents the voice options of an agent.
396
475
  */
@@ -423,6 +502,10 @@ export type DesktopProfileResponse = {
423
502
  * Auto wrap-up allowed.
424
503
  */
425
504
  autoWrapUp: boolean;
505
+ /**
506
+ * Whether the agent personal greeting is enabled.
507
+ */
508
+ agentPersonalGreeting: boolean;
426
509
  /**
427
510
  * Auto answer allowed.
428
511
  */
@@ -439,6 +522,30 @@ export type DesktopProfileResponse = {
439
522
  * Allow auto wrap-up extension.
440
523
  */
441
524
  allowAutoWrapUpExtension: boolean;
525
+ /**
526
+ * Access control for queues assigned to the agent (ALL, SPECIFIC, or NONE).
527
+ */
528
+ accessQueue: CollaborationAccess;
529
+ /**
530
+ * Queue identifiers available to the agent when access is SPECIFIC.
531
+ */
532
+ queues: string[];
533
+ /**
534
+ * Access control for entry points assigned to the agent.
535
+ */
536
+ accessEntryPoint: CollaborationAccess;
537
+ /**
538
+ * Entry point identifiers available to the agent when access is SPECIFIC.
539
+ */
540
+ entryPoints: string[];
541
+ /**
542
+ * Access control for buddy teams assigned to the agent.
543
+ */
544
+ accessBuddyTeam: CollaborationAccess;
545
+ /**
546
+ * Buddy team identifiers available to the agent when access is SPECIFIC.
547
+ */
548
+ buddyTeams: string[];
442
549
  /**
443
550
  * Outdial enabled for the agent.
444
551
  */
@@ -475,6 +582,10 @@ export type DesktopProfileResponse = {
475
582
  * Agent DN validation of the agent.
476
583
  */
477
584
  agentDNValidation: string;
585
+ /**
586
+ * Additional DN validation criteria configured for the agent.
587
+ */
588
+ agentDNValidationCriterions: string[];
478
589
  /**
479
590
  * Dial plans of the agent.
480
591
  */
@@ -503,6 +614,26 @@ export type DesktopProfileResponse = {
503
614
  * State synchronization in Webex enabled or not.
504
615
  */
505
616
  stateSynchronizationWebex: boolean;
617
+ /**
618
+ * Threshold rules configured for the agent profile.
619
+ */
620
+ thresholdRules: Array<Record<string, string | number>>;
621
+ /**
622
+ * Whether the agent profile is currently active.
623
+ */
624
+ active: boolean;
625
+ /**
626
+ * Whether this profile is the system default.
627
+ */
628
+ systemDefault: boolean;
629
+ /**
630
+ * Timestamp when the profile was created.
631
+ */
632
+ createdTime: number;
633
+ /**
634
+ * Timestamp when the profile was last updated.
635
+ */
636
+ lastUpdatedTime: number;
506
637
  };
507
638
  /**
508
639
  * Response containing multimedia profile configuration for an agent
@@ -672,6 +803,8 @@ export type OrgSettings = {
672
803
  maskSensitiveData: boolean;
673
804
  /** Whether campaign manager features are enabled */
674
805
  campaignManagerEnabled: boolean;
806
+ /** Number of AI Assistant licenses assigned to the organization */
807
+ aiAssistantQuantity?: number | null;
675
808
  };
676
809
  /**
677
810
  * Contact center site configuration information
@@ -898,14 +1031,6 @@ export type WrapupData = {
898
1031
  allowCancelAutoWrapup?: boolean;
899
1032
  };
900
1033
  };
901
- /**
902
- * Available login options for voice channel access
903
- * 'AGENT_DN' - Login using agent's DN
904
- * 'EXTENSION' - Login using extension number
905
- * 'BROWSER' - Login using browser-based WebRTC
906
- * @public
907
- */
908
- export type LoginOption = 'AGENT_DN' | 'EXTENSION' | 'BROWSER';
909
1034
  /**
910
1035
  * Team configuration information
911
1036
  * @public
@@ -1073,7 +1198,7 @@ export type Profile = {
1073
1198
  /** Outbound entry point */
1074
1199
  outDialEp: string;
1075
1200
  /** Whether ending calls is enabled */
1076
- isEndCallEnabled: boolean;
1201
+ isEndTaskEnabled: boolean;
1077
1202
  /** Whether ending consultations is enabled */
1078
1203
  isEndConsultEnabled: boolean;
1079
1204
  /** Optional lifecycle manager URL */
@@ -1084,6 +1209,12 @@ export type Profile = {
1084
1209
  agentAnalyzerId?: string;
1085
1210
  /** Whether consult to queue is allowed */
1086
1211
  allowConsultToQueue: boolean;
1212
+ /** Access control for queues on Desktop Profile Collaboration tab */
1213
+ accessQueue?: CollaborationAccess;
1214
+ /** Access control for entry points on Desktop Profile Collaboration tab */
1215
+ accessEntryPoint?: CollaborationAccess;
1216
+ /** Access control for buddy teams on Desktop Profile Collaboration tab */
1217
+ accessBuddyTeam?: CollaborationAccess;
1087
1218
  /** Additional campaign manager information */
1088
1219
  campaignManagerAdditionalInfo?: string;
1089
1220
  /** Whether personal statistics are enabled */
@@ -1148,6 +1279,12 @@ export type Profile = {
1148
1279
  lastIdleCodeChangeTimestamp?: number;
1149
1280
  /** AI feature flags resolved from organization config */
1150
1281
  aiFeature?: AIFeatureFlags;
1282
+ /**
1283
+ * Whether Agent Wellness Break is effectively enabled for this profile.
1284
+ * This combines the organization wellbeing configuration with AI Assistant licensing;
1285
+ * Server-side rollout remains enforced by the backend configuration and notification delivery.
1286
+ */
1287
+ isWellnessBreakEnabled?: boolean;
1151
1288
  };
1152
1289
  /**
1153
1290
  * Contact distribution group configuration for routing logic
@@ -1205,3 +1342,51 @@ export type OutdialAniParams = {
1205
1342
  /** Comma-separated list of attributes to include in response (optional) */
1206
1343
  attributes?: string;
1207
1344
  };
1345
+ /**
1346
+ * User preference data structure
1347
+ * @public
1348
+ */
1349
+ export type UserPreference = {
1350
+ /** Unique identifier for the user preference */
1351
+ id: string;
1352
+ /** Organization ID */
1353
+ organizationId: string;
1354
+ /** User ID (CI user ID) */
1355
+ userId: string;
1356
+ /** User preference data as key-value pairs */
1357
+ preferences: Record<string, unknown>;
1358
+ /** Timestamp when this preference was created (Unix timestamp in milliseconds) */
1359
+ createdTime?: number;
1360
+ /** Timestamp when this preference was last updated (Unix timestamp in milliseconds) */
1361
+ lastUpdatedTime?: number;
1362
+ };
1363
+ /**
1364
+ * Request payload for creating user preferences
1365
+ * @public
1366
+ */
1367
+ export type CreateUserPreferenceRequest = {
1368
+ /** User ID (CI user ID) */
1369
+ userId: string;
1370
+ /** Desktop preference data as a JSON string (required) */
1371
+ desktopPreference: string;
1372
+ };
1373
+ /**
1374
+ * Request payload for updating user preferences
1375
+ * @public
1376
+ */
1377
+ export type UpdateUserPreferenceRequest = {
1378
+ /** Desktop preference data as a JSON string (required) */
1379
+ desktopPreference: string;
1380
+ };
1381
+ /**
1382
+ * Query parameters for fetching user preferences
1383
+ * @public
1384
+ */
1385
+ export type GetUserPreferenceParams = {
1386
+ /** User ID to fetch preferences for. Defaults to current user's CI user ID. */
1387
+ userId?: string;
1388
+ /** Page number (0-indexed). Default: 0 */
1389
+ page?: number;
1390
+ /** Number of items per page. Default: 100 */
1391
+ pageSize?: number;
1392
+ };
@@ -49,6 +49,8 @@ export type TaskErrorIds = {
49
49
  'Service.aqm.task.consultAccept': Failure;
50
50
  } | {
51
51
  'Service.aqm.task.consultConference': Failure;
52
+ } | {
53
+ 'Service.aqm.task.dropConferenceParticipant': Failure;
52
54
  } | {
53
55
  'Service.aqm.task.consultEnd': Failure;
54
56
  } | {
@@ -67,6 +69,10 @@ export type TaskErrorIds = {
67
69
  'Service.aqm.dialer.startOutdial': Failure;
68
70
  } | {
69
71
  'Service.aqm.dialer.acceptPreviewContact': Failure;
72
+ } | {
73
+ 'Service.aqm.dialer.skipPreviewContact': Failure;
74
+ } | {
75
+ 'Service.aqm.dialer.removePreviewContact': Failure;
70
76
  } | {
71
77
  'Service.reqs.generic.failure': {
72
78
  trackingId: string;
@@ -1,17 +1,26 @@
1
1
  import * as Err from './Err';
2
2
  import { LoginOption, WebexRequestPayload } from '../../types';
3
3
  import { Failure, AugmentedError } from './GlobalTypes';
4
- import { TaskData, ConsultTransferPayLoad, Interaction } from '../task/types';
4
+ import { ConsultConferenceData, consultConferencePayloadData, ConsultTransferDestinationType, TaskData, Interaction } from '../task/types';
5
5
  import { DialPlan } from '../config/types';
6
- export declare const FALLBACK_DIAL_NUMBER_REGEX: RegExp;
6
+ /** Returns whether a value is a non-null object with string keys. */
7
+ export declare const isRecord: (value: unknown) => value is Record<string, unknown>;
8
+ /**
9
+ * Strips characters defined in the dial plan entry from the input string.
10
+ *
11
+ * @param input - The dial number to sanitize
12
+ * @param strippedChars - String of characters to remove from the input
13
+ * @returns The sanitized input with specified characters removed
14
+ */
15
+ export declare const stripDialPlanChars: (input: string, strippedChars: string) => string;
7
16
  /**
8
17
  * Validates a dial number against the provided dial plan regex patterns.
9
18
  * A number is valid if it matches at least one regex pattern in the dial plans.
10
- * Falls back to US/Canada regex validation if no dial plan entries are configured.
19
+ * Skips validation when no dial plan entries are configured, deferring to the server.
11
20
  *
12
21
  * @param input - The dial number to validate
13
22
  * @param dialPlanEntries - Array of dial plan entries containing regex patterns
14
- * @returns true if the input matches at least one dial plan regex pattern, false otherwise
23
+ * @returns true if the input matches at least one dial plan regex pattern or no entries are configured, false otherwise
15
24
  */
16
25
  export declare const isValidDialNumber: (input: string, dialPlanEntries: DialPlan['dialPlanEntity']) => boolean;
17
26
  export declare const getStationLoginErrorData: (failure: Failure, loginOption: LoginOption) => {
@@ -61,14 +70,6 @@ export declare const generateTaskErrorObject: (error: any, methodName: string, m
61
70
  * @ignore
62
71
  */
63
72
  export declare const createErrDetailsObject: (errObj: WebexRequestPayload) => Err.Details<"Service.reqs.generic.failure">;
64
- /**
65
- * Gets the consulted agent ID from the media object by finding the agent
66
- * in the consult media participants (excluding the current agent).
67
- *
68
- * @param media - The media object from the interaction
69
- * @param agentId - The current agent's ID to exclude from the search
70
- * @returns The consulted agent ID, or empty string if none found
71
- */
72
73
  export declare const getConsultedAgentId: (media: Interaction['media'], agentId: string) => string;
73
74
  /**
74
75
  * Gets the destination agent ID for CBT (Capacity Based Team) scenarios.
@@ -98,4 +99,25 @@ export declare const calculateDestAgentId: (interaction: Interaction, agentId: s
98
99
  * @returns The destination agent ID for determining destination type
99
100
  */
100
101
  export declare const calculateDestType: (interaction: Interaction, agentId: string) => string;
101
- export declare const deriveConsultTransferDestinationType: (taskData?: TaskData) => ConsultTransferPayLoad['destinationType'];
102
+ /**
103
+ * Gets the destination agent ID from participants.
104
+ * Finds a participant who is not the current agent and is an agent type.
105
+ *
106
+ * @param participants - The participants object from interaction
107
+ * @param agentId - The current agent's ID
108
+ * @returns The destination agent ID, or undefined if none found
109
+ */
110
+ export declare const buildConsultConferenceParamData: (dataPassed: consultConferencePayloadData, interactionIdPassed: string) => {
111
+ interactionId: string;
112
+ data: ConsultConferenceData;
113
+ };
114
+ /**
115
+ * Derives the consult transfer destination type based on task data.
116
+ * This function determines the appropriate destination type for a consult transfer
117
+ * by examining the destination type stored in the task data.
118
+ *
119
+ * @param taskData - The task data containing destination information
120
+ * @returns The derived consult transfer destination type
121
+ * @public
122
+ */
123
+ export declare const deriveConsultTransferDestinationType: (taskData: TaskData) => ConsultTransferDestinationType;
@@ -11,6 +11,7 @@ declare class WebexRequest {
11
11
  resource: string;
12
12
  method: HTTP_METHODS;
13
13
  body?: RequestBody;
14
+ headers?: Record<string, string | null>;
14
15
  }): Promise<IHttpResponse>;
15
16
  /**
16
17
  * This is used for uploading the logs to backend/mats.
@@ -18,6 +18,8 @@ export type Req<TRes, TErr> = {
18
18
  url: string;
19
19
  host?: string;
20
20
  method?: HTTP_METHODS;
21
+ /** Suppress request URLs and routing payloads from AQM logs for sensitive operations. */
22
+ redactSensitiveLogs?: boolean;
21
23
  err?: ((errObj: WebexRequestPayload) => Err.Details<'Service.reqs.generic.failure'>) | Err.IdsMessage | ((e: WebexRequestPayload) => Err.Message | Err.Details<Err.IdsDetails>);
22
24
  notifSuccess: {
23
25
  bind: Bind;
@@ -33,3 +33,4 @@ export declare class WebSocketManager extends EventEmitter {
33
33
  private connect;
34
34
  private webSocketOnCloseHandler;
35
35
  }
36
+ export default WebSocketManager;
@@ -1,5 +1,5 @@
1
1
  import { SubscribeRequest } from '../../../types';
2
- import { WebSocketManager } from './WebSocketManager';
2
+ import type WebSocketManager from './WebSocketManager';
3
3
  /**
4
4
  * Options for initializing a connection service.
5
5
  * @typedef ConnectionServiceOptions
@@ -23,7 +23,7 @@ export default class Services {
23
23
  readonly dialer: ReturnType<typeof aqmDialer>;
24
24
  /** WebSocket manager for handling real-time communications */
25
25
  readonly webSocketManager: WebSocketManager;
26
- /** RTD WebSocket manager for handling realtime transcription */
26
+ /** RTD WebSocket manager for handling real-time transcription */
27
27
  readonly rtdWebSocketManager: WebSocketManager;
28
28
  /** Connection service for managing websocket connections */
29
29
  readonly connectionService: ConnectionService;