@fractary/faber 2.3.7 → 2.4.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.
- package/dist/workflow/__tests__/resolver.test.js +168 -20
- package/dist/workflow/__tests__/resolver.test.js.map +1 -1
- package/dist/workflow/index.d.ts +2 -2
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +1 -1
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/resolver.d.ts +76 -2
- package/dist/workflow/resolver.d.ts.map +1 -1
- package/dist/workflow/resolver.js +362 -46
- package/dist/workflow/resolver.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import * as fs from 'fs';
|
|
7
7
|
import * as path from 'path';
|
|
8
8
|
import * as os from 'os';
|
|
9
|
-
import { WorkflowResolver, WorkflowNotFoundError, } from '../resolver.js';
|
|
9
|
+
import { WorkflowResolver, WorkflowNotFoundError, SSRFError, } from '../resolver.js';
|
|
10
10
|
describe('WorkflowResolver', () => {
|
|
11
11
|
let testDir;
|
|
12
12
|
let marketplaceRoot;
|
|
@@ -17,8 +17,8 @@ describe('WorkflowResolver', () => {
|
|
|
17
17
|
testDir = fs.mkdtempSync(path.join(os.tmpdir(), 'faber-resolver-test-'));
|
|
18
18
|
marketplaceRoot = path.join(testDir, 'marketplaces');
|
|
19
19
|
projectRoot = path.join(testDir, 'project');
|
|
20
|
-
// Create directory structures
|
|
21
|
-
fs.mkdirSync(path.join(marketplaceRoot, 'fractary-faber/plugins/faber/
|
|
20
|
+
// Create directory structures (new .fractary/faber/workflows location)
|
|
21
|
+
fs.mkdirSync(path.join(marketplaceRoot, 'fractary-faber/plugins/faber/.fractary/faber/workflows'), {
|
|
22
22
|
recursive: true,
|
|
23
23
|
});
|
|
24
24
|
fs.mkdirSync(path.join(projectRoot, '.fractary/faber/workflows'), { recursive: true });
|
|
@@ -34,11 +34,11 @@ describe('WorkflowResolver', () => {
|
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
36
|
/**
|
|
37
|
-
* Helper to create a workflow file
|
|
37
|
+
* Helper to create a workflow file in the new .fractary/faber/workflows location
|
|
38
38
|
*/
|
|
39
39
|
function createWorkflow(namespace, name, config) {
|
|
40
40
|
const basePath = namespace === 'fractary-faber'
|
|
41
|
-
? path.join(marketplaceRoot, 'fractary-faber/plugins/faber/
|
|
41
|
+
? path.join(marketplaceRoot, 'fractary-faber/plugins/faber/.fractary/faber/workflows')
|
|
42
42
|
: path.join(projectRoot, '.fractary/faber/workflows');
|
|
43
43
|
const fullConfig = {
|
|
44
44
|
id: config.id || name,
|
|
@@ -148,7 +148,7 @@ describe('WorkflowResolver', () => {
|
|
|
148
148
|
it('should prepend ancestor global context to child global context', async () => {
|
|
149
149
|
createWorkflow('project', 'child', {
|
|
150
150
|
id: 'child',
|
|
151
|
-
extends: 'fractary-faber:base',
|
|
151
|
+
extends: 'faber@fractary-faber:base',
|
|
152
152
|
context: {
|
|
153
153
|
global: 'Child global context',
|
|
154
154
|
},
|
|
@@ -159,7 +159,7 @@ describe('WorkflowResolver', () => {
|
|
|
159
159
|
it('should prepend ancestor phase context to child phase context', async () => {
|
|
160
160
|
createWorkflow('project', 'child-phase', {
|
|
161
161
|
id: 'child-phase',
|
|
162
|
-
extends: 'fractary-faber:base',
|
|
162
|
+
extends: 'faber@fractary-faber:base',
|
|
163
163
|
context: {
|
|
164
164
|
phases: {
|
|
165
165
|
build: 'Child build context',
|
|
@@ -174,7 +174,7 @@ describe('WorkflowResolver', () => {
|
|
|
174
174
|
it('should override ancestor step context with child step context', async () => {
|
|
175
175
|
createWorkflow('project', 'child-step', {
|
|
176
176
|
id: 'child-step',
|
|
177
|
-
extends: 'fractary-faber:base',
|
|
177
|
+
extends: 'faber@fractary-faber:base',
|
|
178
178
|
context: {
|
|
179
179
|
steps: {
|
|
180
180
|
implement: 'Child implement step (overrides base)',
|
|
@@ -188,7 +188,7 @@ describe('WorkflowResolver', () => {
|
|
|
188
188
|
it('should merge step contexts when different step IDs', async () => {
|
|
189
189
|
createWorkflow('project', 'child-new-step', {
|
|
190
190
|
id: 'child-new-step',
|
|
191
|
-
extends: 'fractary-faber:base',
|
|
191
|
+
extends: 'faber@fractary-faber:base',
|
|
192
192
|
context: {
|
|
193
193
|
steps: {
|
|
194
194
|
'new-step': 'Child new step context',
|
|
@@ -203,7 +203,7 @@ describe('WorkflowResolver', () => {
|
|
|
203
203
|
it('should inherit ancestor context when child has none', async () => {
|
|
204
204
|
createWorkflow('project', 'no-child-context', {
|
|
205
205
|
id: 'no-child-context',
|
|
206
|
-
extends: 'fractary-faber:base',
|
|
206
|
+
extends: 'faber@fractary-faber:base',
|
|
207
207
|
// No context defined
|
|
208
208
|
});
|
|
209
209
|
const resolved = await resolver.resolveWorkflow('no-child-context');
|
|
@@ -218,7 +218,7 @@ describe('WorkflowResolver', () => {
|
|
|
218
218
|
});
|
|
219
219
|
createWorkflow('project', 'child-only-context', {
|
|
220
220
|
id: 'child-only-context',
|
|
221
|
-
extends: 'fractary-faber:no-ctx-base',
|
|
221
|
+
extends: 'faber@fractary-faber:no-ctx-base',
|
|
222
222
|
context: {
|
|
223
223
|
global: 'Child only global',
|
|
224
224
|
},
|
|
@@ -246,7 +246,7 @@ describe('WorkflowResolver', () => {
|
|
|
246
246
|
// Create parent extending core
|
|
247
247
|
createWorkflow('fractary-faber', 'default', {
|
|
248
248
|
id: 'default',
|
|
249
|
-
extends: 'fractary-faber:core',
|
|
249
|
+
extends: 'faber@fractary-faber:core',
|
|
250
250
|
context: {
|
|
251
251
|
global: 'Default global',
|
|
252
252
|
phases: {
|
|
@@ -262,7 +262,7 @@ describe('WorkflowResolver', () => {
|
|
|
262
262
|
it('should accumulate global context from all ancestors (grandparent → parent → child)', async () => {
|
|
263
263
|
createWorkflow('project', 'grandchild', {
|
|
264
264
|
id: 'grandchild',
|
|
265
|
-
extends: 'fractary-faber:default',
|
|
265
|
+
extends: 'faber@fractary-faber:default',
|
|
266
266
|
context: {
|
|
267
267
|
global: 'Grandchild global',
|
|
268
268
|
},
|
|
@@ -273,7 +273,7 @@ describe('WorkflowResolver', () => {
|
|
|
273
273
|
it('should accumulate phase context through inheritance chain', async () => {
|
|
274
274
|
createWorkflow('project', 'grandchild-phase', {
|
|
275
275
|
id: 'grandchild-phase',
|
|
276
|
-
extends: 'fractary-faber:default',
|
|
276
|
+
extends: 'faber@fractary-faber:default',
|
|
277
277
|
context: {
|
|
278
278
|
phases: {
|
|
279
279
|
build: 'Grandchild build',
|
|
@@ -291,7 +291,7 @@ describe('WorkflowResolver', () => {
|
|
|
291
291
|
it('should resolve step contexts with proper override chain', async () => {
|
|
292
292
|
createWorkflow('project', 'grandchild-step', {
|
|
293
293
|
id: 'grandchild-step',
|
|
294
|
-
extends: 'fractary-faber:default',
|
|
294
|
+
extends: 'faber@fractary-faber:default',
|
|
295
295
|
context: {
|
|
296
296
|
steps: {
|
|
297
297
|
'core-step': 'Grandchild overrides core step',
|
|
@@ -310,13 +310,13 @@ describe('WorkflowResolver', () => {
|
|
|
310
310
|
it('should preserve inheritance chain in resolved workflow', async () => {
|
|
311
311
|
createWorkflow('project', 'grandchild-chain', {
|
|
312
312
|
id: 'grandchild-chain',
|
|
313
|
-
extends: 'fractary-faber:default',
|
|
313
|
+
extends: 'faber@fractary-faber:default',
|
|
314
314
|
});
|
|
315
315
|
const resolved = await resolver.resolveWorkflow('grandchild-chain');
|
|
316
316
|
expect(resolved.inheritance_chain).toEqual([
|
|
317
317
|
'grandchild-chain',
|
|
318
|
-
'fractary-faber:default',
|
|
319
|
-
'fractary-faber:core',
|
|
318
|
+
'faber@fractary-faber:default',
|
|
319
|
+
'faber@fractary-faber:core',
|
|
320
320
|
]);
|
|
321
321
|
});
|
|
322
322
|
});
|
|
@@ -405,14 +405,14 @@ describe('WorkflowResolver', () => {
|
|
|
405
405
|
});
|
|
406
406
|
createWorkflow('project', 'extends-legacy', {
|
|
407
407
|
id: 'extends-legacy',
|
|
408
|
-
extends: 'fractary-faber:legacy',
|
|
408
|
+
extends: 'faber@fractary-faber:legacy',
|
|
409
409
|
context: {
|
|
410
410
|
global: 'New context on child',
|
|
411
411
|
},
|
|
412
412
|
});
|
|
413
413
|
const resolved = await resolver.resolveWorkflow('extends-legacy');
|
|
414
414
|
expect(resolved.context?.global).toBe('New context on child');
|
|
415
|
-
expect(resolved.inheritance_chain).toEqual(['extends-legacy', 'fractary-faber:legacy']);
|
|
415
|
+
expect(resolved.inheritance_chain).toEqual(['extends-legacy', 'faber@fractary-faber:legacy']);
|
|
416
416
|
});
|
|
417
417
|
it('should preserve other workflow properties alongside context', async () => {
|
|
418
418
|
createWorkflow('project', 'full-workflow', {
|
|
@@ -470,5 +470,153 @@ describe('WorkflowResolver', () => {
|
|
|
470
470
|
expect(fresh.description).toBe('Second version');
|
|
471
471
|
});
|
|
472
472
|
});
|
|
473
|
+
describe('Flexible Reference Formats', () => {
|
|
474
|
+
/**
|
|
475
|
+
* Helper to create a workflow in explicit plugin@marketplace format
|
|
476
|
+
*/
|
|
477
|
+
function createExplicitWorkflow(marketplace, plugin, name, config) {
|
|
478
|
+
const basePath = path.join(marketplaceRoot, marketplace, 'plugins', plugin, '.fractary/faber/workflows');
|
|
479
|
+
fs.mkdirSync(basePath, { recursive: true });
|
|
480
|
+
const fullConfig = {
|
|
481
|
+
id: config.id || name,
|
|
482
|
+
phases: config.phases || {
|
|
483
|
+
frame: { enabled: true },
|
|
484
|
+
architect: { enabled: true },
|
|
485
|
+
build: { enabled: true },
|
|
486
|
+
evaluate: { enabled: true },
|
|
487
|
+
release: { enabled: true },
|
|
488
|
+
},
|
|
489
|
+
autonomy: config.autonomy || { level: 'guarded' },
|
|
490
|
+
...config,
|
|
491
|
+
};
|
|
492
|
+
fs.writeFileSync(path.join(basePath, `${name}.json`), JSON.stringify(fullConfig, null, 2));
|
|
493
|
+
}
|
|
494
|
+
describe('Explicit plugin@marketplace:workflow Format', () => {
|
|
495
|
+
it('should resolve explicit format: faber@fractary-faber:default', async () => {
|
|
496
|
+
createExplicitWorkflow('fractary-faber', 'faber', 'default', {
|
|
497
|
+
id: 'default',
|
|
498
|
+
description: 'Default workflow from explicit format',
|
|
499
|
+
});
|
|
500
|
+
const resolved = await resolver.resolveWorkflow('faber@fractary-faber:default');
|
|
501
|
+
expect(resolved.id).toBe('default');
|
|
502
|
+
expect(resolved.description).toBe('Default workflow from explicit format');
|
|
503
|
+
expect(resolved.inheritance_chain).toEqual(['faber@fractary-faber:default']);
|
|
504
|
+
});
|
|
505
|
+
it('should resolve explicit format with different marketplace', async () => {
|
|
506
|
+
createExplicitWorkflow('fractary-faber-software', 'faber-software', 'software-development', {
|
|
507
|
+
id: 'software-development',
|
|
508
|
+
description: 'Software development workflow',
|
|
509
|
+
});
|
|
510
|
+
const resolved = await resolver.resolveWorkflow('faber-software@fractary-faber-software:software-development');
|
|
511
|
+
expect(resolved.id).toBe('software-development');
|
|
512
|
+
expect(resolved.description).toBe('Software development workflow');
|
|
513
|
+
});
|
|
514
|
+
it('should support inheritance with explicit format', async () => {
|
|
515
|
+
// Create parent in explicit format
|
|
516
|
+
createExplicitWorkflow('fractary-faber', 'faber', 'core', {
|
|
517
|
+
id: 'core',
|
|
518
|
+
description: 'Core workflow',
|
|
519
|
+
context: {
|
|
520
|
+
global: 'Core global context',
|
|
521
|
+
},
|
|
522
|
+
});
|
|
523
|
+
// Create child extending parent using explicit format
|
|
524
|
+
createWorkflow('project', 'my-workflow', {
|
|
525
|
+
id: 'my-workflow',
|
|
526
|
+
extends: 'faber@fractary-faber:core',
|
|
527
|
+
description: 'My custom workflow',
|
|
528
|
+
context: {
|
|
529
|
+
global: 'My custom context',
|
|
530
|
+
},
|
|
531
|
+
});
|
|
532
|
+
const resolved = await resolver.resolveWorkflow('my-workflow');
|
|
533
|
+
expect(resolved.id).toBe('my-workflow');
|
|
534
|
+
expect(resolved.inheritance_chain).toEqual(['my-workflow', 'faber@fractary-faber:core']);
|
|
535
|
+
expect(resolved.context?.global).toBe('Core global context\n\nMy custom context');
|
|
536
|
+
});
|
|
537
|
+
it('should throw WorkflowNotFoundError for non-existent explicit reference', async () => {
|
|
538
|
+
await expect(resolver.resolveWorkflow('nonexistent@nonexistent-marketplace:workflow')).rejects.toThrow(WorkflowNotFoundError);
|
|
539
|
+
});
|
|
540
|
+
});
|
|
541
|
+
describe('Project-local Format', () => {
|
|
542
|
+
it('should resolve project-local workflow by name only', async () => {
|
|
543
|
+
createWorkflow('project', 'my-local-workflow', {
|
|
544
|
+
id: 'my-local-workflow',
|
|
545
|
+
description: 'Project local workflow',
|
|
546
|
+
});
|
|
547
|
+
const resolved = await resolver.resolveWorkflow('my-local-workflow');
|
|
548
|
+
expect(resolved.id).toBe('my-local-workflow');
|
|
549
|
+
expect(resolved.description).toBe('Project local workflow');
|
|
550
|
+
});
|
|
551
|
+
it('should fallback to plugin defaults for project-local format', async () => {
|
|
552
|
+
// Create workflow in plugin defaults (simulating fallback path)
|
|
553
|
+
createWorkflow('fractary-faber', 'default-fallback', {
|
|
554
|
+
id: 'default-fallback',
|
|
555
|
+
description: 'Fallback workflow from plugin',
|
|
556
|
+
});
|
|
557
|
+
const resolved = await resolver.resolveWorkflow('default-fallback');
|
|
558
|
+
expect(resolved.id).toBe('default-fallback');
|
|
559
|
+
expect(resolved.description).toBe('Fallback workflow from plugin');
|
|
560
|
+
});
|
|
561
|
+
});
|
|
562
|
+
describe('URL Format', () => {
|
|
563
|
+
it('should recognize url: prefix as URL reference', async () => {
|
|
564
|
+
// URL format is detected by the resolver but requires network fetch
|
|
565
|
+
// We test that it throws the appropriate error for an invalid URL
|
|
566
|
+
await expect(resolver.resolveWorkflow('url:https://example.com/nonexistent-workflow.json')).rejects.toThrow();
|
|
567
|
+
});
|
|
568
|
+
});
|
|
569
|
+
describe('Path Security', () => {
|
|
570
|
+
it('should reject path traversal in explicit format plugin name', async () => {
|
|
571
|
+
await expect(resolver.resolveWorkflow('../../../etc/passwd@marketplace:workflow')).rejects.toThrow(/path traversal/);
|
|
572
|
+
});
|
|
573
|
+
it('should reject path traversal in explicit format marketplace name', async () => {
|
|
574
|
+
await expect(resolver.resolveWorkflow('plugin@../../../etc:workflow')).rejects.toThrow(/path traversal/);
|
|
575
|
+
});
|
|
576
|
+
it('should reject path traversal in explicit format workflow name', async () => {
|
|
577
|
+
await expect(resolver.resolveWorkflow('plugin@marketplace:../../../etc/passwd')).rejects.toThrow(/path traversal/);
|
|
578
|
+
});
|
|
579
|
+
it('should reject path traversal in project-local format', async () => {
|
|
580
|
+
await expect(resolver.resolveWorkflow('../../../etc/passwd')).rejects.toThrow(/path traversal/);
|
|
581
|
+
});
|
|
582
|
+
});
|
|
583
|
+
describe('SSRF Security', () => {
|
|
584
|
+
it('should reject HTTP URLs (only HTTPS allowed)', async () => {
|
|
585
|
+
await expect(resolver.resolveWorkflow('url:http://example.com/workflow.json')).rejects.toThrow(SSRFError);
|
|
586
|
+
await expect(resolver.resolveWorkflow('url:http://example.com/workflow.json')).rejects.toThrow(/not allowed.*HTTPS/i);
|
|
587
|
+
});
|
|
588
|
+
it('should reject file:// URLs', async () => {
|
|
589
|
+
await expect(resolver.resolveWorkflow('url:file:///etc/passwd')).rejects.toThrow(SSRFError);
|
|
590
|
+
});
|
|
591
|
+
it('should reject data: URLs', async () => {
|
|
592
|
+
await expect(resolver.resolveWorkflow('url:data:application/json,{"id":"test"}')).rejects.toThrow(SSRFError);
|
|
593
|
+
});
|
|
594
|
+
it('should reject localhost URLs', async () => {
|
|
595
|
+
await expect(resolver.resolveWorkflow('url:https://localhost/workflow.json')).rejects.toThrow(SSRFError);
|
|
596
|
+
await expect(resolver.resolveWorkflow('url:https://localhost/workflow.json')).rejects.toThrow(/[Ll]ocalhost/);
|
|
597
|
+
});
|
|
598
|
+
it('should reject localhost.localdomain URLs', async () => {
|
|
599
|
+
await expect(resolver.resolveWorkflow('url:https://localhost.localdomain/workflow.json')).rejects.toThrow(SSRFError);
|
|
600
|
+
});
|
|
601
|
+
it('should reject .local domain URLs', async () => {
|
|
602
|
+
await expect(resolver.resolveWorkflow('url:https://internal.local/workflow.json')).rejects.toThrow(SSRFError);
|
|
603
|
+
});
|
|
604
|
+
it('should reject .localhost subdomain URLs', async () => {
|
|
605
|
+
await expect(resolver.resolveWorkflow('url:https://evil.localhost/workflow.json')).rejects.toThrow(SSRFError);
|
|
606
|
+
});
|
|
607
|
+
it('should reject invalid URL format', async () => {
|
|
608
|
+
await expect(resolver.resolveWorkflow('url:not-a-valid-url')).rejects.toThrow(SSRFError);
|
|
609
|
+
await expect(resolver.resolveWorkflow('url:not-a-valid-url')).rejects.toThrow(/[Ii]nvalid URL/);
|
|
610
|
+
});
|
|
611
|
+
// Note: Testing actual private IP blocking requires DNS resolution,
|
|
612
|
+
// which is difficult to mock in unit tests. The following tests verify
|
|
613
|
+
// that the URL validation catches common attack patterns.
|
|
614
|
+
it('should block AWS metadata endpoint hostnames', async () => {
|
|
615
|
+
// AWS metadata endpoint typically requires resolution to 169.254.169.254
|
|
616
|
+
// This test verifies the hostname-based protection
|
|
617
|
+
await expect(resolver.resolveWorkflow('url:https://169.254.169.254/latest/meta-data/')).rejects.toThrow();
|
|
618
|
+
});
|
|
619
|
+
});
|
|
620
|
+
});
|
|
473
621
|
});
|
|
474
622
|
//# sourceMappingURL=resolver.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.test.js","sourceRoot":"","sources":["../../../src/workflow/__tests__/resolver.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EACL,gBAAgB,EAEhB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,OAAe,CAAC;IACpB,IAAI,eAAuB,CAAC;IAC5B,IAAI,WAAmB,CAAC;IACxB,IAAI,QAA0B,CAAC;IAE/B,UAAU,CAAC,GAAG,EAAE;QACd,2CAA2C;QAC3C,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;QACzE,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACrD,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAE5C,8BAA8B;QAC9B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,+CAA+C,CAAC,EAAE;YACxF,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvF,QAAQ,GAAG,IAAI,gBAAgB,CAAC;YAC9B,eAAe;YACf,WAAW;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,0BAA0B;QAC1B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,SAAS,cAAc,CACrB,SAAuC,EACvC,IAAY,EACZ,MAAmC;QAEnC,MAAM,QAAQ,GACZ,SAAS,KAAK,gBAAgB;YAC5B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,+CAA+C,CAAC;YAC7E,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;QAE1D,MAAM,UAAU,GAAuB;YACrC,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI;gBACvB,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;gBACxB,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;gBACxB,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC3B,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;aAC3B;YACD,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;YACjD,GAAG,MAAM;SACV,CAAC;QAEF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAChD,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;gBAC1E,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE;oBACtC,EAAE,EAAE,YAAY;iBACjB,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;gBAE9D,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;gBACnE,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE;oBACvC,EAAE,EAAE,aAAa;oBACjB,OAAO,EAAE;wBACP,MAAM,EAAE,8CAA8C;qBACvD;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBAE/D,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;gBACtF,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;gBACjD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;gBACnE,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE;oBACtC,EAAE,EAAE,YAAY;oBAChB,OAAO,EAAE;wBACP,MAAM,EAAE;4BACN,KAAK,EAAE,oBAAoB;4BAC3B,QAAQ,EAAE,sBAAsB;yBACjC;qBACF;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;gBAE9D,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;gBACjD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACnE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACxE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;gBAClE,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE;oBACrC,EAAE,EAAE,WAAW;oBACf,OAAO,EAAE;wBACP,KAAK,EAAE;4BACL,SAAS,EAAE,qCAAqC;4BAChD,eAAe,EAAE,wBAAwB;yBAC1C;qBACF;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;gBAE7D,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;gBACvF,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;gBACvE,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE;oBACxC,EAAE,EAAE,cAAc;oBAClB,OAAO,EAAE;wBACP,MAAM,EAAE,iBAAiB;wBACzB,MAAM,EAAE;4BACN,KAAK,EAAE,qBAAqB;yBAC7B;wBACD,KAAK,EAAE;4BACL,SAAS,EAAE,cAAc;yBAC1B;qBACF;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;gBAEhE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;gBACvC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACzD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACpE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;YACrC,UAAU,CAAC,GAAG,EAAE;gBACd,wCAAwC;gBACxC,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE;oBACvC,EAAE,EAAE,MAAM;oBACV,OAAO,EAAE;wBACP,MAAM,EAAE,qBAAqB;wBAC7B,MAAM,EAAE;4BACN,KAAK,EAAE,oBAAoB;4BAC3B,QAAQ,EAAE,uBAAuB;yBAClC;wBACD,KAAK,EAAE;4BACL,SAAS,EAAE,qBAAqB;yBACjC;qBACF;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;gBAC9E,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE;oBACjC,EAAE,EAAE,OAAO;oBACX,OAAO,EAAE,qBAAqB;oBAC9B,OAAO,EAAE;wBACP,MAAM,EAAE,sBAAsB;qBAC/B;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAEzD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACvF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;gBAC5E,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE;oBACvC,EAAE,EAAE,aAAa;oBACjB,OAAO,EAAE,qBAAqB;oBAC9B,OAAO,EAAE;wBACP,MAAM,EAAE;4BACN,KAAK,EAAE,qBAAqB;yBAC7B;qBACF;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;gBAE/D,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;gBAC1F,sCAAsC;gBACtC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;gBAC7E,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE;oBACtC,EAAE,EAAE,YAAY;oBAChB,OAAO,EAAE,qBAAqB;oBAC9B,OAAO,EAAE;wBACP,KAAK,EAAE;4BACL,SAAS,EAAE,uCAAuC;yBACnD;qBACF;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;gBAE9D,4CAA4C;gBAC5C,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YAC3F,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;gBAClE,cAAc,CAAC,SAAS,EAAE,gBAAgB,EAAE;oBAC1C,EAAE,EAAE,gBAAgB;oBACpB,OAAO,EAAE,qBAAqB;oBAC9B,OAAO,EAAE;wBACP,KAAK,EAAE;4BACL,UAAU,EAAE,wBAAwB;yBACrC;qBACF;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;gBAElE,uCAAuC;gBACvC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACvE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC/E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;gBACnE,cAAc,CAAC,SAAS,EAAE,kBAAkB,EAAE;oBAC5C,EAAE,EAAE,kBAAkB;oBACtB,OAAO,EAAE,qBAAqB;oBAC9B,qBAAqB;iBACtB,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;gBAEpE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBAC7D,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACnE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;gBAC/D,kCAAkC;gBAClC,cAAc,CAAC,gBAAgB,EAAE,aAAa,EAAE;oBAC9C,EAAE,EAAE,aAAa;iBAClB,CAAC,CAAC;gBAEH,cAAc,CAAC,SAAS,EAAE,oBAAoB,EAAE;oBAC9C,EAAE,EAAE,oBAAoB;oBACxB,OAAO,EAAE,4BAA4B;oBACrC,OAAO,EAAE;wBACP,MAAM,EAAE,mBAAmB;qBAC5B;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;gBAEtE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACvC,UAAU,CAAC,GAAG,EAAE;gBACd,4BAA4B;gBAC5B,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE;oBACvC,EAAE,EAAE,MAAM;oBACV,OAAO,EAAE;wBACP,MAAM,EAAE,aAAa;wBACrB,MAAM,EAAE;4BACN,KAAK,EAAE,YAAY;4BACnB,KAAK,EAAE,YAAY;yBACpB;wBACD,KAAK,EAAE;4BACL,WAAW,EAAE,mBAAmB;yBACjC;qBACF;iBACF,CAAC,CAAC;gBAEH,+BAA+B;gBAC/B,cAAc,CAAC,gBAAgB,EAAE,SAAS,EAAE;oBAC1C,EAAE,EAAE,SAAS;oBACb,OAAO,EAAE,qBAAqB;oBAC9B,OAAO,EAAE;wBACP,MAAM,EAAE,gBAAgB;wBACxB,MAAM,EAAE;4BACN,KAAK,EAAE,eAAe;4BACtB,QAAQ,EAAE,kBAAkB;yBAC7B;wBACD,KAAK,EAAE;4BACL,cAAc,EAAE,sBAAsB;yBACvC;qBACF;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;gBAClG,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE;oBACtC,EAAE,EAAE,YAAY;oBAChB,OAAO,EAAE,wBAAwB;oBACjC,OAAO,EAAE;wBACP,MAAM,EAAE,mBAAmB;qBAC5B;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;gBAE9D,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YAC9F,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;gBACzE,cAAc,CAAC,SAAS,EAAE,kBAAkB,EAAE;oBAC5C,EAAE,EAAE,kBAAkB;oBACtB,OAAO,EAAE,wBAAwB;oBACjC,OAAO,EAAE;wBACP,MAAM,EAAE;4BACN,KAAK,EAAE,kBAAkB;yBAC1B;qBACF;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;gBAEpE,qCAAqC;gBACrC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAC1C,iDAAiD,CAClD,CAAC;gBACF,mBAAmB;gBACnB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC3D,yBAAyB;gBACzB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;gBACvE,cAAc,CAAC,SAAS,EAAE,iBAAiB,EAAE;oBAC3C,EAAE,EAAE,iBAAiB;oBACrB,OAAO,EAAE,wBAAwB;oBACjC,OAAO,EAAE;wBACP,KAAK,EAAE;4BACL,WAAW,EAAE,gCAAgC;4BAC7C,iBAAiB,EAAE,qBAAqB;yBACzC;qBACF;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;gBAEnE,kCAAkC;gBAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBACtF,6BAA6B;gBAC7B,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBAC/E,mCAAmC;gBACnC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;gBACtE,cAAc,CAAC,SAAS,EAAE,kBAAkB,EAAE;oBAC5C,EAAE,EAAE,kBAAkB;oBACtB,OAAO,EAAE,wBAAwB;iBAClC,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;gBAEpE,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;oBACzC,kBAAkB;oBAClB,wBAAwB;oBACxB,qBAAqB;iBACtB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;gBAC7D,cAAc,CAAC,SAAS,EAAE,eAAe,EAAE;oBACzC,EAAE,EAAE,eAAe;oBACnB,OAAO,EAAE,EAAE;iBACZ,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;gBAEjE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;gBACzD,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE;oBACxC,EAAE,EAAE,cAAc;oBAClB,OAAO,EAAE;wBACP,MAAM,EAAE,EAAE;wBACV,MAAM,EAAE;4BACN,KAAK,EAAE,EAAE;yBACV;qBACF;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;gBAEhE,0CAA0C;gBAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;gBAC1D,cAAc,CAAC,SAAS,EAAE,oBAAoB,EAAE;oBAC9C,EAAE,EAAE,oBAAoB;oBACxB,OAAO,EAAE;wBACP,MAAM,EAAE,IAAI;qBACb;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;gBAEtE,0CAA0C;gBAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;gBAC3D,MAAM,YAAY,GAAG,2DAA2D,CAAC;gBACjF,cAAc,CAAC,SAAS,EAAE,eAAe,EAAE;oBACzC,EAAE,EAAE,eAAe;oBACnB,OAAO,EAAE;wBACP,MAAM,EAAE,YAAY;qBACrB;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;gBAEjE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;gBACvD,MAAM,SAAS,GAAG,0BAA0B,CAAC;gBAC7C,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE;oBACrC,EAAE,EAAE,WAAW;oBACf,OAAO,EAAE;wBACP,MAAM,EAAE,SAAS;qBAClB;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;gBAE7D,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;gBACxD,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE;oBACtC,EAAE,EAAE,YAAY;oBAChB,OAAO,EAAE;wBACP,MAAM,EAAE;4BACN,KAAK,EAAE,eAAe;4BACtB,SAAS,EAAE,mBAAmB;4BAC9B,KAAK,EAAE,eAAe;4BACtB,QAAQ,EAAE,kBAAkB;4BAC5B,OAAO,EAAE,iBAAiB;yBAC3B;qBACF;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;gBAE9D,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC9D,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACtE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC9D,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACpE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACtC,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;gBACrE,cAAc,CAAC,gBAAgB,EAAE,QAAQ,EAAE;oBACzC,EAAE,EAAE,QAAQ;oBACZ,WAAW,EAAE,iCAAiC;iBAC/C,CAAC,CAAC;gBAEH,cAAc,CAAC,SAAS,EAAE,gBAAgB,EAAE;oBAC1C,EAAE,EAAE,gBAAgB;oBACpB,OAAO,EAAE,uBAAuB;oBAChC,OAAO,EAAE;wBACP,MAAM,EAAE,sBAAsB;qBAC/B;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;gBAElE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBAC9D,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;gBAC3E,cAAc,CAAC,SAAS,EAAE,eAAe,EAAE;oBACzC,EAAE,EAAE,eAAe;oBACnB,WAAW,EAAE,iCAAiC;oBAC9C,UAAU,EAAE,kBAAkB;oBAC9B,OAAO,EAAE;wBACP,MAAM,EAAE,eAAe;qBACxB;oBACD,QAAQ,EAAE;wBACR,KAAK,EAAE,YAAY;qBACpB;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;gBAEjE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC1C,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBACrE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpD,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE;gBAClC,EAAE,EAAE,QAAQ;gBACZ,WAAW,EAAE,iBAAiB;aAC/B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAE1D,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC5C,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE;gBAClC,EAAE,EAAE,QAAQ;gBACZ,WAAW,EAAE,eAAe;aAC7B,CAAC,CAAC;YAEH,mBAAmB;YACnB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAEhD,kBAAkB;YAClB,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE;gBAClC,EAAE,EAAE,QAAQ;gBACZ,WAAW,EAAE,gBAAgB;aAC9B,CAAC,CAAC;YAEH,iDAAiD;YACjD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC7D,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAEtD,gCAAgC;YAChC,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"resolver.test.js","sourceRoot":"","sources":["../../../src/workflow/__tests__/resolver.test.ts"],"names":[],"mappings":"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"}
|
package/dist/workflow/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { FaberWorkflow } from './faber.js';
|
|
7
7
|
export * from './types.js';
|
|
8
|
-
export { WorkflowResolver } from './resolver.js';
|
|
9
|
-
export type { WorkflowStep, WorkflowPhaseConfig, WorkflowAutonomyConfig, CriticalArtifact, CriticalArtifactsConfig, WorkflowFileConfig, ResolvedWorkflow, ResolvedPhase, WorkflowResolverOptions, } from './resolver.js';
|
|
8
|
+
export { WorkflowResolver, resolveStepResultHandling, DEFAULT_RESULT_HANDLING } from './resolver.js';
|
|
9
|
+
export type { WorkflowStep, WorkflowPhaseConfig, WorkflowAutonomyConfig, CriticalArtifact, CriticalArtifactsConfig, WorkflowFileConfig, ResolvedWorkflow, ResolvedPhase, WorkflowResolverOptions, StepResultHandling, } from './resolver.js';
|
|
10
10
|
export { WorkflowNotFoundError, CircularInheritanceError, DuplicateStepIdError, InvalidWorkflowError, } from './resolver.js';
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACrG,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
|
package/dist/workflow/index.js
CHANGED
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
export { FaberWorkflow } from './faber.js';
|
|
7
7
|
export * from './types.js';
|
|
8
8
|
// Workflow inheritance resolution
|
|
9
|
-
export { WorkflowResolver } from './resolver.js';
|
|
9
|
+
export { WorkflowResolver, resolveStepResultHandling, DEFAULT_RESULT_HANDLING } from './resolver.js';
|
|
10
10
|
export { WorkflowNotFoundError, CircularInheritanceError, DuplicateStepIdError, InvalidWorkflowError, } from './resolver.js';
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,cAAc,YAAY,CAAC;AAE3B,kCAAkC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflow/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,cAAc,YAAY,CAAC;AAE3B,kCAAkC;AAClC,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAarG,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,eAAe,CAAC"}
|
|
@@ -6,6 +6,22 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Centralized workflow resolution ensures consistent behavior across CLI, MCP, and agents.
|
|
8
8
|
*/
|
|
9
|
+
/**
|
|
10
|
+
* Result handling configuration for steps.
|
|
11
|
+
* Defines behavior for different execution outcomes.
|
|
12
|
+
*/
|
|
13
|
+
export interface StepResultHandling {
|
|
14
|
+
/** Action on success: 'continue' (default) or 'prompt', or slash command */
|
|
15
|
+
on_success?: 'continue' | 'prompt' | string;
|
|
16
|
+
/** Action on warning: 'continue' (default), 'prompt', 'stop', or slash command */
|
|
17
|
+
on_warning?: 'continue' | 'prompt' | 'stop' | string;
|
|
18
|
+
/** Action on failure: 'stop' (default) or slash command for recovery */
|
|
19
|
+
on_failure?: 'stop' | string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Default result handling values (schema defaults).
|
|
23
|
+
*/
|
|
24
|
+
export declare const DEFAULT_RESULT_HANDLING: Required<Omit<StepResultHandling, 'on_pending_input'>>;
|
|
9
25
|
/**
|
|
10
26
|
* Step definition in a workflow phase
|
|
11
27
|
*/
|
|
@@ -18,6 +34,8 @@ export interface WorkflowStep {
|
|
|
18
34
|
skip_if?: string;
|
|
19
35
|
require_if?: string;
|
|
20
36
|
};
|
|
37
|
+
/** Result handling configuration for this step */
|
|
38
|
+
result_handling?: StepResultHandling;
|
|
21
39
|
/** Source workflow ID (added during merge) */
|
|
22
40
|
source?: string;
|
|
23
41
|
/** Position type (added during merge) */
|
|
@@ -34,6 +52,8 @@ export interface WorkflowPhaseConfig {
|
|
|
34
52
|
post_steps?: WorkflowStep[];
|
|
35
53
|
require_approval?: boolean;
|
|
36
54
|
max_retries?: number;
|
|
55
|
+
/** Default result handling for all steps in this phase */
|
|
56
|
+
result_handling?: StepResultHandling;
|
|
37
57
|
}
|
|
38
58
|
/**
|
|
39
59
|
* Autonomy configuration in workflow file
|
|
@@ -105,6 +125,8 @@ export interface WorkflowFileConfig {
|
|
|
105
125
|
integrations?: Record<string, unknown>;
|
|
106
126
|
/** Context overlays for injecting additional instructions into inherited steps */
|
|
107
127
|
context?: ContextOverlays;
|
|
128
|
+
/** Default result handling for all steps in all phases (workflow-level global default) */
|
|
129
|
+
result_handling?: StepResultHandling;
|
|
108
130
|
}
|
|
109
131
|
/**
|
|
110
132
|
* Resolved (merged) workflow with inheritance applied
|
|
@@ -128,6 +150,8 @@ export interface ResolvedWorkflow {
|
|
|
128
150
|
integrations?: Record<string, unknown>;
|
|
129
151
|
/** Merged context overlays from inheritance chain */
|
|
130
152
|
context?: ContextOverlays;
|
|
153
|
+
/** Global result handling default for all steps */
|
|
154
|
+
result_handling?: StepResultHandling;
|
|
131
155
|
}
|
|
132
156
|
/**
|
|
133
157
|
* Resolved phase with merged steps
|
|
@@ -139,6 +163,8 @@ export interface ResolvedPhase {
|
|
|
139
163
|
steps: WorkflowStep[];
|
|
140
164
|
require_approval?: boolean;
|
|
141
165
|
max_retries?: number;
|
|
166
|
+
/** Default result handling for steps in this phase */
|
|
167
|
+
result_handling?: StepResultHandling;
|
|
142
168
|
}
|
|
143
169
|
export interface WorkflowResolverOptions {
|
|
144
170
|
/** Marketplace root directory (default: ~/.claude/plugins/marketplaces) */
|
|
@@ -165,6 +191,11 @@ export declare class InvalidWorkflowError extends Error {
|
|
|
165
191
|
reason: string;
|
|
166
192
|
constructor(workflowId: string, reason: string);
|
|
167
193
|
}
|
|
194
|
+
export declare class SSRFError extends Error {
|
|
195
|
+
url: string;
|
|
196
|
+
reason: string;
|
|
197
|
+
constructor(url: string, reason: string);
|
|
198
|
+
}
|
|
168
199
|
/**
|
|
169
200
|
* Resolves workflow inheritance chains and merges phases.
|
|
170
201
|
*
|
|
@@ -200,7 +231,8 @@ export declare class WorkflowResolver {
|
|
|
200
231
|
private buildInheritanceChain;
|
|
201
232
|
/**
|
|
202
233
|
* Load a workflow file by ID.
|
|
203
|
-
* Supports
|
|
234
|
+
* Supports URL references, explicit plugin@marketplace references,
|
|
235
|
+
* and project-local references with fallback to plugin defaults.
|
|
204
236
|
*/
|
|
205
237
|
private loadWorkflowFile;
|
|
206
238
|
/**
|
|
@@ -208,7 +240,28 @@ export declare class WorkflowResolver {
|
|
|
208
240
|
*/
|
|
209
241
|
private loadAndCacheWorkflow;
|
|
210
242
|
/**
|
|
211
|
-
*
|
|
243
|
+
* Fetch a workflow from a URL with caching.
|
|
244
|
+
* Cache is valid for 1 hour.
|
|
245
|
+
*
|
|
246
|
+
* Security: Validates URL to prevent SSRF attacks before fetching.
|
|
247
|
+
*/
|
|
248
|
+
private fetchWorkflowFromUrl;
|
|
249
|
+
/**
|
|
250
|
+
* Hash a string using SHA-256.
|
|
251
|
+
*/
|
|
252
|
+
private hashString;
|
|
253
|
+
/**
|
|
254
|
+
* Clean up expired cache entries (older than 1 hour).
|
|
255
|
+
* Called opportunistically when writing new cache files.
|
|
256
|
+
* Errors are silently ignored to not disrupt normal operations.
|
|
257
|
+
*/
|
|
258
|
+
private cleanupExpiredCache;
|
|
259
|
+
/**
|
|
260
|
+
* Resolve a workflow ID to a file path or URL reference.
|
|
261
|
+
* Supports three formats:
|
|
262
|
+
* 1. URL: url:https://example.com/workflow.json
|
|
263
|
+
* 2. Explicit: plugin@marketplace:workflow
|
|
264
|
+
* 3. Project-local: workflow-name
|
|
212
265
|
* Validates all path components to prevent path traversal attacks.
|
|
213
266
|
*/
|
|
214
267
|
private resolveWorkflowPath;
|
|
@@ -244,4 +297,25 @@ export declare class WorkflowResolver {
|
|
|
244
297
|
*/
|
|
245
298
|
clearCache(): void;
|
|
246
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* Resolve result handling configuration for a step.
|
|
302
|
+
*
|
|
303
|
+
* Cascades configuration from multiple levels with the following precedence
|
|
304
|
+
* (highest to lowest):
|
|
305
|
+
* 1. Step-level (inline result_handling on the step)
|
|
306
|
+
* 2. Phase-level (result_handling in phase definition)
|
|
307
|
+
* 3. Workflow-level (result_handling at workflow root)
|
|
308
|
+
* 4. Schema defaults
|
|
309
|
+
*
|
|
310
|
+
* This allows defining common error handlers (like workflow-debugger) once
|
|
311
|
+
* at the workflow level instead of repeating on every step.
|
|
312
|
+
*
|
|
313
|
+
* @param workflow - The resolved workflow configuration
|
|
314
|
+
* @param phaseName - Current phase name (frame, architect, build, evaluate, release)
|
|
315
|
+
* @param step - The step configuration
|
|
316
|
+
* @returns Merged result handling with all levels applied
|
|
317
|
+
*/
|
|
318
|
+
export declare function resolveStepResultHandling(workflow: ResolvedWorkflow | WorkflowFileConfig, phaseName: 'frame' | 'architect' | 'build' | 'evaluate' | 'release', step: WorkflowStep): Required<Omit<StepResultHandling, 'on_pending_input'>> & {
|
|
319
|
+
on_pending_input: 'wait';
|
|
320
|
+
};
|
|
247
321
|
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/workflow/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/workflow/resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,20 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Centralized workflow resolution ensures consistent behavior across CLI, MCP, and agents.
|
|
8
8
|
*/
|
|
9
|
+
import * as crypto from 'crypto';
|
|
10
|
+
import * as dns from 'dns';
|
|
9
11
|
import * as fs from 'fs';
|
|
10
12
|
import * as os from 'os';
|
|
11
13
|
import * as path from 'path';
|
|
14
|
+
import { promisify } from 'util';
|
|
15
|
+
/**
|
|
16
|
+
* Default result handling values (schema defaults).
|
|
17
|
+
*/
|
|
18
|
+
export const DEFAULT_RESULT_HANDLING = {
|
|
19
|
+
on_success: 'continue',
|
|
20
|
+
on_warning: 'continue',
|
|
21
|
+
on_failure: 'stop',
|
|
22
|
+
};
|
|
12
23
|
// ============================================================================
|
|
13
24
|
// Custom Errors
|
|
14
25
|
// ============================================================================
|
|
@@ -50,6 +61,120 @@ export class InvalidWorkflowError extends Error {
|
|
|
50
61
|
this.name = 'InvalidWorkflowError';
|
|
51
62
|
}
|
|
52
63
|
}
|
|
64
|
+
export class SSRFError extends Error {
|
|
65
|
+
url;
|
|
66
|
+
reason;
|
|
67
|
+
constructor(url, reason) {
|
|
68
|
+
super(`SSRF protection blocked URL ${url}: ${reason}`);
|
|
69
|
+
this.url = url;
|
|
70
|
+
this.reason = reason;
|
|
71
|
+
this.name = 'SSRFError';
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// ============================================================================
|
|
75
|
+
// URL Security Helpers
|
|
76
|
+
// ============================================================================
|
|
77
|
+
const dnsLookup = promisify(dns.lookup);
|
|
78
|
+
/** Timeout for URL fetch operations (30 seconds) */
|
|
79
|
+
const URL_FETCH_TIMEOUT_MS = 30000;
|
|
80
|
+
/** Allowed URL schemes for workflow references */
|
|
81
|
+
const ALLOWED_URL_SCHEMES = ['https:'];
|
|
82
|
+
/**
|
|
83
|
+
* Check if an IP address is in a private/internal range.
|
|
84
|
+
* Blocks: localhost, private networks, link-local, loopback
|
|
85
|
+
*/
|
|
86
|
+
function isPrivateIP(ip) {
|
|
87
|
+
// IPv4 patterns
|
|
88
|
+
const ipv4Patterns = [
|
|
89
|
+
/^127\./, // 127.0.0.0/8 - Loopback
|
|
90
|
+
/^10\./, // 10.0.0.0/8 - Private
|
|
91
|
+
/^172\.(1[6-9]|2[0-9]|3[0-1])\./, // 172.16.0.0/12 - Private
|
|
92
|
+
/^192\.168\./, // 192.168.0.0/16 - Private
|
|
93
|
+
/^169\.254\./, // 169.254.0.0/16 - Link-local (AWS metadata!)
|
|
94
|
+
/^0\./, // 0.0.0.0/8 - Current network
|
|
95
|
+
/^100\.(6[4-9]|[7-9][0-9]|1[0-1][0-9]|12[0-7])\./, // 100.64.0.0/10 - Carrier-grade NAT
|
|
96
|
+
/^192\.0\.0\./, // 192.0.0.0/24 - IETF Protocol Assignments
|
|
97
|
+
/^192\.0\.2\./, // 192.0.2.0/24 - TEST-NET-1
|
|
98
|
+
/^198\.(1[89])\./, // 198.18.0.0/15 - Benchmarking
|
|
99
|
+
/^198\.51\.100\./, // 198.51.100.0/24 - TEST-NET-2
|
|
100
|
+
/^203\.0\.113\./, // 203.0.113.0/24 - TEST-NET-3
|
|
101
|
+
/^224\./, // 224.0.0.0/4 - Multicast
|
|
102
|
+
/^240\./, // 240.0.0.0/4 - Reserved
|
|
103
|
+
/^255\.255\.255\.255$/, // Broadcast
|
|
104
|
+
];
|
|
105
|
+
// IPv6 patterns
|
|
106
|
+
const ipv6Patterns = [
|
|
107
|
+
/^::1$/, // Loopback
|
|
108
|
+
/^fe80:/i, // Link-local
|
|
109
|
+
/^fc00:/i, // Unique local (private)
|
|
110
|
+
/^fd[0-9a-f]{2}:/i, // Unique local (private)
|
|
111
|
+
/^::ffff:(127\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.|192\.168\.|169\.254\.)/i, // IPv4-mapped
|
|
112
|
+
];
|
|
113
|
+
for (const pattern of ipv4Patterns) {
|
|
114
|
+
if (pattern.test(ip))
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
for (const pattern of ipv6Patterns) {
|
|
118
|
+
if (pattern.test(ip))
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Validate a URL for SSRF protection.
|
|
125
|
+
* Throws SSRFError if the URL is potentially dangerous.
|
|
126
|
+
*
|
|
127
|
+
* SECURITY NOTE: DNS Rebinding (TOCTOU) Limitation
|
|
128
|
+
* ------------------------------------------------
|
|
129
|
+
* This validation has a Time-of-Check-Time-of-Use vulnerability: the DNS
|
|
130
|
+
* resolution performed here may return a different IP than the one used
|
|
131
|
+
* by the subsequent fetch() call. An attacker with DNS control could:
|
|
132
|
+
* 1. First resolution (validation): returns public IP -> passes validation
|
|
133
|
+
* 2. Second resolution (fetch): returns private IP -> SSRF achieved
|
|
134
|
+
*
|
|
135
|
+
* Mitigation requires a custom HTTP agent that validates IP at connection
|
|
136
|
+
* time, which is complex to implement. For workflow references, this risk
|
|
137
|
+
* is acceptable because:
|
|
138
|
+
* - URL references are typically from trusted sources (marketplace configs)
|
|
139
|
+
* - The attacker would need DNS control over the domain
|
|
140
|
+
* - Additional mitigations exist (HTTPS-only, redirect blocking)
|
|
141
|
+
*
|
|
142
|
+
* For high-security environments, disable URL references entirely and use
|
|
143
|
+
* only explicit plugin@marketplace:workflow or project-local references.
|
|
144
|
+
*/
|
|
145
|
+
async function validateUrlSecurity(url) {
|
|
146
|
+
let parsedUrl;
|
|
147
|
+
try {
|
|
148
|
+
parsedUrl = new URL(url);
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
throw new SSRFError(url, 'Invalid URL format');
|
|
152
|
+
}
|
|
153
|
+
// Check scheme (only HTTPS allowed)
|
|
154
|
+
if (!ALLOWED_URL_SCHEMES.includes(parsedUrl.protocol)) {
|
|
155
|
+
throw new SSRFError(url, `URL scheme '${parsedUrl.protocol}' not allowed. Only HTTPS is permitted.`);
|
|
156
|
+
}
|
|
157
|
+
// Block localhost hostnames
|
|
158
|
+
const hostname = parsedUrl.hostname.toLowerCase();
|
|
159
|
+
if (hostname === 'localhost' ||
|
|
160
|
+
hostname === 'localhost.localdomain' ||
|
|
161
|
+
hostname.endsWith('.localhost') ||
|
|
162
|
+
hostname.endsWith('.local')) {
|
|
163
|
+
throw new SSRFError(url, 'Localhost URLs are not allowed');
|
|
164
|
+
}
|
|
165
|
+
// Resolve hostname to IP and check if private
|
|
166
|
+
try {
|
|
167
|
+
const { address } = await dnsLookup(hostname);
|
|
168
|
+
if (isPrivateIP(address)) {
|
|
169
|
+
throw new SSRFError(url, `URL resolves to private/internal IP address (${address})`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
if (error instanceof SSRFError)
|
|
174
|
+
throw error;
|
|
175
|
+
throw new SSRFError(url, `Failed to resolve hostname: ${error.message}`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
53
178
|
// ============================================================================
|
|
54
179
|
// Workflow Resolver Class
|
|
55
180
|
// ============================================================================
|
|
@@ -133,6 +258,10 @@ export class WorkflowResolver {
|
|
|
133
258
|
if (context && (context.global || Object.keys(context.phases || {}).length > 0 || Object.keys(context.steps || {}).length > 0)) {
|
|
134
259
|
resolved.context = context;
|
|
135
260
|
}
|
|
261
|
+
// Include workflow-level result_handling if defined
|
|
262
|
+
if (childWorkflow.result_handling) {
|
|
263
|
+
resolved.result_handling = childWorkflow.result_handling;
|
|
264
|
+
}
|
|
136
265
|
return resolved;
|
|
137
266
|
}
|
|
138
267
|
/**
|
|
@@ -158,19 +287,26 @@ export class WorkflowResolver {
|
|
|
158
287
|
}
|
|
159
288
|
/**
|
|
160
289
|
* Load a workflow file by ID.
|
|
161
|
-
* Supports
|
|
290
|
+
* Supports URL references, explicit plugin@marketplace references,
|
|
291
|
+
* and project-local references with fallback to plugin defaults.
|
|
162
292
|
*/
|
|
163
293
|
async loadWorkflowFile(workflowId) {
|
|
164
294
|
// Check cache first
|
|
165
295
|
if (this.workflowCache.has(workflowId)) {
|
|
166
296
|
return this.workflowCache.get(workflowId);
|
|
167
297
|
}
|
|
168
|
-
const
|
|
298
|
+
const pathOrUrl = this.resolveWorkflowPath(workflowId);
|
|
299
|
+
// Handle URL references
|
|
300
|
+
if (typeof pathOrUrl === 'object' && pathOrUrl.type === 'url') {
|
|
301
|
+
return this.fetchWorkflowFromUrl(workflowId, pathOrUrl.url);
|
|
302
|
+
}
|
|
303
|
+
// At this point, pathOrUrl is guaranteed to be a string
|
|
304
|
+
const filePath = pathOrUrl;
|
|
169
305
|
const searchedPaths = [filePath];
|
|
170
306
|
if (!fs.existsSync(filePath)) {
|
|
171
|
-
// Fallback: if no
|
|
172
|
-
if (!workflowId.includes(':')) {
|
|
173
|
-
const fallbackPath = path.join(this.marketplaceRoot, 'fractary-faber/plugins/faber/
|
|
307
|
+
// Fallback: if project-local (no @ or :), try plugin defaults
|
|
308
|
+
if (!workflowId.includes('@') && !workflowId.includes(':')) {
|
|
309
|
+
const fallbackPath = path.join(this.marketplaceRoot, 'fractary-faber/plugins/faber/.fractary/faber/workflows', `${workflowId}.json`);
|
|
174
310
|
searchedPaths.push(fallbackPath);
|
|
175
311
|
if (fs.existsSync(fallbackPath)) {
|
|
176
312
|
return this.loadAndCacheWorkflow(workflowId, fallbackPath);
|
|
@@ -198,52 +334,160 @@ export class WorkflowResolver {
|
|
|
198
334
|
}
|
|
199
335
|
}
|
|
200
336
|
/**
|
|
201
|
-
*
|
|
202
|
-
*
|
|
337
|
+
* Fetch a workflow from a URL with caching.
|
|
338
|
+
* Cache is valid for 1 hour.
|
|
339
|
+
*
|
|
340
|
+
* Security: Validates URL to prevent SSRF attacks before fetching.
|
|
203
341
|
*/
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
342
|
+
async fetchWorkflowFromUrl(workflowId, url) {
|
|
343
|
+
// SSRF Protection: Validate URL before fetching
|
|
344
|
+
await validateUrlSecurity(url);
|
|
345
|
+
const cacheDir = path.join(this.marketplaceRoot, '.cache', 'workflows');
|
|
346
|
+
const cacheFile = path.join(cacheDir, `${this.hashString(url)}.json`);
|
|
347
|
+
// Check cache (1 hour TTL)
|
|
348
|
+
if (fs.existsSync(cacheFile)) {
|
|
349
|
+
const stats = fs.statSync(cacheFile);
|
|
350
|
+
const ageMinutes = (Date.now() - stats.mtimeMs) / 60000;
|
|
351
|
+
if (ageMinutes < 60) {
|
|
352
|
+
return this.loadAndCacheWorkflow(workflowId, cacheFile);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
// Fetch from URL with timeout and security settings
|
|
356
|
+
const controller = new AbortController();
|
|
357
|
+
const timeoutId = setTimeout(() => controller.abort(), URL_FETCH_TIMEOUT_MS);
|
|
358
|
+
try {
|
|
359
|
+
const response = await fetch(url, {
|
|
360
|
+
signal: controller.signal,
|
|
361
|
+
redirect: 'error', // Block redirects to prevent SSRF via redirect
|
|
362
|
+
headers: {
|
|
363
|
+
'User-Agent': 'Fractary-Faber-WorkflowResolver/1.0',
|
|
364
|
+
},
|
|
365
|
+
});
|
|
366
|
+
if (!response.ok) {
|
|
367
|
+
throw new WorkflowNotFoundError(workflowId, [url]);
|
|
368
|
+
}
|
|
369
|
+
// Content-Length validation to prevent DoS via memory exhaustion (10MB limit)
|
|
370
|
+
const MAX_CONTENT_LENGTH = 10 * 1024 * 1024; // 10MB
|
|
371
|
+
const contentLengthHeader = response.headers.get('content-length');
|
|
372
|
+
if (contentLengthHeader) {
|
|
373
|
+
const contentLength = parseInt(contentLengthHeader, 10);
|
|
374
|
+
if (contentLength > MAX_CONTENT_LENGTH) {
|
|
375
|
+
throw new InvalidWorkflowError(workflowId, `Response too large (${contentLength} bytes). Maximum allowed: ${MAX_CONTENT_LENGTH} bytes`);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
const content = await response.text();
|
|
379
|
+
// Also validate actual content size (in case Content-Length header was missing/incorrect)
|
|
380
|
+
if (content.length > MAX_CONTENT_LENGTH) {
|
|
381
|
+
throw new InvalidWorkflowError(workflowId, `Response too large (${content.length} bytes). Maximum allowed: ${MAX_CONTENT_LENGTH} bytes`);
|
|
233
382
|
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
case '':
|
|
238
|
-
return path.join(this.projectRoot, '.fractary/faber/workflows', `${workflowName}.json`);
|
|
239
|
-
default: {
|
|
240
|
-
// Fallback to old unified marketplace for backward compatibility
|
|
241
|
-
// Sanitize the derived plugin name as well
|
|
242
|
-
const pluginName = this.sanitizePathComponent(namespace.replace('fractary-', ''), 'plugin name');
|
|
243
|
-
return path.join(this.marketplaceRoot, `fractary/plugins/${pluginName}/config/workflows`, `${workflowName}.json`);
|
|
383
|
+
// Validate JSON before caching
|
|
384
|
+
try {
|
|
385
|
+
JSON.parse(content);
|
|
244
386
|
}
|
|
387
|
+
catch {
|
|
388
|
+
throw new InvalidWorkflowError(workflowId, `Invalid JSON from URL: ${url}`);
|
|
389
|
+
}
|
|
390
|
+
// Create cache directory with restricted permissions (owner only)
|
|
391
|
+
fs.mkdirSync(cacheDir, { recursive: true, mode: 0o700 });
|
|
392
|
+
// Atomic file write to prevent permission race condition:
|
|
393
|
+
// Write to temp file first, then rename (atomic on POSIX systems)
|
|
394
|
+
const tempFile = `${cacheFile}.${process.pid}.tmp`;
|
|
395
|
+
try {
|
|
396
|
+
// Write with restrictive permissions from the start
|
|
397
|
+
const fd = fs.openSync(tempFile, fs.constants.O_WRONLY | fs.constants.O_CREAT | fs.constants.O_EXCL, 0o600);
|
|
398
|
+
fs.writeSync(fd, content);
|
|
399
|
+
fs.closeSync(fd);
|
|
400
|
+
// Atomic rename
|
|
401
|
+
fs.renameSync(tempFile, cacheFile);
|
|
402
|
+
}
|
|
403
|
+
catch (writeError) {
|
|
404
|
+
// Clean up temp file on error
|
|
405
|
+
try {
|
|
406
|
+
fs.unlinkSync(tempFile);
|
|
407
|
+
}
|
|
408
|
+
catch { /* ignore */ }
|
|
409
|
+
throw writeError;
|
|
410
|
+
}
|
|
411
|
+
// Opportunistic cache cleanup: remove expired entries (>1 hour old)
|
|
412
|
+
this.cleanupExpiredCache(cacheDir);
|
|
413
|
+
return this.loadAndCacheWorkflow(workflowId, cacheFile);
|
|
414
|
+
}
|
|
415
|
+
catch (error) {
|
|
416
|
+
// Handle timeout
|
|
417
|
+
if (error instanceof Error && error.name === 'AbortError') {
|
|
418
|
+
throw new InvalidWorkflowError(workflowId, `URL fetch timed out after ${URL_FETCH_TIMEOUT_MS / 1000} seconds: ${url}`);
|
|
419
|
+
}
|
|
420
|
+
throw error;
|
|
421
|
+
}
|
|
422
|
+
finally {
|
|
423
|
+
clearTimeout(timeoutId);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Hash a string using SHA-256.
|
|
428
|
+
*/
|
|
429
|
+
hashString(str) {
|
|
430
|
+
return crypto.createHash('sha256').update(str).digest('hex');
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Clean up expired cache entries (older than 1 hour).
|
|
434
|
+
* Called opportunistically when writing new cache files.
|
|
435
|
+
* Errors are silently ignored to not disrupt normal operations.
|
|
436
|
+
*/
|
|
437
|
+
cleanupExpiredCache(cacheDir) {
|
|
438
|
+
try {
|
|
439
|
+
if (!fs.existsSync(cacheDir))
|
|
440
|
+
return;
|
|
441
|
+
const files = fs.readdirSync(cacheDir);
|
|
442
|
+
const now = Date.now();
|
|
443
|
+
const ONE_HOUR_MS = 60 * 60 * 1000;
|
|
444
|
+
for (const file of files) {
|
|
445
|
+
// Only process .json cache files (skip .tmp files)
|
|
446
|
+
if (!file.endsWith('.json'))
|
|
447
|
+
continue;
|
|
448
|
+
const filePath = path.join(cacheDir, file);
|
|
449
|
+
try {
|
|
450
|
+
const stats = fs.statSync(filePath);
|
|
451
|
+
const ageMs = now - stats.mtimeMs;
|
|
452
|
+
if (ageMs > ONE_HOUR_MS) {
|
|
453
|
+
fs.unlinkSync(filePath);
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
catch {
|
|
457
|
+
// Ignore errors for individual files (may have been deleted by another process)
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
catch {
|
|
462
|
+
// Silently ignore cleanup errors - this is opportunistic
|
|
245
463
|
}
|
|
246
464
|
}
|
|
465
|
+
/**
|
|
466
|
+
* Resolve a workflow ID to a file path or URL reference.
|
|
467
|
+
* Supports three formats:
|
|
468
|
+
* 1. URL: url:https://example.com/workflow.json
|
|
469
|
+
* 2. Explicit: plugin@marketplace:workflow
|
|
470
|
+
* 3. Project-local: workflow-name
|
|
471
|
+
* Validates all path components to prevent path traversal attacks.
|
|
472
|
+
*/
|
|
473
|
+
resolveWorkflowPath(workflowId) {
|
|
474
|
+
// Format 1: URL reference
|
|
475
|
+
if (workflowId.startsWith('url:')) {
|
|
476
|
+
return { type: 'url', url: workflowId.slice(4) };
|
|
477
|
+
}
|
|
478
|
+
// Format 2: Explicit plugin@marketplace:workflow
|
|
479
|
+
const explicitMatch = workflowId.match(/^([^@]+)@([^:]+):(.+)$/);
|
|
480
|
+
if (explicitMatch) {
|
|
481
|
+
const [, plugin, marketplace, workflow] = explicitMatch;
|
|
482
|
+
this.sanitizePathComponent(plugin, 'plugin');
|
|
483
|
+
this.sanitizePathComponent(marketplace, 'marketplace');
|
|
484
|
+
this.sanitizePathComponent(workflow, 'workflow');
|
|
485
|
+
return path.join(this.marketplaceRoot, marketplace, 'plugins', plugin, '.fractary/faber/workflows', `${workflow}.json`);
|
|
486
|
+
}
|
|
487
|
+
// Format 3: Project-local (no @ symbol)
|
|
488
|
+
this.sanitizePathComponent(workflowId, 'workflow');
|
|
489
|
+
return path.join(this.projectRoot, '.fractary/faber/workflows', `${workflowId}.json`);
|
|
490
|
+
}
|
|
247
491
|
/**
|
|
248
492
|
* Merge phases for an entire inheritance chain.
|
|
249
493
|
*/
|
|
@@ -262,6 +506,7 @@ export class WorkflowResolver {
|
|
|
262
506
|
steps: filteredSteps,
|
|
263
507
|
require_approval: childPhase?.require_approval,
|
|
264
508
|
max_retries: phaseName === 'evaluate' ? childPhase?.max_retries ?? 3 : undefined,
|
|
509
|
+
result_handling: childPhase?.result_handling,
|
|
265
510
|
};
|
|
266
511
|
}
|
|
267
512
|
return phases;
|
|
@@ -410,4 +655,75 @@ export class WorkflowResolver {
|
|
|
410
655
|
this.workflowCache.clear();
|
|
411
656
|
}
|
|
412
657
|
}
|
|
658
|
+
// ============================================================================
|
|
659
|
+
// Result Handling Resolution
|
|
660
|
+
// ============================================================================
|
|
661
|
+
/**
|
|
662
|
+
* Resolve result handling configuration for a step.
|
|
663
|
+
*
|
|
664
|
+
* Cascades configuration from multiple levels with the following precedence
|
|
665
|
+
* (highest to lowest):
|
|
666
|
+
* 1. Step-level (inline result_handling on the step)
|
|
667
|
+
* 2. Phase-level (result_handling in phase definition)
|
|
668
|
+
* 3. Workflow-level (result_handling at workflow root)
|
|
669
|
+
* 4. Schema defaults
|
|
670
|
+
*
|
|
671
|
+
* This allows defining common error handlers (like workflow-debugger) once
|
|
672
|
+
* at the workflow level instead of repeating on every step.
|
|
673
|
+
*
|
|
674
|
+
* @param workflow - The resolved workflow configuration
|
|
675
|
+
* @param phaseName - Current phase name (frame, architect, build, evaluate, release)
|
|
676
|
+
* @param step - The step configuration
|
|
677
|
+
* @returns Merged result handling with all levels applied
|
|
678
|
+
*/
|
|
679
|
+
export function resolveStepResultHandling(workflow, phaseName, step) {
|
|
680
|
+
// Start with schema defaults
|
|
681
|
+
const result = {
|
|
682
|
+
on_success: DEFAULT_RESULT_HANDLING.on_success,
|
|
683
|
+
on_warning: DEFAULT_RESULT_HANDLING.on_warning,
|
|
684
|
+
on_failure: DEFAULT_RESULT_HANDLING.on_failure,
|
|
685
|
+
on_pending_input: 'wait', // Immutable - always wait for user input
|
|
686
|
+
};
|
|
687
|
+
// Layer 1: Apply workflow-level global defaults
|
|
688
|
+
const workflowResultHandling = workflow.result_handling;
|
|
689
|
+
if (workflowResultHandling) {
|
|
690
|
+
if (workflowResultHandling.on_success !== undefined) {
|
|
691
|
+
result.on_success = workflowResultHandling.on_success;
|
|
692
|
+
}
|
|
693
|
+
if (workflowResultHandling.on_warning !== undefined) {
|
|
694
|
+
result.on_warning = workflowResultHandling.on_warning;
|
|
695
|
+
}
|
|
696
|
+
if (workflowResultHandling.on_failure !== undefined) {
|
|
697
|
+
result.on_failure = workflowResultHandling.on_failure;
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
// Layer 2: Apply phase-level defaults
|
|
701
|
+
const phase = workflow.phases?.[phaseName];
|
|
702
|
+
const phaseResultHandling = phase?.result_handling;
|
|
703
|
+
if (phaseResultHandling) {
|
|
704
|
+
if (phaseResultHandling.on_success !== undefined) {
|
|
705
|
+
result.on_success = phaseResultHandling.on_success;
|
|
706
|
+
}
|
|
707
|
+
if (phaseResultHandling.on_warning !== undefined) {
|
|
708
|
+
result.on_warning = phaseResultHandling.on_warning;
|
|
709
|
+
}
|
|
710
|
+
if (phaseResultHandling.on_failure !== undefined) {
|
|
711
|
+
result.on_failure = phaseResultHandling.on_failure;
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
// Layer 3: Apply step-level config (highest priority)
|
|
715
|
+
const stepResultHandling = step.result_handling;
|
|
716
|
+
if (stepResultHandling) {
|
|
717
|
+
if (stepResultHandling.on_success !== undefined) {
|
|
718
|
+
result.on_success = stepResultHandling.on_success;
|
|
719
|
+
}
|
|
720
|
+
if (stepResultHandling.on_warning !== undefined) {
|
|
721
|
+
result.on_warning = stepResultHandling.on_warning;
|
|
722
|
+
}
|
|
723
|
+
if (stepResultHandling.on_failure !== undefined) {
|
|
724
|
+
result.on_failure = stepResultHandling.on_failure;
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
return result;
|
|
728
|
+
}
|
|
413
729
|
//# sourceMappingURL=resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/workflow/resolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/workflow/resolver.ts"],"names":[],"mappings":"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"}
|