@voyantjs/core 0.19.0 → 0.21.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/workflows.d.ts +22 -0
- package/dist/workflows.d.ts.map +1 -1
- package/dist/workflows.js +22 -1
- package/dist/workflows.js.map +1 -1
- package/package.json +1 -1
package/dist/workflows.d.ts
CHANGED
|
@@ -70,6 +70,28 @@ export interface WorkflowRunOptions {
|
|
|
70
70
|
input?: unknown;
|
|
71
71
|
/** JobRunner — required when the workflow contains async steps. */
|
|
72
72
|
jobRunner?: JobRunner;
|
|
73
|
+
/**
|
|
74
|
+
* Pre-seeded `ctx.results` entries — used by resume runs to expose
|
|
75
|
+
* prior step outputs (from a parent run) without re-executing the
|
|
76
|
+
* step. Steps whose name appears in `seedResults` are skipped at
|
|
77
|
+
* the executor level: their entry is copied into ctx.results and
|
|
78
|
+
* `runFn` is not invoked. Compensation for skipped steps is also
|
|
79
|
+
* suppressed (the parent run's output remains canonical).
|
|
80
|
+
*
|
|
81
|
+
* Pairs with {@link skipUntil} — typically you set both to the
|
|
82
|
+
* same set so callers don't need to coordinate. When `skipUntil`
|
|
83
|
+
* is set, every step before that name MUST appear in `seedResults`
|
|
84
|
+
* so dependent steps see the values they expect.
|
|
85
|
+
*/
|
|
86
|
+
seedResults?: Record<string, unknown>;
|
|
87
|
+
/**
|
|
88
|
+
* Resume sentinel — when set, the executor skips steps until it
|
|
89
|
+
* reaches this name (then runs normally from there onward). Steps
|
|
90
|
+
* before the sentinel are still added to ctx.results from
|
|
91
|
+
* {@link seedResults}. Throws if the named step doesn't exist in
|
|
92
|
+
* the workflow.
|
|
93
|
+
*/
|
|
94
|
+
skipUntil?: string;
|
|
73
95
|
}
|
|
74
96
|
/**
|
|
75
97
|
* Result of a successful workflow execution.
|
package/dist/workflows.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE/D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAA;IACpB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,CAC3D,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,eAAe,KACjB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAE/B;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,OAAO,GAAG,OAAO,IAAI,CAChD,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,eAAe,KACjB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEzB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IAC9D,oCAAoC;IACpC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjE,wDAAwD;IACxD,UAAU,CAAC,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvE;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzD,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;CACpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EACtD,IAAI,EAAE,MAAM,GACX,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAsB9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,mEAAmE;IACnE,SAAS,CAAC,EAAE,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE/D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAA;IACpB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,CAC3D,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,eAAe,KACjB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAE/B;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,OAAO,GAAG,OAAO,IAAI,CAChD,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,eAAe,KACjB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEzB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IAC9D,oCAAoC;IACpC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjE,wDAAwD;IACxD,UAAU,CAAC,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvE;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzD,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;CACpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EACtD,IAAI,EAAE,MAAM,GACX,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAsB9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,mEAAmE;IACnE,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qBAAqB;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAC1C,6EAA6E;IAC7E,GAAG,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CAC3D;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,GAChC,kBAAkB,CAuFpB"}
|
package/dist/workflows.js
CHANGED
|
@@ -72,13 +72,34 @@ export function createWorkflow(name, steps) {
|
|
|
72
72
|
const ctx = {
|
|
73
73
|
workflowName: name,
|
|
74
74
|
jobRunner: options.jobRunner,
|
|
75
|
-
results: {},
|
|
75
|
+
results: { ...(options.seedResults ?? {}) },
|
|
76
76
|
};
|
|
77
77
|
const input = options.input;
|
|
78
78
|
const completed = [];
|
|
79
|
+
// Validate skipUntil up-front so callers get a clear error
|
|
80
|
+
// before any steps run (vs a silent no-op if the name is wrong).
|
|
81
|
+
if (options.skipUntil !== undefined) {
|
|
82
|
+
const found = steps.some((b) => b.definition.name === options.skipUntil);
|
|
83
|
+
if (!found) {
|
|
84
|
+
throw new WorkflowError(`Workflow "${name}" cannot resume: step "${options.skipUntil}" not found`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
let skipping = options.skipUntil !== undefined;
|
|
79
88
|
try {
|
|
80
89
|
for (const builder of steps) {
|
|
81
90
|
const def = builder.definition;
|
|
91
|
+
if (skipping) {
|
|
92
|
+
if (def.name === options.skipUntil) {
|
|
93
|
+
skipping = false;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// Step is skipped: keep its seeded result in ctx.results
|
|
97
|
+
// (or null if none was seeded) and move on. Compensation
|
|
98
|
+
// is suppressed for skipped steps — the parent run's
|
|
99
|
+
// output is canonical, we shouldn't roll it back.
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
82
103
|
if (def.isAsync) {
|
|
83
104
|
if (!ctx.jobRunner) {
|
|
84
105
|
throw new WorkflowError(`Workflow "${name}" step "${def.name}" is async but no jobRunner was provided`);
|
package/dist/workflows.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"AAkEA;;;;;;;;GAQG;AACH,MAAM,UAAU,IAAI,CAClB,IAAY;IAEZ,MAAM,GAAG,GAAmB;QAC1B,IAAI;QACJ,OAAO,EAAE,KAAK;KACf,CAAA;IACD,MAAM,OAAO,GAAiC;QAC5C,GAAG,CAAC,EAAE;YACJ,GAAG,CAAC,KAAK,GAAG,EAAe,CAAA;YAC3B,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,UAAU,CAAC,EAAE;YACX,GAAG,CAAC,YAAY,GAAG,EAAsB,CAAA;YACzC,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,KAAK,CAAC,OAAO;YACX,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA;YAClB,IAAI,OAAO,KAAK,SAAS;gBAAE,GAAG,CAAC,UAAU,GAAG,OAAO,CAAA;YACnD,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,UAAU,EAAE,GAAG;KAChB,CAAA;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"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"}
|