@workglow/task-graph 0.1.2 → 0.2.1
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 +810 -189
- package/dist/browser.js.map +40 -33
- package/dist/bun.js +810 -189
- package/dist/bun.js.map +40 -33
- package/dist/common.d.ts +2 -0
- package/dist/common.d.ts.map +1 -1
- package/dist/node.js +810 -189
- package/dist/node.js.map +40 -33
- package/dist/storage/TaskOutputTabularRepository.d.ts +1 -1
- package/dist/storage/TaskOutputTabularRepository.d.ts.map +1 -1
- package/dist/task/ConditionalTask.d.ts +7 -2
- package/dist/task/ConditionalTask.d.ts.map +1 -1
- package/dist/task/EntitlementEnforcer.d.ts +55 -0
- package/dist/task/EntitlementEnforcer.d.ts.map +1 -0
- package/dist/task/EntitlementPolicy.d.ts +60 -0
- package/dist/task/EntitlementPolicy.d.ts.map +1 -0
- package/dist/task/EntitlementProfiles.d.ts +49 -0
- package/dist/task/EntitlementProfiles.d.ts.map +1 -0
- package/dist/task/EntitlementResolver.d.ts +50 -0
- package/dist/task/EntitlementResolver.d.ts.map +1 -0
- package/dist/task/FallbackTask.d.ts +11 -4
- package/dist/task/FallbackTask.d.ts.map +1 -1
- package/dist/task/FallbackTaskRunner.d.ts +2 -2
- package/dist/task/FallbackTaskRunner.d.ts.map +1 -1
- package/dist/task/GraphAsTask.d.ts +18 -6
- package/dist/task/GraphAsTask.d.ts.map +1 -1
- package/dist/task/GraphAsTaskRunner.d.ts +3 -2
- package/dist/task/GraphAsTaskRunner.d.ts.map +1 -1
- package/dist/task/ITask.d.ts +12 -1
- package/dist/task/ITask.d.ts.map +1 -1
- package/dist/task/InputCompactor.d.ts +1 -1
- package/dist/task/InputCompactor.d.ts.map +1 -1
- package/dist/task/InputResolver.d.ts +3 -3
- package/dist/task/InputResolver.d.ts.map +1 -1
- package/dist/task/IteratorTask.d.ts +9 -4
- 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 +8 -3
- package/dist/task/MapTask.d.ts.map +1 -1
- package/dist/task/ReduceTask.d.ts +9 -4
- package/dist/task/ReduceTask.d.ts.map +1 -1
- package/dist/task/StreamTypes.d.ts +6 -2
- package/dist/task/StreamTypes.d.ts.map +1 -1
- package/dist/task/Task.d.ts +37 -7
- package/dist/task/Task.d.ts.map +1 -1
- package/dist/task/TaskEntitlements.d.ts +134 -0
- package/dist/task/TaskEntitlements.d.ts.map +1 -0
- package/dist/task/TaskError.d.ts +7 -0
- package/dist/task/TaskError.d.ts.map +1 -1
- package/dist/task/TaskEvents.d.ts +3 -0
- package/dist/task/TaskEvents.d.ts.map +1 -1
- package/dist/task/TaskJSON.d.ts +14 -1
- package/dist/task/TaskJSON.d.ts.map +1 -1
- package/dist/task/TaskRegistry.d.ts +16 -3
- package/dist/task/TaskRegistry.d.ts.map +1 -1
- package/dist/task/TaskRunner.d.ts +5 -4
- package/dist/task/TaskRunner.d.ts.map +1 -1
- package/dist/task/TaskTypes.d.ts +10 -2
- package/dist/task/TaskTypes.d.ts.map +1 -1
- package/dist/task/WhileTask.d.ts +8 -4
- package/dist/task/WhileTask.d.ts.map +1 -1
- package/dist/task/WhileTaskRunner.d.ts +1 -1
- package/dist/task/WhileTaskRunner.d.ts.map +1 -1
- package/dist/task/index.d.ts +5 -0
- package/dist/task/index.d.ts.map +1 -1
- package/dist/task/iterationSchema.d.ts +2 -1
- package/dist/task/iterationSchema.d.ts.map +1 -1
- package/dist/task-graph/Dataflow.d.ts +1 -1
- package/dist/task-graph/Dataflow.d.ts.map +1 -1
- package/dist/task-graph/GraphEntitlementUtils.d.ts +30 -0
- package/dist/task-graph/GraphEntitlementUtils.d.ts.map +1 -0
- package/dist/task-graph/GraphFormatScanner.d.ts +41 -0
- package/dist/task-graph/GraphFormatScanner.d.ts.map +1 -0
- package/dist/task-graph/GraphToWorkflowCode.d.ts.map +1 -1
- package/dist/task-graph/TaskGraph.d.ts +23 -5
- package/dist/task-graph/TaskGraph.d.ts.map +1 -1
- package/dist/task-graph/TaskGraphEvents.d.ts +3 -0
- package/dist/task-graph/TaskGraphEvents.d.ts.map +1 -1
- package/dist/task-graph/TaskGraphRunner.d.ts +13 -1
- package/dist/task-graph/TaskGraphRunner.d.ts.map +1 -1
- package/dist/task-graph/Workflow.d.ts +29 -17
- package/dist/task-graph/Workflow.d.ts.map +1 -1
- package/package.json +12 -7
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import type { BaseTabularStorage } from "@workglow/storage";
|
|
7
7
|
import { TaskInput, TaskOutput } from "../task/TaskTypes";
|
|
8
8
|
import { TaskOutputRepository } from "./TaskOutputRepository";
|
|
9
9
|
export type TaskOutputPrimaryKey = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskOutputTabularRepository.d.ts","sourceRoot":"","sources":["../../src/storage/TaskOutputTabularRepository.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TaskOutputTabularRepository.d.ts","sourceRoot":"","sources":["../../src/storage/TaskOutputTabularRepository.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAI5D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;CASG,CAAC;AAEjC,eAAO,MAAM,yBAAyB,YAAI,KAAK,EAAE,UAAU,CAAU,CAAC;AAEtE,MAAM,MAAM,2BAA2B,GAAG,kBAAkB,CAC1D,OAAO,gBAAgB,EACvB,OAAO,yBAAyB,CACjC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,oBAAoB;IACnE;;OAEG;IACH,iBAAiB,EAAE,2BAA2B,CAAC;IAE/C;;;OAGG;IACH,YAAY,EAAE,iBAAiB,EAAE,iBAAwB,EAAE,EAAE,2BAA2B,EAIvF;IAED;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAEnC;IAEY,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7D;IAED;;;;;OAKG;IACG,UAAU,CACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,SAAS,OAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAuBf;IAED;;;;;OAKG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAgCpF;IAED;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;IAED;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAE5B;IAED;;;OAGG;IACG,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzD;CACF"}
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import type { DataPortSchema } from "@workglow/util/schema";
|
|
7
|
-
import {
|
|
7
|
+
import type { UIConditionConfig } from "./ConditionUtils";
|
|
8
8
|
import type { IExecuteContext } from "./ITask";
|
|
9
9
|
import { Task } from "./Task";
|
|
10
|
-
import {
|
|
10
|
+
import type { TaskConfig, TaskInput, TaskOutput, TaskTypeName } from "./TaskTypes";
|
|
11
11
|
/**
|
|
12
12
|
* A predicate function that evaluates whether a branch condition is met.
|
|
13
13
|
* Receives the task's input data and returns true if the branch should be active.
|
|
@@ -125,6 +125,11 @@ export declare const conditionalTaskConfigSchema: {
|
|
|
125
125
|
readonly additionalProperties: true;
|
|
126
126
|
readonly "x-ui-hidden": true;
|
|
127
127
|
};
|
|
128
|
+
readonly defaults: {
|
|
129
|
+
readonly type: "object";
|
|
130
|
+
readonly additionalProperties: true;
|
|
131
|
+
readonly "x-ui-hidden": true;
|
|
132
|
+
};
|
|
128
133
|
};
|
|
129
134
|
readonly additionalProperties: false;
|
|
130
135
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConditionalTask.d.ts","sourceRoot":"","sources":["../../src/task/ConditionalTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ConditionalTask.d.ts","sourceRoot":"","sources":["../../src/task/ConditionalTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { EntitlementGrant, TaskEntitlement, TaskEntitlements } from "./TaskEntitlements";
|
|
7
|
+
import type { EntitlementPolicy } from "./EntitlementPolicy";
|
|
8
|
+
import type { IEntitlementResolver } from "./EntitlementResolver";
|
|
9
|
+
import type { ITask } from "./ITask";
|
|
10
|
+
/**
|
|
11
|
+
* Interface for checking whether required entitlements are granted.
|
|
12
|
+
* Register a custom implementation via the ServiceRegistry to enforce entitlements.
|
|
13
|
+
*
|
|
14
|
+
* Methods are async because resolving "ask" verdicts may require user interaction.
|
|
15
|
+
*/
|
|
16
|
+
export interface IEntitlementEnforcer {
|
|
17
|
+
/**
|
|
18
|
+
* Preflight check: evaluate all required entitlements against the policy.
|
|
19
|
+
* Resolves "ask" verdicts via the resolver (prompt + save).
|
|
20
|
+
* Returns the list of denied (non-optional) entitlements, or empty array if all granted.
|
|
21
|
+
*/
|
|
22
|
+
checkAll(required: TaskEntitlements): Promise<readonly TaskEntitlement[]>;
|
|
23
|
+
/**
|
|
24
|
+
* Runtime check: evaluate a single task's dynamic entitlements.
|
|
25
|
+
* Called during execution for tasks with `hasDynamicEntitlements`.
|
|
26
|
+
*/
|
|
27
|
+
checkTask(task: ITask): Promise<readonly TaskEntitlement[]>;
|
|
28
|
+
}
|
|
29
|
+
/** Default permissive enforcer — grants everything. */
|
|
30
|
+
export declare const PERMISSIVE_ENFORCER: IEntitlementEnforcer;
|
|
31
|
+
/**
|
|
32
|
+
* Creates an enforcer from a unified entitlement policy with deny/grant/ask rules.
|
|
33
|
+
*
|
|
34
|
+
* Evaluation order: Deny → Grant → Ask → Default(deny).
|
|
35
|
+
*
|
|
36
|
+
* @param policy - The policy defining deny, grant, and ask rules
|
|
37
|
+
* @param resolver - Pluggable resolver for handling "ask" verdicts. Defaults to PERMISSIVE_RESOLVER.
|
|
38
|
+
*/
|
|
39
|
+
export declare function createPolicyEnforcer(policy: EntitlementPolicy, resolver?: IEntitlementResolver): IEntitlementEnforcer;
|
|
40
|
+
/**
|
|
41
|
+
* Creates an enforcer from scoped grants that support resource-level matching.
|
|
42
|
+
* This is a convenience wrapper around `createPolicyEnforcer` with no deny or ask rules.
|
|
43
|
+
*
|
|
44
|
+
* Optional entitlements are never denied.
|
|
45
|
+
*/
|
|
46
|
+
export declare function createScopedEnforcer(grants: readonly EntitlementGrant[]): IEntitlementEnforcer;
|
|
47
|
+
/**
|
|
48
|
+
* Creates an enforcer from a list of entitlement ID strings (broad grants).
|
|
49
|
+
* Entitlement hierarchy is respected: granting "network" covers "network:http".
|
|
50
|
+
* All grants are broad (no resource scoping). Optional entitlements are never denied.
|
|
51
|
+
*/
|
|
52
|
+
export declare function createGrantListEnforcer(grants: readonly string[]): IEntitlementEnforcer;
|
|
53
|
+
/** Service token for registering an entitlement enforcer in the ServiceRegistry */
|
|
54
|
+
export declare const ENTITLEMENT_ENFORCER: import("@workglow/util").ServiceToken<IEntitlementEnforcer>;
|
|
55
|
+
//# sourceMappingURL=EntitlementEnforcer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntitlementEnforcer.d.ts","sourceRoot":"","sources":["../../src/task/EntitlementEnforcer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9F,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;AAOrC;;;;;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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { EntitlementGrant, EntitlementId, TaskEntitlement, TaskEntitlements } from "./TaskEntitlements";
|
|
7
|
+
/**
|
|
8
|
+
* A rule matching entitlements by ID and optional resource patterns.
|
|
9
|
+
* Used for deny and ask rules. Same shape as EntitlementGrant.
|
|
10
|
+
*/
|
|
11
|
+
export interface EntitlementRule {
|
|
12
|
+
readonly id: EntitlementId;
|
|
13
|
+
/** Resource patterns (glob-style). When undefined, matches broadly. */
|
|
14
|
+
readonly resources?: readonly string[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* A unified entitlement policy combining deny, grant, and ask rules.
|
|
18
|
+
*
|
|
19
|
+
* Evaluation order: Deny → Grant → Ask → Default(deny).
|
|
20
|
+
* - Deny rules override everything — if matched, the entitlement is denied.
|
|
21
|
+
* - Grant rules auto-allow without prompting.
|
|
22
|
+
* - Ask rules trigger a resolver to prompt the user.
|
|
23
|
+
* - If no rule matches, the entitlement is denied.
|
|
24
|
+
*/
|
|
25
|
+
export interface EntitlementPolicy {
|
|
26
|
+
/** Hard denials — checked first, override grants */
|
|
27
|
+
readonly deny: readonly EntitlementRule[];
|
|
28
|
+
/** Grants — auto-allowed without prompting */
|
|
29
|
+
readonly grant: readonly EntitlementGrant[];
|
|
30
|
+
/** Ask rules — require user approval via a resolver */
|
|
31
|
+
readonly ask: readonly EntitlementRule[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The result of evaluating a single entitlement against a policy.
|
|
35
|
+
*/
|
|
36
|
+
export type EntitlementVerdict = "granted" | "denied" | "ask";
|
|
37
|
+
/**
|
|
38
|
+
* Per-entitlement result from policy evaluation.
|
|
39
|
+
*/
|
|
40
|
+
export interface EntitlementCheckResult {
|
|
41
|
+
readonly verdict: EntitlementVerdict;
|
|
42
|
+
readonly entitlement: TaskEntitlement;
|
|
43
|
+
/** The rule that produced this verdict (for debugging/UI). Undefined when default-denied. */
|
|
44
|
+
readonly matchedRule?: EntitlementRule;
|
|
45
|
+
}
|
|
46
|
+
/** An empty policy that denies everything (no grants, no denies, no asks). */
|
|
47
|
+
export declare const EMPTY_POLICY: EntitlementPolicy;
|
|
48
|
+
/**
|
|
49
|
+
* Evaluates a policy against a set of required entitlements.
|
|
50
|
+
*
|
|
51
|
+
* For each required entitlement (skipping optional ones):
|
|
52
|
+
* 1. If any deny rule matches → `"denied"`
|
|
53
|
+
* 2. If any grant rule matches → `"granted"`
|
|
54
|
+
* 3. If any ask rule matches → `"ask"`
|
|
55
|
+
* 4. Otherwise → `"denied"` (default deny)
|
|
56
|
+
*
|
|
57
|
+
* This is a pure function with no side effects.
|
|
58
|
+
*/
|
|
59
|
+
export declare function evaluatePolicy(policy: EntitlementPolicy, required: TaskEntitlements): readonly EntitlementCheckResult[];
|
|
60
|
+
//# sourceMappingURL=EntitlementPolicy.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*
|
|
6
|
+
* Pre-built entitlement grant profiles for common runtime environments.
|
|
7
|
+
* The library has no concept of Electron, brands, or deployment targets —
|
|
8
|
+
* only capability profiles expressed as entitlement policies.
|
|
9
|
+
*/
|
|
10
|
+
import { type IEntitlementEnforcer } from "./EntitlementEnforcer";
|
|
11
|
+
import type { EntitlementPolicy } from "./EntitlementPolicy";
|
|
12
|
+
import type { IEntitlementResolver } from "./EntitlementResolver";
|
|
13
|
+
import type { EntitlementGrant } from "./TaskEntitlements";
|
|
14
|
+
/**
|
|
15
|
+
* Browser environment grants.
|
|
16
|
+
* No filesystem access, no code execution, no stdio MCP.
|
|
17
|
+
*/
|
|
18
|
+
export declare const BROWSER_GRANTS: readonly EntitlementGrant[];
|
|
19
|
+
/**
|
|
20
|
+
* Desktop environment grants (e.g., Electron with Node.js main process).
|
|
21
|
+
* Adds filesystem, code execution, and stdio MCP on top of browser grants.
|
|
22
|
+
*/
|
|
23
|
+
export declare const DESKTOP_GRANTS: readonly EntitlementGrant[];
|
|
24
|
+
/**
|
|
25
|
+
* Server environment grants (e.g., cloud deployment).
|
|
26
|
+
* Same as desktop for now; can add resource scoping later.
|
|
27
|
+
*/
|
|
28
|
+
export declare const SERVER_GRANTS: readonly EntitlementGrant[];
|
|
29
|
+
export type EntitlementProfile = "browser" | "desktop" | "server";
|
|
30
|
+
/**
|
|
31
|
+
* Creates an entitlement policy for the given runtime profile.
|
|
32
|
+
* The profile's grants become the policy's grant rules.
|
|
33
|
+
* Deny and ask arrays are empty by default — callers can extend the returned policy.
|
|
34
|
+
*/
|
|
35
|
+
export declare function createProfilePolicy(profile: EntitlementProfile): EntitlementPolicy;
|
|
36
|
+
/**
|
|
37
|
+
* Creates an entitlement enforcer for the given runtime profile.
|
|
38
|
+
* Tasks requiring entitlements not in the profile will be denied.
|
|
39
|
+
*
|
|
40
|
+
* @param profile - The runtime profile to use
|
|
41
|
+
* @param resolver - Optional resolver for handling "ask" verdicts
|
|
42
|
+
*/
|
|
43
|
+
export declare function createProfileEnforcer(profile: EntitlementProfile, resolver?: IEntitlementResolver): IEntitlementEnforcer;
|
|
44
|
+
/**
|
|
45
|
+
* Returns the grant list for a given profile.
|
|
46
|
+
* Useful for inspection or combining with additional grants.
|
|
47
|
+
*/
|
|
48
|
+
export declare function getProfileGrants(profile: EntitlementProfile): readonly EntitlementGrant[];
|
|
49
|
+
//# sourceMappingURL=EntitlementProfiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntitlementProfiles.d.ts","sourceRoot":"","sources":["../../src/task/EntitlementProfiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAwB,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAO3D;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,gBAAgB,EAQrD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,gBAAgB,EAKrD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,gBAAgB,EAAwB,CAAC;AAM9E,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAQlE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CAElF;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,oBAAoB,CAEtB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,gBAAgB,EAAE,CAEzF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { TaskEntitlement } from "./TaskEntitlements";
|
|
7
|
+
import type { TaskIdType } from "./TaskTypes";
|
|
8
|
+
/**
|
|
9
|
+
* A request to the resolver for a user decision on an entitlement.
|
|
10
|
+
*/
|
|
11
|
+
export interface EntitlementAskRequest {
|
|
12
|
+
/** The entitlement that needs a decision */
|
|
13
|
+
readonly entitlement: TaskEntitlement;
|
|
14
|
+
/** The task type requesting the entitlement */
|
|
15
|
+
readonly taskType: string;
|
|
16
|
+
/** The task instance ID requesting the entitlement */
|
|
17
|
+
readonly taskId: TaskIdType;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A user's answer to an entitlement ask.
|
|
21
|
+
*/
|
|
22
|
+
export type EntitlementAnswer = "grant" | "deny";
|
|
23
|
+
/**
|
|
24
|
+
* Pluggable interface for handling "ask" entitlement verdicts.
|
|
25
|
+
*
|
|
26
|
+
* The resolver is responsible for:
|
|
27
|
+
* - Checking if a saved answer exists (`lookup`)
|
|
28
|
+
* - Prompting the user for a decision (`prompt`)
|
|
29
|
+
* - Persisting the user's answer for future lookups (`save`)
|
|
30
|
+
*
|
|
31
|
+
* Implementations vary by environment:
|
|
32
|
+
* - Builder app: shows a dialog, persists answers per-project
|
|
33
|
+
* - CLI: prints to terminal, saves in config
|
|
34
|
+
* - Tests: use PERMISSIVE_RESOLVER or DENY_ALL_RESOLVER
|
|
35
|
+
*/
|
|
36
|
+
export interface IEntitlementResolver {
|
|
37
|
+
/** Check if there's a saved answer for this ask. Returns undefined if not saved. */
|
|
38
|
+
lookup(request: EntitlementAskRequest): EntitlementAnswer | undefined;
|
|
39
|
+
/** Prompt the user and return their answer. May block on UI. */
|
|
40
|
+
prompt(request: EntitlementAskRequest): Promise<EntitlementAnswer>;
|
|
41
|
+
/** Save a user's answer for future lookups. */
|
|
42
|
+
save(request: EntitlementAskRequest, answer: EntitlementAnswer): void;
|
|
43
|
+
}
|
|
44
|
+
/** Grants all asks without prompting. Useful for tests and permissive environments. */
|
|
45
|
+
export declare const PERMISSIVE_RESOLVER: IEntitlementResolver;
|
|
46
|
+
/** Denies all asks without prompting. Useful for locked-down environments. */
|
|
47
|
+
export declare const DENY_ALL_RESOLVER: IEntitlementResolver;
|
|
48
|
+
/** Service token for registering an entitlement resolver in the ServiceRegistry */
|
|
49
|
+
export declare const ENTITLEMENT_RESOLVER: import("@workglow/util").ServiceToken<IEntitlementResolver>;
|
|
50
|
+
//# sourceMappingURL=EntitlementResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntitlementResolver.d.ts","sourceRoot":"","sources":["../../src/task/EntitlementResolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC;AAMjD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,oFAAoF;IACpF,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACtE,gEAAgE;IAChE,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnE,+CAA+C;IAC/C,IAAI,CAAC,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACvE;AAMD,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,EAAE,oBAIjC,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,EAAE,oBAI/B,CAAC;AAMF,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,6DAEhC,CAAC"}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import type { DataPortSchema } from "@workglow/util/schema";
|
|
7
|
-
import { GraphAsTask
|
|
7
|
+
import { GraphAsTask } from "./GraphAsTask";
|
|
8
|
+
import type { GraphAsTaskConfig } from "./GraphAsTask";
|
|
8
9
|
import { FallbackTaskRunner } from "./FallbackTaskRunner";
|
|
9
10
|
import type { TaskInput, TaskOutput, TaskTypeName } from "./TaskTypes";
|
|
10
11
|
/**
|
|
@@ -57,6 +58,11 @@ export declare const fallbackTaskConfigSchema: {
|
|
|
57
58
|
readonly additionalProperties: true;
|
|
58
59
|
readonly "x-ui-hidden": true;
|
|
59
60
|
};
|
|
61
|
+
readonly defaults: {
|
|
62
|
+
readonly type: "object";
|
|
63
|
+
readonly additionalProperties: true;
|
|
64
|
+
readonly "x-ui-hidden": true;
|
|
65
|
+
};
|
|
60
66
|
readonly fallbackMode: {
|
|
61
67
|
readonly type: "string";
|
|
62
68
|
readonly enum: readonly ["task", "data"];
|
|
@@ -75,7 +81,7 @@ export declare const fallbackTaskConfigSchema: {
|
|
|
75
81
|
* Configuration type for FallbackTask.
|
|
76
82
|
* Extends GraphAsTaskConfig with fallback-specific options.
|
|
77
83
|
*/
|
|
78
|
-
export type FallbackTaskConfig = GraphAsTaskConfig & {
|
|
84
|
+
export type FallbackTaskConfig<Input extends TaskInput = TaskInput> = GraphAsTaskConfig<Input> & {
|
|
79
85
|
/**
|
|
80
86
|
* The fallback execution mode.
|
|
81
87
|
* - `"task"`: Try each task in the subgraph as an alternative.
|
|
@@ -150,7 +156,7 @@ export type FallbackTaskConfig = GraphAsTaskConfig & {
|
|
|
150
156
|
* The output is the result from whichever alternative succeeded first.
|
|
151
157
|
* The output schema matches the inner tasks' output schema.
|
|
152
158
|
*/
|
|
153
|
-
export declare class FallbackTask<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends FallbackTaskConfig = FallbackTaskConfig
|
|
159
|
+
export declare class FallbackTask<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends FallbackTaskConfig<Input> = FallbackTaskConfig<Input>> extends GraphAsTask<Input, Output, Config> {
|
|
154
160
|
static type: TaskTypeName;
|
|
155
161
|
static category: string;
|
|
156
162
|
static title: string;
|
|
@@ -178,6 +184,7 @@ export declare class FallbackTask<Input extends TaskInput = TaskInput, Output ex
|
|
|
178
184
|
defaults?: TaskInput;
|
|
179
185
|
subgraph?: import("./TaskJSON").TaskGraphJson;
|
|
180
186
|
merge?: import("../common").CompoundMergeStrategy;
|
|
187
|
+
entitlements?: import("./TaskEntitlements").TaskEntitlements;
|
|
181
188
|
config: {
|
|
182
189
|
branches?: import("./ConditionalTask").BranchConfig<any>[];
|
|
183
190
|
defaultBranch?: string;
|
|
@@ -221,7 +228,7 @@ declare module "../task-graph/Workflow" {
|
|
|
221
228
|
* is an independent alternative tried sequentially until one succeeds.
|
|
222
229
|
* Use `.endFallback()` to close the block and return to the parent workflow.
|
|
223
230
|
*/
|
|
224
|
-
fallback: CreateLoopWorkflow<TaskInput, TaskOutput, FallbackTaskConfig
|
|
231
|
+
fallback: CreateLoopWorkflow<TaskInput, TaskOutput, FallbackTaskConfig<TaskInput>>;
|
|
225
232
|
/**
|
|
226
233
|
* Ends the task-mode fallback block and returns to the parent workflow.
|
|
227
234
|
*/
|
|
@@ -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,EAAE,iBAAiB,
|
|
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"}
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { FallbackTask, FallbackTaskConfig } from "./FallbackTask";
|
|
7
7
|
import { GraphAsTaskRunner } from "./GraphAsTaskRunner";
|
|
8
|
-
import {
|
|
8
|
+
import type { TaskInput, TaskOutput } from "./TaskTypes";
|
|
9
9
|
/**
|
|
10
10
|
* Runner for FallbackTask that executes alternatives sequentially until one succeeds.
|
|
11
11
|
*
|
|
12
12
|
* In **task mode**, each task in the subgraph is tried independently.
|
|
13
13
|
* In **data mode**, the entire subgraph is re-run with different input overrides.
|
|
14
14
|
*/
|
|
15
|
-
export declare class FallbackTaskRunner<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends FallbackTaskConfig = FallbackTaskConfig
|
|
15
|
+
export declare class FallbackTaskRunner<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends FallbackTaskConfig<Input> = FallbackTaskConfig<Input>> extends GraphAsTaskRunner<Input, Output, Config> {
|
|
16
16
|
task: FallbackTask<Input, Output, Config>;
|
|
17
17
|
/**
|
|
18
18
|
* Override executeTask to implement sequential fallback logic.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FallbackTaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/FallbackTaskRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"FallbackTaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/FallbackTaskRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzD;;;;;GAKG;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;;OAEG;IACH,UAAyB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAK9E;IAED;;;OAGG;IACmB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGvF;YAUa,mBAAmB;YA0DnB,mBAAmB;IAkEjC;;OAEG;IACH,OAAO,CAAC,SAAS;IASjB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAa5B"}
|
|
@@ -3,15 +3,16 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import type { DataPortSchema, SchemaNode } from "@workglow/util/schema";
|
|
7
7
|
import { TaskGraph } from "../task-graph/TaskGraph";
|
|
8
8
|
import { CompoundMergeStrategy } from "../task-graph/TaskGraphRunner";
|
|
9
9
|
import { GraphAsTaskRunner } from "./GraphAsTaskRunner";
|
|
10
10
|
import type { IExecuteContext } from "./ITask";
|
|
11
11
|
import type { StreamEvent } from "./StreamTypes";
|
|
12
12
|
import { Task } from "./Task";
|
|
13
|
+
import type { TaskEntitlements } from "./TaskEntitlements";
|
|
13
14
|
import type { JsonTaskItem, TaskGraphItemJson, TaskGraphJsonOptions } from "./TaskJSON";
|
|
14
|
-
import {
|
|
15
|
+
import type { TaskConfig, TaskInput, TaskOutput, TaskTypeName } from "./TaskTypes";
|
|
15
16
|
export declare const graphAsTaskConfigSchema: {
|
|
16
17
|
readonly type: "object";
|
|
17
18
|
readonly properties: {
|
|
@@ -52,10 +53,15 @@ export declare const graphAsTaskConfigSchema: {
|
|
|
52
53
|
readonly additionalProperties: true;
|
|
53
54
|
readonly "x-ui-hidden": true;
|
|
54
55
|
};
|
|
56
|
+
readonly defaults: {
|
|
57
|
+
readonly type: "object";
|
|
58
|
+
readonly additionalProperties: true;
|
|
59
|
+
readonly "x-ui-hidden": true;
|
|
60
|
+
};
|
|
55
61
|
};
|
|
56
62
|
readonly additionalProperties: false;
|
|
57
63
|
};
|
|
58
|
-
export type GraphAsTaskConfig = TaskConfig & {
|
|
64
|
+
export type GraphAsTaskConfig<Input extends TaskInput = TaskInput> = TaskConfig<Input> & {
|
|
59
65
|
/** subGraph is extracted in the constructor before validation — not in the JSON schema */
|
|
60
66
|
subGraph?: TaskGraph;
|
|
61
67
|
compoundMerge?: CompoundMergeStrategy;
|
|
@@ -63,7 +69,7 @@ export type GraphAsTaskConfig = TaskConfig & {
|
|
|
63
69
|
/**
|
|
64
70
|
* A task that contains a subgraph of tasks
|
|
65
71
|
*/
|
|
66
|
-
export declare class GraphAsTask<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends GraphAsTaskConfig = GraphAsTaskConfig
|
|
72
|
+
export declare class GraphAsTask<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends GraphAsTaskConfig<Input> = GraphAsTaskConfig<Input>> extends Task<Input, Output, Config> {
|
|
67
73
|
static type: TaskTypeName;
|
|
68
74
|
static title: string;
|
|
69
75
|
static description: string;
|
|
@@ -71,7 +77,9 @@ export declare class GraphAsTask<Input extends TaskInput = TaskInput, Output ext
|
|
|
71
77
|
static compoundMerge: CompoundMergeStrategy;
|
|
72
78
|
/** This task has dynamic schemas that change based on the subgraph structure */
|
|
73
79
|
static hasDynamicSchemas: boolean;
|
|
74
|
-
|
|
80
|
+
/** Entitlements are always dynamic — they depend on child tasks in the subgraph */
|
|
81
|
+
static hasDynamicEntitlements: boolean;
|
|
82
|
+
constructor(config?: Partial<Config>);
|
|
75
83
|
_runner: GraphAsTaskRunner<Input, Output, Config>;
|
|
76
84
|
/**
|
|
77
85
|
* Task runner for handling the task execution
|
|
@@ -100,6 +108,10 @@ export declare class GraphAsTask<Input extends TaskInput = TaskInput, Output ext
|
|
|
100
108
|
* The output schema depends on the compoundMerge strategy and the nodes at the last level
|
|
101
109
|
*/
|
|
102
110
|
outputSchema(): DataPortSchema;
|
|
111
|
+
/**
|
|
112
|
+
* Override entitlements to aggregate from all tasks in the subgraph.
|
|
113
|
+
*/
|
|
114
|
+
entitlements(): TaskEntitlements;
|
|
103
115
|
/**
|
|
104
116
|
* Resets input data to defaults
|
|
105
117
|
*/
|
|
@@ -136,7 +148,7 @@ declare module "../task-graph/Workflow" {
|
|
|
136
148
|
* Starts a group that wraps inner tasks in a GraphAsTask subgraph.
|
|
137
149
|
* Use .endGroup() to close the group and return to the parent workflow.
|
|
138
150
|
*/
|
|
139
|
-
group: CreateLoopWorkflow<TaskInput, TaskOutput, GraphAsTaskConfig
|
|
151
|
+
group: CreateLoopWorkflow<TaskInput, TaskOutput, GraphAsTaskConfig<TaskInput>>;
|
|
140
152
|
/**
|
|
141
153
|
* Ends the group and returns to the parent workflow.
|
|
142
154
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphAsTask.d.ts","sourceRoot":"","sources":["../../src/task/GraphAsTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"GraphAsTask.d.ts","sourceRoot":"","sources":["../../src/task/GraphAsTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
import { GraphResultArray } from "../task-graph/TaskGraphRunner";
|
|
7
7
|
import { GraphAsTask } from "./GraphAsTask";
|
|
8
8
|
import { TaskRunner } from "./TaskRunner";
|
|
9
|
-
import {
|
|
10
|
-
|
|
9
|
+
import type { TaskInput, TaskOutput } from "./TaskTypes";
|
|
10
|
+
import type { GraphAsTaskConfig } from "./GraphAsTask";
|
|
11
|
+
export declare class GraphAsTaskRunner<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends GraphAsTaskConfig<Input> = GraphAsTaskConfig<Input>> extends TaskRunner<Input, Output, Config> {
|
|
11
12
|
task: GraphAsTask<Input, Output, Config>;
|
|
12
13
|
/**
|
|
13
14
|
* Protected method to execute a task subgraph by delegating back to the task itself.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphAsTaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/GraphAsTaskRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"GraphAsTaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/GraphAsTaskRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,qBAAa,iBAAiB,CAC5B,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,iBAAiB,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAClE,SAAQ,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IACjC,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjD;;OAEG;IACH,UAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAcnF;IACD;;;;;;OAMG;IACH,UAAgB,2BAA2B,IAAI,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAI/E;IAED,UAAyB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAKtD;IAMD;;OAEG;IACH,UAAyB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAY9E;IAED;;OAEG;IACmB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYvF;CACF"}
|
package/dist/task/ITask.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ import type { TaskGraph } from "../task-graph/TaskGraph";
|
|
|
12
12
|
import { CompoundMergeStrategy } from "../task-graph/TaskGraphRunner";
|
|
13
13
|
import type { StreamEvent } from "./StreamTypes";
|
|
14
14
|
import { TaskError } from "./TaskError";
|
|
15
|
+
import type { TaskEntitlements } from "./TaskEntitlements";
|
|
15
16
|
import type { TaskEventListener, TaskEventListeners, TaskEventParameters, TaskEvents } from "./TaskEvents";
|
|
16
17
|
import type { JsonTaskItem, TaskGraphItemJson, TaskGraphJsonOptions } from "./TaskJSON";
|
|
17
18
|
import { TaskRunner } from "./TaskRunner";
|
|
@@ -76,6 +77,12 @@ export interface IRunConfig {
|
|
|
76
77
|
* Set automatically by context.own() to propagate cancellation from parent to child tasks.
|
|
77
78
|
*/
|
|
78
79
|
signal?: AbortSignal;
|
|
80
|
+
/**
|
|
81
|
+
* When true, check entitlements via the registered IEntitlementEnforcer
|
|
82
|
+
* before graph execution begins. Throws TaskEntitlementError if denied.
|
|
83
|
+
* Default: false (entitlements are declarative only, not enforced by the engine).
|
|
84
|
+
*/
|
|
85
|
+
enforceEntitlements?: boolean;
|
|
79
86
|
}
|
|
80
87
|
/**
|
|
81
88
|
* Interface for task static property metadata
|
|
@@ -89,11 +96,14 @@ export interface ITaskStaticProperties {
|
|
|
89
96
|
readonly description?: string;
|
|
90
97
|
readonly cacheable: boolean;
|
|
91
98
|
readonly hasDynamicSchemas: boolean;
|
|
99
|
+
readonly hasDynamicEntitlements: boolean;
|
|
92
100
|
readonly passthroughInputsToOutputs?: boolean;
|
|
101
|
+
readonly isGraphOutput?: boolean;
|
|
93
102
|
readonly customizable?: boolean;
|
|
94
103
|
readonly inputSchema: () => DataPortSchema;
|
|
95
104
|
readonly outputSchema: () => DataPortSchema;
|
|
96
105
|
readonly configSchema: () => DataPortSchema;
|
|
106
|
+
readonly entitlements: () => TaskEntitlements;
|
|
97
107
|
}
|
|
98
108
|
/**
|
|
99
109
|
* Interface for task execution logic
|
|
@@ -148,6 +158,7 @@ export interface ITaskIO<Input extends TaskInput> {
|
|
|
148
158
|
validateInput(input: Input): Promise<boolean>;
|
|
149
159
|
get cacheable(): boolean;
|
|
150
160
|
narrowInput(input: Partial<Input>, registry: ServiceRegistry): Promise<Partial<Input>>;
|
|
161
|
+
entitlements(): TaskEntitlements;
|
|
151
162
|
}
|
|
152
163
|
export interface ITaskInternalGraph {
|
|
153
164
|
subGraph: TaskGraph;
|
|
@@ -198,7 +209,7 @@ export interface IGraphAsTask<Input extends TaskInput = TaskInput, Output extend
|
|
|
198
209
|
/**
|
|
199
210
|
* Type for task constructor
|
|
200
211
|
*/
|
|
201
|
-
type ITaskConstructorType<Input extends TaskInput, Output extends TaskOutput, Config extends TaskConfig> = new (
|
|
212
|
+
type ITaskConstructorType<Input extends TaskInput, Output extends TaskOutput, Config extends TaskConfig> = new (config: Config, runConfig?: Partial<IRunConfig>) => ITask<Input, Output, Config>;
|
|
202
213
|
/**
|
|
203
214
|
* Interface for task constructor with static properties
|
|
204
215
|
*/
|
package/dist/task/ITask.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ITask.d.ts","sourceRoot":"","sources":["../../src/task/ITask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,GAAG,EAAE,CAAC,CAAC,SAAS,KAAK,GAAG,UAAU,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC3D,QAAQ,EAAE,eAAe,CAAC;IAC1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAE7C;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,cAAc,CAAC,EAAE,CACf,IAAI,EAAE,KAAK,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ITask.d.ts","sourceRoot":"","sources":["../../src/task/ITask.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,5 +33,5 @@ export interface InputCompactorConfig {
|
|
|
33
33
|
* // compacted.model === "gpt-4"
|
|
34
34
|
* ```
|
|
35
35
|
*/
|
|
36
|
-
export declare function compactSchemaInputs<T extends Record<string, unknown>>(input: T, schema: DataPortSchema, config: InputCompactorConfig): Promise<T>;
|
|
36
|
+
export declare function compactSchemaInputs<T extends Record<string, unknown>>(input: T, schema: DataPortSchema, config: InputCompactorConfig, visited?: Set<object>): Promise<T>;
|
|
37
37
|
//# sourceMappingURL=InputCompactor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputCompactor.d.ts","sourceRoot":"","sources":["../../src/task/InputCompactor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;CACpC;
|
|
1
|
+
{"version":3,"file":"InputCompactor.d.ts","sourceRoot":"","sources":["../../src/task/InputCompactor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;CACpC;AAgCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzE,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,oBAAoB,EAC5B,OAAO,GAAE,GAAG,CAAC,MAAM,CAAa,GAC/B,OAAO,CAAC,CAAC,CAAC,CAmFZ"}
|