@workglow/task-graph 0.2.13 → 0.2.14

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 (38) hide show
  1. package/dist/browser.js +190 -31
  2. package/dist/browser.js.map +19 -18
  3. package/dist/bun.js +190 -31
  4. package/dist/bun.js.map +19 -18
  5. package/dist/node.js +190 -31
  6. package/dist/node.js.map +19 -18
  7. package/dist/task/EntitlementEnforcer.d.ts +37 -4
  8. package/dist/task/EntitlementEnforcer.d.ts.map +1 -1
  9. package/dist/task/EntitlementPolicy.d.ts +10 -0
  10. package/dist/task/EntitlementPolicy.d.ts.map +1 -1
  11. package/dist/task/FallbackTask.d.ts +2 -1
  12. package/dist/task/FallbackTask.d.ts.map +1 -1
  13. package/dist/task/GraphAsTask.d.ts +8 -0
  14. package/dist/task/GraphAsTask.d.ts.map +1 -1
  15. package/dist/task/IteratorTask.d.ts +25 -6
  16. package/dist/task/IteratorTask.d.ts.map +1 -1
  17. package/dist/task/IteratorTaskRunner.d.ts +1 -1
  18. package/dist/task/IteratorTaskRunner.d.ts.map +1 -1
  19. package/dist/task/MapTask.d.ts +47 -3
  20. package/dist/task/MapTask.d.ts.map +1 -1
  21. package/dist/task/ReduceTask.d.ts +9 -3
  22. package/dist/task/ReduceTask.d.ts.map +1 -1
  23. package/dist/task/TaskJSON.d.ts +8 -1
  24. package/dist/task/TaskJSON.d.ts.map +1 -1
  25. package/dist/task/WhileTask.d.ts +20 -7
  26. package/dist/task/WhileTask.d.ts.map +1 -1
  27. package/dist/task-graph/ConditionalBuilder.d.ts +49 -0
  28. package/dist/task-graph/ConditionalBuilder.d.ts.map +1 -0
  29. package/dist/task-graph/Conversions.d.ts.map +1 -1
  30. package/dist/task-graph/GraphSchemaUtils.d.ts +2 -2
  31. package/dist/task-graph/GraphSchemaUtils.d.ts.map +1 -1
  32. package/dist/task-graph/GraphToWorkflowCode.d.ts.map +1 -1
  33. package/dist/task-graph/TaskGraph.d.ts +6 -0
  34. package/dist/task-graph/TaskGraph.d.ts.map +1 -1
  35. package/dist/task-graph/Workflow.d.ts +18 -1
  36. package/dist/task-graph/Workflow.d.ts.map +1 -1
  37. package/package.json +7 -7
  38. package/src/EXECUTION_MODEL.md +6 -0
@@ -3,10 +3,43 @@
3
3
  * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import type { EntitlementPolicy } from "./EntitlementPolicy";
6
+ import type { EntitlementPolicy, EntitlementRule } from "./EntitlementPolicy";
7
7
  import type { IEntitlementResolver } from "./EntitlementResolver";
8
8
  import type { ITask } from "./ITask";
9
9
  import type { EntitlementGrant, TaskEntitlement, TaskEntitlements } from "./TaskEntitlements";
10
+ /**
11
+ * Why an entitlement was denied.
12
+ * - `policy-deny`: matched a deny rule
13
+ * - `default-deny`: no rule covered the entitlement
14
+ * - `user-deny`: matched an ask rule and the resolver returned "deny"
15
+ */
16
+ export type EntitlementDenialReason = "policy-deny" | "default-deny" | "user-deny";
17
+ /**
18
+ * A single denied entitlement with the reason and the matching rule (if any).
19
+ * Returned by `IEntitlementEnforcer` to give callers enough context to build
20
+ * actionable error messages without re-running policy evaluation.
21
+ *
22
+ * Discriminated union on `reason`:
23
+ * - `policy-deny`: `matchedRule` is always present (it is the deny rule that matched).
24
+ * - `user-deny`: `matchedRule` is always present (it is the ask rule that matched).
25
+ * - `default-deny`: no rule matched at all; `matchedRule` is absent.
26
+ */
27
+ export type EntitlementDenial = {
28
+ readonly entitlement: TaskEntitlement;
29
+ readonly reason: "policy-deny";
30
+ /** The deny rule that explicitly blocked this entitlement. */
31
+ readonly matchedRule: EntitlementRule;
32
+ } | {
33
+ readonly entitlement: TaskEntitlement;
34
+ readonly reason: "default-deny";
35
+ } | {
36
+ readonly entitlement: TaskEntitlement;
37
+ readonly reason: "user-deny";
38
+ /** The ask rule that triggered the user prompt. */
39
+ readonly matchedRule: EntitlementRule;
40
+ };
41
+ /** Format a denial for inclusion in an error message. */
42
+ export declare function formatEntitlementDenial(denial: EntitlementDenial): string;
10
43
  /**
11
44
  * Interface for checking whether required entitlements are granted.
12
45
  * Register a custom implementation via the ServiceRegistry to enforce entitlements.
@@ -17,14 +50,14 @@ export interface IEntitlementEnforcer {
17
50
  /**
18
51
  * Preflight check: evaluate all required entitlements against the policy.
19
52
  * Resolves "ask" verdicts via the resolver (prompt + save).
20
- * Returns the list of denied (non-optional) entitlements, or empty array if all granted.
53
+ * Returns the list of denials (non-optional entitlements only) empty array when all granted.
21
54
  */
22
- checkAll(required: TaskEntitlements): Promise<readonly TaskEntitlement[]>;
55
+ checkAll(required: TaskEntitlements): Promise<readonly EntitlementDenial[]>;
23
56
  /**
24
57
  * Runtime check: evaluate a single task's dynamic entitlements.
25
58
  * Called during execution for tasks with `hasDynamicEntitlements`.
26
59
  */
27
- checkTask(task: ITask): Promise<readonly TaskEntitlement[]>;
60
+ checkTask(task: ITask): Promise<readonly EntitlementDenial[]>;
28
61
  }
29
62
  /** Default permissive enforcer — grants everything. */
30
63
  export declare const PERMISSIVE_ENFORCER: IEntitlementEnforcer;
@@ -1 +1 @@
1
- {"version":3,"file":"EntitlementEnforcer.d.ts","sourceRoot":"","sources":["../../src/task/EntitlementEnforcer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM9F;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAAC;IAE1E;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAAC;CAC7D;AAMD,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,EAAE,oBAGjC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,EACzB,QAAQ,GAAE,oBAA0C,GACnD,oBAAoB,CAiDtB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAAG,oBAAoB,CAE9F;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,oBAAoB,CAEvF;AAMD,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,6DAEhC,CAAC"}
1
+ {"version":3,"file":"EntitlementEnforcer.d.ts","sourceRoot":"","sources":["../../src/task/EntitlementEnforcer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM9F;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;AAEnF;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GACzB;IACE,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;CACvC,GACD;IACE,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;CACvC,CAAC;AAEN,yDAAyD;AACzD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CASzE;AAMD;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAAC;IAE5E;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAAC;CAC/D;AAMD,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,EAAE,oBAGjC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,iBAAiB,EACzB,QAAQ,GAAE,oBAA0C,GACnD,oBAAoB,CAsDtB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAAG,oBAAoB,CAE9F;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,oBAAoB,CAEvF;AAMD,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,6DAEhC,CAAC"}
@@ -57,4 +57,14 @@ export declare const EMPTY_POLICY: EntitlementPolicy;
57
57
  * This is a pure function with no side effects.
58
58
  */
59
59
  export declare function evaluatePolicy(policy: EntitlementPolicy, required: TaskEntitlements): readonly EntitlementCheckResult[];
60
+ /**
61
+ * Pure single-entitlement check. Convenience wrapper around `evaluatePolicy`
62
+ * for callers that want the `can(action, resource)` style verdict in one call.
63
+ *
64
+ * Returns the per-entitlement check result with `verdict` (`"granted"`, `"denied"`,
65
+ * or `"ask"`) and the `matchedRule` that produced it. No side effects — no
66
+ * resolver is invoked even for `"ask"` verdicts; the caller decides how to
67
+ * handle that.
68
+ */
69
+ export declare function can(policy: EntitlementPolicy, id: EntitlementId, resources?: readonly string[]): EntitlementCheckResult;
60
70
  //# sourceMappingURL=EntitlementPolicy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntitlementPolicy.d.ts","sourceRoot":"","sources":["../../src/task/EntitlementPolicy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAO5B;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,SAAS,eAAe,EAAE,CAAC;IAC1C,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC5C,uDAAuD;IACvD,QAAQ,CAAC,GAAG,EAAE,SAAS,eAAe,EAAE,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,6FAA6F;IAC7F,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC;CACxC;AAED,8EAA8E;AAC9E,eAAO,MAAM,YAAY,EAAE,iBAIzB,CAAC;AAiBH;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,gBAAgB,GACzB,SAAS,sBAAsB,EAAE,CAgCnC"}
1
+ {"version":3,"file":"EntitlementPolicy.d.ts","sourceRoot":"","sources":["../../src/task/EntitlementPolicy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAO5B;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,SAAS,eAAe,EAAE,CAAC;IAC1C,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC5C,uDAAuD;IACvD,QAAQ,CAAC,GAAG,EAAE,SAAS,eAAe,EAAE,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,6FAA6F;IAC7F,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC;CACxC;AAED,8EAA8E;AAC9E,eAAO,MAAM,YAAY,EAAE,iBAIzB,CAAC;AAiBH;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,gBAAgB,GACzB,SAAS,sBAAsB,EAAE,CAgCnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CACjB,MAAM,EAAE,iBAAiB,EACzB,EAAE,EAAE,aAAa,EACjB,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAC5B,sBAAsB,CAKxB"}
@@ -198,9 +198,9 @@ export declare class FallbackTask<Input extends TaskInput = TaskInput, Output ex
198
198
  batchSize?: number;
199
199
  preserveOrder?: boolean;
200
200
  flatten?: boolean;
201
+ discardResults?: boolean;
201
202
  initialValue?: unknown;
202
203
  condition?: import("./WhileTask").WhileConditionFn<import("./TaskTypes").DataPorts> | undefined;
203
- maxIterations?: number;
204
204
  chainIterations?: boolean;
205
205
  conditionField?: string;
206
206
  conditionOperator?: string;
@@ -209,6 +209,7 @@ export declare class FallbackTask<Input extends TaskInput = TaskInput, Output ex
209
209
  mode: string;
210
210
  baseSchema?: unknown;
211
211
  }> & Record<string, import("./IteratorTask").IterationPropertyConfig>) | undefined;
212
+ maxIterations?: import("./WhileTask").WhileTaskConfig["maxIterations"];
212
213
  fallbackMode: FallbackMode;
213
214
  alternatives?: Record<string, unknown>[] | undefined;
214
215
  cacheable?: boolean | undefined;
@@ -1 +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,uBAAuB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAA2B,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,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;mBAC7B,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAGI,IAAI,EAAE,QAAQ;qBAAE,IAAI;;;qBACpB,IAAI,EAAE,OAAO;qBAAE,KAAK;yBAAI,IAAI,EAAE,QAAQ;yBAAE,oBAAoB;;;;;CAG7C,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,IAAI,iBAAiB,CAAC,KAAK,CAAC,GAAG;IAC/F;;;;;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,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CACpE,SAAQ,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAK1C,OAAuB,IAAI,EAAE,YAAY,CAAkB;IAC3D,OAAuB,QAAQ,EAAE,MAAM,CAAkB;IACzD,OAAuB,KAAK,EAAE,MAAM,CAAc;IAClD,OAAuB,WAAW,EAAE,MAAM,CAAyC;IAEnF,wEAAwE;IACxE,OAAuB,iBAAiB,EAAE,OAAO,CAAQ;IAEzD,OAAuB,YAAY,IAAI,cAAc,CAEpD;IAMO,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,CA+B5C;IAED;;;OAGG;IACa,YAAY,IAAI,cAAc,CAkB7C;IAMe,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAUrB;CACF;AAMD,OAAO,QAAQ,wBAAwB,CAAC,CAAC;IACvC,UAAU,QAAQ;QAChB;;;;WAIG;QACH,QAAQ,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;QAEnF;;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"}
1
+ {"version":3,"file":"FallbackTask.d.ts","sourceRoot":"","sources":["../../src/task/FallbackTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAA2B,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,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;mBAC7B,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAGI,IAAI,EAAE,QAAQ;qBAAE,IAAI;;;qBACpB,IAAI,EAAE,OAAO;qBAAE,KAAK;yBAAI,IAAI,EAAE,QAAQ;yBAAE,oBAAoB;;;;;CAG7C,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,IAAI,iBAAiB,CAAC,KAAK,CAAC,GAAG;IAC/F;;;;;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,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CACpE,SAAQ,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAK1C,OAAuB,IAAI,EAAE,YAAY,CAAkB;IAC3D,OAAuB,QAAQ,EAAE,MAAM,CAAkB;IACzD,OAAuB,KAAK,EAAE,MAAM,CAAc;IAClD,OAAuB,WAAW,EAAE,MAAM,CAAyC;IAEnF,wEAAwE;IACxE,OAAuB,iBAAiB,EAAE,OAAO,CAAQ;IAEzD,OAAuB,YAAY,IAAI,cAAc,CAEpD;IAMO,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,CA+B5C;IAED;;;OAGG;IACa,YAAY,IAAI,cAAc,CAkB7C;IAMe,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAUrB;CACF;AAMD,OAAO,QAAQ,wBAAwB,CAAC,CAAC;IACvC,UAAU,QAAQ;QAChB;;;;WAIG;QACH,QAAQ,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;QAEnF;;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"}
@@ -128,6 +128,14 @@ export declare class GraphAsTask<Input extends TaskInput = TaskInput, Output ext
128
128
  * itself downstream of another streaming task.
129
129
  */
130
130
  executeStream(input: Input, context: IExecuteContext): AsyncIterable<StreamEvent<Output>>;
131
+ /**
132
+ * Defensive re-assertion of the DAG invariant for the subgraph. `TaskGraph`
133
+ * already rejects cycle-creating dataflows at `addDataflow` time, but this
134
+ * runs a full topo sort so that any direct `_dag` manipulation or cycle
135
+ * introduced via recursive subgraph composition surfaces here with a clear
136
+ * error rather than deep inside the runner.
137
+ */
138
+ validateAcyclic(): void;
131
139
  /**
132
140
  * Regenerates the subtask graph and emits a "regenerate" event
133
141
  *
@@ -1 +1 @@
1
- {"version":3,"file":"GraphAsTask.d.ts","sourceRoot":"","sources":["../../src/task/GraphAsTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphAsTask.d.ts","sourceRoot":"","sources":["../../src/task/GraphAsTask.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import type { DataPortSchema, PropertySchema } from "@workglow/util/schema";
7
7
  import { TaskGraph } from "../task-graph/TaskGraph";
8
8
  import { GraphAsTask } from "./GraphAsTask";
9
9
  import type { GraphAsTaskConfig } from "./GraphAsTask";
10
- import type { IExecuteContext } from "./ITask";
10
+ import type { IExecuteContext, IRunConfig } from "./ITask";
11
11
  import { IteratorTaskRunner } from "./IteratorTaskRunner";
12
12
  import type { StreamEvent } from "./StreamTypes";
13
13
  import type { TaskInput, TaskOutput, TaskTypeName } from "./TaskTypes";
@@ -30,6 +30,17 @@ export type ExecutionMode = "parallel" | "parallel-limited";
30
30
  * - "flexible": Property accepts both array and scalar (T | T[])
31
31
  */
32
32
  export type IterationInputMode = "array" | "scalar" | "flexible";
33
+ /**
34
+ * Upper bound for iteration. Either a positive integer or the string
35
+ * sentinel `"unbounded"` — which the runner treats as `Number.POSITIVE_INFINITY`.
36
+ * The string form forces every caller to explicitly acknowledge the opt-out
37
+ * instead of silently dropping the safety ceiling.
38
+ */
39
+ export type IterationBound = number | "unbounded";
40
+ /**
41
+ * Resolves an IterationBound to a numeric cap the runner can compare against.
42
+ */
43
+ export declare function resolveIterationBound(bound: IterationBound): number;
33
44
  /**
34
45
  * Configuration for a single property in the iteration input schema.
35
46
  */
@@ -93,14 +104,20 @@ export declare const iteratorTaskConfigSchema: {
93
104
  readonly minimum: 1;
94
105
  };
95
106
  readonly maxIterations: {
96
- readonly type: "integer";
97
- readonly minimum: 1;
107
+ readonly oneOf: readonly [{
108
+ readonly type: "integer";
109
+ readonly minimum: 1;
110
+ }, {
111
+ readonly type: "string";
112
+ readonly const: "unbounded";
113
+ }];
98
114
  };
99
115
  readonly iterationInputConfig: {
100
116
  readonly type: "object";
101
117
  readonly additionalProperties: true;
102
118
  };
103
119
  };
120
+ readonly required: readonly ["maxIterations"];
104
121
  readonly additionalProperties: false;
105
122
  };
106
123
  /**
@@ -119,10 +136,11 @@ export type IteratorTaskConfig<Input extends TaskInput = TaskInput> = GraphAsTas
119
136
  */
120
137
  readonly batchSize?: number;
121
138
  /**
122
- * Maximum number of iterations allowed. When set, the iteration count is capped
123
- * to this value regardless of input array length. Prevents runaway iteration.
139
+ * Upper bound on the number of iterations. Required pass `"unbounded"` to
140
+ * explicitly opt out of the safety ceiling, or a positive integer to cap.
141
+ * Prevents runaway iteration on unexpectedly large input arrays.
124
142
  */
125
- readonly maxIterations?: number;
143
+ readonly maxIterations: IterationBound;
126
144
  /**
127
145
  * User-defined iteration input schema configuration.
128
146
  */
@@ -177,6 +195,7 @@ export declare abstract class IteratorTask<Input extends TaskInput = TaskInput,
177
195
  /** This task has dynamic schemas based on the inner workflow */
178
196
  static hasDynamicSchemas: boolean;
179
197
  static configSchema(): DataPortSchema;
198
+ constructor(config?: Partial<Config>, runConfig?: Partial<IRunConfig>);
180
199
  /**
181
200
  * Returns the schema for iteration-context inputs that will be
182
201
  * injected into the subgraph at runtime.
@@ -1 +1 @@
1
- {"version":3,"file":"IteratorTask.d.ts","sourceRoot":"","sources":["../../src/task/IteratorTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IteratorTask.d.ts","sourceRoot":"","sources":["../../src/task/IteratorTask.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { GraphAsTaskRunner } from "./GraphAsTaskRunner";
7
- import type { IterationAnalysisResult, IteratorTask, IteratorTaskConfig } from "./IteratorTask";
7
+ import { type IterationAnalysisResult, type IteratorTask, type IteratorTaskConfig } from "./IteratorTask";
8
8
  import type { TaskInput, TaskOutput } from "./TaskTypes";
9
9
  /**
10
10
  * Runner for IteratorTask that executes a single subgraph repeatedly with
@@ -1 +1 @@
1
- {"version":3,"file":"IteratorTaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/IteratorTaskRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAChG,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzD;;;;GAIG;AACH,qBAAa,kBAAkB,CAC7B,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,kBAAkB,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CACpE,SAAQ,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IACxC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAElD,8FAA8F;IAC9F,OAAO,CAAC,4BAA4B,CAAS;IAC7C,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,wBAAwB,CAAK;IAErC;;OAEG;IAEH,UAAyB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuB9E;IAED;;OAEG;IACmB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGvF;IAED,UAAgB,wBAAwB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4D3F;IAED;;OAEG;IACH,OAAO,CAAC,iCAAiC;IAWzC,UAAgB,uBAAuB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB1F;IAED,UAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,uBAAuB,EACjC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACnC,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC,CA6BnE;IAED;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA2BlB,UAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAoDjC;CACF"}
1
+ {"version":3,"file":"IteratorTaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/IteratorTaskRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzD;;;;GAIG;AACH,qBAAa,kBAAkB,CAC7B,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,kBAAkB,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CACpE,SAAQ,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IACxC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAElD,8FAA8F;IAC9F,OAAO,CAAC,4BAA4B,CAAS;IAC7C,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,wBAAwB,CAAK;IAErC;;OAEG;IAEH,UAAyB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAqB9E;IAED;;OAEG;IACmB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGvF;IAED,UAAgB,wBAAwB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4D3F;IAED;;OAEG;IACH,OAAO,CAAC,iCAAiC;IAWzC,UAAgB,uBAAuB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB1F;IAED,UAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,uBAAuB,EACjC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACnC,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC,CA6BnE;IAED;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA2BlB,UAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAoDjC;CACF"}
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import type { DataPortSchema } from "@workglow/util/schema";
7
+ import type { IRunConfig } from "./ITask";
7
8
  import { IteratorTask, IteratorTaskConfig } from "./IteratorTask";
8
9
  import type { TaskInput, TaskOutput, TaskTypeName } from "./TaskTypes";
9
10
  export declare const mapTaskConfigSchema: {
@@ -60,8 +61,13 @@ export declare const mapTaskConfigSchema: {
60
61
  readonly minimum: 1;
61
62
  };
62
63
  readonly maxIterations: {
63
- readonly type: "integer";
64
- readonly minimum: 1;
64
+ readonly oneOf: readonly [{
65
+ readonly type: "integer";
66
+ readonly minimum: 1;
67
+ }, {
68
+ readonly type: "string";
69
+ readonly const: "unbounded";
70
+ }];
65
71
  };
66
72
  readonly iterationInputConfig: {
67
73
  readonly type: "object";
@@ -73,7 +79,11 @@ export declare const mapTaskConfigSchema: {
73
79
  readonly flatten: {
74
80
  readonly type: "boolean";
75
81
  };
82
+ readonly discardResults: {
83
+ readonly type: "boolean";
84
+ };
76
85
  };
86
+ readonly required: readonly ["maxIterations"];
77
87
  readonly additionalProperties: false;
78
88
  };
79
89
  /**
@@ -92,6 +102,13 @@ export type MapTaskConfig<Input extends TaskInput = TaskInput> = IteratorTaskCon
92
102
  * @default false
93
103
  */
94
104
  readonly flatten?: boolean;
105
+ /**
106
+ * When true, iteration results are discarded rather than collected into
107
+ * per-property arrays. Used by the `.forEach()` workflow combinator for
108
+ * side-effect-only loops where the caller does not need the return value.
109
+ * @default false
110
+ */
111
+ readonly discardResults?: boolean;
95
112
  };
96
113
  /**
97
114
  * MapTask transforms one or more array inputs by running a workflow for each index.
@@ -122,6 +139,11 @@ export declare class MapTask<Input extends TaskInput = TaskInput, Output extends
122
139
  * Whether to flatten nested array results.
123
140
  */
124
141
  get flatten(): boolean;
142
+ /**
143
+ * Whether to drop iteration outputs rather than collect them. Used by
144
+ * `.forEach()` for side-effect iteration.
145
+ */
146
+ get discardResults(): boolean;
125
147
  preserveIterationOrder(): boolean;
126
148
  /**
127
149
  * Returns the empty result for MapTask.
@@ -133,10 +155,22 @@ export declare class MapTask<Input extends TaskInput = TaskInput, Output extends
133
155
  */
134
156
  outputSchema(): DataPortSchema;
135
157
  /**
136
- * Collects and optionally flattens results from all iterations.
158
+ * Collects and optionally flattens results from all iterations. When
159
+ * `discardResults` is set (via `.forEach()`), returns the empty result
160
+ * without touching the per-iteration outputs.
137
161
  */
138
162
  collectResults(results: TaskOutput[]): Output;
139
163
  }
164
+ /**
165
+ * ForEachTask is a `MapTask` variant that discards iteration results by default.
166
+ * Used via the `.forEach()` workflow combinator for side-effect-only loops.
167
+ */
168
+ export declare class ForEachTask<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends MapTaskConfig<Input> = MapTaskConfig<Input>> extends MapTask<Input, Output, Config> {
169
+ static type: TaskTypeName;
170
+ static title: string;
171
+ static description: string;
172
+ constructor(config?: Partial<Config>, runConfig?: Partial<IRunConfig>);
173
+ }
140
174
  declare module "../task-graph/Workflow" {
141
175
  interface Workflow {
142
176
  /**
@@ -148,6 +182,16 @@ declare module "../task-graph/Workflow" {
148
182
  * Ends the map loop and returns to the parent workflow.
149
183
  */
150
184
  endMap(): Workflow;
185
+ /**
186
+ * Starts a forEach loop — iterates array input ports for side effects and
187
+ * discards collected results. Use .endForEach() to close the loop and
188
+ * return to the parent workflow. `maxIterations` is still required.
189
+ */
190
+ forEach: CreateLoopWorkflow<TaskInput, TaskOutput, MapTaskConfig<TaskInput>>;
191
+ /**
192
+ * Ends the forEach loop and returns to the parent workflow.
193
+ */
194
+ endForEach(): Workflow;
151
195
  }
152
196
  }
153
197
  //# sourceMappingURL=MapTask.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapTask.d.ts","sourceRoot":"","sources":["../../src/task/MapTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAA4B,MAAM,gBAAgB,CAAC;AAC5F,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvE,eAAO,MAAM,mBAAmB;mBACxB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAGK,IAAI,EAAE,SAAS;;;qBACrB,IAAI,EAAE,SAAS;;;;CAGK,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,IAAI,kBAAkB,CAAC,KAAK,CAAC,GAAG;IAC3F;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAEjC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,qBAAa,OAAO,CAClB,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,aAAa,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAC1D,SAAQ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC3C,OAAuB,IAAI,EAAE,YAAY,CAAa;IACtD,OAAuB,QAAQ,EAAE,MAAM,CAAkB;IACzD,OAAuB,KAAK,EAAE,MAAM,CAAS;IAC7C,OAAuB,WAAW,EAAE,MAAM,CACiB;IAE3D,OAAuB,YAAY,IAAI,cAAc,CAEpD;IAED;;OAEG;IACH,gBAAgC,aAAa,mBAAkB;IAE/D;;OAEG;IACH,OAAuB,WAAW,IAAI,cAAc,CAMnD;IAED;;OAEG;IACH,OAAuB,YAAY,IAAI,cAAc,CAMpD;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,OAAO,CAElC;IAED;;OAEG;IACH,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEe,sBAAsB,IAAI,OAAO,CAEhD;IAED;;OAEG;IACa,cAAc,IAAI,MAAM,CAYvC;IAED;;;OAGG;IACa,YAAY,IAAI,cAAc,CAM7C;IAED;;OAEG;IACa,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAiB5D;CACF;AAMD,OAAO,QAAQ,wBAAwB,CAAC,CAAC;IACvC,UAAU,QAAQ;QAChB;;;WAGG;QACH,GAAG,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QAEzE;;WAEG;QACH,MAAM,IAAI,QAAQ,CAAC;KACpB;CACF"}
1
+ {"version":3,"file":"MapTask.d.ts","sourceRoot":"","sources":["../../src/task/MapTask.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import type { DataPortSchema } from "@workglow/util/schema";
7
+ import type { IRunConfig } from "./ITask";
7
8
  import { IterationAnalysisResult, IteratorTask, IteratorTaskConfig } from "./IteratorTask";
8
9
  import type { TaskInput, TaskOutput, TaskTypeName } from "./TaskTypes";
9
10
  export declare const reduceTaskConfigSchema: {
@@ -60,8 +61,13 @@ export declare const reduceTaskConfigSchema: {
60
61
  readonly minimum: 1;
61
62
  };
62
63
  readonly maxIterations: {
63
- readonly type: "integer";
64
- readonly minimum: 1;
64
+ readonly oneOf: readonly [{
65
+ readonly type: "integer";
66
+ readonly minimum: 1;
67
+ }, {
68
+ readonly type: "string";
69
+ readonly const: "unbounded";
70
+ }];
65
71
  };
66
72
  readonly iterationInputConfig: {
67
73
  readonly type: "object";
@@ -89,7 +95,7 @@ export declare class ReduceTask<Input extends TaskInput = TaskInput, Output exte
89
95
  static title: string;
90
96
  static description: string;
91
97
  static configSchema(): DataPortSchema;
92
- constructor(config?: Partial<Config>);
98
+ constructor(config?: Partial<Config>, runConfig?: Partial<IRunConfig>);
93
99
  /**
94
100
  * Gets the initial accumulator value.
95
101
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ReduceTask.d.ts","sourceRoot":"","sources":["../../src/task/ReduceTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EACL,uBAAuB,EACvB,YAAY,EACZ,kBAAkB,EAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvE,eAAO,MAAM,sBAAsB;mBAC3B,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMmB,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAC1B,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,WAAW,GAAG,OAAO,IACnB,kBAAkB,CAAC,KAAK,CAAC,GAAG;IAC9B;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,qBAAa,UAAU,CACrB,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAChF,SAAQ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC3C,OAAuB,IAAI,EAAE,YAAY,CAAgB;IACzD,OAAuB,QAAQ,EAAE,MAAM,CAAkB;IACzD,OAAuB,KAAK,EAAE,MAAM,CAAY;IAChD,OAAuB,WAAW,EAAE,MAAM,CAC4B;IAEtE,OAAuB,YAAY,IAAI,cAAc,CAEpD;IAED,YAAY,MAAM,GAAE,OAAO,CAAC,MAAM,CAAM,EAQvC;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,MAAM,CAEhC;IAEe,YAAY,IAAI,OAAO,CAEtC;IAEe,qBAAqB,IAAI,MAAM,CAS9C;IAEe,sBAAsB,CACpC,QAAQ,EAAE,uBAAuB,EACjC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB;IAEe,cAAc,IAAI,MAAM,CAEvC;IAED;;OAEG;IACH,OAAuB,WAAW,IAAI,cAAc,CAMnD;IAED;;OAEG;IACH,OAAuB,YAAY,IAAI,cAAc,CAMpD;IAED;;OAEG;IACa,YAAY,IAAI,cAAc,CA+B7C;CACF;AAMD,OAAO,QAAQ,wBAAwB,CAAC,CAAC;IACvC,UAAU,QAAQ;QAChB;;;WAGG;QACH,MAAM,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QAEpF;;WAEG;QACH,SAAS,IAAI,QAAQ,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"ReduceTask.d.ts","sourceRoot":"","sources":["../../src/task/ReduceTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EACL,uBAAuB,EACvB,YAAY,EACZ,kBAAkB,EAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvE,eAAO,MAAM,sBAAsB;mBAC3B,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMmB,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAC1B,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,WAAW,GAAG,OAAO,IACnB,kBAAkB,CAAC,KAAK,CAAC,GAAG;IAC9B;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,qBAAa,UAAU,CACrB,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAChF,SAAQ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC3C,OAAuB,IAAI,EAAE,YAAY,CAAgB;IACzD,OAAuB,QAAQ,EAAE,MAAM,CAAkB;IACzD,OAAuB,KAAK,EAAE,MAAM,CAAY;IAChD,OAAuB,WAAW,EAAE,MAAM,CAC4B;IAEtE,OAAuB,YAAY,IAAI,cAAc,CAEpD;IAED,YAAY,MAAM,GAAE,OAAO,CAAC,MAAM,CAAM,EAAE,SAAS,GAAE,OAAO,CAAC,UAAU,CAAM,EAQ5E;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,MAAM,CAEhC;IAEe,YAAY,IAAI,OAAO,CAEtC;IAEe,qBAAqB,IAAI,MAAM,CAS9C;IAEe,sBAAsB,CACpC,QAAQ,EAAE,uBAAuB,EACjC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB;IAEe,cAAc,IAAI,MAAM,CAEvC;IAED;;OAEG;IACH,OAAuB,WAAW,IAAI,cAAc,CAMnD;IAED;;OAEG;IACH,OAAuB,YAAY,IAAI,cAAc,CAMpD;IAED;;OAEG;IACa,YAAY,IAAI,cAAc,CA+B7C;CACF;AAMD,OAAO,QAAQ,wBAAwB,CAAC,CAAC;IACvC,UAAU,QAAQ;QAChB;;;WAGG;QACH,MAAM,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QAEpF;;WAEG;QACH,SAAS,IAAI,QAAQ,CAAC;KACvB;CACF"}
@@ -18,7 +18,14 @@ import { WhileTaskConfig } from "./WhileTask";
18
18
  * Represents a single task item in the JSON configuration.
19
19
  * This structure defines how tasks should be configured in JSON format.
20
20
  */
21
- export type JsonTaskConfig = Omit<TaskConfig & GraphAsTaskConfig & WhileTaskConfig & IteratorTaskConfig & ReduceTaskConfig & MapTaskConfig & ConditionalTaskConfig, "id" | "defaults">;
21
+ export type JsonTaskConfig = Omit<TaskConfig & GraphAsTaskConfig & WhileTaskConfig & IteratorTaskConfig & ReduceTaskConfig & MapTaskConfig & ConditionalTaskConfig, "id" | "defaults" | "maxIterations"> & {
22
+ /**
23
+ * Optional in the JSON union because non-loop tasks don't carry it —
24
+ * each loop task class still enforces required-at-construction via its
25
+ * own config type.
26
+ */
27
+ readonly maxIterations?: WhileTaskConfig["maxIterations"];
28
+ };
22
29
  export type JsonTaskItem = {
23
30
  /** Unique identifier for the task */
24
31
  id: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskJSON.d.ts","sourceRoot":"","sources":["../../src/task/TaskJSON.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskJSON.d.ts","sourceRoot":"","sources":["../../src/task/TaskJSON.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK9C;;;GAGG;AAEH,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,UAAU,GACR,iBAAiB,GACjB,eAAe,GACf,kBAAkB,GAClB,gBAAgB,GAChB,aAAa,GACb,qBAAqB,EACvB,IAAI,GAAG,UAAU,GAAG,eAAe,CACpC,GAAG;IACF;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,qCAAqC;IACrC,EAAE,EAAE,OAAO,CAAC;IAEZ,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IAEb,0CAA0C;IAC1C,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB,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,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAE1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC,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;AAEF,MAAM,WAAW,oBAAoB;IACnC,6FAA6F;IAC7F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,MAAM,EAAE,CAAC;CACjE;AAwCD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,4BAA4B,SACjC,YAAY,aACP,eAAe,YAChB,0BAA0B,wEAUrC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,6BAA6B,cAC7B,YAAY,EAAE,aACd,eAAe,YAChB,0BAA0B,cAOrC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,SAC5B,iBAAiB,aACZ,eAAe,YAChB,0BAA0B,wEAUrC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,wBAAwB,iBACrB,aAAa,aAChB,eAAe,YAChB,0BAA0B,cAiBrC,CAAC"}
@@ -5,7 +5,8 @@
5
5
  */
6
6
  import type { DataPortSchema } from "@workglow/util/schema";
7
7
  import { GraphAsTask, GraphAsTaskConfig } from "./GraphAsTask";
8
- import type { IExecuteContext } from "./ITask";
8
+ import type { IExecuteContext, IRunConfig } from "./ITask";
9
+ import { type IterationBound } from "./IteratorTask";
9
10
  import type { StreamEvent } from "./StreamTypes";
10
11
  import type { TaskInput, TaskOutput, TaskTypeName } from "./TaskTypes";
11
12
  import { WhileTaskRunner } from "./WhileTaskRunner";
@@ -71,8 +72,13 @@ export declare const whileTaskConfigSchema: {
71
72
  };
72
73
  readonly condition: {};
73
74
  readonly maxIterations: {
74
- readonly type: "integer";
75
- readonly minimum: 1;
75
+ readonly oneOf: readonly [{
76
+ readonly type: "integer";
77
+ readonly minimum: 1;
78
+ }, {
79
+ readonly type: "string";
80
+ readonly const: "unbounded";
81
+ }];
76
82
  };
77
83
  readonly chainIterations: {
78
84
  readonly type: "boolean";
@@ -91,6 +97,7 @@ export declare const whileTaskConfigSchema: {
91
97
  readonly additionalProperties: true;
92
98
  };
93
99
  };
100
+ readonly required: readonly ["maxIterations"];
94
101
  readonly additionalProperties: false;
95
102
  };
96
103
  /**
@@ -104,10 +111,12 @@ export type WhileTaskConfig<Input extends TaskInput = TaskInput, Output extends
104
111
  */
105
112
  readonly condition?: WhileConditionFn<Output>;
106
113
  /**
107
- * Maximum number of iterations to prevent infinite loops.
108
- * @default 100
114
+ * Upper bound on the number of iterations. Required pass `"unbounded"` to
115
+ * explicitly opt out of the safety ceiling, or a positive integer to cap.
116
+ * Prevents infinite loops when the condition function can't disqualify
117
+ * unbounded runaway input.
109
118
  */
110
- readonly maxIterations?: number;
119
+ readonly maxIterations: IterationBound;
111
120
  /**
112
121
  * Whether to pass the output of each iteration as input to the next.
113
122
  * When true, output from iteration N becomes input to iteration N+1.
@@ -177,6 +186,7 @@ export declare class WhileTask<Input extends TaskInput = TaskInput, Output exten
177
186
  /** This task has dynamic schemas based on the inner workflow */
178
187
  static hasDynamicSchemas: boolean;
179
188
  static configSchema(): DataPortSchema;
189
+ constructor(config?: Partial<Config>, runConfig?: Partial<IRunConfig>);
180
190
  /**
181
191
  * Returns the schema for iteration-context inputs that will be
182
192
  * injected into the subgraph InputTask at runtime.
@@ -197,7 +207,10 @@ export declare class WhileTask<Input extends TaskInput = TaskInput, Output exten
197
207
  */
198
208
  get condition(): WhileConditionFn<Output> | undefined;
199
209
  /**
200
- * Gets the maximum iterations limit.
210
+ * Gets the maximum iterations limit, resolved to a numeric cap. The raw
211
+ * `config.maxIterations` accepts `"unbounded"` as an explicit opt-out — that
212
+ * sentinel resolves to `Number.POSITIVE_INFINITY` here so the loop logic can
213
+ * compare against it directly.
201
214
  */
202
215
  get maxIterations(): number;
203
216
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"WhileTask.d.ts","sourceRoot":"","sources":["../../src/task/WhileTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WhileTask.d.ts","sourceRoot":"","sources":["../../src/task/WhileTask.ts"],"names":[],"mappings":"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"}
@@ -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 type { ConditionFn } from "../task/ConditionalTask";
7
+ import type { ITaskConstructor } from "../task/ITask";
8
+ import type { DataPorts, TaskConfig, TaskInput } from "../task/TaskTypes";
9
+ import type { Workflow } from "./Workflow";
10
+ /**
11
+ * Fluent builder for constructing a {@link ConditionalTask} with a
12
+ * canonical then/else shape. Created by {@link Workflow.if} and closed via
13
+ * {@link ConditionalBuilder.endIf}. Each arm accepts a single task class
14
+ * (with optional input/config), which the builder instantiates and wires
15
+ * from the conditional's matching output port.
16
+ *
17
+ * Usage:
18
+ *
19
+ * ```ts
20
+ * workflow
21
+ * .if((input) => input.kind === "text")
22
+ * .then(TextTask)
23
+ * .else(ImageTask)
24
+ * .endIf();
25
+ * ```
26
+ */
27
+ export declare class ConditionalBuilder {
28
+ private readonly workflow;
29
+ private readonly condition;
30
+ private thenSpec;
31
+ private elseSpec;
32
+ constructor(workflow: Workflow, condition: ConditionFn<TaskInput>);
33
+ /**
34
+ * Register the task that runs when the condition matches. Accepts the
35
+ * same (taskClass, input?, config?) triple as {@link Workflow.addTask}.
36
+ */
37
+ then<I extends DataPorts, O extends DataPorts, C extends TaskConfig<I> = TaskConfig<I>>(taskClass: ITaskConstructor<I, O, C>, input?: Partial<I>, config?: Partial<C>): this;
38
+ /**
39
+ * Register the task that runs when the condition does not match. Optional.
40
+ */
41
+ else<I extends DataPorts, O extends DataPorts, C extends TaskConfig<I> = TaskConfig<I>>(taskClass: ITaskConstructor<I, O, C>, input?: Partial<I>, config?: Partial<C>): this;
42
+ /**
43
+ * Finalize the if/else arms into a {@link ConditionalTask} plus the
44
+ * downstream branch tasks, wired via dataflows from the conditional's
45
+ * matching output ports. Returns the parent workflow for continued chaining.
46
+ */
47
+ endIf(): Workflow;
48
+ }
49
+ //# sourceMappingURL=ConditionalBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConditionalBuilder.d.ts","sourceRoot":"","sources":["../../src/task-graph/ConditionalBuilder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAS,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,kBAAkB;IAK3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL5B,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,QAAQ,CAA6B;IAE7C,YACmB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,EAChD;IAEJ;;;OAGG;IACI,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAC3F,SAAS,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACpC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAClB,IAAI,CAGN;IAED;;OAEG;IACI,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAC3F,SAAS,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACpC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAClB,IAAI,CAGN;IAED;;;;OAIG;IACI,KAAK,IAAI,QAAQ,CAmDvB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Conversions.d.ts","sourceRoot":"","sources":["../../src/task-graph/Conversions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,GAAG,EAAE,CAAC,SAAS,SAAS,GAAG,GAAG,IAAI,CAC/E,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,eAAe,KACrB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEpB,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,CAAC,SAAS,SAAS,GAAG,SAAS,IAChF,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GAClB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GACX,UAAU,GACV,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AA2GpB,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EACjE,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAClB,MAAM,GAAE,GAAQ,GACf,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAuBtB"}
1
+ {"version":3,"file":"Conversions.d.ts","sourceRoot":"","sources":["../../src/task-graph/Conversions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAO7C,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,GAAG,EAAE,CAAC,SAAS,SAAS,GAAG,GAAG,IAAI,CAC/E,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,eAAe,KACrB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEpB,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,CAAC,SAAS,SAAS,GAAG,SAAS,IAChF,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GAClB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GACX,UAAU,GACV,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAmHpB,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,SAAS,EACjE,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAClB,MAAM,GAAE,GAAQ,GACf,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAuBtB"}