@projectcor/maia-components 2.30.1-0 → 2.30.2-0

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 (85) hide show
  1. package/lib/App.js +4 -2
  2. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +1 -12
  3. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +5 -127
  4. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +29 -2
  5. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +33 -24
  6. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +19 -2
  7. package/lib/components/atoms/MAIAInput/MAIAInput.js +88 -204
  8. package/lib/components/atoms/MAIAInput/styles.js +11 -15
  9. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +116 -0
  10. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +197 -0
  11. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +157 -0
  12. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +123 -0
  13. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.js +115 -0
  14. package/lib/components/atoms/ReasoningBlock/index.js +3 -0
  15. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +54 -0
  16. package/lib/components/atoms/icons/SkillsNavIcon.js +7 -4
  17. package/lib/components/atoms/icons/index.js +1 -5
  18. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +4 -91
  19. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +3 -5
  20. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +391 -120
  21. package/lib/components/molecules/ChatAIMessages/newStyles.js +50 -18
  22. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +12 -49
  23. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +5 -10
  24. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +239 -312
  25. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +104 -128
  26. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +3 -1
  27. package/lib/components/molecules/MessageFeedback/styles.js +6 -2
  28. package/lib/components/molecules/Sidebar/Sidebar.js +4 -5
  29. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +2 -2
  30. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +5 -34
  31. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +1 -8
  32. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +185 -338
  33. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +66 -122
  34. package/lib/constants/config.js +4 -1
  35. package/lib/constants/permissions/utils.js +3 -3
  36. package/lib/context/global-context.js +1 -1
  37. package/lib/dev/DevReasoningTimeline.js +235 -0
  38. package/lib/dev/reasoningTraceMock.js +556 -0
  39. package/lib/hooks/useAgentModel/useCreateAgent.js +14 -61
  40. package/lib/hooks/useAgentModel/useUpdateAgent.js +11 -58
  41. package/lib/hooks/useChatManager/useChatManager.js +97 -59
  42. package/lib/hooks/useChatMessages/useChatMessages.js +28 -27
  43. package/lib/hooks/useContextMentions.js +56 -93
  44. package/lib/hooks/useEntitySearch.js +278 -92
  45. package/lib/hooks/useEvent.js +1 -2
  46. package/lib/hooks/useMentionAllowedTypes.js +25 -9
  47. package/lib/hooks/useMentionPopover.js +33 -9
  48. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
  49. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +4 -3
  50. package/lib/hooks/useProjectSummaryConfig.js +36 -17
  51. package/lib/hooks/useReasoningTrace/index.js +3 -0
  52. package/lib/hooks/useReasoningTrace/reasoningStore.js +142 -0
  53. package/lib/hooks/useReasoningTrace/useReasoningTrace.js +14 -0
  54. package/lib/lang/br/index.js +245 -71
  55. package/lib/lang/en/index.js +245 -71
  56. package/lib/lang/es/index.js +246 -72
  57. package/lib/lang/fr/index.js +245 -71
  58. package/lib/services/maia/Orchestrator/orchestrator.js +9 -7
  59. package/lib/services/maia/Skills/createSkill.js +1 -1
  60. package/lib/services/maia/Skills/getSkills.js +40 -70
  61. package/lib/services/maia/Skills/updateSkill.js +1 -1
  62. package/lib/services/utils/mapChatMessages.js +21 -18
  63. package/lib/store/sessions/sessionStreamManager.js +98 -51
  64. package/lib/store/sessions/sessions.types.js +1 -1
  65. package/lib/types/Chat.js +1 -1
  66. package/lib/types/agentModal.js +1 -1
  67. package/lib/types/reasoning.js +2 -0
  68. package/lib/types/skill.js +1 -1
  69. package/lib/utils/autoApproveStorage.js +26 -0
  70. package/lib/utils/contextMentionTriggers.js +5 -2
  71. package/lib/utils/hitlAnalytics.js +4 -3
  72. package/lib/utils/normalizeAgentConnectors.js +3 -28
  73. package/lib/utils/reasoningMappers.js +62 -0
  74. package/lib/utils/renderContextMentions.js +18 -39
  75. package/lib/utils/streamActivityMessages.js +106 -41
  76. package/package.json +1 -1
  77. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +0 -208
  78. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +0 -77
  79. package/lib/components/atoms/SkillsDropdown/index.js +0 -2
  80. package/lib/components/atoms/icons/PlusIcon.js +0 -29
  81. package/lib/components/atoms/icons/SkillCreatedByIcon.js +0 -20
  82. package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +0 -23
  83. package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +0 -23
  84. package/lib/hooks/useSkillsCatalog.js +0 -66
  85. package/lib/services/maia/Agents/connectors.js +0 -250
@@ -0,0 +1,556 @@
1
+ /**
2
+ * Replay de un turno real (session 9cbff045-c4a2-49ee-a286-3a406184bd6e, 93.9s).
3
+ * Prompt: "buscá todas las tareas del proyecto, filtrá el top 5 por horas, de esas
4
+ * la que esté en proceso y creale una subtarea".
5
+ *
6
+ * Se conservan los casos que rompen el layout: tools en paralelo (4 `get_task`
7
+ * corriendo a la vez), labels repetidos, un handoff que queda corriendo todo el
8
+ * turno (`transfer_to_maia`, i=0), steps que llegan con el `i` desordenado y
9
+ * narraciones con markdown.
10
+ *
11
+ * Los tramos previos al capture (i=0..17) se reconstruyeron desde la traza final:
12
+ * el `text` de cada narración ES el texto que estuvo en el cuerpo del mensaje,
13
+ * porque el back arma `pending_narration = current_turn_text`.
14
+ */
15
+
16
+ var NARRATION_2 = 'Voy a buscar todas las tareas del proyecto para analizarlas.';
17
+ var NARRATION_5 = 'Voy a buscar las horas cargadas por tarea del proyecto **Proyecto avance** ahora mismo.';
18
+ var NARRATION_8 = 'El proyecto tiene solo 4 tareas con horas cargadas, así que tomamos esas 4 como el top. Ahora necesito ver cuáles están **en proceso**. Voy a buscar el detalle de las tareas.';
19
+ var NARRATION_11 = 'Las tareas activas no aparecen, voy a incluir las archivadas para ver el estado de cada una.';
20
+ var NARRATION_16 = 'El listado de tareas aparece vacío desde la vista de proyecto. Voy a consultar directamente cada una de las 4 tareas con horas para ver su estado.';
21
+ var NARRATION_29 = "Pude identificar las tareas con horas cargadas, pero los datos de estado no est\xE1n disponibles desde las consultas de proyecto. Voy a pasarle esta informaci\xF3n al especialista de tareas para que obtenga el estado y cree la subtarea.\n\nAc\xE1 est\xE1 el resumen de lo que encontr\xE9:\n\n**Tareas con horas cargadas en Proyecto avance** (ordenadas de mayor a menor):\n\n| # | Tarea | Horas cargadas |\n|---|-------|---------------|\n| 1 | Armar deck de avance | **3 h** |\n| 2 | tarea de prueba | **2 h** |\n| 3 | okok | **2 h** |\n| 4 | test 1 | **1 h** |\n\n> Solo hay 4 tareas con horas, as\xED que estas son el top. Ahora necesito identificar cu\xE1l est\xE1 **En proceso** para crear la subtarea \"prueba de subtarea\" en ella.";
22
+ var PROJECT_PREVIEW = '==================================================\nDATOS DE PROYECTO\n==================================================\n\nID del proyecto: 823166\nNombre del proyecto: [Proyecto avance](https://dev.cor-';
23
+ export var MOCK_ANSWER = "Lucas, parece que el proyecto **Proyecto avance** no tiene tareas activas registradas en este momento. Es posible que las tareas hayan sido eliminadas o movidas.\n\n\xBFQuer\xE9s que busquemos las tareas en otro proyecto, o prefer\xEDs que creemos la subtarea directamente en una tarea espec\xEDfica que me puedas indicar?";
24
+ export var MOCK_SUMMARY = {
25
+ step_count: 30,
26
+ tool_count: 18,
27
+ duration_ms: 93900,
28
+ truncated: false
29
+ };
30
+ export var MOCK_EVENTS = [
31
+ // ── MAIA (orquestador) ──
32
+ {
33
+ at: 0,
34
+ kind: 'step',
35
+ payload: {
36
+ i: 0,
37
+ type: 'handoff',
38
+ tool: 'transfer_to_maia',
39
+ to: 'MAIA',
40
+ status: 'running'
41
+ }
42
+ }, {
43
+ at: 800,
44
+ kind: 'thinking',
45
+ i: 1,
46
+ text: 'Let me get the hours by task for project 823166.'
47
+ }, {
48
+ at: 1500,
49
+ kind: 'body',
50
+ text: NARRATION_2
51
+ }, {
52
+ at: 3000,
53
+ kind: 'step',
54
+ payload: {
55
+ i: 2,
56
+ type: 'narration',
57
+ text: NARRATION_2
58
+ }
59
+ }, {
60
+ at: 3200,
61
+ kind: 'step',
62
+ payload: {
63
+ i: 3,
64
+ type: 'tool',
65
+ tool: 'get_project_performance_tab_time_by_grouped',
66
+ status: 'running',
67
+ args: {
68
+ grouped_by: 'TASK',
69
+ project_id: '823166'
70
+ }
71
+ }
72
+ }, {
73
+ at: 8000,
74
+ kind: 'step',
75
+ payload: {
76
+ i: 3,
77
+ type: 'tool',
78
+ tool: 'get_project_performance_tab_time_by_grouped',
79
+ status: 'ok',
80
+ result_preview: 'DATOS DE TIEMPO AGRUPADO POR TAREAS\n\nTotal de horas cargadas: 8 horas'
81
+ }
82
+ }, {
83
+ at: 8500,
84
+ kind: 'thinking',
85
+ i: 4,
86
+ text: 'The project has only 4 tasks with loaded hours. So the top 5 are actually all 4. Now I need to find which ones are "en proceso" (in progress).'
87
+ }, {
88
+ at: 9200,
89
+ kind: 'body',
90
+ text: NARRATION_5
91
+ }, {
92
+ at: 11000,
93
+ kind: 'step',
94
+ payload: {
95
+ i: 5,
96
+ type: 'narration',
97
+ text: NARRATION_5
98
+ }
99
+ }, {
100
+ at: 11200,
101
+ kind: 'step',
102
+ payload: {
103
+ i: 6,
104
+ type: 'tool',
105
+ tool: 'get_project_with_tasks_info',
106
+ status: 'running',
107
+ args: {
108
+ project_id: '823166',
109
+ with_tasks: true,
110
+ lang: 'es'
111
+ }
112
+ }
113
+ }, {
114
+ at: 15000,
115
+ kind: 'step',
116
+ payload: {
117
+ i: 6,
118
+ type: 'tool',
119
+ tool: 'get_project_with_tasks_info',
120
+ status: 'ok',
121
+ result_preview: PROJECT_PREVIEW
122
+ }
123
+ }, {
124
+ at: 15500,
125
+ kind: 'thinking',
126
+ i: 7,
127
+ text: 'The tasks appear to be archived. Let me try with include_archived=true.'
128
+ }, {
129
+ at: 16200,
130
+ kind: 'body',
131
+ text: NARRATION_8
132
+ }, {
133
+ at: 18500,
134
+ kind: 'step',
135
+ payload: {
136
+ i: 8,
137
+ type: 'narration',
138
+ text: NARRATION_8
139
+ }
140
+ }, {
141
+ at: 18700,
142
+ kind: 'step',
143
+ payload: {
144
+ i: 9,
145
+ type: 'tool',
146
+ tool: 'get_project_with_tasks_info',
147
+ status: 'running',
148
+ args: {
149
+ project_id: '823166',
150
+ with_tasks: true,
151
+ include_archived: true,
152
+ lang: 'es'
153
+ }
154
+ }
155
+ }, {
156
+ at: 22000,
157
+ kind: 'step',
158
+ payload: {
159
+ i: 9,
160
+ type: 'tool',
161
+ tool: 'get_project_with_tasks_info',
162
+ status: 'ok',
163
+ result_preview: PROJECT_PREVIEW
164
+ }
165
+ }, {
166
+ at: 22500,
167
+ kind: 'thinking',
168
+ i: 10,
169
+ text: "The project shows no tasks despite having loaded hours. This is odd. The performance tab showed 4 tasks with hours. Since I can't get the task statuses, I should check each task individually."
170
+ }, {
171
+ at: 24000,
172
+ kind: 'body',
173
+ text: NARRATION_11
174
+ }, {
175
+ at: 26000,
176
+ kind: 'step',
177
+ payload: {
178
+ i: 11,
179
+ type: 'narration',
180
+ text: NARRATION_11
181
+ }
182
+ }, {
183
+ at: 26200,
184
+ kind: 'step',
185
+ payload: {
186
+ i: 12,
187
+ type: 'tool',
188
+ tool: 'get_project_with_tasks_info',
189
+ status: 'running',
190
+ args: {
191
+ project_id: '823166',
192
+ task_id: '11470294',
193
+ lang: 'es'
194
+ }
195
+ }
196
+ }, {
197
+ at: 29000,
198
+ kind: 'step',
199
+ payload: {
200
+ i: 12,
201
+ type: 'tool',
202
+ tool: 'get_project_with_tasks_info',
203
+ status: 'ok',
204
+ result_preview: PROJECT_PREVIEW
205
+ }
206
+ }, {
207
+ at: 29500,
208
+ kind: 'thinking',
209
+ i: 13,
210
+ text: "The task info isn't returning task details either. Let me try getting all 4 tasks simultaneously."
211
+ }, {
212
+ at: 30000,
213
+ kind: 'step',
214
+ payload: {
215
+ i: 14,
216
+ type: 'tool',
217
+ tool: 'get_project_with_tasks_info',
218
+ status: 'running',
219
+ args: {
220
+ project_id: '823166',
221
+ task_id: '11557666',
222
+ lang: 'es'
223
+ }
224
+ }
225
+ }, {
226
+ at: 33000,
227
+ kind: 'step',
228
+ payload: {
229
+ i: 14,
230
+ type: 'tool',
231
+ tool: 'get_project_with_tasks_info',
232
+ status: 'ok',
233
+ result_preview: PROJECT_PREVIEW
234
+ }
235
+ }, {
236
+ at: 33500,
237
+ kind: 'thinking',
238
+ i: 15,
239
+ text: "The tasks aren't returning details. I have the top 4 tasks sorted by hours, but since I can't determine which are \"en proceso\", it's better to hand this off to the task specialist."
240
+ }, {
241
+ at: 35000,
242
+ kind: 'body',
243
+ text: NARRATION_16
244
+ }, {
245
+ at: 37000,
246
+ kind: 'step',
247
+ payload: {
248
+ i: 16,
249
+ type: 'narration',
250
+ text: NARRATION_16
251
+ }
252
+ }, {
253
+ at: 37200,
254
+ kind: 'step',
255
+ payload: {
256
+ i: 17,
257
+ type: 'tool',
258
+ tool: 'handoff_to_orchestrator',
259
+ status: 'running',
260
+ args: {
261
+ reason: 'Necesito obtener el estado de las tareas con IDs 11557666, 11470294, 11506161 y 11500587 del proyecto 823166.',
262
+ needed: '1) Obtener el estado de las tareas. 2) Identificar cuál está "En proceso". 3) Crear la subtarea.'
263
+ }
264
+ }
265
+ }, {
266
+ at: 41000,
267
+ kind: 'step',
268
+ payload: {
269
+ i: 17,
270
+ type: 'tool',
271
+ tool: 'handoff_to_orchestrator',
272
+ status: 'ok',
273
+ result_preview: '{"__maia_handoff__": true, "reason": "Necesito obtener el estado de las tareas'
274
+ }
275
+ },
276
+ // El handoff de apertura recién cierra acá: estuvo corriendo todo el tramo anterior.
277
+ {
278
+ at: 41100,
279
+ kind: 'step',
280
+ payload: {
281
+ i: 0,
282
+ type: 'handoff',
283
+ tool: 'transfer_to_maia',
284
+ to: 'MAIA',
285
+ status: 'ok'
286
+ }
287
+ },
288
+ // ── Especialista en Tareas ──
289
+ {
290
+ at: 47200,
291
+ kind: 'step',
292
+ payload: {
293
+ i: 18,
294
+ type: 'handoff',
295
+ tool: 'transfer_to_especialista_en_tareas',
296
+ to: 'Especialista en Tareas',
297
+ status: 'running'
298
+ }
299
+ },
300
+ // 4 `get_task` en paralelo: 4 filas corriendo a la vez, todas con el mismo label.
301
+ {
302
+ at: 57500,
303
+ kind: 'step',
304
+ payload: {
305
+ i: 19,
306
+ type: 'tool',
307
+ tool: 'get_task',
308
+ status: 'running',
309
+ args: {
310
+ task_id: '11557666',
311
+ lang: 'es'
312
+ }
313
+ }
314
+ }, {
315
+ at: 57580,
316
+ kind: 'step',
317
+ payload: {
318
+ i: 20,
319
+ type: 'tool',
320
+ tool: 'get_task',
321
+ status: 'running',
322
+ args: {
323
+ task_id: '11470294',
324
+ lang: 'es'
325
+ }
326
+ }
327
+ }, {
328
+ at: 57580,
329
+ kind: 'step',
330
+ payload: {
331
+ i: 21,
332
+ type: 'tool',
333
+ tool: 'get_task',
334
+ status: 'running',
335
+ args: {
336
+ task_id: '11506161',
337
+ lang: 'es'
338
+ }
339
+ }
340
+ }, {
341
+ at: 57580,
342
+ kind: 'step',
343
+ payload: {
344
+ i: 22,
345
+ type: 'tool',
346
+ tool: 'get_task',
347
+ status: 'running',
348
+ args: {
349
+ task_id: '11500587',
350
+ lang: 'es'
351
+ }
352
+ }
353
+ }, {
354
+ at: 58170,
355
+ kind: 'step',
356
+ payload: {
357
+ i: 20,
358
+ type: 'tool',
359
+ tool: 'get_task',
360
+ status: 'ok',
361
+ result_preview: 'COR API error 404'
362
+ }
363
+ }, {
364
+ at: 58700,
365
+ kind: 'step',
366
+ payload: {
367
+ i: 22,
368
+ type: 'tool',
369
+ tool: 'get_task',
370
+ status: 'ok',
371
+ result_preview: 'COR API error 404'
372
+ }
373
+ }, {
374
+ at: 58700,
375
+ kind: 'step',
376
+ payload: {
377
+ i: 21,
378
+ type: 'tool',
379
+ tool: 'get_task',
380
+ status: 'ok',
381
+ result_preview: 'COR API error 404'
382
+ }
383
+ }, {
384
+ at: 58700,
385
+ kind: 'step',
386
+ payload: {
387
+ i: 19,
388
+ type: 'tool',
389
+ tool: 'get_task',
390
+ status: 'ok',
391
+ result_preview: 'COR API error 404'
392
+ }
393
+ }, {
394
+ at: 65400,
395
+ kind: 'step',
396
+ payload: {
397
+ i: 23,
398
+ type: 'tool',
399
+ tool: 'get_task_id_based_on_title',
400
+ status: 'running',
401
+ args: {
402
+ task_title: 'Armar deck de avance',
403
+ project_id: '823166'
404
+ }
405
+ }
406
+ }, {
407
+ at: 65400,
408
+ kind: 'step',
409
+ payload: {
410
+ i: 24,
411
+ type: 'tool',
412
+ tool: 'get_task_id_based_on_title',
413
+ status: 'running',
414
+ args: {
415
+ task_title: 'tarea de prueba',
416
+ project_id: '823166'
417
+ }
418
+ }
419
+ }, {
420
+ at: 65480,
421
+ kind: 'step',
422
+ payload: {
423
+ i: 25,
424
+ type: 'tool',
425
+ tool: 'get_task_id_based_on_title',
426
+ status: 'running',
427
+ args: {
428
+ task_title: 'test 1',
429
+ project_id: '823166'
430
+ }
431
+ }
432
+ }, {
433
+ at: 65480,
434
+ kind: 'step',
435
+ payload: {
436
+ i: 26,
437
+ type: 'tool',
438
+ tool: 'get_task_id_based_on_title',
439
+ status: 'running',
440
+ args: {
441
+ task_title: 'okok',
442
+ project_id: '823166'
443
+ }
444
+ }
445
+ }, {
446
+ at: 66000,
447
+ kind: 'step',
448
+ payload: {
449
+ i: 25,
450
+ type: 'tool',
451
+ tool: 'get_task_id_based_on_title',
452
+ status: 'ok'
453
+ }
454
+ }, {
455
+ at: 66100,
456
+ kind: 'step',
457
+ payload: {
458
+ i: 24,
459
+ type: 'tool',
460
+ tool: 'get_task_id_based_on_title',
461
+ status: 'ok'
462
+ }
463
+ }, {
464
+ at: 66330,
465
+ kind: 'step',
466
+ payload: {
467
+ i: 23,
468
+ type: 'tool',
469
+ tool: 'get_task_id_based_on_title',
470
+ status: 'ok'
471
+ }
472
+ }, {
473
+ at: 66530,
474
+ kind: 'step',
475
+ payload: {
476
+ i: 26,
477
+ type: 'tool',
478
+ tool: 'get_task_id_based_on_title',
479
+ status: 'ok'
480
+ }
481
+ }, {
482
+ at: 70600,
483
+ kind: 'step',
484
+ payload: {
485
+ i: 27,
486
+ type: 'tool',
487
+ tool: 'get_project_with_tasks_info',
488
+ status: 'running',
489
+ args: {
490
+ project_id: '823166',
491
+ with_tasks: true,
492
+ lang: 'es'
493
+ }
494
+ }
495
+ }, {
496
+ at: 71200,
497
+ kind: 'step',
498
+ payload: {
499
+ i: 27,
500
+ type: 'tool',
501
+ tool: 'get_project_with_tasks_info',
502
+ status: 'ok',
503
+ result_preview: PROJECT_PREVIEW
504
+ }
505
+ }, {
506
+ at: 74970,
507
+ kind: 'step',
508
+ payload: {
509
+ i: 28,
510
+ type: 'tool',
511
+ tool: 'get_project_with_tasks_info',
512
+ status: 'running',
513
+ args: {
514
+ project_id: '823166',
515
+ with_tasks: true,
516
+ include_archived: true,
517
+ lang: 'es'
518
+ }
519
+ }
520
+ }, {
521
+ at: 75520,
522
+ kind: 'step',
523
+ payload: {
524
+ i: 28,
525
+ type: 'tool',
526
+ tool: 'get_project_with_tasks_info',
527
+ status: 'ok',
528
+ result_preview: PROJECT_PREVIEW
529
+ }
530
+ }, {
531
+ at: 84150,
532
+ kind: 'step',
533
+ payload: {
534
+ i: 18,
535
+ type: 'handoff',
536
+ tool: 'transfer_to_especialista_en_tareas',
537
+ to: 'Especialista en Tareas',
538
+ status: 'ok'
539
+ }
540
+ }, {
541
+ at: 85590,
542
+ kind: 'step',
543
+ payload: {
544
+ i: 29,
545
+ type: 'narration',
546
+ text: NARRATION_29
547
+ }
548
+ }, {
549
+ at: 85600,
550
+ kind: 'body',
551
+ text: MOCK_ANSWER
552
+ }, {
553
+ at: 89000,
554
+ kind: 'complete'
555
+ }];
556
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOQVJSQVRJT05fMiIsIk5BUlJBVElPTl81IiwiTkFSUkFUSU9OXzgiLCJOQVJSQVRJT05fMTEiLCJOQVJSQVRJT05fMTYiLCJOQVJSQVRJT05fMjkiLCJQUk9KRUNUX1BSRVZJRVciLCJNT0NLX0FOU1dFUiIsIk1PQ0tfU1VNTUFSWSIsInN0ZXBfY291bnQiLCJ0b29sX2NvdW50IiwiZHVyYXRpb25fbXMiLCJ0cnVuY2F0ZWQiLCJNT0NLX0VWRU5UUyIsImF0Iiwia2luZCIsInBheWxvYWQiLCJpIiwidHlwZSIsInRvb2wiLCJ0byIsInN0YXR1cyIsInRleHQiLCJhcmdzIiwiZ3JvdXBlZF9ieSIsInByb2plY3RfaWQiLCJyZXN1bHRfcHJldmlldyIsIndpdGhfdGFza3MiLCJsYW5nIiwiaW5jbHVkZV9hcmNoaXZlZCIsInRhc2tfaWQiLCJyZWFzb24iLCJuZWVkZWQiLCJ0YXNrX3RpdGxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Rldi9yZWFzb25pbmdUcmFjZU1vY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWFzb25pbmdTdGVwUGF5bG9hZCwgUmVhc29uaW5nU3VtbWFyeVBheWxvYWQgfSBmcm9tICcuLi90eXBlcy9yZWFzb25pbmcnXG5cbi8qKlxuICogUmVwbGF5IGRlIHVuIHR1cm5vIHJlYWwgKHNlc3Npb24gOWNiZmYwNDUtYzRhMi00OWVlLWEyODYtM2E0MDYxODRiZDZlLCA5My45cykuXG4gKiBQcm9tcHQ6IFwiYnVzY8OhIHRvZGFzIGxhcyB0YXJlYXMgZGVsIHByb3llY3RvLCBmaWx0csOhIGVsIHRvcCA1IHBvciBob3JhcywgZGUgZXNhc1xuICogbGEgcXVlIGVzdMOpIGVuIHByb2Nlc28geSBjcmVhbGUgdW5hIHN1YnRhcmVhXCIuXG4gKlxuICogU2UgY29uc2VydmFuIGxvcyBjYXNvcyBxdWUgcm9tcGVuIGVsIGxheW91dDogdG9vbHMgZW4gcGFyYWxlbG8gKDQgYGdldF90YXNrYFxuICogY29ycmllbmRvIGEgbGEgdmV6KSwgbGFiZWxzIHJlcGV0aWRvcywgdW4gaGFuZG9mZiBxdWUgcXVlZGEgY29ycmllbmRvIHRvZG8gZWxcbiAqIHR1cm5vIChgdHJhbnNmZXJfdG9fbWFpYWAsIGk9MCksIHN0ZXBzIHF1ZSBsbGVnYW4gY29uIGVsIGBpYCBkZXNvcmRlbmFkbyB5XG4gKiBuYXJyYWNpb25lcyBjb24gbWFya2Rvd24uXG4gKlxuICogTG9zIHRyYW1vcyBwcmV2aW9zIGFsIGNhcHR1cmUgKGk9MC4uMTcpIHNlIHJlY29uc3RydXllcm9uIGRlc2RlIGxhIHRyYXphIGZpbmFsOlxuICogZWwgYHRleHRgIGRlIGNhZGEgbmFycmFjacOzbiBFUyBlbCB0ZXh0byBxdWUgZXN0dXZvIGVuIGVsIGN1ZXJwbyBkZWwgbWVuc2FqZSxcbiAqIHBvcnF1ZSBlbCBiYWNrIGFybWEgYHBlbmRpbmdfbmFycmF0aW9uID0gY3VycmVudF90dXJuX3RleHRgLlxuICovXG5leHBvcnQgdHlwZSBNb2NrRXZlbnQgPVxuICB8IHsgYXQ6IG51bWJlcjsga2luZDogJ3N0ZXAnOyBwYXlsb2FkOiBSZWFzb25pbmdTdGVwUGF5bG9hZCB9XG4gIHwgeyBhdDogbnVtYmVyOyBraW5kOiAndGhpbmtpbmcnOyBpOiBudW1iZXI7IHRleHQ6IHN0cmluZyB9XG4gIC8qKiBUZXh0byBxdWUgc2UgZXNjcmliZSBlbiBlbCBjdWVycG8gZGVsIG1lbnNhamUuIExvIGxpbXBpYSBsYSBwcsOzeGltYSBuYXJyYWNpw7NuLiAqL1xuICB8IHsgYXQ6IG51bWJlcjsga2luZDogJ2JvZHknOyB0ZXh0OiBzdHJpbmcgfVxuICB8IHsgYXQ6IG51bWJlcjsga2luZDogJ2NvbXBsZXRlJyB9XG5cbmNvbnN0IE5BUlJBVElPTl8yID0gJ1ZveSBhIGJ1c2NhciB0b2RhcyBsYXMgdGFyZWFzIGRlbCBwcm95ZWN0byBwYXJhIGFuYWxpemFybGFzLidcbmNvbnN0IE5BUlJBVElPTl81ID0gJ1ZveSBhIGJ1c2NhciBsYXMgaG9yYXMgY2FyZ2FkYXMgcG9yIHRhcmVhIGRlbCBwcm95ZWN0byAqKlByb3llY3RvIGF2YW5jZSoqIGFob3JhIG1pc21vLidcbmNvbnN0IE5BUlJBVElPTl84ID1cbiAgJ0VsIHByb3llY3RvIHRpZW5lIHNvbG8gNCB0YXJlYXMgY29uIGhvcmFzIGNhcmdhZGFzLCBhc8OtIHF1ZSB0b21hbW9zIGVzYXMgNCBjb21vIGVsIHRvcC4gQWhvcmEgbmVjZXNpdG8gdmVyIGN1w6FsZXMgZXN0w6FuICoqZW4gcHJvY2VzbyoqLiBWb3kgYSBidXNjYXIgZWwgZGV0YWxsZSBkZSBsYXMgdGFyZWFzLidcbmNvbnN0IE5BUlJBVElPTl8xMSA9ICdMYXMgdGFyZWFzIGFjdGl2YXMgbm8gYXBhcmVjZW4sIHZveSBhIGluY2x1aXIgbGFzIGFyY2hpdmFkYXMgcGFyYSB2ZXIgZWwgZXN0YWRvIGRlIGNhZGEgdW5hLidcbmNvbnN0IE5BUlJBVElPTl8xNiA9XG4gICdFbCBsaXN0YWRvIGRlIHRhcmVhcyBhcGFyZWNlIHZhY8OtbyBkZXNkZSBsYSB2aXN0YSBkZSBwcm95ZWN0by4gVm95IGEgY29uc3VsdGFyIGRpcmVjdGFtZW50ZSBjYWRhIHVuYSBkZSBsYXMgNCB0YXJlYXMgY29uIGhvcmFzIHBhcmEgdmVyIHN1IGVzdGFkby4nXG5jb25zdCBOQVJSQVRJT05fMjkgPSBgUHVkZSBpZGVudGlmaWNhciBsYXMgdGFyZWFzIGNvbiBob3JhcyBjYXJnYWRhcywgcGVybyBsb3MgZGF0b3MgZGUgZXN0YWRvIG5vIGVzdMOhbiBkaXNwb25pYmxlcyBkZXNkZSBsYXMgY29uc3VsdGFzIGRlIHByb3llY3RvLiBWb3kgYSBwYXNhcmxlIGVzdGEgaW5mb3JtYWNpw7NuIGFsIGVzcGVjaWFsaXN0YSBkZSB0YXJlYXMgcGFyYSBxdWUgb2J0ZW5nYSBlbCBlc3RhZG8geSBjcmVlIGxhIHN1YnRhcmVhLlxuXG5BY8OhIGVzdMOhIGVsIHJlc3VtZW4gZGUgbG8gcXVlIGVuY29udHLDqTpcblxuKipUYXJlYXMgY29uIGhvcmFzIGNhcmdhZGFzIGVuIFByb3llY3RvIGF2YW5jZSoqIChvcmRlbmFkYXMgZGUgbWF5b3IgYSBtZW5vcik6XG5cbnwgIyB8IFRhcmVhIHwgSG9yYXMgY2FyZ2FkYXMgfFxufC0tLXwtLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXxcbnwgMSB8IEFybWFyIGRlY2sgZGUgYXZhbmNlIHwgKiozIGgqKiB8XG58IDIgfCB0YXJlYSBkZSBwcnVlYmEgfCAqKjIgaCoqIHxcbnwgMyB8IG9rb2sgfCAqKjIgaCoqIHxcbnwgNCB8IHRlc3QgMSB8ICoqMSBoKiogfFxuXG4+IFNvbG8gaGF5IDQgdGFyZWFzIGNvbiBob3JhcywgYXPDrSBxdWUgZXN0YXMgc29uIGVsIHRvcC4gQWhvcmEgbmVjZXNpdG8gaWRlbnRpZmljYXIgY3XDoWwgZXN0w6EgKipFbiBwcm9jZXNvKiogcGFyYSBjcmVhciBsYSBzdWJ0YXJlYSBcInBydWViYSBkZSBzdWJ0YXJlYVwiIGVuIGVsbGEuYFxuXG5jb25zdCBQUk9KRUNUX1BSRVZJRVcgPVxuICAnPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cXG5EQVRPUyBERSBQUk9ZRUNUT1xcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XFxuXFxuSUQgZGVsIHByb3llY3RvOiA4MjMxNjZcXG5Ob21icmUgZGVsIHByb3llY3RvOiBbUHJveWVjdG8gYXZhbmNlXShodHRwczovL2Rldi5jb3ItJ1xuXG5leHBvcnQgY29uc3QgTU9DS19BTlNXRVIgPSBgTHVjYXMsIHBhcmVjZSBxdWUgZWwgcHJveWVjdG8gKipQcm95ZWN0byBhdmFuY2UqKiBubyB0aWVuZSB0YXJlYXMgYWN0aXZhcyByZWdpc3RyYWRhcyBlbiBlc3RlIG1vbWVudG8uIEVzIHBvc2libGUgcXVlIGxhcyB0YXJlYXMgaGF5YW4gc2lkbyBlbGltaW5hZGFzIG8gbW92aWRhcy5cblxuwr9RdWVyw6lzIHF1ZSBidXNxdWVtb3MgbGFzIHRhcmVhcyBlbiBvdHJvIHByb3llY3RvLCBvIHByZWZlcsOtcyBxdWUgY3JlZW1vcyBsYSBzdWJ0YXJlYSBkaXJlY3RhbWVudGUgZW4gdW5hIHRhcmVhIGVzcGVjw61maWNhIHF1ZSBtZSBwdWVkYXMgaW5kaWNhcj9gXG5cbmV4cG9ydCBjb25zdCBNT0NLX1NVTU1BUlk6IFJlYXNvbmluZ1N1bW1hcnlQYXlsb2FkID0ge1xuICBzdGVwX2NvdW50OiAzMCxcbiAgdG9vbF9jb3VudDogMTgsXG4gIGR1cmF0aW9uX21zOiA5MzkwMCxcbiAgdHJ1bmNhdGVkOiBmYWxzZSxcbn1cblxuZXhwb3J0IGNvbnN0IE1PQ0tfRVZFTlRTOiBNb2NrRXZlbnRbXSA9IFtcbiAgLy8g4pSA4pSAIE1BSUEgKG9ycXVlc3RhZG9yKSDilIDilIBcbiAgeyBhdDogMCwga2luZDogJ3N0ZXAnLCBwYXlsb2FkOiB7IGk6IDAsIHR5cGU6ICdoYW5kb2ZmJywgdG9vbDogJ3RyYW5zZmVyX3RvX21haWEnLCB0bzogJ01BSUEnLCBzdGF0dXM6ICdydW5uaW5nJyB9IH0sXG4gIHsgYXQ6IDgwMCwga2luZDogJ3RoaW5raW5nJywgaTogMSwgdGV4dDogJ0xldCBtZSBnZXQgdGhlIGhvdXJzIGJ5IHRhc2sgZm9yIHByb2plY3QgODIzMTY2LicgfSxcbiAgeyBhdDogMTUwMCwga2luZDogJ2JvZHknLCB0ZXh0OiBOQVJSQVRJT05fMiB9LFxuICB7IGF0OiAzMDAwLCBraW5kOiAnc3RlcCcsIHBheWxvYWQ6IHsgaTogMiwgdHlwZTogJ25hcnJhdGlvbicsIHRleHQ6IE5BUlJBVElPTl8yIH0gfSxcbiAge1xuICAgIGF0OiAzMjAwLFxuICAgIGtpbmQ6ICdzdGVwJyxcbiAgICBwYXlsb2FkOiB7XG4gICAgICBpOiAzLFxuICAgICAgdHlwZTogJ3Rvb2wnLFxuICAgICAgdG9vbDogJ2dldF9wcm9qZWN0X3BlcmZvcm1hbmNlX3RhYl90aW1lX2J5X2dyb3VwZWQnLFxuICAgICAgc3RhdHVzOiAncnVubmluZycsXG4gICAgICBhcmdzOiB7IGdyb3VwZWRfYnk6ICdUQVNLJywgcHJvamVjdF9pZDogJzgyMzE2NicgfSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXQ6IDgwMDAsXG4gICAga2luZDogJ3N0ZXAnLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIGk6IDMsXG4gICAgICB0eXBlOiAndG9vbCcsXG4gICAgICB0b29sOiAnZ2V0X3Byb2plY3RfcGVyZm9ybWFuY2VfdGFiX3RpbWVfYnlfZ3JvdXBlZCcsXG4gICAgICBzdGF0dXM6ICdvaycsXG4gICAgICByZXN1bHRfcHJldmlldzogJ0RBVE9TIERFIFRJRU1QTyBBR1JVUEFETyBQT1IgVEFSRUFTXFxuXFxuVG90YWwgZGUgaG9yYXMgY2FyZ2FkYXM6IDggaG9yYXMnLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhdDogODUwMCxcbiAgICBraW5kOiAndGhpbmtpbmcnLFxuICAgIGk6IDQsXG4gICAgdGV4dDogJ1RoZSBwcm9qZWN0IGhhcyBvbmx5IDQgdGFza3Mgd2l0aCBsb2FkZWQgaG91cnMuIFNvIHRoZSB0b3AgNSBhcmUgYWN0dWFsbHkgYWxsIDQuIE5vdyBJIG5lZWQgdG8gZmluZCB3aGljaCBvbmVzIGFyZSBcImVuIHByb2Nlc29cIiAoaW4gcHJvZ3Jlc3MpLicsXG4gIH0sXG4gIHsgYXQ6IDkyMDAsIGtpbmQ6ICdib2R5JywgdGV4dDogTkFSUkFUSU9OXzUgfSxcbiAgeyBhdDogMTEwMDAsIGtpbmQ6ICdzdGVwJywgcGF5bG9hZDogeyBpOiA1LCB0eXBlOiAnbmFycmF0aW9uJywgdGV4dDogTkFSUkFUSU9OXzUgfSB9LFxuICB7XG4gICAgYXQ6IDExMjAwLFxuICAgIGtpbmQ6ICdzdGVwJyxcbiAgICBwYXlsb2FkOiB7XG4gICAgICBpOiA2LFxuICAgICAgdHlwZTogJ3Rvb2wnLFxuICAgICAgdG9vbDogJ2dldF9wcm9qZWN0X3dpdGhfdGFza3NfaW5mbycsXG4gICAgICBzdGF0dXM6ICdydW5uaW5nJyxcbiAgICAgIGFyZ3M6IHsgcHJvamVjdF9pZDogJzgyMzE2NicsIHdpdGhfdGFza3M6IHRydWUsIGxhbmc6ICdlcycgfSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXQ6IDE1MDAwLFxuICAgIGtpbmQ6ICdzdGVwJyxcbiAgICBwYXlsb2FkOiB7IGk6IDYsIHR5cGU6ICd0b29sJywgdG9vbDogJ2dldF9wcm9qZWN0X3dpdGhfdGFza3NfaW5mbycsIHN0YXR1czogJ29rJywgcmVzdWx0X3ByZXZpZXc6IFBST0pFQ1RfUFJFVklFVyB9LFxuICB9LFxuICB7XG4gICAgYXQ6IDE1NTAwLFxuICAgIGtpbmQ6ICd0aGlua2luZycsXG4gICAgaTogNyxcbiAgICB0ZXh0OiAnVGhlIHRhc2tzIGFwcGVhciB0byBiZSBhcmNoaXZlZC4gTGV0IG1lIHRyeSB3aXRoIGluY2x1ZGVfYXJjaGl2ZWQ9dHJ1ZS4nLFxuICB9LFxuICB7IGF0OiAxNjIwMCwga2luZDogJ2JvZHknLCB0ZXh0OiBOQVJSQVRJT05fOCB9LFxuICB7IGF0OiAxODUwMCwga2luZDogJ3N0ZXAnLCBwYXlsb2FkOiB7IGk6IDgsIHR5cGU6ICduYXJyYXRpb24nLCB0ZXh0OiBOQVJSQVRJT05fOCB9IH0sXG4gIHtcbiAgICBhdDogMTg3MDAsXG4gICAga2luZDogJ3N0ZXAnLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIGk6IDksXG4gICAgICB0eXBlOiAndG9vbCcsXG4gICAgICB0b29sOiAnZ2V0X3Byb2plY3Rfd2l0aF90YXNrc19pbmZvJyxcbiAgICAgIHN0YXR1czogJ3J1bm5pbmcnLFxuICAgICAgYXJnczogeyBwcm9qZWN0X2lkOiAnODIzMTY2Jywgd2l0aF90YXNrczogdHJ1ZSwgaW5jbHVkZV9hcmNoaXZlZDogdHJ1ZSwgbGFuZzogJ2VzJyB9LFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhdDogMjIwMDAsXG4gICAga2luZDogJ3N0ZXAnLFxuICAgIHBheWxvYWQ6IHsgaTogOSwgdHlwZTogJ3Rvb2wnLCB0b29sOiAnZ2V0X3Byb2plY3Rfd2l0aF90YXNrc19pbmZvJywgc3RhdHVzOiAnb2snLCByZXN1bHRfcHJldmlldzogUFJPSkVDVF9QUkVWSUVXIH0sXG4gIH0sXG4gIHtcbiAgICBhdDogMjI1MDAsXG4gICAga2luZDogJ3RoaW5raW5nJyxcbiAgICBpOiAxMCxcbiAgICB0ZXh0OiBcIlRoZSBwcm9qZWN0IHNob3dzIG5vIHRhc2tzIGRlc3BpdGUgaGF2aW5nIGxvYWRlZCBob3Vycy4gVGhpcyBpcyBvZGQuIFRoZSBwZXJmb3JtYW5jZSB0YWIgc2hvd2VkIDQgdGFza3Mgd2l0aCBob3Vycy4gU2luY2UgSSBjYW4ndCBnZXQgdGhlIHRhc2sgc3RhdHVzZXMsIEkgc2hvdWxkIGNoZWNrIGVhY2ggdGFzayBpbmRpdmlkdWFsbHkuXCIsXG4gIH0sXG4gIHsgYXQ6IDI0MDAwLCBraW5kOiAnYm9keScsIHRleHQ6IE5BUlJBVElPTl8xMSB9LFxuICB7IGF0OiAyNjAwMCwga2luZDogJ3N0ZXAnLCBwYXlsb2FkOiB7IGk6IDExLCB0eXBlOiAnbmFycmF0aW9uJywgdGV4dDogTkFSUkFUSU9OXzExIH0gfSxcbiAge1xuICAgIGF0OiAyNjIwMCxcbiAgICBraW5kOiAnc3RlcCcsXG4gICAgcGF5bG9hZDoge1xuICAgICAgaTogMTIsXG4gICAgICB0eXBlOiAndG9vbCcsXG4gICAgICB0b29sOiAnZ2V0X3Byb2plY3Rfd2l0aF90YXNrc19pbmZvJyxcbiAgICAgIHN0YXR1czogJ3J1bm5pbmcnLFxuICAgICAgYXJnczogeyBwcm9qZWN0X2lkOiAnODIzMTY2JywgdGFza19pZDogJzExNDcwMjk0JywgbGFuZzogJ2VzJyB9LFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhdDogMjkwMDAsXG4gICAga2luZDogJ3N0ZXAnLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIGk6IDEyLFxuICAgICAgdHlwZTogJ3Rvb2wnLFxuICAgICAgdG9vbDogJ2dldF9wcm9qZWN0X3dpdGhfdGFza3NfaW5mbycsXG4gICAgICBzdGF0dXM6ICdvaycsXG4gICAgICByZXN1bHRfcHJldmlldzogUFJPSkVDVF9QUkVWSUVXLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhdDogMjk1MDAsXG4gICAga2luZDogJ3RoaW5raW5nJyxcbiAgICBpOiAxMyxcbiAgICB0ZXh0OiBcIlRoZSB0YXNrIGluZm8gaXNuJ3QgcmV0dXJuaW5nIHRhc2sgZGV0YWlscyBlaXRoZXIuIExldCBtZSB0cnkgZ2V0dGluZyBhbGwgNCB0YXNrcyBzaW11bHRhbmVvdXNseS5cIixcbiAgfSxcbiAge1xuICAgIGF0OiAzMDAwMCxcbiAgICBraW5kOiAnc3RlcCcsXG4gICAgcGF5bG9hZDoge1xuICAgICAgaTogMTQsXG4gICAgICB0eXBlOiAndG9vbCcsXG4gICAgICB0b29sOiAnZ2V0X3Byb2plY3Rfd2l0aF90YXNrc19pbmZvJyxcbiAgICAgIHN0YXR1czogJ3J1bm5pbmcnLFxuICAgICAgYXJnczogeyBwcm9qZWN0X2lkOiAnODIzMTY2JywgdGFza19pZDogJzExNTU3NjY2JywgbGFuZzogJ2VzJyB9LFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhdDogMzMwMDAsXG4gICAga2luZDogJ3N0ZXAnLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIGk6IDE0LFxuICAgICAgdHlwZTogJ3Rvb2wnLFxuICAgICAgdG9vbDogJ2dldF9wcm9qZWN0X3dpdGhfdGFza3NfaW5mbycsXG4gICAgICBzdGF0dXM6ICdvaycsXG4gICAgICByZXN1bHRfcHJldmlldzogUFJPSkVDVF9QUkVWSUVXLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhdDogMzM1MDAsXG4gICAga2luZDogJ3RoaW5raW5nJyxcbiAgICBpOiAxNSxcbiAgICB0ZXh0OiBcIlRoZSB0YXNrcyBhcmVuJ3QgcmV0dXJuaW5nIGRldGFpbHMuIEkgaGF2ZSB0aGUgdG9wIDQgdGFza3Mgc29ydGVkIGJ5IGhvdXJzLCBidXQgc2luY2UgSSBjYW4ndCBkZXRlcm1pbmUgd2hpY2ggYXJlIFxcXCJlbiBwcm9jZXNvXFxcIiwgaXQncyBiZXR0ZXIgdG8gaGFuZCB0aGlzIG9mZiB0byB0aGUgdGFzayBzcGVjaWFsaXN0LlwiLFxuICB9LFxuICB7IGF0OiAzNTAwMCwga2luZDogJ2JvZHknLCB0ZXh0OiBOQVJSQVRJT05fMTYgfSxcbiAgeyBhdDogMzcwMDAsIGtpbmQ6ICdzdGVwJywgcGF5bG9hZDogeyBpOiAxNiwgdHlwZTogJ25hcnJhdGlvbicsIHRleHQ6IE5BUlJBVElPTl8xNiB9IH0sXG4gIHtcbiAgICBhdDogMzcyMDAsXG4gICAga2luZDogJ3N0ZXAnLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIGk6IDE3LFxuICAgICAgdHlwZTogJ3Rvb2wnLFxuICAgICAgdG9vbDogJ2hhbmRvZmZfdG9fb3JjaGVzdHJhdG9yJyxcbiAgICAgIHN0YXR1czogJ3J1bm5pbmcnLFxuICAgICAgYXJnczoge1xuICAgICAgICByZWFzb246XG4gICAgICAgICAgJ05lY2VzaXRvIG9idGVuZXIgZWwgZXN0YWRvIGRlIGxhcyB0YXJlYXMgY29uIElEcyAxMTU1NzY2NiwgMTE0NzAyOTQsIDExNTA2MTYxIHkgMTE1MDA1ODcgZGVsIHByb3llY3RvIDgyMzE2Ni4nLFxuICAgICAgICBuZWVkZWQ6ICcxKSBPYnRlbmVyIGVsIGVzdGFkbyBkZSBsYXMgdGFyZWFzLiAyKSBJZGVudGlmaWNhciBjdcOhbCBlc3TDoSBcIkVuIHByb2Nlc29cIi4gMykgQ3JlYXIgbGEgc3VidGFyZWEuJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGF0OiA0MTAwMCxcbiAgICBraW5kOiAnc3RlcCcsXG4gICAgcGF5bG9hZDoge1xuICAgICAgaTogMTcsXG4gICAgICB0eXBlOiAndG9vbCcsXG4gICAgICB0b29sOiAnaGFuZG9mZl90b19vcmNoZXN0cmF0b3InLFxuICAgICAgc3RhdHVzOiAnb2snLFxuICAgICAgcmVzdWx0X3ByZXZpZXc6ICd7XCJfX21haWFfaGFuZG9mZl9fXCI6IHRydWUsIFwicmVhc29uXCI6IFwiTmVjZXNpdG8gb2J0ZW5lciBlbCBlc3RhZG8gZGUgbGFzIHRhcmVhcycsXG4gICAgfSxcbiAgfSxcbiAgLy8gRWwgaGFuZG9mZiBkZSBhcGVydHVyYSByZWNpw6luIGNpZXJyYSBhY8OhOiBlc3R1dm8gY29ycmllbmRvIHRvZG8gZWwgdHJhbW8gYW50ZXJpb3IuXG4gIHsgYXQ6IDQxMTAwLCBraW5kOiAnc3RlcCcsIHBheWxvYWQ6IHsgaTogMCwgdHlwZTogJ2hhbmRvZmYnLCB0b29sOiAndHJhbnNmZXJfdG9fbWFpYScsIHRvOiAnTUFJQScsIHN0YXR1czogJ29rJyB9IH0sXG5cbiAgLy8g4pSA4pSAIEVzcGVjaWFsaXN0YSBlbiBUYXJlYXMg4pSA4pSAXG4gIHtcbiAgICBhdDogNDcyMDAsXG4gICAga2luZDogJ3N0ZXAnLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIGk6IDE4LFxuICAgICAgdHlwZTogJ2hhbmRvZmYnLFxuICAgICAgdG9vbDogJ3RyYW5zZmVyX3RvX2VzcGVjaWFsaXN0YV9lbl90YXJlYXMnLFxuICAgICAgdG86ICdFc3BlY2lhbGlzdGEgZW4gVGFyZWFzJyxcbiAgICAgIHN0YXR1czogJ3J1bm5pbmcnLFxuICAgIH0sXG4gIH0sXG4gIC8vIDQgYGdldF90YXNrYCBlbiBwYXJhbGVsbzogNCBmaWxhcyBjb3JyaWVuZG8gYSBsYSB2ZXosIHRvZGFzIGNvbiBlbCBtaXNtbyBsYWJlbC5cbiAge1xuICAgIGF0OiA1NzUwMCxcbiAgICBraW5kOiAnc3RlcCcsXG4gICAgcGF5bG9hZDogeyBpOiAxOSwgdHlwZTogJ3Rvb2wnLCB0b29sOiAnZ2V0X3Rhc2snLCBzdGF0dXM6ICdydW5uaW5nJywgYXJnczogeyB0YXNrX2lkOiAnMTE1NTc2NjYnLCBsYW5nOiAnZXMnIH0gfSxcbiAgfSxcbiAge1xuICAgIGF0OiA1NzU4MCxcbiAgICBraW5kOiAnc3RlcCcsXG4gICAgcGF5bG9hZDogeyBpOiAyMCwgdHlwZTogJ3Rvb2wnLCB0b29sOiAnZ2V0X3Rhc2snLCBzdGF0dXM6ICdydW5uaW5nJywgYXJnczogeyB0YXNrX2lkOiAnMTE0NzAyOTQnLCBsYW5nOiAnZXMnIH0gfSxcbiAgfSxcbiAge1xuICAgIGF0OiA1NzU4MCxcbiAgICBraW5kOiAnc3RlcCcsXG4gICAgcGF5bG9hZDogeyBpOiAyMSwgdHlwZTogJ3Rvb2wnLCB0b29sOiAnZ2V0X3Rhc2snLCBzdGF0dXM6ICdydW5uaW5nJywgYXJnczogeyB0YXNrX2lkOiAnMTE1MDYxNjEnLCBsYW5nOiAnZXMnIH0gfSxcbiAgfSxcbiAge1xuICAgIGF0OiA1NzU4MCxcbiAgICBraW5kOiAnc3RlcCcsXG4gICAgcGF5bG9hZDogeyBpOiAyMiwgdHlwZTogJ3Rvb2wnLCB0b29sOiAnZ2V0X3Rhc2snLCBzdGF0dXM6ICdydW5uaW5nJywgYXJnczogeyB0YXNrX2lkOiAnMTE1MDA1ODcnLCBsYW5nOiAnZXMnIH0gfSxcbiAgfSxcbiAge1xuICAgIGF0OiA1ODE3MCxcbiAgICBraW5kOiAnc3RlcCcsXG4gICAgcGF5bG9hZDogeyBpOiAyMCwgdHlwZTogJ3Rvb2wnLCB0b29sOiAnZ2V0X3Rhc2snLCBzdGF0dXM6ICdvaycsIHJlc3VsdF9wcmV2aWV3OiAnQ09SIEFQSSBlcnJvciA0MDQnIH0sXG4gIH0sXG4gIHtcbiAgICBhdDogNTg3MDAsXG4gICAga2luZDogJ3N0ZXAnLFxuICAgIHBheWxvYWQ6IHsgaTogMjIsIHR5cGU6ICd0b29sJywgdG9vbDogJ2dldF90YXNrJywgc3RhdHVzOiAnb2snLCByZXN1bHRfcHJldmlldzogJ0NPUiBBUEkgZXJyb3IgNDA0JyB9LFxuICB9LFxuICB7XG4gICAgYXQ6IDU4NzAwLFxuICAgIGtpbmQ6ICdzdGVwJyxcbiAgICBwYXlsb2FkOiB7IGk6IDIxLCB0eXBlOiAndG9vbCcsIHRvb2w6ICdnZXRfdGFzaycsIHN0YXR1czogJ29rJywgcmVzdWx0X3ByZXZpZXc6ICdDT1IgQVBJIGVycm9yIDQwNCcgfSxcbiAgfSxcbiAge1xuICAgIGF0OiA1ODcwMCxcbiAgICBraW5kOiAnc3RlcCcsXG4gICAgcGF5bG9hZDogeyBpOiAxOSwgdHlwZTogJ3Rvb2wnLCB0b29sOiAnZ2V0X3Rhc2snLCBzdGF0dXM6ICdvaycsIHJlc3VsdF9wcmV2aWV3OiAnQ09SIEFQSSBlcnJvciA0MDQnIH0sXG4gIH0sXG4gIHtcbiAgICBhdDogNjU0MDAsXG4gICAga2luZDogJ3N0ZXAnLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIGk6IDIzLFxuICAgICAgdHlwZTogJ3Rvb2wnLFxuICAgICAgdG9vbDogJ2dldF90YXNrX2lkX2Jhc2VkX29uX3RpdGxlJyxcbiAgICAgIHN0YXR1czogJ3J1bm5pbmcnLFxuICAgICAgYXJnczogeyB0YXNrX3RpdGxlOiAnQXJtYXIgZGVjayBkZSBhdmFuY2UnLCBwcm9qZWN0X2lkOiAnODIzMTY2JyB9LFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhdDogNjU0MDAsXG4gICAga2luZDogJ3N0ZXAnLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIGk6IDI0LFxuICAgICAgdHlwZTogJ3Rvb2wnLFxuICAgICAgdG9vbDogJ2dldF90YXNrX2lkX2Jhc2VkX29uX3RpdGxlJyxcbiAgICAgIHN0YXR1czogJ3J1bm5pbmcnLFxuICAgICAgYXJnczogeyB0YXNrX3RpdGxlOiAndGFyZWEgZGUgcHJ1ZWJhJywgcHJvamVjdF9pZDogJzgyMzE2NicgfSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXQ6IDY1NDgwLFxuICAgIGtpbmQ6ICdzdGVwJyxcbiAgICBwYXlsb2FkOiB7XG4gICAgICBpOiAyNSxcbiAgICAgIHR5cGU6ICd0b29sJyxcbiAgICAgIHRvb2w6ICdnZXRfdGFza19pZF9iYXNlZF9vbl90aXRsZScsXG4gICAgICBzdGF0dXM6ICdydW5uaW5nJyxcbiAgICAgIGFyZ3M6IHsgdGFza190aXRsZTogJ3Rlc3QgMScsIHByb2plY3RfaWQ6ICc4MjMxNjYnIH0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGF0OiA2NTQ4MCxcbiAgICBraW5kOiAnc3RlcCcsXG4gICAgcGF5bG9hZDoge1xuICAgICAgaTogMjYsXG4gICAgICB0eXBlOiAndG9vbCcsXG4gICAgICB0b29sOiAnZ2V0X3Rhc2tfaWRfYmFzZWRfb25fdGl0bGUnLFxuICAgICAgc3RhdHVzOiAncnVubmluZycsXG4gICAgICBhcmdzOiB7IHRhc2tfdGl0bGU6ICdva29rJywgcHJvamVjdF9pZDogJzgyMzE2NicgfSxcbiAgICB9LFxuICB9LFxuICB7IGF0OiA2NjAwMCwga2luZDogJ3N0ZXAnLCBwYXlsb2FkOiB7IGk6IDI1LCB0eXBlOiAndG9vbCcsIHRvb2w6ICdnZXRfdGFza19pZF9iYXNlZF9vbl90aXRsZScsIHN0YXR1czogJ29rJyB9IH0sXG4gIHsgYXQ6IDY2MTAwLCBraW5kOiAnc3RlcCcsIHBheWxvYWQ6IHsgaTogMjQsIHR5cGU6ICd0b29sJywgdG9vbDogJ2dldF90YXNrX2lkX2Jhc2VkX29uX3RpdGxlJywgc3RhdHVzOiAnb2snIH0gfSxcbiAgeyBhdDogNjYzMzAsIGtpbmQ6ICdzdGVwJywgcGF5bG9hZDogeyBpOiAyMywgdHlwZTogJ3Rvb2wnLCB0b29sOiAnZ2V0X3Rhc2tfaWRfYmFzZWRfb25fdGl0bGUnLCBzdGF0dXM6ICdvaycgfSB9LFxuICB7IGF0OiA2NjUzMCwga2luZDogJ3N0ZXAnLCBwYXlsb2FkOiB7IGk6IDI2LCB0eXBlOiAndG9vbCcsIHRvb2w6ICdnZXRfdGFza19pZF9iYXNlZF9vbl90aXRsZScsIHN0YXR1czogJ29rJyB9IH0sXG4gIHtcbiAgICBhdDogNzA2MDAsXG4gICAga2luZDogJ3N0ZXAnLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIGk6IDI3LFxuICAgICAgdHlwZTogJ3Rvb2wnLFxuICAgICAgdG9vbDogJ2dldF9wcm9qZWN0X3dpdGhfdGFza3NfaW5mbycsXG4gICAgICBzdGF0dXM6ICdydW5uaW5nJyxcbiAgICAgIGFyZ3M6IHsgcHJvamVjdF9pZDogJzgyMzE2NicsIHdpdGhfdGFza3M6IHRydWUsIGxhbmc6ICdlcycgfSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXQ6IDcxMjAwLFxuICAgIGtpbmQ6ICdzdGVwJyxcbiAgICBwYXlsb2FkOiB7XG4gICAgICBpOiAyNyxcbiAgICAgIHR5cGU6ICd0b29sJyxcbiAgICAgIHRvb2w6ICdnZXRfcHJvamVjdF93aXRoX3Rhc2tzX2luZm8nLFxuICAgICAgc3RhdHVzOiAnb2snLFxuICAgICAgcmVzdWx0X3ByZXZpZXc6IFBST0pFQ1RfUFJFVklFVyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXQ6IDc0OTcwLFxuICAgIGtpbmQ6ICdzdGVwJyxcbiAgICBwYXlsb2FkOiB7XG4gICAgICBpOiAyOCxcbiAgICAgIHR5cGU6ICd0b29sJyxcbiAgICAgIHRvb2w6ICdnZXRfcHJvamVjdF93aXRoX3Rhc2tzX2luZm8nLFxuICAgICAgc3RhdHVzOiAncnVubmluZycsXG4gICAgICBhcmdzOiB7IHByb2plY3RfaWQ6ICc4MjMxNjYnLCB3aXRoX3Rhc2tzOiB0cnVlLCBpbmNsdWRlX2FyY2hpdmVkOiB0cnVlLCBsYW5nOiAnZXMnIH0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGF0OiA3NTUyMCxcbiAgICBraW5kOiAnc3RlcCcsXG4gICAgcGF5bG9hZDoge1xuICAgICAgaTogMjgsXG4gICAgICB0eXBlOiAndG9vbCcsXG4gICAgICB0b29sOiAnZ2V0X3Byb2plY3Rfd2l0aF90YXNrc19pbmZvJyxcbiAgICAgIHN0YXR1czogJ29rJyxcbiAgICAgIHJlc3VsdF9wcmV2aWV3OiBQUk9KRUNUX1BSRVZJRVcsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGF0OiA4NDE1MCxcbiAgICBraW5kOiAnc3RlcCcsXG4gICAgcGF5bG9hZDoge1xuICAgICAgaTogMTgsXG4gICAgICB0eXBlOiAnaGFuZG9mZicsXG4gICAgICB0b29sOiAndHJhbnNmZXJfdG9fZXNwZWNpYWxpc3RhX2VuX3RhcmVhcycsXG4gICAgICB0bzogJ0VzcGVjaWFsaXN0YSBlbiBUYXJlYXMnLFxuICAgICAgc3RhdHVzOiAnb2snLFxuICAgIH0sXG4gIH0sXG4gIHsgYXQ6IDg1NTkwLCBraW5kOiAnc3RlcCcsIHBheWxvYWQ6IHsgaTogMjksIHR5cGU6ICduYXJyYXRpb24nLCB0ZXh0OiBOQVJSQVRJT05fMjkgfSB9LFxuICB7IGF0OiA4NTYwMCwga2luZDogJ2JvZHknLCB0ZXh0OiBNT0NLX0FOU1dFUiB9LFxuICB7IGF0OiA4OTAwMCwg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