@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.
@@ -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/config/workflows'), {
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/config/workflows')
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":"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"}
1
+ {"version":3,"file":"resolver.test.js","sourceRoot":"","sources":["../../../src/workflow/__tests__/resolver.test.ts"],"names":[],"mappings":"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"}
@@ -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;AACjD,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,GACrB,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"}
@@ -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;AAYjD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,GACrB,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 namespace resolution (fractary-faber:, project:, etc.)
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
- * Resolve a workflow ID to a file path based on namespace.
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":"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"}
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 namespace resolution (fractary-faber:, project:, etc.)
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 filePath = this.resolveWorkflowPath(workflowId);
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 explicit namespace, try plugin defaults
172
- if (!workflowId.includes(':')) {
173
- const fallbackPath = path.join(this.marketplaceRoot, 'fractary-faber/plugins/faber/config/workflows', `${workflowId}.json`);
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
- * Resolve a workflow ID to a file path based on namespace.
202
- * Validates all path components to prevent path traversal attacks.
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
- resolveWorkflowPath(workflowId) {
205
- let namespace;
206
- let workflowName;
207
- if (workflowId.includes(':')) {
208
- const parts = workflowId.split(':');
209
- namespace = parts[0];
210
- workflowName = parts.slice(1).join(':');
211
- }
212
- else {
213
- namespace = 'project';
214
- workflowName = workflowId;
215
- }
216
- // Sanitize namespace and workflow name to prevent path traversal
217
- this.sanitizePathComponent(namespace, 'namespace');
218
- this.sanitizePathComponent(workflowName, 'workflow name');
219
- switch (namespace) {
220
- case 'fractary-faber':
221
- return path.join(this.marketplaceRoot, 'fractary-faber/plugins/faber/config/workflows', `${workflowName}.json`);
222
- case 'fractary-faber-cloud':
223
- return path.join(this.marketplaceRoot, 'fractary-faber/plugins/faber-cloud/config/workflows', `${workflowName}.json`);
224
- case 'fractary-core': {
225
- // Extract plugin name from workflow_name if it contains slash
226
- const parts = workflowName.split('/');
227
- // Sanitize each part individually
228
- const plugin = this.sanitizePathComponent(parts[0], 'plugin name');
229
- const workflow = parts.length > 1
230
- ? this.sanitizePathComponent(parts.slice(1).join('/'), 'workflow name')
231
- : plugin;
232
- return path.join(this.marketplaceRoot, `fractary-core/plugins/${plugin}/config/workflows`, `${workflow}.json`);
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
- case 'fractary-codex':
235
- return path.join(this.marketplaceRoot, 'fractary-codex/plugins/codex/config/workflows', `${workflowName}.json`);
236
- case 'project':
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fractary/faber",
3
- "version": "2.3.7",
3
+ "version": "2.4.0",
4
4
  "description": "FABER SDK - Development toolkit for AI-assisted workflows",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",