@webex/contact-center 3.12.0-llmrefactor.2 → 3.12.0-llmrefactor.4

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 (187) hide show
  1. package/.sdd/manifest.json +5 -4
  2. package/ai-docs/ARCHITECTURE.md +1 -1
  3. package/ai-docs/CONTRACTS.md +6 -2
  4. package/ai-docs/SECURITY.md +1 -1
  5. package/ai-docs/contact-center-spec.md +22 -4
  6. package/ai-docs/features/consult-transfer-list-policy/spec/feature-spec.md +362 -0
  7. package/dist/cc.js +440 -10
  8. package/dist/cc.js.map +1 -1
  9. package/dist/config.js +7 -0
  10. package/dist/config.js.map +1 -1
  11. package/dist/constants.js +10 -2
  12. package/dist/constants.js.map +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/metrics/behavioral-events.js +13 -0
  15. package/dist/metrics/behavioral-events.js.map +1 -1
  16. package/dist/metrics/constants.js +2 -0
  17. package/dist/metrics/constants.js.map +1 -1
  18. package/dist/services/AddressBook.js +18 -15
  19. package/dist/services/AddressBook.js.map +1 -1
  20. package/dist/services/AnswerCallOnWebexService.js +174 -0
  21. package/dist/services/AnswerCallOnWebexService.js.map +1 -0
  22. package/dist/services/EntryPoint.js +46 -68
  23. package/dist/services/EntryPoint.js.map +1 -1
  24. package/dist/services/Queue.js +27 -22
  25. package/dist/services/Queue.js.map +1 -1
  26. package/dist/services/WebexCrossClientService.js +171 -0
  27. package/dist/services/WebexCrossClientService.js.map +1 -0
  28. package/dist/services/WxAppTelephonyMercurySync.js +93 -0
  29. package/dist/services/WxAppTelephonyMercurySync.js.map +1 -0
  30. package/dist/services/config/Util.js +3 -0
  31. package/dist/services/config/Util.js.map +1 -1
  32. package/dist/services/config/constants.js +10 -6
  33. package/dist/services/config/constants.js.map +1 -1
  34. package/dist/services/config/types.js +4 -0
  35. package/dist/services/config/types.js.map +1 -1
  36. package/dist/services/core/Err.js.map +1 -1
  37. package/dist/services/core/WebexRequest.js +6 -2
  38. package/dist/services/core/WebexRequest.js.map +1 -1
  39. package/dist/services/core/aqm-reqs.js +28 -14
  40. package/dist/services/core/aqm-reqs.js.map +1 -1
  41. package/dist/services/core/types.js.map +1 -1
  42. package/dist/services/task/Task.js +73 -7
  43. package/dist/services/task/Task.js.map +1 -1
  44. package/dist/services/task/TaskFactory.js +8 -4
  45. package/dist/services/task/TaskFactory.js.map +1 -1
  46. package/dist/services/task/TaskManager.js +353 -21
  47. package/dist/services/task/TaskManager.js.map +1 -1
  48. package/dist/services/task/WebexCallingUtils.js +70 -0
  49. package/dist/services/task/WebexCallingUtils.js.map +1 -0
  50. package/dist/services/task/constants.js +4 -1
  51. package/dist/services/task/constants.js.map +1 -1
  52. package/dist/services/task/contact.js +29 -0
  53. package/dist/services/task/contact.js.map +1 -1
  54. package/dist/services/task/digital/Digital.js +3 -2
  55. package/dist/services/task/digital/Digital.js.map +1 -1
  56. package/dist/services/task/state-machine/TaskStateMachine.js +135 -37
  57. package/dist/services/task/state-machine/TaskStateMachine.js.map +1 -1
  58. package/dist/services/task/state-machine/actions.js +6 -1
  59. package/dist/services/task/state-machine/actions.js.map +1 -1
  60. package/dist/services/task/state-machine/guards.js +38 -11
  61. package/dist/services/task/state-machine/guards.js.map +1 -1
  62. package/dist/services/task/state-machine/types.js.map +1 -1
  63. package/dist/services/task/state-machine/uiControlsComputer.js +118 -18
  64. package/dist/services/task/state-machine/uiControlsComputer.js.map +1 -1
  65. package/dist/services/task/types.js +16 -1
  66. package/dist/services/task/types.js.map +1 -1
  67. package/dist/services/task/voice/Voice.js +350 -14
  68. package/dist/services/task/voice/Voice.js.map +1 -1
  69. package/dist/services/task/voice/WebRTC.js +4 -1
  70. package/dist/services/task/voice/WebRTC.js.map +1 -1
  71. package/dist/services/task/voice/wxAppVoiceMethods.js +201 -0
  72. package/dist/services/task/voice/wxAppVoiceMethods.js.map +1 -0
  73. package/dist/services/wxAppTelephonyUtils.js +19 -0
  74. package/dist/services/wxAppTelephonyUtils.js.map +1 -0
  75. package/dist/types/cc.d.ts +77 -4
  76. package/dist/types/config.d.ts +7 -0
  77. package/dist/types/constants.d.ts +8 -0
  78. package/dist/types/index.d.ts +3 -1
  79. package/dist/types/metrics/constants.d.ts +2 -0
  80. package/dist/types/services/AddressBook.d.ts +2 -1
  81. package/dist/types/services/AnswerCallOnWebexService.d.ts +37 -0
  82. package/dist/types/services/EntryPoint.d.ts +7 -5
  83. package/dist/types/services/Queue.d.ts +5 -3
  84. package/dist/types/services/WebexCrossClientService.d.ts +28 -0
  85. package/dist/types/services/WxAppTelephonyMercurySync.d.ts +28 -0
  86. package/dist/types/services/config/constants.d.ts +8 -5
  87. package/dist/types/services/config/types.d.ts +17 -4
  88. package/dist/types/services/core/Err.d.ts +2 -0
  89. package/dist/types/services/core/WebexRequest.d.ts +1 -0
  90. package/dist/types/services/core/types.d.ts +2 -0
  91. package/dist/types/services/task/Task.d.ts +20 -2
  92. package/dist/types/services/task/TaskFactory.d.ts +2 -1
  93. package/dist/types/services/task/WebexCallingUtils.d.ts +11 -0
  94. package/dist/types/services/task/constants.d.ts +3 -0
  95. package/dist/types/services/task/contact.d.ts +4 -0
  96. package/dist/types/services/task/digital/Digital.d.ts +2 -2
  97. package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +260 -56
  98. package/dist/types/services/task/state-machine/guards.d.ts +6 -5
  99. package/dist/types/services/task/state-machine/types.d.ts +9 -1
  100. package/dist/types/services/task/types.d.ts +81 -4
  101. package/dist/types/services/task/voice/Voice.d.ts +48 -9
  102. package/dist/types/services/task/voice/WebRTC.d.ts +2 -2
  103. package/dist/types/services/task/voice/wxAppVoiceMethods.d.ts +52 -0
  104. package/dist/types/services/wxAppTelephonyUtils.d.ts +5 -0
  105. package/dist/types/types.d.ts +14 -8
  106. package/dist/types/utils/PageCache.d.ts +20 -3
  107. package/dist/types.js +7 -2
  108. package/dist/types.js.map +1 -1
  109. package/dist/utils/PageCache.js +19 -5
  110. package/dist/utils/PageCache.js.map +1 -1
  111. package/dist/webex.js +1 -1
  112. package/package.json +9 -9
  113. package/src/cc.ts +506 -9
  114. package/src/config.ts +7 -0
  115. package/src/constants.ts +8 -0
  116. package/src/index.ts +2 -0
  117. package/src/metrics/ai-docs/metrics-spec.md +9 -3
  118. package/src/metrics/behavioral-events.ts +14 -0
  119. package/src/metrics/constants.ts +2 -0
  120. package/src/services/AddressBook.ts +17 -6
  121. package/src/services/AnswerCallOnWebexService.ts +206 -0
  122. package/src/services/EntryPoint.ts +59 -60
  123. package/src/services/Queue.ts +29 -12
  124. package/src/services/WebexCrossClientService.ts +212 -0
  125. package/src/services/WxAppTelephonyMercurySync.ts +115 -0
  126. package/src/services/ai-docs/AGENTS.md +10 -10
  127. package/src/services/ai-docs/services-spec.md +6 -1
  128. package/src/services/config/Util.ts +3 -0
  129. package/src/services/config/ai-docs/AGENTS.md +1 -1
  130. package/src/services/config/ai-docs/ARCHITECTURE.md +2 -2
  131. package/src/services/config/ai-docs/config-spec.md +6 -0
  132. package/src/services/config/constants.ts +10 -6
  133. package/src/services/config/types.ts +16 -4
  134. package/src/services/core/Err.ts +1 -0
  135. package/src/services/core/WebexRequest.ts +3 -1
  136. package/src/services/core/ai-docs/core-spec.md +5 -1
  137. package/src/services/core/aqm-reqs.ts +30 -15
  138. package/src/services/core/types.ts +2 -0
  139. package/src/services/task/Task.ts +79 -8
  140. package/src/services/task/TaskFactory.ts +8 -3
  141. package/src/services/task/TaskManager.ts +522 -16
  142. package/src/services/task/WebexCallingUtils.ts +136 -0
  143. package/src/services/task/ai-docs/ARCHITECTURE.md +1 -0
  144. package/src/services/task/ai-docs/task-spec.md +152 -2
  145. package/src/services/task/constants.ts +3 -0
  146. package/src/services/task/contact.ts +30 -0
  147. package/src/services/task/digital/Digital.ts +4 -2
  148. package/src/services/task/state-machine/TaskStateMachine.ts +210 -63
  149. package/src/services/task/state-machine/actions.ts +5 -2
  150. package/src/services/task/state-machine/ai-docs/AGENTS.md +8 -4
  151. package/src/services/task/state-machine/ai-docs/ARCHITECTURE.md +17 -8
  152. package/src/services/task/state-machine/ai-docs/task-state-machine-spec.md +56 -24
  153. package/src/services/task/state-machine/guards.ts +64 -11
  154. package/src/services/task/state-machine/types.ts +16 -1
  155. package/src/services/task/state-machine/uiControlsComputer.ts +206 -32
  156. package/src/services/task/types.ts +114 -4
  157. package/src/services/task/voice/Voice.ts +462 -12
  158. package/src/services/task/voice/WebRTC.ts +5 -1
  159. package/src/services/task/voice/wxAppVoiceMethods.ts +307 -0
  160. package/src/services/wxAppTelephonyUtils.ts +14 -0
  161. package/src/types.ts +33 -9
  162. package/src/utils/AGENTS.md +21 -10
  163. package/src/utils/PageCache.ts +38 -5
  164. package/src/utils/ai-docs/utils-spec.md +21 -11
  165. package/test/unit/spec/cc.ts +1274 -0
  166. package/test/unit/spec/metrics/behavioral-events.ts +18 -0
  167. package/test/unit/spec/services/AddressBook.ts +37 -6
  168. package/test/unit/spec/services/AnswerCallOnWebexService.ts +223 -0
  169. package/test/unit/spec/services/EntryPoint.ts +87 -40
  170. package/test/unit/spec/services/Queue.ts +123 -12
  171. package/test/unit/spec/services/WebexCrossClientService.ts +261 -0
  172. package/test/unit/spec/services/WxAppTelephonyMercurySync.ts +113 -0
  173. package/test/unit/spec/services/config/Util.ts +85 -0
  174. package/test/unit/spec/services/core/WebexRequest.ts +3 -1
  175. package/test/unit/spec/services/core/aqm-reqs.ts +113 -1
  176. package/test/unit/spec/services/task/Task.ts +200 -0
  177. package/test/unit/spec/services/task/TaskFactory.ts +39 -2
  178. package/test/unit/spec/services/task/TaskManager.ts +1294 -1
  179. package/test/unit/spec/services/task/WebexCallingUtils.ts +153 -0
  180. package/test/unit/spec/services/task/contact.ts +33 -0
  181. package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +854 -72
  182. package/test/unit/spec/services/task/state-machine/guards.ts +210 -8
  183. package/test/unit/spec/services/task/state-machine/uiControlsComputer.ts +445 -7
  184. package/test/unit/spec/services/task/voice/Voice.ts +874 -0
  185. package/test/unit/spec/services/task/voice/wxAppVoiceMethods.ts +459 -0
  186. package/umd/contact-center.min.js +2 -2
  187. package/umd/contact-center.min.js.map +1 -1
@@ -89,10 +89,15 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
89
89
  target: TaskState;
90
90
  actions: string[];
91
91
  };
92
- TASK_WRAPUP: {
92
+ TASK_WRAPUP: ({
93
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
93
94
  target: TaskState;
94
95
  actions: string[];
95
- };
96
+ } | {
97
+ target: TaskState;
98
+ actions: string[];
99
+ guard?: undefined;
100
+ })[];
96
101
  CONTACT_ENDED: {
97
102
  target: TaskState;
98
103
  actions: string[];
@@ -185,10 +190,7 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
185
190
  actions: string[];
186
191
  };
187
192
  CONSULT_END: ({
188
- guard: ({ context, event }: {
189
- context: any;
190
- event: any;
191
- }) => boolean;
193
+ guard: (params: any) => boolean;
192
194
  target: TaskState;
193
195
  actions: string[];
194
196
  } | {
@@ -196,7 +198,13 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
196
198
  context: any;
197
199
  }) => boolean;
198
200
  actions: string[];
199
- target?: undefined;
201
+ })[];
202
+ PARTICIPANT_LEAVE: ({
203
+ guard: (params: any) => boolean;
204
+ target: TaskState;
205
+ actions: string[];
206
+ } | {
207
+ actions: string[];
200
208
  })[];
201
209
  CONTACT_ENDED: ({
202
210
  guard: ({ context, event }: import("./guards").GuardParams) => boolean;
@@ -211,6 +219,15 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
211
219
  target: TaskState;
212
220
  actions: string[];
213
221
  };
222
+ OUTBOUND_FAILED: ({
223
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
224
+ target: TaskState;
225
+ actions: string[];
226
+ } | {
227
+ target: TaskState;
228
+ actions: string[];
229
+ guard?: undefined;
230
+ })[];
214
231
  PAUSE_RECORDING: {
215
232
  actions: string[];
216
233
  };
@@ -229,6 +246,22 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
229
246
  target: TaskState;
230
247
  actions: string[];
231
248
  };
249
+ PARTICIPANT_LEAVE: ({
250
+ guard: (params: any) => boolean;
251
+ target: TaskState;
252
+ actions: string[];
253
+ } | {
254
+ actions: string[];
255
+ })[];
256
+ OUTBOUND_FAILED: ({
257
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
258
+ target: TaskState;
259
+ actions: string[];
260
+ } | {
261
+ target: TaskState;
262
+ actions: string[];
263
+ guard?: undefined;
264
+ })[];
232
265
  };
233
266
  };
234
267
  HELD: {
@@ -279,13 +312,33 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
279
312
  actions: string[];
280
313
  guard?: undefined;
281
314
  })[];
282
- CONSULT_END: {
315
+ CONSULT_END: ({
316
+ guard: (params: any) => boolean;
317
+ target: TaskState;
283
318
  actions: string[];
284
- };
319
+ } | {
320
+ actions: string[];
321
+ })[];
322
+ PARTICIPANT_LEAVE: ({
323
+ guard: (params: any) => boolean;
324
+ target: TaskState;
325
+ actions: string[];
326
+ } | {
327
+ actions: string[];
328
+ })[];
285
329
  TASK_WRAPUP: {
286
330
  target: TaskState;
287
331
  actions: string[];
288
332
  };
333
+ OUTBOUND_FAILED: ({
334
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
335
+ target: TaskState;
336
+ actions: string[];
337
+ } | {
338
+ target: TaskState;
339
+ actions: string[];
340
+ guard?: undefined;
341
+ })[];
289
342
  };
290
343
  };
291
344
  RESUME_INITIATING: {
@@ -297,6 +350,22 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
297
350
  UNHOLD_FAILED: {
298
351
  target: TaskState;
299
352
  };
353
+ PARTICIPANT_LEAVE: ({
354
+ guard: (params: any) => boolean;
355
+ target: TaskState;
356
+ actions: string[];
357
+ } | {
358
+ actions: string[];
359
+ })[];
360
+ OUTBOUND_FAILED: ({
361
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
362
+ target: TaskState;
363
+ actions: string[];
364
+ } | {
365
+ target: TaskState;
366
+ actions: string[];
367
+ guard?: undefined;
368
+ })[];
300
369
  };
301
370
  };
302
371
  CONSULT_INITIATING: {
@@ -337,7 +406,22 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
337
406
  guard?: undefined;
338
407
  })[];
339
408
  CONSULT_END: ({
340
- guard: ({ event }: import("./guards").GuardParams) => boolean;
409
+ guard: (params: any) => boolean;
410
+ target: TaskState;
411
+ actions: string[];
412
+ } | {
413
+ target: TaskState;
414
+ actions: string[];
415
+ })[];
416
+ PARTICIPANT_LEAVE: ({
417
+ guard: (params: any) => boolean;
418
+ target: TaskState;
419
+ actions: string[];
420
+ } | {
421
+ actions: string[];
422
+ })[];
423
+ OUTBOUND_FAILED: ({
424
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
341
425
  target: TaskState;
342
426
  actions: string[];
343
427
  } | {
@@ -364,16 +448,12 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
364
448
  guard?: undefined;
365
449
  })[];
366
450
  CONSULT_END: ({
367
- guard: ({ context, event }: {
368
- context: any;
369
- event: any;
370
- }) => boolean;
451
+ guard: (params: any) => boolean;
371
452
  target: TaskState;
372
453
  actions: string[];
373
454
  } | {
374
455
  target: TaskState;
375
456
  actions: string[];
376
- guard?: undefined;
377
457
  })[];
378
458
  SWITCH_TO_MAIN_CALL: {
379
459
  actions: string[];
@@ -393,8 +473,6 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
393
473
  actions: string[];
394
474
  } | {
395
475
  actions: string[];
396
- guard?: undefined;
397
- target?: undefined;
398
476
  })[];
399
477
  TRANSFER_SUCCESS: ({
400
478
  guard: ({ context, event }: import("./guards").GuardParams) => boolean;
@@ -435,6 +513,15 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
435
513
  target: TaskState;
436
514
  actions: string[];
437
515
  };
516
+ OUTBOUND_FAILED: ({
517
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
518
+ target: TaskState;
519
+ actions: string[];
520
+ } | {
521
+ target: TaskState;
522
+ actions: string[];
523
+ guard?: undefined;
524
+ })[];
438
525
  MERGE_TO_CONFERENCE: {
439
526
  target: TaskState;
440
527
  };
@@ -455,9 +542,22 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
455
542
  actions: string[];
456
543
  };
457
544
  CONSULT_END: ({
458
- guard: ({ event }: {
459
- event: any;
460
- }) => boolean;
545
+ guard: (params: any) => boolean;
546
+ target: TaskState;
547
+ actions: string[];
548
+ } | {
549
+ target: TaskState;
550
+ actions: string[];
551
+ })[];
552
+ PARTICIPANT_LEAVE: ({
553
+ guard: (params: any) => boolean;
554
+ target: TaskState;
555
+ actions: string[];
556
+ } | {
557
+ actions: string[];
558
+ })[];
559
+ OUTBOUND_FAILED: ({
560
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
461
561
  target: TaskState;
462
562
  actions: string[];
463
563
  } | {
@@ -482,16 +582,11 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
482
582
  guard?: undefined;
483
583
  })[];
484
584
  CONSULT_END: ({
485
- guard: ({ context, event }: {
486
- context: any;
487
- event: any;
488
- }) => boolean;
585
+ guard: (params: any) => boolean;
489
586
  target: TaskState;
490
587
  actions: string[];
491
588
  } | {
492
589
  actions: string[];
493
- guard?: undefined;
494
- target?: undefined;
495
590
  })[];
496
591
  HOLD_SUCCESS: ({
497
592
  guard: ({ context, event }: import("./guards").GuardParams) => boolean;
@@ -525,8 +620,6 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
525
620
  actions: string[];
526
621
  } | {
527
622
  actions: string[];
528
- guard?: undefined;
529
- target?: undefined;
530
623
  })[];
531
624
  TRANSFER_CONFERENCE: {
532
625
  actions: string[];
@@ -574,6 +667,15 @@ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConf
574
667
  target: TaskState;
575
668
  actions: string[];
576
669
  };
670
+ OUTBOUND_FAILED: ({
671
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
672
+ target: TaskState;
673
+ actions: string[];
674
+ } | {
675
+ target: TaskState;
676
+ actions: string[];
677
+ guard?: undefined;
678
+ })[];
577
679
  };
578
680
  };
579
681
  WRAPPING_UP: {
@@ -685,10 +787,15 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
685
787
  target: TaskState;
686
788
  actions: string[];
687
789
  };
688
- TASK_WRAPUP: {
790
+ TASK_WRAPUP: ({
791
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
689
792
  target: TaskState;
690
793
  actions: string[];
691
- };
794
+ } | {
795
+ target: TaskState;
796
+ actions: string[];
797
+ guard?: undefined;
798
+ })[];
692
799
  CONTACT_ENDED: {
693
800
  target: TaskState;
694
801
  actions: string[];
@@ -781,10 +888,7 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
781
888
  actions: string[];
782
889
  };
783
890
  CONSULT_END: ({
784
- guard: ({ context, event }: {
785
- context: any;
786
- event: any;
787
- }) => boolean;
891
+ guard: (params: any) => boolean;
788
892
  target: TaskState;
789
893
  actions: string[];
790
894
  } | {
@@ -792,7 +896,13 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
792
896
  context: any;
793
897
  }) => boolean;
794
898
  actions: string[];
795
- target?: undefined;
899
+ })[];
900
+ PARTICIPANT_LEAVE: ({
901
+ guard: (params: any) => boolean;
902
+ target: TaskState;
903
+ actions: string[];
904
+ } | {
905
+ actions: string[];
796
906
  })[];
797
907
  CONTACT_ENDED: ({
798
908
  guard: ({ context, event }: import("./guards").GuardParams) => boolean;
@@ -807,6 +917,15 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
807
917
  target: TaskState;
808
918
  actions: string[];
809
919
  };
920
+ OUTBOUND_FAILED: ({
921
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
922
+ target: TaskState;
923
+ actions: string[];
924
+ } | {
925
+ target: TaskState;
926
+ actions: string[];
927
+ guard?: undefined;
928
+ })[];
810
929
  PAUSE_RECORDING: {
811
930
  actions: string[];
812
931
  };
@@ -825,6 +944,22 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
825
944
  target: TaskState;
826
945
  actions: string[];
827
946
  };
947
+ PARTICIPANT_LEAVE: ({
948
+ guard: (params: any) => boolean;
949
+ target: TaskState;
950
+ actions: string[];
951
+ } | {
952
+ actions: string[];
953
+ })[];
954
+ OUTBOUND_FAILED: ({
955
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
956
+ target: TaskState;
957
+ actions: string[];
958
+ } | {
959
+ target: TaskState;
960
+ actions: string[];
961
+ guard?: undefined;
962
+ })[];
828
963
  };
829
964
  };
830
965
  HELD: {
@@ -875,13 +1010,33 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
875
1010
  actions: string[];
876
1011
  guard?: undefined;
877
1012
  })[];
878
- CONSULT_END: {
1013
+ CONSULT_END: ({
1014
+ guard: (params: any) => boolean;
1015
+ target: TaskState;
879
1016
  actions: string[];
880
- };
1017
+ } | {
1018
+ actions: string[];
1019
+ })[];
1020
+ PARTICIPANT_LEAVE: ({
1021
+ guard: (params: any) => boolean;
1022
+ target: TaskState;
1023
+ actions: string[];
1024
+ } | {
1025
+ actions: string[];
1026
+ })[];
881
1027
  TASK_WRAPUP: {
882
1028
  target: TaskState;
883
1029
  actions: string[];
884
1030
  };
1031
+ OUTBOUND_FAILED: ({
1032
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
1033
+ target: TaskState;
1034
+ actions: string[];
1035
+ } | {
1036
+ target: TaskState;
1037
+ actions: string[];
1038
+ guard?: undefined;
1039
+ })[];
885
1040
  };
886
1041
  };
887
1042
  RESUME_INITIATING: {
@@ -893,6 +1048,22 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
893
1048
  UNHOLD_FAILED: {
894
1049
  target: TaskState;
895
1050
  };
1051
+ PARTICIPANT_LEAVE: ({
1052
+ guard: (params: any) => boolean;
1053
+ target: TaskState;
1054
+ actions: string[];
1055
+ } | {
1056
+ actions: string[];
1057
+ })[];
1058
+ OUTBOUND_FAILED: ({
1059
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
1060
+ target: TaskState;
1061
+ actions: string[];
1062
+ } | {
1063
+ target: TaskState;
1064
+ actions: string[];
1065
+ guard?: undefined;
1066
+ })[];
896
1067
  };
897
1068
  };
898
1069
  CONSULT_INITIATING: {
@@ -933,7 +1104,22 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
933
1104
  guard?: undefined;
934
1105
  })[];
935
1106
  CONSULT_END: ({
936
- guard: ({ event }: import("./guards").GuardParams) => boolean;
1107
+ guard: (params: any) => boolean;
1108
+ target: TaskState;
1109
+ actions: string[];
1110
+ } | {
1111
+ target: TaskState;
1112
+ actions: string[];
1113
+ })[];
1114
+ PARTICIPANT_LEAVE: ({
1115
+ guard: (params: any) => boolean;
1116
+ target: TaskState;
1117
+ actions: string[];
1118
+ } | {
1119
+ actions: string[];
1120
+ })[];
1121
+ OUTBOUND_FAILED: ({
1122
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
937
1123
  target: TaskState;
938
1124
  actions: string[];
939
1125
  } | {
@@ -960,16 +1146,12 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
960
1146
  guard?: undefined;
961
1147
  })[];
962
1148
  CONSULT_END: ({
963
- guard: ({ context, event }: {
964
- context: any;
965
- event: any;
966
- }) => boolean;
1149
+ guard: (params: any) => boolean;
967
1150
  target: TaskState;
968
1151
  actions: string[];
969
1152
  } | {
970
1153
  target: TaskState;
971
1154
  actions: string[];
972
- guard?: undefined;
973
1155
  })[];
974
1156
  SWITCH_TO_MAIN_CALL: {
975
1157
  actions: string[];
@@ -989,8 +1171,6 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
989
1171
  actions: string[];
990
1172
  } | {
991
1173
  actions: string[];
992
- guard?: undefined;
993
- target?: undefined;
994
1174
  })[];
995
1175
  TRANSFER_SUCCESS: ({
996
1176
  guard: ({ context, event }: import("./guards").GuardParams) => boolean;
@@ -1031,6 +1211,15 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
1031
1211
  target: TaskState;
1032
1212
  actions: string[];
1033
1213
  };
1214
+ OUTBOUND_FAILED: ({
1215
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
1216
+ target: TaskState;
1217
+ actions: string[];
1218
+ } | {
1219
+ target: TaskState;
1220
+ actions: string[];
1221
+ guard?: undefined;
1222
+ })[];
1034
1223
  MERGE_TO_CONFERENCE: {
1035
1224
  target: TaskState;
1036
1225
  };
@@ -1051,9 +1240,22 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
1051
1240
  actions: string[];
1052
1241
  };
1053
1242
  CONSULT_END: ({
1054
- guard: ({ event }: {
1055
- event: any;
1056
- }) => boolean;
1243
+ guard: (params: any) => boolean;
1244
+ target: TaskState;
1245
+ actions: string[];
1246
+ } | {
1247
+ target: TaskState;
1248
+ actions: string[];
1249
+ })[];
1250
+ PARTICIPANT_LEAVE: ({
1251
+ guard: (params: any) => boolean;
1252
+ target: TaskState;
1253
+ actions: string[];
1254
+ } | {
1255
+ actions: string[];
1256
+ })[];
1257
+ OUTBOUND_FAILED: ({
1258
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
1057
1259
  target: TaskState;
1058
1260
  actions: string[];
1059
1261
  } | {
@@ -1078,16 +1280,11 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
1078
1280
  guard?: undefined;
1079
1281
  })[];
1080
1282
  CONSULT_END: ({
1081
- guard: ({ context, event }: {
1082
- context: any;
1083
- event: any;
1084
- }) => boolean;
1283
+ guard: (params: any) => boolean;
1085
1284
  target: TaskState;
1086
1285
  actions: string[];
1087
1286
  } | {
1088
1287
  actions: string[];
1089
- guard?: undefined;
1090
- target?: undefined;
1091
1288
  })[];
1092
1289
  HOLD_SUCCESS: ({
1093
1290
  guard: ({ context, event }: import("./guards").GuardParams) => boolean;
@@ -1121,8 +1318,6 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
1121
1318
  actions: string[];
1122
1319
  } | {
1123
1320
  actions: string[];
1124
- guard?: undefined;
1125
- target?: undefined;
1126
1321
  })[];
1127
1322
  TRANSFER_CONFERENCE: {
1128
1323
  actions: string[];
@@ -1170,6 +1365,15 @@ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig,
1170
1365
  target: TaskState;
1171
1366
  actions: string[];
1172
1367
  };
1368
+ OUTBOUND_FAILED: ({
1369
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
1370
+ target: TaskState;
1371
+ actions: string[];
1372
+ } | {
1373
+ target: TaskState;
1374
+ actions: string[];
1375
+ guard?: undefined;
1376
+ })[];
1173
1377
  };
1174
1378
  };
1175
1379
  WRAPPING_UP: {
@@ -78,13 +78,14 @@ export declare const guards: {
78
78
  */
79
79
  shouldWrapUpOrIsInitiator: ({ context, event }: GuardParams) => boolean;
80
80
  /**
81
- * True if PARTICIPANT_LEAVE indicates that *this* agent left the conference.
81
+ * True when an updated lifecycle event shows that this agent left the main interaction.
82
82
  *
83
- * Important: PARTICIPANT_LEAVE is broadcast to all agents in the conference.
84
- * Only the agent whose id matches the leaving participant should transition to
85
- * TERMINATED / WRAPPING_UP based on wrapup rules.
83
+ * Explicit self-participant evidence is authoritative. Main-call membership is used only
84
+ * for the from-conference nested-consult race where CONSULT_END still represents the agent as
85
+ * active on the consult leg after removing them from the main leg. Partial or ordinary call
86
+ * snapshots are not treated as a departure.
86
87
  */
87
- didCurrentAgentLeaveConference: ({ context, event }: GuardParams) => boolean;
88
+ didCurrentAgentLeaveMainInteraction: ({ context, event }: GuardParams) => boolean;
88
89
  /**
89
90
  * True when this agent initiated the conference transfer (widgets or desktop).
90
91
  * Mirrors determineConsultInitiator: consultingAgentId === self only (not consultState).
@@ -5,7 +5,7 @@
5
5
  * These types define states, events, context, and schemas for task lifecycle management.
6
6
  */
7
7
  import type { AnyStateNodeConfig, ActionFunctionMap, EventObject, ActionArgs } from 'xstate';
8
- import { DestinationType, TaskChannelType, TaskData, TaskUIControls, VoiceVariant } from '../types';
8
+ import { ConsultTransferDestinationConfig, DestinationType, TaskChannelType, TaskData, TaskUIControls, VoiceVariant } from '../types';
9
9
  import { TaskEvent, TaskState } from './constants';
10
10
  /**
11
11
  * Represents a participant in a conference call
@@ -40,6 +40,14 @@ export interface UIControlConfig {
40
40
  isRecordingEnabled: boolean;
41
41
  /** Current agent ID for ownership checks (transfer conference) */
42
42
  agentId?: string;
43
+ /** Agent-profile policy for ordered consult/transfer destinations */
44
+ consultTransferConfig?: ConsultTransferDestinationConfig;
45
+ /** Whether wxApp thick-client answer is enabled (WXCC-6026) */
46
+ enableWxBetterTogether?: boolean;
47
+ /** True while wxApp telephony answer is in flight (outdial Calling… label) */
48
+ wxAppAnswerPending?: boolean;
49
+ /** True only during the wxApp accept REST call (decline disabled for inbound + outdial) */
50
+ wxAppAcceptInFlight?: boolean;
43
51
  }
44
52
  /**
45
53
  * Task state machine context.