@webex/contact-center 3.12.0-next.8 → 3.12.0-task-refactor.1

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 (200) 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 +65 -123
  24. package/dist/cc.js.map +1 -1
  25. package/dist/constants.js +13 -2
  26. package/dist/constants.js.map +1 -1
  27. package/dist/index.js +13 -5
  28. package/dist/index.js.map +1 -1
  29. package/dist/metrics/behavioral-events.js +26 -13
  30. package/dist/metrics/behavioral-events.js.map +1 -1
  31. package/dist/metrics/constants.js +7 -6
  32. package/dist/metrics/constants.js.map +1 -1
  33. package/dist/services/ApiAiAssistant.js +0 -3
  34. package/dist/services/ApiAiAssistant.js.map +1 -1
  35. package/dist/services/config/Util.js +2 -3
  36. package/dist/services/config/Util.js.map +1 -1
  37. package/dist/services/config/types.js +16 -14
  38. package/dist/services/config/types.js.map +1 -1
  39. package/dist/services/constants.js +0 -1
  40. package/dist/services/constants.js.map +1 -1
  41. package/dist/services/core/Err.js.map +1 -1
  42. package/dist/services/core/Utils.js +79 -55
  43. package/dist/services/core/Utils.js.map +1 -1
  44. package/dist/services/core/aqm-reqs.js +17 -92
  45. package/dist/services/core/aqm-reqs.js.map +1 -1
  46. package/dist/services/core/websocket/WebSocketManager.js +5 -25
  47. package/dist/services/core/websocket/WebSocketManager.js.map +1 -1
  48. package/dist/services/core/websocket/types.js.map +1 -1
  49. package/dist/services/index.js +1 -2
  50. package/dist/services/index.js.map +1 -1
  51. package/dist/services/task/Task.js +644 -0
  52. package/dist/services/task/Task.js.map +1 -0
  53. package/dist/services/task/TaskFactory.js +45 -0
  54. package/dist/services/task/TaskFactory.js.map +1 -0
  55. package/dist/services/task/TaskManager.js +556 -532
  56. package/dist/services/task/TaskManager.js.map +1 -1
  57. package/dist/services/task/TaskUtils.js +132 -28
  58. package/dist/services/task/TaskUtils.js.map +1 -1
  59. package/dist/services/task/constants.js +7 -6
  60. package/dist/services/task/constants.js.map +1 -1
  61. package/dist/services/task/dialer.js +0 -51
  62. package/dist/services/task/dialer.js.map +1 -1
  63. package/dist/services/task/digital/Digital.js +77 -0
  64. package/dist/services/task/digital/Digital.js.map +1 -0
  65. package/dist/services/task/state-machine/TaskStateMachine.js +634 -0
  66. package/dist/services/task/state-machine/TaskStateMachine.js.map +1 -0
  67. package/dist/services/task/state-machine/actions.js +366 -0
  68. package/dist/services/task/state-machine/actions.js.map +1 -0
  69. package/dist/services/task/state-machine/constants.js +139 -0
  70. package/dist/services/task/state-machine/constants.js.map +1 -0
  71. package/dist/services/task/state-machine/guards.js +256 -0
  72. package/dist/services/task/state-machine/guards.js.map +1 -0
  73. package/dist/services/task/state-machine/index.js +53 -0
  74. package/dist/services/task/state-machine/index.js.map +1 -0
  75. package/dist/services/task/state-machine/types.js +54 -0
  76. package/dist/services/task/state-machine/types.js.map +1 -0
  77. package/dist/services/task/state-machine/uiControlsComputer.js +369 -0
  78. package/dist/services/task/state-machine/uiControlsComputer.js.map +1 -0
  79. package/dist/services/task/taskDataNormalizer.js +99 -0
  80. package/dist/services/task/taskDataNormalizer.js.map +1 -0
  81. package/dist/services/task/types.js +157 -18
  82. package/dist/services/task/types.js.map +1 -1
  83. package/dist/services/task/voice/Voice.js +1031 -0
  84. package/dist/services/task/voice/Voice.js.map +1 -0
  85. package/dist/services/task/voice/WebRTC.js +149 -0
  86. package/dist/services/task/voice/WebRTC.js.map +1 -0
  87. package/dist/types/cc.d.ts +4 -33
  88. package/dist/types/constants.d.ts +13 -2
  89. package/dist/types/index.d.ts +11 -5
  90. package/dist/types/metrics/constants.d.ts +5 -3
  91. package/dist/types/services/ApiAiAssistant.d.ts +1 -1
  92. package/dist/types/services/config/types.d.ts +97 -25
  93. package/dist/types/services/core/Err.d.ts +0 -2
  94. package/dist/types/services/core/Utils.d.ts +25 -23
  95. package/dist/types/services/core/aqm-reqs.d.ts +0 -49
  96. package/dist/types/services/core/websocket/WebSocketManager.d.ts +1 -1
  97. package/dist/types/services/core/websocket/connection-service.d.ts +0 -1
  98. package/dist/types/services/core/websocket/types.d.ts +1 -1
  99. package/dist/types/services/index.d.ts +1 -1
  100. package/dist/types/services/task/Task.d.ts +146 -0
  101. package/dist/types/services/task/TaskFactory.d.ts +12 -0
  102. package/dist/types/services/task/TaskUtils.d.ts +39 -8
  103. package/dist/types/services/task/constants.d.ts +5 -4
  104. package/dist/types/services/task/dialer.d.ts +0 -15
  105. package/dist/types/services/task/digital/Digital.d.ts +22 -0
  106. package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +906 -0
  107. package/dist/types/services/task/state-machine/actions.d.ts +8 -0
  108. package/dist/types/services/task/state-machine/constants.d.ts +91 -0
  109. package/dist/types/services/task/state-machine/guards.d.ts +78 -0
  110. package/dist/types/services/task/state-machine/index.d.ts +13 -0
  111. package/dist/types/services/task/state-machine/types.d.ts +256 -0
  112. package/dist/types/services/task/state-machine/uiControlsComputer.d.ts +9 -0
  113. package/dist/types/services/task/taskDataNormalizer.d.ts +10 -0
  114. package/dist/types/services/task/types.d.ts +539 -88
  115. package/dist/types/services/task/voice/Voice.d.ts +183 -0
  116. package/dist/types/services/task/voice/WebRTC.d.ts +53 -0
  117. package/dist/types/types.d.ts +68 -0
  118. package/dist/types/webex.d.ts +1 -0
  119. package/dist/types.js +70 -0
  120. package/dist/types.js.map +1 -1
  121. package/dist/webex.js +14 -2
  122. package/dist/webex.js.map +1 -1
  123. package/package.json +14 -11
  124. package/src/cc.ts +91 -177
  125. package/src/constants.ts +13 -2
  126. package/src/index.ts +14 -5
  127. package/src/metrics/ai-docs/AGENTS.md +348 -0
  128. package/src/metrics/ai-docs/ARCHITECTURE.md +336 -0
  129. package/src/metrics/behavioral-events.ts +28 -14
  130. package/src/metrics/constants.ts +7 -8
  131. package/src/services/ApiAiAssistant.ts +2 -4
  132. package/src/services/agent/ai-docs/AGENTS.md +238 -0
  133. package/src/services/agent/ai-docs/ARCHITECTURE.md +302 -0
  134. package/src/services/ai-docs/AGENTS.md +384 -0
  135. package/src/services/config/Util.ts +2 -3
  136. package/src/services/config/ai-docs/AGENTS.md +253 -0
  137. package/src/services/config/ai-docs/ARCHITECTURE.md +424 -0
  138. package/src/services/config/types.ts +108 -20
  139. package/src/services/constants.ts +0 -1
  140. package/src/services/core/Err.ts +0 -1
  141. package/src/services/core/Utils.ts +90 -67
  142. package/src/services/core/ai-docs/AGENTS.md +379 -0
  143. package/src/services/core/ai-docs/ARCHITECTURE.md +696 -0
  144. package/src/services/core/aqm-reqs.ts +22 -100
  145. package/src/services/core/websocket/WebSocketManager.ts +4 -23
  146. package/src/services/core/websocket/types.ts +1 -1
  147. package/src/services/index.ts +1 -2
  148. package/src/services/task/Task.ts +785 -0
  149. package/src/services/task/TaskFactory.ts +55 -0
  150. package/src/services/task/TaskManager.ts +567 -633
  151. package/src/services/task/TaskUtils.ts +175 -31
  152. package/src/services/task/ai-docs/AGENTS.md +448 -0
  153. package/src/services/task/ai-docs/ARCHITECTURE.md +573 -0
  154. package/src/services/task/constants.ts +5 -4
  155. package/src/services/task/dialer.ts +1 -56
  156. package/src/services/task/digital/Digital.ts +95 -0
  157. package/src/services/task/state-machine/TaskStateMachine.ts +793 -0
  158. package/src/services/task/state-machine/actions.ts +409 -0
  159. package/src/services/task/state-machine/ai-docs/AGENTS.md +495 -0
  160. package/src/services/task/state-machine/ai-docs/ARCHITECTURE.md +1135 -0
  161. package/src/services/task/state-machine/constants.ts +150 -0
  162. package/src/services/task/state-machine/guards.ts +295 -0
  163. package/src/services/task/state-machine/index.ts +28 -0
  164. package/src/services/task/state-machine/types.ts +228 -0
  165. package/src/services/task/state-machine/uiControlsComputer.ts +529 -0
  166. package/src/services/task/taskDataNormalizer.ts +137 -0
  167. package/src/services/task/types.ts +641 -95
  168. package/src/services/task/voice/Voice.ts +1255 -0
  169. package/src/services/task/voice/WebRTC.ts +187 -0
  170. package/src/types.ts +88 -5
  171. package/src/utils/AGENTS.md +276 -0
  172. package/src/webex.js +2 -0
  173. package/test/unit/spec/cc.ts +59 -142
  174. package/test/unit/spec/logger-proxy.ts +70 -0
  175. package/test/unit/spec/services/ApiAiAssistant.ts +17 -0
  176. package/test/unit/spec/services/config/index.ts +26 -55
  177. package/test/unit/spec/services/core/Utils.ts +103 -52
  178. package/test/unit/spec/services/core/websocket/WebSocketManager.ts +48 -112
  179. package/test/unit/spec/services/core/websocket/connection-service.ts +5 -4
  180. package/test/unit/spec/services/task/AutoWrapup.ts +63 -0
  181. package/test/unit/spec/services/task/Task.ts +416 -0
  182. package/test/unit/spec/services/task/TaskFactory.ts +62 -0
  183. package/test/unit/spec/services/task/TaskManager.ts +781 -1735
  184. package/test/unit/spec/services/task/TaskUtils.ts +125 -0
  185. package/test/unit/spec/services/task/dialer.ts +112 -198
  186. package/test/unit/spec/services/task/digital/Digital.ts +105 -0
  187. package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +473 -0
  188. package/test/unit/spec/services/task/state-machine/guards.ts +288 -0
  189. package/test/unit/spec/services/task/state-machine/types.ts +18 -0
  190. package/test/unit/spec/services/task/state-machine/uiControlsComputer.ts +147 -0
  191. package/test/unit/spec/services/task/taskTestUtils.ts +87 -0
  192. package/test/unit/spec/services/task/voice/Voice.ts +587 -0
  193. package/test/unit/spec/services/task/voice/WebRTC.ts +242 -0
  194. package/umd/contact-center.min.js +2 -2
  195. package/umd/contact-center.min.js.map +1 -1
  196. package/dist/services/task/index.js +0 -1525
  197. package/dist/services/task/index.js.map +0 -1
  198. package/dist/types/services/task/index.d.ts +0 -650
  199. package/src/services/task/index.ts +0 -1801
  200. package/test/unit/spec/services/task/index.ts +0 -2184
@@ -0,0 +1,906 @@
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
+ };
37
+ states: {
38
+ IDLE: {
39
+ on: {
40
+ HYDRATE: ({
41
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
42
+ target: TaskState;
43
+ actions: string[];
44
+ } | {
45
+ actions: string[];
46
+ guard?: undefined;
47
+ target?: undefined;
48
+ })[];
49
+ TASK_INCOMING: {
50
+ target: TaskState;
51
+ actions: string[];
52
+ };
53
+ CONSULTING_ACTIVE: {
54
+ target: TaskState;
55
+ actions: string[];
56
+ };
57
+ };
58
+ };
59
+ OFFERED: {
60
+ on: {
61
+ TASK_OFFERED: {
62
+ actions: string[];
63
+ };
64
+ ASSIGN: ({
65
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
66
+ target: TaskState;
67
+ actions: string[];
68
+ } | {
69
+ target: TaskState;
70
+ actions: string[];
71
+ guard?: undefined;
72
+ })[];
73
+ RONA: {
74
+ target: TaskState;
75
+ actions: string[];
76
+ };
77
+ TASK_WRAPUP: {
78
+ target: TaskState;
79
+ actions: string[];
80
+ };
81
+ CONTACT_ENDED: {
82
+ target: TaskState;
83
+ actions: string[];
84
+ };
85
+ ASSIGN_FAILED: {
86
+ target: TaskState;
87
+ actions: string[];
88
+ };
89
+ INVITE_FAILED: {
90
+ target: TaskState;
91
+ actions: string[];
92
+ };
93
+ OUTBOUND_FAILED: ({
94
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
95
+ target: TaskState;
96
+ actions: string[];
97
+ } | {
98
+ target: TaskState;
99
+ actions: string[];
100
+ guard?: undefined;
101
+ })[];
102
+ CONSULTING_ACTIVE: {
103
+ target: TaskState;
104
+ actions: string[];
105
+ }[];
106
+ OFFER_CONSULT: {
107
+ actions: string[];
108
+ };
109
+ CONSULT_FAILED: {
110
+ target: TaskState;
111
+ actions: string[];
112
+ };
113
+ CONSULT_END: {
114
+ target: TaskState;
115
+ actions: string[];
116
+ };
117
+ };
118
+ };
119
+ CONNECTED: {
120
+ on: {
121
+ CONSULTING_ACTIVE: {
122
+ target: TaskState;
123
+ actions: string[];
124
+ };
125
+ ASSIGN: {
126
+ target: TaskState;
127
+ actions: string[];
128
+ };
129
+ HOLD_INITIATED: {
130
+ target: TaskState;
131
+ };
132
+ HOLD_SUCCESS: {
133
+ target: TaskState;
134
+ actions: string[];
135
+ };
136
+ CONSULT: {
137
+ target: TaskState;
138
+ actions: string[];
139
+ };
140
+ TRANSFER_SUCCESS: ({
141
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
142
+ target: TaskState;
143
+ actions: string[];
144
+ } | {
145
+ actions: string[];
146
+ guard?: undefined;
147
+ target?: undefined;
148
+ })[];
149
+ TRANSFER_FAILED: {
150
+ actions: string[];
151
+ };
152
+ CONTACT_ENDED: ({
153
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
154
+ target: TaskState;
155
+ actions: string[];
156
+ } | {
157
+ target: TaskState;
158
+ actions: string[];
159
+ guard?: undefined;
160
+ })[];
161
+ TASK_WRAPUP: {
162
+ target: TaskState;
163
+ actions: string[];
164
+ };
165
+ PAUSE_RECORDING: {
166
+ actions: string[];
167
+ };
168
+ RESUME_RECORDING: {
169
+ actions: string[];
170
+ };
171
+ };
172
+ };
173
+ HOLD_INITIATING: {
174
+ on: {
175
+ HOLD_SUCCESS: {
176
+ target: TaskState;
177
+ actions: string[];
178
+ };
179
+ HOLD_FAILED: {
180
+ target: TaskState;
181
+ actions: string[];
182
+ };
183
+ };
184
+ };
185
+ HELD: {
186
+ on: {
187
+ UNHOLD_INITIATED: {
188
+ target: TaskState;
189
+ };
190
+ UNHOLD_SUCCESS: {
191
+ target: TaskState;
192
+ actions: string[];
193
+ };
194
+ CONSULT: {
195
+ target: TaskState;
196
+ actions: string[];
197
+ };
198
+ TRANSFER_SUCCESS: ({
199
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
200
+ target: TaskState;
201
+ actions: string[];
202
+ } | {
203
+ target: TaskState;
204
+ actions: string[];
205
+ guard?: undefined;
206
+ })[];
207
+ TRANSFER_FAILED: {
208
+ actions: string[];
209
+ };
210
+ CONTACT_ENDED: ({
211
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
212
+ target: TaskState;
213
+ actions: string[];
214
+ } | {
215
+ target: TaskState;
216
+ actions: string[];
217
+ guard?: undefined;
218
+ })[];
219
+ TASK_WRAPUP: {
220
+ target: TaskState;
221
+ actions: string[];
222
+ };
223
+ };
224
+ };
225
+ RESUME_INITIATING: {
226
+ on: {
227
+ UNHOLD_SUCCESS: {
228
+ target: TaskState;
229
+ actions: string[];
230
+ };
231
+ UNHOLD_FAILED: {
232
+ target: TaskState;
233
+ };
234
+ };
235
+ };
236
+ CONSULT_INITIATING: {
237
+ on: {
238
+ HOLD_SUCCESS: {
239
+ actions: string[];
240
+ };
241
+ HOLD_FAILED: {
242
+ target: TaskState;
243
+ actions: string[];
244
+ };
245
+ CONSULT_SUCCESS: {
246
+ target: TaskState;
247
+ actions: string[];
248
+ };
249
+ CONSULT_FAILED: ({
250
+ guard: ({ context }: {
251
+ context: any;
252
+ }) => boolean;
253
+ target: TaskState;
254
+ actions: string[];
255
+ } | {
256
+ target: TaskState;
257
+ actions: string[];
258
+ guard?: undefined;
259
+ })[];
260
+ CTQ_CANCEL: ({
261
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
262
+ target: TaskState;
263
+ actions: string[];
264
+ } | {
265
+ target: TaskState;
266
+ actions: string[];
267
+ guard?: undefined;
268
+ })[];
269
+ };
270
+ };
271
+ CONSULTING: {
272
+ on: {
273
+ CONSULTING_ACTIVE: {
274
+ actions: string[];
275
+ };
276
+ CONSULT_END: ({
277
+ guard: ({ context, event }: {
278
+ context: any;
279
+ event: any;
280
+ }) => boolean;
281
+ target: TaskState;
282
+ actions: string[];
283
+ } | {
284
+ target: TaskState;
285
+ actions: string[];
286
+ guard?: undefined;
287
+ })[];
288
+ SWITCH_TO_MAIN_CALL: {
289
+ actions: string[];
290
+ };
291
+ SWITCH_TO_CONSULT: {
292
+ actions: string[];
293
+ };
294
+ HOLD_SUCCESS: {
295
+ actions: string[];
296
+ };
297
+ UNHOLD_SUCCESS: {
298
+ actions: string[];
299
+ };
300
+ TRANSFER_SUCCESS: ({
301
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
302
+ target: TaskState;
303
+ actions: string[];
304
+ } | {
305
+ target: TaskState;
306
+ actions: string[];
307
+ guard?: undefined;
308
+ })[];
309
+ TRANSFER_FAILED: {
310
+ actions: string[];
311
+ };
312
+ TRANSFER_CONFERENCE: {
313
+ actions: string[];
314
+ };
315
+ TRANSFER_CONFERENCE_SUCCESS: ({
316
+ guard: ({ context }: {
317
+ context: any;
318
+ }) => boolean;
319
+ actions: string[];
320
+ target?: undefined;
321
+ } | {
322
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
323
+ target: TaskState;
324
+ actions: string[];
325
+ } | {
326
+ target: TaskState;
327
+ actions: string[];
328
+ guard?: undefined;
329
+ })[];
330
+ TRANSFER_CONFERENCE_FAILED: {
331
+ actions: string[];
332
+ };
333
+ ASSIGN: {
334
+ target: TaskState;
335
+ actions: string[];
336
+ };
337
+ CONTACT_ENDED: {
338
+ target: TaskState;
339
+ actions: string[];
340
+ };
341
+ TASK_WRAPUP: {
342
+ target: TaskState;
343
+ actions: string[];
344
+ };
345
+ MERGE_TO_CONFERENCE: {
346
+ target: TaskState;
347
+ };
348
+ CONFERENCE_START: {
349
+ target: TaskState;
350
+ actions: string[];
351
+ };
352
+ };
353
+ };
354
+ CONF_INITIATING: {
355
+ on: {
356
+ CONFERENCE_START: {
357
+ target: TaskState;
358
+ actions: string[];
359
+ };
360
+ CONFERENCE_FAILED: {
361
+ target: TaskState;
362
+ actions: string[];
363
+ };
364
+ };
365
+ };
366
+ CONFERENCING: {
367
+ on: {
368
+ CONFERENCE_START: {
369
+ actions: string[];
370
+ };
371
+ EXIT_CONFERENCE_SUCCESS: ({
372
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
373
+ target: TaskState;
374
+ actions: string[];
375
+ } | {
376
+ target: TaskState;
377
+ actions: string[];
378
+ guard?: undefined;
379
+ })[];
380
+ CONSULT_END: {
381
+ actions: string[];
382
+ };
383
+ HOLD_SUCCESS: {
384
+ actions: string[];
385
+ };
386
+ UNHOLD_SUCCESS: {
387
+ actions: string[];
388
+ };
389
+ CONSULT: {
390
+ target: TaskState;
391
+ actions: string[];
392
+ };
393
+ PARTICIPANT_LEAVE: ({
394
+ guard: (params: any) => boolean;
395
+ target: TaskState;
396
+ actions: string[];
397
+ } | {
398
+ actions: string[];
399
+ guard?: undefined;
400
+ target?: undefined;
401
+ })[];
402
+ TRANSFER_CONFERENCE: {
403
+ actions: string[];
404
+ };
405
+ TRANSFER_CONFERENCE_SUCCESS: {
406
+ guard: ({ context }: {
407
+ context: any;
408
+ }) => boolean;
409
+ actions: string[];
410
+ }[];
411
+ TRANSFER_CONFERENCE_FAILED: {
412
+ actions: string[];
413
+ };
414
+ CONFERENCE_END: ({
415
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
416
+ target: TaskState;
417
+ actions: string[];
418
+ } | {
419
+ guard: ({ context, event }: {
420
+ context: any;
421
+ event: any;
422
+ }) => boolean;
423
+ target: TaskState;
424
+ actions: string[];
425
+ } | {
426
+ target: TaskState;
427
+ actions: string[];
428
+ guard?: undefined;
429
+ })[];
430
+ CONTACT_ENDED: {
431
+ actions: string[];
432
+ }[];
433
+ };
434
+ };
435
+ WRAPPING_UP: {
436
+ entry: string[];
437
+ on: {
438
+ WRAPUP_COMPLETE: {
439
+ target: TaskState;
440
+ actions: string[];
441
+ };
442
+ };
443
+ };
444
+ COMPLETED: {
445
+ type: "final";
446
+ entry: string[];
447
+ };
448
+ TERMINATED: {
449
+ type: "final";
450
+ entry: string[];
451
+ };
452
+ };
453
+ };
454
+ /**
455
+ * Create a task state machine instance using only the built-in actions.
456
+ * The resulting machine is ready for most consumers that rely on the default
457
+ * context mutators declared in actions.ts.
458
+ *
459
+ * @param uiControlConfig - UI control configuration
460
+ * @returns StateMachine instance for task management
461
+ */
462
+ export declare function createTaskStateMachine(uiControlConfig: UIControlConfig, options?: {
463
+ actions?: Partial<TaskActionsMap>;
464
+ }): import("xstate").StateMachine<TaskContext, TaskEventPayload, Record<string, import("xstate").AnyActorRef>, {
465
+ src: string;
466
+ logic: never;
467
+ id: string;
468
+ }, {
469
+ type: string;
470
+ params: undefined;
471
+ }, 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, {
472
+ id: string;
473
+ initial: TaskState;
474
+ context: TaskContext;
475
+ on: {
476
+ RECORDING_STARTED: {
477
+ actions: string[];
478
+ };
479
+ CONTACT_UPDATED: {
480
+ actions: string[];
481
+ };
482
+ CONTACT_OWNER_CHANGED: {
483
+ actions: string[];
484
+ };
485
+ HYDRATE: {
486
+ actions: string[];
487
+ };
488
+ };
489
+ states: {
490
+ IDLE: {
491
+ on: {
492
+ HYDRATE: ({
493
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
494
+ target: TaskState;
495
+ actions: string[];
496
+ } | {
497
+ actions: string[];
498
+ guard?: undefined;
499
+ target?: undefined;
500
+ })[];
501
+ TASK_INCOMING: {
502
+ target: TaskState;
503
+ actions: string[];
504
+ };
505
+ CONSULTING_ACTIVE: {
506
+ target: TaskState;
507
+ actions: string[];
508
+ };
509
+ };
510
+ };
511
+ OFFERED: {
512
+ on: {
513
+ TASK_OFFERED: {
514
+ actions: string[];
515
+ };
516
+ ASSIGN: ({
517
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
518
+ target: TaskState;
519
+ actions: string[];
520
+ } | {
521
+ target: TaskState;
522
+ actions: string[];
523
+ guard?: undefined;
524
+ })[];
525
+ RONA: {
526
+ target: TaskState;
527
+ actions: string[];
528
+ };
529
+ TASK_WRAPUP: {
530
+ target: TaskState;
531
+ actions: string[];
532
+ };
533
+ CONTACT_ENDED: {
534
+ target: TaskState;
535
+ actions: string[];
536
+ };
537
+ ASSIGN_FAILED: {
538
+ target: TaskState;
539
+ actions: string[];
540
+ };
541
+ INVITE_FAILED: {
542
+ target: TaskState;
543
+ actions: string[];
544
+ };
545
+ OUTBOUND_FAILED: ({
546
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
547
+ target: TaskState;
548
+ actions: string[];
549
+ } | {
550
+ target: TaskState;
551
+ actions: string[];
552
+ guard?: undefined;
553
+ })[];
554
+ CONSULTING_ACTIVE: {
555
+ target: TaskState;
556
+ actions: string[];
557
+ }[];
558
+ OFFER_CONSULT: {
559
+ actions: string[];
560
+ };
561
+ CONSULT_FAILED: {
562
+ target: TaskState;
563
+ actions: string[];
564
+ };
565
+ CONSULT_END: {
566
+ target: TaskState;
567
+ actions: string[];
568
+ };
569
+ };
570
+ };
571
+ CONNECTED: {
572
+ on: {
573
+ CONSULTING_ACTIVE: {
574
+ target: TaskState;
575
+ actions: string[];
576
+ };
577
+ ASSIGN: {
578
+ target: TaskState;
579
+ actions: string[];
580
+ };
581
+ HOLD_INITIATED: {
582
+ target: TaskState;
583
+ };
584
+ HOLD_SUCCESS: {
585
+ target: TaskState;
586
+ actions: string[];
587
+ };
588
+ CONSULT: {
589
+ target: TaskState;
590
+ actions: string[];
591
+ };
592
+ TRANSFER_SUCCESS: ({
593
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
594
+ target: TaskState;
595
+ actions: string[];
596
+ } | {
597
+ actions: string[];
598
+ guard?: undefined;
599
+ target?: undefined;
600
+ })[];
601
+ TRANSFER_FAILED: {
602
+ actions: string[];
603
+ };
604
+ CONTACT_ENDED: ({
605
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
606
+ target: TaskState;
607
+ actions: string[];
608
+ } | {
609
+ target: TaskState;
610
+ actions: string[];
611
+ guard?: undefined;
612
+ })[];
613
+ TASK_WRAPUP: {
614
+ target: TaskState;
615
+ actions: string[];
616
+ };
617
+ PAUSE_RECORDING: {
618
+ actions: string[];
619
+ };
620
+ RESUME_RECORDING: {
621
+ actions: string[];
622
+ };
623
+ };
624
+ };
625
+ HOLD_INITIATING: {
626
+ on: {
627
+ HOLD_SUCCESS: {
628
+ target: TaskState;
629
+ actions: string[];
630
+ };
631
+ HOLD_FAILED: {
632
+ target: TaskState;
633
+ actions: string[];
634
+ };
635
+ };
636
+ };
637
+ HELD: {
638
+ on: {
639
+ UNHOLD_INITIATED: {
640
+ target: TaskState;
641
+ };
642
+ UNHOLD_SUCCESS: {
643
+ target: TaskState;
644
+ actions: string[];
645
+ };
646
+ CONSULT: {
647
+ target: TaskState;
648
+ actions: string[];
649
+ };
650
+ TRANSFER_SUCCESS: ({
651
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
652
+ target: TaskState;
653
+ actions: string[];
654
+ } | {
655
+ target: TaskState;
656
+ actions: string[];
657
+ guard?: undefined;
658
+ })[];
659
+ TRANSFER_FAILED: {
660
+ actions: string[];
661
+ };
662
+ CONTACT_ENDED: ({
663
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
664
+ target: TaskState;
665
+ actions: string[];
666
+ } | {
667
+ target: TaskState;
668
+ actions: string[];
669
+ guard?: undefined;
670
+ })[];
671
+ TASK_WRAPUP: {
672
+ target: TaskState;
673
+ actions: string[];
674
+ };
675
+ };
676
+ };
677
+ RESUME_INITIATING: {
678
+ on: {
679
+ UNHOLD_SUCCESS: {
680
+ target: TaskState;
681
+ actions: string[];
682
+ };
683
+ UNHOLD_FAILED: {
684
+ target: TaskState;
685
+ };
686
+ };
687
+ };
688
+ CONSULT_INITIATING: {
689
+ on: {
690
+ HOLD_SUCCESS: {
691
+ actions: string[];
692
+ };
693
+ HOLD_FAILED: {
694
+ target: TaskState;
695
+ actions: string[];
696
+ };
697
+ CONSULT_SUCCESS: {
698
+ target: TaskState;
699
+ actions: string[];
700
+ };
701
+ CONSULT_FAILED: ({
702
+ guard: ({ context }: {
703
+ context: any;
704
+ }) => boolean;
705
+ target: TaskState;
706
+ actions: string[];
707
+ } | {
708
+ target: TaskState;
709
+ actions: string[];
710
+ guard?: undefined;
711
+ })[];
712
+ CTQ_CANCEL: ({
713
+ guard: ({ event }: import("./guards").GuardParams) => boolean;
714
+ target: TaskState;
715
+ actions: string[];
716
+ } | {
717
+ target: TaskState;
718
+ actions: string[];
719
+ guard?: undefined;
720
+ })[];
721
+ };
722
+ };
723
+ CONSULTING: {
724
+ on: {
725
+ CONSULTING_ACTIVE: {
726
+ actions: string[];
727
+ };
728
+ CONSULT_END: ({
729
+ guard: ({ context, event }: {
730
+ context: any;
731
+ event: any;
732
+ }) => boolean;
733
+ target: TaskState;
734
+ actions: string[];
735
+ } | {
736
+ target: TaskState;
737
+ actions: string[];
738
+ guard?: undefined;
739
+ })[];
740
+ SWITCH_TO_MAIN_CALL: {
741
+ actions: string[];
742
+ };
743
+ SWITCH_TO_CONSULT: {
744
+ actions: string[];
745
+ };
746
+ HOLD_SUCCESS: {
747
+ actions: string[];
748
+ };
749
+ UNHOLD_SUCCESS: {
750
+ actions: string[];
751
+ };
752
+ TRANSFER_SUCCESS: ({
753
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
754
+ target: TaskState;
755
+ actions: string[];
756
+ } | {
757
+ target: TaskState;
758
+ actions: string[];
759
+ guard?: undefined;
760
+ })[];
761
+ TRANSFER_FAILED: {
762
+ actions: string[];
763
+ };
764
+ TRANSFER_CONFERENCE: {
765
+ actions: string[];
766
+ };
767
+ TRANSFER_CONFERENCE_SUCCESS: ({
768
+ guard: ({ context }: {
769
+ context: any;
770
+ }) => boolean;
771
+ actions: string[];
772
+ target?: undefined;
773
+ } | {
774
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
775
+ target: TaskState;
776
+ actions: string[];
777
+ } | {
778
+ target: TaskState;
779
+ actions: string[];
780
+ guard?: undefined;
781
+ })[];
782
+ TRANSFER_CONFERENCE_FAILED: {
783
+ actions: string[];
784
+ };
785
+ ASSIGN: {
786
+ target: TaskState;
787
+ actions: string[];
788
+ };
789
+ CONTACT_ENDED: {
790
+ target: TaskState;
791
+ actions: string[];
792
+ };
793
+ TASK_WRAPUP: {
794
+ target: TaskState;
795
+ actions: string[];
796
+ };
797
+ MERGE_TO_CONFERENCE: {
798
+ target: TaskState;
799
+ };
800
+ CONFERENCE_START: {
801
+ target: TaskState;
802
+ actions: string[];
803
+ };
804
+ };
805
+ };
806
+ CONF_INITIATING: {
807
+ on: {
808
+ CONFERENCE_START: {
809
+ target: TaskState;
810
+ actions: string[];
811
+ };
812
+ CONFERENCE_FAILED: {
813
+ target: TaskState;
814
+ actions: string[];
815
+ };
816
+ };
817
+ };
818
+ CONFERENCING: {
819
+ on: {
820
+ CONFERENCE_START: {
821
+ actions: string[];
822
+ };
823
+ EXIT_CONFERENCE_SUCCESS: ({
824
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
825
+ target: TaskState;
826
+ actions: string[];
827
+ } | {
828
+ target: TaskState;
829
+ actions: string[];
830
+ guard?: undefined;
831
+ })[];
832
+ CONSULT_END: {
833
+ actions: string[];
834
+ };
835
+ HOLD_SUCCESS: {
836
+ actions: string[];
837
+ };
838
+ UNHOLD_SUCCESS: {
839
+ actions: string[];
840
+ };
841
+ CONSULT: {
842
+ target: TaskState;
843
+ actions: string[];
844
+ };
845
+ PARTICIPANT_LEAVE: ({
846
+ guard: (params: any) => boolean;
847
+ target: TaskState;
848
+ actions: string[];
849
+ } | {
850
+ actions: string[];
851
+ guard?: undefined;
852
+ target?: undefined;
853
+ })[];
854
+ TRANSFER_CONFERENCE: {
855
+ actions: string[];
856
+ };
857
+ TRANSFER_CONFERENCE_SUCCESS: {
858
+ guard: ({ context }: {
859
+ context: any;
860
+ }) => boolean;
861
+ actions: string[];
862
+ }[];
863
+ TRANSFER_CONFERENCE_FAILED: {
864
+ actions: string[];
865
+ };
866
+ CONFERENCE_END: ({
867
+ guard: ({ context, event }: import("./guards").GuardParams) => boolean;
868
+ target: TaskState;
869
+ actions: string[];
870
+ } | {
871
+ guard: ({ context, event }: {
872
+ context: any;
873
+ event: any;
874
+ }) => boolean;
875
+ target: TaskState;
876
+ actions: string[];
877
+ } | {
878
+ target: TaskState;
879
+ actions: string[];
880
+ guard?: undefined;
881
+ })[];
882
+ CONTACT_ENDED: {
883
+ actions: string[];
884
+ }[];
885
+ };
886
+ };
887
+ WRAPPING_UP: {
888
+ entry: string[];
889
+ on: {
890
+ WRAPUP_COMPLETE: {
891
+ target: TaskState;
892
+ actions: string[];
893
+ };
894
+ };
895
+ };
896
+ COMPLETED: {
897
+ type: "final";
898
+ entry: string[];
899
+ };
900
+ TERMINATED: {
901
+ type: "final";
902
+ entry: string[];
903
+ };
904
+ };
905
+ }>;
906
+ export type TaskStateMachine = ReturnType<typeof createTaskStateMachine>;