@webex/contact-center 3.12.0-next.17 → 3.12.0-next.170

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 (328) hide show
  1. package/.sdd/manifest.json +887 -0
  2. package/AGENTS.md +94 -0
  3. package/ai-docs/ARCHITECTURE.md +168 -0
  4. package/ai-docs/CONTRACTS.md +62 -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 +385 -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 +888 -49
  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 +38 -3
  46. package/dist/constants.js.map +1 -1
  47. package/dist/index.js +54 -17
  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 +185 -0
  52. package/dist/metrics/behavioral-events.js.map +1 -1
  53. package/dist/metrics/constants.js +54 -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 +369 -14
  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/WebCallingService.js +10 -2
  68. package/dist/services/WebCallingService.js.map +1 -1
  69. package/dist/services/WebexCrossClientService.js +225 -0
  70. package/dist/services/WebexCrossClientService.js.map +1 -0
  71. package/dist/services/WxAppTelephonyMercurySync.js +111 -0
  72. package/dist/services/WxAppTelephonyMercurySync.js.map +1 -0
  73. package/dist/services/config/Util.js +48 -48
  74. package/dist/services/config/Util.js.map +1 -1
  75. package/dist/services/config/constants.js +56 -78
  76. package/dist/services/config/constants.js.map +1 -1
  77. package/dist/services/config/index.js +100 -226
  78. package/dist/services/config/index.js.map +1 -1
  79. package/dist/services/config/types.js +93 -24
  80. package/dist/services/config/types.js.map +1 -1
  81. package/dist/services/constants.js +11 -1
  82. package/dist/services/constants.js.map +1 -1
  83. package/dist/services/core/Err.js.map +1 -1
  84. package/dist/services/core/Utils.js +131 -32
  85. package/dist/services/core/Utils.js.map +1 -1
  86. package/dist/services/core/WebexRequest.js +6 -2
  87. package/dist/services/core/WebexRequest.js.map +1 -1
  88. package/dist/services/core/aqm-reqs.js +17 -11
  89. package/dist/services/core/aqm-reqs.js.map +1 -1
  90. package/dist/services/core/constants.js +9 -1
  91. package/dist/services/core/constants.js.map +1 -1
  92. package/dist/services/core/types.js.map +1 -1
  93. package/dist/services/core/websocket/WebSocketManager.js +19 -2
  94. package/dist/services/core/websocket/WebSocketManager.js.map +1 -1
  95. package/dist/services/core/websocket/types.js.map +1 -1
  96. package/dist/services/index.js +1 -1
  97. package/dist/services/index.js.map +1 -1
  98. package/dist/services/task/Task.js +955 -0
  99. package/dist/services/task/Task.js.map +1 -0
  100. package/dist/services/task/TaskFactory.js +50 -0
  101. package/dist/services/task/TaskFactory.js.map +1 -0
  102. package/dist/services/task/TaskManager.js +1272 -605
  103. package/dist/services/task/TaskManager.js.map +1 -1
  104. package/dist/services/task/TaskUtils.js +221 -27
  105. package/dist/services/task/TaskUtils.js.map +1 -1
  106. package/dist/services/task/WebexCallingUtils.js +70 -0
  107. package/dist/services/task/WebexCallingUtils.js.map +1 -0
  108. package/dist/services/task/constants.js +19 -2
  109. package/dist/services/task/constants.js.map +1 -1
  110. package/dist/services/task/contact.js +29 -0
  111. package/dist/services/task/contact.js.map +1 -1
  112. package/dist/services/task/digital/Digital.js +78 -0
  113. package/dist/services/task/digital/Digital.js.map +1 -0
  114. package/dist/services/task/state-machine/TaskStateMachine.js +982 -0
  115. package/dist/services/task/state-machine/TaskStateMachine.js.map +1 -0
  116. package/dist/services/task/state-machine/actions.js +572 -0
  117. package/dist/services/task/state-machine/actions.js.map +1 -0
  118. package/dist/services/task/state-machine/constants.js +161 -0
  119. package/dist/services/task/state-machine/constants.js.map +1 -0
  120. package/dist/services/task/state-machine/guards.js +379 -0
  121. package/dist/services/task/state-machine/guards.js.map +1 -0
  122. package/dist/services/task/state-machine/index.js +53 -0
  123. package/dist/services/task/state-machine/index.js.map +1 -0
  124. package/dist/services/task/state-machine/types.js +54 -0
  125. package/dist/services/task/state-machine/types.js.map +1 -0
  126. package/dist/services/task/state-machine/uiControlsComputer.js +703 -0
  127. package/dist/services/task/state-machine/uiControlsComputer.js.map +1 -0
  128. package/dist/services/task/taskDataNormalizer.js +99 -0
  129. package/dist/services/task/taskDataNormalizer.js.map +1 -0
  130. package/dist/services/task/types.js +215 -5
  131. package/dist/services/task/types.js.map +1 -1
  132. package/dist/services/task/voice/Voice.js +1504 -0
  133. package/dist/services/task/voice/Voice.js.map +1 -0
  134. package/dist/services/task/voice/WebRTC.js +152 -0
  135. package/dist/services/task/voice/WebRTC.js.map +1 -0
  136. package/dist/services/task/voice/wxAppOfferObservability.js +145 -0
  137. package/dist/services/task/voice/wxAppOfferObservability.js.map +1 -0
  138. package/dist/services/task/voice/wxAppVoiceMethods.js +395 -0
  139. package/dist/services/task/voice/wxAppVoiceMethods.js.map +1 -0
  140. package/dist/services/wxAppDiagnosticLogging.js +159 -0
  141. package/dist/services/wxAppDiagnosticLogging.js.map +1 -0
  142. package/dist/services/wxAppTelephonyUtils.js +19 -0
  143. package/dist/services/wxAppTelephonyUtils.js.map +1 -0
  144. package/dist/types/cc.d.ts +152 -9
  145. package/dist/types/config.d.ts +13 -0
  146. package/dist/types/constants.d.ts +36 -1
  147. package/dist/types/index.d.ts +54 -20
  148. package/dist/types/metrics/MetricsManager.d.ts +6 -0
  149. package/dist/types/metrics/constants.d.ts +48 -1
  150. package/dist/types/services/AddressBook.d.ts +2 -1
  151. package/dist/types/services/AnswerCallOnWebexService.d.ts +38 -0
  152. package/dist/types/services/ApiAiAssistant.d.ts +67 -5
  153. package/dist/types/services/EntryPoint.d.ts +7 -5
  154. package/dist/types/services/Queue.d.ts +5 -3
  155. package/dist/types/services/UserPreference.d.ts +118 -0
  156. package/dist/types/services/WebexCrossClientService.d.ts +32 -0
  157. package/dist/types/services/WxAppTelephonyMercurySync.d.ts +28 -0
  158. package/dist/types/services/config/Util.d.ts +4 -8
  159. package/dist/types/services/config/constants.d.ts +49 -76
  160. package/dist/types/services/config/index.d.ts +16 -64
  161. package/dist/types/services/config/types.d.ts +240 -114
  162. package/dist/types/services/constants.d.ts +9 -0
  163. package/dist/types/services/core/Err.d.ts +2 -0
  164. package/dist/types/services/core/Utils.d.ts +43 -13
  165. package/dist/types/services/core/WebexRequest.d.ts +1 -0
  166. package/dist/types/services/core/constants.d.ts +7 -0
  167. package/dist/types/services/core/types.d.ts +2 -0
  168. package/dist/types/services/core/websocket/WebSocketManager.d.ts +1 -0
  169. package/dist/types/services/core/websocket/types.d.ts +1 -1
  170. package/dist/types/services/index.d.ts +1 -1
  171. package/dist/types/services/task/Task.d.ts +186 -0
  172. package/dist/types/services/task/TaskFactory.d.ts +14 -0
  173. package/dist/types/services/task/TaskUtils.d.ts +54 -2
  174. package/dist/types/services/task/WebexCallingUtils.d.ts +11 -0
  175. package/dist/types/services/task/constants.d.ts +17 -0
  176. package/dist/types/services/task/contact.d.ts +4 -0
  177. package/dist/types/services/task/digital/Digital.d.ts +23 -0
  178. package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +1442 -0
  179. package/dist/types/services/task/state-machine/actions.d.ts +10 -0
  180. package/dist/types/services/task/state-machine/constants.d.ts +107 -0
  181. package/dist/types/services/task/state-machine/guards.d.ts +103 -0
  182. package/dist/types/services/task/state-machine/index.d.ts +13 -0
  183. package/dist/types/services/task/state-machine/types.d.ts +277 -0
  184. package/dist/types/services/task/state-machine/uiControlsComputer.d.ts +9 -0
  185. package/dist/types/services/task/taskDataNormalizer.d.ts +10 -0
  186. package/dist/types/services/task/types.d.ts +738 -66
  187. package/dist/types/services/task/voice/Voice.d.ts +241 -0
  188. package/dist/types/services/task/voice/WebRTC.d.ts +54 -0
  189. package/dist/types/services/task/voice/wxAppOfferObservability.d.ts +39 -0
  190. package/dist/types/services/task/voice/wxAppVoiceMethods.d.ts +68 -0
  191. package/dist/types/services/wxAppDiagnosticLogging.d.ts +63 -0
  192. package/dist/types/services/wxAppTelephonyUtils.d.ts +5 -0
  193. package/dist/types/types.d.ts +213 -11
  194. package/dist/types/utils/PageCache.d.ts +20 -3
  195. package/dist/types/webex.d.ts +1 -0
  196. package/dist/types.js +168 -6
  197. package/dist/types.js.map +1 -1
  198. package/dist/utils/PageCache.js +19 -5
  199. package/dist/utils/PageCache.js.map +1 -1
  200. package/dist/webex.js +22 -2
  201. package/dist/webex.js.map +1 -1
  202. package/package.json +16 -12
  203. package/src/cc.ts +1137 -67
  204. package/src/config.ts +13 -0
  205. package/src/constants.ts +39 -1
  206. package/src/index.ts +62 -15
  207. package/src/metrics/MetricsManager.ts +16 -0
  208. package/src/metrics/ai-docs/AGENTS.md +350 -0
  209. package/src/metrics/ai-docs/ARCHITECTURE.md +338 -0
  210. package/src/metrics/ai-docs/metrics-spec.md +971 -0
  211. package/src/metrics/behavioral-events.ts +190 -0
  212. package/src/metrics/constants.ts +59 -4
  213. package/src/services/AddressBook.ts +17 -6
  214. package/src/services/AnswerCallOnWebexService.ts +239 -0
  215. package/src/services/ApiAiAssistant.ts +494 -15
  216. package/src/services/EntryPoint.ts +59 -60
  217. package/src/services/Queue.ts +29 -12
  218. package/src/services/UserPreference.ts +509 -0
  219. package/src/services/WebCallingService.ts +16 -2
  220. package/src/services/WebexCrossClientService.ts +298 -0
  221. package/src/services/WxAppTelephonyMercurySync.ts +142 -0
  222. package/src/services/agent/ai-docs/AGENTS.md +240 -0
  223. package/src/services/agent/ai-docs/ARCHITECTURE.md +304 -0
  224. package/src/services/agent/ai-docs/agent-spec.md +505 -0
  225. package/src/services/ai-docs/AGENTS.md +386 -0
  226. package/src/services/ai-docs/services-spec.md +512 -0
  227. package/src/services/config/Util.ts +54 -84
  228. package/src/services/config/ai-docs/AGENTS.md +250 -0
  229. package/src/services/config/ai-docs/ARCHITECTURE.md +413 -0
  230. package/src/services/config/ai-docs/config-spec.md +669 -0
  231. package/src/services/config/constants.ts +63 -85
  232. package/src/services/config/index.ts +116 -277
  233. package/src/services/config/types.ts +229 -125
  234. package/src/services/constants.ts +10 -0
  235. package/src/services/core/Err.ts +1 -0
  236. package/src/services/core/Utils.ts +151 -37
  237. package/src/services/core/WebexRequest.ts +3 -1
  238. package/src/services/core/ai-docs/AGENTS.md +381 -0
  239. package/src/services/core/ai-docs/ARCHITECTURE.md +698 -0
  240. package/src/services/core/ai-docs/core-spec.md +797 -0
  241. package/src/services/core/aqm-reqs.ts +18 -12
  242. package/src/services/core/constants.ts +8 -0
  243. package/src/services/core/types.ts +33 -1
  244. package/src/services/core/websocket/WebSocketManager.ts +28 -2
  245. package/src/services/core/websocket/types.ts +1 -1
  246. package/src/services/index.ts +1 -1
  247. package/src/services/task/Task.ts +1211 -0
  248. package/src/services/task/TaskFactory.ts +82 -0
  249. package/src/services/task/TaskManager.ts +1585 -724
  250. package/src/services/task/TaskUtils.ts +316 -25
  251. package/src/services/task/WebexCallingUtils.ts +136 -0
  252. package/src/services/task/ai-docs/AGENTS.md +457 -0
  253. package/src/services/task/ai-docs/ARCHITECTURE.md +595 -0
  254. package/src/services/task/ai-docs/task-spec.md +1501 -0
  255. package/src/services/task/constants.ts +18 -0
  256. package/src/services/task/contact.ts +30 -0
  257. package/src/services/task/digital/Digital.ts +102 -0
  258. package/src/services/task/state-machine/TaskStateMachine.ts +1320 -0
  259. package/src/services/task/state-machine/actions.ts +741 -0
  260. package/src/services/task/state-machine/ai-docs/AGENTS.md +460 -0
  261. package/src/services/task/state-machine/ai-docs/ARCHITECTURE.md +1156 -0
  262. package/src/services/task/state-machine/ai-docs/task-state-machine-spec.md +2247 -0
  263. package/src/services/task/state-machine/constants.ts +172 -0
  264. package/src/services/task/state-machine/guards.ts +442 -0
  265. package/src/services/task/state-machine/index.ts +28 -0
  266. package/src/services/task/state-machine/types.ts +258 -0
  267. package/src/services/task/state-machine/uiControlsComputer.ts +1135 -0
  268. package/src/services/task/taskDataNormalizer.ts +137 -0
  269. package/src/services/task/types.ts +918 -70
  270. package/src/services/task/voice/Voice.ts +1878 -0
  271. package/src/services/task/voice/WebRTC.ts +194 -0
  272. package/src/services/task/voice/wxAppOfferObservability.ts +204 -0
  273. package/src/services/task/voice/wxAppVoiceMethods.ts +575 -0
  274. package/src/services/wxAppDiagnosticLogging.ts +286 -0
  275. package/src/services/wxAppTelephonyUtils.ts +14 -0
  276. package/src/types.ts +272 -13
  277. package/src/utils/AGENTS.md +289 -0
  278. package/src/utils/PageCache.ts +38 -5
  279. package/src/utils/ai-docs/utils-spec.md +391 -0
  280. package/src/webex.js +10 -0
  281. package/test/unit/fixtures/aiSummaryTestUtils.ts +40 -0
  282. package/test/unit/spec/cc.ts +3553 -107
  283. package/test/unit/spec/index.ts +885 -0
  284. package/test/unit/spec/logger-proxy.ts +70 -0
  285. package/test/unit/spec/metrics/MetricsManager.ts +25 -0
  286. package/test/unit/spec/metrics/behavioral-events.ts +60 -0
  287. package/test/unit/spec/services/AddressBook.ts +37 -6
  288. package/test/unit/spec/services/AnswerCallOnWebexService.ts +264 -0
  289. package/test/unit/spec/services/ApiAiAssistant.ts +442 -23
  290. package/test/unit/spec/services/EntryPoint.ts +87 -40
  291. package/test/unit/spec/services/Queue.ts +123 -12
  292. package/test/unit/spec/services/UserPreference.ts +401 -0
  293. package/test/unit/spec/services/WebCallingService.ts +45 -1
  294. package/test/unit/spec/services/WebexCrossClientService.ts +509 -0
  295. package/test/unit/spec/services/WxAppTelephonyMercurySync.ts +136 -0
  296. package/test/unit/spec/services/config/Util.ts +501 -0
  297. package/test/unit/spec/services/config/index.ts +317 -547
  298. package/test/unit/spec/services/core/Utils.ts +447 -8
  299. package/test/unit/spec/services/core/WebexRequest.ts +8 -7
  300. package/test/unit/spec/services/core/aqm-reqs.ts +142 -1
  301. package/test/unit/spec/services/core/websocket/WebSocketManager.ts +129 -53
  302. package/test/unit/spec/services/task/AutoWrapup.ts +63 -0
  303. package/test/unit/spec/services/task/Task.ts +2723 -0
  304. package/test/unit/spec/services/task/TaskFactory.ts +116 -0
  305. package/test/unit/spec/services/task/TaskManager.ts +4734 -1769
  306. package/test/unit/spec/services/task/TaskUtils.ts +307 -0
  307. package/test/unit/spec/services/task/WebexCallingUtils.ts +153 -0
  308. package/test/unit/spec/services/task/contact.ts +33 -0
  309. package/test/unit/spec/services/task/digital/Digital.ts +105 -0
  310. package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +4060 -0
  311. package/test/unit/spec/services/task/state-machine/guards.ts +839 -0
  312. package/test/unit/spec/services/task/state-machine/types.ts +18 -0
  313. package/test/unit/spec/services/task/state-machine/uiControlsComputer.ts +3101 -0
  314. package/test/unit/spec/services/task/taskTestUtils.ts +87 -0
  315. package/test/unit/spec/services/task/voice/Voice.ts +2355 -0
  316. package/test/unit/spec/services/task/voice/WebRTC.ts +235 -0
  317. package/test/unit/spec/services/task/voice/wxAppOfferObservability.ts +361 -0
  318. package/test/unit/spec/services/task/voice/wxAppVoiceMethods.ts +719 -0
  319. package/test/unit/spec/services/wxAppDiagnosticLogging.ts +179 -0
  320. package/test/unit/spec/wellnessSampleUtils.ts +288 -0
  321. package/typedoc.md +1 -1
  322. package/umd/contact-center.min.js +2 -2
  323. package/umd/contact-center.min.js.map +1 -1
  324. package/dist/services/task/index.js +0 -1530
  325. package/dist/services/task/index.js.map +0 -1
  326. package/dist/types/services/task/index.d.ts +0 -650
  327. package/src/services/task/index.ts +0 -1806
  328. package/test/unit/spec/services/task/index.ts +0 -2205
@@ -1,26 +1,28 @@
1
1
  import ContactCenter from './cc';
2
2
  /**
3
3
  * @module ContactCenterModule
4
- * /
5
-
6
- // Core exports
4
+ */
7
5
  /**
8
6
  * ContactCenter is the main plugin class for Webex Contact Center integration
9
7
  * @category Core
10
8
  */
11
9
  export { default as ContactCenter } from './cc';
12
10
  /**
13
- * Task class represents a contact center task that can be managed by an agent
11
+ * Agent routing service for Contact Center operations
14
12
  * @category Services
15
13
  */
16
- export { default as Task } from './services/task';
14
+ export { default as routingAgent } from './services/agent';
17
15
  /**
18
- * Agent routing service for Contact Center operations
16
+ * Task class represents a contact center task that can be managed by an agent
19
17
  * @category Services
20
18
  */
21
- export { default as routingAgent } from './services/agent';
19
+ export { default as Task } from './services/task/Task';
22
20
  export { default as AddressBook } from './services/AddressBook';
23
21
  export { default as ApiAIAssistant } from './services/ApiAiAssistant';
22
+ export { AI_SUMMARY_ERROR_CODES } from './constants';
23
+ export { default as UserPreference } from './services/UserPreference';
24
+ /** Agent Wellness Break notification and action wire values. */
25
+ export { WELLNESS_BREAK_NOTIFICATION_ACTIONS, WELLNESS_BREAK_USER_ACTIONS } from './types';
24
26
  /** EntryPoint API types */
25
27
  export type { EntryPointRecord, EntryPointListResponse, EntryPointSearchParams, AddressBookEntry, AddressBookEntriesResponse, AddressBookEntrySearchParams, ContactServiceQueuesResponse, ContactServiceQueueSearchParams, ContactServiceQueue, } from './types';
26
28
  /**
@@ -38,7 +40,7 @@ export type { TASK_EVENTS as TaskEvents } from './services/task/types';
38
40
  export { AGENT_EVENTS } from './services/agent/types';
39
41
  export type { AGENT_EVENTS as AgentEvents } from './services/agent/types';
40
42
  /**
41
- * Contact Center Task Events
43
+ * Contact Center task, realtime, and AI Assistant events
42
44
  * @enum {string}
43
45
  * @category Enums
44
46
  */
@@ -89,15 +91,31 @@ UpdateDeviceTypeResponse,
89
91
  /** Generic error interface */
90
92
  GenericError,
91
93
  /** Set state response */
92
- SetStateResponse, } from './types';
94
+ SetStateResponse,
95
+ /** Wellness notification action */
96
+ WellnessBreakNotificationAction,
97
+ /** Wellness action API value */
98
+ WellnessBreakUserAction,
99
+ /** Validated agent-scoped wellness notification */
100
+ WellnessBreakEvent,
101
+ /** Wellness offer-response parameters */
102
+ RespondToWellnessBreakParams, } from './types';
93
103
  /** Task related types */
94
104
  export type { AgentContact,
105
+ /** Event emitter contract for task consumers (no @types/node needed) */
106
+ IEventEmitter,
95
107
  /** Task interface */
96
108
  ITask, Interaction, TaskData,
97
109
  /** Task response */
98
- TaskResponse, ConsultPayload, ConsultEndPayload, ConsultTransferPayLoad,
110
+ TaskResponse,
111
+ /** Conference participant drop request */
112
+ DropConferenceParticipantPayload, ConsultPayload, ConsultEndPayload, ConsultTransferPayLoad,
99
113
  /** Dialer payload */
100
- DialerPayload, TransferPayLoad, ResumeRecordingPayload, WrapupPayLoad, } from './services/task/types';
114
+ DialerPayload, TransferPayLoad, ResumeRecordingPayload, WrapupPayLoad,
115
+ /** UI control types for task buttons */
116
+ InteractionUIControls, TaskUILeg, TaskUIControls, TaskUIControlState, AISummaryAction, AISummaryFeedback, AISummaryState, AISummarySections, AISummary, AISummaryFeatureEnablement, AISummaryResponse, } from './services/task/types';
117
+ /** UI controls utilities */
118
+ export { getDefaultUIControls } from './services/task/state-machine/uiControlsComputer';
101
119
  /** Agent related types */
102
120
  export type {
103
121
  /** State change interface */
@@ -130,10 +148,14 @@ BuddyAgentsSuccess, } from './services/agent/types';
130
148
  export type {
131
149
  /** Profile interface */
132
150
  Profile,
133
- /** Response type from getUserUsingCI method */
151
+ /** Aggregated organization configuration from getOrgDesktopLoginConfig */
152
+ OrgDesktopLoginResponse,
153
+ /** Aggregated user configuration from getUserDesktopLoginConfig */
154
+ UserDesktopLoginResponse,
155
+ /** Agent identity, the `user` section of the user desktop-login aggregate */
134
156
  AgentResponse,
135
- /** Response from getDesktopProfileById */
136
- DesktopProfileResponse,
157
+ /** Desktop Profile settings, the `agentProfile` section of the user desktop-login aggregate */
158
+ AgentProfile,
137
159
  /** Response from getMultimediaProfileById */
138
160
  MultimediaProfileResponse,
139
161
  /** Response from getListOfTeams */
@@ -142,14 +164,18 @@ ListTeamsResponse,
142
164
  ListAuxCodesResponse,
143
165
  /** Response from getSiteInfo */
144
166
  SiteInfo,
145
- /** Response from getOrgInfo */
167
+ /** Organization identity, the `organization` section of the org desktop-login aggregate */
146
168
  OrgInfo,
147
- /** Response from getOrganizationSetting */
169
+ /** Organization settings, the `organizationSetting` section of the org desktop-login aggregate */
148
170
  OrgSettings,
149
- /** Response from getTenantData */
171
+ /** Tenant configuration, the `tenantConfiguration` section of the org desktop-login aggregate */
150
172
  TenantData,
151
- /** Response from getURLMapping */
152
- URLMapping,
173
+ /** Microsoft Teams integration configuration, from the org desktop-login aggregate */
174
+ MicrosoftConfig,
175
+ /** Webex integration configuration, from the org desktop-login aggregate */
176
+ WebexConfig,
177
+ /** External integration URLs, the `urlMappings` section of the org desktop-login aggregate */
178
+ OrgUrlMappings,
153
179
  /** Response from getDialPlanData */
154
180
  DialPlanEntity,
155
181
  /** Auxiliary code information */
@@ -167,7 +193,15 @@ Entity,
167
193
  /** Dial plan configuration */
168
194
  DialPlan,
169
195
  /** Auxiliary code type (IDLE_CODE or WRAP_UP_CODE) */
170
- AuxCodeType, } from './services/config/types';
196
+ AuxCodeType,
197
+ /** User preference data structure */
198
+ UserPreference as UserPreferenceData,
199
+ /** Request payload for creating user preferences */
200
+ CreateUserPreferenceRequest,
201
+ /** Request payload for updating user preferences */
202
+ UpdateUserPreferenceRequest,
203
+ /** Query parameters for fetching user preferences */
204
+ GetUserPreferenceParams, } from './services/config/types';
171
205
  /**
172
206
  * Idle code constant
173
207
  * @constant {string}
@@ -178,6 +178,12 @@ export default class MetricsManager {
178
178
  * MetricsManager.getInstance().timeEvent(['AGENT_LOGIN', 'AGENT_LOGOUT']);
179
179
  */
180
180
  timeEvent(keys: string | string[]): void;
181
+ /**
182
+ * Clears a running timed event without emitting a metric.
183
+ * @param keys - A string or array of strings representing event keys (same as timeEvent).
184
+ * @public
185
+ */
186
+ cancelTimedEvent(keys: string | string[]): void;
181
187
  /**
182
188
  * Sets the Webex SDK instance and marks the manager as ready when the SDK is ready.
183
189
  * @param webex - The Webex SDK instance.
@@ -122,15 +122,37 @@ export declare const METRIC_EVENT_NAMES: {
122
122
  readonly TASK_CONFERENCE_END_FAILED: "Task Conference End Failed";
123
123
  readonly TASK_CONFERENCE_TRANSFER_SUCCESS: "Task Conference Transfer Success";
124
124
  readonly TASK_CONFERENCE_TRANSFER_FAILED: "Task Conference Transfer Failed";
125
+ readonly TASK_CONFERENCE_EXIT_SUCCESS: "Task Conference Exit Success";
126
+ readonly TASK_CONFERENCE_EXIT_FAILED: "Task Conference Exit Failed";
127
+ readonly TASK_CONFERENCE_PARTICIPANT_DROP_SUCCESS: "Task Conference Participant Drop Success";
128
+ readonly TASK_CONFERENCE_PARTICIPANT_DROP_FAILED: "Task Conference Participant Drop Failed";
129
+ readonly TASK_SWITCH_CALL_SUCCESS: "Task Switch Call Success";
130
+ readonly TASK_SWITCH_CALL_FAILED: "Task Switch Call Failed";
125
131
  readonly TASK_OUTDIAL_SUCCESS: "Task Outdial Success";
126
132
  readonly TASK_OUTDIAL_FAILED: "Task Outdial Failed";
133
+ readonly WXAPP_TASK_MUTE_SUCCESS: "WxApp Task Mute Success";
134
+ readonly WXAPP_TASK_MUTE_FAILED: "WxApp Task Mute Failed";
135
+ readonly WXAPP_TASK_DTMF_SUCCESS: "WxApp Task Dtmf Success";
136
+ readonly WXAPP_TASK_DTMF_FAILED: "WxApp Task Dtmf Failed";
137
+ readonly WXAPP_TASK_ACCEPT_SUCCESS: "WxApp Task Accept Success";
138
+ readonly WXAPP_TASK_ACCEPT_FAILED: "WxApp Task Accept Failed";
139
+ readonly WXAPP_TASK_DECLINE_SUCCESS: "WxApp Task Decline Success";
140
+ readonly WXAPP_TASK_DECLINE_FAILED: "WxApp Task Decline Failed";
141
+ readonly WXAPP_SESSION_INIT_SUCCESS: "WxApp Session Init Success";
142
+ readonly WXAPP_SESSION_INIT_FAILED: "WxApp Session Init Failed";
143
+ readonly WXAPP_SESSION_SKIPPED: "WxApp Session Skipped";
144
+ readonly WXAPP_USERSUB_PUBLISH_SUCCESS: "WxApp Usersub Publish Success";
145
+ readonly WXAPP_USERSUB_PUBLISH_FAILED: "WxApp Usersub Publish Failed";
146
+ readonly WXAPP_MERCURY_SUBSCRIBE_SUCCESS: "WxApp Mercury Subscribe Success";
147
+ readonly WXAPP_MERCURY_SUBSCRIBE_FAILED: "WxApp Mercury Subscribe Failed";
148
+ readonly WXAPP_OFFER_PARTICIPANT_FIELDS_MISSING: "WxApp Offer Participant Fields Missing";
127
149
  readonly UPLOAD_LOGS_SUCCESS: "Upload Logs Success";
128
150
  readonly UPLOAD_LOGS_FAILED: "Upload Logs Failed";
129
151
  readonly WEBSOCKET_DEREGISTER_SUCCESS: "Websocket Deregister Success";
130
152
  readonly WEBSOCKET_DEREGISTER_FAIL: "Websocket Deregister Failed";
131
- readonly WEBSOCKET_EVENT_RECEIVED: "Websocket Event Received";
132
153
  readonly AGENT_DEVICE_TYPE_UPDATE_SUCCESS: "Agent Device Type Update Success";
133
154
  readonly AGENT_DEVICE_TYPE_UPDATE_FAILED: "Agent Device Type Update Failed";
155
+ readonly WEBSOCKET_EVENT_RECEIVED: "Websocket Event Received";
134
156
  readonly ENTRYPOINT_FETCH_SUCCESS: "Entrypoint Fetch Success";
135
157
  readonly ENTRYPOINT_FETCH_FAILED: "Entrypoint Fetch Failed";
136
158
  readonly ADDRESSBOOK_FETCH_SUCCESS: "AddressBook Fetch Success";
@@ -147,8 +169,33 @@ export declare const METRIC_EVENT_NAMES: {
147
169
  readonly CAMPAIGN_PREVIEW_REMOVE_FAILED: "Campaign Preview Remove Failed";
148
170
  readonly AI_ASSISTANT_SEND_EVENT_SUCCESS: "AI Assistant Send Event Success";
149
171
  readonly AI_ASSISTANT_SEND_EVENT_FAILED: "AI Assistant Send Event Failed";
172
+ readonly AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_SUCCESS: "AI Assistant Get Real Time Assistance Success";
173
+ readonly AI_ASSISTANT_GET_REAL_TIME_ASSISTANCE_FAILED: "AI Assistant Get Real Time Assistance Failed";
174
+ readonly AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_SUCCESS: "AI Assistant Send Real Time Assistance User Action Success";
175
+ readonly AI_ASSISTANT_SEND_REAL_TIME_ASSISTANCE_USER_ACTION_FAILED: "AI Assistant Send Real Time Assistance User Action Failed";
150
176
  readonly AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_SUCCESS: "AI Assistant Fetch Historic Transcripts Success";
151
177
  readonly AI_ASSISTANT_FETCH_HISTORIC_TRANSCRIPTS_FAILED: "AI Assistant Fetch Historic Transcripts Failed";
178
+ readonly AI_ASSISTANT_WELLNESS_ACTION_ACCEPTED: "AI Assistant Wellness Action Accepted";
179
+ readonly AI_ASSISTANT_WELLNESS_ACTION_FAILED: "AI Assistant Wellness Action Failed";
180
+ readonly AI_ASSISTANT_WELLNESS_EVENT_INVALID: "AI Assistant Wellness Event Invalid";
181
+ readonly WELLBEING_BREAK_IDLE_CODE_FETCH_SUCCESS: "Wellbeing Break Idle Code Fetch Success";
182
+ readonly WELLBEING_BREAK_IDLE_CODE_FETCH_FAILED: "Wellbeing Break Idle Code Fetch Failed";
183
+ readonly AI_SUMMARY_GET_POST_CALL_SUCCESS: "Post Call Summary Get Success";
184
+ readonly AI_SUMMARY_GET_POST_CALL_FAILED: "Post Call Summary Get Failed";
185
+ readonly AI_SUMMARY_GET_MID_CALL_SUCCESS: "Mid Call Summary Get Success";
186
+ readonly AI_SUMMARY_GET_MID_CALL_FAILED: "Mid Call Summary Get Failed";
187
+ readonly AI_SUMMARY_POST_CALL_RESPONSE_SUCCESS: "Post Call Summary Response Success";
188
+ readonly AI_SUMMARY_POST_CALL_RESPONSE_FAILED: "Post Call Summary Response Failed";
189
+ readonly AI_SUMMARY_MID_CALL_RESPONSE_SUCCESS: "Mid Call Summary Response Success";
190
+ readonly AI_SUMMARY_MID_CALL_RESPONSE_FAILED: "Mid Call Summary Response Failed";
191
+ readonly USER_PREFERENCE_GET_SUCCESS: "User Preference Get Success";
192
+ readonly USER_PREFERENCE_GET_FAILED: "User Preference Get Failed";
193
+ readonly USER_PREFERENCE_CREATE_SUCCESS: "User Preference Create Success";
194
+ readonly USER_PREFERENCE_CREATE_FAILED: "User Preference Create Failed";
195
+ readonly USER_PREFERENCE_UPDATE_SUCCESS: "User Preference Update Success";
196
+ readonly USER_PREFERENCE_UPDATE_FAILED: "User Preference Update Failed";
197
+ readonly USER_PREFERENCE_DELETE_SUCCESS: "User Preference Delete Success";
198
+ readonly USER_PREFERENCE_DELETE_FAILED: "User Preference Delete Failed";
152
199
  };
153
200
  /**
154
201
  * Represents the possible metric event names used within the metrics system.
@@ -52,7 +52,8 @@ export declare class AddressBook {
52
52
  constructor(webex: WebexSDK, getAddressBookId: () => string);
53
53
  /**
54
54
  * Fetches address book entries for a specific address book using the entry API
55
- * @param {AddressBookEntrySearchParams} [params] - Search and pagination parameters including addressBookId
55
+ * @param {AddressBookEntrySearchParams} [params] - Search, pagination, and optional sort parameters
56
+ * including addressBookId. Sorting defaults to name ascending.
56
57
  * @returns {Promise<AddressBookEntriesResponse>} Promise resolving to address book entries
57
58
  * @throws {Error} If the API call fails
58
59
  * @public
@@ -0,0 +1,38 @@
1
+ import { IHttpResponse, WebexSDK } from '../types';
2
+ export type WxAppTelephonyError = Error & {
3
+ isWxAppTelephonyError: true;
4
+ trackingId?: string;
5
+ status?: number | string;
6
+ };
7
+ export type AnswerCallParams = {
8
+ callId: string;
9
+ endpointId: string;
10
+ lineOwnerId?: string;
11
+ };
12
+ export type CallIdParams = {
13
+ callId: string;
14
+ lineOwnerId?: string;
15
+ };
16
+ export type TransmitDtmfParams = CallIdParams & {
17
+ dtmf: string;
18
+ };
19
+ export type CallDetailsResponse = {
20
+ muted?: boolean;
21
+ };
22
+ /**
23
+ * REST telephony client for wxApp thick-client answer (WXCC-6026).
24
+ * Separate from WebCallingService (WebRTC/Mobius).
25
+ */
26
+ export default class AnswerCallOnWebexService {
27
+ private webex;
28
+ constructor(webex: WebexSDK);
29
+ private getTelephonyBaseUrl;
30
+ private extractTrackingId;
31
+ private telephonyRequest;
32
+ answerCall(params: AnswerCallParams): Promise<IHttpResponse>;
33
+ rejectCall(params: CallIdParams): Promise<IHttpResponse>;
34
+ muteCall(params: CallIdParams): Promise<IHttpResponse>;
35
+ unmuteCall(params: CallIdParams): Promise<IHttpResponse>;
36
+ transmitDtmf(params: TransmitDtmfParams): Promise<IHttpResponse>;
37
+ getCallDetails(params: CallIdParams): Promise<CallDetailsResponse>;
38
+ }
@@ -1,5 +1,10 @@
1
- import { WebexSDK, TranscriptAction, AIAssistantEventType, AIAssistantEventName, HistoricTranscriptsResponse } from '../types';
1
+ import { WebexSDK, AIAssistantEventType, AIAssistantEventName, HistoricTranscriptsResponse, RealTimeAssistanceParams, RealTimeAssistanceUserActionParams, RespondToWellnessBreakParams } from '../types';
2
2
  import { AIFeatureFlags } from './config/types';
3
+ type WellnessBreakContextProvider = () => {
4
+ isWellnessBreakEnabled: boolean;
5
+ agentId?: string;
6
+ agentSessionId?: string;
7
+ };
3
8
  /**
4
9
  * ApiAIAssistant provides AI Assistant APIs for transcript controls.
5
10
  * @public
@@ -7,19 +12,76 @@ import { AIFeatureFlags } from './config/types';
7
12
  export declare class ApiAIAssistant {
8
13
  private webex;
9
14
  private metricsManager;
10
- aiFeature: AIFeatureFlags;
11
- constructor(webex: WebexSDK);
15
+ private pendingRtdRequests;
16
+ private readonly wellnessContextProvider?;
17
+ private createWellnessError;
18
+ constructor(webex: WebexSDK, wellnessContextProvider?: WellnessBreakContextProvider);
12
19
  setAIFeatureFlags(aiFeature: AIFeatureFlags): void;
20
+ /**
21
+ * Validates a caller-supplied identifier (agentId/interactionId) before it is used to
22
+ * construct a request. Accepts a non-empty alphanumeric identifier that may contain
23
+ * hyphens or underscores.
24
+ * @param value - the identifier to validate
25
+ * @returns {boolean} true when the identifier is a non-empty, well-formed string
26
+ * @private
27
+ */
28
+ private isValidTranscriptIdentifier;
29
+ private sendWellnessBreakAction;
30
+ /**
31
+ * Requests an Agent Wellness Break.
32
+ * The promise resolves when the HTTP request is accepted with status 202; the later
33
+ * approval or denial is delivered independently through a wellness notification.
34
+ * @returns A promise that resolves with no value after HTTP acceptance
35
+ * @throws Structured Contact Center error when disabled, stale, invalid, or delivery fails
36
+ * @example
37
+ * await webex.cc.apiAIAssistant.requestWellnessBreak();
38
+ * @public
39
+ */
40
+ requestWellnessBreak(): Promise<void>;
41
+ /**
42
+ * Responds to a backend-provided Agent Wellness Break offer.
43
+ * The promise resolves when the HTTP request is accepted with status 202 and does not
44
+ * wait for a WebSocket completion event.
45
+ * @param params - ACCEPTED, REJECTED, or NO_RESPONSE
46
+ * @returns A promise that resolves with no value after HTTP acceptance
47
+ * @throws Structured Contact Center error when disabled, stale, invalid, or delivery fails
48
+ * @example
49
+ * await webex.cc.apiAIAssistant.respondToWellnessBreak({
50
+ * action: WELLNESS_BREAK_USER_ACTIONS.ACCEPTED,
51
+ * });
52
+ * @public
53
+ */
54
+ respondToWellnessBreak(params: RespondToWellnessBreakParams): Promise<void>;
13
55
  private getBaseUrl;
56
+ private static getRtdRequestKey;
57
+ private removeRtdRequest;
14
58
  /**
15
59
  * Sends an event to the AI Assistant service.
16
60
  * @param agentId - agent identifier
17
61
  * @param interactionId - interaction/conversation identifier
18
62
  * @param eventType - the type of event (e.g. 'CUSTOM_EVENT')
19
63
  * @param eventName - the name of the event (e.g. 'GET_TRANSCRIPTS')
20
- * @param action - action within eventDetails (e.g. 'START' or 'STOP')
64
+ * @param eventMetaData - event-specific fields to include in eventDetails.data
65
+ * @param languageCode - language code within eventDetails.data
66
+ * @param trackingId - tracking identifier within eventDetails.data
67
+ */
68
+ sendEvent(agentId: string, interactionId: string, eventType: AIAssistantEventType, eventName: AIAssistantEventName, eventMetaData?: Record<string, unknown>, languageCode?: string, trackingId?: string, publishTimestamp?: number, timeout?: number): Promise<Record<string, unknown>>;
69
+ /**
70
+ * Requests real-time assistance for an interaction.
71
+ *
72
+ * @param params - Real-time assistance request parameters
73
+ * @returns HTTP response body from the AI Assistant event API
74
+ * @public
75
+ */
76
+ getRealTimeAssistance(params: RealTimeAssistanceParams): Promise<Record<string, unknown>>;
77
+ /**
78
+ * Sends user action feedback for a real-time assistance adaptive card.
79
+ *
80
+ * @param params - Real-time assistance user action parameters
81
+ * @returns HTTP response body from the AI Assistant event API
82
+ * @public
21
83
  */
22
- sendEvent(agentId: string, interactionId: string, eventType: AIAssistantEventType, eventName: AIAssistantEventName, action: TranscriptAction): Promise<Record<string, unknown>>;
84
+ sendRealTimeAssistanceUserAction(params: RealTimeAssistanceUserActionParams): Promise<Record<string, unknown>>;
23
85
  /**
24
86
  * Fetches historic transcripts for an interaction.
25
87
  * This API is allowed only when real-time transcription feature is enabled.
@@ -27,7 +27,7 @@ import type { EntryPointListResponse, EntryPointSearchParams } from '../types';
27
27
  * });
28
28
  *
29
29
  * // Search for specific entry points
30
- * const searchResults = await entryPointAPI.searchEntryPoints({
30
+ * const searchResults = await entryPointAPI.getEntryPoints({
31
31
  * search: 'support',
32
32
  * filter: 'type=="voice"'
33
33
  * });
@@ -37,7 +37,6 @@ export declare class EntryPoint {
37
37
  private webexRequest;
38
38
  private webex;
39
39
  private metricsManager;
40
- private pageCache;
41
40
  /**
42
41
  * Creates an instance of EntryPoint
43
42
  * @param {WebexSDK} webex - The Webex SDK instance
@@ -45,14 +44,17 @@ export declare class EntryPoint {
45
44
  */
46
45
  constructor(webex: WebexSDK);
47
46
  /**
48
- * Fetches entry points for the organization with pagination support
49
- * @param {EntryPointSearchParams} [params] - Search and pagination parameters
47
+ * Fetches entry-point dial-number mappings for the organization with pagination support. By
48
+ * default, returns the agent's desktop-profile-filtered mappings in backend entry-point-name order.
49
+ * Search, filter, attribute, and sort parameters can customize the request while desktop-profile
50
+ * scoping and required mapping fields remain SDK-owned.
51
+ * @param {EntryPointSearchParams} [params] - Search, pagination, and compatible override parameters.
50
52
  * @returns {Promise<EntryPointListResponse>} Promise resolving to paginated entry points
51
53
  * @throws {Error} If the API call fails
52
54
  * @public
53
55
  * @example
54
56
  * ```typescript
55
- * // Get first page of entry points
57
+ * // Get the first page using the default entry-point policy
56
58
  * const response = await entryPointAPI.getEntryPoints();
57
59
  *
58
60
  * // Get specific page with custom page size
@@ -48,14 +48,16 @@ export declare class Queue {
48
48
  */
49
49
  constructor(webex: WebexSDK);
50
50
  /**
51
- * Fetches contact service queues for the organization
52
- * @param {ContactServiceQueueSearchParams} [params] - Search and pagination parameters
51
+ * Fetches contact service queues for the organization. By default, returns active inbound
52
+ * telephony queues in backend name-ascending order using the agent's desktop profile views.
53
+ * Existing filter, sort, and desktop-profile parameters override those defaults.
54
+ * @param {ContactServiceQueueSearchParams} [params] - Search, pagination, and override parameters
53
55
  * @returns {Promise<ContactServiceQueuesResponse>} Promise resolving to contact service queues
54
56
  * @throws {Error} If the API call fails
55
57
  * @public
56
58
  * @example
57
59
  * ```typescript
58
- * // Get all queues with default pagination
60
+ * // Get queues using the default list policy and pagination
59
61
  * const response = await queueAPI.getQueues();
60
62
  *
61
63
  * // Get queues with specific pagination
@@ -0,0 +1,118 @@
1
+ import { WebexSDK } from '../types';
2
+ import type { UserPreference as UserPreferenceResponse, CreateUserPreferenceRequest, UpdateUserPreferenceRequest, GetUserPreferenceParams } from './config/types';
3
+ /**
4
+ * UserPreference API class for managing Webex Contact Center user preferences.
5
+ * Provides functionality to get, create, update, and delete user preferences.
6
+ *
7
+ * @class UserPreference
8
+ * @public
9
+ * @example
10
+ * ```typescript
11
+ * import Webex from 'webex';
12
+ *
13
+ * const webex = new Webex({ credentials: 'YOUR_ACCESS_TOKEN' });
14
+ * const cc = webex.cc;
15
+ *
16
+ * // Register and login first
17
+ * await cc.register();
18
+ * await cc.stationLogin({ teamId: 'team123', loginOption: 'BROWSER' });
19
+ *
20
+ * // Get UserPreference API instance from ContactCenter
21
+ * const userPreferenceAPI = cc.userPreference;
22
+ *
23
+ * // Get user preferences for the current user
24
+ * const preferences = await userPreferenceAPI.getUserPreference();
25
+ *
26
+ * // Create new user preferences
27
+ * const newPreferences = await userPreferenceAPI.createUserPreference({
28
+ * userId: 'user123',
29
+ * preferences: { e911Reminder: true }
30
+ * });
31
+ *
32
+ * // Update user preferences
33
+ * const updatedPreferences = await userPreferenceAPI.updateUserPreference('user123', {
34
+ * preferences: { e911Reminder: false }
35
+ * });
36
+ *
37
+ * // Delete user preferences
38
+ * await userPreferenceAPI.deleteUserPreference('user123');
39
+ * ```
40
+ */
41
+ export declare class UserPreference {
42
+ private webexRequest;
43
+ private webex;
44
+ private getUserId;
45
+ private metricsManager;
46
+ /**
47
+ * Creates an instance of UserPreference
48
+ * @param {WebexSDK} webex - The Webex SDK instance
49
+ * @param {() => string} getUserId - Function to get the current user's CI user ID
50
+ * @public
51
+ */
52
+ constructor(webex: WebexSDK, getUserId: () => string);
53
+ /**
54
+ * Fetches user preferences for a specific user
55
+ * @param {GetUserPreferenceParams} [params] - Optional parameters for fetching preferences
56
+ * @param {string} [params.userId] - User ID to fetch preferences for. Defaults to current user's CI user ID.
57
+ * @param {number} [params.page=0] - Page number (0-indexed). Default: 0
58
+ * @param {number} [params.pageSize=100] - Number of items per page. Default: 100
59
+ * @returns {Promise<UserPreferenceResponse>} Promise resolving to user preferences
60
+ * @throws {Error} If the API call fails
61
+ * @public
62
+ * @example
63
+ * ```typescript
64
+ * // Get preferences for current user
65
+ * const preferences = await userPreferenceAPI.getUserPreference();
66
+ *
67
+ * // Get preferences for a specific user
68
+ * const preferences = await userPreferenceAPI.getUserPreference({ userId: 'user123' });
69
+ *
70
+ * // Get preferences with pagination
71
+ * const preferences = await userPreferenceAPI.getUserPreference({ page: 0, pageSize: 50 });
72
+ * ```
73
+ */
74
+ getUserPreference(params?: GetUserPreferenceParams): Promise<UserPreferenceResponse>;
75
+ /**
76
+ * Creates new user preferences
77
+ * @param {CreateUserPreferenceRequest} data - The user preference data to create
78
+ * @returns {Promise<UserPreference>} Promise resolving to created user preferences
79
+ * @throws {Error} If the API call fails
80
+ * @public
81
+ * @example
82
+ * ```typescript
83
+ * const newPreferences = await userPreferenceAPI.createUserPreference({
84
+ * userId: 'user123',
85
+ * preferences: { e911Reminder: true, notificationSettings: { email: true } }
86
+ * });
87
+ * ```
88
+ */
89
+ createUserPreference(data: CreateUserPreferenceRequest): Promise<UserPreferenceResponse>;
90
+ /**
91
+ * Updates existing user preferences
92
+ * @param {string} userId - User ID to update preferences for
93
+ * @param {UpdateUserPreferenceRequest} data - The user preference data to update
94
+ * @returns {Promise<UserPreference>} Promise resolving to updated user preferences
95
+ * @throws {Error} If the API call fails
96
+ * @public
97
+ * @example
98
+ * ```typescript
99
+ * const updatedPreferences = await userPreferenceAPI.updateUserPreference('user123', {
100
+ * preferences: { e911Reminder: false }
101
+ * });
102
+ * ```
103
+ */
104
+ updateUserPreference(userId: string, data: UpdateUserPreferenceRequest): Promise<UserPreferenceResponse>;
105
+ /**
106
+ * Deletes user preferences for a specific user
107
+ * @param {string} userId - User ID to delete preferences for
108
+ * @returns {Promise<void>} Promise resolving when deletion is complete
109
+ * @throws {Error} If the API call fails
110
+ * @public
111
+ * @example
112
+ * ```typescript
113
+ * await userPreferenceAPI.deleteUserPreference('user123');
114
+ * ```
115
+ */
116
+ deleteUserPreference(userId: string): Promise<void>;
117
+ }
118
+ export default UserPreference;
@@ -0,0 +1,32 @@
1
+ import { WebexSDK } from '../types';
2
+ /**
3
+ * Publishes usersub cross-client state so Webex App suppresses native calling toasts (WXCC-6026).
4
+ */
5
+ export default class WebexCrossClientService {
6
+ private webex;
7
+ private refreshTimer?;
8
+ private refreshRetryTimer?;
9
+ private answerCallsState;
10
+ private appName;
11
+ /** Incremented on teardown/disable to ignore stale refresh timer callbacks. */
12
+ private refreshGeneration;
13
+ /** Monotonic id for usersub publish metrics timers; stale publishes cancel only their own timer. */
14
+ private usersubPublishMetricsId;
15
+ constructor(webex: WebexSDK);
16
+ private extractDeviceIdFromUrl;
17
+ private getDeviceUrl;
18
+ private clearRefreshTimer;
19
+ private scheduleRefreshRetry;
20
+ private startRefreshTimer;
21
+ private publishCrossClientState;
22
+ setManageWebexCallingInWxcc(enable: boolean, options?: {
23
+ userId?: string;
24
+ ttl?: number;
25
+ appName?: string;
26
+ trackPublishMetrics?: boolean;
27
+ }): Promise<void>;
28
+ private trackUsersubPreflightFailure;
29
+ teardown(): void;
30
+ /** Whether usersub `answer-calls-on-wxcc: true` was successfully published this session. */
31
+ isAnswerCallsStateActive(): boolean;
32
+ }
@@ -0,0 +1,28 @@
1
+ import { WebexSDK } from '../types';
2
+ export declare const TELEPHONY_CALL_MUTED = "event:telephony_calls.muted";
3
+ export declare const TELEPHONY_CALL_UNMUTED = "event:telephony_calls.unmuted";
4
+ export type UpdatedCallMuteStateEvent = {
5
+ data: {
6
+ actorId: string;
7
+ callId: string;
8
+ muted: boolean;
9
+ };
10
+ };
11
+ type MuteChangeHandler = (callId: string, muted: boolean) => void;
12
+ /**
13
+ * Subscribes to Mercury telephony mute/unmute events for wxApp thick-client sync (AD parity).
14
+ */
15
+ export default class WxAppTelephonyMercurySync {
16
+ private webex;
17
+ private subscribedAgentId?;
18
+ private muteChangeHandler?;
19
+ private boundMuteHandler?;
20
+ private boundUnmuteHandler?;
21
+ constructor(webex: WebexSDK);
22
+ private decodeBase64;
23
+ private handleMuteStateEvent;
24
+ subscribe(agentId: string, onMuteChange: MuteChangeHandler): void;
25
+ unsubscribe(): void;
26
+ isSubscribed(): boolean;
27
+ }
28
+ export {};
@@ -1,20 +1,16 @@
1
- import { AgentResponse, AuxCode, DesktopProfileResponse, DialPlanEntity, OrgInfo, OrgSettings, Profile, Team, TenantData, URLMapping, AIFeatureFlagsResponse } from './types';
1
+ import { AgentProfile, AgentResponse, AuxCode, DialPlanEntity, OrgDesktopLoginResponse, Profile, TeamList } from './types';
2
2
  /**
3
3
  * Parse the agent configurations
4
4
  * @param {Object} profileData
5
5
  * @returns {Profile}
6
6
  */
7
7
  declare function parseAgentConfigs(profileData: {
8
+ orgConfig: OrgDesktopLoginResponse;
8
9
  userData: AgentResponse;
9
- teamData: Team[];
10
- tenantData: TenantData;
11
- orgInfoData: OrgInfo;
10
+ agentProfileData: AgentProfile;
11
+ teamData: TeamList[];
12
12
  auxCodes: AuxCode[];
13
- orgSettingsData: OrgSettings;
14
- agentProfileData: DesktopProfileResponse;
15
13
  dialPlanData: DialPlanEntity[];
16
- urlMapping: URLMapping[];
17
14
  multimediaProfileId: string;
18
- aiFeatureFlags: AIFeatureFlagsResponse;
19
15
  }): Profile;
20
16
  export { parseAgentConfigs };