@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.
Files changed (71) hide show
  1. package/README.md +1 -53
  2. package/dist/browser.js +1451 -355
  3. package/dist/browser.js.map +28 -21
  4. package/dist/bun.js +1451 -355
  5. package/dist/bun.js.map +28 -21
  6. package/dist/common.d.ts +1 -16
  7. package/dist/common.d.ts.map +1 -1
  8. package/dist/node.js +1451 -355
  9. package/dist/node.js.map +28 -21
  10. package/dist/storage/TaskGraphTabularRepository.d.ts +2 -2
  11. package/dist/storage/TaskGraphTabularRepository.d.ts.map +1 -1
  12. package/dist/storage/TaskOutputTabularRepository.d.ts +2 -2
  13. package/dist/storage/TaskOutputTabularRepository.d.ts.map +1 -1
  14. package/dist/task/BatchTask.d.ts +154 -0
  15. package/dist/task/BatchTask.d.ts.map +1 -0
  16. package/dist/task/ConditionalTask.d.ts +1 -0
  17. package/dist/task/ConditionalTask.d.ts.map +1 -1
  18. package/dist/task/ForEachTask.d.ts +120 -0
  19. package/dist/task/ForEachTask.d.ts.map +1 -0
  20. package/dist/task/GraphAsTask.d.ts +2 -0
  21. package/dist/task/GraphAsTask.d.ts.map +1 -1
  22. package/dist/task/GraphAsTaskRunner.d.ts +0 -1
  23. package/dist/task/GraphAsTaskRunner.d.ts.map +1 -1
  24. package/dist/task/ITask.d.ts +5 -6
  25. package/dist/task/ITask.d.ts.map +1 -1
  26. package/dist/task/InputResolver.d.ts +34 -0
  27. package/dist/task/InputResolver.d.ts.map +1 -0
  28. package/dist/task/IteratorTask.d.ts +197 -0
  29. package/dist/task/IteratorTask.d.ts.map +1 -0
  30. package/dist/task/IteratorTaskRunner.d.ts +63 -0
  31. package/dist/task/IteratorTaskRunner.d.ts.map +1 -0
  32. package/dist/task/JobQueueTask.d.ts +3 -3
  33. package/dist/task/JobQueueTask.d.ts.map +1 -1
  34. package/dist/task/MapTask.d.ts +134 -0
  35. package/dist/task/MapTask.d.ts.map +1 -0
  36. package/dist/task/ReduceTask.d.ts +155 -0
  37. package/dist/task/ReduceTask.d.ts.map +1 -0
  38. package/dist/task/Task.d.ts +22 -11
  39. package/dist/task/Task.d.ts.map +1 -1
  40. package/dist/task/TaskEvents.d.ts +1 -1
  41. package/dist/task/TaskEvents.d.ts.map +1 -1
  42. package/dist/task/TaskJSON.d.ts +1 -4
  43. package/dist/task/TaskJSON.d.ts.map +1 -1
  44. package/dist/task/TaskRunner.d.ts +6 -5
  45. package/dist/task/TaskRunner.d.ts.map +1 -1
  46. package/dist/task/TaskTypes.d.ts +0 -4
  47. package/dist/task/TaskTypes.d.ts.map +1 -1
  48. package/dist/task/WhileTask.d.ts +176 -0
  49. package/dist/task/WhileTask.d.ts.map +1 -0
  50. package/dist/task/index.d.ts +35 -0
  51. package/dist/task/index.d.ts.map +1 -0
  52. package/dist/task-graph/Dataflow.d.ts +2 -3
  53. package/dist/task-graph/Dataflow.d.ts.map +1 -1
  54. package/dist/task-graph/ITaskGraph.d.ts +1 -1
  55. package/dist/task-graph/ITaskGraph.d.ts.map +1 -1
  56. package/dist/task-graph/TaskGraph.d.ts +4 -4
  57. package/dist/task-graph/TaskGraph.d.ts.map +1 -1
  58. package/dist/task-graph/TaskGraphRunner.d.ts +11 -18
  59. package/dist/task-graph/TaskGraphRunner.d.ts.map +1 -1
  60. package/dist/task-graph/Workflow.d.ts +95 -9
  61. package/dist/task-graph/Workflow.d.ts.map +1 -1
  62. package/package.json +7 -7
  63. package/src/storage/README.md +1 -1
  64. package/src/task/README.md +91 -15
  65. package/src/task-graph/README.md +0 -2
  66. package/dist/task/ArrayTask.d.ts +0 -77
  67. package/dist/task/ArrayTask.d.ts.map +0 -1
  68. package/dist/task/InputTask.d.ts +0 -27
  69. package/dist/task/InputTask.d.ts.map +0 -1
  70. package/dist/task/OutputTask.d.ts +0 -27
  71. package/dist/task/OutputTask.d.ts.map +0 -1
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import type { TabularRepository } from "@workglow/storage";
6
+ import type { BaseTabularStorage } from "@workglow/storage";
7
7
  import { TaskGraph } from "../task-graph/TaskGraph";
8
8
  import { TaskGraphRepository } from "./TaskGraphRepository";
9
9
  export declare const TaskGraphSchema: {
@@ -22,7 +22,7 @@ export declare const TaskGraphPrimaryKeyNames: readonly ["key"];
22
22
  /**
23
23
  * Options for the TaskGraphRepository
24
24
  */
25
- export type TaskGraphRepositoryStorage = TabularRepository<typeof TaskGraphSchema, typeof TaskGraphPrimaryKeyNames>;
25
+ export type TaskGraphRepositoryStorage = BaseTabularStorage<typeof TaskGraphSchema, typeof TaskGraphPrimaryKeyNames>;
26
26
  type TaskGraphRepositoryOptions = {
27
27
  tabularRepository: TaskGraphRepositoryStorage;
28
28
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TaskGraphTabularRepository.d.ts","sourceRoot":"","sources":["../../src/storage/TaskGraphTabularRepository.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAO,MAAM,eAAe;;;;;;;;;;;CAOI,CAAC;AAEjC,eAAO,MAAM,wBAAwB,kBAAmB,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,iBAAiB,CACxD,OAAO,eAAe,EACtB,OAAO,wBAAwB,CAChC,CAAC;AACF,KAAK,0BAA0B,GAAG;IAChC,iBAAiB,EAAE,0BAA0B,CAAC;CAC/C,CAAC;AAEF;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,mBAAmB;IACjE;;OAEG;IACI,IAAI,SAAgC;IAE3C;;OAEG;IACH,iBAAiB,EAAE,0BAA0B,CAAC;IAE9C;;;OAGG;gBACS,EAAE,iBAAiB,EAAE,EAAE,0BAA0B;IAK7D;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC;;;;;OAKG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlE;;;;;OAKG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAa/D;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAG9B"}
1
+ {"version":3,"file":"TaskGraphTabularRepository.d.ts","sourceRoot":"","sources":["../../src/storage/TaskGraphTabularRepository.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAO,MAAM,eAAe;;;;;;;;;;;CAOI,CAAC;AAEjC,eAAO,MAAM,wBAAwB,kBAAmB,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,kBAAkB,CACzD,OAAO,eAAe,EACtB,OAAO,wBAAwB,CAChC,CAAC;AACF,KAAK,0BAA0B,GAAG;IAChC,iBAAiB,EAAE,0BAA0B,CAAC;CAC/C,CAAC;AAEF;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,mBAAmB;IACjE;;OAEG;IACI,IAAI,SAAgC;IAE3C;;OAEG;IACH,iBAAiB,EAAE,0BAA0B,CAAC;IAE9C;;;OAGG;gBACS,EAAE,iBAAiB,EAAE,EAAE,0BAA0B;IAK7D;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC;;;;;OAKG;IACG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlE;;;;;OAKG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAa/D;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;CAG9B"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { type TabularRepository } from "@workglow/storage";
6
+ import { type BaseTabularStorage } from "@workglow/storage";
7
7
  import { TaskInput, TaskOutput } from "../task/TaskTypes";
8
8
  import { TaskOutputRepository } from "./TaskOutputRepository";
9
9
  export type TaskOutputPrimaryKey = {
@@ -31,7 +31,7 @@ export declare const TaskOutputSchema: {
31
31
  additionalProperties: false;
32
32
  };
33
33
  export declare const TaskOutputPrimaryKeyNames: readonly ["key", "taskType"];
34
- export type TaskOutputRepositoryStorage = TabularRepository<typeof TaskOutputSchema, typeof TaskOutputPrimaryKeyNames>;
34
+ export type TaskOutputRepositoryStorage = BaseTabularStorage<typeof TaskOutputSchema, typeof TaskOutputPrimaryKeyNames>;
35
35
  export type TaskOutputRepositoryOptions = {
36
36
  tabularRepository: TaskOutputRepositoryStorage;
37
37
  outputCompression?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskOutputTabularRepository.d.ts","sourceRoot":"","sources":["../../src/storage/TaskOutputTabularRepository.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;CASG,CAAC;AAEjC,eAAO,MAAM,yBAAyB,8BAA+B,CAAC;AAEtE,MAAM,MAAM,2BAA2B,GAAG,iBAAiB,CACzD,OAAO,gBAAgB,EACvB,OAAO,yBAAyB,CACjC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,oBAAoB;IACnE;;OAEG;IACH,iBAAiB,EAAE,2BAA2B,CAAC;IAE/C;;;OAGG;gBACS,EAAE,iBAAiB,EAAE,iBAAwB,EAAE,EAAE,2BAA2B;IAMxF;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9D;;;;;OAKG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,SAAS,OAAa,GACrB,OAAO,CAAC,IAAI,CAAC;IAyBhB;;;;;OAKG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAkCrF;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B;;;OAGG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3D"}
1
+ {"version":3,"file":"TaskOutputTabularRepository.d.ts","sourceRoot":"","sources":["../../src/storage/TaskOutputTabularRepository.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;CASG,CAAC;AAEjC,eAAO,MAAM,yBAAyB,8BAA+B,CAAC;AAEtE,MAAM,MAAM,2BAA2B,GAAG,kBAAkB,CAC1D,OAAO,gBAAgB,EACvB,OAAO,yBAAyB,CACjC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,oBAAoB;IACnE;;OAEG;IACH,iBAAiB,EAAE,2BAA2B,CAAC;IAE/C;;;OAGG;gBACS,EAAE,iBAAiB,EAAE,iBAAwB,EAAE,EAAE,2BAA2B;IAMxF;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9D;;;;;OAKG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,SAAS,OAAa,GACrB,OAAO,CAAC,IAAI,CAAC;IAyBhB;;;;;OAKG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAkCrF;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B;;;OAGG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3D"}
@@ -0,0 +1,154 @@
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 { IteratorTask, IteratorTaskConfig } from "./IteratorTask";
8
+ import type { TaskInput, TaskOutput, TaskTypeName } from "./TaskTypes";
9
+ /**
10
+ * Configuration for BatchTask.
11
+ */
12
+ export interface BatchTaskConfig extends IteratorTaskConfig {
13
+ /**
14
+ * Number of items per batch.
15
+ * @default 10
16
+ */
17
+ readonly batchSize?: number;
18
+ /**
19
+ * Whether to flatten results from all batches into a single array.
20
+ * When false, results are grouped by batch.
21
+ * @default true
22
+ */
23
+ readonly flattenResults?: boolean;
24
+ /**
25
+ * Whether to execute batches in parallel or sequentially.
26
+ * @default "sequential"
27
+ */
28
+ readonly batchExecutionMode?: "parallel" | "sequential";
29
+ }
30
+ /**
31
+ * BatchTask processes an array in configurable chunks/batches.
32
+ *
33
+ * This task is useful for:
34
+ * - Rate-limited API calls that accept multiple items
35
+ * - Memory-constrained processing
36
+ * - Progress tracking at batch granularity
37
+ *
38
+ * ## Features
39
+ *
40
+ * - Groups array into chunks of batchSize
41
+ * - Runs inner workflow per batch (receives array of items)
42
+ * - Configurable batch and within-batch execution
43
+ * - Optional result flattening
44
+ *
45
+ * ## Usage
46
+ *
47
+ * ```typescript
48
+ * // Process in batches of 10
49
+ * workflow
50
+ * .input({ documents: [...100 docs...] })
51
+ * .batch({ batchSize: 10 })
52
+ * .bulkEmbed()
53
+ * .bulkStore()
54
+ * .endBatch()
55
+ *
56
+ * // Sequential batches for rate limiting
57
+ * workflow
58
+ * .batch({ batchSize: 5, batchExecutionMode: "sequential" })
59
+ * .apiCall()
60
+ * .endBatch()
61
+ * ```
62
+ *
63
+ * @template Input - The input type containing the array to batch
64
+ * @template Output - The output type (collected batch results)
65
+ * @template Config - The configuration type
66
+ */
67
+ export declare class BatchTask<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends BatchTaskConfig = BatchTaskConfig> extends IteratorTask<Input, Output, Config> {
68
+ static type: TaskTypeName;
69
+ static category: string;
70
+ static title: string;
71
+ static description: string;
72
+ /**
73
+ * BatchTask always uses PROPERTY_ARRAY merge strategy.
74
+ */
75
+ static readonly compoundMerge: "PROPERTY_ARRAY";
76
+ /**
77
+ * Static input schema for BatchTask.
78
+ */
79
+ static inputSchema(): DataPortSchema;
80
+ /**
81
+ * Static output schema for BatchTask.
82
+ */
83
+ static outputSchema(): DataPortSchema;
84
+ /**
85
+ * Gets the batch size.
86
+ */
87
+ get batchSize(): number;
88
+ /**
89
+ * Whether to flatten results from all batches.
90
+ */
91
+ get flattenResults(): boolean;
92
+ /**
93
+ * Batch execution mode.
94
+ */
95
+ get batchExecutionMode(): "parallel" | "sequential";
96
+ /**
97
+ * Override to group items into batches instead of individual items.
98
+ */
99
+ protected getIterableItems(input: Input): unknown[];
100
+ /**
101
+ * Groups items into batches of batchSize.
102
+ */
103
+ protected groupIntoBatches(items: unknown[]): unknown[][];
104
+ /**
105
+ * Creates iteration tasks for batches.
106
+ * Each batch receives the array of items for that batch.
107
+ */
108
+ protected createIterationTasks(batches: unknown[]): void;
109
+ /**
110
+ * Returns the empty result for BatchTask.
111
+ */
112
+ protected getEmptyResult(): Output;
113
+ /**
114
+ * Output schema for BatchTask.
115
+ * Similar to MapTask - wraps inner outputs in arrays.
116
+ */
117
+ outputSchema(): DataPortSchema;
118
+ /**
119
+ * Collects and optionally flattens results from all batches.
120
+ */
121
+ protected collectResults(results: TaskOutput[]): Output;
122
+ /**
123
+ * Regenerates the graph for batch execution.
124
+ */
125
+ regenerateGraph(): void;
126
+ }
127
+ declare module "../task-graph/Workflow" {
128
+ interface Workflow {
129
+ /**
130
+ * Starts a batch loop that processes arrays in chunks.
131
+ * Use .endBatch() to close the loop and return to the parent workflow.
132
+ *
133
+ * @param config - Configuration for the batch loop
134
+ * @returns A Workflow in loop builder mode for defining the batch processing
135
+ *
136
+ * @example
137
+ * ```typescript
138
+ * workflow
139
+ * .batch({ batchSize: 10 })
140
+ * .bulkProcess()
141
+ * .endBatch()
142
+ * ```
143
+ */
144
+ batch: CreateLoopWorkflow<TaskInput, TaskOutput, BatchTaskConfig>;
145
+ /**
146
+ * Ends the batch loop and returns to the parent workflow.
147
+ * Only callable on workflows in loop builder mode.
148
+ *
149
+ * @returns The parent workflow
150
+ */
151
+ endBatch(): Workflow;
152
+ }
153
+ }
154
+ //# sourceMappingURL=BatchTask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchTask.d.ts","sourceRoot":"","sources":["../../src/task/BatchTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQrD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;CACzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,SAAS,CACpB,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,eAAe,GAAG,eAAe,CAChD,SAAQ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC3C,OAAc,IAAI,EAAE,YAAY,CAAe;IAC/C,OAAc,QAAQ,EAAE,MAAM,CAAkB;IAChD,OAAc,KAAK,EAAE,MAAM,CAAW;IACtC,OAAc,WAAW,EAAE,MAAM,CAAgD;IAEjF;;OAEG;IACH,gBAAuB,aAAa,mBAAkB;IAEtD;;OAEG;WACW,WAAW,IAAI,cAAc;IAQ3C;;OAEG;WACW,YAAY,IAAI,cAAc;IAQ5C;;OAEG;IACH,IAAoB,SAAS,IAAI,MAAM,CAEtC;IAED;;OAEG;IACH,IAAW,cAAc,IAAI,OAAO,CAEnC;IAED;;OAEG;IACH,IAAW,kBAAkB,IAAI,UAAU,GAAG,YAAY,CAEzD;IAED;;OAEG;cACgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,EAAE;IAK5D;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE;IAWzD;;;OAGG;cACgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;IA0BjE;;OAEG;cACgB,cAAc,IAAI,MAAM;IAc3C;;;OAGG;IACa,YAAY,IAAI,cAAc;IAQ9C;;OAEG;cACgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM;IAqBhE;;OAEG;IACa,eAAe,IAAI,IAAI;CAqBxC;AAMD,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,QAAQ;QAChB;;;;;;;;;;;;;;WAcG;QAEH,KAAK,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QAElE;;;;;WAKG;QACH,QAAQ,IAAI,QAAQ,CAAC;KACtB;CACF"}
@@ -183,6 +183,7 @@ export declare class ConditionalTask<Input extends TaskInput = TaskInput, Output
183
183
  static category: string;
184
184
  /** Human-readable title for display in UIs */
185
185
  static title: string;
186
+ static description: string;
186
187
  /** This task has dynamic schemas that change based on branch configuration */
187
188
  static hasDynamicSchemas: boolean;
188
189
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionalTask.d.ts","sourceRoot":"","sources":["../../src/task/ConditionalTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMnF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,WAAW,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;AAE3D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY,CAAC,KAAK;IACjC,wDAAwD;IACxD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAEvC,gFAAgF;IAChF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;IAEvC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,qBAAa,eAAe,CAC1B,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,CAC5D,SAAQ,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IACnC,iEAAiE;IACjE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAqB;IAE9C,iDAAiD;IACjD,MAAM,CAAC,QAAQ,SAAkB;IAEjC,8CAA8C;IAC9C,MAAM,CAAC,KAAK,SAAsB;IAElC,8EAA8E;IAC9E,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAQ;IAEzC;;;;OAIG;IACI,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAM/C;;;;;;;OAOG;IACU,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAwCzF;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAsB3C;;;;;;;;;;;;;OAaG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIhD;;;;;OAKG;IACI,iBAAiB,IAAI,GAAG,CAAC,MAAM,CAAC;IAIvC;;;;;;;;;;;;;OAaG;IACI,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAelD;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,IAAI,cAAc;IAerC;;;;;OAKG;IACH,YAAY,IAAI,cAAc;IA0B9B;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAQpC;;;;OAIG;IACH,WAAW,IAAI,cAAc;CAO9B"}
1
+ {"version":3,"file":"ConditionalTask.d.ts","sourceRoot":"","sources":["../../src/task/ConditionalTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMnF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,WAAW,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;AAE3D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY,CAAC,KAAK;IACjC,wDAAwD;IACxD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAEvC,gFAAgF;IAChF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;IAEvC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,qBAAa,eAAe,CAC1B,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,CAC5D,SAAQ,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IACnC,iEAAiE;IACjE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAqB;IAE9C,iDAAiD;IACjD,MAAM,CAAC,QAAQ,SAAY;IAE3B,8CAA8C;IAC9C,MAAM,CAAC,KAAK,SAAsB;IAClC,MAAM,CAAC,WAAW,SAAkE;IAEpF,8EAA8E;IAC9E,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAQ;IAEzC;;;;OAIG;IACI,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAM/C;;;;;;;OAOG;IACU,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAwCzF;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAsB3C;;;;;;;;;;;;;OAaG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIhD;;;;;OAKG;IACI,iBAAiB,IAAI,GAAG,CAAC,MAAM,CAAC;IAIvC;;;;;;;;;;;;;OAaG;IACI,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAelD;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,IAAI,cAAc;IAerC;;;;;OAKG;IACH,YAAY,IAAI,cAAc;IA0B9B;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAQpC;;;;OAIG;IACH,WAAW,IAAI,cAAc;CAO9B"}
@@ -0,0 +1,120 @@
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 { IteratorTask, IteratorTaskConfig } from "./IteratorTask";
8
+ import type { TaskInput, TaskOutput, TaskTypeName } from "./TaskTypes";
9
+ /**
10
+ * Configuration for ForEachTask.
11
+ */
12
+ export interface ForEachTaskConfig extends IteratorTaskConfig {
13
+ /**
14
+ * Whether to collect and return results from each iteration.
15
+ * When false (default), ForEachTask is optimized for side effects.
16
+ * When true, results are collected but not transformed.
17
+ * @default false
18
+ */
19
+ readonly shouldCollectResults?: boolean;
20
+ }
21
+ /**
22
+ * ForEachTask iterates over an array and runs a workflow for each element.
23
+ *
24
+ * This task is optimized for side-effect operations where the primary goal
25
+ * is to process each item rather than collect transformed results.
26
+ * For transformations that collect results, use MapTask instead.
27
+ *
28
+ * ## Features
29
+ *
30
+ * - Iterates over array input
31
+ * - Runs inner workflow for each element
32
+ * - Configurable execution modes (parallel, sequential, etc.)
33
+ * - Optimized for side effects (default: doesn't collect results)
34
+ *
35
+ * ## Usage
36
+ *
37
+ * ```typescript
38
+ * // Using Workflow API
39
+ * workflow
40
+ * .input({ items: ["a", "b", "c"] })
41
+ * .forEach()
42
+ * .processItem()
43
+ * .saveToDatabase()
44
+ * .endForEach()
45
+ *
46
+ * // With sequential execution
47
+ * workflow
48
+ * .forEach({ executionMode: "sequential" })
49
+ * .processItem()
50
+ * .endForEach()
51
+ * ```
52
+ *
53
+ * @template Input - The input type containing the array to iterate
54
+ * @template Output - The output type (typically empty for side-effect operations)
55
+ * @template Config - The configuration type
56
+ */
57
+ export declare class ForEachTask<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends ForEachTaskConfig = ForEachTaskConfig> extends IteratorTask<Input, Output, Config> {
58
+ static type: TaskTypeName;
59
+ static category: string;
60
+ static title: string;
61
+ static description: string;
62
+ /**
63
+ * Static input schema for ForEachTask.
64
+ * Accepts any object with at least one array property.
65
+ */
66
+ static inputSchema(): DataPortSchema;
67
+ /**
68
+ * Static output schema for ForEachTask.
69
+ * By default, returns an empty object (side-effect focused).
70
+ */
71
+ static outputSchema(): DataPortSchema;
72
+ /**
73
+ * Whether to collect results from iterations.
74
+ */
75
+ get shouldCollectResults(): boolean;
76
+ /**
77
+ * Returns the empty result for ForEachTask.
78
+ * Indicates completion with zero items processed.
79
+ */
80
+ protected getEmptyResult(): Output;
81
+ /**
82
+ * Output schema for ForEachTask instance.
83
+ * If shouldCollectResults is enabled, wraps inner output in arrays.
84
+ * Otherwise, returns the simple completion status schema.
85
+ */
86
+ outputSchema(): DataPortSchema;
87
+ /**
88
+ * Collects results from all iterations.
89
+ * For ForEachTask, this primarily returns completion status.
90
+ */
91
+ protected collectResults(results: TaskOutput[]): Output;
92
+ }
93
+ declare module "../task-graph/Workflow" {
94
+ interface Workflow {
95
+ /**
96
+ * Starts a forEach loop that iterates over an array.
97
+ * Use .endForEach() to close the loop and return to the parent workflow.
98
+ *
99
+ * @param config - Configuration for the forEach loop
100
+ * @returns A Workflow in loop builder mode for defining the loop body
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * workflow
105
+ * .forEach({ executionMode: "sequential" })
106
+ * .processItem()
107
+ * .endForEach()
108
+ * ```
109
+ */
110
+ forEach: CreateLoopWorkflow<TaskInput, TaskOutput, ForEachTaskConfig>;
111
+ /**
112
+ * Ends the forEach loop and returns to the parent workflow.
113
+ * Only callable on workflows in loop builder mode.
114
+ *
115
+ * @returns The parent workflow
116
+ */
117
+ endForEach(): Workflow;
118
+ }
119
+ }
120
+ //# sourceMappingURL=ForEachTask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ForEachTask.d.ts","sourceRoot":"","sources":["../../src/task/ForEachTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMrD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,WAAW,CACtB,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,CACpD,SAAQ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC3C,OAAc,IAAI,EAAE,YAAY,CAAiB;IACjD,OAAc,QAAQ,EAAE,MAAM,CAAkB;IAChD,OAAc,KAAK,EAAE,MAAM,CAAc;IACzC,OAAc,WAAW,EAAE,MAAM,CAAiE;IAElG;;;OAGG;WACW,WAAW,IAAI,cAAc;IAQ3C;;;OAGG;WACW,YAAY,IAAI,cAAc;IAmB5C;;OAEG;IACH,IAAW,oBAAoB,IAAI,OAAO,CAEzC;IAED;;;OAGG;cACgB,cAAc,IAAI,MAAM;IAO3C;;;;OAIG;IACa,YAAY,IAAI,cAAc;IAU9C;;;OAGG;cACgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM;CAYjE;AAMD,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,QAAQ;QAChB;;;;;;;;;;;;;;WAcG;QACH,OAAO,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAEtE;;;;;WAKG;QACH,UAAU,IAAI,QAAQ,CAAC;KACxB;CACF"}
@@ -20,6 +20,8 @@ export interface GraphAsTaskConfig extends TaskConfig {
20
20
  */
21
21
  export declare class GraphAsTask<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends GraphAsTaskConfig = GraphAsTaskConfig> extends Task<Input, Output, Config> {
22
22
  static type: TaskTypeName;
23
+ static title: string;
24
+ static description: string;
23
25
  static category: string;
24
26
  static compoundMerge: CompoundMergeStrategy;
25
27
  /** This task has dynamic schemas that change based on the subgraph structure */
@@ -1 +1 @@
1
- {"version":3,"file":"GraphAsTask.d.ts","sourceRoot":"","sources":["../../src/task/GraphAsTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAiB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAkB,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,WAAW,CACtB,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,CACpD,SAAQ,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAKnC,OAAc,IAAI,EAAE,YAAY,CAAiB;IACjD,OAAc,QAAQ,EAAE,MAAM,CAAY;IAC1C,OAAc,aAAa,EAAE,qBAAqB,CAAkB;IAEpE,gFAAgF;IAChF,OAAc,iBAAiB,EAAE,OAAO,CAAQ;gBAMpC,KAAK,GAAE,OAAO,CAAC,KAAK,CAAM,EAAE,MAAM,GAAE,OAAO,CAAC,MAAM,CAAM;IAa5D,OAAO,EAAE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1D;;OAEG;IACH,IAAa,MAAM,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAK9D;IAMD,IAAW,aAAa,IAAI,qBAAqB,CAEhD;IAED,IAAW,SAAS,IAAI,OAAO,CAM9B;IAMD;;;;OAIG;IACI,WAAW,IAAI,cAAc;IAsDpC,SAAS,CAAC,gBAAgB,EAAE,UAAU,GAAG,SAAS,CAAC;IACnD;;OAEG;cACgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU;IAoBrE;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;;OAGG;IACa,YAAY,IAAI,cAAc;IA2E9C;;OAEG;IACI,cAAc,IAAI,IAAI;IAgB7B;;;;;;OAMG;IACI,eAAe,IAAI,IAAI;IAS9B;;;OAGG;IACI,MAAM,IAAI,iBAAiB;IAalC;;;OAGG;IACI,gBAAgB,IAAI,YAAY;CAUxC"}
1
+ {"version":3,"file":"GraphAsTask.d.ts","sourceRoot":"","sources":["../../src/task/GraphAsTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAiB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAkB,MAAM,+BAA+B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,WAAW,CACtB,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,CACpD,SAAQ,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAKnC,OAAc,IAAI,EAAE,YAAY,CAAiB;IACjD,OAAc,KAAK,EAAE,MAAM,CAAmB;IAC9C,OAAc,WAAW,EAAE,MAAM,CAA8C;IAC/E,OAAc,QAAQ,EAAE,MAAM,CAAY;IAC1C,OAAc,aAAa,EAAE,qBAAqB,CAAkB;IAEpE,gFAAgF;IAChF,OAAc,iBAAiB,EAAE,OAAO,CAAQ;gBAMpC,KAAK,GAAE,OAAO,CAAC,KAAK,CAAM,EAAE,MAAM,GAAE,OAAO,CAAC,MAAM,CAAM;IAa5D,OAAO,EAAE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1D;;OAEG;IACH,IAAa,MAAM,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAK9D;IAMD,IAAW,aAAa,IAAI,qBAAqB,CAEhD;IAED,IAAW,SAAS,IAAI,OAAO,CAM9B;IAMD;;;;OAIG;IACI,WAAW,IAAI,cAAc;IAsDpC,SAAS,CAAC,gBAAgB,EAAE,UAAU,GAAG,SAAS,CAAC;IACnD;;OAEG;cACgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU;IAoBrE;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;;OAGG;IACa,YAAY,IAAI,cAAc;IA2E9C;;OAEG;IACI,cAAc,IAAI,IAAI;IAgB7B;;;;;;OAMG;IACI,eAAe,IAAI,IAAI;IAS9B;;;OAGG;IACI,MAAM,IAAI,iBAAiB;IAalC;;;OAGG;IACI,gBAAgB,IAAI,YAAY;CAUxC"}
@@ -23,7 +23,6 @@ export declare class GraphAsTaskRunner<Input extends TaskInput = TaskInput, Outp
23
23
  */
24
24
  protected executeTaskChildrenReactive(): Promise<GraphResultArray<Output>>;
25
25
  protected handleDisable(): Promise<void>;
26
- private fixInput;
27
26
  /**
28
27
  * Execute the task
29
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"GraphAsTaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/GraphAsTaskRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhE,qBAAa,iBAAiB,CAC5B,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,UAAU,GAAG,UAAU,CACtC,SAAQ,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IACjC,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjD;;OAEG;cACa,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAepF;;;;;;;OAOG;cACa,2BAA2B,IAAI,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;cAIhE,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9C,OAAO,CAAC,QAAQ;IA6BhB;;OAEG;cACa,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IActE;;OAEG;IACU,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAahF"}
1
+ {"version":3,"file":"GraphAsTaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/GraphAsTaskRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhE,qBAAa,iBAAiB,CAC5B,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,UAAU,GAAG,UAAU,CACtC,SAAQ,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IACjC,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjD;;OAEG;cACa,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAcpF;;;;;;;OAOG;cACa,2BAA2B,IAAI,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;cAIhE,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9C;;OAEG;cACa,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IActE;;OAEG;IACU,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAahF"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import type { DataPortSchema, EventEmitter } from "@workglow/util";
6
+ import type { DataPortSchema, EventEmitter, ServiceRegistry } from "@workglow/util";
7
7
  import { TaskOutputRepository } from "../storage/TaskOutputRepository";
8
8
  import { ITaskGraph } from "../task-graph/ITaskGraph";
9
9
  import { IWorkflow } from "../task-graph/IWorkflow";
@@ -13,24 +13,24 @@ import { TaskError } from "./TaskError";
13
13
  import type { TaskEventListener, TaskEventListeners, TaskEventParameters, TaskEvents } from "./TaskEvents";
14
14
  import type { JsonTaskItem, TaskGraphItemJson } from "./TaskJSON";
15
15
  import { TaskRunner } from "./TaskRunner";
16
- import type { Provenance, TaskConfig, TaskInput, TaskOutput, TaskStatus } from "./TaskTypes";
16
+ import type { TaskConfig, TaskInput, TaskOutput, TaskStatus } from "./TaskTypes";
17
17
  /**
18
18
  * Context for task execution
19
19
  */
20
20
  export interface IExecuteContext {
21
21
  signal: AbortSignal;
22
- nodeProvenance: Provenance;
23
22
  updateProgress: (progress: number, message?: string, ...args: any[]) => Promise<void>;
24
23
  own: <T extends ITask | ITaskGraph | IWorkflow>(i: T) => T;
24
+ registry: ServiceRegistry;
25
25
  }
26
26
  export type IExecuteReactiveContext = Pick<IExecuteContext, "own">;
27
27
  /**
28
28
  * Configuration for running a task
29
29
  */
30
30
  export interface IRunConfig {
31
- nodeProvenance?: Provenance;
32
31
  outputCache?: TaskOutputRepository | boolean;
33
32
  updateProgress?: (task: ITask, progress: number, message?: string, ...args: any[]) => Promise<void>;
33
+ registry?: ServiceRegistry;
34
34
  }
35
35
  /**
36
36
  * Interface for task static property metadata
@@ -84,7 +84,7 @@ export interface ITaskIO<Input extends TaskInput> {
84
84
  addInput(overrides: Record<string, any> | undefined): boolean;
85
85
  validateInput(input: Record<string, any>): Promise<boolean>;
86
86
  get cacheable(): boolean;
87
- narrowInput(input: Record<string, any>): Promise<Record<string, any>>;
87
+ narrowInput(input: Record<string, any>, registry: ServiceRegistry): Promise<Record<string, any>>;
88
88
  }
89
89
  export interface ITaskInternalGraph {
90
90
  subGraph: TaskGraph;
@@ -107,7 +107,6 @@ export interface ITaskEvents {
107
107
  * Interface for task serialization
108
108
  */
109
109
  export interface ITaskSerialization {
110
- getProvenance(): Provenance;
111
110
  toJSON(): JsonTaskItem | TaskGraphItemJson;
112
111
  toDependencyJSON(): JsonTaskItem;
113
112
  id(): unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"ITask.d.ts","sourceRoot":"","sources":["../../src/task/ITask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ITask.d.ts","sourceRoot":"","sources":["../../src/task/ITask.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { DataPortSchema, ServiceRegistry } from "@workglow/util";
7
+ /**
8
+ * Configuration for the input resolver
9
+ */
10
+ export interface InputResolverConfig {
11
+ readonly registry: ServiceRegistry;
12
+ }
13
+ /**
14
+ * Resolves schema-annotated inputs by looking up string IDs from registries.
15
+ * String values with matching format annotations are resolved to their instances.
16
+ * Non-string values (objects/instances) are passed through unchanged.
17
+ *
18
+ * @param input The task input object
19
+ * @param schema The task's input schema
20
+ * @param config Configuration including the service registry
21
+ * @returns The input with resolved values
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * // In TaskRunner.run()
26
+ * const resolvedInput = await resolveSchemaInputs(
27
+ * this.task.runInputData,
28
+ * (this.task.constructor as typeof Task).inputSchema(),
29
+ * { registry: this.registry }
30
+ * );
31
+ * ```
32
+ */
33
+ export declare function resolveSchemaInputs<T extends Record<string, unknown>>(input: T, schema: DataPortSchema, config: InputResolverConfig): Promise<T>;
34
+ //# sourceMappingURL=InputResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputResolver.d.ts","sourceRoot":"","sources":["../../src/task/InputResolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;CACpC;AAqCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzE,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,CAAC,CAAC,CAuCZ"}