@db-lyon/flowkit 0.5.2 → 0.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB,wCAAwB,CAAC;AAEvD,eAAO,MAAM,oBAAoB;;;;;IAK/B,sEAAsE;;;;;;;;;;;;;;;;;EAGtE,CAAC;AAEH,eAAO,MAAM,cAAc;;;;IAKvB,0DAA0D;;IAE1D,8CAA8C;;IAE9C,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASlE,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;;;;;QAf7B,0DAA0D;;QAE1D,8CAA8C;;QAE9C,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcnE,+EAA+E;;;;;QAlB7E,0DAA0D;;QAE1D,8CAA8C;;QAE9C,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgBnE,oCAAoC;;;;;QApBlC,0DAA0D;;QAE1D,8CAA8C;;QAE9C,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkBnE,gCAAgC;;;;;QAtB9B,0DAA0D;;QAE1D,8CAA8C;;QAE9C,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoBnE,kEAAkE;;;;;QAxBhE,0DAA0D;;QAE1D,8CAA8C;;QAE9C,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsBnE,yFAAyF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEzF,CAAC;AAEH,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB;;;;;;QAzC7B,sEAAsE;;;;;;;;;;;;;;;;;;;;;;;;YAUpE,0DAA0D;;YAE1D,8CAA8C;;YAE9C,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAcnE,+EAA+E;;;;;YAlB7E,0DAA0D;;YAE1D,8CAA8C;;YAE9C,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgBnE,oCAAoC;;;;;YApBlC,0DAA0D;;YAE1D,8CAA8C;;YAE9C,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAkBnE,gCAAgC;;;;;YAtB9B,0DAA0D;;YAE1D,8CAA8C;;YAE9C,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAoBnE,kEAAkE;;;;;YAxBhE,0DAA0D;;YAE1D,8CAA8C;;YAE9C,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsBnE,yFAAyF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQzF,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,15 @@ export const FlowStepSchema = z
20
20
  retryDelay: z.number().int().nonnegative().optional(),
21
21
  /** Only retry when the error message contains this substring. */
22
22
  retryOn: z.string().optional(),
23
+ /**
24
+ * Conditional execution. A boolean runs/skips the step directly; a string is
25
+ * an expression evaluated at runtime by the runner's `conditionEvaluator`
26
+ * (or the built-in `${...}`-reference truthiness check if none is set). A
27
+ * falsy result skips the step without failing the flow.
28
+ */
29
+ when: z.union([z.string(), z.boolean()]).optional(),
30
+ /** If true, a failure of this step is recorded but does not abort the flow. */
31
+ ignore_failure: z.boolean().optional(),
23
32
  })
24
33
  .refine((data) => {
25
34
  if (data.task === 'None')
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,sEAAsE;IACtE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACrC,0DAA0D;IAC1D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAClD,8CAA8C;IAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACrD,iEAAiE;IACjE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC;KACD,MAAM,CACL,CAAC,IAAI,EAAE,EAAE;IACP,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC,EACD,EAAE,OAAO,EAAE,oEAAoE,EAAE,CAClF,CAAC;AAEJ,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC;IAClD,+EAA+E;IAC/E,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;IAC5C,oCAAoC;IACpC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;IAC9C,gCAAgC;IAChC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;IAC9C,kEAAkE;IAClE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;IAC3C,yFAAyF;IACzF,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,0FAA0F;AAC1F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAClD,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,12 @@ import type { TaskResult } from '../task/base-task.js';
4
4
  import type { TaskContext } from '../task/base-task.js';
5
5
  import type { TaskRegistry } from '../task/registry.js';
6
6
  export type HookPhase = 'on_start' | 'on_success' | 'on_failure' | 'finally';
7
+ /**
8
+ * Per-task option overrides injected by an enclosing flow step, keyed by the
9
+ * inner task (or flow) name. When a flow step carries `options`, those options
10
+ * are interpreted as this map and threaded down into the nested flow.
11
+ */
12
+ export type ParentOptions = Record<string, Record<string, unknown>>;
7
13
  export interface FlowRunOptions {
8
14
  flowName: string;
9
15
  skip?: string[];
@@ -12,7 +18,31 @@ export interface FlowRunOptions {
12
18
  params?: Record<string, unknown>;
13
19
  /** If true, invoke rollback records from completed steps in reverse order on failure. */
14
20
  rollback_on_failure?: boolean;
21
+ /**
22
+ * Plan mode only: recursively expand nested-flow steps into their child steps
23
+ * (each annotated with a hierarchical `path`). Default false preserves the
24
+ * flat, one-line-per-flow-step plan.
25
+ */
26
+ expandNestedFlows?: boolean;
15
27
  }
28
+ /** Context handed to a `conditionEvaluator` when resolving a string `when:`. */
29
+ export interface ConditionContext {
30
+ steps: FlowStepResult[];
31
+ params?: Record<string, unknown>;
32
+ context: TaskContext;
33
+ error?: {
34
+ message: string;
35
+ name: string;
36
+ stack?: string;
37
+ step?: string;
38
+ };
39
+ }
40
+ /**
41
+ * Evaluates a string `when:` expression to a boolean. Supply one to use a real
42
+ * expression language (e.g. jinja-style with project/org context). When absent,
43
+ * the runner falls back to resolving `${...}` references and testing truthiness.
44
+ */
45
+ export type ConditionEvaluator = (expression: string, ctx: ConditionContext) => boolean | Promise<boolean>;
16
46
  export interface FlowStepResult {
17
47
  stepNumber: number;
18
48
  type: 'task' | 'flow';
@@ -22,6 +52,10 @@ export interface FlowStepResult {
22
52
  duration: number;
23
53
  /** Number of attempts including the first try (≥1 when executed). */
24
54
  attempts?: number;
55
+ /** Why the step was skipped: 'static' (skip list / task: None) or 'when' (condition false). */
56
+ skipReason?: 'static' | 'when';
57
+ /** True when the step failed but `ignore_failure` let the flow continue. */
58
+ ignoredFailure?: boolean;
25
59
  }
26
60
  export interface HookError {
27
61
  phase: HookPhase;
@@ -55,8 +89,16 @@ export interface PlanStep {
55
89
  retries?: number;
56
90
  retryDelay?: number;
57
91
  retryOn?: string;
92
+ /** Conditional execution — evaluated at run time, so plan reports it unresolved. */
93
+ when?: string | boolean;
94
+ /** Whether a failure of this step is tolerated. */
95
+ ignore_failure?: boolean;
58
96
  /** For hook steps: the phase they belong to. Undefined for main steps. */
59
97
  phase?: HookPhase;
98
+ /** Hierarchical id (e.g. "2/1") — only set when a plan expands nested flows. */
99
+ path?: string;
100
+ /** Nesting depth — 0 for top-level, increments per expanded nested flow. */
101
+ depth?: number;
60
102
  }
61
103
  export interface FlowRunnerHooks {
62
104
  beforeRun?(flowName: string, plan: PlanStep[]): Promise<void>;
@@ -72,6 +114,8 @@ export interface FlowRunnerConfig {
72
114
  context: TaskContext;
73
115
  hooks?: FlowRunnerHooks;
74
116
  logger?: Logger;
117
+ /** Optional evaluator for string `when:` expressions. */
118
+ conditionEvaluator?: ConditionEvaluator;
75
119
  }
76
120
  export declare class FlowRunner {
77
121
  private logger;
@@ -80,12 +124,23 @@ export declare class FlowRunner {
80
124
  private registry;
81
125
  private ctx;
82
126
  private hooks;
127
+ private conditionEvaluator?;
83
128
  private runDepth;
84
129
  constructor(config: FlowRunnerConfig);
85
130
  run(options: FlowRunOptions): Promise<FlowRunResult>;
131
+ private runWith;
86
132
  resolveExecutionPlan(flow: FlowDefinition, skipSet: Set<string>): PlanStep[];
87
133
  private planStepFromDef;
88
134
  private planHookSteps;
135
+ /**
136
+ * Merge an enclosing flow step's per-task override map onto inherited parent
137
+ * options. Inner (closer) overrides win over outer for the same task+key.
138
+ */
139
+ private mergeParentOptions;
140
+ /** Recursively expand a plan step's nested flow into its child steps. */
141
+ private expandPlanStep;
142
+ /** Evaluate a step's `when:` to a boolean. Undefined `when` always runs. */
143
+ private evaluateWhen;
89
144
  private executeFlow;
90
145
  private runHookStep;
91
146
  private executeTaskStepWithRetry;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/flow/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/flow/runner.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export class FlowRunner {
10
10
  registry;
11
11
  ctx;
12
12
  hooks;
13
+ conditionEvaluator;
13
14
  runDepth = 0;
14
15
  constructor(config) {
15
16
  this.logger = (config.logger ?? noopLogger).child({ component: 'flow-runner' });
@@ -17,13 +18,17 @@ export class FlowRunner {
17
18
  this.flows = config.flows;
18
19
  this.registry = config.registry;
19
20
  this.hooks = config.hooks ?? {};
21
+ this.conditionEvaluator = config.conditionEvaluator;
20
22
  this.ctx = { ...config.context, registry: config.registry };
21
23
  }
22
24
  async run(options) {
25
+ return this.runWith(options, {});
26
+ }
27
+ async runWith(options, parentOptions) {
23
28
  this.runDepth++;
24
29
  const isTopLevel = this.runDepth === 1;
25
30
  try {
26
- return await this.executeFlow(options, isTopLevel);
31
+ return await this.executeFlow(options, isTopLevel, parentOptions);
27
32
  }
28
33
  finally {
29
34
  this.runDepth--;
@@ -50,6 +55,8 @@ export class FlowRunner {
50
55
  retries: step.retries,
51
56
  retryDelay: step.retryDelay,
52
57
  retryOn: step.retryOn,
58
+ when: step.when,
59
+ ignore_failure: step.ignore_failure,
53
60
  };
54
61
  }
55
62
  planHookSteps(hookSteps, phase, skipSet, baseStepNumber) {
@@ -60,10 +67,66 @@ export class FlowRunner {
60
67
  phase,
61
68
  }));
62
69
  }
70
+ /**
71
+ * Merge an enclosing flow step's per-task override map onto inherited parent
72
+ * options. Inner (closer) overrides win over outer for the same task+key.
73
+ */
74
+ mergeParentOptions(base, overrideMap) {
75
+ if (!overrideMap)
76
+ return base;
77
+ const out = { ...base };
78
+ for (const [name, opts] of Object.entries(overrideMap)) {
79
+ if (opts && typeof opts === 'object' && !Array.isArray(opts)) {
80
+ out[name] = { ...(base[name] ?? {}), ...opts };
81
+ }
82
+ }
83
+ return out;
84
+ }
85
+ /** Recursively expand a plan step's nested flow into its child steps. */
86
+ expandPlanStep(planStep, parentOptions, pathPrefix, depth, ancestors, skipSet) {
87
+ const self = { ...planStep, path: pathPrefix, depth };
88
+ if (planStep.type !== 'flow' || planStep.skipped || ancestors.has(planStep.name)) {
89
+ return [self];
90
+ }
91
+ const childFlow = this.flows[planStep.name];
92
+ if (!childFlow)
93
+ return [self];
94
+ const childParentOptions = this.mergeParentOptions(parentOptions, planStep.options);
95
+ const nextAncestors = new Set(ancestors).add(planStep.name);
96
+ const childPlan = this.resolveExecutionPlan(childFlow, skipSet);
97
+ const children = childPlan.flatMap((cs) => this.expandPlanStep(cs, childParentOptions, `${pathPrefix}/${cs.stepNumber}`, depth + 1, nextAncestors, skipSet));
98
+ return [self, ...children];
99
+ }
100
+ /** Evaluate a step's `when:` to a boolean. Undefined `when` always runs. */
101
+ async evaluateWhen(when, completedSteps, params, errorCtx) {
102
+ if (when === undefined)
103
+ return true;
104
+ if (typeof when === 'boolean')
105
+ return when;
106
+ const error = errorCtx
107
+ ? {
108
+ message: errorCtx.error.message,
109
+ name: errorCtx.error.name,
110
+ stack: errorCtx.error.stack,
111
+ step: errorCtx.step,
112
+ }
113
+ : undefined;
114
+ if (this.conditionEvaluator) {
115
+ return await this.conditionEvaluator(when, {
116
+ steps: completedSteps,
117
+ params,
118
+ context: this.ctx,
119
+ error,
120
+ });
121
+ }
122
+ // Built-in fallback: resolve ${...} references, then test truthiness.
123
+ const resolved = resolveReferences(when, { steps: completedSteps, error });
124
+ return truthy(resolved);
125
+ }
63
126
  // ---------------------------------------------------------------------------
64
127
  // Internal
65
128
  // ---------------------------------------------------------------------------
66
- async executeFlow(options, isTopLevel) {
129
+ async executeFlow(options, isTopLevel, parentOptions) {
67
130
  const startTime = Date.now();
68
131
  const skipSet = new Set(options.skip ?? []);
69
132
  const completedSteps = [];
@@ -77,9 +140,12 @@ export class FlowRunner {
77
140
  const executionPlan = this.resolveExecutionPlan(flow, skipSet);
78
141
  // Plan mode — dump all phases for visibility, nothing runs.
79
142
  if (options.plan) {
143
+ const mainPlan = options.expandNestedFlows
144
+ ? executionPlan.flatMap((s) => this.expandPlanStep(s, parentOptions, String(s.stepNumber), 0, new Set([options.flowName]), skipSet))
145
+ : executionPlan;
80
146
  const fullPlan = [
81
147
  ...this.planHookSteps(flow.on_start, 'on_start', skipSet, -3000),
82
- ...executionPlan,
148
+ ...mainPlan,
83
149
  ...this.planHookSteps(flow.on_success, 'on_success', skipSet, 10_000),
84
150
  ...this.planHookSteps(flow.on_failure, 'on_failure', skipSet, 20_000),
85
151
  ...this.planHookSteps(flow.finally, 'finally', skipSet, 30_000),
@@ -92,6 +158,7 @@ export class FlowRunner {
92
158
  name: s.name,
93
159
  skipped: s.skipped,
94
160
  duration: 0,
161
+ ...(s.path !== undefined ? { path: s.path, depth: s.depth } : {}),
95
162
  })),
96
163
  duration: 0,
97
164
  };
@@ -105,7 +172,7 @@ export class FlowRunner {
105
172
  {
106
173
  const startPlan = this.planHookSteps(flow.on_start, 'on_start', skipSet, -3000);
107
174
  for (const hookStep of startPlan) {
108
- const ok = await this.runHookStep(hookStep, options, completedSteps, undefined, hookErrors);
175
+ const ok = await this.runHookStep(hookStep, options, completedSteps, parentOptions, undefined, hookErrors);
109
176
  if (!ok) {
110
177
  flowError = hookErrors[hookErrors.length - 1]?.error;
111
178
  flowErrorStepName = hookStep.name;
@@ -116,13 +183,46 @@ export class FlowRunner {
116
183
  // ---- main steps ----
117
184
  if (!flowError) {
118
185
  for (const planStep of executionPlan) {
119
- if (planStep.skipped) {
186
+ // Resolve conditional execution (`when:`) at run time.
187
+ let conditionMet = true;
188
+ let conditionError;
189
+ if (!planStep.skipped && planStep.when !== undefined) {
190
+ try {
191
+ conditionMet = await this.evaluateWhen(planStep.when, completedSteps, options.params);
192
+ }
193
+ catch (err) {
194
+ conditionError = err instanceof Error ? err : new Error(String(err));
195
+ }
196
+ }
197
+ if (conditionError) {
198
+ // A condition that throws is treated like a step failure.
199
+ const sr = {
200
+ stepNumber: planStep.stepNumber,
201
+ type: planStep.type,
202
+ name: planStep.name,
203
+ skipped: false,
204
+ duration: 0,
205
+ result: { success: false, error: conditionError },
206
+ };
207
+ completedSteps.push(sr);
208
+ await this.hooks.afterStep?.(planStep, sr);
209
+ if (planStep.ignore_failure) {
210
+ sr.ignoredFailure = true;
211
+ continue;
212
+ }
213
+ flowError = conditionError;
214
+ flowErrorStepName = planStep.name;
215
+ await this.hooks.onStepError?.(planStep, conditionError, completedSteps);
216
+ break;
217
+ }
218
+ if (planStep.skipped || !conditionMet) {
120
219
  const sr = {
121
220
  stepNumber: planStep.stepNumber,
122
221
  type: planStep.type,
123
222
  name: planStep.name,
124
223
  skipped: true,
125
224
  duration: 0,
225
+ skipReason: planStep.skipped ? 'static' : 'when',
126
226
  };
127
227
  completedSteps.push(sr);
128
228
  await this.hooks.afterStep?.(planStep, sr);
@@ -133,7 +233,7 @@ export class FlowRunner {
133
233
  try {
134
234
  let stepResult;
135
235
  if (planStep.type === 'task') {
136
- const { result: taskResult, attempts } = await this.executeTaskStepWithRetry(planStep, options.params, completedSteps);
236
+ const { result: taskResult, attempts } = await this.executeTaskStepWithRetry(planStep, options.params, completedSteps, parentOptions);
137
237
  stepResult = {
138
238
  stepNumber: planStep.stepNumber,
139
239
  type: 'task',
@@ -151,11 +251,8 @@ export class FlowRunner {
151
251
  }
152
252
  }
153
253
  else {
154
- const nestedResult = await this.run({
155
- ...options,
156
- flowName: planStep.name,
157
- plan: false,
158
- });
254
+ const childParentOptions = this.mergeParentOptions(parentOptions, planStep.options);
255
+ const nestedResult = await this.runWith({ ...options, flowName: planStep.name, plan: false }, childParentOptions);
159
256
  stepResult = {
160
257
  stepNumber: planStep.stepNumber,
161
258
  type: 'flow',
@@ -163,6 +260,7 @@ export class FlowRunner {
163
260
  result: {
164
261
  success: nestedResult.success,
165
262
  data: { stepCount: nestedResult.steps.length },
263
+ error: nestedResult.success ? undefined : nestedResult.error,
166
264
  },
167
265
  skipped: false,
168
266
  duration: Date.now() - stepStart,
@@ -176,31 +274,39 @@ export class FlowRunner {
176
274
  });
177
275
  }
178
276
  }
179
- if (!nestedResult.success) {
180
- flowError = nestedResult.error ?? new Error(`Nested flow ${planStep.name} failed`);
181
- flowErrorStepName = planStep.name;
182
- }
183
277
  }
184
278
  completedSteps.push(stepResult);
185
279
  await this.hooks.afterStep?.(planStep, stepResult);
186
280
  if (!stepResult.result?.success) {
281
+ if (planStep.ignore_failure) {
282
+ stepResult.ignoredFailure = true;
283
+ this.logger.info({ step: planStep.stepNumber, task: planStep.name }, `Step ${planStep.name} failed but ignore_failure is set; continuing`);
284
+ continue;
285
+ }
187
286
  flowError =
188
- flowError ?? stepResult.result?.error ?? new Error(`Step ${planStep.name} failed`);
189
- flowErrorStepName = flowErrorStepName ?? planStep.name;
287
+ stepResult.result?.error ?? new Error(`Step ${planStep.name} failed`);
288
+ flowErrorStepName = planStep.name;
190
289
  await this.hooks.onStepError?.(planStep, flowError, completedSteps);
191
290
  break;
192
291
  }
193
292
  }
194
293
  catch (error) {
195
294
  const err = error instanceof Error ? error : new Error(String(error));
196
- completedSteps.push({
295
+ const sr = {
197
296
  stepNumber: planStep.stepNumber,
198
297
  type: planStep.type,
199
298
  name: planStep.name,
200
299
  skipped: false,
201
300
  duration: Date.now() - stepStart,
202
301
  result: { success: false, error: err },
203
- });
302
+ };
303
+ completedSteps.push(sr);
304
+ if (planStep.ignore_failure) {
305
+ sr.ignoredFailure = true;
306
+ await this.hooks.afterStep?.(planStep, sr);
307
+ this.logger.info({ step: planStep.stepNumber, task: planStep.name }, `Step ${planStep.name} threw but ignore_failure is set; continuing`);
308
+ continue;
309
+ }
204
310
  flowError = err;
205
311
  flowErrorStepName = planStep.name;
206
312
  await this.hooks.onStepError?.(planStep, err, completedSteps);
@@ -212,13 +318,13 @@ export class FlowRunner {
212
318
  if (flowError) {
213
319
  const failPlan = this.planHookSteps(flow.on_failure, 'on_failure', skipSet, 20_000);
214
320
  for (const hookStep of failPlan) {
215
- await this.runHookStep(hookStep, options, completedSteps, { error: flowError, step: flowErrorStepName }, hookErrors);
321
+ await this.runHookStep(hookStep, options, completedSteps, parentOptions, { error: flowError, step: flowErrorStepName }, hookErrors);
216
322
  }
217
323
  }
218
324
  else {
219
325
  const successPlan = this.planHookSteps(flow.on_success, 'on_success', skipSet, 10_000);
220
326
  for (const hookStep of successPlan) {
221
- await this.runHookStep(hookStep, options, completedSteps, undefined, hookErrors);
327
+ await this.runHookStep(hookStep, options, completedSteps, parentOptions, undefined, hookErrors);
222
328
  }
223
329
  }
224
330
  // ---- rollback ----
@@ -230,7 +336,7 @@ export class FlowRunner {
230
336
  {
231
337
  const finallyPlan = this.planHookSteps(flow.finally, 'finally', skipSet, 30_000);
232
338
  for (const hookStep of finallyPlan) {
233
- await this.runHookStep(hookStep, options, completedSteps, flowError ? { error: flowError, step: flowErrorStepName } : undefined, hookErrors);
339
+ await this.runHookStep(hookStep, options, completedSteps, parentOptions, flowError ? { error: flowError, step: flowErrorStepName } : undefined, hookErrors);
234
340
  }
235
341
  }
236
342
  const result = {
@@ -246,16 +352,29 @@ export class FlowRunner {
246
352
  }
247
353
  return result;
248
354
  }
249
- async runHookStep(hookStep, options, completedSteps, errorCtx, hookErrors) {
355
+ async runHookStep(hookStep, options, completedSteps, parentOptions, errorCtx, hookErrors) {
250
356
  if (hookStep.skipped)
251
357
  return true;
358
+ // Hook steps honor `when:` too — a falsy condition skips them silently.
359
+ if (hookStep.when !== undefined) {
360
+ try {
361
+ const ok = await this.evaluateWhen(hookStep.when, completedSteps, options.params, errorCtx);
362
+ if (!ok)
363
+ return true;
364
+ }
365
+ catch (err) {
366
+ hookErrors.push({
367
+ phase: hookStep.phase,
368
+ name: hookStep.name,
369
+ error: err instanceof Error ? err : new Error(String(err)),
370
+ });
371
+ return false;
372
+ }
373
+ }
252
374
  try {
253
375
  if (hookStep.type === 'flow') {
254
- const nested = await this.run({
255
- ...options,
256
- flowName: hookStep.name,
257
- plan: false,
258
- });
376
+ const childParentOptions = this.mergeParentOptions(parentOptions, hookStep.options);
377
+ const nested = await this.runWith({ ...options, flowName: hookStep.name, plan: false }, childParentOptions);
259
378
  if (!nested.success) {
260
379
  hookErrors.push({
261
380
  phase: hookStep.phase,
@@ -266,7 +385,7 @@ export class FlowRunner {
266
385
  }
267
386
  return true;
268
387
  }
269
- const { result } = await this.executeTaskStepWithRetry(hookStep, options.params, completedSteps, errorCtx);
388
+ const { result } = await this.executeTaskStepWithRetry(hookStep, options.params, completedSteps, parentOptions, errorCtx);
270
389
  if (!result.success) {
271
390
  hookErrors.push({
272
391
  phase: hookStep.phase,
@@ -286,13 +405,13 @@ export class FlowRunner {
286
405
  return false;
287
406
  }
288
407
  }
289
- async executeTaskStepWithRetry(step, flowParams, completedSteps, errorCtx) {
408
+ async executeTaskStepWithRetry(step, flowParams, completedSteps, parentOptions, errorCtx) {
290
409
  const maxAttempts = Math.max(1, 1 + (step.retries ?? 0));
291
410
  const delayMs = step.retryDelay ?? 0;
292
411
  const retryOn = step.retryOn;
293
412
  let lastResult = { success: false, error: new Error('no attempts executed') };
294
413
  for (let attempt = 1; attempt <= maxAttempts; attempt++) {
295
- lastResult = await this.executeTaskStep(step, flowParams, completedSteps, errorCtx);
414
+ lastResult = await this.executeTaskStep(step, flowParams, completedSteps, parentOptions, errorCtx);
296
415
  if (lastResult.success)
297
416
  return { result: lastResult, attempts: attempt };
298
417
  const errMsg = lastResult.error?.message ?? '';
@@ -307,9 +426,15 @@ export class FlowRunner {
307
426
  }
308
427
  return { result: lastResult, attempts: maxAttempts };
309
428
  }
310
- async executeTaskStep(step, flowParams, completedSteps, errorCtx) {
429
+ async executeTaskStep(step, flowParams, completedSteps, parentOptions, errorCtx) {
311
430
  const taskDef = this.resolveTaskDefinition(step.name);
312
- const rawOptions = { ...taskDef.options, ...step.options, ...flowParams };
431
+ // Precedence (low → high): task default → enclosing-flow override → step inline → runtime params.
432
+ const rawOptions = {
433
+ ...taskDef.options,
434
+ ...(parentOptions[step.name] ?? {}),
435
+ ...step.options,
436
+ ...flowParams,
437
+ };
313
438
  const refCtx = {
314
439
  steps: completedSteps,
315
440
  error: errorCtx
@@ -374,6 +499,17 @@ export class FlowRunner {
374
499
  return { class_path: taskName, options: {} };
375
500
  }
376
501
  }
502
+ /** Truthiness of a resolved `when:` value, with string special-cases. */
503
+ function truthy(value) {
504
+ if (typeof value === 'boolean')
505
+ return value;
506
+ if (value == null)
507
+ return false;
508
+ if (typeof value === 'number')
509
+ return value !== 0;
510
+ const s = String(value).trim().toLowerCase();
511
+ return !(s === '' || s === 'false' || s === '0' || s === 'null' || s === 'undefined');
512
+ }
377
513
  function sleep(ms) {
378
514
  return new Promise((resolve) => setTimeout(resolve, ms));
379
515
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/flow/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/flow/runner.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,17 @@ export interface ShellTaskOptions {
5
5
  timeout?: number;
6
6
  }
7
7
  /**
8
- * Task that executes a shell command via execSync.
8
+ * Task that executes a shell command.
9
+ *
10
+ * Stdout and stderr stream line-by-line through `this.logger` as they
11
+ * arrive, so observers (per-step hooks, log-shipping clients, live UIs)
12
+ * see output in real time instead of waiting for the command to finish:
13
+ *
14
+ * logger.info({ stream: 'stdout' }, line)
15
+ * logger.warn({ stream: 'stderr' }, line)
16
+ *
17
+ * The final `TaskResult.data.output` / `stderr` still contains the full
18
+ * captured text for callers that just want the end result.
9
19
  *
10
20
  * Usage in YAML:
11
21
  * steps:
@@ -1 +1 @@
1
- {"version":3,"file":"shell-task.d.ts","sourceRoot":"","sources":["../../src/task/shell-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,SAAU,SAAQ,QAAQ,CAAC,gBAAgB,CAAC;IACvD,IAAI,QAAQ,WAEX;IAED,SAAS,CAAC,QAAQ,IAAI,IAAI;IAMpB,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;CAoBrC"}
1
+ {"version":3,"file":"shell-task.d.ts","sourceRoot":"","sources":["../../src/task/shell-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,SAAU,SAAQ,QAAQ,CAAC,gBAAgB,CAAC;IACvD,IAAI,QAAQ,WAEX;IAED,SAAS,CAAC,QAAQ,IAAI,IAAI;IAMpB,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;CA8GrC"}