@workglow/task-graph 0.0.101 → 0.0.103

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +1 -3
  2. package/dist/browser.js +1083 -275
  3. package/dist/browser.js.map +26 -23
  4. package/dist/bun.js +1083 -275
  5. package/dist/bun.js.map +26 -23
  6. package/dist/common.d.ts +1 -0
  7. package/dist/common.d.ts.map +1 -1
  8. package/dist/node.js +1083 -275
  9. package/dist/node.js.map +26 -23
  10. package/dist/task/ConditionalTask.d.ts +11 -2
  11. package/dist/task/ConditionalTask.d.ts.map +1 -1
  12. package/dist/task/FallbackTask.d.ts +244 -0
  13. package/dist/task/FallbackTask.d.ts.map +1 -0
  14. package/dist/task/FallbackTaskRunner.d.ts +49 -0
  15. package/dist/task/FallbackTaskRunner.d.ts.map +1 -0
  16. package/dist/task/GraphAsTask.d.ts +22 -13
  17. package/dist/task/GraphAsTask.d.ts.map +1 -1
  18. package/dist/task/ITask.d.ts +6 -4
  19. package/dist/task/ITask.d.ts.map +1 -1
  20. package/dist/task/IteratorTask.d.ts +22 -8
  21. package/dist/task/IteratorTask.d.ts.map +1 -1
  22. package/dist/task/IteratorTaskRunner.d.ts +7 -5
  23. package/dist/task/IteratorTaskRunner.d.ts.map +1 -1
  24. package/dist/task/JobQueueTask.d.ts +21 -3
  25. package/dist/task/JobQueueTask.d.ts.map +1 -1
  26. package/dist/task/MapTask.d.ts +11 -1
  27. package/dist/task/MapTask.d.ts.map +1 -1
  28. package/dist/task/ReduceTask.d.ts +11 -1
  29. package/dist/task/ReduceTask.d.ts.map +1 -1
  30. package/dist/task/StreamTypes.d.ts +26 -4
  31. package/dist/task/StreamTypes.d.ts.map +1 -1
  32. package/dist/task/Task.d.ts +25 -18
  33. package/dist/task/Task.d.ts.map +1 -1
  34. package/dist/task/TaskError.d.ts +9 -0
  35. package/dist/task/TaskError.d.ts.map +1 -1
  36. package/dist/task/TaskJSON.d.ts +12 -3
  37. package/dist/task/TaskJSON.d.ts.map +1 -1
  38. package/dist/task/TaskRunner.d.ts +20 -0
  39. package/dist/task/TaskRunner.d.ts.map +1 -1
  40. package/dist/task/TaskTypes.d.ts +11 -1
  41. package/dist/task/TaskTypes.d.ts.map +1 -1
  42. package/dist/task/WhileTask.d.ts +11 -1
  43. package/dist/task/WhileTask.d.ts.map +1 -1
  44. package/dist/task/index.d.ts +4 -1
  45. package/dist/task/index.d.ts.map +1 -1
  46. package/dist/task/iterationSchema.d.ts +1 -1
  47. package/dist/task-graph/GraphSchemaUtils.d.ts +51 -0
  48. package/dist/task-graph/GraphSchemaUtils.d.ts.map +1 -0
  49. package/dist/task-graph/ITaskGraph.d.ts +3 -3
  50. package/dist/task-graph/ITaskGraph.d.ts.map +1 -1
  51. package/dist/task-graph/IWorkflow.d.ts +1 -1
  52. package/dist/task-graph/IWorkflow.d.ts.map +1 -1
  53. package/dist/task-graph/TaskGraph.d.ts +6 -4
  54. package/dist/task-graph/TaskGraph.d.ts.map +1 -1
  55. package/dist/task-graph/TaskGraphRunner.d.ts +26 -0
  56. package/dist/task-graph/TaskGraphRunner.d.ts.map +1 -1
  57. package/dist/task-graph/Workflow.d.ts +26 -4
  58. package/dist/task-graph/Workflow.d.ts.map +1 -1
  59. package/package.json +7 -7
  60. package/src/EXECUTION_MODEL.md +1 -1
  61. package/src/task/ConditionalTask.README.md +4 -4
@@ -13,10 +13,6 @@ import type { TaskInput, TaskOutput } from "./TaskTypes";
13
13
  */
14
14
  export declare class IteratorTaskRunner<Input extends TaskInput = TaskInput, Output extends TaskOutput = TaskOutput, Config extends IteratorTaskConfig = IteratorTaskConfig> extends GraphAsTaskRunner<Input, Output, Config> {
15
15
  task: IteratorTask<Input, Output, Config>;
16
- /**
17
- * Subgraph runs are serialized against one shared subgraph instance.
18
- */
19
- private subGraphRunChain;
20
16
  /**
21
17
  * For iterator tasks, reactive runs use full execution for correctness.
22
18
  */
@@ -27,10 +23,16 @@ export declare class IteratorTaskRunner<Input extends TaskInput = TaskInput, Out
27
23
  executeTaskReactive(input: Input, output: Output): Promise<Output>;
28
24
  protected executeCollectIterations(analysis: IterationAnalysisResult): Promise<Output>;
29
25
  protected executeReduceIterations(analysis: IterationAnalysisResult): Promise<Output>;
30
- protected executeBatch(indices: number[], analysis: IterationAnalysisResult, iterationCount: number, concurrency: number): Promise<Array<{
26
+ protected executeBatch(indices: number[], analysis: IterationAnalysisResult, iterationCount: number, concurrency: number, onItemComplete?: () => Promise<void>): Promise<Array<{
31
27
  index: number;
32
28
  result: TaskOutput | undefined;
33
29
  }>>;
30
+ /**
31
+ * Clones a TaskGraph by reconstructing each task from its constructor,
32
+ * defaults, and config. This preserves non-serializable config such as
33
+ * function references (e.g. WhileTask condition functions).
34
+ */
35
+ private cloneGraph;
34
36
  protected executeSubgraphIteration(input: Record<string, unknown>): Promise<TaskOutput | undefined>;
35
37
  }
36
38
  //# sourceMappingURL=IteratorTaskRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IteratorTaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/IteratorTaskRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,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,GAAG,kBAAkB,CACtD,SAAQ,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IACxC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAElD;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAAoC;IAE5D;;OAEG;cAEsB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAe/E;;OAEG;IACmB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;cAKxE,wBAAwB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;cAqD5E,uBAAuB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;cAuB3E,YAAY,CAC1B,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,uBAAuB,EACjC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;cA8BpD,wBAAwB,CACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;CA+BnC"}
1
+ {"version":3,"file":"IteratorTaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/IteratorTaskRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,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,GAAG,kBAAkB,CACtD,SAAQ,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IACxC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAElD;;OAEG;cAEsB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAe/E;;OAEG;IACmB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;cAKxE,wBAAwB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;cA4D5E,uBAAuB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;cAuB3E,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;IA+BpE;;;;OAIG;IACH,OAAO,CAAC,UAAU;cAkBF,wBAAwB,CACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;CAqBnC"}
@@ -3,8 +3,8 @@
3
3
  * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import type { DataPortSchema } from "@workglow/util";
7
6
  import { Job, JobConstructorParam } from "@workglow/job-queue";
7
+ import type { DataPortSchema } from "@workglow/util";
8
8
  import { GraphAsTask } from "./GraphAsTask";
9
9
  import { IExecuteContext } from "./ITask";
10
10
  import { TaskEventListeners } from "./TaskEvents";
@@ -13,11 +13,22 @@ import { TaskConfig, TaskInput, TaskOutput } from "./TaskTypes";
13
13
  export declare const jobQueueTaskConfigSchema: {
14
14
  readonly type: "object";
15
15
  readonly properties: {
16
- readonly queue: {};
16
+ readonly queue: {
17
+ readonly oneOf: readonly [{
18
+ readonly type: "boolean";
19
+ }, {
20
+ readonly type: "string";
21
+ }];
22
+ readonly description: "Queue handling: false=run inline, true=use default, string=explicit queue name";
23
+ readonly "x-ui-hidden": true;
24
+ };
17
25
  readonly compoundMerge: {
18
26
  readonly type: "string";
27
+ readonly "x-ui-hidden": true;
28
+ };
29
+ readonly id: {
30
+ readonly "x-ui-hidden": true;
19
31
  };
20
- readonly id: {};
21
32
  readonly title: {
22
33
  readonly type: "string";
23
34
  };
@@ -27,19 +38,26 @@ export declare const jobQueueTaskConfigSchema: {
27
38
  readonly cacheable: {
28
39
  readonly type: "boolean";
29
40
  };
41
+ readonly timeout: {
42
+ readonly type: "number";
43
+ readonly description: "Max execution time in milliseconds";
44
+ };
30
45
  readonly inputSchema: {
31
46
  readonly type: "object";
32
47
  readonly properties: {};
33
48
  readonly additionalProperties: true;
49
+ readonly "x-ui-hidden": true;
34
50
  };
35
51
  readonly outputSchema: {
36
52
  readonly type: "object";
37
53
  readonly properties: {};
38
54
  readonly additionalProperties: true;
55
+ readonly "x-ui-hidden": true;
39
56
  };
40
57
  readonly extras: {
41
58
  readonly type: "object";
42
59
  readonly additionalProperties: true;
60
+ readonly "x-ui-hidden": true;
43
61
  };
44
62
  };
45
63
  readonly additionalProperties: false;
@@ -1 +1 @@
1
- {"version":3,"file":"JobQueueTask.d.ts","sourceRoot":"","sources":["../../src/task/JobQueueTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAA2B,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAwB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOF,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG;IAC5C;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,GAAG;IAC9E,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CAC9F,CAAC;AAEF;;;;;;;GAOG;AACH,8BAAsB,YAAY,CAChC,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,kBAAkB,GAAG,kBAAkB,CACtD,SAAQ,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAkB;IAC9C,MAAM,CAAC,cAAc,UAAQ;WAEf,YAAY,IAAI,cAAc;IAI5C,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,0CAA0C;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,EAAE,KAAK,MAAM,EAAE,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAE5E,KAAK,GAAE,OAAO,CAAC,KAAK,CAAe,EAAE,MAAM,GAAE,MAAqB;IAQxE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAoEzF;;;;;OAKG;cACa,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3D;;;;;;OAMG;IACG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;cAQ5D,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;cAmC/E,mBAAmB,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;cAI/D,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IA4B1C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAU7B"}
1
+ {"version":3,"file":"JobQueueTask.d.ts","sourceRoot":"","sources":["../../src/task/JobQueueTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,WAAW,EAA2B,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAwB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWF,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG;IAC5C;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,GAAG;IAC9E,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CAC9F,CAAC;AAEF;;;;;;;GAOG;AACH,8BAAsB,YAAY,CAChC,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,kBAAkB,GAAG,kBAAkB,CACtD,SAAQ,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAkB;IAC9C,MAAM,CAAC,cAAc,UAAQ;WAEf,YAAY,IAAI,cAAc;IAI5C,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,0CAA0C;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,EAAE,KAAK,MAAM,EAAE,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAE5E,KAAK,GAAE,OAAO,CAAC,KAAK,CAAe,EAAE,MAAM,GAAE,MAAqB;IAQxE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAoEzF;;;;;OAKG;cACa,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3D;;;;;;OAMG;IACG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;cAQ5D,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;cAmC/E,mBAAmB,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;cAI/D,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IA4B1C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAU7B"}
@@ -29,8 +29,11 @@ export declare const mapTaskConfigSchema: {
29
29
  };
30
30
  readonly compoundMerge: {
31
31
  readonly type: "string";
32
+ readonly "x-ui-hidden": true;
33
+ };
34
+ readonly id: {
35
+ readonly "x-ui-hidden": true;
32
36
  };
33
- readonly id: {};
34
37
  readonly title: {
35
38
  readonly type: "string";
36
39
  };
@@ -40,19 +43,26 @@ export declare const mapTaskConfigSchema: {
40
43
  readonly cacheable: {
41
44
  readonly type: "boolean";
42
45
  };
46
+ readonly timeout: {
47
+ readonly type: "number";
48
+ readonly description: "Max execution time in milliseconds";
49
+ };
43
50
  readonly inputSchema: {
44
51
  readonly type: "object";
45
52
  readonly properties: {};
46
53
  readonly additionalProperties: true;
54
+ readonly "x-ui-hidden": true;
47
55
  };
48
56
  readonly outputSchema: {
49
57
  readonly type: "object";
50
58
  readonly properties: {};
51
59
  readonly additionalProperties: true;
60
+ readonly "x-ui-hidden": true;
52
61
  };
53
62
  readonly extras: {
54
63
  readonly type: "object";
55
64
  readonly additionalProperties: true;
65
+ readonly "x-ui-hidden": true;
56
66
  };
57
67
  };
58
68
  readonly additionalProperties: false;
@@ -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,gBAAgB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAA4B,MAAM,gBAAgB,CAAC;AAC5F,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQG,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG;IAC/C;;;;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,GAAG,aAAa,CAC5C,SAAQ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC3C,OAAc,IAAI,EAAE,YAAY,CAAa;IAC7C,OAAc,QAAQ,EAAE,MAAM,CAAkB;IAChD,OAAc,KAAK,EAAE,MAAM,CAAS;IACpC,OAAc,WAAW,EAAE,MAAM,CAA4D;WAE/E,YAAY,IAAI,cAAc;IAI5C;;OAEG;IACH,gBAAuB,aAAa,mBAAkB;IAEtD;;OAEG;WACW,WAAW,IAAI,cAAc;IAQ3C;;OAEG;WACW,YAAY,IAAI,cAAc;IAQ5C;;OAEG;IACH,IAAW,aAAa,IAAI,OAAO,CAElC;IAED;;OAEG;IACH,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEe,sBAAsB,IAAI,OAAO;IAIjD;;OAEG;IACa,cAAc,IAAI,MAAM;IAcxC;;;OAGG;IACa,YAAY,IAAI,cAAc;IAQ9C;;OAEG;IACa,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM;CAkB9D;AAMD,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,QAAQ;QAChB;;;WAGG;QACH,GAAG,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAE9D;;WAEG;QACH,MAAM,IAAI,QAAQ,CAAC;KACpB;CACF"}
1
+ {"version":3,"file":"MapTask.d.ts","sourceRoot":"","sources":["../../src/task/MapTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAA4B,MAAM,gBAAgB,CAAC;AAC5F,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQG,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG;IAC/C;;;;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,GAAG,aAAa,CAC5C,SAAQ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC3C,OAAc,IAAI,EAAE,YAAY,CAAa;IAC7C,OAAc,QAAQ,EAAE,MAAM,CAAkB;IAChD,OAAc,KAAK,EAAE,MAAM,CAAS;IACpC,OAAc,WAAW,EAAE,MAAM,CAA4D;WAE/E,YAAY,IAAI,cAAc;IAI5C;;OAEG;IACH,gBAAuB,aAAa,mBAAkB;IAEtD;;OAEG;WACW,WAAW,IAAI,cAAc;IAQ3C;;OAEG;WACW,YAAY,IAAI,cAAc;IAQ5C;;OAEG;IACH,IAAW,aAAa,IAAI,OAAO,CAElC;IAED;;OAEG;IACH,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEe,sBAAsB,IAAI,OAAO;IAIjD;;OAEG;IACa,cAAc,IAAI,MAAM;IAcxC;;;OAGG;IACa,YAAY,IAAI,cAAc;IAQ9C;;OAEG;IACa,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM;CAkB9D;AAMD,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,QAAQ;QAChB;;;WAGG;QACH,GAAG,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAE9D;;WAEG;QACH,MAAM,IAAI,QAAQ,CAAC;KACpB;CACF"}
@@ -24,8 +24,11 @@ export declare const reduceTaskConfigSchema: {
24
24
  };
25
25
  readonly compoundMerge: {
26
26
  readonly type: "string";
27
+ readonly "x-ui-hidden": true;
28
+ };
29
+ readonly id: {
30
+ readonly "x-ui-hidden": true;
27
31
  };
28
- readonly id: {};
29
32
  readonly title: {
30
33
  readonly type: "string";
31
34
  };
@@ -35,19 +38,26 @@ export declare const reduceTaskConfigSchema: {
35
38
  readonly cacheable: {
36
39
  readonly type: "boolean";
37
40
  };
41
+ readonly timeout: {
42
+ readonly type: "number";
43
+ readonly description: "Max execution time in milliseconds";
44
+ };
38
45
  readonly inputSchema: {
39
46
  readonly type: "object";
40
47
  readonly properties: {};
41
48
  readonly additionalProperties: true;
49
+ readonly "x-ui-hidden": true;
42
50
  };
43
51
  readonly outputSchema: {
44
52
  readonly type: "object";
45
53
  readonly properties: {};
46
54
  readonly additionalProperties: true;
55
+ readonly "x-ui-hidden": true;
47
56
  };
48
57
  readonly extras: {
49
58
  readonly type: "object";
50
59
  readonly additionalProperties: true;
60
+ readonly "x-ui-hidden": true;
51
61
  };
52
62
  };
53
63
  readonly additionalProperties: false;
@@ -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,gBAAgB,CAAC;AAErD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOA,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,WAAW,GAAG,OAAO,IAAI,kBAAkB,GAAG;IACzE;;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,MAAM,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAClE,SAAQ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC3C,OAAc,IAAI,EAAE,YAAY,CAAgB;IAChD,OAAc,QAAQ,EAAE,MAAM,CAAkB;IAChD,OAAc,KAAK,EAAE,MAAM,CAAY;IACvC,OAAc,WAAW,EAAE,MAAM,CACqC;WAExD,YAAY,IAAI,cAAc;gBAIhC,KAAK,GAAE,OAAO,CAAC,KAAK,CAAM,EAAE,MAAM,GAAE,OAAO,CAAC,MAAM,CAAM;IAUpE;;OAEG;IACH,IAAW,YAAY,IAAI,MAAM,CAEhC;IAEe,YAAY,IAAI,OAAO;IAIvB,qBAAqB,IAAI,MAAM;IAW/B,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;IAMV,cAAc,IAAI,MAAM;IAIxC;;OAEG;WACW,WAAW,IAAI,cAAc;IAQ3C;;OAEG;WACW,YAAY,IAAI,cAAc;IAQ5C;;OAEG;IACa,YAAY,IAAI,cAAc;CAgC/C;AAMD,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,QAAQ;QAChB;;;WAGG;QACH,MAAM,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzE;;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,gBAAgB,CAAC;AAErD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOA,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,WAAW,GAAG,OAAO,IAAI,kBAAkB,GAAG;IACzE;;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,MAAM,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAClE,SAAQ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC3C,OAAc,IAAI,EAAE,YAAY,CAAgB;IAChD,OAAc,QAAQ,EAAE,MAAM,CAAkB;IAChD,OAAc,KAAK,EAAE,MAAM,CAAY;IACvC,OAAc,WAAW,EAAE,MAAM,CACqC;WAExD,YAAY,IAAI,cAAc;gBAIhC,KAAK,GAAE,OAAO,CAAC,KAAK,CAAM,EAAE,MAAM,GAAE,OAAO,CAAC,MAAM,CAAM;IAUpE;;OAEG;IACH,IAAW,YAAY,IAAI,MAAM,CAEhC;IAEe,YAAY,IAAI,OAAO;IAIvB,qBAAqB,IAAI,MAAM;IAW/B,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;IAMV,cAAc,IAAI,MAAM;IAIxC;;OAEG;WACW,WAAW,IAAI,cAAc;IAQ3C;;OAEG;WACW,YAAY,IAAI,cAAc;IAQ5C;;OAEG;IACa,YAAY,IAAI,cAAc;CAgC/C;AAMD,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,QAAQ;QAChB;;;WAGG;QACH,MAAM,EAAE,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzE;;WAEG;QACH,SAAS,IAAI,QAAQ,CAAC;KACvB;CACF"}
@@ -9,11 +9,12 @@ import type { DataPortSchema, JsonSchema } from "@workglow/util";
9
9
  * - `none`: No streaming (default). `execute()` returns `Promise<Output>`.
10
10
  * - `append`: Each chunk is a delta (e.g., a new token).
11
11
  * - `replace`: Each chunk is a corrected/revised snapshot of the complete output so far.
12
+ * - `object`: Each chunk is a progressively more complete partial object snapshot.
12
13
  *
13
14
  * Declared per-port via the `x-stream` schema extension property.
14
15
  * Absent `x-stream` = `"none"`.
15
16
  */
16
- export type StreamMode = "none" | "append" | "replace";
17
+ export type StreamMode = "none" | "append" | "replace" | "object";
17
18
  /**
18
19
  * Append mode: delta chunk (consumer accumulates).
19
20
  * `port` identifies which output port this delta belongs to.
@@ -24,14 +25,15 @@ export type StreamTextDelta = {
24
25
  textDelta: string;
25
26
  };
26
27
  /**
27
- * Object delta for future structured/object streaming.
28
+ * Object delta for structured/object streaming.
28
29
  * `port` identifies which output port this delta belongs to.
29
- * The exact shape of `objectDelta` is TBD (JSON Merge Patch, partial, etc.).
30
+ * Each `objectDelta` is a progressively more complete partial object snapshot.
31
+ * Consumers should replace (not merge) their state with the latest delta.
30
32
  */
31
33
  export type StreamObjectDelta = {
32
34
  type: "object-delta";
33
35
  port: string;
34
- objectDelta: unknown;
36
+ objectDelta: Record<string, unknown>;
35
37
  };
36
38
  /**
37
39
  * Replace mode: full snapshot chunk (replaces previous state).
@@ -124,4 +126,24 @@ export declare function getAppendPortId(schema: DataPortSchema): string | undefi
124
126
  * @returns true if the edge should accumulate; false if stream can pass through
125
127
  */
126
128
  export declare function edgeNeedsAccumulation(sourceSchema: DataPortSchema, sourcePort: string, targetSchema: DataPortSchema, targetPort: string): boolean;
129
+ /**
130
+ * Returns the port ID (property name) of the first output port that declares
131
+ * `x-stream: "object"`, or `undefined` if no such port exists.
132
+ *
133
+ * @param schema - The task's output DataPortSchema
134
+ * @returns The port name with object streaming, or undefined
135
+ */
136
+ export declare function getObjectPortId(schema: DataPortSchema): string | undefined;
137
+ /**
138
+ * Returns a map of port names to their JSON Schemas for every output port
139
+ * that declares `"x-structured-output": true`.
140
+ *
141
+ * @param schema - The task's output DataPortSchema
142
+ * @returns Map of port-name → JSON Schema for structured output ports
143
+ */
144
+ export declare function getStructuredOutputSchemas(schema: DataPortSchema): Map<string, JsonSchema>;
145
+ /**
146
+ * Returns true if the schema has any output port with `"x-structured-output": true`.
147
+ */
148
+ export declare function hasStructuredOutput(schema: DataPortSchema): boolean;
127
149
  //# sourceMappingURL=StreamTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StreamTypes.d.ts","sourceRoot":"","sources":["../../src/task/StreamTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjE;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEvD;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;IACzD,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;IACvD,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAChD,eAAe,GACf,iBAAiB,GACjB,cAAc,CAAC,MAAM,CAAC,GACtB,YAAY,CAAC,MAAM,CAAC,GACpB,WAAW,CAAC;AAMhB;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAOjG;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,GACrB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAc3C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,cAAc,GAAG,UAAU,CAc5E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,YAAY,IAAI,cAAc,CAAC;IAC/B,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;CACzC,GAAG,OAAO,CAGV;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAU1E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,cAAc,EAC5B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,cAAc,EAC5B,UAAU,EAAE,MAAM,GACjB,OAAO,CAKT"}
1
+ {"version":3,"file":"StreamTypes.d.ts","sourceRoot":"","sources":["../../src/task/StreamTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjE;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElE;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;IACzD,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;IACvD,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAChD,eAAe,GACf,iBAAiB,GACjB,cAAc,CAAC,MAAM,CAAC,GACtB,YAAY,CAAC,MAAM,CAAC,GACpB,WAAW,CAAC;AAMhB;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAOjG;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,GACrB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAc3C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,cAAc,GAAG,UAAU,CAc5E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,YAAY,IAAI,cAAc,CAAC;IAC/B,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;CACzC,GAAG,OAAO,CAGV;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAU1E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,cAAc,EAC5B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,cAAc,EAC5B,UAAU,EAAE,MAAM,GACjB,OAAO,CAKT;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAU1E;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAa1F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAEnE"}
@@ -8,7 +8,7 @@ import { TaskGraph } from "../task-graph/TaskGraph";
8
8
  import type { IExecuteContext, IExecuteReactiveContext, IRunConfig, ITask } from "./ITask";
9
9
  import { TaskError } from "./TaskError";
10
10
  import { type TaskEventListener, type TaskEventListeners, type TaskEventParameters, type TaskEvents } from "./TaskEvents";
11
- import type { JsonTaskItem, TaskGraphItemJson } from "./TaskJSON";
11
+ import type { JsonTaskItem, TaskGraphItemJson, TaskGraphJsonOptions } from "./TaskJSON";
12
12
  import { TaskRunner } from "./TaskRunner";
13
13
  import { TaskStatus, type TaskConfig, type TaskInput, type TaskOutput, type TaskTypeName } from "./TaskTypes";
14
14
  /**
@@ -53,6 +53,11 @@ export declare class Task<Input extends TaskInput = TaskInput, Output extends Ta
53
53
  * forward their additional inputs to their outputs unchanged.
54
54
  */
55
55
  static passthroughInputsToOutputs: boolean;
56
+ /**
57
+ * When true, this task can be saved as a custom task with a preset configuration.
58
+ * Tasks that have meaningful user-facing config options beyond the base fields should set this.
59
+ */
60
+ static customizable: boolean;
56
61
  /**
57
62
  * Input schema for this task
58
63
  */
@@ -160,6 +165,10 @@ export declare class Task<Input extends TaskInput = TaskInput, Output extends Ta
160
165
  * The configuration of the task
161
166
  */
162
167
  config: Config;
168
+ /**
169
+ * Task id from config (read-only).
170
+ */
171
+ get id(): unknown;
163
172
  /**
164
173
  * Runtime configuration (not serialized with the task).
165
174
  * Set via the constructor's third argument or mutated by the graph runner.
@@ -291,12 +300,14 @@ export declare class Task<Input extends TaskInput = TaskInput, Output extends Ta
291
300
  * @param outputSchema - The new output schema (optional, will use current schema if not provided)
292
301
  */
293
302
  protected emitSchemaChange(inputSchema?: DataPortSchema, outputSchema?: DataPortSchema): void;
294
- /**
295
- * The compiled config schema (cached per task type)
296
- */
297
- private static _configSchemaNode;
298
303
  /**
299
304
  * Gets the compiled config schema node, or undefined if no configSchema is defined.
305
+ *
306
+ * The compiled schema is cached directly on the concrete class object (not in a shared
307
+ * inherited Map) so that each subclass always uses its own configSchema() result.
308
+ * A shared Map keyed only by type name can be poisoned if a different class computes
309
+ * and caches the schema first — e.g., due to cross-package static-method resolution
310
+ * inconsistencies in bundled outputs.
300
311
  */
301
312
  private static getConfigSchemaNode;
302
313
  /**
@@ -305,24 +316,18 @@ export declare class Task<Input extends TaskInput = TaskInput, Output extends Ta
305
316
  * Returns config as-is if no configSchema is defined.
306
317
  */
307
318
  private validateAndApplyConfigDefaults;
308
- /**
309
- * The compiled input schema
310
- */
311
- private static _inputSchemaNode;
312
319
  protected static generateInputSchemaNode(schema: DataPortSchema): SchemaNode;
313
320
  /**
314
- * Gets the compiled input schema
321
+ * Gets the compiled input schema, cached per class (not in a shared inherited Map).
322
+ * Uses Object.hasOwn so each subclass stores its own compiled schema and never
323
+ * picks up a stale entry cached by a different class with the same type name.
315
324
  */
316
- protected static getInputSchemaNode(type: TaskTypeName): SchemaNode;
317
- protected getInputSchemaNode(type: TaskTypeName): SchemaNode;
325
+ protected static getInputSchemaNode(): SchemaNode;
326
+ protected getInputSchemaNode(): SchemaNode;
318
327
  /**
319
328
  * Validates an input data object against the task's input schema
320
329
  */
321
330
  validateInput(input: Partial<Input>): Promise<boolean>;
322
- /**
323
- * Gets the task ID from the config
324
- */
325
- id(): unknown;
326
331
  /**
327
332
  * Strips symbol properties from an object to make it serializable
328
333
  * @param obj The object to strip symbols from
@@ -331,14 +336,16 @@ export declare class Task<Input extends TaskInput = TaskInput, Output extends Ta
331
336
  private stripSymbols;
332
337
  /**
333
338
  * Serializes the task and its subtasks into a format that can be stored
339
+ * @param _options Options controlling serialization (used by subclasses)
334
340
  * @returns The serialized task and subtasks
335
341
  */
336
- toJSON(): TaskGraphItemJson;
342
+ toJSON(_options?: TaskGraphJsonOptions): TaskGraphItemJson;
337
343
  /**
338
344
  * Converts the task to a JSON format suitable for dependency tracking
345
+ * @param options Options controlling serialization (used by subclasses)
339
346
  * @returns The task and subtasks in JSON thats easier for humans to read
340
347
  */
341
- toDependencyJSON(): JsonTaskItem;
348
+ toDependencyJSON(options?: TaskGraphJsonOptions): JsonTaskItem;
342
349
  /**
343
350
  * Checks if the task has children. Useful to gate to use of the internal subGraph
344
351
  * as this will return without creating a new graph if graph is non-existent .
@@ -1 +1 @@
1
- {"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../src/task/Task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../src/task/Task.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,15 @@ export declare class TaskAbortedError extends TaskError {
33
33
  static readonly type: string;
34
34
  constructor(message?: string);
35
35
  }
36
+ /**
37
+ * A task error that is caused by a task exceeding its timeout
38
+ *
39
+ * Examples: task.runConfig.timeout exceeded during execution
40
+ */
41
+ export declare class TaskTimeoutError extends TaskAbortedError {
42
+ static readonly type: string;
43
+ constructor(timeoutMs?: number);
44
+ }
36
45
  /**
37
46
  * A task error that is caused by a task failing
38
47
  *
@@ -1 +1 @@
1
- {"version":3,"file":"TaskError.d.ts","sourceRoot":"","sources":["../../src/task/TaskError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,qBAAa,SAAU,SAAQ,SAAS;IACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAe;gBAC/B,OAAO,EAAE,MAAM;CAG5B;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,SAAS;IACnD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAA4B;gBAC5C,OAAO,EAAE,MAAM;CAG5B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAmB;gBACnC,OAAO,EAAE,MAAM;CAG5B;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAsB;gBACtC,OAAO,GAAE,MAAuB;CAG7C;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAqB;gBACrC,OAAO,GAAE,MAAsB;CAG5C;AAED,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAwB;IAC7C,QAAQ,EAAE,QAAQ,CAAC;gBACd,GAAG,EAAE,QAAQ;CAI1B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAmB;gBACnC,OAAO,GAAE,MAA0C;CAGhE;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,SAAS;IAClD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAA2B;gBAC3C,OAAO,GAAE,MAA6B;CAGnD"}
1
+ {"version":3,"file":"TaskError.d.ts","sourceRoot":"","sources":["../../src/task/TaskError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,qBAAa,SAAU,SAAQ,SAAS;IACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAe;gBAC/B,OAAO,EAAE,MAAM;CAG5B;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,SAAS;IACnD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAA4B;gBAC5C,OAAO,EAAE,MAAM;CAG5B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAmB;gBACnC,OAAO,EAAE,MAAM;CAG5B;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAsB;gBACtC,OAAO,GAAE,MAAuB;CAG7C;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;IACpD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAsB;gBACtC,SAAS,CAAC,EAAE,MAAM;CAG/B;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAqB;gBACrC,OAAO,GAAE,MAAsB;CAG5C;AAED,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAwB;IAC7C,QAAQ,EAAE,QAAQ,CAAC;gBACd,GAAG,EAAE,QAAQ;CAI1B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAmB;gBACnC,OAAO,GAAE,MAA0C;CAGhE;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,SAAS;IAClD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAA2B;gBAC3C,OAAO,GAAE,MAA6B;CAGnD"}
@@ -6,14 +6,19 @@
6
6
  import { TaskGraph } from "../task-graph/TaskGraph";
7
7
  import { CompoundMergeStrategy } from "../task-graph/TaskGraphRunner";
8
8
  import { ConditionalTaskConfig } from "./ConditionalTask";
9
+ import { GraphAsTaskConfig } from "./GraphAsTask";
9
10
  import { IteratorTaskConfig } from "./IteratorTask";
11
+ import { JobQueueTaskConfig } from "./JobQueueTask";
12
+ import { MapTaskConfig } from "./MapTask";
13
+ import { ReduceTaskConfig } from "./ReduceTask";
10
14
  import { TaskConfig, TaskInput } from "./TaskTypes";
11
15
  import { WhileTaskConfig } from "./WhileTask";
16
+ import type { ITaskConstructor } from "./ITask";
12
17
  /**
13
18
  * Represents a single task item in the JSON configuration.
14
19
  * This structure defines how tasks should be configured in JSON format.
15
20
  */
16
- export type JsonTaskConfig = Omit<TaskConfig & WhileTaskConfig & IteratorTaskConfig & ConditionalTaskConfig, "id">;
21
+ export type JsonTaskConfig = Omit<TaskConfig & GraphAsTaskConfig & WhileTaskConfig & IteratorTaskConfig & ReduceTaskConfig & MapTaskConfig & ConditionalTaskConfig & JobQueueTaskConfig, "id">;
17
22
  export type JsonTaskItem = {
18
23
  /** Unique identifier for the task */
19
24
  id: unknown;
@@ -60,6 +65,10 @@ export type DataflowJson = {
60
65
  targetTaskId: unknown;
61
66
  targetTaskPortId: string;
62
67
  };
68
+ export interface TaskGraphJsonOptions {
69
+ /** When true, synthetic InputTask/OutputTask boundary nodes are added at each graph level */
70
+ readonly withBoundaryNodes?: boolean;
71
+ }
63
72
  /**
64
73
  * Creates a task instance from a JSON task item configuration
65
74
  * Validates required fields and resolves task type from registry
@@ -76,11 +85,11 @@ export declare const createGraphFromDependencyJSON: (jsonItems: JsonTaskItem[])
76
85
  * @returns A new task instance
77
86
  * @throws Error if required fields are missing or invalid
78
87
  */
79
- export declare const createTaskFromGraphJSON: (item: TaskGraphItemJson) => import("./ITask").ITask<any, any, any>;
88
+ export declare const createTaskFromGraphJSON: (item: TaskGraphItemJson, taskRegistry?: Map<string, ITaskConstructor<any, any, any>>) => import("./ITask").ITask<any, any, any>;
80
89
  /**
81
90
  * Creates a TaskGraph instance from its JSON representation
82
91
  * @param graphJsonObj The JSON representation of the task graph
83
92
  * @returns A new TaskGraph instance with all tasks and data flows
84
93
  */
85
- export declare const createGraphFromGraphJSON: (graphJsonObj: TaskGraphJson) => TaskGraph;
94
+ export declare const createGraphFromGraphJSON: (graphJsonObj: TaskGraphJson, taskRegistry?: Map<string, ITaskConstructor<any, any, any>>) => TaskGraph;
86
95
  //# sourceMappingURL=TaskJSON.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaskJSON.d.ts","sourceRoot":"","sources":["../../src/task/TaskJSON.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,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,GAAG,eAAe,GAAG,kBAAkB,GAAG,qBAAqB,EACzE,IAAI,CACL,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;CAC3B,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;CAC/B,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;AAoBF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GAAI,MAAM,YAAY,2CAS9D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GAAI,WAAW,YAAY,EAAE,cAMtE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,MAAM,iBAAiB,2CAS9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAI,cAAc,aAAa,cAgBnE,CAAC"}
1
+ {"version":3,"file":"TaskJSON.d.ts","sourceRoot":"","sources":["../../src/task/TaskJSON.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { type Taskish } from "../task-graph/Conversions";
9
9
  import { IRunConfig, ITask } from "./ITask";
10
10
  import { ITaskRunner } from "./ITaskRunner";
11
11
  import { type StreamEvent } from "./StreamTypes";
12
+ import { TaskTimeoutError } from "./TaskError";
12
13
  import { TaskConfig, TaskInput, TaskOutput } from "./TaskTypes";
13
14
  /**
14
15
  * Responsible for running tasks
@@ -42,6 +43,17 @@ export declare class TaskRunner<Input extends TaskInput = TaskInput, Output exte
42
43
  * upstream streaming edges. Keyed by input port name.
43
44
  */
44
45
  inputStreams?: Map<string, ReadableStream<StreamEvent>>;
46
+ /**
47
+ * Timer handle for task-level timeout. Set when `IRunConfig.timeout` is
48
+ * provided and cleared on completion, error, or abort.
49
+ */
50
+ protected timeoutTimer?: ReturnType<typeof setTimeout>;
51
+ /**
52
+ * When a timeout triggers the abort, this holds the TaskTimeoutError so
53
+ * handleAbort() can surface the correct error type instead of a generic
54
+ * TaskAbortedError.
55
+ */
56
+ protected pendingTimeoutError?: TaskTimeoutError;
45
57
  /**
46
58
  * Whether the streaming task runner should accumulate text-delta chunks and
47
59
  * emit an enriched finish event. Set from IRunConfig.shouldAccumulate.
@@ -55,6 +67,10 @@ export declare class TaskRunner<Input extends TaskInput = TaskInput, Output exte
55
67
  * @param task The task to run
56
68
  */
57
69
  constructor(task: ITask<Input, Output, Config>);
70
+ /**
71
+ * Returns a label for timing this task's execution.
72
+ */
73
+ protected get timerLabel(): string;
58
74
  /**
59
75
  * Runs the task and returns the output
60
76
  * @param overrides Optional input overrides
@@ -103,6 +119,10 @@ export declare class TaskRunner<Input extends TaskInput = TaskInput, Output exte
103
119
  protected handleStart(config?: IRunConfig): Promise<void>;
104
120
  private updateProgress;
105
121
  protected handleStartReactive(): Promise<void>;
122
+ /**
123
+ * Clears the timeout timer if one is active.
124
+ */
125
+ protected clearTimeoutTimer(): void;
106
126
  /**
107
127
  * Handles task abort
108
128
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/TaskRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskRunner.d.ts","sourceRoot":"","sources":["../../src/task/TaskRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAoC,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAA0B,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAIL,KAAK,WAAW,EAEjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAKL,gBAAgB,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;AAE5E;;;GAGG;AACH,qBAAa,UAAU,CACrB,KAAK,SAAS,SAAS,GAAG,SAAS,EACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,UAAU,GAAG,UAAU,CACtC,YAAW,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAC7C;;OAEG;IACH,SAAS,CAAC,OAAO,UAAS;IAC1B,SAAS,CAAC,eAAe,UAAS;IAElC;;OAEG;IACH,SAAgB,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnD;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAE5C;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAE7C;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAyB;IAE5D;;;;OAIG;IACI,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;IAE/D;;;OAGG;IACH,SAAS,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAEvD;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,CAAC,EAAE,gBAAgB,CAAC;IAEjD;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAQ;IAE3C;;;OAGG;gBACS,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;IAM9C;;OAEG;IACH,SAAS,KAAK,UAAU,IAAI,MAAM,CAEjC;IAMD;;;;;OAKG;IACG,GAAG,CAAC,SAAS,GAAE,OAAO,CAAC,KAAK,CAAM,EAAE,MAAM,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAkEnF;;;;OAIG;IACU,WAAW,CAAC,SAAS,GAAE,OAAO,CAAC,KAAK,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCzE;;OAEG;IACI,KAAK,IAAI,IAAI;IAWpB,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC;IAMnD;;OAEG;cACa,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAUtE;;OAEG;cACa,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlF;;;;;;;;;;;;;;OAcG;cACa,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAqI/E;;OAEG;cACa,WAAW,CAAC,MAAM,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDnE,OAAO,CAAC,cAAc,CAKd;cAEQ,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpD;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAOnC;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;cAa5B,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpD;;OAEG;cACa,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;cAgB/B,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;cAIvC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;;OAGG;cACa,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;cAqBtC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpD;;;;OAIG;cACa,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,IAAI,CAAC;CAKjB"}
@@ -58,11 +58,14 @@ export type TaskTypeName = string;
58
58
  * - inputSchema: dynamic input schema override (for tasks like InputTask)
59
59
  * - outputSchema: dynamic output schema override (for tasks like OutputTask)
60
60
  * - extras: arbitrary user data serialized with the task JSON
61
+ * - timeout: max execution time in milliseconds (auto-aborts with TaskTimeoutError)
61
62
  */
62
63
  export declare const TaskConfigSchema: {
63
64
  readonly type: "object";
64
65
  readonly properties: {
65
- readonly id: {};
66
+ readonly id: {
67
+ readonly "x-ui-hidden": true;
68
+ };
66
69
  readonly title: {
67
70
  readonly type: "string";
68
71
  };
@@ -72,19 +75,26 @@ export declare const TaskConfigSchema: {
72
75
  readonly cacheable: {
73
76
  readonly type: "boolean";
74
77
  };
78
+ readonly timeout: {
79
+ readonly type: "number";
80
+ readonly description: "Max execution time in milliseconds";
81
+ };
75
82
  readonly inputSchema: {
76
83
  readonly type: "object";
77
84
  readonly properties: {};
78
85
  readonly additionalProperties: true;
86
+ readonly "x-ui-hidden": true;
79
87
  };
80
88
  readonly outputSchema: {
81
89
  readonly type: "object";
82
90
  readonly properties: {};
83
91
  readonly additionalProperties: true;
92
+ readonly "x-ui-hidden": true;
84
93
  };
85
94
  readonly extras: {
86
95
  readonly type: "object";
87
96
  readonly additionalProperties: true;
97
+ readonly "x-ui-hidden": true;
88
98
  };
89
99
  };
90
100
  readonly additionalProperties: false;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskTypes.d.ts","sourceRoot":"","sources":["../../src/task/TaskTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,UAAU,GACV,YAAY,GACZ,WAAW,GACX,WAAW,GACX,UAAU,GACV,QAAQ,CAAC;AAEb,eAAO,MAAM,UAAU;IACrB,0CAA0C;;IAE1C,gDAAgD;;IAEhD,gCAAgC;;IAEhC,uDAAuD;;IAEvD,sCAAsC;;IAEtC,8CAA8C;;IAE9C,sBAAsB;;CAE2B,CAAC;AAMpD,MAAM,WAAW,SAAU,SAAQ,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,+BAA+B;AAC/B,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC;AAElC,gCAAgC;AAChC,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC;AAEnC,MAAM,MAAM,kBAAkB,GAC1B;IACE,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB,GACD;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;CAChD,CAAC;AAEN,+BAA+B;AAC/B,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAMlC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAeM,CAAC;AAEpC,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,aAAa,GAAG,cAAc,CAAC,GAAG;IACrF,wDAAwD;IACxD,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,0DAA0D;IAC1D,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,2DAA2D;IAC3D,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B,CAAC;AAEF,uBAAuB;AACvB,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"TaskTypes.d.ts","sourceRoot":"","sources":["../../src/task/TaskTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,UAAU,GACV,YAAY,GACZ,WAAW,GACX,WAAW,GACX,UAAU,GACV,QAAQ,CAAC;AAEb,eAAO,MAAM,UAAU;IACrB,0CAA0C;;IAE1C,gDAAgD;;IAEhD,gCAAgC;;IAEhC,uDAAuD;;IAEvD,sCAAsC;;IAEtC,8CAA8C;;IAE9C,sBAAsB;;CAE2B,CAAC;AAMpD,MAAM,WAAW,SAAU,SAAQ,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,+BAA+B;AAC/B,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC;AAElC,gCAAgC;AAChC,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC;AAEnC,MAAM,MAAM,kBAAkB,GAC1B;IACE,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB,GACD;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;CAChD,CAAC;AAEN,+BAA+B;AAC/B,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAMlC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BM,CAAC;AAEpC,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,aAAa,GAAG,cAAc,CAAC,GAAG;IACrF,wDAAwD;IACxD,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,0DAA0D;IAC1D,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,2DAA2D;IAC3D,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B,CAAC;AAEF,uBAAuB;AACvB,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC"}