@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.
- package/.sdd/manifest.json +5 -4
- package/ai-docs/ARCHITECTURE.md +1 -1
- package/ai-docs/CONTRACTS.md +6 -2
- package/ai-docs/SECURITY.md +1 -1
- package/ai-docs/contact-center-spec.md +22 -4
- package/ai-docs/features/consult-transfer-list-policy/spec/feature-spec.md +362 -0
- package/dist/cc.js +440 -10
- package/dist/cc.js.map +1 -1
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.js +10 -2
- package/dist/constants.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/metrics/behavioral-events.js +13 -0
- package/dist/metrics/behavioral-events.js.map +1 -1
- package/dist/metrics/constants.js +2 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/services/AddressBook.js +18 -15
- package/dist/services/AddressBook.js.map +1 -1
- package/dist/services/AnswerCallOnWebexService.js +174 -0
- package/dist/services/AnswerCallOnWebexService.js.map +1 -0
- package/dist/services/EntryPoint.js +46 -68
- package/dist/services/EntryPoint.js.map +1 -1
- package/dist/services/Queue.js +27 -22
- package/dist/services/Queue.js.map +1 -1
- package/dist/services/WebexCrossClientService.js +171 -0
- package/dist/services/WebexCrossClientService.js.map +1 -0
- package/dist/services/WxAppTelephonyMercurySync.js +93 -0
- package/dist/services/WxAppTelephonyMercurySync.js.map +1 -0
- package/dist/services/config/Util.js +3 -0
- package/dist/services/config/Util.js.map +1 -1
- package/dist/services/config/constants.js +10 -6
- package/dist/services/config/constants.js.map +1 -1
- package/dist/services/config/types.js +4 -0
- package/dist/services/config/types.js.map +1 -1
- package/dist/services/core/Err.js.map +1 -1
- package/dist/services/core/WebexRequest.js +6 -2
- package/dist/services/core/WebexRequest.js.map +1 -1
- package/dist/services/core/aqm-reqs.js +28 -14
- package/dist/services/core/aqm-reqs.js.map +1 -1
- package/dist/services/core/types.js.map +1 -1
- package/dist/services/task/Task.js +73 -7
- package/dist/services/task/Task.js.map +1 -1
- package/dist/services/task/TaskFactory.js +8 -4
- package/dist/services/task/TaskFactory.js.map +1 -1
- package/dist/services/task/TaskManager.js +353 -21
- package/dist/services/task/TaskManager.js.map +1 -1
- package/dist/services/task/WebexCallingUtils.js +70 -0
- package/dist/services/task/WebexCallingUtils.js.map +1 -0
- package/dist/services/task/constants.js +4 -1
- package/dist/services/task/constants.js.map +1 -1
- package/dist/services/task/contact.js +29 -0
- package/dist/services/task/contact.js.map +1 -1
- package/dist/services/task/digital/Digital.js +3 -2
- package/dist/services/task/digital/Digital.js.map +1 -1
- package/dist/services/task/state-machine/TaskStateMachine.js +135 -37
- package/dist/services/task/state-machine/TaskStateMachine.js.map +1 -1
- package/dist/services/task/state-machine/actions.js +6 -1
- package/dist/services/task/state-machine/actions.js.map +1 -1
- package/dist/services/task/state-machine/guards.js +38 -11
- package/dist/services/task/state-machine/guards.js.map +1 -1
- package/dist/services/task/state-machine/types.js.map +1 -1
- package/dist/services/task/state-machine/uiControlsComputer.js +118 -18
- package/dist/services/task/state-machine/uiControlsComputer.js.map +1 -1
- package/dist/services/task/types.js +16 -1
- package/dist/services/task/types.js.map +1 -1
- package/dist/services/task/voice/Voice.js +350 -14
- package/dist/services/task/voice/Voice.js.map +1 -1
- package/dist/services/task/voice/WebRTC.js +4 -1
- package/dist/services/task/voice/WebRTC.js.map +1 -1
- package/dist/services/task/voice/wxAppVoiceMethods.js +201 -0
- package/dist/services/task/voice/wxAppVoiceMethods.js.map +1 -0
- package/dist/services/wxAppTelephonyUtils.js +19 -0
- package/dist/services/wxAppTelephonyUtils.js.map +1 -0
- package/dist/types/cc.d.ts +77 -4
- package/dist/types/config.d.ts +7 -0
- package/dist/types/constants.d.ts +8 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/metrics/constants.d.ts +2 -0
- package/dist/types/services/AddressBook.d.ts +2 -1
- package/dist/types/services/AnswerCallOnWebexService.d.ts +37 -0
- package/dist/types/services/EntryPoint.d.ts +7 -5
- package/dist/types/services/Queue.d.ts +5 -3
- package/dist/types/services/WebexCrossClientService.d.ts +28 -0
- package/dist/types/services/WxAppTelephonyMercurySync.d.ts +28 -0
- package/dist/types/services/config/constants.d.ts +8 -5
- package/dist/types/services/config/types.d.ts +17 -4
- package/dist/types/services/core/Err.d.ts +2 -0
- package/dist/types/services/core/WebexRequest.d.ts +1 -0
- package/dist/types/services/core/types.d.ts +2 -0
- package/dist/types/services/task/Task.d.ts +20 -2
- package/dist/types/services/task/TaskFactory.d.ts +2 -1
- package/dist/types/services/task/WebexCallingUtils.d.ts +11 -0
- package/dist/types/services/task/constants.d.ts +3 -0
- package/dist/types/services/task/contact.d.ts +4 -0
- package/dist/types/services/task/digital/Digital.d.ts +2 -2
- package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +260 -56
- package/dist/types/services/task/state-machine/guards.d.ts +6 -5
- package/dist/types/services/task/state-machine/types.d.ts +9 -1
- package/dist/types/services/task/types.d.ts +81 -4
- package/dist/types/services/task/voice/Voice.d.ts +48 -9
- package/dist/types/services/task/voice/WebRTC.d.ts +2 -2
- package/dist/types/services/task/voice/wxAppVoiceMethods.d.ts +52 -0
- package/dist/types/services/wxAppTelephonyUtils.d.ts +5 -0
- package/dist/types/types.d.ts +14 -8
- package/dist/types/utils/PageCache.d.ts +20 -3
- package/dist/types.js +7 -2
- package/dist/types.js.map +1 -1
- package/dist/utils/PageCache.js +19 -5
- package/dist/utils/PageCache.js.map +1 -1
- package/dist/webex.js +1 -1
- package/package.json +9 -9
- package/src/cc.ts +506 -9
- package/src/config.ts +7 -0
- package/src/constants.ts +8 -0
- package/src/index.ts +2 -0
- package/src/metrics/ai-docs/metrics-spec.md +9 -3
- package/src/metrics/behavioral-events.ts +14 -0
- package/src/metrics/constants.ts +2 -0
- package/src/services/AddressBook.ts +17 -6
- package/src/services/AnswerCallOnWebexService.ts +206 -0
- package/src/services/EntryPoint.ts +59 -60
- package/src/services/Queue.ts +29 -12
- package/src/services/WebexCrossClientService.ts +212 -0
- package/src/services/WxAppTelephonyMercurySync.ts +115 -0
- package/src/services/ai-docs/AGENTS.md +10 -10
- package/src/services/ai-docs/services-spec.md +6 -1
- package/src/services/config/Util.ts +3 -0
- package/src/services/config/ai-docs/AGENTS.md +1 -1
- package/src/services/config/ai-docs/ARCHITECTURE.md +2 -2
- package/src/services/config/ai-docs/config-spec.md +6 -0
- package/src/services/config/constants.ts +10 -6
- package/src/services/config/types.ts +16 -4
- package/src/services/core/Err.ts +1 -0
- package/src/services/core/WebexRequest.ts +3 -1
- package/src/services/core/ai-docs/core-spec.md +5 -1
- package/src/services/core/aqm-reqs.ts +30 -15
- package/src/services/core/types.ts +2 -0
- package/src/services/task/Task.ts +79 -8
- package/src/services/task/TaskFactory.ts +8 -3
- package/src/services/task/TaskManager.ts +522 -16
- package/src/services/task/WebexCallingUtils.ts +136 -0
- package/src/services/task/ai-docs/ARCHITECTURE.md +1 -0
- package/src/services/task/ai-docs/task-spec.md +152 -2
- package/src/services/task/constants.ts +3 -0
- package/src/services/task/contact.ts +30 -0
- package/src/services/task/digital/Digital.ts +4 -2
- package/src/services/task/state-machine/TaskStateMachine.ts +210 -63
- package/src/services/task/state-machine/actions.ts +5 -2
- package/src/services/task/state-machine/ai-docs/AGENTS.md +8 -4
- package/src/services/task/state-machine/ai-docs/ARCHITECTURE.md +17 -8
- package/src/services/task/state-machine/ai-docs/task-state-machine-spec.md +56 -24
- package/src/services/task/state-machine/guards.ts +64 -11
- package/src/services/task/state-machine/types.ts +16 -1
- package/src/services/task/state-machine/uiControlsComputer.ts +206 -32
- package/src/services/task/types.ts +114 -4
- package/src/services/task/voice/Voice.ts +462 -12
- package/src/services/task/voice/WebRTC.ts +5 -1
- package/src/services/task/voice/wxAppVoiceMethods.ts +307 -0
- package/src/services/wxAppTelephonyUtils.ts +14 -0
- package/src/types.ts +33 -9
- package/src/utils/AGENTS.md +21 -10
- package/src/utils/PageCache.ts +38 -5
- package/src/utils/ai-docs/utils-spec.md +21 -11
- package/test/unit/spec/cc.ts +1274 -0
- package/test/unit/spec/metrics/behavioral-events.ts +18 -0
- package/test/unit/spec/services/AddressBook.ts +37 -6
- package/test/unit/spec/services/AnswerCallOnWebexService.ts +223 -0
- package/test/unit/spec/services/EntryPoint.ts +87 -40
- package/test/unit/spec/services/Queue.ts +123 -12
- package/test/unit/spec/services/WebexCrossClientService.ts +261 -0
- package/test/unit/spec/services/WxAppTelephonyMercurySync.ts +113 -0
- package/test/unit/spec/services/config/Util.ts +85 -0
- package/test/unit/spec/services/core/WebexRequest.ts +3 -1
- package/test/unit/spec/services/core/aqm-reqs.ts +113 -1
- package/test/unit/spec/services/task/Task.ts +200 -0
- package/test/unit/spec/services/task/TaskFactory.ts +39 -2
- package/test/unit/spec/services/task/TaskManager.ts +1294 -1
- package/test/unit/spec/services/task/WebexCallingUtils.ts +153 -0
- package/test/unit/spec/services/task/contact.ts +33 -0
- package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +854 -72
- package/test/unit/spec/services/task/state-machine/guards.ts +210 -8
- package/test/unit/spec/services/task/state-machine/uiControlsComputer.ts +445 -7
- package/test/unit/spec/services/task/voice/Voice.ts +874 -0
- package/test/unit/spec/services/task/voice/wxAppVoiceMethods.ts +459 -0
- package/umd/contact-center.min.js +2 -2
- 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: (
|
|
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
|
-
|
|
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: (
|
|
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: (
|
|
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: (
|
|
459
|
-
|
|
460
|
-
|
|
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: (
|
|
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: (
|
|
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
|
-
|
|
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: (
|
|
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: (
|
|
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: (
|
|
1055
|
-
|
|
1056
|
-
|
|
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: (
|
|
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
|
|
81
|
+
* True when an updated lifecycle event shows that this agent left the main interaction.
|
|
82
82
|
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
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
|
-
|
|
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.
|