@workglow/task-graph 0.0.101 → 0.0.103
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 -3
- package/dist/browser.js +1083 -275
- package/dist/browser.js.map +26 -23
- package/dist/bun.js +1083 -275
- package/dist/bun.js.map +26 -23
- package/dist/common.d.ts +1 -0
- package/dist/common.d.ts.map +1 -1
- package/dist/node.js +1083 -275
- package/dist/node.js.map +26 -23
- package/dist/task/ConditionalTask.d.ts +11 -2
- package/dist/task/ConditionalTask.d.ts.map +1 -1
- package/dist/task/FallbackTask.d.ts +244 -0
- package/dist/task/FallbackTask.d.ts.map +1 -0
- package/dist/task/FallbackTaskRunner.d.ts +49 -0
- package/dist/task/FallbackTaskRunner.d.ts.map +1 -0
- package/dist/task/GraphAsTask.d.ts +22 -13
- package/dist/task/GraphAsTask.d.ts.map +1 -1
- package/dist/task/ITask.d.ts +6 -4
- package/dist/task/ITask.d.ts.map +1 -1
- package/dist/task/IteratorTask.d.ts +22 -8
- package/dist/task/IteratorTask.d.ts.map +1 -1
- package/dist/task/IteratorTaskRunner.d.ts +7 -5
- package/dist/task/IteratorTaskRunner.d.ts.map +1 -1
- package/dist/task/JobQueueTask.d.ts +21 -3
- package/dist/task/JobQueueTask.d.ts.map +1 -1
- package/dist/task/MapTask.d.ts +11 -1
- package/dist/task/MapTask.d.ts.map +1 -1
- package/dist/task/ReduceTask.d.ts +11 -1
- package/dist/task/ReduceTask.d.ts.map +1 -1
- package/dist/task/StreamTypes.d.ts +26 -4
- package/dist/task/StreamTypes.d.ts.map +1 -1
- package/dist/task/Task.d.ts +25 -18
- package/dist/task/Task.d.ts.map +1 -1
- package/dist/task/TaskError.d.ts +9 -0
- package/dist/task/TaskError.d.ts.map +1 -1
- package/dist/task/TaskJSON.d.ts +12 -3
- package/dist/task/TaskJSON.d.ts.map +1 -1
- package/dist/task/TaskRunner.d.ts +20 -0
- package/dist/task/TaskRunner.d.ts.map +1 -1
- package/dist/task/TaskTypes.d.ts +11 -1
- package/dist/task/TaskTypes.d.ts.map +1 -1
- package/dist/task/WhileTask.d.ts +11 -1
- package/dist/task/WhileTask.d.ts.map +1 -1
- package/dist/task/index.d.ts +4 -1
- package/dist/task/index.d.ts.map +1 -1
- package/dist/task/iterationSchema.d.ts +1 -1
- package/dist/task-graph/GraphSchemaUtils.d.ts +51 -0
- package/dist/task-graph/GraphSchemaUtils.d.ts.map +1 -0
- package/dist/task-graph/ITaskGraph.d.ts +3 -3
- package/dist/task-graph/ITaskGraph.d.ts.map +1 -1
- package/dist/task-graph/IWorkflow.d.ts +1 -1
- package/dist/task-graph/IWorkflow.d.ts.map +1 -1
- package/dist/task-graph/TaskGraph.d.ts +6 -4
- package/dist/task-graph/TaskGraph.d.ts.map +1 -1
- package/dist/task-graph/TaskGraphRunner.d.ts +26 -0
- package/dist/task-graph/TaskGraphRunner.d.ts.map +1 -1
- package/dist/task-graph/Workflow.d.ts +26 -4
- package/dist/task-graph/Workflow.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/EXECUTION_MODEL.md +1 -1
- package/src/task/ConditionalTask.README.md +4 -4
|
@@ -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
|
|
6
|
+
import { type DataPortSchema } from "@workglow/util";
|
|
7
7
|
import { type UIConditionConfig } from "./ConditionUtils";
|
|
8
8
|
import type { IExecuteContext } from "./ITask";
|
|
9
9
|
import { Task } from "./Task";
|
|
@@ -92,7 +92,9 @@ export declare const conditionalTaskConfigSchema: {
|
|
|
92
92
|
readonly type: "object";
|
|
93
93
|
readonly additionalProperties: true;
|
|
94
94
|
};
|
|
95
|
-
readonly id: {
|
|
95
|
+
readonly id: {
|
|
96
|
+
readonly "x-ui-hidden": true;
|
|
97
|
+
};
|
|
96
98
|
readonly title: {
|
|
97
99
|
readonly type: "string";
|
|
98
100
|
};
|
|
@@ -102,19 +104,26 @@ export declare const conditionalTaskConfigSchema: {
|
|
|
102
104
|
readonly cacheable: {
|
|
103
105
|
readonly type: "boolean";
|
|
104
106
|
};
|
|
107
|
+
readonly timeout: {
|
|
108
|
+
readonly type: "number";
|
|
109
|
+
readonly description: "Max execution time in milliseconds";
|
|
110
|
+
};
|
|
105
111
|
readonly inputSchema: {
|
|
106
112
|
readonly type: "object";
|
|
107
113
|
readonly properties: {};
|
|
108
114
|
readonly additionalProperties: true;
|
|
115
|
+
readonly "x-ui-hidden": true;
|
|
109
116
|
};
|
|
110
117
|
readonly outputSchema: {
|
|
111
118
|
readonly type: "object";
|
|
112
119
|
readonly properties: {};
|
|
113
120
|
readonly additionalProperties: true;
|
|
121
|
+
readonly "x-ui-hidden": true;
|
|
114
122
|
};
|
|
115
123
|
readonly extras: {
|
|
116
124
|
readonly type: "object";
|
|
117
125
|
readonly additionalProperties: true;
|
|
126
|
+
readonly "x-ui-hidden": true;
|
|
118
127
|
};
|
|
119
128
|
};
|
|
120
129
|
readonly additionalProperties: false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConditionalTask.d.ts","sourceRoot":"","sources":["../../src/task/ConditionalTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ConditionalTask.d.ts","sourceRoot":"","sources":["../../src/task/ConditionalTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,244 @@
|
|
|
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 { GraphAsTask, GraphAsTaskConfig } from "./GraphAsTask";
|
|
8
|
+
import { FallbackTaskRunner } from "./FallbackTaskRunner";
|
|
9
|
+
import type { TaskInput, TaskOutput, TaskTypeName } from "./TaskTypes";
|
|
10
|
+
/**
|
|
11
|
+
* Execution mode for the fallback task.
|
|
12
|
+
*
|
|
13
|
+
* - `"task"`: Each task in the subgraph is an independent alternative.
|
|
14
|
+
* They are tried sequentially until one succeeds.
|
|
15
|
+
*
|
|
16
|
+
* - `"data"`: The subgraph contains a template workflow that is executed
|
|
17
|
+
* multiple times with different input overrides from the `alternatives` array.
|
|
18
|
+
*/
|
|
19
|
+
export type FallbackMode = "task" | "data";
|
|
20
|
+
export declare const fallbackTaskConfigSchema: {
|
|
21
|
+
readonly type: "object";
|
|
22
|
+
readonly properties: {
|
|
23
|
+
readonly fallbackMode: {
|
|
24
|
+
readonly type: "string";
|
|
25
|
+
readonly enum: readonly ["task", "data"];
|
|
26
|
+
};
|
|
27
|
+
readonly alternatives: {
|
|
28
|
+
readonly type: "array";
|
|
29
|
+
readonly items: {
|
|
30
|
+
readonly type: "object";
|
|
31
|
+
readonly additionalProperties: true;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
readonly compoundMerge: {
|
|
35
|
+
readonly type: "string";
|
|
36
|
+
readonly "x-ui-hidden": true;
|
|
37
|
+
};
|
|
38
|
+
readonly id: {
|
|
39
|
+
readonly "x-ui-hidden": true;
|
|
40
|
+
};
|
|
41
|
+
readonly title: {
|
|
42
|
+
readonly type: "string";
|
|
43
|
+
};
|
|
44
|
+
readonly description: {
|
|
45
|
+
readonly type: "string";
|
|
46
|
+
};
|
|
47
|
+
readonly cacheable: {
|
|
48
|
+
readonly type: "boolean";
|
|
49
|
+
};
|
|
50
|
+
readonly timeout: {
|
|
51
|
+
readonly type: "number";
|
|
52
|
+
readonly description: "Max execution time in milliseconds";
|
|
53
|
+
};
|
|
54
|
+
readonly inputSchema: {
|
|
55
|
+
readonly type: "object";
|
|
56
|
+
readonly properties: {};
|
|
57
|
+
readonly additionalProperties: true;
|
|
58
|
+
readonly "x-ui-hidden": true;
|
|
59
|
+
};
|
|
60
|
+
readonly outputSchema: {
|
|
61
|
+
readonly type: "object";
|
|
62
|
+
readonly properties: {};
|
|
63
|
+
readonly additionalProperties: true;
|
|
64
|
+
readonly "x-ui-hidden": true;
|
|
65
|
+
};
|
|
66
|
+
readonly extras: {
|
|
67
|
+
readonly type: "object";
|
|
68
|
+
readonly additionalProperties: true;
|
|
69
|
+
readonly "x-ui-hidden": true;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
readonly additionalProperties: false;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Configuration type for FallbackTask.
|
|
76
|
+
* Extends GraphAsTaskConfig with fallback-specific options.
|
|
77
|
+
*/
|
|
78
|
+
export type FallbackTaskConfig = GraphAsTaskConfig & {
|
|
79
|
+
/**
|
|
80
|
+
* The fallback execution mode.
|
|
81
|
+
* - `"task"`: Try each task in the subgraph as an alternative.
|
|
82
|
+
* - `"data"`: Try the template workflow with each set of input overrides.
|
|
83
|
+
* @default "task"
|
|
84
|
+
*/
|
|
85
|
+
readonly fallbackMode?: FallbackMode;
|
|
86
|
+
/**
|
|
87
|
+
* Array of input overrides for data mode.
|
|
88
|
+
* Each entry is merged with the task input before running the template.
|
|
89
|
+
* Only used when `fallbackMode` is `"data"`.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```typescript
|
|
93
|
+
* alternatives: [
|
|
94
|
+
* { model: "openai:gpt-4" },
|
|
95
|
+
* { model: "anthropic:claude-sonnet-4-20250514" },
|
|
96
|
+
* { model: "onnx:Xenova/LaMini-Flan-T5-783M:q8" },
|
|
97
|
+
* ]
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
readonly alternatives?: Record<string, unknown>[];
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* A task that tries multiple alternatives and returns the first successful result.
|
|
104
|
+
*
|
|
105
|
+
* FallbackTask provides resilient execution by automatically falling back to
|
|
106
|
+
* alternative strategies when one fails. This is essential for production AI
|
|
107
|
+
* workflows where provider availability is unpredictable.
|
|
108
|
+
*
|
|
109
|
+
* ## Execution Modes
|
|
110
|
+
*
|
|
111
|
+
* ### Task Mode (`fallbackMode: "task"`)
|
|
112
|
+
* Each task added to the subgraph is an independent alternative. They are
|
|
113
|
+
* tried sequentially in insertion order. The first successful result is
|
|
114
|
+
* returned and remaining alternatives are skipped.
|
|
115
|
+
*
|
|
116
|
+
* ```typescript
|
|
117
|
+
* // Via Workflow API:
|
|
118
|
+
* workflow
|
|
119
|
+
* .fallback()
|
|
120
|
+
* .notifySlack({ channel: "#alerts", message: "Hello" })
|
|
121
|
+
* .notifyEmail({ to: "admin@example.com", subject: "Alert" })
|
|
122
|
+
* .notifySms({ phone: "+1234567890", message: "Alert" })
|
|
123
|
+
* .endFallback();
|
|
124
|
+
* ```
|
|
125
|
+
*
|
|
126
|
+
* ### Data Mode (`fallbackMode: "data"`)
|
|
127
|
+
* The subgraph contains a template workflow that is executed multiple times,
|
|
128
|
+
* each time with different input data merged from the `alternatives` array.
|
|
129
|
+
*
|
|
130
|
+
* ```typescript
|
|
131
|
+
* // Via Workflow API:
|
|
132
|
+
* workflow
|
|
133
|
+
* .fallbackWith([
|
|
134
|
+
* { model: "openai:gpt-4" },
|
|
135
|
+
* { model: "anthropic:claude-sonnet-4-20250514" },
|
|
136
|
+
* { model: "onnx:Xenova/LaMini-Flan-T5-783M:q8" },
|
|
137
|
+
* ])
|
|
138
|
+
* .textGeneration({ prompt: "Hello" })
|
|
139
|
+
* .endFallbackWith();
|
|
140
|
+
* ```
|
|
141
|
+
*
|
|
142
|
+
* ## Error Handling
|
|
143
|
+
*
|
|
144
|
+
* If all alternatives fail, a `TaskFailedError` is thrown with a message
|
|
145
|
+
* that includes all individual error messages. Each attempt's error is
|
|
146
|
+
* collected and reported for debugging.
|
|
147
|
+
*
|
|
148
|
+
* ## Output
|
|
149
|
+
*
|
|
150
|
+
* The output is the result from whichever alternative succeeded first.
|
|
151
|
+
* The output schema matches the inner tasks' output schema.
|
|
152
|
+
*/
|
|
153
|
+
export declare class FallbackTask<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends FallbackTaskConfig = FallbackTaskConfig> extends GraphAsTask<Input, Output, Config> {
|
|
154
|
+
static type: TaskTypeName;
|
|
155
|
+
static category: string;
|
|
156
|
+
static title: string;
|
|
157
|
+
static description: string;
|
|
158
|
+
/** FallbackTask has dynamic schemas based on the subgraph structure. */
|
|
159
|
+
static hasDynamicSchemas: boolean;
|
|
160
|
+
static configSchema(): DataPortSchema;
|
|
161
|
+
_runner: FallbackTaskRunner<Input, Output, Config>;
|
|
162
|
+
get runner(): FallbackTaskRunner<Input, Output, Config>;
|
|
163
|
+
get fallbackMode(): FallbackMode;
|
|
164
|
+
get alternatives(): Record<string, unknown>[];
|
|
165
|
+
/**
|
|
166
|
+
* In task mode, input schema is the union of all alternative tasks' inputs.
|
|
167
|
+
* In data mode, input schema comes from the template workflow's starting nodes.
|
|
168
|
+
*/
|
|
169
|
+
inputSchema(): DataPortSchema;
|
|
170
|
+
/**
|
|
171
|
+
* Output schema is derived from the first task in the subgraph.
|
|
172
|
+
* All alternatives should produce compatible output.
|
|
173
|
+
*/
|
|
174
|
+
outputSchema(): DataPortSchema;
|
|
175
|
+
toJSON(): {
|
|
176
|
+
config: {
|
|
177
|
+
alternatives?: Record<string, unknown>[] | undefined;
|
|
178
|
+
fallbackMode: FallbackMode;
|
|
179
|
+
title?: string | undefined;
|
|
180
|
+
description?: string | undefined;
|
|
181
|
+
cacheable?: boolean | undefined;
|
|
182
|
+
timeout?: number | undefined;
|
|
183
|
+
inputSchema?: DataPortSchema;
|
|
184
|
+
outputSchema?: DataPortSchema;
|
|
185
|
+
extras?: {
|
|
186
|
+
[x: string]: unknown;
|
|
187
|
+
} | undefined;
|
|
188
|
+
subGraph?: import("../common").TaskGraph;
|
|
189
|
+
compoundMerge?: import("../common").CompoundMergeStrategy;
|
|
190
|
+
concurrencyLimit?: number;
|
|
191
|
+
batchSize?: number;
|
|
192
|
+
iterationInputConfig?: (Record<string, {
|
|
193
|
+
mode: string;
|
|
194
|
+
baseSchema?: unknown;
|
|
195
|
+
}> & Record<string, import("./IteratorTask").IterationPropertyConfig>) | undefined;
|
|
196
|
+
initialValue?: unknown;
|
|
197
|
+
branches?: import("./ConditionalTask").BranchConfig<any>[];
|
|
198
|
+
defaultBranch?: string;
|
|
199
|
+
exclusive?: boolean;
|
|
200
|
+
conditionConfig?: import("./ConditionUtils").UIConditionConfig;
|
|
201
|
+
condition?: import("./WhileTask").WhileConditionFn<import("./TaskTypes").DataPorts> | undefined;
|
|
202
|
+
maxIterations?: number;
|
|
203
|
+
chainIterations?: boolean;
|
|
204
|
+
conditionField?: string;
|
|
205
|
+
conditionOperator?: string;
|
|
206
|
+
conditionValue?: string;
|
|
207
|
+
preserveOrder?: boolean;
|
|
208
|
+
flatten?: boolean;
|
|
209
|
+
queue?: boolean | string;
|
|
210
|
+
};
|
|
211
|
+
id: unknown;
|
|
212
|
+
type: string;
|
|
213
|
+
defaults?: TaskInput;
|
|
214
|
+
subgraph?: import("./TaskJSON").TaskGraphJson;
|
|
215
|
+
merge?: import("../common").CompoundMergeStrategy;
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
declare module "../task-graph/Workflow" {
|
|
219
|
+
interface Workflow {
|
|
220
|
+
/**
|
|
221
|
+
* Starts a task-mode fallback block. Each task added inside the block
|
|
222
|
+
* is an independent alternative tried sequentially until one succeeds.
|
|
223
|
+
* Use `.endFallback()` to close the block and return to the parent workflow.
|
|
224
|
+
*/
|
|
225
|
+
fallback: CreateLoopWorkflow<TaskInput, TaskOutput, FallbackTaskConfig>;
|
|
226
|
+
/**
|
|
227
|
+
* Ends the task-mode fallback block and returns to the parent workflow.
|
|
228
|
+
*/
|
|
229
|
+
endFallback(): Workflow;
|
|
230
|
+
/**
|
|
231
|
+
* Starts a data-mode fallback block. The tasks added inside the block
|
|
232
|
+
* form a template workflow that is re-run with each set of input overrides
|
|
233
|
+
* from `alternatives`. Use `.endFallbackWith()` to close the block.
|
|
234
|
+
*
|
|
235
|
+
* @param alternatives - Array of input override objects to try sequentially
|
|
236
|
+
*/
|
|
237
|
+
fallbackWith(alternatives: Record<string, unknown>[]): Workflow;
|
|
238
|
+
/**
|
|
239
|
+
* Ends the data-mode fallback block and returns to the parent workflow.
|
|
240
|
+
*/
|
|
241
|
+
endFallbackWith(): Workflow;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=FallbackTask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FallbackTask.d.ts","sourceRoot":"","sources":["../../src/task/FallbackTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAA2B,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMvE;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3C,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQF,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IACnD;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IAErC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACnD,CAAC;AAMF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,qBAAa,YAAY,CACvB,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,kBAAkB,GAAG,kBAAkB,CACtD,SAAQ,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAK1C,OAAc,IAAI,EAAE,YAAY,CAAkB;IAClD,OAAc,QAAQ,EAAE,MAAM,CAAkB;IAChD,OAAc,KAAK,EAAE,MAAM,CAAc;IACzC,OAAc,WAAW,EAAE,MAAM,CAAyC;IAE1E,wEAAwE;IACxE,OAAc,iBAAiB,EAAE,OAAO,CAAQ;WAElC,YAAY,IAAI,cAAc;IAQpC,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3D,IAAa,MAAM,IAAI,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAK/D;IAMD,IAAW,YAAY,IAAI,YAAY,CAEtC;IAED,IAAW,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAEnD;IAMD;;;OAGG;IACa,WAAW,IAAI,cAAc;IAiC7C;;;OAGG;IACa,YAAY,IAAI,cAAc;IAwB9B,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWvB;AAMD,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,QAAQ;QAChB;;;;WAIG;QACH,QAAQ,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAExE;;WAEG;QACH,WAAW,IAAI,QAAQ,CAAC;QAExB;;;;;;WAMG;QACH,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,QAAQ,CAAC;QAEhE;;WAEG;QACH,eAAe,IAAI,QAAQ,CAAC;KAC7B;CACF"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { GraphAsTaskRunner } from "./GraphAsTaskRunner";
|
|
7
|
+
import type { FallbackTask, FallbackTaskConfig } from "./FallbackTask";
|
|
8
|
+
import { type TaskInput, type TaskOutput } from "./TaskTypes";
|
|
9
|
+
/**
|
|
10
|
+
* Runner for FallbackTask that executes alternatives sequentially until one succeeds.
|
|
11
|
+
*
|
|
12
|
+
* In **task mode**, each task in the subgraph is tried independently.
|
|
13
|
+
* In **data mode**, the entire subgraph is re-run with different input overrides.
|
|
14
|
+
*/
|
|
15
|
+
export declare class FallbackTaskRunner<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends FallbackTaskConfig = FallbackTaskConfig> extends GraphAsTaskRunner<Input, Output, Config> {
|
|
16
|
+
task: FallbackTask<Input, Output, Config>;
|
|
17
|
+
/**
|
|
18
|
+
* Override executeTask to implement sequential fallback logic.
|
|
19
|
+
*/
|
|
20
|
+
protected executeTask(input: Input): Promise<Output | undefined>;
|
|
21
|
+
/**
|
|
22
|
+
* For FallbackTask, reactive runs use the task's reactive hook only,
|
|
23
|
+
* bypassing GraphAsTaskRunner's child-merging logic.
|
|
24
|
+
*/
|
|
25
|
+
executeTaskReactive(input: Input, output: Output): Promise<Output>;
|
|
26
|
+
/**
|
|
27
|
+
* Tries each task in the subgraph sequentially. Returns the first
|
|
28
|
+
* successful result. If all fail, throws with collected errors.
|
|
29
|
+
*/
|
|
30
|
+
private executeTaskFallback;
|
|
31
|
+
/**
|
|
32
|
+
* Runs the subgraph workflow multiple times, each time with a different
|
|
33
|
+
* set of input overrides merged from `config.alternatives`.
|
|
34
|
+
*/
|
|
35
|
+
private executeDataFallback;
|
|
36
|
+
/**
|
|
37
|
+
* Resets a single task to PENDING status so it can be re-run.
|
|
38
|
+
*/
|
|
39
|
+
private resetTask;
|
|
40
|
+
/**
|
|
41
|
+
* Resets all tasks and dataflows in the subgraph for a fresh run.
|
|
42
|
+
*/
|
|
43
|
+
private resetSubgraph;
|
|
44
|
+
/**
|
|
45
|
+
* Builds a descriptive error from all collected failures.
|
|
46
|
+
*/
|
|
47
|
+
private buildAggregateError;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=FallbackTaskRunner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FallbackTaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/FallbackTaskRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAE1E;;;;;GAKG;AACH,qBAAa,kBAAkB,CAC7B,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,kBAAkB,GAAG,kBAAkB,CACtD,SAAQ,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IACxC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAElD;;OAEG;cACsB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAO/E;;;OAGG;IACmB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASxF;;;OAGG;YACW,mBAAmB;IAsDjC;;;OAGG;YACW,mBAAmB;IAiEjC;;OAEG;IACH,OAAO,CAAC,SAAS;IASjB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAa5B"}
|
|
@@ -11,15 +11,18 @@ import { GraphAsTaskRunner } from "./GraphAsTaskRunner";
|
|
|
11
11
|
import type { IExecuteContext } from "./ITask";
|
|
12
12
|
import type { StreamEvent } from "./StreamTypes";
|
|
13
13
|
import { Task } from "./Task";
|
|
14
|
-
import type { JsonTaskItem, TaskGraphItemJson } from "./TaskJSON";
|
|
14
|
+
import type { JsonTaskItem, TaskGraphItemJson, TaskGraphJsonOptions } from "./TaskJSON";
|
|
15
15
|
import { type TaskConfig, type TaskInput, type TaskOutput, type TaskTypeName } from "./TaskTypes";
|
|
16
16
|
export declare const graphAsTaskConfigSchema: {
|
|
17
17
|
readonly type: "object";
|
|
18
18
|
readonly properties: {
|
|
19
19
|
readonly compoundMerge: {
|
|
20
20
|
readonly type: "string";
|
|
21
|
+
readonly "x-ui-hidden": true;
|
|
22
|
+
};
|
|
23
|
+
readonly id: {
|
|
24
|
+
readonly "x-ui-hidden": true;
|
|
21
25
|
};
|
|
22
|
-
readonly id: {};
|
|
23
26
|
readonly title: {
|
|
24
27
|
readonly type: "string";
|
|
25
28
|
};
|
|
@@ -29,19 +32,26 @@ export declare const graphAsTaskConfigSchema: {
|
|
|
29
32
|
readonly cacheable: {
|
|
30
33
|
readonly type: "boolean";
|
|
31
34
|
};
|
|
35
|
+
readonly timeout: {
|
|
36
|
+
readonly type: "number";
|
|
37
|
+
readonly description: "Max execution time in milliseconds";
|
|
38
|
+
};
|
|
32
39
|
readonly inputSchema: {
|
|
33
40
|
readonly type: "object";
|
|
34
41
|
readonly properties: {};
|
|
35
42
|
readonly additionalProperties: true;
|
|
43
|
+
readonly "x-ui-hidden": true;
|
|
36
44
|
};
|
|
37
45
|
readonly outputSchema: {
|
|
38
46
|
readonly type: "object";
|
|
39
47
|
readonly properties: {};
|
|
40
48
|
readonly additionalProperties: true;
|
|
49
|
+
readonly "x-ui-hidden": true;
|
|
41
50
|
};
|
|
42
51
|
readonly extras: {
|
|
43
52
|
readonly type: "object";
|
|
44
53
|
readonly additionalProperties: true;
|
|
54
|
+
readonly "x-ui-hidden": true;
|
|
45
55
|
};
|
|
46
56
|
};
|
|
47
57
|
readonly additionalProperties: false;
|
|
@@ -72,22 +82,21 @@ export declare class GraphAsTask<Input extends TaskInput = TaskInput, Output ext
|
|
|
72
82
|
get compoundMerge(): CompoundMergeStrategy;
|
|
73
83
|
get cacheable(): boolean;
|
|
74
84
|
/**
|
|
75
|
-
* Override inputSchema to compute it dynamically from the subgraph at runtime
|
|
76
|
-
*
|
|
77
|
-
*
|
|
85
|
+
* Override inputSchema to compute it dynamically from the subgraph at runtime.
|
|
86
|
+
* For root tasks (no incoming edges) all input properties are collected.
|
|
87
|
+
* For non-root tasks, only REQUIRED properties that are not satisfied by
|
|
88
|
+
* any internal dataflow are added — this ensures that required inputs are
|
|
89
|
+
* included in the graph's input schema without pulling in every optional
|
|
90
|
+
* downstream property.
|
|
78
91
|
*/
|
|
79
92
|
inputSchema(): DataPortSchema;
|
|
80
93
|
protected _inputSchemaNode: SchemaNode | undefined;
|
|
81
94
|
/**
|
|
82
95
|
* Gets the compiled input schema
|
|
83
96
|
*/
|
|
84
|
-
protected getInputSchemaNode(
|
|
85
|
-
/**
|
|
86
|
-
* Calculates the depth (longest path from any starting node) for each task in the graph
|
|
87
|
-
* @returns A map of task IDs to their depths
|
|
88
|
-
*/
|
|
89
|
-
private calculateNodeDepths;
|
|
97
|
+
protected getInputSchemaNode(): SchemaNode;
|
|
90
98
|
/**
|
|
99
|
+
|
|
91
100
|
* Override outputSchema to compute it dynamically from the subgraph at runtime
|
|
92
101
|
* The output schema depends on the compoundMerge strategy and the nodes at the last level
|
|
93
102
|
*/
|
|
@@ -115,11 +124,11 @@ export declare class GraphAsTask<Input extends TaskInput = TaskInput, Output ext
|
|
|
115
124
|
* Serializes the task and its subtasks into a format that can be stored
|
|
116
125
|
* @returns The serialized task and subtasks
|
|
117
126
|
*/
|
|
118
|
-
toJSON(): TaskGraphItemJson;
|
|
127
|
+
toJSON(options?: TaskGraphJsonOptions): TaskGraphItemJson;
|
|
119
128
|
/**
|
|
120
129
|
* Converts the task to a JSON format suitable for dependency tracking
|
|
121
130
|
* @returns The task and subtasks in JSON thats easier for humans to read
|
|
122
131
|
*/
|
|
123
|
-
toDependencyJSON(): JsonTaskItem;
|
|
132
|
+
toDependencyJSON(options?: TaskGraphJsonOptions): JsonTaskItem;
|
|
124
133
|
}
|
|
125
134
|
//# sourceMappingURL=GraphAsTask.d.ts.map
|
|
@@ -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,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
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,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOD,CAAC;AAEpC,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG;IAC3C,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC,CAAC;AAEF;;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,CAAW;IACtC,OAAc,WAAW,EAAE,MAAM,CAAiD;IAClF,OAAc,QAAQ,EAAE,MAAM,CAAkB;IAChD,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;WAMa,YAAY,IAAI,cAAc;IAI5C,IAAW,aAAa,IAAI,qBAAqB,CAEhD;IAED,IAAW,SAAS,IAAI,OAAO,CAM9B;IAMD;;;;;;;OAOG;IACI,WAAW,IAAI,cAAc;IASpC,SAAS,CAAC,gBAAgB,EAAE,UAAU,GAAG,SAAS,CAAC;IACnD;;OAEG;cACgB,kBAAkB,IAAI,UAAU;IAoBnD;;;;OAIG;IAEa,YAAY,IAAI,cAAc;IAS9C;;OAEG;IACI,cAAc,IAAI,IAAI;IAgB7B;;;;;OAKG;IACI,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,GAAG,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAkFhG;;;;;;OAMG;IACI,eAAe,IAAI,IAAI;IAS9B;;;OAGG;IACa,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,iBAAiB;IAazE;;;OAGG;IACa,gBAAgB,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,YAAY;CAU/E"}
|
package/dist/task/ITask.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ import { CompoundMergeStrategy } from "../task-graph/TaskGraphRunner";
|
|
|
12
12
|
import type { StreamEvent } from "./StreamTypes";
|
|
13
13
|
import { TaskError } from "./TaskError";
|
|
14
14
|
import type { TaskEventListener, TaskEventListeners, TaskEventParameters, TaskEvents } from "./TaskEvents";
|
|
15
|
-
import type { JsonTaskItem, TaskGraphItemJson } from "./TaskJSON";
|
|
15
|
+
import type { JsonTaskItem, TaskGraphItemJson, TaskGraphJsonOptions } from "./TaskJSON";
|
|
16
16
|
import { TaskRunner } from "./TaskRunner";
|
|
17
17
|
import type { TaskConfig, TaskInput, TaskOutput, TaskStatus } from "./TaskTypes";
|
|
18
18
|
/**
|
|
@@ -83,6 +83,7 @@ export interface ITaskStaticProperties {
|
|
|
83
83
|
readonly cacheable: boolean;
|
|
84
84
|
readonly hasDynamicSchemas: boolean;
|
|
85
85
|
readonly passthroughInputsToOutputs?: boolean;
|
|
86
|
+
readonly customizable?: boolean;
|
|
86
87
|
readonly inputSchema: () => DataPortSchema;
|
|
87
88
|
readonly outputSchema: () => DataPortSchema;
|
|
88
89
|
readonly configSchema: () => DataPortSchema;
|
|
@@ -156,15 +157,16 @@ export interface ITaskEvents {
|
|
|
156
157
|
* Interface for task serialization
|
|
157
158
|
*/
|
|
158
159
|
export interface ITaskSerialization {
|
|
159
|
-
toJSON(): JsonTaskItem | TaskGraphItemJson;
|
|
160
|
-
toDependencyJSON(): JsonTaskItem;
|
|
161
|
-
id(): unknown;
|
|
160
|
+
toJSON(options?: TaskGraphJsonOptions): JsonTaskItem | TaskGraphItemJson;
|
|
161
|
+
toDependencyJSON(options?: TaskGraphJsonOptions): JsonTaskItem;
|
|
162
|
+
get id(): unknown;
|
|
162
163
|
}
|
|
163
164
|
/**
|
|
164
165
|
* Interface for task configuration and state
|
|
165
166
|
*/
|
|
166
167
|
export interface ITaskState<Config extends TaskConfig = TaskConfig> {
|
|
167
168
|
readonly config: Config;
|
|
169
|
+
get id(): unknown;
|
|
168
170
|
status: TaskStatus;
|
|
169
171
|
progress: number;
|
|
170
172
|
createdAt: Date;
|
package/dist/task/ITask.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ITask.d.ts","sourceRoot":"","sources":["../../src/task/ITask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ITask.d.ts","sourceRoot":"","sources":["../../src/task/ITask.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 } from "@workglow/util";
|
|
6
|
+
import type { DataPortSchema, PropertySchema } from "@workglow/util";
|
|
7
7
|
import { TaskGraph } from "../task-graph/TaskGraph";
|
|
8
8
|
import { GraphAsTask, GraphAsTaskConfig } from "./GraphAsTask";
|
|
9
9
|
import type { IExecuteContext } from "./ITask";
|
|
@@ -34,7 +34,7 @@ export type IterationInputMode = "array" | "scalar" | "flexible";
|
|
|
34
34
|
*/
|
|
35
35
|
export interface IterationPropertyConfig {
|
|
36
36
|
/** The base schema for the property (without array wrapping) */
|
|
37
|
-
readonly baseSchema:
|
|
37
|
+
readonly baseSchema: PropertySchema;
|
|
38
38
|
/** The input mode for this property */
|
|
39
39
|
readonly mode: IterationInputMode;
|
|
40
40
|
}
|
|
@@ -55,8 +55,11 @@ export declare const iteratorTaskConfigSchema: {
|
|
|
55
55
|
};
|
|
56
56
|
readonly compoundMerge: {
|
|
57
57
|
readonly type: "string";
|
|
58
|
+
readonly "x-ui-hidden": true;
|
|
59
|
+
};
|
|
60
|
+
readonly id: {
|
|
61
|
+
readonly "x-ui-hidden": true;
|
|
58
62
|
};
|
|
59
|
-
readonly id: {};
|
|
60
63
|
readonly title: {
|
|
61
64
|
readonly type: "string";
|
|
62
65
|
};
|
|
@@ -66,19 +69,26 @@ export declare const iteratorTaskConfigSchema: {
|
|
|
66
69
|
readonly cacheable: {
|
|
67
70
|
readonly type: "boolean";
|
|
68
71
|
};
|
|
72
|
+
readonly timeout: {
|
|
73
|
+
readonly type: "number";
|
|
74
|
+
readonly description: "Max execution time in milliseconds";
|
|
75
|
+
};
|
|
69
76
|
readonly inputSchema: {
|
|
70
77
|
readonly type: "object";
|
|
71
78
|
readonly properties: {};
|
|
72
79
|
readonly additionalProperties: true;
|
|
80
|
+
readonly "x-ui-hidden": true;
|
|
73
81
|
};
|
|
74
82
|
readonly outputSchema: {
|
|
75
83
|
readonly type: "object";
|
|
76
84
|
readonly properties: {};
|
|
77
85
|
readonly additionalProperties: true;
|
|
86
|
+
readonly "x-ui-hidden": true;
|
|
78
87
|
};
|
|
79
88
|
readonly extras: {
|
|
80
89
|
readonly type: "object";
|
|
81
90
|
readonly additionalProperties: true;
|
|
91
|
+
readonly "x-ui-hidden": true;
|
|
82
92
|
};
|
|
83
93
|
};
|
|
84
94
|
readonly additionalProperties: false;
|
|
@@ -126,15 +136,15 @@ export interface IterationAnalysisResult {
|
|
|
126
136
|
/**
|
|
127
137
|
* Creates a union type schema (T | T[]) for flexible iteration input.
|
|
128
138
|
*/
|
|
129
|
-
export declare function createFlexibleSchema(baseSchema:
|
|
139
|
+
export declare function createFlexibleSchema(baseSchema: PropertySchema): PropertySchema;
|
|
130
140
|
/**
|
|
131
141
|
* Creates an array schema from a base schema.
|
|
132
142
|
*/
|
|
133
|
-
export declare function createArraySchema(baseSchema:
|
|
143
|
+
export declare function createArraySchema(baseSchema: PropertySchema): PropertySchema;
|
|
134
144
|
/**
|
|
135
145
|
* Extracts the base (scalar) schema from a potentially wrapped schema.
|
|
136
146
|
*/
|
|
137
|
-
export declare function extractBaseSchema(schema:
|
|
147
|
+
export declare function extractBaseSchema(schema: PropertySchema): PropertySchema;
|
|
138
148
|
/**
|
|
139
149
|
* Determines if a schema accepts arrays (is array type or has array in union).
|
|
140
150
|
*/
|
|
@@ -208,12 +218,16 @@ export declare abstract class IteratorTask<Input extends TaskInput = TaskInput,
|
|
|
208
218
|
protected buildConfiguredIterationInputSchema(): DataPortSchema;
|
|
209
219
|
/**
|
|
210
220
|
* Derives the schema accepted by each iteration of the inner workflow.
|
|
211
|
-
*
|
|
221
|
+
* For root tasks (no incoming edges) all input properties are collected.
|
|
222
|
+
* For non-root tasks, only REQUIRED properties that are not satisfied by
|
|
223
|
+
* any internal dataflow are added — this ensures that required inputs are
|
|
224
|
+
* included in the iterator's input schema without pulling in every optional
|
|
225
|
+
* downstream property.
|
|
212
226
|
*/
|
|
213
227
|
protected getInnerInputSchema(): DataPortSchema | undefined;
|
|
214
228
|
getIterationInputSchema(): DataPortSchema;
|
|
215
229
|
setIterationInputSchema(schema: DataPortSchema): void;
|
|
216
|
-
setPropertyInputMode(propertyName: string, mode: IterationInputMode, baseSchema?:
|
|
230
|
+
setPropertyInputMode(propertyName: string, mode: IterationInputMode, baseSchema?: PropertySchema): void;
|
|
217
231
|
invalidateIterationInputSchema(): void;
|
|
218
232
|
/**
|
|
219
233
|
* Analyzes input to determine which ports are iterated vs scalar.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IteratorTask.d.ts","sourceRoot":"","sources":["../../src/task/IteratorTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"IteratorTask.d.ts","sourceRoot":"","sources":["../../src/task/IteratorTask.ts"],"names":[],"mappings":"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"}
|