@projectcor/maia-components 2.11.100-2 → 2.11.100-3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/App.js +2 -4
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +14 -212
- package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +9 -99
- package/lib/components/atoms/Chip/Chip.js +12 -5
- package/lib/components/atoms/Chip/styles.js +6 -6
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +121 -28
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +6 -2
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +12 -5
- package/lib/components/atoms/MAIAInput/MAIAInput.js +390 -270
- package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +5 -8
- package/lib/components/atoms/MAIAInput/maiaInputLayout.js +25 -0
- package/lib/components/atoms/MAIAInput/styles.js +102 -86
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +54 -41
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +25 -12
- package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
- package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
- package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
- package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
- package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
- package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
- package/lib/components/atoms/icons/index.js +10 -1
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +4 -91
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +18 -7
- package/lib/components/molecules/ChatAIHome/styles.js +54 -38
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +44 -191
- package/lib/components/molecules/ChatAIMessages/newStyles.js +10 -26
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +1 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +1 -4
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +1 -8
- package/lib/components/molecules/ChatFooter/ChatFooter.js +23 -62
- package/lib/components/molecules/Sidebar/Sidebar.js +14 -3
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +5 -34
- package/lib/hooks/useAgentModel/useCreateAgent.js +14 -40
- package/lib/hooks/useAgentModel/useUpdateAgent.js +11 -37
- package/lib/hooks/useChatManager/useChatManager.js +46 -145
- package/lib/hooks/useEvent.js +1 -2
- package/lib/hooks/useMentionPopover.js +4 -2
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +23 -180
- package/lib/lang/br/index.js +7 -16
- package/lib/lang/en/index.js +7 -16
- package/lib/lang/es/index.js +7 -16
- package/lib/lang/fr/index.js +9 -15
- package/lib/styles/config.js +2 -2
- package/lib/types/agentModal.js +1 -1
- package/lib/types/streamActivity.js +1 -1
- package/lib/utils/normalizeAgentConnectors.js +3 -28
- package/package.json +1 -1
- package/lib/components/molecules/StreamAssistantTurnTimeline/StreamAssistantTurnTimeline.js +0 -90
- package/lib/components/molecules/StreamAssistantTurnTimeline/StreamAssistantTurnTimeline.styles.js +0 -19
- package/lib/components/molecules/StreamAssistantTurnTimeline/index.js +0 -2
- package/lib/dev/DevStreamTimelineDemo.js +0 -614
- package/lib/dev/mockStreamTimelineDemo.js +0 -417
- package/lib/dev/mockStreamTimelineRunner.js +0 -298
- package/lib/hooks/useStreamTimeline/index.js +0 -7
- package/lib/hooks/useStreamTimeline/streamTimelineStore.js +0 -37
- package/lib/services/maia/Agents/connectors.js +0 -124
- package/lib/types/streamTimeline.js +0 -2
- package/lib/utils/streamDebugLog.js +0 -169
- package/lib/utils/streamExecutionSteps.js +0 -96
- package/lib/utils/streamTimeline.js +0 -161
|
@@ -1,417 +0,0 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
-
export var DEMO_TURN_ID = 'demo-stream-timeline-turn';
|
|
6
|
-
export var MOCK_THREAD_ID = 'thread-demo-hitl-1';
|
|
7
|
-
export var MOCK_THREAD_ID_SECOND = 'thread-demo-hitl-2';
|
|
8
|
-
export var MOCK_CHECKPOINT_ID = 'checkpoint-demo-hitl';
|
|
9
|
-
export var MOCK_SESSION_ID = 'session-demo-hitl';
|
|
10
|
-
export var MOCK_CREATE_TASK_APPROVAL = {
|
|
11
|
-
type: 'approval_required',
|
|
12
|
-
pending_actions: [{
|
|
13
|
-
tool_name: 'create_task',
|
|
14
|
-
tool_call_id: 'call_demo_create_task',
|
|
15
|
-
tool_args: {
|
|
16
|
-
title: 'Demo',
|
|
17
|
-
project_id: 1234
|
|
18
|
-
},
|
|
19
|
-
thread_id: MOCK_THREAD_ID
|
|
20
|
-
}],
|
|
21
|
-
total_actions: 1,
|
|
22
|
-
original_thread_id: MOCK_CHECKPOINT_ID,
|
|
23
|
-
session_id: MOCK_SESSION_ID,
|
|
24
|
-
metadata: {
|
|
25
|
-
project_id: '1234',
|
|
26
|
-
lang: 'es'
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
export var MOCK_TASK_ASSIGN_APPROVAL = {
|
|
30
|
-
type: 'approval_required',
|
|
31
|
-
pending_actions: [{
|
|
32
|
-
tool_name: 'task_assign',
|
|
33
|
-
tool_call_id: 'call_demo_task_assign',
|
|
34
|
-
tool_args: {
|
|
35
|
-
task_id: 640429,
|
|
36
|
-
user_id: 99
|
|
37
|
-
},
|
|
38
|
-
thread_id: MOCK_THREAD_ID_SECOND
|
|
39
|
-
}],
|
|
40
|
-
total_actions: 1,
|
|
41
|
-
original_thread_id: MOCK_CHECKPOINT_ID,
|
|
42
|
-
session_id: MOCK_SESSION_ID,
|
|
43
|
-
metadata: {
|
|
44
|
-
project_id: '1234',
|
|
45
|
-
lang: 'es'
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
export var MOCK_CONTENT_PART_1 = 'Encontré la tarea **#640429 Demo** en el proyecto *Demo Project*. El estado actual es *En proceso*.';
|
|
49
|
-
export var MOCK_CONTENT_PART_2 = '\n\nLa asigné a **Juan Pérez**. ¿Querés que le envíe un mensaje en la tarea?';
|
|
50
|
-
export var MOCK_HITL_PROPOSAL = 'Voy a crear la tarea **Demo** en el proyecto *Demo Project* con prioridad media. ¿Confirmás la acción?';
|
|
51
|
-
export var MOCK_HITL_RESUME_TOKENS = 'Listo, creé la tarea **[Demo](/tasks/640429/detail)**. Podés editarla desde el tablero del proyecto.';
|
|
52
|
-
export var MOCK_HITL_CONTENT_BLOB = 'Listo, creé la tarea **[Demo](/tasks/640429/detail)** con la configuración solicitada. Ya está visible en el tablero del proyecto.';
|
|
53
|
-
export var MOCK_HITL_CHAINED_PARTIAL = 'Creé la tarea. Ahora voy a asignarla a Juan…';
|
|
54
|
-
export var MOCK_FINAL_NORMAL = "".concat(MOCK_CONTENT_PART_1).concat(MOCK_CONTENT_PART_2);
|
|
55
|
-
var RESUME_CONTINUE_EVENTS = [{
|
|
56
|
-
kind: 'wait',
|
|
57
|
-
ms: 400,
|
|
58
|
-
label: 'POST continue-thread'
|
|
59
|
-
}, {
|
|
60
|
-
kind: 'node',
|
|
61
|
-
label: 'node · resuming (genérico backend)',
|
|
62
|
-
payload: {
|
|
63
|
-
node: 'resuming',
|
|
64
|
-
message: 'Ejecutando acción aprobada…',
|
|
65
|
-
thread_id: MOCK_THREAD_ID
|
|
66
|
-
}
|
|
67
|
-
}, {
|
|
68
|
-
kind: 'wait',
|
|
69
|
-
ms: 700,
|
|
70
|
-
label: 'Tool arrancando'
|
|
71
|
-
}, {
|
|
72
|
-
kind: 'node',
|
|
73
|
-
label: 'node · create_task',
|
|
74
|
-
payload: {
|
|
75
|
-
node: 'create_task',
|
|
76
|
-
tool_name: 'create_task',
|
|
77
|
-
message: "Creando tarea 'Demo'…",
|
|
78
|
-
thread_id: MOCK_THREAD_ID
|
|
79
|
-
}
|
|
80
|
-
}, {
|
|
81
|
-
kind: 'writing',
|
|
82
|
-
label: 'writing_started'
|
|
83
|
-
}, {
|
|
84
|
-
kind: 'tokens',
|
|
85
|
-
label: 'token · respuesta final',
|
|
86
|
-
text: MOCK_HITL_RESUME_TOKENS,
|
|
87
|
-
charDelayMs: 14
|
|
88
|
-
}, {
|
|
89
|
-
kind: 'wait',
|
|
90
|
-
ms: 400,
|
|
91
|
-
label: 'Cerrando stream'
|
|
92
|
-
}, {
|
|
93
|
-
kind: 'complete',
|
|
94
|
-
label: 'complete'
|
|
95
|
-
}];
|
|
96
|
-
var RESUME_CONTENT_BLOB_EVENTS = [{
|
|
97
|
-
kind: 'wait',
|
|
98
|
-
ms: 400,
|
|
99
|
-
label: 'POST continue-thread'
|
|
100
|
-
}, {
|
|
101
|
-
kind: 'node',
|
|
102
|
-
label: 'node · resuming',
|
|
103
|
-
payload: {
|
|
104
|
-
node: 'resuming',
|
|
105
|
-
message: 'Executing approved action…',
|
|
106
|
-
thread_id: MOCK_THREAD_ID
|
|
107
|
-
}
|
|
108
|
-
}, {
|
|
109
|
-
kind: 'node',
|
|
110
|
-
label: 'node · create_task (nombre crudo backend)',
|
|
111
|
-
payload: {
|
|
112
|
-
node: 'create_task',
|
|
113
|
-
tool_name: 'create_task',
|
|
114
|
-
message: 'create_task',
|
|
115
|
-
thread_id: MOCK_THREAD_ID
|
|
116
|
-
}
|
|
117
|
-
}, {
|
|
118
|
-
kind: 'writing',
|
|
119
|
-
label: 'writing_started'
|
|
120
|
-
}, {
|
|
121
|
-
kind: 'content',
|
|
122
|
-
label: 'content · texto completo de una',
|
|
123
|
-
text: MOCK_HITL_CONTENT_BLOB
|
|
124
|
-
}, {
|
|
125
|
-
kind: 'complete',
|
|
126
|
-
label: 'complete'
|
|
127
|
-
}];
|
|
128
|
-
var MANUAL_STREAM_TAIL = [{
|
|
129
|
-
kind: 'wait',
|
|
130
|
-
ms: 300,
|
|
131
|
-
label: 'Stream sigue (manual_approval_detected)'
|
|
132
|
-
}, {
|
|
133
|
-
kind: 'node',
|
|
134
|
-
label: 'node · resuming',
|
|
135
|
-
payload: {
|
|
136
|
-
node: 'resuming',
|
|
137
|
-
message: 'Ejecutando acción aprobada…',
|
|
138
|
-
thread_id: MOCK_THREAD_ID
|
|
139
|
-
}
|
|
140
|
-
}, {
|
|
141
|
-
kind: 'node',
|
|
142
|
-
label: 'node · create_task',
|
|
143
|
-
payload: {
|
|
144
|
-
node: 'create_task',
|
|
145
|
-
tool_name: 'create_task',
|
|
146
|
-
message: "Creando tarea 'Demo'…",
|
|
147
|
-
thread_id: MOCK_THREAD_ID
|
|
148
|
-
}
|
|
149
|
-
}, {
|
|
150
|
-
kind: 'writing',
|
|
151
|
-
label: 'writing_started'
|
|
152
|
-
}, {
|
|
153
|
-
kind: 'content',
|
|
154
|
-
label: 'content · blob final (sin tokens)',
|
|
155
|
-
text: MOCK_HITL_CONTENT_BLOB
|
|
156
|
-
}, {
|
|
157
|
-
kind: 'complete',
|
|
158
|
-
label: 'complete'
|
|
159
|
-
}];
|
|
160
|
-
export var MOCK_SCENARIOS = [{
|
|
161
|
-
id: 'normal',
|
|
162
|
-
title: 'Flujo normal',
|
|
163
|
-
description: 'Tools en vivo + tokens intercalados (sin HITL).',
|
|
164
|
-
userQuestion: '¿Podés buscar la tarea Demo y asignarla a Juan?',
|
|
165
|
-
finalAnswer: MOCK_FINAL_NORMAL,
|
|
166
|
-
streamEvents: [{
|
|
167
|
-
kind: 'wait',
|
|
168
|
-
ms: 400,
|
|
169
|
-
label: 'SSE conectado'
|
|
170
|
-
}, {
|
|
171
|
-
kind: 'thinking',
|
|
172
|
-
label: 'thinking'
|
|
173
|
-
}, {
|
|
174
|
-
kind: 'wait',
|
|
175
|
-
ms: 900,
|
|
176
|
-
label: 'Agente analizando'
|
|
177
|
-
}, {
|
|
178
|
-
kind: 'node',
|
|
179
|
-
label: 'node · get_task',
|
|
180
|
-
payload: {
|
|
181
|
-
node: 'get_task',
|
|
182
|
-
tool_name: 'get_task',
|
|
183
|
-
message: 'Buscando la tarea en el proyecto…'
|
|
184
|
-
}
|
|
185
|
-
}, {
|
|
186
|
-
kind: 'wait',
|
|
187
|
-
ms: 600,
|
|
188
|
-
label: 'Tool en ejecución'
|
|
189
|
-
}, {
|
|
190
|
-
kind: 'node',
|
|
191
|
-
label: 'node · get_task (ok)',
|
|
192
|
-
payload: {
|
|
193
|
-
node: 'get_task',
|
|
194
|
-
tool_name: 'get_task',
|
|
195
|
-
message: 'Tarea encontrada'
|
|
196
|
-
}
|
|
197
|
-
}, {
|
|
198
|
-
kind: 'writing',
|
|
199
|
-
label: 'writing_started'
|
|
200
|
-
}, {
|
|
201
|
-
kind: 'tokens',
|
|
202
|
-
label: 'token · parte 1',
|
|
203
|
-
text: MOCK_CONTENT_PART_1,
|
|
204
|
-
charDelayMs: 16
|
|
205
|
-
}, {
|
|
206
|
-
kind: 'wait',
|
|
207
|
-
ms: 350,
|
|
208
|
-
label: 'Pausa'
|
|
209
|
-
}, {
|
|
210
|
-
kind: 'node',
|
|
211
|
-
label: 'node · task_assign',
|
|
212
|
-
payload: {
|
|
213
|
-
node: 'task_assign',
|
|
214
|
-
tool_name: 'task_assign',
|
|
215
|
-
message: 'Asignando usuario a la tarea…'
|
|
216
|
-
}
|
|
217
|
-
}, {
|
|
218
|
-
kind: 'wait',
|
|
219
|
-
ms: 700,
|
|
220
|
-
label: 'Tool en ejecución'
|
|
221
|
-
}, {
|
|
222
|
-
kind: 'node',
|
|
223
|
-
label: 'node · task_assign (ok)',
|
|
224
|
-
payload: {
|
|
225
|
-
node: 'task_assign',
|
|
226
|
-
tool_name: 'task_assign',
|
|
227
|
-
message: 'Usuario asignado'
|
|
228
|
-
}
|
|
229
|
-
}, {
|
|
230
|
-
kind: 'tokens',
|
|
231
|
-
label: 'token · parte 2',
|
|
232
|
-
text: MOCK_CONTENT_PART_2,
|
|
233
|
-
charDelayMs: 14
|
|
234
|
-
}, {
|
|
235
|
-
kind: 'complete',
|
|
236
|
-
label: 'complete'
|
|
237
|
-
}]
|
|
238
|
-
}, {
|
|
239
|
-
id: 'hitl_button',
|
|
240
|
-
title: 'HITL · ApprovalBox',
|
|
241
|
-
description: 'token → approval_required (stream termina) → ApprovalBox → continue-thread con resuming + tool + tokens.',
|
|
242
|
-
userQuestion: 'Creá una tarea Demo en el proyecto.',
|
|
243
|
-
finalAnswer: MOCK_HITL_RESUME_TOKENS,
|
|
244
|
-
streamEvents: [{
|
|
245
|
-
kind: 'wait',
|
|
246
|
-
ms: 400,
|
|
247
|
-
label: 'SSE conectado'
|
|
248
|
-
}, {
|
|
249
|
-
kind: 'thinking',
|
|
250
|
-
label: 'thinking'
|
|
251
|
-
}, {
|
|
252
|
-
kind: 'wait',
|
|
253
|
-
ms: 800,
|
|
254
|
-
label: 'Agente planificando'
|
|
255
|
-
}, {
|
|
256
|
-
kind: 'writing',
|
|
257
|
-
label: 'writing_started'
|
|
258
|
-
}, {
|
|
259
|
-
kind: 'tokens',
|
|
260
|
-
label: 'token · propuesta',
|
|
261
|
-
text: MOCK_HITL_PROPOSAL,
|
|
262
|
-
charDelayMs: 12
|
|
263
|
-
}, {
|
|
264
|
-
kind: 'wait',
|
|
265
|
-
ms: 500,
|
|
266
|
-
label: 'Grafo en human_approval'
|
|
267
|
-
}, {
|
|
268
|
-
kind: 'approval_required',
|
|
269
|
-
label: 'approval_required (botón — stream settled)',
|
|
270
|
-
approval: MOCK_CREATE_TASK_APPROVAL
|
|
271
|
-
}],
|
|
272
|
-
continueEvents: RESUME_CONTINUE_EVENTS
|
|
273
|
-
}, {
|
|
274
|
-
id: 'hitl_manual',
|
|
275
|
-
title: 'HITL · Manual ("Sí, confirmo")',
|
|
276
|
-
description: 'approval_required con manual_approval_detected: sin ApprovalBox, el stream sigue con resuming + content blob.',
|
|
277
|
-
userQuestion: 'Sí, confirmo. Creá la tarea Demo.',
|
|
278
|
-
finalAnswer: MOCK_HITL_CONTENT_BLOB,
|
|
279
|
-
streamEvents: [{
|
|
280
|
-
kind: 'wait',
|
|
281
|
-
ms: 400,
|
|
282
|
-
label: 'SSE conectado'
|
|
283
|
-
}, {
|
|
284
|
-
kind: 'thinking',
|
|
285
|
-
label: 'thinking'
|
|
286
|
-
}, {
|
|
287
|
-
kind: 'wait',
|
|
288
|
-
ms: 600,
|
|
289
|
-
label: 'Detectando manual approval'
|
|
290
|
-
}, {
|
|
291
|
-
kind: 'writing',
|
|
292
|
-
label: 'writing_started'
|
|
293
|
-
}, {
|
|
294
|
-
kind: 'tokens',
|
|
295
|
-
label: 'token · ack',
|
|
296
|
-
text: 'Perfecto, procedo con la creación…',
|
|
297
|
-
charDelayMs: 14
|
|
298
|
-
}, {
|
|
299
|
-
kind: 'wait',
|
|
300
|
-
ms: 400,
|
|
301
|
-
label: 'human_approval + manual detectado'
|
|
302
|
-
}, {
|
|
303
|
-
kind: 'approval_required',
|
|
304
|
-
label: 'approval_required (manual — stream NO termina)',
|
|
305
|
-
approval: _objectSpread(_objectSpread({}, MOCK_CREATE_TASK_APPROVAL), {}, {
|
|
306
|
-
manual_approval_detected: true,
|
|
307
|
-
warning_message: 'Confirmaste la acción por mensaje de texto.'
|
|
308
|
-
})
|
|
309
|
-
}].concat(MANUAL_STREAM_TAIL)
|
|
310
|
-
}, {
|
|
311
|
-
id: 'hitl_content_blob',
|
|
312
|
-
title: 'HITL · Content de una (post-resume)',
|
|
313
|
-
description: 'Tras aprobar: resuming genérico, node con nombre crudo de tool, respuesta en un solo evento content.',
|
|
314
|
-
userQuestion: 'Creá la tarea Demo.',
|
|
315
|
-
finalAnswer: MOCK_HITL_CONTENT_BLOB,
|
|
316
|
-
streamEvents: [{
|
|
317
|
-
kind: 'thinking',
|
|
318
|
-
label: 'thinking'
|
|
319
|
-
}, {
|
|
320
|
-
kind: 'writing',
|
|
321
|
-
label: 'writing_started'
|
|
322
|
-
}, {
|
|
323
|
-
kind: 'tokens',
|
|
324
|
-
label: 'token · propuesta',
|
|
325
|
-
text: MOCK_HITL_PROPOSAL,
|
|
326
|
-
charDelayMs: 12
|
|
327
|
-
}, {
|
|
328
|
-
kind: 'approval_required',
|
|
329
|
-
label: 'approval_required (botón)',
|
|
330
|
-
approval: MOCK_CREATE_TASK_APPROVAL
|
|
331
|
-
}],
|
|
332
|
-
continueEvents: RESUME_CONTENT_BLOB_EVENTS
|
|
333
|
-
}, {
|
|
334
|
-
id: 'hitl_chained',
|
|
335
|
-
title: 'HITL · Encadenado (2 approvals)',
|
|
336
|
-
description: 'Primer continue OK → agente pide otra tool → segundo ApprovalBox → segundo continue.',
|
|
337
|
-
userQuestion: 'Creá la tarea Demo y asignala a Juan.',
|
|
338
|
-
finalAnswer: "".concat(MOCK_HITL_RESUME_TOKENS, "\n\nTambi\xE9n asign\xE9 la tarea a **Juan P\xE9rez**."),
|
|
339
|
-
streamEvents: [{
|
|
340
|
-
kind: 'thinking',
|
|
341
|
-
label: 'thinking'
|
|
342
|
-
}, {
|
|
343
|
-
kind: 'writing',
|
|
344
|
-
label: 'writing_started'
|
|
345
|
-
}, {
|
|
346
|
-
kind: 'tokens',
|
|
347
|
-
label: 'token · propuesta create',
|
|
348
|
-
text: MOCK_HITL_PROPOSAL,
|
|
349
|
-
charDelayMs: 12
|
|
350
|
-
}, {
|
|
351
|
-
kind: 'approval_required',
|
|
352
|
-
label: 'approval_required #1 · create_task',
|
|
353
|
-
approval: MOCK_CREATE_TASK_APPROVAL
|
|
354
|
-
}],
|
|
355
|
-
continueEvents: [].concat(_toConsumableArray(RESUME_CONTINUE_EVENTS.slice(0, -1)), [{
|
|
356
|
-
kind: 'wait',
|
|
357
|
-
ms: 500,
|
|
358
|
-
label: 'Agente pide segunda tool'
|
|
359
|
-
}, {
|
|
360
|
-
kind: 'writing',
|
|
361
|
-
label: 'writing_started'
|
|
362
|
-
}, {
|
|
363
|
-
kind: 'tokens',
|
|
364
|
-
label: 'token · transición',
|
|
365
|
-
text: MOCK_HITL_CHAINED_PARTIAL,
|
|
366
|
-
charDelayMs: 12
|
|
367
|
-
}, {
|
|
368
|
-
kind: 'approval_required',
|
|
369
|
-
label: 'approval_required #2 · task_assign',
|
|
370
|
-
approval: MOCK_TASK_ASSIGN_APPROVAL
|
|
371
|
-
}]),
|
|
372
|
-
continueEventsSecond: [{
|
|
373
|
-
kind: 'wait',
|
|
374
|
-
ms: 400,
|
|
375
|
-
label: 'POST continue-thread #2'
|
|
376
|
-
}, {
|
|
377
|
-
kind: 'node',
|
|
378
|
-
label: 'node · resuming',
|
|
379
|
-
payload: {
|
|
380
|
-
node: 'resuming',
|
|
381
|
-
message: 'Ejecutando acción aprobada…',
|
|
382
|
-
thread_id: MOCK_THREAD_ID_SECOND
|
|
383
|
-
}
|
|
384
|
-
}, {
|
|
385
|
-
kind: 'node',
|
|
386
|
-
label: 'node · task_assign',
|
|
387
|
-
payload: {
|
|
388
|
-
node: 'task_assign',
|
|
389
|
-
tool_name: 'task_assign',
|
|
390
|
-
message: 'Asignando usuario a la tarea…',
|
|
391
|
-
thread_id: MOCK_THREAD_ID_SECOND
|
|
392
|
-
}
|
|
393
|
-
}, {
|
|
394
|
-
kind: 'writing',
|
|
395
|
-
label: 'writing_started'
|
|
396
|
-
}, {
|
|
397
|
-
kind: 'tokens',
|
|
398
|
-
label: 'token · cierre',
|
|
399
|
-
text: '\n\nTambién asigné la tarea a **Juan Pérez**.',
|
|
400
|
-
charDelayMs: 12
|
|
401
|
-
}, {
|
|
402
|
-
kind: 'complete',
|
|
403
|
-
label: 'complete'
|
|
404
|
-
}]
|
|
405
|
-
}];
|
|
406
|
-
export var getScenarioById = function getScenarioById(id) {
|
|
407
|
-
var _MOCK_SCENARIOS$find;
|
|
408
|
-
return (_MOCK_SCENARIOS$find = MOCK_SCENARIOS.find(function (s) {
|
|
409
|
-
return s.id === id;
|
|
410
|
-
})) !== null && _MOCK_SCENARIOS$find !== void 0 ? _MOCK_SCENARIOS$find : MOCK_SCENARIOS[0];
|
|
411
|
-
};
|
|
412
|
-
export var sleep = function sleep(ms) {
|
|
413
|
-
return new Promise(function (resolve) {
|
|
414
|
-
window.setTimeout(resolve, ms);
|
|
415
|
-
});
|
|
416
|
-
};
|
|
417
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJERU1PX1RVUk5fSUQiLCJNT0NLX1RIUkVBRF9JRCIsIk1PQ0tfVEhSRUFEX0lEX1NFQ09ORCIsIk1PQ0tfQ0hFQ0tQT0lOVF9JRCIsIk1PQ0tfU0VTU0lPTl9JRCIsIk1PQ0tfQ1JFQVRFX1RBU0tfQVBQUk9WQUwiLCJ0eXBlIiwicGVuZGluZ19hY3Rpb25zIiwidG9vbF9uYW1lIiwidG9vbF9jYWxsX2lkIiwidG9vbF9hcmdzIiwidGl0bGUiLCJwcm9qZWN0X2lkIiwidGhyZWFkX2lkIiwidG90YWxfYWN0aW9ucyIsIm9yaWdpbmFsX3RocmVhZF9pZCIsInNlc3Npb25faWQiLCJtZXRhZGF0YSIsImxhbmciLCJNT0NLX1RBU0tfQVNTSUdOX0FQUFJPVkFMIiwidGFza19pZCIsInVzZXJfaWQiLCJNT0NLX0NPTlRFTlRfUEFSVF8xIiwiTU9DS19DT05URU5UX1BBUlRfMiIsIk1PQ0tfSElUTF9QUk9QT1NBTCIsIk1PQ0tfSElUTF9SRVNVTUVfVE9LRU5TIiwiTU9DS19ISVRMX0NPTlRFTlRfQkxPQiIsIk1PQ0tfSElUTF9DSEFJTkVEX1BBUlRJQUwiLCJNT0NLX0ZJTkFMX05PUk1BTCIsImNvbmNhdCIsIlJFU1VNRV9DT05USU5VRV9FVkVOVFMiLCJraW5kIiwibXMiLCJsYWJlbCIsInBheWxvYWQiLCJub2RlIiwibWVzc2FnZSIsInRleHQiLCJjaGFyRGVsYXlNcyIsIlJFU1VNRV9DT05URU5UX0JMT0JfRVZFTlRTIiwiTUFOVUFMX1NUUkVBTV9UQUlMIiwiTU9DS19TQ0VOQVJJT1MiLCJpZCIsImRlc2NyaXB0aW9uIiwidXNlclF1ZXN0aW9uIiwiZmluYWxBbnN3ZXIiLCJzdHJlYW1FdmVudHMiLCJhcHByb3ZhbCIsImNvbnRpbnVlRXZlbnRzIiwiX29iamVjdFNwcmVhZCIsIm1hbnVhbF9hcHByb3ZhbF9kZXRlY3RlZCIsIndhcm5pbmdfbWVzc2FnZSIsIl90b0NvbnN1bWFibGVBcnJheSIsInNsaWNlIiwiY29udGludWVFdmVudHNTZWNvbmQiLCJnZXRTY2VuYXJpb0J5SWQiLCJfTU9DS19TQ0VOQVJJT1MkZmluZCIsImZpbmQiLCJzIiwic2xlZXAiLCJQcm9taXNlIiwicmVzb2x2ZSIsIndpbmRvdyIsInNldFRpbWVvdXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGV2L21vY2tTdHJlYW1UaW1lbGluZURlbW8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBcHByb3ZhbFJlcXVlc3QgfSBmcm9tICcuLi90eXBlcy9DaGF0J1xuaW1wb3J0IHR5cGUgeyBTdHJlYW1Ob2RlRXZlbnRQYXlsb2FkIH0gZnJvbSAnLi4vdHlwZXMvc3RyZWFtQWN0aXZpdHknXG5cbmV4cG9ydCB0eXBlIE1vY2tTdHJlYW1UaW1lbGluZUV2ZW50ID1cbiAgfCB7IGtpbmQ6ICd3YWl0JzsgbXM6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9XG4gIHwgeyBraW5kOiAndGhpbmtpbmcnOyBsYWJlbD86IHN0cmluZyB9XG4gIHwgeyBraW5kOiAnd3JpdGluZyc7IGxhYmVsPzogc3RyaW5nIH1cbiAgfCB7IGtpbmQ6ICdub2RlJzsgcGF5bG9hZDogU3RyZWFtTm9kZUV2ZW50UGF5bG9hZDsgbGFiZWw6IHN0cmluZyB9XG4gIHwgeyBraW5kOiAndG9rZW5zJzsgdGV4dDogc3RyaW5nOyBjaGFyRGVsYXlNcz86IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9XG4gIC8qKiBCYWNrZW5kIGVudsOtYSBgY29udGVudGAgZGUgdW5hIChzaW4gdG9rZW5pemFyKSDigJQgdMOtcGljbyBwb3N0LXJlc3VtZSBvIHJlc3B1ZXN0YXMgY29ydGFzICovXG4gIHwgeyBraW5kOiAnY29udGVudCc7IHRleHQ6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9XG4gIHwgeyBraW5kOiAnYXBwcm92YWxfcmVxdWlyZWQnOyBhcHByb3ZhbDogQXBwcm92YWxSZXF1ZXN0OyBsYWJlbDogc3RyaW5nIH1cbiAgfCB7IGtpbmQ6ICdjb21wbGV0ZSc7IGxhYmVsOiBzdHJpbmcgfVxuXG5leHBvcnQgdHlwZSBNb2NrU2NlbmFyaW9JZCA9ICdub3JtYWwnIHwgJ2hpdGxfYnV0dG9uJyB8ICdoaXRsX21hbnVhbCcgfCAnaGl0bF9jb250ZW50X2Jsb2InIHwgJ2hpdGxfY2hhaW5lZCdcblxuZXhwb3J0IHR5cGUgTW9ja1NjZW5hcmlvID0ge1xuICBpZDogTW9ja1NjZW5hcmlvSWRcbiAgdGl0bGU6IHN0cmluZ1xuICBkZXNjcmlwdGlvbjogc3RyaW5nXG4gIHVzZXJRdWVzdGlvbjogc3RyaW5nXG4gIGZpbmFsQW5zd2VyOiBzdHJpbmdcbiAgLyoqIFN0cmVhbSBpbmljaWFsIChhc2tNYWlhIG8gaGFzdGEgYXBwcm92YWwpICovXG4gIHN0cmVhbUV2ZW50czogTW9ja1N0cmVhbVRpbWVsaW5lRXZlbnRbXVxuICAvKiogY29udGludWUtdGhyZWFkIHRyYXMgYXByb2JhciBlbiBVSSAoc29sbyBISVRMIGJvdMOzbiAvIGVuY2FkZW5hZG8pICovXG4gIGNvbnRpbnVlRXZlbnRzPzogTW9ja1N0cmVhbVRpbWVsaW5lRXZlbnRbXVxuICAvKiogU2VndW5kbyBjb250aW51ZSBzaSBoYXkgSElUTCBlbmNhZGVuYWRvICovXG4gIGNvbnRpbnVlRXZlbnRzU2Vjb25kPzogTW9ja1N0cmVhbVRpbWVsaW5lRXZlbnRbXVxufVxuXG5leHBvcnQgY29uc3QgREVNT19UVVJOX0lEID0gJ2RlbW8tc3RyZWFtLXRpbWVsaW5lLXR1cm4nXG5cbmV4cG9ydCBjb25zdCBNT0NLX1RIUkVBRF9JRCA9ICd0aHJlYWQtZGVtby1oaXRsLTEnXG5leHBvcnQgY29uc3QgTU9DS19USFJFQURfSURfU0VDT05EID0gJ3RocmVhZC1kZW1vLWhpdGwtMidcbmV4cG9ydCBjb25zdCBNT0NLX0NIRUNLUE9JTlRfSUQgPSAnY2hlY2twb2ludC1kZW1vLWhpdGwnXG5leHBvcnQgY29uc3QgTU9DS19TRVNTSU9OX0lEID0gJ3Nlc3Npb24tZGVtby1oaXRsJ1xuXG5leHBvcnQgY29uc3QgTU9DS19DUkVBVEVfVEFTS19BUFBST1ZBTDogQXBwcm92YWxSZXF1ZXN0ID0ge1xuICB0eXBlOiAnYXBwcm92YWxfcmVxdWlyZWQnLFxuICBwZW5kaW5nX2FjdGlvbnM6IFtcbiAgICB7XG4gICAgICB0b29sX25hbWU6ICdjcmVhdGVfdGFzaycsXG4gICAgICB0b29sX2NhbGxfaWQ6ICdjYWxsX2RlbW9fY3JlYXRlX3Rhc2snLFxuICAgICAgdG9vbF9hcmdzOiB7IHRpdGxlOiAnRGVtbycsIHByb2plY3RfaWQ6IDEyMzQgfSxcbiAgICAgIHRocmVhZF9pZDogTU9DS19USFJFQURfSUQsXG4gICAgfSxcbiAgXSxcbiAgdG90YWxfYWN0aW9uczogMSxcbiAgb3JpZ2luYWxfdGhyZWFkX2lkOiBNT0NLX0NIRUNLUE9JTlRfSUQsXG4gIHNlc3Npb25faWQ6IE1PQ0tfU0VTU0lPTl9JRCxcbiAgbWV0YWRhdGE6IHsgcHJvamVjdF9pZDogJzEyMzQnLCBsYW5nOiAnZXMnIH0sXG59XG5cbmV4cG9ydCBjb25zdCBNT0NLX1RBU0tfQVNTSUdOX0FQUFJPVkFMOiBBcHByb3ZhbFJlcXVlc3QgPSB7XG4gIHR5cGU6ICdhcHByb3ZhbF9yZXF1aXJlZCcsXG4gIHBlbmRpbmdfYWN0aW9uczogW1xuICAgIHtcbiAgICAgIHRvb2xfbmFtZTogJ3Rhc2tfYXNzaWduJyxcbiAgICAgIHRvb2xfY2FsbF9pZDogJ2NhbGxfZGVtb190YXNrX2Fzc2lnbicsXG4gICAgICB0b29sX2FyZ3M6IHsgdGFza19pZDogNjQwNDI5LCB1c2VyX2lkOiA5OSB9LFxuICAgICAgdGhyZWFkX2lkOiBNT0NLX1RIUkVBRF9JRF9TRUNPTkQsXG4gICAgfSxcbiAgXSxcbiAgdG90YWxfYWN0aW9uczogMSxcbiAgb3JpZ2luYWxfdGhyZWFkX2lkOiBNT0NLX0NIRUNLUE9JTlRfSUQsXG4gIHNlc3Npb25faWQ6IE1PQ0tfU0VTU0lPTl9JRCxcbiAgbWV0YWRhdGE6IHsgcHJvamVjdF9pZDogJzEyMzQnLCBsYW5nOiAnZXMnIH0sXG59XG5cbmV4cG9ydCBjb25zdCBNT0NLX0NPTlRFTlRfUEFSVF8xID1cbiAgJ0VuY29udHLDqSBsYSB0YXJlYSAqKiM2NDA0MjkgRGVtbyoqIGVuIGVsIHByb3llY3RvICpEZW1vIFByb2plY3QqLiBFbCBlc3RhZG8gYWN0dWFsIGVzICpFbiBwcm9jZXNvKi4nXG5cbmV4cG9ydCBjb25zdCBNT0NLX0NPTlRFTlRfUEFSVF8yID0gJ1xcblxcbkxhIGFzaWduw6kgYSAqKkp1YW4gUMOpcmV6KiouIMK/UXVlcsOpcyBxdWUgbGUgZW52w61lIHVuIG1lbnNhamUgZW4gbGEgdGFyZWE/J1xuXG5leHBvcnQgY29uc3QgTU9DS19ISVRMX1BST1BPU0FMID1cbiAgJ1ZveSBhIGNyZWFyIGxhIHRhcmVhICoqRGVtbyoqIGVuIGVsIHByb3llY3RvICpEZW1vIFByb2plY3QqIGNvbiBwcmlvcmlkYWQgbWVkaWEuIMK/Q29uZmlybcOhcyBsYSBhY2Npw7NuPydcblxuZXhwb3J0IGNvbnN0IE1PQ0tfSElUTF9SRVNVTUVfVE9LRU5TID1cbiAgJ0xpc3RvLCBjcmXDqSBsYSB0YXJlYSAqKltEZW1vXSgvdGFza3MvNjQwNDI5L2RldGFpbCkqKi4gUG9kw6lzIGVkaXRhcmxhIGRlc2RlIGVsIHRhYmxlcm8gZGVsIHByb3llY3RvLidcblxuZXhwb3J0IGNvbnN0IE1PQ0tfSElUTF9DT05URU5UX0JMT0IgPVxuICAnTGlzdG8sIGNyZcOpIGxhIHRhcmVhICoqW0RlbW9dKC90YXNrcy82NDA0MjkvZGV0YWlsKSoqIGNvbiBsYSBjb25maWd1cmFjacOzbiBzb2xpY2l0YWRhLiBZYSBlc3TDoSB2aXNpYmxlIGVuIGVsIHRhYmxlcm8gZGVsIHByb3llY3RvLidcblxuZXhwb3J0IGNvbnN0IE1PQ0tfSElUTF9DSEFJTkVEX1BBUlRJQUwgPSAnQ3Jlw6kgbGEgdGFyZWEuIEFob3JhIHZveSBhIGFzaWduYXJsYSBhIEp1YW7igKYnXG5cbmV4cG9ydCBjb25zdCBNT0NLX0ZJTkFMX05PUk1BTCA9IGAke01PQ0tfQ09OVEVOVF9QQVJUXzF9JHtNT0NLX0NPTlRFTlRfUEFSVF8yfWBcblxuY29uc3QgUkVTVU1FX0NPTlRJTlVFX0VWRU5UUzogTW9ja1N0cmVhbVRpbWVsaW5lRXZlbnRbXSA9IFtcbiAgeyBraW5kOiAnd2FpdCcsIG1zOiA0MDAsIGxhYmVsOiAnUE9TVCBjb250aW51ZS10aHJlYWQnIH0sXG4gIHtcbiAgICBraW5kOiAnbm9kZScsXG4gICAgbGFiZWw6ICdub2RlIMK3IHJlc3VtaW5nIChnZW7DqXJpY28gYmFja2VuZCknLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIG5vZGU6ICdyZXN1bWluZycsXG4gICAgICBtZXNzYWdlOiAnRWplY3V0YW5kbyBhY2Npw7NuIGFwcm9iYWRh4oCmJyxcbiAgICAgIHRocmVhZF9pZDogTU9DS19USFJFQURfSUQsXG4gICAgfSxcbiAgfSxcbiAgeyBraW5kOiAnd2FpdCcsIG1zOiA3MDAsIGxhYmVsOiAnVG9vbCBhcnJhbmNhbmRvJyB9LFxuICB7XG4gICAga2luZDogJ25vZGUnLFxuICAgIGxhYmVsOiAnbm9kZSDCtyBjcmVhdGVfdGFzaycsXG4gICAgcGF5bG9hZDoge1xuICAgICAgbm9kZTogJ2NyZWF0ZV90YXNrJyxcbiAgICAgIHRvb2xfbmFtZTogJ2NyZWF0ZV90YXNrJyxcbiAgICAgIG1lc3NhZ2U6IFwiQ3JlYW5kbyB0YXJlYSAnRGVtbyfigKZcIixcbiAgICAgIHRocmVhZF9pZDogTU9DS19USFJFQURfSUQsXG4gICAgfSxcbiAgfSxcbiAgeyBraW5kOiAnd3JpdGluZycsIGxhYmVsOiAnd3JpdGluZ19zdGFydGVkJyB9LFxuICB7XG4gICAga2luZDogJ3Rva2VucycsXG4gICAgbGFiZWw6ICd0b2tlbiDCtyByZXNwdWVzdGEgZmluYWwnLFxuICAgIHRleHQ6IE1PQ0tfSElUTF9SRVNVTUVfVE9LRU5TLFxuICAgIGNoYXJEZWxheU1zOiAxNCxcbiAgfSxcbiAgeyBraW5kOiAnd2FpdCcsIG1zOiA0MDAsIGxhYmVsOiAnQ2VycmFuZG8gc3RyZWFtJyB9LFxuICB7IGtpbmQ6ICdjb21wbGV0ZScsIGxhYmVsOiAnY29tcGxldGUnIH0sXG5dXG5cbmNvbnN0IFJFU1VNRV9DT05URU5UX0JMT0JfRVZFTlRTOiBNb2NrU3RyZWFtVGltZWxpbmVFdmVudFtdID0gW1xuICB7IGtpbmQ6ICd3YWl0JywgbXM6IDQwMCwgbGFiZWw6ICdQT1NUIGNvbnRpbnVlLXRocmVhZCcgfSxcbiAge1xuICAgIGtpbmQ6ICdub2RlJyxcbiAgICBsYWJlbDogJ25vZGUgwrcgcmVzdW1pbmcnLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIG5vZGU6ICdyZXN1bWluZycsXG4gICAgICBtZXNzYWdlOiAnRXhlY3V0aW5nIGFwcHJvdmVkIGFjdGlvbuKApicsXG4gICAgICB0aHJlYWRfaWQ6IE1PQ0tfVEhSRUFEX0lELFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBraW5kOiAnbm9kZScsXG4gICAgbGFiZWw6ICdub2RlIMK3IGNyZWF0ZV90YXNrIChub21icmUgY3J1ZG8gYmFja2VuZCknLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIG5vZGU6ICdjcmVhdGVfdGFzaycsXG4gICAgICB0b29sX25hbWU6ICdjcmVhdGVfdGFzaycsXG4gICAgICBtZXNzYWdlOiAnY3JlYXRlX3Rhc2snLFxuICAgICAgdGhyZWFkX2lkOiBNT0NLX1RIUkVBRF9JRCxcbiAgICB9LFxuICB9LFxuICB7IGtpbmQ6ICd3cml0aW5nJywgbGFiZWw6ICd3cml0aW5nX3N0YXJ0ZWQnIH0sXG4gIHtcbiAgICBraW5kOiAnY29udGVudCcsXG4gICAgbGFiZWw6ICdjb250ZW50IMK3IHRleHRvIGNvbXBsZXRvIGRlIHVuYScsXG4gICAgdGV4dDogTU9DS19ISVRMX0NPTlRFTlRfQkxPQixcbiAgfSxcbiAgeyBraW5kOiAnY29tcGxldGUnLCBsYWJlbDogJ2NvbXBsZXRlJyB9LFxuXVxuXG5jb25zdCBNQU5VQUxfU1RSRUFNX1RBSUw6IE1vY2tTdHJlYW1UaW1lbGluZUV2ZW50W10gPSBbXG4gIHsga2luZDogJ3dhaXQnLCBtczogMzAwLCBsYWJlbDogJ1N0cmVhbSBzaWd1ZSAobWFudWFsX2FwcHJvdmFsX2RldGVjdGVkKScgfSxcbiAge1xuICAgIGtpbmQ6ICdub2RlJyxcbiAgICBsYWJlbDogJ25vZGUgwrcgcmVzdW1pbmcnLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIG5vZGU6ICdyZXN1bWluZycsXG4gICAgICBtZXNzYWdlOiAnRWplY3V0YW5kbyBhY2Npw7NuIGFwcm9iYWRh4oCmJyxcbiAgICAgIHRocmVhZF9pZDogTU9DS19USFJFQURfSUQsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGtpbmQ6ICdub2RlJyxcbiAgICBsYWJlbDogJ25vZGUgwrcgY3JlYXRlX3Rhc2snLFxuICAgIHBheWxvYWQ6IHtcbiAgICAgIG5vZGU6ICdjcmVhdGVfdGFzaycsXG4gICAgICB0b29sX25hbWU6ICdjcmVhdGVfdGFzaycsXG4gICAgICBtZXNzYWdlOiBcIkNyZWFuZG8gdGFyZWEgJ0RlbW8n4oCmXCIsXG4gICAgICB0aHJlYWRfaWQ6IE1PQ0tfVEhSRUFEX0lELFxuICAgIH0sXG4gIH0sXG4gIHsga2luZDogJ3dyaXRpbmcnLCBsYWJlbDogJ3dyaXRpbmdfc3RhcnRlZCcgfSxcbiAge1xuICAgIGtpbmQ6ICdjb250ZW50JyxcbiAgICBsYWJlbDogJ2NvbnRlbnQgwrcgYmxvYiBmaW5hbCAoc2luIHRva2VucyknLFxuICAgIHRleHQ6IE1PQ0tfSElUTF9DT05URU5UX0JMT0IsXG4gIH0sXG4gIHsga2luZDogJ2NvbXBsZXRlJywgbGFiZWw6ICdjb21wbGV0ZScgfSxcbl1cblxuZXhwb3J0IGNvbnN0IE1PQ0tfU0NFTkFSSU9TOiBNb2NrU2NlbmFyaW9bXSA9IFtcbiAge1xuICAgIGlkOiAnbm9ybWFsJyxcbiAgICB0aXRsZTogJ0ZsdWpvIG5vcm1hbCcsXG4gICAgZGVzY3JpcHRpb246ICdUb29scyBlbiB2aXZvICsgdG9rZW5zIGludGVyY2FsYWRvcyAoc2luIEhJVEwpLicsXG4gICAgdXNlclF1ZXN0aW9uOiAnwr9Qb2TDqXMgYnVzY2FyIGxhIHRhcmVhIERlbW8geSBhc2lnbmFybGEgYSBKdWFuPycsXG4gICAgZmluYWxBbnN3ZXI6IE1PQ0tfRklOQUxfTk9STUFMLFxuICAgIHN0cmVhbUV2ZW50czogW1xuICAgICAgeyBraW5kOiAnd2FpdCcsIG1zOiA0MDAsIGxhYmVsOiAnU1NFIGNvbmVjdGFkbycgfSxcbiAgICAgIHsga2luZDogJ3RoaW5raW5nJywgbGFiZWw6ICd0aGlua2luZycgfSxcbiAgICAgIHsga2luZDogJ3dhaXQnLCBtczogOTAwLCBsYWJlbDogJ0FnZW50ZSBhbmFsaXphbmRvJyB9LFxuICAgICAge1xuICAgICAgICBraW5kOiAnbm9kZScsXG4gICAgICAgIGxhYmVsOiAnbm9kZSDCtyBnZXRfdGFzaycsXG4gICAgICAgIHBheWxvYWQ6IHsgbm9kZTogJ2dldF90YXNrJywgdG9vbF9uYW1lOiAnZ2V0X3Rhc2snLCBtZXNzYWdlOiAnQnVzY2FuZG8gbGEgdGFyZWEgZW4gZWwgcHJveWVjdG/igKYnIH0sXG4gICAgICB9LFxuICAgICAgeyBraW5kOiAnd2FpdCcsIG1zOiA2MDAsIGxhYmVsOiAnVG9vbCBlbiBlamVjdWNpw7NuJyB9LFxuICAgICAge1xuICAgICAgICBraW5kOiAnbm9kZScsXG4gICAgICAgIGxhYmVsOiAnbm9kZSDCtyBnZXRfdGFzayAob2spJyxcbiAgICAgICAgcGF5bG9hZDogeyBub2RlOiAnZ2V0X3Rhc2snLCB0b29sX25hbWU6ICdnZXRfdGFzaycsIG1lc3NhZ2U6ICdUYXJlYSBlbmNvbnRyYWRhJyB9LFxuICAgICAgfSxcbiAgICAgIHsga2luZDogJ3dyaXRpbmcnLCBsYWJlbDogJ3dyaXRpbmdfc3RhcnRlZCcgfSxcbiAgICAgIHsga2luZDogJ3Rva2VucycsIGxhYmVsOiAndG9rZW4gwrcgcGFydGUgMScsIHRleHQ6IE1PQ0tfQ09OVEVOVF9QQVJUXzEsIGNoYXJEZWxheU1zOiAxNiB9LFxuICAgICAgeyBraW5kOiAnd2FpdCcsIG1zOiAzNTAsIGxhYmVsOiAnUGF1c2EnIH0sXG4gICAgICB7XG4gICAgICAgIGtpbmQ6ICdub2RlJyxcbiAgICAgICAgbGFiZWw6ICdub2RlIMK3IHRhc2tfYXNzaWduJyxcbiAgICAgICAgcGF5bG9hZDogeyBub2RlOiAndGFza19hc3NpZ24nLCB0b29sX25hbWU6ICd0YXNrX2Fzc2lnbicsIG1lc3NhZ2U6ICdBc2lnbmFuZG8gdXN1YXJpbyBhIGxhIHRhcmVh4oCmJyB9LFxuICAgICAgfSxcbiAgICAgIHsga2luZDogJ3dhaXQnLCBtczogNzAwLCBsYWJlbDogJ1Rvb2wgZW4gZWplY3VjacOzbicgfSxcbiAgICAgIHtcbiAgICAgICAga2luZDogJ25vZGUnLFxuICAgICAgICBsYWJlbDogJ25vZGUgwrcgdGFza19hc3NpZ24gKG9rKScsXG4gICAgICAgIHBheWxvYWQ6IHsgbm9kZTogJ3Rhc2tfYXNzaWduJywgdG9vbF9uYW1lOiAndGFza19hc3NpZ24nLCBtZXNzYWdlOiAnVXN1YXJpbyBhc2lnbmFkbycgfSxcbiAgICAgIH0sXG4gICAgICB7IGtpbmQ6ICd0b2tlbnMnLCBsYWJlbDogJ3Rva2VuIMK3IHBhcnRlIDInLCB0ZXh0OiBNT0NLX0NPTlRFTlRfUEFSVF8yLCBjaGFyRGVsYXlNczogMTQgfSxcbiAgICAgIHsga2luZDogJ2NvbXBsZXRlJywgbGFiZWw6ICdjb21wbGV0ZScgfSxcbiAgICBdLFxuICB9LFxuICB7XG4gICAgaWQ6ICdoaXRsX2J1dHRvbicsXG4gICAgdGl0bGU6ICdISVRMIMK3IEFwcHJvdmFsQm94JyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICd0b2tlbiDihpIgYXBwcm92YWxfcmVxdWlyZWQgKHN0cmVhbSB0ZXJtaW5hKSDihpIgQXBwcm92YWxCb3gg4oaSIGNvbnRpbnVlLXRocmVhZCBjb24gcmVzdW1pbmcgKyB0b29sICsgdG9rZW5zLicsXG4gICAgdXNlclF1ZXN0aW9uOiAnQ3Jlw6EgdW5hIHRhcmVhIERlbW8gZW4gZWwgcHJveWVjdG8uJyxcbiAgICBmaW5hbEFuc3dlcjogTU9DS19ISVRMX1JFU1VNRV9UT0tFTlMsXG4gICAgc3RyZWFtRXZlbnRzOiBbXG4gICAgICB7IGtpbmQ6ICd3YWl0JywgbXM6IDQwMCwgbGFiZWw6ICdTU0UgY29uZWN0YWRvJyB9LFxuICAgICAgeyBraW5kOiAndGhpbmtpbmcnLCBsYWJlbDogJ3RoaW5raW5nJyB9LFxuICAgICAgeyBraW5kOiAnd2FpdCcsIG1zOiA4MDAsIGxhYmVsOiAnQWdlbnRlIHBsYW5pZmljYW5kbycgfSxcbiAgICAgIHsga2luZDogJ3dyaXRpbmcnLCBsYWJlbDogJ3dyaXRpbmdfc3RhcnRlZCcgfSxcbiAgICAgIHsga2luZDogJ3Rva2VucycsIGxhYmVsOiAndG9rZW4gwrcgcHJvcHVlc3RhJywgdGV4dDogTU9DS19ISVRMX1BST1BPU0FMLCBjaGFyRGVsYXlNczogMTIgfSxcbiAgICAgIHsga2luZDogJ3dhaXQnLCBtczogNTAwLCBsYWJlbDogJ0dyYWZvIGVuIGh1bWFuX2FwcHJvdmFsJyB9LFxuICAgICAge1xuICAgICAgICBraW5kOiAnYXBwcm92YWxfcmVxdWlyZWQnLFxuICAgICAgICBsYWJlbDogJ2FwcHJvdmFsX3JlcXVpcmVkIChib3TDs24g4oCUIHN0cmVhbSBzZXR0bGVkKScsXG4gICAgICAgIGFwcHJvdmFsOiBNT0NLX0NSRUFURV9UQVNLX0FQUFJPVkFMLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGNvbnRpbnVlRXZlbnRzOiBSRVNVTUVfQ09OVElOVUVfRVZFTlRTLFxuICB9LFxuICB7XG4gICAgaWQ6ICdoaXRsX21hbnVhbCcsXG4gICAgdGl0bGU6ICdISVRMIMK3IE1hbnVhbCAoXCJTw60sIGNvbmZpcm1vXCIpJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdhcHByb3ZhbF9yZXF1aXJlZCBjb24gbWFudWFsX2FwcHJvdmFsX2RldGVjdGVkOiBzaW4gQXBwcm92YWxCb3gsIGVsIHN0cmVhbSBzaWd1ZSBjb24gcmVzdW1pbmcgKyBjb250ZW50IGJsb2IuJyxcbiAgICB1c2VyUXVlc3Rpb246ICdTw60sIGNvbmZpcm1vLiBDcmXDoSBsYSB0YXJlYSBEZW1vLicsXG4gICAgZmluYWxBbnN3ZXI6IE1PQ0tfSElUTF9DT05URU5UX0JMT0IsXG4gICAgc3RyZWFtRXZlbnRzOiBbXG4gICAgICB7IGtpbmQ6ICd3YWl0JywgbXM6IDQwMCwgbGFiZWw6ICdTU0UgY29uZWN0YWRvJyB9LFxuICAgICAgeyBraW5kOiAndGhpbmtpbmcnLCBsYWJlbDogJ3RoaW5raW5nJyB9LFxuICAgICAgeyBraW5kOiAnd2FpdCcsIG1zOiA2MDAsIGxhYmVsOiAnRGV0ZWN0YW5kbyBtYW51YWwgYXBwcm92YWwnIH0sXG4gICAgICB7IGtpbmQ6ICd3cml0aW5nJywgbGFiZWw6ICd3cml0aW5nX3N0YXJ0ZWQnIH0sXG4gICAgICB7IGtpbmQ6ICd0b2tlbnMnLCBsYWJlbDogJ3Rva2VuIMK3IGFjaycsIHRleHQ6ICdQZXJmZWN0bywgcHJvY2VkbyBjb24gbGEgY3JlYWNpw7Nu4oCmJywgY2hhckRlbGF5TXM6IDE0IH0sXG4gICAgICB7IGtpbmQ6ICd3YWl0JywgbXM6IDQwMCwgbGFiZWw6ICdodW1hbl9hcHByb3ZhbCArIG1hbnVhbCBkZXRlY3RhZG8nIH0sXG4gICAgICB7XG4gICAgICAgIGtpbmQ6ICdhcHByb3ZhbF9yZXF1aXJlZCcsXG4gICAgICAgIGxhYmVsOiAnYXBwcm92YWxfcmVxdWlyZWQgKG1hbnVhbCDigJQgc3RyZWFtIE5PIHRlcm1pbmEpJyxcbiAgICAgICAgYXBwcm92YWw6IHtcbiAgICAgICAgICAuLi5NT0NLX0NSRUFURV9UQVNLX0FQUFJPVkFMLFxuICAgICAgICAgIG1hbnVhbF9hcHByb3ZhbF9kZXRlY3RlZDogdHJ1ZSxcbiAgICAgICAgICB3YXJuaW5nX21lc3NhZ2U6ICdDb25maXJtYXN0ZSBsYSBhY2Npw7NuIHBvciBtZW5zYWplIGRlIHRleHRvLicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgLi4uTUFOVUFMX1NUUkVBTV9UQUlMLFxuICAgIF0sXG4gIH0sXG4gIHtcbiAgICBpZDogJ2hpdGxfY29udGVudF9ibG9iJyxcbiAgICB0aXRsZTogJ0hJVEwgwrcgQ29udGVudCBkZSB1bmEgKHBvc3QtcmVzdW1lKScsXG4gICAgZGVzY3JpcHRpb246ICdUcmFzIGFwcm9iYXI6IHJlc3VtaW5nIGdlbsOpcmljbywgbm9kZSBjb24gbm9tYnJlIGNydWRvIGRlIHRvb2wsIHJlc3B1ZXN0YSBlbiB1biBzb2xvIGV2ZW50byBjb250ZW50LicsXG4gICAgdXNlclF1ZXN0aW9uOiAnQ3Jlw6EgbGEgdGFyZWEgRGVtby4nLFxuICAgIGZpbmFsQW5zd2VyOiBNT0NLX0hJVExfQ09OVEVOVF9CTE9CLFxuICAgIHN0cmVhbUV2ZW50czogW1xuICAgICAgeyBraW5kOiAndGhpbmtpbmcnLCBsYWJlbDogJ3RoaW5raW5nJyB9LFxuICAgICAgeyBraW5kOiAnd3JpdGluZycsIGxhYmVsOiAnd3JpdGluZ19zdGFydGVkJyB9LFxuICAgICAgeyBraW5kOiAndG9rZW5zJywgbGFiZWw6ICd0b2tlbiDCtyBwcm9wdWVzdGEnLCB0ZXh0OiBNT0NLX0hJVExfUFJPUE9TQUwsIGNoYXJEZWxheU1zOiAxMiB9LFxuICAgICAge1xuICAgICAgICBraW5kOiAnYXBwcm92YWxfcmVxdWlyZWQnLFxuICAgICAgICBsYWJlbDogJ2FwcHJvdmFsX3JlcXVpcmVkIChib3TDs24pJyxcbiAgICAgICAgYXBwcm92YWw6IE1PQ0tfQ1JFQVRFX1RBU0tfQVBQUk9WQUwsXG4gICAgICB9LFxuICAgIF0sXG4gICAgY29udGludWVFdmVudHM6IFJFU1VNRV9DT05URU5UX0JMT0JfRVZFTlRTLFxuICB9LFxuICB7XG4gICAgaWQ6ICdoaXRsX2NoYWluZWQnLFxuICAgIHRpdGxlOiAnSElUTCDCtyBFbmNhZGVuYWRvICgyIGFwcHJvdmFscyknLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJpbWVyIGNvbnRpbnVlIE9LIOKGkiBhZ2VudGUgcGlkZSBvdHJhIHRvb2wg4oaSIHNlZ3VuZG8gQXBwcm92YWxCb3gg4oaSIHNlZ3VuZG8gY29udGludWUuJyxcbiAgICB1c2VyUXVlc3Rpb246ICdDcmXDoSBsYSB0YXJlYSBEZW1vIHkgYXNpZ25hbGEgYSBKdWFuLicsXG4gICAgZmluYWxBbnN3ZXI6IGAke01PQ0tfSElUTF9SRVNVTUVfVE9LRU5TfVxcblxcblRhbWJpw6luIGFzaWduw6kgbGEgdGFyZWEgYSAqKkp1YW4gUMOpcmV6KiouYCxcbiAgICBzdHJlYW1FdmVudHM6IFtcbiAgICAgIHsga2luZDogJ3RoaW5raW5nJywgbGFiZWw6ICd0aGlua2luZycgfSxcbiAgICAgIHsga2luZDogJ3dyaXRpbmcnLCBsYWJlbDogJ3dyaXRpbmdfc3RhcnRlZCcgfSxcbiAgICAgIHsga2luZDogJ3Rva2VucycsIGxhYmVsOiAndG9rZW4gwrcgcHJvcHVlc3RhIGNyZWF0ZScsIHRleHQ6IE1PQ0tfSElUTF9QUk9QT1NBTCwgY2hhckRlbGF5TXM6IDEyIH0sXG4gICAgICB7XG4gICAgICAgIGtpbmQ6ICdhcHByb3ZhbF9yZXF1aXJlZCcsXG4gICAgICAgIGxhYmVsOiAnYXBwcm92YWxfcmVxdWlyZWQgIzEgwrcgY3JlYXRlX3Rhc2snLFxuICAgICAgICBhcHByb3ZhbDogTU9DS19DUkVBVEVfVEFTS19BUFBST1ZBTCxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBjb250aW51ZUV2ZW50czogW1xuICAgICAgLi4uUkVTVU1FX0NPTlRJTlVFX0VWRU5UUy5zbGljZSgwLCAtMSksXG4gICAgICB7IGtpbmQ6ICd3YWl0JywgbXM6IDUwMCwgbGFiZWw6ICdBZ2VudGUgcGlkZSBzZWd1bmRhIHRvb2wnIH0sXG4gICAgICB7IGtpbmQ6ICd3cml0aW5nJywgbGFiZWw6ICd3cml0aW5nX3N0YXJ0ZWQnIH0sXG4gICAgICB7XG4gICAgICAgIGtpbmQ6ICd0b2tlbnMnLFxuICAgICAgICBsYWJlbDogJ3Rva2VuIMK3IHRyYW5zaWNpw7NuJyxcbiAgICAgICAgdGV4dDogTU9DS19ISVRMX0NIQUlORURfUEFSVElBTCxcbiAgICAgICAgY2hhckRlbGF5TXM6IDEyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2luZDogJ2FwcHJvdmFsX3JlcXVpcmVkJyxcbiAgICAgICAgbGFiZWw6ICdhcHByb3ZhbF9yZXF1aXJlZCAjMiDCtyB0YXNrX2Fzc2lnbicsXG4gICAgICAgIGFwcHJvdmFsOiBNT0NLX1RBU0tfQVNTSUdOX0FQUFJPVkFMLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGNvbnRpbnVlRXZlbnRzU2Vjb25kOiBbXG4gICAgICB7IGtpbmQ6ICd3YWl0JywgbXM6IDQwMCwgbGFiZWw6ICdQT1NUIGNvbnRpbnVlLXRocmVhZCAjMicgfSxcbiAgICAgIHtcbiAgICAgICAga2luZDogJ25vZGUnLFxuICAgICAgICBsYWJlbDogJ25vZGUgwrcgcmVzdW1pbmcnLFxuICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgbm9kZTogJ3Jlc3VtaW5nJyxcbiAgICAgICAgICBtZXNzYWdlOiAnRWplY3V0YW5kbyBhY2Npw7NuIGFwcm9iYWRh4oCmJyxcbiAgICAgICAgICB0aHJlYWRfaWQ6IE1PQ0tfVEhSRUFEX0lEX1NFQ09ORCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtpbmQ6ICdub2RlJyxcbiAgICAgICAgbGFiZWw6ICdub2RlIMK3IHRhc2tfYXNzaWduJyxcbiAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgIG5vZGU6ICd0YXNrX2Fzc2lnbicsXG4gICAgICAgICAgdG9vbF9uYW1lOiAndGFza19hc3NpZ24nLFxuICAgICAgICAgIG1lc3NhZ2U6ICdBc2lnbmFuZG8gdXN1YXJpbyBhIGxhIHRhcmVh4oCmJyxcbiAgICAgICAgICB0aHJlYWRfaWQ6IE1PQ0tfVEhSRUFEX0lEX1NFQ09ORCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7IGtpbmQ6ICd3cml0aW5nJywgbGFiZWw6ICd3cml0aW5nX3N0YXJ0ZWQnIH0sXG4gICAgICB7XG4gICAgICAgIGtpbmQ6ICd0b2tlbnMnLFxuICAgICAgICBsYWJlbDogJ3Rva2VuIMK3IGNpZXJyZScsXG4gICAgICAgIHRleHQ6ICdcXG5cXG5UYW1iacOpbiBhc2lnbsOpIGxhIHRhcmVhIGEgKipKdWFuIFDDqXJleioqLicsXG4gICAgICAgIGNoYXJEZWxheU1zOiAxMixcbiAgICAgIH0sXG4gICAgICB7IGtpbmQ6ICdjb21wbGV0ZScsIGxhYmVsOiAnY29tcGxldGUnIH0sXG4gICAgXSxcbiAgfSxcbl1cblxuZXhwb3J0IGNvbnN0IGdldFNjZW5hcmlvQnlJZCA9IChpZDogTW9ja1NjZW5hcmlvSWQpOiBNb2NrU2NlbmFyaW8gPT5cbiAgTU9DS19TQ0VOQVJJT1MuZmluZChzID0+IHMuaWQgPT09IGlkKSA/PyBNT0NLX1NDRU5BUklPU1swXVxuXG5leHBvcnQgY29uc3Qgc2xlZXAgPSAobXM6IG51bWJlcik6IFByb21pc2U8dm9pZD4gPT5cbiAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgd2luZG93LnNldFRpbWVvdXQocmVzb2x2ZSwgbXMpXG4gIH0pXG4iXSwibWFwcGluZ3MiOiI7Ozs7QUE4QkEsT0FBTyxJQUFNQSxZQUFZLEdBQUcsMkJBQTJCO0FBRXZELE9BQU8sSUFBTUMsY0FBYyxHQUFHLG9CQUFvQjtBQUNsRCxPQUFPLElBQU1DLHFCQUFxQixHQUFHLG9CQUFvQjtBQUN6RCxPQUFPLElBQU1DLGtCQUFrQixHQUFHLHNCQUFzQjtBQUN4RCxPQUFPLElBQU1DLGVBQWUsR0FBRyxtQkFBbUI7QUFFbEQsT0FBTyxJQUFNQyx5QkFBMEMsR0FBRztFQUN4REMsSUFBSSxFQUFFLG1CQUFtQjtFQUN6QkMsZUFBZSxFQUFFLENBQ2Y7SUFDRUMsU0FBUyxFQUFFLGFBQWE7SUFDeEJDLFlBQVksRUFBRSx1QkFBdUI7SUFDckNDLFNBQVMsRUFBRTtNQUFFQyxLQUFLLEVBQUUsTUFBTTtNQUFFQyxVQUFVLEVBQUU7SUFBSyxDQUFDO0lBQzlDQyxTQUFTLEVBQUVaO0VBQ2IsQ0FBQyxDQUNGO0VBQ0RhLGFBQWEsRUFBRSxDQUFDO0VBQ2hCQyxrQkFBa0IsRUFBRVosa0JBQWtCO0VBQ3RDYSxVQUFVLEVBQUVaLGVBQWU7RUFDM0JhLFFBQVEsRUFBRTtJQUFFTCxVQUFVLEVBQUUsTUFBTTtJQUFFTSxJQUFJLEVBQUU7RUFBSztBQUM3QyxDQUFDO0FBRUQs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
|