@agent-relay/sdk 6.0.11 → 6.0.13

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 (37) hide show
  1. package/bin/agent-relay-broker-win32-x64.exe +0 -0
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +25 -5
  4. package/dist/client.js.map +1 -1
  5. package/dist/github.d.ts +9 -1
  6. package/dist/github.d.ts.map +1 -1
  7. package/dist/github.js +9 -1
  8. package/dist/github.js.map +1 -1
  9. package/dist/index.d.ts +4 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +4 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/slack.d.ts +24 -0
  14. package/dist/slack.d.ts.map +1 -0
  15. package/dist/slack.js +24 -0
  16. package/dist/slack.js.map +1 -0
  17. package/dist/types.d.ts +21 -6
  18. package/dist/types.d.ts.map +1 -1
  19. package/dist/workflows/__tests__/workflow-reliability-contract.test.d.ts +2 -0
  20. package/dist/workflows/__tests__/workflow-reliability-contract.test.d.ts.map +1 -0
  21. package/dist/workflows/__tests__/workflow-reliability-contract.test.js +536 -0
  22. package/dist/workflows/__tests__/workflow-reliability-contract.test.js.map +1 -0
  23. package/dist/workflows/__tests__/workflow-reliability-e2e.test.d.ts +2 -0
  24. package/dist/workflows/__tests__/workflow-reliability-e2e.test.d.ts.map +1 -0
  25. package/dist/workflows/__tests__/workflow-reliability-e2e.test.js +199 -0
  26. package/dist/workflows/__tests__/workflow-reliability-e2e.test.js.map +1 -0
  27. package/dist/workflows/builder.d.ts +10 -0
  28. package/dist/workflows/builder.d.ts.map +1 -1
  29. package/dist/workflows/builder.js +23 -1
  30. package/dist/workflows/builder.js.map +1 -1
  31. package/dist/workflows/runner.d.ts +7 -0
  32. package/dist/workflows/runner.d.ts.map +1 -1
  33. package/dist/workflows/runner.js +355 -98
  34. package/dist/workflows/runner.js.map +1 -1
  35. package/dist/workflows/types.d.ts +4 -0
  36. package/dist/workflows/types.d.ts.map +1 -1
  37. package/package.json +17 -11
@@ -0,0 +1,536 @@
1
+ import { afterEach, describe, expect, it, vi } from 'vitest';
2
+ import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
3
+ import os from 'node:os';
4
+ import path from 'node:path';
5
+ import { workflow } from '../builder.js';
6
+ import { WorkflowRunner } from '../runner.js';
7
+ afterEach(() => {
8
+ vi.unstubAllGlobals();
9
+ });
10
+ function makeDb() {
11
+ const runs = new Map();
12
+ const steps = new Map();
13
+ return {
14
+ insertRun: vi.fn(async (run) => {
15
+ runs.set(run.id, { ...run });
16
+ }),
17
+ updateRun: vi.fn(async (id, patch) => {
18
+ const existing = runs.get(id);
19
+ if (existing)
20
+ runs.set(id, { ...existing, ...patch });
21
+ }),
22
+ getRun: vi.fn(async (id) => {
23
+ const run = runs.get(id);
24
+ return run ? { ...run } : null;
25
+ }),
26
+ insertStep: vi.fn(async (step) => {
27
+ steps.set(step.id, { ...step });
28
+ }),
29
+ updateStep: vi.fn(async (id, patch) => {
30
+ const existing = steps.get(id);
31
+ if (existing)
32
+ steps.set(id, { ...existing, ...patch });
33
+ }),
34
+ getStepsByRunId: vi.fn(async (runId) => [...steps.values()].filter((step) => step.runId === runId).map((step) => ({ ...step }))),
35
+ };
36
+ }
37
+ function baseConfig(overrides = {}) {
38
+ return {
39
+ version: '1',
40
+ name: 'workflow-reliability-contract',
41
+ swarm: { pattern: 'dag' },
42
+ agents: [{ name: 'fixer', cli: 'claude', role: 'implementation engineer', interactive: false }],
43
+ workflows: [
44
+ {
45
+ name: 'default',
46
+ steps: [
47
+ {
48
+ name: 'verify',
49
+ type: 'deterministic',
50
+ command: 'verify',
51
+ captureOutput: true,
52
+ },
53
+ ],
54
+ },
55
+ ],
56
+ trajectories: false,
57
+ ...overrides,
58
+ };
59
+ }
60
+ describe('workflow reliability contract', () => {
61
+ it('makes SDK builder workflows repairable by default', () => {
62
+ const config = workflow('default-reliable')
63
+ .agent('fixer', { cli: 'claude', role: 'implementation engineer' })
64
+ .step('verify', { type: 'deterministic', command: 'npm test' })
65
+ .toConfig();
66
+ expect(config.errorHandling).toMatchObject({
67
+ strategy: 'retry',
68
+ maxRetries: 2,
69
+ retryDelayMs: 1000,
70
+ repairRetries: 2,
71
+ });
72
+ });
73
+ it('offers reliable and repairable presets for workflow authors', () => {
74
+ const reliable = workflow('reliable')
75
+ .agent('fixer', { cli: 'claude', role: 'implementation engineer' })
76
+ .step('verify', { type: 'deterministic', command: 'npm test' })
77
+ .reliable({ repairAgent: 'fixer', repairRetries: 3 })
78
+ .toConfig();
79
+ const repairable = workflow('repairable')
80
+ .agent('fixer', { cli: 'claude', role: 'implementation engineer' })
81
+ .step('verify', { type: 'deterministic', command: 'npm test' })
82
+ .repairable({ maxRetries: 4 })
83
+ .toConfig();
84
+ expect(reliable.errorHandling).toMatchObject({
85
+ strategy: 'retry',
86
+ maxRetries: 3,
87
+ repairAgent: 'fixer',
88
+ repairRetries: 3,
89
+ });
90
+ expect(repairable.errorHandling).toMatchObject({
91
+ strategy: 'retry',
92
+ maxRetries: 4,
93
+ repairRetries: 4,
94
+ });
95
+ });
96
+ it('applies repair-aware defaults to raw runner configs with agents', async () => {
97
+ const executeDeterministicStep = vi
98
+ .fn()
99
+ .mockResolvedValueOnce({ output: 'missing artifact', exitCode: 1 })
100
+ .mockResolvedValueOnce({ output: 'artifact exists', exitCode: 0 });
101
+ const executeAgentStep = vi.fn(async () => 'created artifact');
102
+ const runner = new WorkflowRunner({
103
+ db: makeDb(),
104
+ workspaceId: 'ws-test',
105
+ cwd: process.cwd(),
106
+ executor: { executeDeterministicStep, executeAgentStep },
107
+ });
108
+ const run = await runner.execute(baseConfig(), 'default');
109
+ expect(run.status, run.error).toBe('completed');
110
+ expect(executeAgentStep).toHaveBeenCalledTimes(1);
111
+ expect(executeDeterministicStep).toHaveBeenCalledTimes(2);
112
+ });
113
+ it('routes repairable deterministic failures through a repair agent before retrying', async () => {
114
+ const executeDeterministicStep = vi
115
+ .fn()
116
+ .mockResolvedValueOnce({ output: 'missing generated artifact', exitCode: 1 })
117
+ .mockResolvedValueOnce({ output: 'artifact exists', exitCode: 0 });
118
+ const executeAgentStep = vi.fn(async () => 'created generated artifact');
119
+ const runner = new WorkflowRunner({
120
+ db: makeDb(),
121
+ workspaceId: 'ws-test',
122
+ cwd: process.cwd(),
123
+ executor: { executeDeterministicStep, executeAgentStep },
124
+ });
125
+ const run = await runner.execute(baseConfig({
126
+ errorHandling: { strategy: 'retry', repairRetries: 1, retryDelayMs: 1, repairAgent: 'fixer' },
127
+ }), 'default');
128
+ expect(run.status, run.error).toBe('completed');
129
+ expect(executeAgentStep).toHaveBeenCalledTimes(1);
130
+ expect(executeAgentStep.mock.calls[0][2]).toContain('A deterministic workflow gate failed');
131
+ expect(executeDeterministicStep).toHaveBeenCalledTimes(2);
132
+ });
133
+ it('still retries the deterministic gate when the repair agent attempt throws', async () => {
134
+ const executeDeterministicStep = vi
135
+ .fn()
136
+ .mockResolvedValueOnce({ output: 'transient failure', exitCode: 1 })
137
+ .mockResolvedValueOnce({ output: 'passed after retry', exitCode: 0 });
138
+ const executeAgentStep = vi.fn(async () => {
139
+ throw new Error('repair model unavailable');
140
+ });
141
+ const runner = new WorkflowRunner({
142
+ db: makeDb(),
143
+ workspaceId: 'ws-test',
144
+ cwd: process.cwd(),
145
+ executor: { executeDeterministicStep, executeAgentStep },
146
+ });
147
+ const run = await runner.execute(baseConfig({
148
+ errorHandling: { strategy: 'retry', repairRetries: 1, retryDelayMs: 1, repairAgent: 'fixer' },
149
+ }), 'default');
150
+ expect(run.status, run.error).toBe('completed');
151
+ expect(executeAgentStep).toHaveBeenCalledTimes(1);
152
+ expect(executeDeterministicStep).toHaveBeenCalledTimes(2);
153
+ });
154
+ it('fails only after the deterministic repair retry budget is exhausted', async () => {
155
+ const executeDeterministicStep = vi.fn(async () => ({ output: 'still broken', exitCode: 1 }));
156
+ const executeAgentStep = vi.fn(async () => 'attempted repair');
157
+ const runner = new WorkflowRunner({
158
+ db: makeDb(),
159
+ workspaceId: 'ws-test',
160
+ cwd: process.cwd(),
161
+ executor: { executeDeterministicStep, executeAgentStep },
162
+ });
163
+ const run = await runner.execute(baseConfig({
164
+ errorHandling: { strategy: 'retry', repairRetries: 2, retryDelayMs: 1, repairAgent: 'fixer' },
165
+ }), 'default');
166
+ expect(run.status).toBe('failed');
167
+ expect(run.error).toContain('verify');
168
+ expect(executeAgentStep).toHaveBeenCalledTimes(2);
169
+ expect(executeDeterministicStep).toHaveBeenCalledTimes(3);
170
+ });
171
+ it('keeps soft deterministic checks non-terminal so a later agent step can fix them', async () => {
172
+ const executeDeterministicStep = vi.fn(async () => ({ output: 'typecheck failed', exitCode: 1 }));
173
+ const executeAgentStep = vi.fn(async () => 'fixed typecheck');
174
+ const runner = new WorkflowRunner({
175
+ db: makeDb(),
176
+ workspaceId: 'ws-test',
177
+ cwd: process.cwd(),
178
+ executor: { executeDeterministicStep, executeAgentStep },
179
+ });
180
+ const run = await runner.execute(baseConfig({
181
+ workflows: [
182
+ {
183
+ name: 'default',
184
+ steps: [
185
+ {
186
+ name: 'soft-validation',
187
+ type: 'deterministic',
188
+ command: 'npm run typecheck',
189
+ captureOutput: true,
190
+ failOnError: false,
191
+ },
192
+ {
193
+ name: 'fix-validation',
194
+ agent: 'fixer',
195
+ task: 'Fix validation using {{steps.soft-validation.output}}',
196
+ dependsOn: ['soft-validation'],
197
+ },
198
+ ],
199
+ },
200
+ ],
201
+ }), 'default');
202
+ expect(run.status, run.error).toBe('completed');
203
+ expect(executeAgentStep).toHaveBeenCalledTimes(1);
204
+ expect(executeAgentStep.mock.calls[0][2]).toContain('typecheck failed');
205
+ });
206
+ it('treats final hard validation as repairable before terminal failure', async () => {
207
+ const executeDeterministicStep = vi
208
+ .fn()
209
+ .mockResolvedValueOnce({ output: 'final typecheck failed', exitCode: 1 })
210
+ .mockResolvedValueOnce({ output: 'final validation passed', exitCode: 0 });
211
+ const executeAgentStep = vi.fn(async () => 'fixed final validation');
212
+ const runner = new WorkflowRunner({
213
+ db: makeDb(),
214
+ workspaceId: 'ws-test',
215
+ cwd: process.cwd(),
216
+ executor: { executeDeterministicStep, executeAgentStep },
217
+ });
218
+ const run = await runner.execute(baseConfig({
219
+ errorHandling: { strategy: 'retry', repairRetries: 1, retryDelayMs: 1, repairAgent: 'fixer' },
220
+ workflows: [
221
+ {
222
+ name: 'default',
223
+ steps: [
224
+ {
225
+ name: 'final-hard-validation',
226
+ type: 'deterministic',
227
+ command: 'npm run typecheck && npm test',
228
+ captureOutput: true,
229
+ failOnError: true,
230
+ },
231
+ ],
232
+ },
233
+ ],
234
+ }), 'default');
235
+ expect(run.status, run.error).toBe('completed');
236
+ expect(executeAgentStep).toHaveBeenCalledTimes(1);
237
+ expect(executeAgentStep.mock.calls[0][2]).toContain('final-hard-validation');
238
+ expect(executeDeterministicStep).toHaveBeenCalledTimes(2);
239
+ });
240
+ it('keeps sibling branches independent when one branch captures a soft failure for repair', async () => {
241
+ const executeDeterministicStep = vi.fn(async (_step, command) => {
242
+ if (command === 'branch-a-soft-check')
243
+ return { output: 'branch A needs repair', exitCode: 1 };
244
+ return { output: `${command} ok`, exitCode: 0 };
245
+ });
246
+ const executeAgentStep = vi.fn(async () => 'merged branch evidence and fixed branch A');
247
+ const runner = new WorkflowRunner({
248
+ db: makeDb(),
249
+ workspaceId: 'ws-test',
250
+ cwd: process.cwd(),
251
+ executor: { executeDeterministicStep, executeAgentStep },
252
+ });
253
+ const run = await runner.execute(baseConfig({
254
+ swarm: { pattern: 'fan-out' },
255
+ workflows: [
256
+ {
257
+ name: 'default',
258
+ steps: [
259
+ {
260
+ name: 'branch-a-validation',
261
+ type: 'deterministic',
262
+ command: 'branch-a-soft-check',
263
+ captureOutput: true,
264
+ failOnError: false,
265
+ },
266
+ {
267
+ name: 'branch-b-validation',
268
+ type: 'deterministic',
269
+ command: 'branch-b-check',
270
+ captureOutput: true,
271
+ failOnError: true,
272
+ },
273
+ {
274
+ name: 'merge-and-fix',
275
+ agent: 'fixer',
276
+ task: 'Use {{steps.branch-a-validation.output}} and {{steps.branch-b-validation.output}}.',
277
+ dependsOn: ['branch-a-validation', 'branch-b-validation'],
278
+ },
279
+ ],
280
+ },
281
+ ],
282
+ }), 'default');
283
+ expect(run.status, run.error).toBe('completed');
284
+ expect(executeDeterministicStep).toHaveBeenCalledTimes(2);
285
+ expect(executeAgentStep).toHaveBeenCalledTimes(1);
286
+ expect(executeAgentStep.mock.calls[0][2]).toContain('branch A needs repair');
287
+ expect(executeAgentStep.mock.calls[0][2]).toContain('branch-b-check ok');
288
+ });
289
+ it('uses the best available workflow agent when no explicit repairAgent is configured', async () => {
290
+ const executeDeterministicStep = vi
291
+ .fn()
292
+ .mockResolvedValueOnce({ output: 'needs repair', exitCode: 1 })
293
+ .mockResolvedValueOnce({ output: 'fixed', exitCode: 0 });
294
+ const executeAgentStep = vi.fn(async () => 'fixed by fallback agent');
295
+ const runner = new WorkflowRunner({
296
+ db: makeDb(),
297
+ workspaceId: 'ws-test',
298
+ cwd: process.cwd(),
299
+ executor: { executeDeterministicStep, executeAgentStep },
300
+ });
301
+ const run = await runner.execute(baseConfig({
302
+ errorHandling: { strategy: 'retry', repairRetries: 1, retryDelayMs: 1 },
303
+ agents: [
304
+ { name: 'reviewer', cli: 'claude', role: 'reviewer' },
305
+ { name: 'implementer', cli: 'claude', role: 'implementation engineer', interactive: false },
306
+ ],
307
+ }), 'default');
308
+ expect(run.status, run.error).toBe('completed');
309
+ expect(executeAgentStep.mock.calls[0][1]).toMatchObject({ name: 'implementer' });
310
+ });
311
+ it('falls back to a suitable workflow agent when the configured repairAgent is invalid', async () => {
312
+ const executeDeterministicStep = vi
313
+ .fn()
314
+ .mockResolvedValueOnce({ output: 'needs repair', exitCode: 1 })
315
+ .mockResolvedValueOnce({ output: 'fixed', exitCode: 0 });
316
+ const executeAgentStep = vi.fn(async () => 'fixed by fallback agent');
317
+ const runner = new WorkflowRunner({
318
+ db: makeDb(),
319
+ workspaceId: 'ws-test',
320
+ cwd: process.cwd(),
321
+ executor: { executeDeterministicStep, executeAgentStep },
322
+ });
323
+ const run = await runner.execute(baseConfig({
324
+ errorHandling: {
325
+ strategy: 'retry',
326
+ repairRetries: 1,
327
+ retryDelayMs: 1,
328
+ repairAgent: 'missing-repair-agent',
329
+ },
330
+ }), 'default');
331
+ expect(run.status, run.error).toBe('completed');
332
+ expect(executeAgentStep.mock.calls[0][1]).toMatchObject({ name: 'fixer' });
333
+ });
334
+ it('preserves cached step output when resuming from a later repair step', async () => {
335
+ const tmpDir = mkdtempSync(path.join(os.tmpdir(), 'relay-reliability-start-from-'));
336
+ const previousRunId = 'previous-run-with-soft-validation';
337
+ const outputDir = path.join(tmpDir, '.agent-relay', 'step-outputs', previousRunId);
338
+ mkdirSync(outputDir, { recursive: true });
339
+ writeFileSync(path.join(outputDir, 'soft-validation.md'), 'cached typecheck failure');
340
+ const executeAgentStep = vi.fn(async () => 'fixed cached validation failure');
341
+ const runner = new WorkflowRunner({
342
+ db: makeDb(),
343
+ workspaceId: 'ws-test',
344
+ cwd: tmpDir,
345
+ executor: { executeAgentStep },
346
+ });
347
+ try {
348
+ const run = await runner.execute(baseConfig({
349
+ workflows: [
350
+ {
351
+ name: 'default',
352
+ steps: [
353
+ {
354
+ name: 'soft-validation',
355
+ type: 'deterministic',
356
+ command: 'npm run typecheck',
357
+ captureOutput: true,
358
+ failOnError: false,
359
+ },
360
+ {
361
+ name: 'fix-validation',
362
+ agent: 'fixer',
363
+ task: 'Fix this prior output: {{steps.soft-validation.output}}',
364
+ dependsOn: ['soft-validation'],
365
+ },
366
+ ],
367
+ },
368
+ ],
369
+ }), 'default', undefined, { startFrom: 'fix-validation', previousRunId });
370
+ expect(run.status, run.error).toBe('completed');
371
+ expect(executeAgentStep).toHaveBeenCalledTimes(1);
372
+ expect(executeAgentStep.mock.calls[0][2]).toContain('cached typecheck failure');
373
+ }
374
+ finally {
375
+ rmSync(tmpDir, { recursive: true, force: true });
376
+ }
377
+ });
378
+ it('repairs malformed agent artifacts before retrying the agent step', async () => {
379
+ const executeAgentStep = vi.fn(async (step) => {
380
+ if (step.name.includes('-repair-'))
381
+ return 'patched artifact instructions';
382
+ if (executeAgentStep.mock.calls.filter(([s]) => s.name === 'write-artifact').length === 1) {
383
+ return 'plain prose without required metadata';
384
+ }
385
+ return 'artifact complete\nRICKY_MASTER_CHILD_RUN_VERIFIED';
386
+ });
387
+ const runner = new WorkflowRunner({
388
+ db: makeDb(),
389
+ workspaceId: 'ws-test',
390
+ cwd: process.cwd(),
391
+ executor: { executeAgentStep },
392
+ });
393
+ const run = await runner.execute(baseConfig({
394
+ workflows: [
395
+ {
396
+ name: 'default',
397
+ steps: [
398
+ {
399
+ name: 'write-artifact',
400
+ agent: 'fixer',
401
+ task: 'Write a structured workflow artifact.',
402
+ verification: {
403
+ type: 'output_contains',
404
+ value: 'RICKY_MASTER_CHILD_RUN_VERIFIED',
405
+ },
406
+ },
407
+ ],
408
+ },
409
+ ],
410
+ }), 'default');
411
+ expect(run.status, run.error).toBe('completed');
412
+ expect(executeAgentStep).toHaveBeenCalledTimes(3);
413
+ expect(executeAgentStep.mock.calls[1][0]).toMatchObject({ name: 'write-artifact-repair-1' });
414
+ expect(executeAgentStep.mock.calls[1][2]).toContain('invalid artifact');
415
+ });
416
+ it('repairs child INVALID_ARTIFACT failures instead of stopping the master at attempt one', async () => {
417
+ const executeAgentStep = vi.fn(async (step) => {
418
+ if (step.name.includes('-repair-'))
419
+ return 'repaired child workflow artifact';
420
+ const childAttempts = executeAgentStep.mock.calls.filter(([s]) => s.name === 'run-update-config-2').length;
421
+ if (childAttempts === 1) {
422
+ return 'Execution: blocked — INVALID_ARTIFACT at final-hard-validation';
423
+ }
424
+ return 'Execution: success — run child-fixed\nRICKY_MASTER_CHILD_RUN_VERIFIED';
425
+ });
426
+ const runner = new WorkflowRunner({
427
+ db: makeDb(),
428
+ workspaceId: 'ws-test',
429
+ cwd: process.cwd(),
430
+ executor: { executeAgentStep },
431
+ });
432
+ const run = await runner.execute(baseConfig({
433
+ workflows: [
434
+ {
435
+ name: 'default',
436
+ steps: [
437
+ {
438
+ name: 'run-update-config-2',
439
+ agent: 'fixer',
440
+ task: 'Run the child workflow and return structured evidence.',
441
+ verification: {
442
+ type: 'output_contains',
443
+ value: 'RICKY_MASTER_CHILD_RUN_VERIFIED',
444
+ },
445
+ },
446
+ {
447
+ name: 'final-signoff',
448
+ type: 'deterministic',
449
+ command: 'true',
450
+ dependsOn: ['run-update-config-2'],
451
+ },
452
+ ],
453
+ },
454
+ ],
455
+ }), 'default');
456
+ expect(run.status, run.error).toBe('completed');
457
+ expect(executeAgentStep).toHaveBeenCalledTimes(3);
458
+ expect(executeAgentStep.mock.calls[1][2]).toContain('INVALID_ARTIFACT');
459
+ });
460
+ it('keeps retrying the failed gate when a repair agent returns an unusable fix', async () => {
461
+ const executeDeterministicStep = vi
462
+ .fn()
463
+ .mockResolvedValueOnce({ output: 'INVALID_ARTIFACT', exitCode: 1 })
464
+ .mockResolvedValueOnce({ output: 'still INVALID_ARTIFACT', exitCode: 1 })
465
+ .mockResolvedValueOnce({ output: 'artifact valid', exitCode: 0 });
466
+ const executeAgentStep = vi
467
+ .fn()
468
+ .mockResolvedValueOnce('malformed repair response without fenced artifact')
469
+ .mockResolvedValueOnce('valid repair response with metadata');
470
+ const runner = new WorkflowRunner({
471
+ db: makeDb(),
472
+ workspaceId: 'ws-test',
473
+ cwd: process.cwd(),
474
+ executor: { executeDeterministicStep, executeAgentStep },
475
+ });
476
+ const run = await runner.execute(baseConfig({
477
+ errorHandling: { strategy: 'retry', repairRetries: 2, retryDelayMs: 1, repairAgent: 'fixer' },
478
+ }), 'default');
479
+ expect(run.status, run.error).toBe('completed');
480
+ expect(executeAgentStep).toHaveBeenCalledTimes(2);
481
+ expect(executeDeterministicStep).toHaveBeenCalledTimes(3);
482
+ });
483
+ it('runs supervised api owners without spawning an interactive owner process', async () => {
484
+ const fetch = vi.fn(async () => {
485
+ return new Response(JSON.stringify({
486
+ content: [{ type: 'text', text: 'OWNER_DECISION: COMPLETE\nReason: worker output verified' }],
487
+ model: 'claude-sonnet-4-20250514',
488
+ }), { status: 200, headers: { 'content-type': 'application/json' } });
489
+ });
490
+ vi.stubGlobal('fetch', fetch);
491
+ const runner = new WorkflowRunner({
492
+ db: makeDb(),
493
+ workspaceId: 'ws-test',
494
+ cwd: process.cwd(),
495
+ envSecrets: { ANTHROPIC_API_KEY: 'test-api-key' },
496
+ });
497
+ const spawnAndWait = vi.fn(async (agent, _step, _timeoutMs, options) => {
498
+ options?.onSpawned?.({ actualName: agent.name, agent: { release: async () => undefined } });
499
+ if (agent.name === 'worker') {
500
+ return { output: 'DONE', exitCode: 0, promptTaskText: 'worker task' };
501
+ }
502
+ throw new Error('api owner should not use spawnAndWait');
503
+ });
504
+ runner.spawnAndWait = spawnAndWait;
505
+ const result = await runner.executeSupervisedAgentStep({
506
+ name: 'supervised-api-owner',
507
+ agent: 'worker',
508
+ task: 'produce done',
509
+ verification: { type: 'output_contains', value: 'DONE' },
510
+ }, {
511
+ specialist: { name: 'worker', cli: 'claude', role: 'worker' },
512
+ owner: { name: 'owner', cli: 'api', role: 'owner' },
513
+ }, 'produce done');
514
+ expect(result).toMatchObject({
515
+ specialistOutput: 'DONE',
516
+ completionReason: 'completed_by_owner_decision',
517
+ });
518
+ expect(fetch).toHaveBeenCalledTimes(1);
519
+ expect(spawnAndWait).toHaveBeenCalledTimes(1);
520
+ });
521
+ it('does not run repair agents for fail-fast workflows even when agents are present', async () => {
522
+ const executeDeterministicStep = vi.fn(async () => ({ output: 'hard failure', exitCode: 1 }));
523
+ const executeAgentStep = vi.fn(async () => 'unexpected repair');
524
+ const runner = new WorkflowRunner({
525
+ db: makeDb(),
526
+ workspaceId: 'ws-test',
527
+ cwd: process.cwd(),
528
+ executor: { executeDeterministicStep, executeAgentStep },
529
+ });
530
+ const run = await runner.execute(baseConfig({ errorHandling: { strategy: 'fail-fast' } }), 'default');
531
+ expect(run.status).toBe('failed');
532
+ expect(executeAgentStep).not.toHaveBeenCalled();
533
+ expect(executeDeterministicStep).toHaveBeenCalledTimes(1);
534
+ });
535
+ });
536
+ //# sourceMappingURL=workflow-reliability-contract.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-reliability-contract.test.js","sourceRoot":"","sources":["../../../src/workflows/__tests__/workflow-reliability-contract.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,cAAc,EAAmB,MAAM,cAAc,CAAC;AAG/D,SAAS,CAAC,GAAG,EAAE;IACb,EAAE,CAAC,gBAAgB,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH,SAAS,MAAM;IACb,MAAM,IAAI,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEjD,OAAO;QACL,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAmB,EAAE,EAAE;YAC7C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC;QACF,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAU,EAAE,KAA8B,EAAE,EAAE;YACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,QAAQ;gBAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC;QACF,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACjC,CAAC,CAAC;QACF,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,IAAqB,EAAE,EAAE;YAChD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC;QACF,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAU,EAAE,KAA+B,EAAE,EAAE;YACtE,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,QAAQ;gBAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC;QACF,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE,CAC7C,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CACxF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,YAAsC,EAAE;IAC1D,OAAO;QACL,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QACzB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QAC/F,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,eAAe;wBACrB,OAAO,EAAE,QAAQ;wBACjB,aAAa,EAAE,IAAI;qBACpB;iBACF;aACF;SACF;QACD,YAAY,EAAE,KAAK;QACnB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,MAAM,GAAG,QAAQ,CAAC,kBAAkB,CAAC;aACxC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;aAClE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;aAC9D,QAAQ,EAAE,CAAC;QAEd,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC;YACzC,QAAQ,EAAE,OAAO;YACjB,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC;aAClC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;aAClE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;aAC9D,QAAQ,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;aACpD,QAAQ,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC;aACtC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;aAClE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;aAC9D,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;aAC7B,QAAQ,EAAE,CAAC;QAEd,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC;YAC3C,QAAQ,EAAE,OAAO;YACjB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,OAAO;YACpB,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC;YAC7C,QAAQ,EAAE,OAAO;YACjB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,wBAAwB,GAAG,EAAE;aAChC,EAAE,EAAE;aACJ,qBAAqB,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;aAClE,qBAAqB,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QACrE,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,kBAAkB,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE,wBAAwB,EAAE,gBAAgB,EAAE;SACzD,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC;QAE1D,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,wBAAwB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,wBAAwB,GAAG,EAAE;aAChC,EAAE,EAAE;aACJ,qBAAqB,CAAC,EAAE,MAAM,EAAE,4BAA4B,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;aAC5E,qBAAqB,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QACrE,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,4BAA4B,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE,wBAAwB,EAAE,gBAAgB,EAAE;SACzD,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAC9B,UAAU,CAAC;YACT,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE;SAC9F,CAAC,EACF,SAAS,CACV,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAE,gBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACrG,MAAM,CAAC,wBAAwB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,wBAAwB,GAAG,EAAE;aAChC,EAAE,EAAE;aACJ,qBAAqB,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;aACnE,qBAAqB,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE,wBAAwB,EAAE,gBAAgB,EAAE;SACzD,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAC9B,UAAU,CAAC;YACT,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE;SAC9F,CAAC,EACF,SAAS,CACV,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,wBAAwB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,wBAAwB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9F,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,kBAAkB,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE,wBAAwB,EAAE,gBAAgB,EAAE;SACzD,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAC9B,UAAU,CAAC;YACT,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE;SAC9F,CAAC,EACF,SAAS,CACV,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,wBAAwB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,wBAAwB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAClG,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,iBAAiB,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE,wBAAwB,EAAE,gBAAgB,EAAE;SACzD,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAC9B,UAAU,CAAC;YACT,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,iBAAiB;4BACvB,IAAI,EAAE,eAAe;4BACrB,OAAO,EAAE,mBAAmB;4BAC5B,aAAa,EAAE,IAAI;4BACnB,WAAW,EAAE,KAAK;yBACnB;wBACD;4BACE,IAAI,EAAE,gBAAgB;4BACtB,KAAK,EAAE,OAAO;4BACd,IAAI,EAAE,uDAAuD;4BAC7D,SAAS,EAAE,CAAC,iBAAiB,CAAC;yBAC/B;qBACF;iBACF;aACF;SACF,CAAC,EACF,SAAS,CACV,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAE,gBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,wBAAwB,GAAG,EAAE;aAChC,EAAE,EAAE;aACJ,qBAAqB,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;aACxE,qBAAqB,CAAC,EAAE,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,wBAAwB,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE,wBAAwB,EAAE,gBAAgB,EAAE;SACzD,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAC9B,UAAU,CAAC;YACT,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE;YAC7F,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,uBAAuB;4BAC7B,IAAI,EAAE,eAAe;4BACrB,OAAO,EAAE,+BAA+B;4BACxC,aAAa,EAAE,IAAI;4BACnB,WAAW,EAAE,IAAI;yBAClB;qBACF;iBACF;aACF;SACF,CAAC,EACF,SAAS,CACV,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAE,gBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACtF,MAAM,CAAC,wBAAwB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uFAAuF,EAAE,KAAK,IAAI,EAAE;QACrG,MAAM,wBAAwB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;YACtE,IAAI,OAAO,KAAK,qBAAqB;gBAAE,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YAC/F,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,2CAA2C,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE,wBAAwB,EAAE,gBAAgB,EAAE;SACzD,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAC9B,UAAU,CAAC;YACT,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;YAC7B,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,qBAAqB;4BAC3B,IAAI,EAAE,eAAe;4BACrB,OAAO,EAAE,qBAAqB;4BAC9B,aAAa,EAAE,IAAI;4BACnB,WAAW,EAAE,KAAK;yBACnB;wBACD;4BACE,IAAI,EAAE,qBAAqB;4BAC3B,IAAI,EAAE,eAAe;4BACrB,OAAO,EAAE,gBAAgB;4BACzB,aAAa,EAAE,IAAI;4BACnB,WAAW,EAAE,IAAI;yBAClB;wBACD;4BACE,IAAI,EAAE,eAAe;4BACrB,KAAK,EAAE,OAAO;4BACd,IAAI,EAAE,oFAAoF;4BAC1F,SAAS,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;yBAC1D;qBACF;iBACF;aACF;SACF,CAAC,EACF,SAAS,CACV,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,wBAAwB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAE,gBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACtF,MAAM,CAAE,gBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QACjG,MAAM,wBAAwB,GAAG,EAAE;aAChC,EAAE,EAAE;aACJ,qBAAqB,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;aAC9D,qBAAqB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,yBAAyB,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE,wBAAwB,EAAE,gBAAgB,EAAE;SACzD,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAC9B,UAAU,CAAC;YACT,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACvE,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE;gBACrD,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,WAAW,EAAE,KAAK,EAAE;aAC5F;SACF,CAAC,EACF,SAAS,CACV,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAE,gBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAClG,MAAM,wBAAwB,GAAG,EAAE;aAChC,EAAE,EAAE;aACJ,qBAAqB,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;aAC9D,qBAAqB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,yBAAyB,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE,wBAAwB,EAAE,gBAAgB,EAAE;SACzD,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAC9B,UAAU,CAAC;YACT,aAAa,EAAE;gBACb,QAAQ,EAAE,OAAO;gBACjB,aAAa,EAAE,CAAC;gBAChB,YAAY,EAAE,CAAC;gBACf,WAAW,EAAE,sBAAsB;aACpC;SACF,CAAC,EACF,SAAS,CACV,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAE,gBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC,CAAC,CAAC;QACpF,MAAM,aAAa,GAAG,mCAAmC,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;QACnF,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAEtF,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,iCAAiC,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,MAAM;YACX,QAAQ,EAAE,EAAE,gBAAgB,EAAE;SAC/B,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAC9B,UAAU,CAAC;gBACT,SAAS,EAAE;oBACT;wBACE,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE;4BACL;gCACE,IAAI,EAAE,iBAAiB;gCACvB,IAAI,EAAE,eAAe;gCACrB,OAAO,EAAE,mBAAmB;gCAC5B,aAAa,EAAE,IAAI;gCACnB,WAAW,EAAE,KAAK;6BACnB;4BACD;gCACE,IAAI,EAAE,gBAAgB;gCACtB,KAAK,EAAE,OAAO;gCACd,IAAI,EAAE,yDAAyD;gCAC/D,SAAS,EAAE,CAAC,iBAAiB,CAAC;6BAC/B;yBACF;qBACF;iBACF;aACF,CAAC,EACF,SAAS,EACT,SAAS,EACT,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAC/C,CAAC;YAEF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAE,gBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;QAC3F,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO,+BAA+B,CAAC;YAC3E,IAAK,gBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1G,OAAO,uCAAuC,CAAC;YACjD,CAAC;YACD,OAAO,oDAAoD,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE,gBAAgB,EAAE;SAC/B,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAC9B,UAAU,CAAC;YACT,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,gBAAgB;4BACtB,KAAK,EAAE,OAAO;4BACd,IAAI,EAAE,uCAAuC;4BAC7C,YAAY,EAAE;gCACZ,IAAI,EAAE,iBAAiB;gCACvB,KAAK,EAAE,iCAAiC;6BACzC;yBACF;qBACF;iBACF;aACF;SACF,CAAC,EACF,SAAS,CACV,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAE,gBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;QACtG,MAAM,CAAE,gBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uFAAuF,EAAE,KAAK,IAAI,EAAE;QACrG,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC5C,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO,kCAAkC,CAAC;YAC9E,MAAM,aAAa,GAAI,gBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAC/D,CAAC,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,CACjD,CAAC,MAAM,CAAC;YACT,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,gEAAgE,CAAC;YAC1E,CAAC;YACD,OAAO,uEAAuE,CAAC;QACjF,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE,gBAAgB,EAAE;SAC/B,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAC9B,UAAU,CAAC;YACT,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,qBAAqB;4BAC3B,KAAK,EAAE,OAAO;4BACd,IAAI,EAAE,wDAAwD;4BAC9D,YAAY,EAAE;gCACZ,IAAI,EAAE,iBAAiB;gCACvB,KAAK,EAAE,iCAAiC;6BACzC;yBACF;wBACD;4BACE,IAAI,EAAE,eAAe;4BACrB,IAAI,EAAE,eAAe;4BACrB,OAAO,EAAE,MAAM;4BACf,SAAS,EAAE,CAAC,qBAAqB,CAAC;yBACnC;qBACF;iBACF;aACF;SACF,CAAC,EACF,SAAS,CACV,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAE,gBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,wBAAwB,GAAG,EAAE;aAChC,EAAE,EAAE;aACJ,qBAAqB,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;aAClE,qBAAqB,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;aACxE,qBAAqB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QACpE,MAAM,gBAAgB,GAAG,EAAE;aACxB,EAAE,EAAE;aACJ,qBAAqB,CAAC,mDAAmD,CAAC;aAC1E,qBAAqB,CAAC,qCAAqC,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE,wBAAwB,EAAE,gBAAgB,EAAE;SACzD,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAC9B,UAAU,CAAC;YACT,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE;SAC9F,CAAC,EACF,SAAS,CACV,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,wBAAwB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;YAC7B,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,SAAS,CAAC;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0DAA0D,EAAE,CAAC;gBAC7F,KAAK,EAAE,0BAA0B;aAClC,CAAC,EACF,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CACjE,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,UAAU,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE;SAClD,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAU,EAAE,KAAU,EAAE,UAAe,EAAE,OAAY,EAAE,EAAE;YACzF,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC5F,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;YACxE,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QACF,MAAc,CAAC,YAAY,GAAG,YAAY,CAAC;QAE5C,MAAM,MAAM,GAAG,MAAO,MAAc,CAAC,0BAA0B,CAC7D;YACE,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,cAAc;YACpB,YAAY,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE;SACzD,EACD;YACE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7D,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;SACpD,EACD,cAAc,CACf,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC3B,gBAAgB,EAAE,MAAM;YACxB,gBAAgB,EAAE,6BAA6B;SAChD,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,wBAAwB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9F,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,mBAAmB,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;YAChC,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,SAAS;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;YAClB,QAAQ,EAAE,EAAE,wBAAwB,EAAE,gBAAgB,EAAE;SACzD,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QAEtG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,CAAC,wBAAwB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=workflow-reliability-e2e.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-reliability-e2e.test.d.ts","sourceRoot":"","sources":["../../../src/workflows/__tests__/workflow-reliability-e2e.test.ts"],"names":[],"mappings":""}