@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.
- package/dist/browser.js +190 -31
- package/dist/browser.js.map +19 -18
- package/dist/bun.js +190 -31
- package/dist/bun.js.map +19 -18
- package/dist/node.js +190 -31
- package/dist/node.js.map +19 -18
- package/dist/task/EntitlementEnforcer.d.ts +37 -4
- package/dist/task/EntitlementEnforcer.d.ts.map +1 -1
- package/dist/task/EntitlementPolicy.d.ts +10 -0
- package/dist/task/EntitlementPolicy.d.ts.map +1 -1
- package/dist/task/FallbackTask.d.ts +2 -1
- package/dist/task/FallbackTask.d.ts.map +1 -1
- package/dist/task/GraphAsTask.d.ts +8 -0
- package/dist/task/GraphAsTask.d.ts.map +1 -1
- package/dist/task/IteratorTask.d.ts +25 -6
- package/dist/task/IteratorTask.d.ts.map +1 -1
- package/dist/task/IteratorTaskRunner.d.ts +1 -1
- package/dist/task/IteratorTaskRunner.d.ts.map +1 -1
- package/dist/task/MapTask.d.ts +47 -3
- package/dist/task/MapTask.d.ts.map +1 -1
- package/dist/task/ReduceTask.d.ts +9 -3
- package/dist/task/ReduceTask.d.ts.map +1 -1
- package/dist/task/TaskJSON.d.ts +8 -1
- package/dist/task/TaskJSON.d.ts.map +1 -1
- package/dist/task/WhileTask.d.ts +20 -7
- package/dist/task/WhileTask.d.ts.map +1 -1
- package/dist/task-graph/ConditionalBuilder.d.ts +49 -0
- package/dist/task-graph/ConditionalBuilder.d.ts.map +1 -0
- package/dist/task-graph/Conversions.d.ts.map +1 -1
- package/dist/task-graph/GraphSchemaUtils.d.ts +2 -2
- package/dist/task-graph/GraphSchemaUtils.d.ts.map +1 -1
- package/dist/task-graph/GraphToWorkflowCode.d.ts.map +1 -1
- package/dist/task-graph/TaskGraph.d.ts +6 -0
- package/dist/task-graph/TaskGraph.d.ts.map +1 -1
- package/dist/task-graph/Workflow.d.ts +18 -1
- package/dist/task-graph/Workflow.d.ts.map +1 -1
- package/package.json +7 -7
- 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
|
|
53
|
+
* Returns the list of denials (non-optional entitlements only) — empty array when all granted.
|
|
21
54
|
*/
|
|
22
|
-
checkAll(required: TaskEntitlements): Promise<readonly
|
|
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
|
|
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;
|
|
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
|
|
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":"AAAA;;;;GAIG;
|
|
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
|
|
97
|
-
|
|
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
|
-
*
|
|
123
|
-
*
|
|
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
|
|
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":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,WAAW,EAA2B,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
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
|
|
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,
|
|
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"}
|
package/dist/task/MapTask.d.ts
CHANGED
|
@@ -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
|
|
64
|
-
|
|
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
|
|
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,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,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;;;qBACR,IAAI,EAAE,SAAS;;;;;CAIF,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;IAE3B;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC,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;IAED;;;OAGG;IACH,IAAW,cAAc,IAAI,OAAO,CAEnC;IAEe,sBAAsB,IAAI,OAAO,CAEhD;IAED;;OAEG;IACa,cAAc,IAAI,MAAM,CAYvC;IAED;;;OAGG;IACa,YAAY,IAAI,cAAc,CAM7C;IAED;;;;OAIG;IACa,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAqB5D;CACF;AAED;;;GAGG;AACH,qBAAa,WAAW,CACtB,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,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IACtC,OAAuB,IAAI,EAAE,YAAY,CAAiB;IAC1D,OAAuB,KAAK,EAAE,MAAM,CAAc;IAClD,OAAuB,WAAW,EAAE,MAAM,CACsC;IAEhF,YAAY,MAAM,GAAE,OAAO,CAAC,MAAM,CAAM,EAAE,SAAS,GAAE,OAAO,CAAC,UAAU,CAAM,EAE5E;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;QAEnB;;;;WAIG;QACH,OAAO,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QAE7E;;WAEG;QACH,UAAU,IAAI,QAAQ,CAAC;KACxB;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 { 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
|
|
64
|
-
|
|
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
|
|
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"}
|
package/dist/task/TaskJSON.d.ts
CHANGED
|
@@ -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":"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,
|
|
1
|
+
{"version":3,"file":"TaskJSON.d.ts","sourceRoot":"","sources":["../../src/task/TaskJSON.ts"],"names":[],"mappings":"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"}
|
package/dist/task/WhileTask.d.ts
CHANGED
|
@@ -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
|
|
75
|
-
|
|
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
|
-
*
|
|
108
|
-
*
|
|
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
|
|
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":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAA2B,MAAM,eAAe,CAAC;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
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;
|
|
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"}
|