@webex/contact-center 3.12.0-next.8 → 3.12.0-next.80

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 (205) hide show
  1. package/AGENTS.md +438 -0
  2. package/ai-docs/README.md +131 -0
  3. package/ai-docs/RULES.md +455 -0
  4. package/ai-docs/patterns/event-driven-patterns.md +485 -0
  5. package/ai-docs/patterns/testing-patterns.md +480 -0
  6. package/ai-docs/patterns/typescript-patterns.md +365 -0
  7. package/ai-docs/templates/README.md +102 -0
  8. package/ai-docs/templates/documentation/create-agents-md.md +240 -0
  9. package/ai-docs/templates/documentation/create-architecture-md.md +295 -0
  10. package/ai-docs/templates/existing-service/bug-fix.md +254 -0
  11. package/ai-docs/templates/existing-service/feature-enhancement.md +450 -0
  12. package/ai-docs/templates/new-method/00-master.md +80 -0
  13. package/ai-docs/templates/new-method/01-requirements.md +232 -0
  14. package/ai-docs/templates/new-method/02-implementation.md +295 -0
  15. package/ai-docs/templates/new-method/03-tests.md +201 -0
  16. package/ai-docs/templates/new-method/04-validation.md +141 -0
  17. package/ai-docs/templates/new-service/00-master.md +109 -0
  18. package/ai-docs/templates/new-service/01-pre-questions.md +159 -0
  19. package/ai-docs/templates/new-service/02-code-generation.md +346 -0
  20. package/ai-docs/templates/new-service/03-integration.md +178 -0
  21. package/ai-docs/templates/new-service/04-test-generation.md +205 -0
  22. package/ai-docs/templates/new-service/05-validation.md +145 -0
  23. package/dist/cc.js +265 -29
  24. package/dist/cc.js.map +1 -1
  25. package/dist/config.js +6 -0
  26. package/dist/config.js.map +1 -1
  27. package/dist/constants.js +16 -1
  28. package/dist/constants.js.map +1 -1
  29. package/dist/index.js +20 -5
  30. package/dist/index.js.map +1 -1
  31. package/dist/metrics/behavioral-events.js +101 -0
  32. package/dist/metrics/behavioral-events.js.map +1 -1
  33. package/dist/metrics/constants.js +23 -4
  34. package/dist/metrics/constants.js.map +1 -1
  35. package/dist/services/ApiAiAssistant.js +74 -3
  36. package/dist/services/ApiAiAssistant.js.map +1 -1
  37. package/dist/services/UserPreference.js +427 -0
  38. package/dist/services/UserPreference.js.map +1 -0
  39. package/dist/services/config/Util.js +3 -3
  40. package/dist/services/config/Util.js.map +1 -1
  41. package/dist/services/config/constants.js +23 -2
  42. package/dist/services/config/constants.js.map +1 -1
  43. package/dist/services/config/types.js +49 -9
  44. package/dist/services/config/types.js.map +1 -1
  45. package/dist/services/core/Err.js.map +1 -1
  46. package/dist/services/core/Utils.js +107 -32
  47. package/dist/services/core/Utils.js.map +1 -1
  48. package/dist/services/core/websocket/WebSocketManager.js +2 -1
  49. package/dist/services/core/websocket/WebSocketManager.js.map +1 -1
  50. package/dist/services/core/websocket/types.js.map +1 -1
  51. package/dist/services/index.js +1 -1
  52. package/dist/services/index.js.map +1 -1
  53. package/dist/services/task/Task.js +688 -0
  54. package/dist/services/task/Task.js.map +1 -0
  55. package/dist/services/task/TaskFactory.js +45 -0
  56. package/dist/services/task/TaskFactory.js.map +1 -0
  57. package/dist/services/task/TaskManager.js +725 -526
  58. package/dist/services/task/TaskManager.js.map +1 -1
  59. package/dist/services/task/TaskUtils.js +162 -26
  60. package/dist/services/task/TaskUtils.js.map +1 -1
  61. package/dist/services/task/constants.js +9 -2
  62. package/dist/services/task/constants.js.map +1 -1
  63. package/dist/services/task/dialer.js +78 -0
  64. package/dist/services/task/dialer.js.map +1 -1
  65. package/dist/services/task/digital/Digital.js +77 -0
  66. package/dist/services/task/digital/Digital.js.map +1 -0
  67. package/dist/services/task/state-machine/TaskStateMachine.js +837 -0
  68. package/dist/services/task/state-machine/TaskStateMachine.js.map +1 -0
  69. package/dist/services/task/state-machine/actions.js +543 -0
  70. package/dist/services/task/state-machine/actions.js.map +1 -0
  71. package/dist/services/task/state-machine/constants.js +161 -0
  72. package/dist/services/task/state-machine/constants.js.map +1 -0
  73. package/dist/services/task/state-machine/guards.js +340 -0
  74. package/dist/services/task/state-machine/guards.js.map +1 -0
  75. package/dist/services/task/state-machine/index.js +53 -0
  76. package/dist/services/task/state-machine/index.js.map +1 -0
  77. package/dist/services/task/state-machine/types.js +54 -0
  78. package/dist/services/task/state-machine/types.js.map +1 -0
  79. package/dist/services/task/state-machine/uiControlsComputer.js +553 -0
  80. package/dist/services/task/state-machine/uiControlsComputer.js.map +1 -0
  81. package/dist/services/task/taskDataNormalizer.js +99 -0
  82. package/dist/services/task/taskDataNormalizer.js.map +1 -0
  83. package/dist/services/task/types.js +212 -4
  84. package/dist/services/task/types.js.map +1 -1
  85. package/dist/services/task/voice/Voice.js +1042 -0
  86. package/dist/services/task/voice/Voice.js.map +1 -0
  87. package/dist/services/task/voice/WebRTC.js +149 -0
  88. package/dist/services/task/voice/WebRTC.js.map +1 -0
  89. package/dist/types/cc.d.ts +94 -1
  90. package/dist/types/config.d.ts +6 -0
  91. package/dist/types/constants.d.ts +16 -1
  92. package/dist/types/index.d.ts +21 -6
  93. package/dist/types/metrics/constants.d.ts +19 -1
  94. package/dist/types/services/ApiAiAssistant.d.ts +11 -3
  95. package/dist/types/services/UserPreference.d.ts +118 -0
  96. package/dist/types/services/config/constants.d.ts +21 -0
  97. package/dist/types/services/config/types.d.ts +171 -10
  98. package/dist/types/services/core/Err.d.ts +4 -0
  99. package/dist/types/services/core/Utils.d.ts +33 -13
  100. package/dist/types/services/core/websocket/WebSocketManager.d.ts +1 -0
  101. package/dist/types/services/core/websocket/types.d.ts +1 -1
  102. package/dist/types/services/index.d.ts +1 -1
  103. package/dist/types/services/task/Task.d.ts +157 -0
  104. package/dist/types/services/task/TaskFactory.d.ts +12 -0
  105. package/dist/types/services/task/TaskUtils.d.ts +46 -2
  106. package/dist/types/services/task/constants.d.ts +7 -0
  107. package/dist/types/services/task/dialer.d.ts +30 -0
  108. package/dist/types/services/task/digital/Digital.d.ts +22 -0
  109. package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +1144 -0
  110. package/dist/types/services/task/state-machine/actions.d.ts +10 -0
  111. package/dist/types/services/task/state-machine/constants.d.ts +107 -0
  112. package/dist/types/services/task/state-machine/guards.d.ts +90 -0
  113. package/dist/types/services/task/state-machine/index.d.ts +13 -0
  114. package/dist/types/services/task/state-machine/types.d.ts +267 -0
  115. package/dist/types/services/task/state-machine/uiControlsComputer.d.ts +9 -0
  116. package/dist/types/services/task/taskDataNormalizer.d.ts +10 -0
  117. package/dist/types/services/task/types.d.ts +603 -66
  118. package/dist/types/services/task/voice/Voice.d.ts +184 -0
  119. package/dist/types/services/task/voice/WebRTC.d.ts +53 -0
  120. package/dist/types/types.d.ts +94 -0
  121. package/dist/types/webex.d.ts +1 -0
  122. package/dist/types.js +85 -0
  123. package/dist/types.js.map +1 -1
  124. package/dist/webex.js +14 -2
  125. package/dist/webex.js.map +1 -1
  126. package/package.json +15 -12
  127. package/src/cc.ts +329 -30
  128. package/src/config.ts +6 -0
  129. package/src/constants.ts +16 -1
  130. package/src/index.ts +23 -5
  131. package/src/metrics/ai-docs/AGENTS.md +348 -0
  132. package/src/metrics/ai-docs/ARCHITECTURE.md +336 -0
  133. package/src/metrics/behavioral-events.ts +106 -0
  134. package/src/metrics/constants.ts +23 -4
  135. package/src/services/ApiAiAssistant.ts +104 -3
  136. package/src/services/UserPreference.ts +509 -0
  137. package/src/services/agent/ai-docs/AGENTS.md +238 -0
  138. package/src/services/agent/ai-docs/ARCHITECTURE.md +302 -0
  139. package/src/services/ai-docs/AGENTS.md +384 -0
  140. package/src/services/config/Util.ts +3 -3
  141. package/src/services/config/ai-docs/AGENTS.md +253 -0
  142. package/src/services/config/ai-docs/ARCHITECTURE.md +424 -0
  143. package/src/services/config/constants.ts +25 -1
  144. package/src/services/config/types.ts +174 -11
  145. package/src/services/core/Err.ts +2 -0
  146. package/src/services/core/Utils.ts +123 -37
  147. package/src/services/core/ai-docs/AGENTS.md +379 -0
  148. package/src/services/core/ai-docs/ARCHITECTURE.md +696 -0
  149. package/src/services/core/websocket/WebSocketManager.ts +2 -0
  150. package/src/services/core/websocket/types.ts +1 -1
  151. package/src/services/index.ts +1 -1
  152. package/src/services/task/Task.ts +837 -0
  153. package/src/services/task/TaskFactory.ts +55 -0
  154. package/src/services/task/TaskManager.ts +738 -613
  155. package/src/services/task/TaskUtils.ts +205 -25
  156. package/src/services/task/ai-docs/AGENTS.md +455 -0
  157. package/src/services/task/ai-docs/ARCHITECTURE.md +585 -0
  158. package/src/services/task/constants.ts +7 -0
  159. package/src/services/task/dialer.ts +80 -0
  160. package/src/services/task/digital/Digital.ts +95 -0
  161. package/src/services/task/state-machine/TaskStateMachine.ts +1077 -0
  162. package/src/services/task/state-machine/actions.ts +685 -0
  163. package/src/services/task/state-machine/ai-docs/AGENTS.md +495 -0
  164. package/src/services/task/state-machine/ai-docs/ARCHITECTURE.md +1135 -0
  165. package/src/services/task/state-machine/constants.ts +172 -0
  166. package/src/services/task/state-machine/guards.ts +406 -0
  167. package/src/services/task/state-machine/index.ts +28 -0
  168. package/src/services/task/state-machine/types.ts +241 -0
  169. package/src/services/task/state-machine/uiControlsComputer.ts +867 -0
  170. package/src/services/task/taskDataNormalizer.ts +137 -0
  171. package/src/services/task/types.ts +710 -71
  172. package/src/services/task/voice/Voice.ts +1267 -0
  173. package/src/services/task/voice/WebRTC.ts +187 -0
  174. package/src/types.ts +122 -2
  175. package/src/utils/AGENTS.md +276 -0
  176. package/src/webex.js +2 -0
  177. package/test/unit/spec/cc.ts +343 -23
  178. package/test/unit/spec/logger-proxy.ts +70 -0
  179. package/test/unit/spec/services/ApiAiAssistant.ts +122 -17
  180. package/test/unit/spec/services/UserPreference.ts +401 -0
  181. package/test/unit/spec/services/WebCallingService.ts +7 -1
  182. package/test/unit/spec/services/config/index.ts +30 -30
  183. package/test/unit/spec/services/core/Utils.ts +425 -8
  184. package/test/unit/spec/services/core/websocket/WebSocketManager.ts +66 -40
  185. package/test/unit/spec/services/task/AutoWrapup.ts +63 -0
  186. package/test/unit/spec/services/task/Task.ts +477 -0
  187. package/test/unit/spec/services/task/TaskFactory.ts +62 -0
  188. package/test/unit/spec/services/task/TaskManager.ts +832 -1702
  189. package/test/unit/spec/services/task/TaskUtils.ts +206 -0
  190. package/test/unit/spec/services/task/dialer.ts +190 -0
  191. package/test/unit/spec/services/task/digital/Digital.ts +105 -0
  192. package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +1825 -0
  193. package/test/unit/spec/services/task/state-machine/guards.ts +479 -0
  194. package/test/unit/spec/services/task/state-machine/types.ts +18 -0
  195. package/test/unit/spec/services/task/state-machine/uiControlsComputer.ts +2020 -0
  196. package/test/unit/spec/services/task/taskTestUtils.ts +87 -0
  197. package/test/unit/spec/services/task/voice/Voice.ts +631 -0
  198. package/test/unit/spec/services/task/voice/WebRTC.ts +235 -0
  199. package/umd/contact-center.min.js +2 -2
  200. package/umd/contact-center.min.js.map +1 -1
  201. package/dist/services/task/index.js +0 -1525
  202. package/dist/services/task/index.js.map +0 -1
  203. package/dist/types/services/task/index.d.ts +0 -650
  204. package/src/services/task/index.ts +0 -1801
  205. package/test/unit/spec/services/task/index.ts +0 -2184
@@ -0,0 +1,1144 @@
1
+ /**
2
+ * Task State Machine Configuration
3
+ *
4
+ * This file defines the XState state machine configuration for contact center tasks.
5
+ * It orchestrates state transitions, guards, and actions for task lifecycle management.
6
+ *
7
+ * GUARD FUNCTIONS: All guard logic is centralized in guards.ts for reusability and testing.
8
+ * This file imports and uses those guards via the `guards` object.
9
+ */
10
+ import { TaskContext, TaskEventPayload, UIControlConfig, TaskActionsMap } from './types';
11
+ import { TaskState } from './constants';
12
+ /**
13
+ * Get task state machine configuration with UI control config
14
+ * Defines all states, transitions, guards, and actions for task management
15
+ *
16
+ * @param uiControlConfig - UI control configuration
17
+ * @returns State machine configuration object
18
+ */
19
+ export declare function getTaskStateMachineConfig(uiControlConfig: UIControlConfig): {
20
+ id: string;
21
+ initial: TaskState;
22
+ context: TaskContext;
23
+ on: {
24
+ RECORDING_STARTED: {
25
+ actions: string[];
26
+ };
27
+ CONTACT_UPDATED: {
28
+ actions: string[];
29
+ };
30
+ CONTACT_OWNER_CHANGED: {
31
+ actions: string[];
32
+ };
33
+ HYDRATE: {
34
+ actions: string[];
35
+ };
36
+ CONSULT_CREATED: {
37
+ actions: string[];
38
+ };
39
+ CONSULT_FAILED: {
40
+ actions: string[];
41
+ };
42
+ };
43
+ states: {
44
+ IDLE: {
45
+ on: {
46
+ HYDRATE: ({
47
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
48
+ target: TaskState;
49
+ actions: string[];
50
+ } | {
51
+ actions: string[];
52
+ guard?: undefined;
53
+ target?: undefined;
54
+ })[];
55
+ TASK_INCOMING: ({
56
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
57
+ target: TaskState;
58
+ actions: string[];
59
+ } | {
60
+ target: TaskState;
61
+ actions: string[];
62
+ guard?: undefined;
63
+ })[];
64
+ OUTBOUND_FAILED: {
65
+ target: TaskState;
66
+ actions: string[];
67
+ };
68
+ CONSULTING_ACTIVE: {
69
+ target: TaskState;
70
+ actions: string[];
71
+ };
72
+ };
73
+ };
74
+ OFFERED: {
75
+ on: {
76
+ TASK_OFFERED: {
77
+ actions: string[];
78
+ };
79
+ ASSIGN: ({
80
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
81
+ target: TaskState;
82
+ actions: string[];
83
+ } | {
84
+ target: TaskState;
85
+ actions: string[];
86
+ guard?: undefined;
87
+ })[];
88
+ RONA: {
89
+ target: TaskState;
90
+ actions: string[];
91
+ };
92
+ TASK_WRAPUP: {
93
+ target: TaskState;
94
+ actions: string[];
95
+ };
96
+ CONTACT_ENDED: {
97
+ target: TaskState;
98
+ actions: string[];
99
+ };
100
+ ASSIGN_FAILED: {
101
+ target: TaskState;
102
+ actions: string[];
103
+ };
104
+ INVITE_FAILED: {
105
+ target: TaskState;
106
+ actions: string[];
107
+ };
108
+ OUTBOUND_FAILED: ({
109
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
110
+ target: TaskState;
111
+ actions: string[];
112
+ } | {
113
+ target: TaskState;
114
+ actions: string[];
115
+ guard?: undefined;
116
+ })[];
117
+ CAMPAIGN_PREVIEW_ACCEPT_FAILED: {
118
+ actions: string[];
119
+ };
120
+ CAMPAIGN_PREVIEW_SKIP_FAILED: {
121
+ actions: string[];
122
+ };
123
+ CAMPAIGN_PREVIEW_REMOVE_FAILED: {
124
+ actions: string[];
125
+ };
126
+ CONSULTING_ACTIVE: {
127
+ target: TaskState;
128
+ actions: string[];
129
+ }[];
130
+ OFFER_CONSULT: {
131
+ actions: string[];
132
+ };
133
+ CONSULT_FAILED: {
134
+ target: TaskState;
135
+ actions: string[];
136
+ };
137
+ CONSULT_END: {
138
+ target: TaskState;
139
+ actions: string[];
140
+ };
141
+ };
142
+ };
143
+ CONNECTED: {
144
+ on: {
145
+ CONFERENCE_START: {
146
+ target: TaskState;
147
+ actions: string[];
148
+ };
149
+ CONSULTING_ACTIVE: {
150
+ target: TaskState;
151
+ actions: string[];
152
+ };
153
+ ASSIGN: {
154
+ target: TaskState;
155
+ actions: string[];
156
+ };
157
+ HOLD_INITIATED: {
158
+ target: TaskState;
159
+ };
160
+ HOLD_SUCCESS: {
161
+ target: TaskState;
162
+ actions: string[];
163
+ };
164
+ CONSULT: {
165
+ target: TaskState;
166
+ actions: string[];
167
+ };
168
+ TRANSFER_SUCCESS: ({
169
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
170
+ target: TaskState;
171
+ actions: string[];
172
+ } | {
173
+ actions: string[];
174
+ guard?: undefined;
175
+ target?: undefined;
176
+ })[];
177
+ TRANSFER_FAILED: {
178
+ actions: string[];
179
+ };
180
+ CONSULT_END: ({
181
+ guard: ({ context, event }: {
182
+ context: any;
183
+ event: any;
184
+ }) => boolean;
185
+ target: TaskState;
186
+ actions: string[];
187
+ } | {
188
+ guard: ({ context }: {
189
+ context: any;
190
+ }) => boolean;
191
+ actions: string[];
192
+ target?: undefined;
193
+ })[];
194
+ CONTACT_ENDED: ({
195
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
196
+ target: TaskState;
197
+ actions: string[];
198
+ } | {
199
+ target: TaskState;
200
+ actions: string[];
201
+ guard?: undefined;
202
+ })[];
203
+ TASK_WRAPUP: {
204
+ target: TaskState;
205
+ actions: string[];
206
+ };
207
+ PAUSE_RECORDING: {
208
+ actions: string[];
209
+ };
210
+ RESUME_RECORDING: {
211
+ actions: string[];
212
+ };
213
+ };
214
+ };
215
+ HOLD_INITIATING: {
216
+ on: {
217
+ HOLD_SUCCESS: {
218
+ target: TaskState;
219
+ actions: string[];
220
+ };
221
+ HOLD_FAILED: {
222
+ target: TaskState;
223
+ actions: string[];
224
+ };
225
+ };
226
+ };
227
+ HELD: {
228
+ on: {
229
+ CONFERENCE_START: {
230
+ target: TaskState;
231
+ actions: string[];
232
+ };
233
+ PAUSE_RECORDING: {
234
+ actions: string[];
235
+ };
236
+ RESUME_RECORDING: {
237
+ actions: string[];
238
+ };
239
+ UNHOLD_INITIATED: {
240
+ target: TaskState;
241
+ };
242
+ UNHOLD_SUCCESS: {
243
+ target: TaskState;
244
+ actions: string[];
245
+ };
246
+ CONSULT: {
247
+ target: TaskState;
248
+ actions: string[];
249
+ };
250
+ CONSULTING_ACTIVE: {
251
+ target: TaskState;
252
+ actions: string[];
253
+ };
254
+ TRANSFER_SUCCESS: ({
255
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
256
+ target: TaskState;
257
+ actions: string[];
258
+ } | {
259
+ target: TaskState;
260
+ actions: string[];
261
+ guard?: undefined;
262
+ })[];
263
+ TRANSFER_FAILED: {
264
+ actions: string[];
265
+ };
266
+ CONTACT_ENDED: ({
267
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
268
+ target: TaskState;
269
+ actions: string[];
270
+ } | {
271
+ target: TaskState;
272
+ actions: string[];
273
+ guard?: undefined;
274
+ })[];
275
+ CONSULT_END: {
276
+ actions: string[];
277
+ };
278
+ TASK_WRAPUP: {
279
+ target: TaskState;
280
+ actions: string[];
281
+ };
282
+ };
283
+ };
284
+ RESUME_INITIATING: {
285
+ on: {
286
+ UNHOLD_SUCCESS: {
287
+ target: TaskState;
288
+ actions: string[];
289
+ };
290
+ UNHOLD_FAILED: {
291
+ target: TaskState;
292
+ };
293
+ };
294
+ };
295
+ CONSULT_INITIATING: {
296
+ on: {
297
+ HOLD_SUCCESS: {
298
+ actions: string[];
299
+ };
300
+ HOLD_FAILED: {
301
+ target: TaskState;
302
+ actions: string[];
303
+ };
304
+ CONSULT_SUCCESS: {
305
+ target: TaskState;
306
+ actions: string[];
307
+ };
308
+ CONSULTING_ACTIVE: {
309
+ target: TaskState;
310
+ actions: string[];
311
+ };
312
+ CONSULT_FAILED: ({
313
+ guard: ({ context }: {
314
+ context: any;
315
+ }) => boolean;
316
+ target: TaskState;
317
+ actions: string[];
318
+ } | {
319
+ target: TaskState;
320
+ actions: string[];
321
+ guard?: undefined;
322
+ })[];
323
+ CTQ_CANCEL: ({
324
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
325
+ target: TaskState;
326
+ actions: string[];
327
+ } | {
328
+ target: TaskState;
329
+ actions: string[];
330
+ guard?: undefined;
331
+ })[];
332
+ CONSULT_END: ({
333
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
334
+ target: TaskState;
335
+ actions: string[];
336
+ } | {
337
+ target: TaskState;
338
+ actions: string[];
339
+ guard?: undefined;
340
+ })[];
341
+ };
342
+ };
343
+ CONSULTING: {
344
+ on: {
345
+ CONSULTING_ACTIVE: {
346
+ actions: string[];
347
+ };
348
+ CONSULT_FAILED: ({
349
+ guard: ({ context }: {
350
+ context: any;
351
+ }) => boolean;
352
+ target: TaskState;
353
+ actions: string[];
354
+ } | {
355
+ target: TaskState;
356
+ actions: string[];
357
+ guard?: undefined;
358
+ })[];
359
+ CONSULT_END: ({
360
+ guard: ({ context, event }: {
361
+ context: any;
362
+ event: any;
363
+ }) => boolean;
364
+ target: TaskState;
365
+ actions: string[];
366
+ } | {
367
+ target: TaskState;
368
+ actions: string[];
369
+ guard?: undefined;
370
+ })[];
371
+ SWITCH_TO_MAIN_CALL: {
372
+ actions: string[];
373
+ };
374
+ SWITCH_TO_CONSULT: {
375
+ actions: string[];
376
+ };
377
+ HOLD_SUCCESS: {
378
+ actions: string[];
379
+ };
380
+ UNHOLD_SUCCESS: {
381
+ actions: string[];
382
+ };
383
+ TRANSFER_SUCCESS: ({
384
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
385
+ target: TaskState;
386
+ actions: string[];
387
+ } | {
388
+ target: TaskState;
389
+ actions: string[];
390
+ guard?: undefined;
391
+ })[];
392
+ TRANSFER_FAILED: {
393
+ actions: string[];
394
+ };
395
+ TRANSFER_CONFERENCE: {
396
+ actions: string[];
397
+ };
398
+ TRANSFER_CONFERENCE_SUCCESS: ({
399
+ guard: ({ context }: {
400
+ context: any;
401
+ }) => boolean;
402
+ actions: string[];
403
+ target?: undefined;
404
+ } | {
405
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
406
+ target: TaskState;
407
+ actions: string[];
408
+ } | {
409
+ target: TaskState;
410
+ actions: string[];
411
+ guard?: undefined;
412
+ })[];
413
+ TRANSFER_CONFERENCE_FAILED: {
414
+ actions: string[];
415
+ };
416
+ ASSIGN: {
417
+ target: TaskState;
418
+ actions: string[];
419
+ };
420
+ CONTACT_ENDED: {
421
+ target: TaskState;
422
+ actions: string[];
423
+ };
424
+ TASK_WRAPUP: {
425
+ target: TaskState;
426
+ actions: string[];
427
+ };
428
+ MERGE_TO_CONFERENCE: {
429
+ target: TaskState;
430
+ };
431
+ CONFERENCE_START: {
432
+ target: TaskState;
433
+ actions: string[];
434
+ };
435
+ };
436
+ };
437
+ CONF_INITIATING: {
438
+ on: {
439
+ CONFERENCE_START: {
440
+ target: TaskState;
441
+ actions: string[];
442
+ };
443
+ CONFERENCE_FAILED: {
444
+ target: TaskState;
445
+ actions: string[];
446
+ };
447
+ CONSULT_END: ({
448
+ guard: ({ event }: {
449
+ event: any;
450
+ }) => boolean;
451
+ target: TaskState;
452
+ actions: string[];
453
+ } | {
454
+ target: TaskState;
455
+ actions: string[];
456
+ guard?: undefined;
457
+ })[];
458
+ };
459
+ };
460
+ CONFERENCING: {
461
+ on: {
462
+ CONFERENCE_START: {
463
+ actions: string[];
464
+ };
465
+ EXIT_CONFERENCE_SUCCESS: ({
466
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
467
+ target: TaskState;
468
+ actions: string[];
469
+ } | {
470
+ target: TaskState;
471
+ actions: string[];
472
+ guard?: undefined;
473
+ })[];
474
+ CONSULT_END: ({
475
+ guard: ({ context, event }: {
476
+ context: any;
477
+ event: any;
478
+ }) => boolean;
479
+ target: TaskState;
480
+ actions: string[];
481
+ } | {
482
+ actions: string[];
483
+ guard?: undefined;
484
+ target?: undefined;
485
+ })[];
486
+ HOLD_SUCCESS: ({
487
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
488
+ target: TaskState;
489
+ actions: string[];
490
+ } | {
491
+ actions: string[];
492
+ guard?: undefined;
493
+ target?: undefined;
494
+ })[];
495
+ UNHOLD_SUCCESS: ({
496
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
497
+ target: TaskState;
498
+ actions: string[];
499
+ } | {
500
+ actions: string[];
501
+ guard?: undefined;
502
+ target?: undefined;
503
+ })[];
504
+ CONSULT: {
505
+ target: TaskState;
506
+ actions: string[];
507
+ };
508
+ CONSULTING_ACTIVE: {
509
+ target: TaskState;
510
+ actions: string[];
511
+ };
512
+ PARTICIPANT_LEAVE: ({
513
+ guard: (params: any) => boolean;
514
+ target: TaskState;
515
+ actions: string[];
516
+ } | {
517
+ actions: string[];
518
+ guard?: undefined;
519
+ target?: undefined;
520
+ })[];
521
+ TRANSFER_CONFERENCE: {
522
+ actions: string[];
523
+ };
524
+ TRANSFER_CONFERENCE_SUCCESS: {
525
+ guard: ({ context }: {
526
+ context: any;
527
+ }) => boolean;
528
+ actions: string[];
529
+ }[];
530
+ TRANSFER_CONFERENCE_FAILED: {
531
+ actions: string[];
532
+ };
533
+ CONFERENCE_END: ({
534
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
535
+ target: TaskState;
536
+ actions: string[];
537
+ } | {
538
+ guard: ({ context, event }: {
539
+ context: any;
540
+ event: any;
541
+ }) => boolean;
542
+ target: TaskState;
543
+ actions: string[];
544
+ } | {
545
+ target: TaskState;
546
+ actions: string[];
547
+ guard?: undefined;
548
+ })[];
549
+ CONTACT_ENDED: {
550
+ actions: string[];
551
+ }[];
552
+ };
553
+ };
554
+ WRAPPING_UP: {
555
+ entry: string[];
556
+ on: {
557
+ WRAPUP_COMPLETE: {
558
+ target: TaskState;
559
+ actions: string[];
560
+ };
561
+ };
562
+ };
563
+ COMPLETED: {
564
+ type: "final";
565
+ entry: string[];
566
+ };
567
+ TERMINATED: {
568
+ type: "final";
569
+ entry: string[];
570
+ };
571
+ };
572
+ };
573
+ /**
574
+ * Create a task state machine instance using only the built-in actions.
575
+ * The resulting machine is ready for most consumers that rely on the default
576
+ * context mutators declared in actions.ts.
577
+ *
578
+ * @param uiControlConfig - UI control configuration
579
+ * @returns StateMachine instance for task management
580
+ */
581
+ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig, options?: {
582
+ actions?: Partial<TaskActionsMap>;
583
+ }): import("xstate").StateMachine<TaskContext, TaskEventPayload, Record<string, import("xstate").AnyActorRef>, {
584
+ src: string;
585
+ logic: never;
586
+ id: string;
587
+ }, {
588
+ type: string;
589
+ params: undefined;
590
+ }, never, never, TaskState.IDLE | TaskState.OFFERED | TaskState.CONNECTED | TaskState.HOLD_INITIATING | TaskState.HELD | TaskState.RESUME_INITIATING | TaskState.CONSULT_INITIATING | TaskState.CONSULTING | TaskState.CONF_INITIATING | TaskState.CONFERENCING | TaskState.WRAPPING_UP | TaskState.COMPLETED | TaskState.TERMINATED, string, {}, {}, import("xstate").EventObject, import("xstate").MetaObject, {
591
+ id: string;
592
+ initial: TaskState;
593
+ context: TaskContext;
594
+ on: {
595
+ RECORDING_STARTED: {
596
+ actions: string[];
597
+ };
598
+ CONTACT_UPDATED: {
599
+ actions: string[];
600
+ };
601
+ CONTACT_OWNER_CHANGED: {
602
+ actions: string[];
603
+ };
604
+ HYDRATE: {
605
+ actions: string[];
606
+ };
607
+ CONSULT_CREATED: {
608
+ actions: string[];
609
+ };
610
+ CONSULT_FAILED: {
611
+ actions: string[];
612
+ };
613
+ };
614
+ states: {
615
+ IDLE: {
616
+ on: {
617
+ HYDRATE: ({
618
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
619
+ target: TaskState;
620
+ actions: string[];
621
+ } | {
622
+ actions: string[];
623
+ guard?: undefined;
624
+ target?: undefined;
625
+ })[];
626
+ TASK_INCOMING: ({
627
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
628
+ target: TaskState;
629
+ actions: string[];
630
+ } | {
631
+ target: TaskState;
632
+ actions: string[];
633
+ guard?: undefined;
634
+ })[];
635
+ OUTBOUND_FAILED: {
636
+ target: TaskState;
637
+ actions: string[];
638
+ };
639
+ CONSULTING_ACTIVE: {
640
+ target: TaskState;
641
+ actions: string[];
642
+ };
643
+ };
644
+ };
645
+ OFFERED: {
646
+ on: {
647
+ TASK_OFFERED: {
648
+ actions: string[];
649
+ };
650
+ ASSIGN: ({
651
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
652
+ target: TaskState;
653
+ actions: string[];
654
+ } | {
655
+ target: TaskState;
656
+ actions: string[];
657
+ guard?: undefined;
658
+ })[];
659
+ RONA: {
660
+ target: TaskState;
661
+ actions: string[];
662
+ };
663
+ TASK_WRAPUP: {
664
+ target: TaskState;
665
+ actions: string[];
666
+ };
667
+ CONTACT_ENDED: {
668
+ target: TaskState;
669
+ actions: string[];
670
+ };
671
+ ASSIGN_FAILED: {
672
+ target: TaskState;
673
+ actions: string[];
674
+ };
675
+ INVITE_FAILED: {
676
+ target: TaskState;
677
+ actions: string[];
678
+ };
679
+ OUTBOUND_FAILED: ({
680
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
681
+ target: TaskState;
682
+ actions: string[];
683
+ } | {
684
+ target: TaskState;
685
+ actions: string[];
686
+ guard?: undefined;
687
+ })[];
688
+ CAMPAIGN_PREVIEW_ACCEPT_FAILED: {
689
+ actions: string[];
690
+ };
691
+ CAMPAIGN_PREVIEW_SKIP_FAILED: {
692
+ actions: string[];
693
+ };
694
+ CAMPAIGN_PREVIEW_REMOVE_FAILED: {
695
+ actions: string[];
696
+ };
697
+ CONSULTING_ACTIVE: {
698
+ target: TaskState;
699
+ actions: string[];
700
+ }[];
701
+ OFFER_CONSULT: {
702
+ actions: string[];
703
+ };
704
+ CONSULT_FAILED: {
705
+ target: TaskState;
706
+ actions: string[];
707
+ };
708
+ CONSULT_END: {
709
+ target: TaskState;
710
+ actions: string[];
711
+ };
712
+ };
713
+ };
714
+ CONNECTED: {
715
+ on: {
716
+ CONFERENCE_START: {
717
+ target: TaskState;
718
+ actions: string[];
719
+ };
720
+ CONSULTING_ACTIVE: {
721
+ target: TaskState;
722
+ actions: string[];
723
+ };
724
+ ASSIGN: {
725
+ target: TaskState;
726
+ actions: string[];
727
+ };
728
+ HOLD_INITIATED: {
729
+ target: TaskState;
730
+ };
731
+ HOLD_SUCCESS: {
732
+ target: TaskState;
733
+ actions: string[];
734
+ };
735
+ CONSULT: {
736
+ target: TaskState;
737
+ actions: string[];
738
+ };
739
+ TRANSFER_SUCCESS: ({
740
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
741
+ target: TaskState;
742
+ actions: string[];
743
+ } | {
744
+ actions: string[];
745
+ guard?: undefined;
746
+ target?: undefined;
747
+ })[];
748
+ TRANSFER_FAILED: {
749
+ actions: string[];
750
+ };
751
+ CONSULT_END: ({
752
+ guard: ({ context, event }: {
753
+ context: any;
754
+ event: any;
755
+ }) => boolean;
756
+ target: TaskState;
757
+ actions: string[];
758
+ } | {
759
+ guard: ({ context }: {
760
+ context: any;
761
+ }) => boolean;
762
+ actions: string[];
763
+ target?: undefined;
764
+ })[];
765
+ CONTACT_ENDED: ({
766
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
767
+ target: TaskState;
768
+ actions: string[];
769
+ } | {
770
+ target: TaskState;
771
+ actions: string[];
772
+ guard?: undefined;
773
+ })[];
774
+ TASK_WRAPUP: {
775
+ target: TaskState;
776
+ actions: string[];
777
+ };
778
+ PAUSE_RECORDING: {
779
+ actions: string[];
780
+ };
781
+ RESUME_RECORDING: {
782
+ actions: string[];
783
+ };
784
+ };
785
+ };
786
+ HOLD_INITIATING: {
787
+ on: {
788
+ HOLD_SUCCESS: {
789
+ target: TaskState;
790
+ actions: string[];
791
+ };
792
+ HOLD_FAILED: {
793
+ target: TaskState;
794
+ actions: string[];
795
+ };
796
+ };
797
+ };
798
+ HELD: {
799
+ on: {
800
+ CONFERENCE_START: {
801
+ target: TaskState;
802
+ actions: string[];
803
+ };
804
+ PAUSE_RECORDING: {
805
+ actions: string[];
806
+ };
807
+ RESUME_RECORDING: {
808
+ actions: string[];
809
+ };
810
+ UNHOLD_INITIATED: {
811
+ target: TaskState;
812
+ };
813
+ UNHOLD_SUCCESS: {
814
+ target: TaskState;
815
+ actions: string[];
816
+ };
817
+ CONSULT: {
818
+ target: TaskState;
819
+ actions: string[];
820
+ };
821
+ CONSULTING_ACTIVE: {
822
+ target: TaskState;
823
+ actions: string[];
824
+ };
825
+ TRANSFER_SUCCESS: ({
826
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
827
+ target: TaskState;
828
+ actions: string[];
829
+ } | {
830
+ target: TaskState;
831
+ actions: string[];
832
+ guard?: undefined;
833
+ })[];
834
+ TRANSFER_FAILED: {
835
+ actions: string[];
836
+ };
837
+ CONTACT_ENDED: ({
838
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
839
+ target: TaskState;
840
+ actions: string[];
841
+ } | {
842
+ target: TaskState;
843
+ actions: string[];
844
+ guard?: undefined;
845
+ })[];
846
+ CONSULT_END: {
847
+ actions: string[];
848
+ };
849
+ TASK_WRAPUP: {
850
+ target: TaskState;
851
+ actions: string[];
852
+ };
853
+ };
854
+ };
855
+ RESUME_INITIATING: {
856
+ on: {
857
+ UNHOLD_SUCCESS: {
858
+ target: TaskState;
859
+ actions: string[];
860
+ };
861
+ UNHOLD_FAILED: {
862
+ target: TaskState;
863
+ };
864
+ };
865
+ };
866
+ CONSULT_INITIATING: {
867
+ on: {
868
+ HOLD_SUCCESS: {
869
+ actions: string[];
870
+ };
871
+ HOLD_FAILED: {
872
+ target: TaskState;
873
+ actions: string[];
874
+ };
875
+ CONSULT_SUCCESS: {
876
+ target: TaskState;
877
+ actions: string[];
878
+ };
879
+ CONSULTING_ACTIVE: {
880
+ target: TaskState;
881
+ actions: string[];
882
+ };
883
+ CONSULT_FAILED: ({
884
+ guard: ({ context }: {
885
+ context: any;
886
+ }) => boolean;
887
+ target: TaskState;
888
+ actions: string[];
889
+ } | {
890
+ target: TaskState;
891
+ actions: string[];
892
+ guard?: undefined;
893
+ })[];
894
+ CTQ_CANCEL: ({
895
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
896
+ target: TaskState;
897
+ actions: string[];
898
+ } | {
899
+ target: TaskState;
900
+ actions: string[];
901
+ guard?: undefined;
902
+ })[];
903
+ CONSULT_END: ({
904
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
905
+ target: TaskState;
906
+ actions: string[];
907
+ } | {
908
+ target: TaskState;
909
+ actions: string[];
910
+ guard?: undefined;
911
+ })[];
912
+ };
913
+ };
914
+ CONSULTING: {
915
+ on: {
916
+ CONSULTING_ACTIVE: {
917
+ actions: string[];
918
+ };
919
+ CONSULT_FAILED: ({
920
+ guard: ({ context }: {
921
+ context: any;
922
+ }) => boolean;
923
+ target: TaskState;
924
+ actions: string[];
925
+ } | {
926
+ target: TaskState;
927
+ actions: string[];
928
+ guard?: undefined;
929
+ })[];
930
+ CONSULT_END: ({
931
+ guard: ({ context, event }: {
932
+ context: any;
933
+ event: any;
934
+ }) => boolean;
935
+ target: TaskState;
936
+ actions: string[];
937
+ } | {
938
+ target: TaskState;
939
+ actions: string[];
940
+ guard?: undefined;
941
+ })[];
942
+ SWITCH_TO_MAIN_CALL: {
943
+ actions: string[];
944
+ };
945
+ SWITCH_TO_CONSULT: {
946
+ actions: string[];
947
+ };
948
+ HOLD_SUCCESS: {
949
+ actions: string[];
950
+ };
951
+ UNHOLD_SUCCESS: {
952
+ actions: string[];
953
+ };
954
+ TRANSFER_SUCCESS: ({
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
+ })[];
963
+ TRANSFER_FAILED: {
964
+ actions: string[];
965
+ };
966
+ TRANSFER_CONFERENCE: {
967
+ actions: string[];
968
+ };
969
+ TRANSFER_CONFERENCE_SUCCESS: ({
970
+ guard: ({ context }: {
971
+ context: any;
972
+ }) => boolean;
973
+ actions: string[];
974
+ target?: undefined;
975
+ } | {
976
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
977
+ target: TaskState;
978
+ actions: string[];
979
+ } | {
980
+ target: TaskState;
981
+ actions: string[];
982
+ guard?: undefined;
983
+ })[];
984
+ TRANSFER_CONFERENCE_FAILED: {
985
+ actions: string[];
986
+ };
987
+ ASSIGN: {
988
+ target: TaskState;
989
+ actions: string[];
990
+ };
991
+ CONTACT_ENDED: {
992
+ target: TaskState;
993
+ actions: string[];
994
+ };
995
+ TASK_WRAPUP: {
996
+ target: TaskState;
997
+ actions: string[];
998
+ };
999
+ MERGE_TO_CONFERENCE: {
1000
+ target: TaskState;
1001
+ };
1002
+ CONFERENCE_START: {
1003
+ target: TaskState;
1004
+ actions: string[];
1005
+ };
1006
+ };
1007
+ };
1008
+ CONF_INITIATING: {
1009
+ on: {
1010
+ CONFERENCE_START: {
1011
+ target: TaskState;
1012
+ actions: string[];
1013
+ };
1014
+ CONFERENCE_FAILED: {
1015
+ target: TaskState;
1016
+ actions: string[];
1017
+ };
1018
+ CONSULT_END: ({
1019
+ guard: ({ event }: {
1020
+ event: any;
1021
+ }) => boolean;
1022
+ target: TaskState;
1023
+ actions: string[];
1024
+ } | {
1025
+ target: TaskState;
1026
+ actions: string[];
1027
+ guard?: undefined;
1028
+ })[];
1029
+ };
1030
+ };
1031
+ CONFERENCING: {
1032
+ on: {
1033
+ CONFERENCE_START: {
1034
+ actions: string[];
1035
+ };
1036
+ EXIT_CONFERENCE_SUCCESS: ({
1037
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
1038
+ target: TaskState;
1039
+ actions: string[];
1040
+ } | {
1041
+ target: TaskState;
1042
+ actions: string[];
1043
+ guard?: undefined;
1044
+ })[];
1045
+ CONSULT_END: ({
1046
+ guard: ({ context, event }: {
1047
+ context: any;
1048
+ event: any;
1049
+ }) => boolean;
1050
+ target: TaskState;
1051
+ actions: string[];
1052
+ } | {
1053
+ actions: string[];
1054
+ guard?: undefined;
1055
+ target?: undefined;
1056
+ })[];
1057
+ HOLD_SUCCESS: ({
1058
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
1059
+ target: TaskState;
1060
+ actions: string[];
1061
+ } | {
1062
+ actions: string[];
1063
+ guard?: undefined;
1064
+ target?: undefined;
1065
+ })[];
1066
+ UNHOLD_SUCCESS: ({
1067
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
1068
+ target: TaskState;
1069
+ actions: string[];
1070
+ } | {
1071
+ actions: string[];
1072
+ guard?: undefined;
1073
+ target?: undefined;
1074
+ })[];
1075
+ CONSULT: {
1076
+ target: TaskState;
1077
+ actions: string[];
1078
+ };
1079
+ CONSULTING_ACTIVE: {
1080
+ target: TaskState;
1081
+ actions: string[];
1082
+ };
1083
+ PARTICIPANT_LEAVE: ({
1084
+ guard: (params: any) => boolean;
1085
+ target: TaskState;
1086
+ actions: string[];
1087
+ } | {
1088
+ actions: string[];
1089
+ guard?: undefined;
1090
+ target?: undefined;
1091
+ })[];
1092
+ TRANSFER_CONFERENCE: {
1093
+ actions: string[];
1094
+ };
1095
+ TRANSFER_CONFERENCE_SUCCESS: {
1096
+ guard: ({ context }: {
1097
+ context: any;
1098
+ }) => boolean;
1099
+ actions: string[];
1100
+ }[];
1101
+ TRANSFER_CONFERENCE_FAILED: {
1102
+ actions: string[];
1103
+ };
1104
+ CONFERENCE_END: ({
1105
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
1106
+ target: TaskState;
1107
+ actions: string[];
1108
+ } | {
1109
+ guard: ({ context, event }: {
1110
+ context: any;
1111
+ event: any;
1112
+ }) => boolean;
1113
+ target: TaskState;
1114
+ actions: string[];
1115
+ } | {
1116
+ target: TaskState;
1117
+ actions: string[];
1118
+ guard?: undefined;
1119
+ })[];
1120
+ CONTACT_ENDED: {
1121
+ actions: string[];
1122
+ }[];
1123
+ };
1124
+ };
1125
+ WRAPPING_UP: {
1126
+ entry: string[];
1127
+ on: {
1128
+ WRAPUP_COMPLETE: {
1129
+ target: TaskState;
1130
+ actions: string[];
1131
+ };
1132
+ };
1133
+ };
1134
+ COMPLETED: {
1135
+ type: "final";
1136
+ entry: string[];
1137
+ };
1138
+ TERMINATED: {
1139
+ type: "final";
1140
+ entry: string[];
1141
+ };
1142
+ };
1143
+ }>;
1144
+ export type TaskStateMachine = ReturnType<typeof createTaskStateMachine>;