@workglow/task-graph 0.0.85 → 0.0.87
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/README.md +1 -53
- package/dist/browser.js +1451 -355
- package/dist/browser.js.map +28 -21
- package/dist/bun.js +1451 -355
- package/dist/bun.js.map +28 -21
- package/dist/common.d.ts +1 -16
- package/dist/common.d.ts.map +1 -1
- package/dist/node.js +1451 -355
- package/dist/node.js.map +28 -21
- package/dist/storage/TaskGraphTabularRepository.d.ts +2 -2
- package/dist/storage/TaskGraphTabularRepository.d.ts.map +1 -1
- package/dist/storage/TaskOutputTabularRepository.d.ts +2 -2
- package/dist/storage/TaskOutputTabularRepository.d.ts.map +1 -1
- package/dist/task/BatchTask.d.ts +154 -0
- package/dist/task/BatchTask.d.ts.map +1 -0
- package/dist/task/ConditionalTask.d.ts +1 -0
- package/dist/task/ConditionalTask.d.ts.map +1 -1
- package/dist/task/ForEachTask.d.ts +120 -0
- package/dist/task/ForEachTask.d.ts.map +1 -0
- package/dist/task/GraphAsTask.d.ts +2 -0
- package/dist/task/GraphAsTask.d.ts.map +1 -1
- package/dist/task/GraphAsTaskRunner.d.ts +0 -1
- package/dist/task/GraphAsTaskRunner.d.ts.map +1 -1
- package/dist/task/ITask.d.ts +5 -6
- package/dist/task/ITask.d.ts.map +1 -1
- package/dist/task/InputResolver.d.ts +34 -0
- package/dist/task/InputResolver.d.ts.map +1 -0
- package/dist/task/IteratorTask.d.ts +197 -0
- package/dist/task/IteratorTask.d.ts.map +1 -0
- package/dist/task/IteratorTaskRunner.d.ts +63 -0
- package/dist/task/IteratorTaskRunner.d.ts.map +1 -0
- package/dist/task/JobQueueTask.d.ts +3 -3
- package/dist/task/JobQueueTask.d.ts.map +1 -1
- package/dist/task/MapTask.d.ts +134 -0
- package/dist/task/MapTask.d.ts.map +1 -0
- package/dist/task/ReduceTask.d.ts +155 -0
- package/dist/task/ReduceTask.d.ts.map +1 -0
- package/dist/task/Task.d.ts +22 -11
- package/dist/task/Task.d.ts.map +1 -1
- package/dist/task/TaskEvents.d.ts +1 -1
- package/dist/task/TaskEvents.d.ts.map +1 -1
- package/dist/task/TaskJSON.d.ts +1 -4
- package/dist/task/TaskJSON.d.ts.map +1 -1
- package/dist/task/TaskRunner.d.ts +6 -5
- package/dist/task/TaskRunner.d.ts.map +1 -1
- package/dist/task/TaskTypes.d.ts +0 -4
- package/dist/task/TaskTypes.d.ts.map +1 -1
- package/dist/task/WhileTask.d.ts +176 -0
- package/dist/task/WhileTask.d.ts.map +1 -0
- package/dist/task/index.d.ts +35 -0
- package/dist/task/index.d.ts.map +1 -0
- package/dist/task-graph/Dataflow.d.ts +2 -3
- package/dist/task-graph/Dataflow.d.ts.map +1 -1
- package/dist/task-graph/ITaskGraph.d.ts +1 -1
- package/dist/task-graph/ITaskGraph.d.ts.map +1 -1
- package/dist/task-graph/TaskGraph.d.ts +4 -4
- package/dist/task-graph/TaskGraph.d.ts.map +1 -1
- package/dist/task-graph/TaskGraphRunner.d.ts +11 -18
- package/dist/task-graph/TaskGraphRunner.d.ts.map +1 -1
- package/dist/task-graph/Workflow.d.ts +95 -9
- package/dist/task-graph/Workflow.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/storage/README.md +1 -1
- package/src/task/README.md +91 -15
- package/src/task-graph/README.md +0 -2
- package/dist/task/ArrayTask.d.ts +0 -77
- package/dist/task/ArrayTask.d.ts.map +0 -1
- package/dist/task/InputTask.d.ts +0 -27
- package/dist/task/InputTask.d.ts.map +0 -1
- package/dist/task/OutputTask.d.ts +0 -27
- package/dist/task/OutputTask.d.ts.map +0 -1
package/dist/task/Task.d.ts
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { EventEmitter, SchemaNode, type DataPortSchema } from "@workglow/util";
|
|
6
|
+
import { EventEmitter, SchemaNode, type DataPortSchema, type ServiceRegistry } from "@workglow/util";
|
|
7
7
|
import { TaskGraph } from "../task-graph/TaskGraph";
|
|
8
8
|
import type { IExecuteContext, IExecuteReactiveContext, ITask } from "./ITask";
|
|
9
9
|
import { TaskError } from "./TaskError";
|
|
10
10
|
import { type TaskEventListener, type TaskEventListeners, type TaskEventParameters, type TaskEvents } from "./TaskEvents";
|
|
11
11
|
import type { JsonTaskItem, TaskGraphItemJson } from "./TaskJSON";
|
|
12
12
|
import { TaskRunner } from "./TaskRunner";
|
|
13
|
-
import { TaskStatus, type
|
|
13
|
+
import { TaskStatus, type TaskConfig, type TaskInput, type TaskOutput, type TaskTypeName } from "./TaskTypes";
|
|
14
14
|
/**
|
|
15
15
|
* Base class for all tasks that implements the ITask interface.
|
|
16
16
|
* This abstract class provides common functionality for both simple and compound tasks.
|
|
@@ -168,10 +168,6 @@ export declare class Task<Input extends TaskInput = TaskInput, Output extends Ta
|
|
|
168
168
|
*/
|
|
169
169
|
get events(): EventEmitter<TaskEventListeners>;
|
|
170
170
|
protected _events: EventEmitter<TaskEventListeners> | undefined;
|
|
171
|
-
/**
|
|
172
|
-
* Provenance information for the task
|
|
173
|
-
*/
|
|
174
|
-
protected nodeProvenance: Provenance;
|
|
175
171
|
/**
|
|
176
172
|
* Creates a new task instance
|
|
177
173
|
*
|
|
@@ -187,6 +183,24 @@ export declare class Task<Input extends TaskInput = TaskInput, Output extends Ta
|
|
|
187
183
|
* Resets input data to defaults
|
|
188
184
|
*/
|
|
189
185
|
resetInputData(): void;
|
|
186
|
+
/**
|
|
187
|
+
* Smart clone that deep-clones plain objects and arrays while preserving
|
|
188
|
+
* class instances (objects with non-Object prototype) by reference.
|
|
189
|
+
* Detects and throws an error on circular references.
|
|
190
|
+
*
|
|
191
|
+
* This is necessary because:
|
|
192
|
+
* - structuredClone cannot clone class instances (methods are lost)
|
|
193
|
+
* - JSON.parse/stringify loses methods and fails on circular references
|
|
194
|
+
* - Class instances like repositories should be passed by reference
|
|
195
|
+
*
|
|
196
|
+
* This breaks the idea of everything being json serializable, but it allows
|
|
197
|
+
* more efficient use cases. Do be careful with this though! Use sparingly.
|
|
198
|
+
*
|
|
199
|
+
* @param obj The object to clone
|
|
200
|
+
* @param visited Set of objects in the current cloning path (for circular reference detection)
|
|
201
|
+
* @returns A cloned object with class instances preserved by reference
|
|
202
|
+
*/
|
|
203
|
+
private smartClone;
|
|
190
204
|
/**
|
|
191
205
|
* Sets the default input values for the task
|
|
192
206
|
*
|
|
@@ -214,9 +228,10 @@ export declare class Task<Input extends TaskInput = TaskInput, Output extends Ta
|
|
|
214
228
|
/**
|
|
215
229
|
* Stub for narrowing input. Override in subclasses for custom logic.
|
|
216
230
|
* @param input The input to narrow
|
|
231
|
+
* @param _registry Optional service registry for lookups
|
|
217
232
|
* @returns The (possibly narrowed) input
|
|
218
233
|
*/
|
|
219
|
-
narrowInput(input: Record<string, any
|
|
234
|
+
narrowInput(input: Record<string, any>, _registry: ServiceRegistry): Promise<Record<string, any>>;
|
|
220
235
|
/**
|
|
221
236
|
* Subscribes to an event
|
|
222
237
|
*/
|
|
@@ -268,10 +283,6 @@ export declare class Task<Input extends TaskInput = TaskInput, Output extends Ta
|
|
|
268
283
|
* Gets the task ID from the config
|
|
269
284
|
*/
|
|
270
285
|
id(): unknown;
|
|
271
|
-
/**
|
|
272
|
-
* Gets provenance information for the task
|
|
273
|
-
*/
|
|
274
|
-
getProvenance(): Provenance;
|
|
275
286
|
/**
|
|
276
287
|
* Strips symbol properties from an object to make it serializable
|
|
277
288
|
* @param obj The object to strip symbols from
|
package/dist/task/Task.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../src/task/Task.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,YAAY,EACZ,UAAU,EAEV,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../src/task/Task.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { EventParameters, type DataPortSchema } from "@workglow/util";
|
|
7
|
-
import { TaskStatus } from "../common";
|
|
8
7
|
import { TaskAbortedError, TaskError } from "./TaskError";
|
|
8
|
+
import { TaskStatus } from "./TaskTypes";
|
|
9
9
|
/**
|
|
10
10
|
* Event listeners for task lifecycle events
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskEvents.d.ts","sourceRoot":"","sources":["../../src/task/TaskEvents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TaskEvents.d.ts","sourceRoot":"","sources":["../../src/task/TaskEvents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC;;GAEG;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,yCAAyC;IACzC,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,IAAI,CAAC;IAErB,mCAAmC;IACnC,KAAK,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAEzC,4CAA4C;IAC5C,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAElC,oCAAoC;IACpC,QAAQ,EAAE,MAAM,IAAI,CAAC;IAErB,yCAAyC;IACzC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAEvE,2DAA2D;IAC3D,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB,mDAAmD;IACnD,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB,0CAA0C;IAC1C,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAErC,0FAA0F;IAC1F,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;CACrF,CAAC;AACF,kDAAkD;AAElD,MAAM,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC;AAClD,6CAA6C;AAE7C,MAAM,MAAM,iBAAiB,CAAC,KAAK,SAAS,UAAU,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACpF,qCAAqC;AAErC,MAAM,MAAM,mBAAmB,CAAC,KAAK,SAAS,UAAU,IAAI,eAAe,CACzE,kBAAkB,EAClB,KAAK,CACN,CAAC"}
|
package/dist/task/TaskJSON.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { TaskGraph } from "../task-graph/TaskGraph";
|
|
7
7
|
import { CompoundMergeStrategy } from "../task-graph/TaskGraphRunner";
|
|
8
|
-
import { DataPorts,
|
|
8
|
+
import { DataPorts, TaskInput } from "./TaskTypes";
|
|
9
9
|
/**
|
|
10
10
|
* Represents a single task item in the JSON configuration.
|
|
11
11
|
* This structure defines how tasks should be configured in JSON format.
|
|
@@ -34,8 +34,6 @@ export type JsonTaskItem = {
|
|
|
34
34
|
};
|
|
35
35
|
/** Optional user data to use for this task, not used by the task framework except it will be exported as part of the task JSON*/
|
|
36
36
|
extras?: DataPorts;
|
|
37
|
-
/** Optional metadata about task origin */
|
|
38
|
-
provenance?: Provenance;
|
|
39
37
|
/** Nested tasks for compound operations */
|
|
40
38
|
subtasks?: JsonTaskItem[];
|
|
41
39
|
}; /**
|
|
@@ -46,7 +44,6 @@ export type TaskGraphItemJson = {
|
|
|
46
44
|
type: string;
|
|
47
45
|
name?: string;
|
|
48
46
|
defaults?: TaskInput;
|
|
49
|
-
provenance?: Provenance;
|
|
50
47
|
extras?: DataPorts;
|
|
51
48
|
subgraph?: TaskGraphJson;
|
|
52
49
|
merge?: CompoundMergeStrategy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskJSON.d.ts","sourceRoot":"","sources":["../../src/task/TaskJSON.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAItE,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"TaskJSON.d.ts","sourceRoot":"","sources":["../../src/task/TaskJSON.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAItE,OAAO,EAAE,SAAS,EAAc,SAAS,EAAE,MAAM,aAAa,CAAC;AAK/D;;;GAGG;AAEH,MAAM,MAAM,YAAY,GAAG;IACzB,qCAAqC;IACrC,EAAE,EAAE,OAAO,CAAC;IAEZ,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IAEb,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,wCAAwC;IACxC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,sCAAsC;IACtC,YAAY,CAAC,EAAE;QACb,wDAAwD;QACxD,CAAC,CAAC,EAAE,MAAM,GACN;YACE,4BAA4B;YAC5B,EAAE,EAAE,OAAO,CAAC;YAEZ,6CAA6C;YAC7C,MAAM,EAAE,MAAM,CAAC;SAChB,GACD,KAAK,CAAC;YACJ,EAAE,EAAE,OAAO,CAAC;YACZ,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;KACR,CAAC;IAEF,iIAAiI;IACjI,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B,CAAC,CAAC;;GAEA;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,qBAAqB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAqBF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GAAI,MAAM,YAAY,2CAS9D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GAAI,WAAW,YAAY,EAAE,cAMtE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,MAAM,iBAAiB,2CAS9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,cAAc,aAAa,cAgBnE,CAAC"}
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { ServiceRegistry } from "@workglow/util";
|
|
6
7
|
import { TaskOutputRepository } from "../storage/TaskOutputRepository";
|
|
7
8
|
import { type Taskish } from "../task-graph/Conversions";
|
|
8
9
|
import { IRunConfig, ITask } from "./ITask";
|
|
9
10
|
import { ITaskRunner } from "./ITaskRunner";
|
|
10
|
-
import {
|
|
11
|
+
import { TaskConfig, TaskInput, TaskOutput } from "./TaskTypes";
|
|
11
12
|
/**
|
|
12
13
|
* Responsible for running tasks
|
|
13
14
|
* Manages the execution lifecycle of individual tasks
|
|
@@ -18,10 +19,6 @@ export declare class TaskRunner<Input extends TaskInput = TaskInput, Output exte
|
|
|
18
19
|
*/
|
|
19
20
|
protected running: boolean;
|
|
20
21
|
protected reactiveRunning: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Provenance information for the task
|
|
23
|
-
*/
|
|
24
|
-
protected nodeProvenance: Provenance;
|
|
25
22
|
/**
|
|
26
23
|
* The task to run
|
|
27
24
|
*/
|
|
@@ -34,6 +31,10 @@ export declare class TaskRunner<Input extends TaskInput = TaskInput, Output exte
|
|
|
34
31
|
* The output cache for the task
|
|
35
32
|
*/
|
|
36
33
|
protected outputCache?: TaskOutputRepository;
|
|
34
|
+
/**
|
|
35
|
+
* The service registry for the task
|
|
36
|
+
*/
|
|
37
|
+
protected registry: ServiceRegistry;
|
|
37
38
|
/**
|
|
38
39
|
* Constructor for TaskRunner
|
|
39
40
|
* @param task The task to run
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/TaskRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"TaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/TaskRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAyB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAA0B,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;AAE5E;;;GAGG;AACH,qBAAa,UAAU,CACrB,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,UAAU,GAAG,UAAU,CACtC,YAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC7C;;OAEG;IACH,SAAS,CAAC,OAAO,UAAS;IAC1B,SAAS,CAAC,eAAe,UAAS;IAElC;;OAEG;IACH,SAAgB,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnD;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAE5C;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAE7C;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAyB;IAE5D;;;OAGG;gBACS,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAU9C;;;;;OAKG;IACG,GAAG,CAAC,SAAS,GAAE,OAAO,CAAC,KAAK,CAAM,EAAE,MAAM,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAiDnF;;;;OAIG;IACU,WAAW,CAAC,SAAS,GAAE,OAAO,CAAC,KAAK,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCzE;;OAEG;IACI,KAAK,IAAI,IAAI;IAWpB,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;IAMnD;;OAEG;cACa,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAUtE;;OAEG;cACa,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASlF;;OAEG;cACa,WAAW,CAAC,MAAM,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCnE,OAAO,CAAC,cAAc,CAKd;cAEQ,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpD;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;cAS5B,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpD;;OAEG;cACa,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;cAY/B,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;cAIvC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;;OAGG;cACa,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;cAkBtC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpD;;;;OAIG;cACa,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,IAAI,CAAC;CAKjB"}
|
package/dist/task/TaskTypes.d.ts
CHANGED
|
@@ -41,8 +41,6 @@ export type CompoundTaskOutput = {
|
|
|
41
41
|
} | {
|
|
42
42
|
[key: string]: unknown | unknown[] | undefined;
|
|
43
43
|
};
|
|
44
|
-
/** Type for task provenance metadata */
|
|
45
|
-
export type Provenance = DataPorts;
|
|
46
44
|
/** Type for task type names */
|
|
47
45
|
export type TaskTypeName = string;
|
|
48
46
|
/** Type for task configuration */
|
|
@@ -52,8 +50,6 @@ export interface IConfig {
|
|
|
52
50
|
id: unknown;
|
|
53
51
|
/** Optional display name for the task */
|
|
54
52
|
name?: string;
|
|
55
|
-
/** Optional metadata about task origin */
|
|
56
|
-
provenance?: Provenance;
|
|
57
53
|
/** Optional ID of the runner to use for this task */
|
|
58
54
|
runnerId?: string;
|
|
59
55
|
/** Optional output cache to use for this task */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskTypes.d.ts","sourceRoot":"","sources":["../../src/task/TaskTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,UAAU,GACV,YAAY,GACZ,WAAW,GACX,UAAU,GACV,QAAQ,CAAC;AAEb,eAAO,MAAM,UAAU;IACrB,0CAA0C;;IAE1C,gDAAgD;;IAEhD,gCAAgC;;IAEhC,sCAAsC;;IAEtC,8CAA8C;;IAE9C,sBAAsB;;CAE2B,CAAC;AAMpD,MAAM,WAAW,SAAU,SAAQ,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,+BAA+B;AAC/B,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC;AAElC,gCAAgC;AAChC,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC;AAEnC,MAAM,MAAM,kBAAkB,GAC1B;IACE,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB,GACD;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;CAChD,CAAC;
|
|
1
|
+
{"version":3,"file":"TaskTypes.d.ts","sourceRoot":"","sources":["../../src/task/TaskTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,UAAU,GACV,YAAY,GACZ,WAAW,GACX,UAAU,GACV,QAAQ,CAAC;AAEb,eAAO,MAAM,UAAU;IACrB,0CAA0C;;IAE1C,gDAAgD;;IAEhD,gCAAgC;;IAEhC,sCAAsC;;IAEtC,8CAA8C;;IAE9C,sBAAsB;;CAE2B,CAAC;AAMpD,MAAM,WAAW,SAAU,SAAQ,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,+BAA+B;AAC/B,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC;AAElC,gCAAgC;AAChC,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC;AAEnC,MAAM,MAAM,kBAAkB,GAC1B;IACE,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB,GACD;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;CAChD,CAAC;AAGN,+BAA+B;AAC/B,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,kCAAkC;AAClC,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAM1C,MAAM,WAAW,OAAO;IACtB,qCAAqC;IACrC,EAAE,EAAE,OAAO,CAAC;IAEZ,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iDAAiD;IACjD,WAAW,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAE7C,2FAA2F;IAC3F,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,iIAAiI;IACjI,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,uBAAuB;AACvB,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { DataPortSchema } from "@workglow/util";
|
|
7
|
+
import { TaskGraph } from "../task-graph/TaskGraph";
|
|
8
|
+
import { GraphAsTask, GraphAsTaskConfig } from "./GraphAsTask";
|
|
9
|
+
import type { IExecuteContext } from "./ITask";
|
|
10
|
+
import type { TaskInput, TaskOutput, TaskTypeName } from "./TaskTypes";
|
|
11
|
+
/**
|
|
12
|
+
* Condition function type for WhileTask.
|
|
13
|
+
* Receives the current output and iteration count, returns whether to continue looping.
|
|
14
|
+
*
|
|
15
|
+
* @param output - The output from the last iteration
|
|
16
|
+
* @param iteration - The current iteration number (0-based)
|
|
17
|
+
* @returns true to continue looping, false to stop
|
|
18
|
+
*/
|
|
19
|
+
export type WhileConditionFn<Output> = (output: Output, iteration: number) => boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Configuration for WhileTask.
|
|
22
|
+
*/
|
|
23
|
+
export interface WhileTaskConfig<Output extends TaskOutput = TaskOutput> extends GraphAsTaskConfig {
|
|
24
|
+
/**
|
|
25
|
+
* Condition function that determines whether to continue looping.
|
|
26
|
+
* Called after each iteration with the current output and iteration count.
|
|
27
|
+
* Returns true to continue, false to stop.
|
|
28
|
+
*/
|
|
29
|
+
readonly condition?: WhileConditionFn<Output>;
|
|
30
|
+
/**
|
|
31
|
+
* Maximum number of iterations to prevent infinite loops.
|
|
32
|
+
* @default 100
|
|
33
|
+
*/
|
|
34
|
+
readonly maxIterations?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Whether to pass the output of each iteration as input to the next.
|
|
37
|
+
* When true, output from iteration N becomes input to iteration N+1.
|
|
38
|
+
* @default true
|
|
39
|
+
*/
|
|
40
|
+
readonly chainIterations?: boolean;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* WhileTask loops until a condition function returns false.
|
|
44
|
+
*
|
|
45
|
+
* This task is useful for:
|
|
46
|
+
* - Iterative refinement processes
|
|
47
|
+
* - Polling until a condition is met
|
|
48
|
+
* - Convergence algorithms
|
|
49
|
+
* - Retry logic with conditions
|
|
50
|
+
*
|
|
51
|
+
* ## Features
|
|
52
|
+
*
|
|
53
|
+
* - Loops until condition returns false
|
|
54
|
+
* - Configurable maximum iterations (safety limit)
|
|
55
|
+
* - Passes output from each iteration to the next
|
|
56
|
+
* - Access to iteration count in condition function
|
|
57
|
+
*
|
|
58
|
+
* ## Usage
|
|
59
|
+
*
|
|
60
|
+
* ```typescript
|
|
61
|
+
* // Refine until quality threshold
|
|
62
|
+
* workflow
|
|
63
|
+
* .while({
|
|
64
|
+
* condition: (output, iteration) => output.quality < 0.9 && iteration < 10,
|
|
65
|
+
* maxIterations: 20
|
|
66
|
+
* })
|
|
67
|
+
* .refineResult()
|
|
68
|
+
* .evaluateQuality()
|
|
69
|
+
* .endWhile()
|
|
70
|
+
*
|
|
71
|
+
* // Retry until success
|
|
72
|
+
* workflow
|
|
73
|
+
* .while({
|
|
74
|
+
* condition: (output) => !output.success,
|
|
75
|
+
* maxIterations: 5
|
|
76
|
+
* })
|
|
77
|
+
* .attemptOperation()
|
|
78
|
+
* .endWhile()
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* @template Input - The input type for the while task
|
|
82
|
+
* @template Output - The output type for the while task
|
|
83
|
+
* @template Config - The configuration type
|
|
84
|
+
*/
|
|
85
|
+
export declare class WhileTask<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends WhileTaskConfig<Output> = WhileTaskConfig<Output>> extends GraphAsTask<Input, Output, Config> {
|
|
86
|
+
static type: TaskTypeName;
|
|
87
|
+
static category: string;
|
|
88
|
+
static title: string;
|
|
89
|
+
static description: string;
|
|
90
|
+
/** This task has dynamic schemas based on the inner workflow */
|
|
91
|
+
static hasDynamicSchemas: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* The template subgraph that will be executed each iteration.
|
|
94
|
+
*/
|
|
95
|
+
protected _templateGraph: TaskGraph | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* Current iteration count during execution.
|
|
98
|
+
*/
|
|
99
|
+
protected _currentIteration: number;
|
|
100
|
+
constructor(input?: Partial<Input>, config?: Partial<Config>);
|
|
101
|
+
/**
|
|
102
|
+
* Gets the condition function.
|
|
103
|
+
*/
|
|
104
|
+
get condition(): WhileConditionFn<Output> | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* Gets the maximum iterations limit.
|
|
107
|
+
*/
|
|
108
|
+
get maxIterations(): number;
|
|
109
|
+
/**
|
|
110
|
+
* Whether to chain iteration outputs to inputs.
|
|
111
|
+
*/
|
|
112
|
+
get chainIterations(): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Gets the current iteration count.
|
|
115
|
+
*/
|
|
116
|
+
get currentIteration(): number;
|
|
117
|
+
/**
|
|
118
|
+
* Sets the template graph that defines the workflow to run each iteration.
|
|
119
|
+
*/
|
|
120
|
+
setTemplateGraph(graph: TaskGraph): void;
|
|
121
|
+
/**
|
|
122
|
+
* Gets the template graph.
|
|
123
|
+
*/
|
|
124
|
+
getTemplateGraph(): TaskGraph | undefined;
|
|
125
|
+
/**
|
|
126
|
+
* Execute the while loop.
|
|
127
|
+
*/
|
|
128
|
+
execute(input: Input, context: IExecuteContext): Promise<Output | undefined>;
|
|
129
|
+
/**
|
|
130
|
+
* Clones the template graph for a specific iteration.
|
|
131
|
+
*/
|
|
132
|
+
protected cloneTemplateGraph(iteration: number): TaskGraph;
|
|
133
|
+
/**
|
|
134
|
+
* Static input schema for WhileTask.
|
|
135
|
+
*/
|
|
136
|
+
static inputSchema(): DataPortSchema;
|
|
137
|
+
/**
|
|
138
|
+
* Static output schema for WhileTask.
|
|
139
|
+
*/
|
|
140
|
+
static outputSchema(): DataPortSchema;
|
|
141
|
+
/**
|
|
142
|
+
* Instance output schema - returns final iteration output schema.
|
|
143
|
+
*/
|
|
144
|
+
outputSchema(): DataPortSchema;
|
|
145
|
+
}
|
|
146
|
+
declare module "../task-graph/Workflow" {
|
|
147
|
+
interface Workflow {
|
|
148
|
+
/**
|
|
149
|
+
* Starts a while loop that continues until a condition is false.
|
|
150
|
+
* Use .endWhile() to close the loop and return to the parent workflow.
|
|
151
|
+
*
|
|
152
|
+
* @param config - Configuration for the while loop (must include condition)
|
|
153
|
+
* @returns A Workflow in loop builder mode for defining the loop body
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* workflow
|
|
158
|
+
* .while({
|
|
159
|
+
* condition: (output, iteration) => output.quality < 0.9,
|
|
160
|
+
* maxIterations: 10
|
|
161
|
+
* })
|
|
162
|
+
* .refineResult()
|
|
163
|
+
* .endWhile()
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
while: CreateLoopWorkflow<TaskInput, TaskOutput, WhileTaskConfig<any>>;
|
|
167
|
+
/**
|
|
168
|
+
* Ends the while loop and returns to the parent workflow.
|
|
169
|
+
* Only callable on workflows in loop builder mode.
|
|
170
|
+
*
|
|
171
|
+
* @returns The parent workflow
|
|
172
|
+
*/
|
|
173
|
+
endWhile(): Workflow;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=WhileTask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WhileTask.d.ts","sourceRoot":"","sources":["../../src/task/WhileTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMpD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,MAAM,SAAS,UAAU,GAAG,UAAU,CACrE,SAAQ,iBAAiB;IACzB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE9C;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBAAa,SAAS,CACpB,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,eAAe,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAChE,SAAQ,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC1C,OAAc,IAAI,EAAE,YAAY,CAAe;IAC/C,OAAc,QAAQ,EAAE,MAAM,CAAkB;IAChD,OAAc,KAAK,EAAE,MAAM,CAAgB;IAC3C,OAAc,WAAW,EAAE,MAAM,CAAoD;IAErF,gEAAgE;IAChE,OAAc,iBAAiB,EAAE,OAAO,CAAQ;IAEhD;;OAEG;IACH,SAAS,CAAC,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;IAEhD;;OAEG;IACH,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAK;gBAE5B,KAAK,GAAE,OAAO,CAAC,KAAK,CAAM,EAAE,MAAM,GAAE,OAAO,CAAC,MAAM,CAAM;IAQpE;;OAEG;IACH,IAAW,SAAS,IAAI,gBAAgB,CAAC,MAAM,CAAC,GAAG,SAAS,CAE3D;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED;;OAEG;IACH,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAMD;;OAEG;IACI,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI/C;;OAEG;IACI,gBAAgB,IAAI,SAAS,GAAG,SAAS;IAQhD;;OAEG;IACU,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAwDzF;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IAqD1D;;OAEG;WACW,WAAW,IAAI,cAAc;IAQ3C;;OAEG;WACW,YAAY,IAAI,cAAc;IAc5C;;OAEG;IACa,YAAY,IAAI,cAAc;CA0C/C;AAMD,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,QAAQ;QAChB;;;;;;;;;;;;;;;;;WAiBG;QACH,KAAK,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAEvE;;;;;WAKG;QACH,QAAQ,IAAI,QAAQ,CAAC;KACtB;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export * from "./BatchTask";
|
|
7
|
+
export * from "./ConditionalTask";
|
|
8
|
+
export * from "./ForEachTask";
|
|
9
|
+
export * from "./GraphAsTask";
|
|
10
|
+
export * from "./GraphAsTaskRunner";
|
|
11
|
+
export * from "./InputResolver";
|
|
12
|
+
export * from "./ITask";
|
|
13
|
+
export * from "./IteratorTask";
|
|
14
|
+
export * from "./IteratorTaskRunner";
|
|
15
|
+
export * from "./JobQueueFactory";
|
|
16
|
+
export * from "./JobQueueTask";
|
|
17
|
+
export * from "./MapTask";
|
|
18
|
+
export * from "./ReduceTask";
|
|
19
|
+
export * from "./Task";
|
|
20
|
+
export * from "./TaskError";
|
|
21
|
+
export * from "./TaskEvents";
|
|
22
|
+
export * from "./TaskJSON";
|
|
23
|
+
export * from "./TaskQueueRegistry";
|
|
24
|
+
export * from "./TaskRegistry";
|
|
25
|
+
export * from "./TaskTypes";
|
|
26
|
+
export * from "./WhileTask";
|
|
27
|
+
import { BatchTask } from "./BatchTask";
|
|
28
|
+
import { ConditionalTask } from "./ConditionalTask";
|
|
29
|
+
import { ForEachTask } from "./ForEachTask";
|
|
30
|
+
import { GraphAsTask } from "./GraphAsTask";
|
|
31
|
+
import { MapTask } from "./MapTask";
|
|
32
|
+
import { ReduceTask } from "./ReduceTask";
|
|
33
|
+
import { WhileTask } from "./WhileTask";
|
|
34
|
+
export declare const registerBaseTasks: () => (typeof ConditionalTask | typeof GraphAsTask | typeof ForEachTask | typeof MapTask | typeof BatchTask | typeof WhileTask | typeof ReduceTask)[];
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,iBAAiB,uJAY7B,CAAC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { EventEmitter } from "@workglow/util";
|
|
7
7
|
import { TaskError } from "../task/TaskError";
|
|
8
8
|
import { DataflowJson } from "../task/TaskJSON";
|
|
9
|
-
import {
|
|
9
|
+
import { TaskIdType, TaskOutput, TaskStatus } from "../task/TaskTypes";
|
|
10
10
|
import { DataflowEventListener, DataflowEventListeners, DataflowEventParameters, DataflowEvents } from "./DataflowEvents";
|
|
11
11
|
import { TaskGraph } from "./TaskGraph";
|
|
12
12
|
export type DataflowIdType = `${string}[${string}] ==> ${string}[${string}]`;
|
|
@@ -24,12 +24,11 @@ export declare class Dataflow {
|
|
|
24
24
|
static createId(sourceTaskId: TaskIdType, sourceTaskPortId: string, targetTaskId: TaskIdType, targetTaskPortId: string): DataflowIdType;
|
|
25
25
|
get id(): DataflowIdType;
|
|
26
26
|
value: any;
|
|
27
|
-
provenance: Provenance;
|
|
28
27
|
status: TaskStatus;
|
|
29
28
|
error: TaskError | undefined;
|
|
30
29
|
reset(): void;
|
|
31
30
|
setStatus(status: TaskStatus): void;
|
|
32
|
-
setPortData(entireDataBlock: any
|
|
31
|
+
setPortData(entireDataBlock: any): void;
|
|
33
32
|
getPortData(): TaskOutput;
|
|
34
33
|
toJSON(): DataflowJson;
|
|
35
34
|
semanticallyCompatible(graph: TaskGraph, dataflow: Dataflow): "static" | "runtime" | "incompatible";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dataflow.d.ts","sourceRoot":"","sources":["../../src/task-graph/Dataflow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA6B,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"Dataflow.d.ts","sourceRoot":"","sources":["../../src/task-graph/Dataflow.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA6B,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,cAAc,GAAG,GAAG,MAAM,IAAI,MAAM,SAAS,MAAM,IAAI,MAAM,GAAG,CAAC;AAE7E,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C;;GAEG;AACH,qBAAa,QAAQ;IAEV,YAAY,EAAE,UAAU;IACxB,gBAAgB,EAAE,MAAM;IACxB,YAAY,EAAE,UAAU;IACxB,gBAAgB,EAAE,MAAM;gBAHxB,YAAY,EAAE,UAAU,EACxB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,UAAU,EACxB,gBAAgB,EAAE,MAAM;WAEnB,QAAQ,CACpB,YAAY,EAAE,UAAU,EACxB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,UAAU,EACxB,gBAAgB,EAAE,MAAM,GACvB,cAAc;IAGjB,IAAI,EAAE,IAAI,cAAc,CAOvB;IACM,KAAK,EAAE,GAAG,CAAa;IACvB,MAAM,EAAE,UAAU,CAAsB;IACxC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAE7B,KAAK;IAQL,SAAS,CAAC,MAAM,EAAE,UAAU;IA0BnC,WAAW,CAAC,eAAe,EAAE,GAAG;IAUhC,WAAW,IAAI,UAAU;IAYzB,MAAM,IAAI,YAAY;IAStB,sBAAsB,CACpB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,QAAQ,GACjB,QAAQ,GAAG,SAAS,GAAG,cAAc;IAiDxC;;OAEG;IACH,IAAW,MAAM,IAAI,YAAY,CAAC,sBAAsB,CAAC,CAKxD;IACD,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;IAE7D,SAAS,CAAC,KAAK,SAAS,cAAc,EAC3C,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAC/B,MAAM,IAAI;IAIb;;OAEG;IACI,EAAE,CAAC,KAAK,SAAS,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG,IAAI;IAI5F;;OAEG;IACI,GAAG,CAAC,KAAK,SAAS,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG,IAAI;IAI7F;;OAEG;IACI,IAAI,CAAC,KAAK,SAAS,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG,IAAI;IAI9F;;OAEG;IACI,MAAM,CAAC,KAAK,SAAS,cAAc,EACxC,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAI1C;;OAEG;IACI,IAAI,CAAC,KAAK,SAAS,cAAc,EACtC,IAAI,EAAE,KAAK,EACX,GAAG,IAAI,EAAE,uBAAuB,CAAC,KAAK,CAAC,GACtC,IAAI;CAGR;AAED;;;;;;GAMG;AACH,qBAAa,aAAc,SAAQ,QAAQ;gBAC7B,QAAQ,EAAE,cAAc;CAarC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { ITask } from "../task/ITask";
|
|
7
7
|
import { JsonTaskItem, TaskGraphJson } from "../task/TaskJSON";
|
|
8
|
-
import { TaskIdType, TaskInput, TaskOutput, TaskStatus } from "../task/TaskTypes";
|
|
8
|
+
import type { TaskIdType, TaskInput, TaskOutput, TaskStatus } from "../task/TaskTypes";
|
|
9
9
|
import { Dataflow, DataflowIdType } from "./Dataflow";
|
|
10
10
|
import type { TaskGraphRunConfig } from "./TaskGraph";
|
|
11
11
|
import type { TaskGraphEventListener, TaskGraphEvents } from "./TaskGraphEvents";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ITaskGraph.d.ts","sourceRoot":"","sources":["../../src/task-graph/ITaskGraph.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ITaskGraph.d.ts","sourceRoot":"","sources":["../../src/task-graph/ITaskGraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { DirectedAcyclicGraph, EventEmitter } from "@workglow/util";
|
|
6
|
+
import { DirectedAcyclicGraph, EventEmitter, ServiceRegistry } from "@workglow/util";
|
|
7
7
|
import { TaskOutputRepository } from "../storage/TaskOutputRepository";
|
|
8
8
|
import type { ITask } from "../task/ITask";
|
|
9
9
|
import { JsonTaskItem, TaskGraphJson } from "../task/TaskJSON";
|
|
10
|
-
import type {
|
|
10
|
+
import type { TaskIdType, TaskInput, TaskOutput, TaskStatus } from "../task/TaskTypes";
|
|
11
11
|
import { type PipeFunction } from "./Conversions";
|
|
12
12
|
import { Dataflow, type DataflowIdType } from "./Dataflow";
|
|
13
13
|
import type { ITaskGraph } from "./ITaskGraph";
|
|
@@ -21,8 +21,8 @@ export interface TaskGraphRunConfig {
|
|
|
21
21
|
outputCache?: TaskOutputRepository | boolean;
|
|
22
22
|
/** Optional signal to abort the task graph */
|
|
23
23
|
parentSignal?: AbortSignal;
|
|
24
|
-
/** Optional
|
|
25
|
-
|
|
24
|
+
/** Optional service registry to use for this task graph (creates child from global if not provided) */
|
|
25
|
+
registry?: ServiceRegistry;
|
|
26
26
|
}
|
|
27
27
|
declare class TaskGraphDAG extends DirectedAcyclicGraph<ITask<any, any, any>, Dataflow, TaskIdType, DataflowIdType> {
|
|
28
28
|
constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskGraph.d.ts","sourceRoot":"","sources":["../../src/task-graph/TaskGraph.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAS,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"TaskGraph.d.ts","sourceRoot":"","sources":["../../src/task-graph/TaskGraph.ts"],"names":[],"mappings":"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"}
|