@cogitator-ai/workflows 0.5.16 → 0.6.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.
Files changed (146) hide show
  1. package/README.md +339 -772
  2. package/dist/builder.d.ts +5 -4
  3. package/dist/builder.d.ts.map +1 -1
  4. package/dist/builder.js +61 -77
  5. package/dist/builder.js.map +1 -1
  6. package/dist/checkpoint.d.ts.map +1 -1
  7. package/dist/checkpoint.js +23 -16
  8. package/dist/checkpoint.js.map +1 -1
  9. package/dist/executor.d.ts +34 -2
  10. package/dist/executor.d.ts.map +1 -1
  11. package/dist/executor.js +222 -37
  12. package/dist/executor.js.map +1 -1
  13. package/dist/human/approval-store.d.ts +0 -4
  14. package/dist/human/approval-store.d.ts.map +1 -1
  15. package/dist/human/approval-store.js +50 -38
  16. package/dist/human/approval-store.js.map +1 -1
  17. package/dist/human/human-node.d.ts.map +1 -1
  18. package/dist/human/human-node.js +6 -2
  19. package/dist/human/human-node.js.map +1 -1
  20. package/dist/human/notifiers.d.ts +0 -3
  21. package/dist/human/notifiers.d.ts.map +1 -1
  22. package/dist/human/notifiers.js +67 -25
  23. package/dist/human/notifiers.js.map +1 -1
  24. package/dist/index.d.ts +3 -2
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +2 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/manager/scheduler.d.ts.map +1 -1
  29. package/dist/manager/scheduler.js +6 -2
  30. package/dist/manager/scheduler.js.map +1 -1
  31. package/dist/manager/workflow-manager.d.ts +11 -1
  32. package/dist/manager/workflow-manager.d.ts.map +1 -1
  33. package/dist/manager/workflow-manager.js +53 -8
  34. package/dist/manager/workflow-manager.js.map +1 -1
  35. package/dist/nodes/adapters.d.ts +60 -0
  36. package/dist/nodes/adapters.d.ts.map +1 -0
  37. package/dist/nodes/adapters.js +138 -0
  38. package/dist/nodes/adapters.js.map +1 -0
  39. package/dist/nodes/agent.d.ts +0 -15
  40. package/dist/nodes/agent.d.ts.map +1 -1
  41. package/dist/nodes/agent.js +17 -16
  42. package/dist/nodes/agent.js.map +1 -1
  43. package/dist/nodes/base.d.ts +11 -8
  44. package/dist/nodes/base.d.ts.map +1 -1
  45. package/dist/nodes/base.js +0 -3
  46. package/dist/nodes/base.js.map +1 -1
  47. package/dist/nodes/function.d.ts +0 -18
  48. package/dist/nodes/function.d.ts.map +1 -1
  49. package/dist/nodes/function.js +0 -9
  50. package/dist/nodes/function.js.map +1 -1
  51. package/dist/nodes/index.d.ts +1 -3
  52. package/dist/nodes/index.d.ts.map +1 -1
  53. package/dist/nodes/index.js +1 -3
  54. package/dist/nodes/index.js.map +1 -1
  55. package/dist/nodes/tool.d.ts +1 -12
  56. package/dist/nodes/tool.d.ts.map +1 -1
  57. package/dist/nodes/tool.js +4 -9
  58. package/dist/nodes/tool.js.map +1 -1
  59. package/dist/observability/exporters.d.ts +4 -4
  60. package/dist/observability/exporters.d.ts.map +1 -1
  61. package/dist/observability/exporters.js +25 -9
  62. package/dist/observability/exporters.js.map +1 -1
  63. package/dist/observability/index.d.ts +1 -1
  64. package/dist/observability/index.d.ts.map +1 -1
  65. package/dist/observability/index.js +1 -1
  66. package/dist/observability/index.js.map +1 -1
  67. package/dist/observability/metrics.d.ts +0 -21
  68. package/dist/observability/metrics.d.ts.map +1 -1
  69. package/dist/observability/metrics.js +22 -26
  70. package/dist/observability/metrics.js.map +1 -1
  71. package/dist/observability/tracer.d.ts +9 -69
  72. package/dist/observability/tracer.d.ts.map +1 -1
  73. package/dist/observability/tracer.js +82 -125
  74. package/dist/observability/tracer.js.map +1 -1
  75. package/dist/patterns/index.d.ts +0 -13
  76. package/dist/patterns/index.d.ts.map +1 -1
  77. package/dist/patterns/index.js +0 -13
  78. package/dist/patterns/index.js.map +1 -1
  79. package/dist/patterns/map-reduce.d.ts +0 -129
  80. package/dist/patterns/map-reduce.d.ts.map +1 -1
  81. package/dist/patterns/map-reduce.js +63 -92
  82. package/dist/patterns/map-reduce.js.map +1 -1
  83. package/dist/saga/circuit-breaker.d.ts.map +1 -1
  84. package/dist/saga/circuit-breaker.js +5 -2
  85. package/dist/saga/circuit-breaker.js.map +1 -1
  86. package/dist/saga/compensation.d.ts +5 -2
  87. package/dist/saga/compensation.d.ts.map +1 -1
  88. package/dist/saga/compensation.js +49 -44
  89. package/dist/saga/compensation.js.map +1 -1
  90. package/dist/saga/dead-letter.d.ts +3 -0
  91. package/dist/saga/dead-letter.d.ts.map +1 -1
  92. package/dist/saga/dead-letter.js +11 -5
  93. package/dist/saga/dead-letter.js.map +1 -1
  94. package/dist/saga/idempotency.d.ts +1 -1
  95. package/dist/saga/idempotency.d.ts.map +1 -1
  96. package/dist/saga/idempotency.js +46 -13
  97. package/dist/saga/idempotency.js.map +1 -1
  98. package/dist/saga/retry.d.ts +5 -0
  99. package/dist/saga/retry.d.ts.map +1 -1
  100. package/dist/saga/retry.js +48 -29
  101. package/dist/saga/retry.js.map +1 -1
  102. package/dist/scheduler.d.ts +16 -1
  103. package/dist/scheduler.d.ts.map +1 -1
  104. package/dist/scheduler.js +100 -9
  105. package/dist/scheduler.js.map +1 -1
  106. package/dist/subworkflows/index.d.ts +0 -13
  107. package/dist/subworkflows/index.d.ts.map +1 -1
  108. package/dist/subworkflows/index.js +0 -13
  109. package/dist/subworkflows/index.js.map +1 -1
  110. package/dist/subworkflows/parallel-subworkflows.d.ts +1 -77
  111. package/dist/subworkflows/parallel-subworkflows.d.ts.map +1 -1
  112. package/dist/subworkflows/parallel-subworkflows.js +12 -40
  113. package/dist/subworkflows/parallel-subworkflows.js.map +1 -1
  114. package/dist/subworkflows/subworkflow-node.d.ts +1 -82
  115. package/dist/subworkflows/subworkflow-node.d.ts.map +1 -1
  116. package/dist/subworkflows/subworkflow-node.js +42 -41
  117. package/dist/subworkflows/subworkflow-node.js.map +1 -1
  118. package/dist/timers/cron-parser.d.ts.map +1 -1
  119. package/dist/timers/cron-parser.js +32 -10
  120. package/dist/timers/cron-parser.js.map +1 -1
  121. package/dist/timers/timer-manager.d.ts +10 -0
  122. package/dist/timers/timer-manager.d.ts.map +1 -1
  123. package/dist/timers/timer-manager.js +13 -0
  124. package/dist/timers/timer-manager.js.map +1 -1
  125. package/dist/timers/timer-node.d.ts.map +1 -1
  126. package/dist/timers/timer-node.js +1 -0
  127. package/dist/timers/timer-node.js.map +1 -1
  128. package/dist/timers/timer-store.d.ts.map +1 -1
  129. package/dist/timers/timer-store.js +16 -10
  130. package/dist/timers/timer-store.js.map +1 -1
  131. package/dist/triggers/cron-trigger.d.ts +6 -5
  132. package/dist/triggers/cron-trigger.d.ts.map +1 -1
  133. package/dist/triggers/cron-trigger.js +52 -18
  134. package/dist/triggers/cron-trigger.js.map +1 -1
  135. package/dist/triggers/rate-limiter.d.ts +4 -0
  136. package/dist/triggers/rate-limiter.d.ts.map +1 -1
  137. package/dist/triggers/rate-limiter.js +10 -1
  138. package/dist/triggers/rate-limiter.js.map +1 -1
  139. package/dist/triggers/trigger-manager.d.ts.map +1 -1
  140. package/dist/triggers/trigger-manager.js +67 -40
  141. package/dist/triggers/trigger-manager.js.map +1 -1
  142. package/dist/triggers/webhook-trigger.d.ts +1 -0
  143. package/dist/triggers/webhook-trigger.d.ts.map +1 -1
  144. package/dist/triggers/webhook-trigger.js +8 -8
  145. package/dist/triggers/webhook-trigger.js.map +1 -1
  146. package/package.json +4 -4
package/dist/builder.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WorkflowBuilder - Fluent API for constructing workflows
3
3
  */
4
- import type { Workflow, WorkflowState, NodeFn, AddNodeOptions, AddConditionalOptions, AddLoopOptions, AddParallelOptions } from '@cogitator-ai/types';
4
+ import type { Workflow, WorkflowNode, WorkflowState, NodeFn, AddNodeOptions, AddConditionalOptions, AddLoopOptions, AddParallelOptions } from '@cogitator-ai/types';
5
5
  export declare class WorkflowBuilder<S extends WorkflowState = WorkflowState> {
6
6
  private name;
7
7
  private state;
@@ -22,9 +22,10 @@ export declare class WorkflowBuilder<S extends WorkflowState = WorkflowState> {
22
22
  */
23
23
  entryPoint(nodeName: string): this;
24
24
  /**
25
- * Add a node to the workflow
25
+ * Add a node to the workflow. Accepts a node function or a node created by a factory
26
+ * (`agentNode`, `toolNode`, `functionNode`, `customNode`, ...).
26
27
  */
27
- addNode(name: string, fn: NodeFn<S>, options?: AddNodeOptions): this;
28
+ addNode(name: string, node: NodeFn<S> | WorkflowNode<S>, options?: AddNodeOptions): this;
28
29
  /**
29
30
  * Add a conditional routing node
30
31
  */
@@ -38,6 +39,6 @@ export declare class WorkflowBuilder<S extends WorkflowState = WorkflowState> {
38
39
  * Build and validate the workflow
39
40
  */
40
41
  build(): Workflow<S>;
41
- private validate;
42
+ private validateEdges;
42
43
  }
43
44
  //# sourceMappingURL=builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,QAAQ,EAER,aAAa,EACb,MAAM,EAEN,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;AA6B7B,qBAAa,eAAe,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IAClE,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,SAAS,CAAqB;gBAE1B,IAAI,EAAE,MAAM;IAKxB,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAK5B;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAWpE;;OAEG;IACH,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,EAAE,EAC1C,OAAO,CAAC,EAAE,qBAAqB,GAC9B,IAAI;IAUP;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAYpD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAUhF;;OAEG;IACH,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC;IAwKpB,OAAO,CAAC,QAAQ;CAoCjB"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,MAAM,EAEN,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;AA6B7B,qBAAa,eAAe,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IAClE,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,SAAS,CAAqB;gBAE1B,IAAI,EAAE,MAAM;IAKxB,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAK5B;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKlC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAgBxF;;OAEG;IACH,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,EAAE,EAC1C,OAAO,CAAC,EAAE,qBAAqB,GAC9B,IAAI;IAUP;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAYpD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAUhF;;OAEG;IACH,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC;IAiKpB,OAAO,CAAC,aAAa;CAgCtB"}
package/dist/builder.js CHANGED
@@ -35,14 +35,18 @@ export class WorkflowBuilder {
35
35
  return this;
36
36
  }
37
37
  /**
38
- * Add a node to the workflow
38
+ * Add a node to the workflow. Accepts a node function or a node created by a factory
39
+ * (`agentNode`, `toolNode`, `functionNode`, `customNode`, ...).
39
40
  */
40
- addNode(name, fn, options) {
41
+ addNode(name, node, options) {
41
42
  this.registerName(name);
43
+ const fn = typeof node === 'function' ? node : node.fn;
44
+ const nodeConfig = typeof node === 'function' ? undefined : node.config;
45
+ const config = nodeConfig || options?.config ? { ...nodeConfig, ...options?.config } : undefined;
42
46
  this.nodes.push({
43
47
  name,
44
48
  fn,
45
- config: options?.config,
49
+ config,
46
50
  after: options?.after ?? [],
47
51
  });
48
52
  return this;
@@ -115,36 +119,44 @@ export class WorkflowBuilder {
115
119
  config: undefined,
116
120
  });
117
121
  }
118
- const edges = [];
119
122
  const conditionalNames = new Set(this.conditionals.map((c) => c.name));
120
- const loopNames = new Set(this.loops.map((l) => l.name));
121
- const parallelNames = new Set(this.parallels.map((p) => p.name));
122
- for (const node of this.nodes) {
123
- for (const dep of node.after) {
124
- if (conditionalNames.has(dep) || loopNames.has(dep) || parallelNames.has(dep)) {
123
+ const loopsByName = new Map(this.loops.map((l) => [l.name, l]));
124
+ const entries = [
125
+ ...this.nodes,
126
+ ...this.conditionals,
127
+ ...this.loops,
128
+ ...this.parallels,
129
+ ];
130
+ const edges = [];
131
+ const conditionalTargets = new Map();
132
+ const parallelTargets = new Map(this.parallels.map((p) => [p.name, [...p.targets]]));
133
+ for (const entry of entries) {
134
+ for (const dep of entry.after) {
135
+ if (conditionalNames.has(dep)) {
136
+ const targets = conditionalTargets.get(dep) ?? [];
137
+ targets.push(entry.name);
138
+ conditionalTargets.set(dep, targets);
125
139
  continue;
126
140
  }
127
- edges.push({
128
- type: 'sequential',
129
- from: dep,
130
- to: node.name,
131
- });
141
+ const loop = loopsByName.get(dep);
142
+ if (loop) {
143
+ if (entry.name !== loop.back && entry.name !== loop.exit) {
144
+ throw new Error(`'${entry.name}' runs after loop '${dep}' but is neither its back ('${loop.back}') nor exit ('${loop.exit}') node`);
145
+ }
146
+ continue;
147
+ }
148
+ const parallelTargetList = parallelTargets.get(dep);
149
+ if (parallelTargetList) {
150
+ if (!parallelTargetList.includes(entry.name)) {
151
+ parallelTargetList.push(entry.name);
152
+ }
153
+ continue;
154
+ }
155
+ edges.push({ type: 'sequential', from: dep, to: entry.name });
132
156
  }
133
157
  }
134
158
  for (const cond of this.conditionals) {
135
- for (const dep of cond.after) {
136
- edges.push({
137
- type: 'sequential',
138
- from: dep,
139
- to: cond.name,
140
- });
141
- }
142
- const targets = [];
143
- for (const node of this.nodes) {
144
- if (node.after.includes(cond.name)) {
145
- targets.push(node.name);
146
- }
147
- }
159
+ const targets = conditionalTargets.get(cond.name) ?? [];
148
160
  if (targets.length > 0) {
149
161
  edges.push({
150
162
  type: 'conditional',
@@ -155,13 +167,6 @@ export class WorkflowBuilder {
155
167
  }
156
168
  }
157
169
  for (const loop of this.loops) {
158
- for (const dep of loop.after) {
159
- edges.push({
160
- type: 'sequential',
161
- from: dep,
162
- to: loop.name,
163
- });
164
- }
165
170
  edges.push({
166
171
  type: 'loop',
167
172
  from: loop.name,
@@ -171,60 +176,42 @@ export class WorkflowBuilder {
171
176
  });
172
177
  }
173
178
  for (const parallel of this.parallels) {
174
- for (const dep of parallel.after) {
175
- edges.push({
176
- type: 'sequential',
177
- from: dep,
178
- to: parallel.name,
179
- });
180
- }
181
179
  edges.push({
182
180
  type: 'parallel',
183
181
  from: parallel.name,
184
- to: parallel.targets,
182
+ to: parallelTargets.get(parallel.name) ?? [],
185
183
  });
186
184
  }
185
+ this.validateEdges(nodesMap, edges);
187
186
  let entryPoint = this.entryPointName;
188
187
  if (!entryPoint) {
189
- const allDeps = new Set();
190
- for (const node of this.nodes) {
191
- for (const dep of node.after) {
192
- allDeps.add(dep);
193
- }
194
- }
195
- for (const cond of this.conditionals) {
196
- for (const dep of cond.after) {
197
- allDeps.add(dep);
198
- }
188
+ const routedTargets = new Set();
189
+ for (const targets of parallelTargets.values()) {
190
+ for (const target of targets)
191
+ routedTargets.add(target);
199
192
  }
200
- for (const parallel of this.parallels) {
201
- for (const dep of parallel.after) {
202
- allDeps.add(dep);
203
- }
204
- for (const target of parallel.targets) {
205
- allDeps.add(target);
206
- }
193
+ for (const loop of this.loops) {
194
+ routedTargets.add(loop.exit);
207
195
  }
208
- const roots = [];
209
- for (const node of this.nodes) {
210
- if (node.after.length === 0 && !allDeps.has(node.name)) {
211
- roots.push(node.name);
212
- }
196
+ const roots = entries
197
+ .filter((e) => e.after.length === 0 && !routedTargets.has(e.name))
198
+ .map((e) => e.name);
199
+ if (entries.length === 0) {
200
+ throw new Error('Workflow has no nodes');
213
201
  }
214
202
  if (roots.length === 0) {
215
- entryPoint = this.nodes[0]?.name;
216
- }
217
- else if (roots.length === 1) {
218
- entryPoint = roots[0];
203
+ throw new Error('Workflow has no root node (every node depends on another). ' +
204
+ 'Use .entryPoint() to specify where execution starts.');
219
205
  }
220
- else {
221
- entryPoint = roots[0];
206
+ if (roots.length > 1) {
207
+ throw new Error(`Workflow has multiple root nodes: ${roots.join(', ')}. ` +
208
+ 'Use .entryPoint() to specify which one should be the entry point.');
222
209
  }
210
+ entryPoint = roots[0];
223
211
  }
224
- if (!entryPoint) {
225
- throw new Error('Workflow has no nodes');
212
+ if (!nodesMap.has(entryPoint)) {
213
+ throw new Error(`Entry point '${entryPoint}' not found in nodes`);
226
214
  }
227
- this.validate(nodesMap, edges, entryPoint);
228
215
  return {
229
216
  name: this.name,
230
217
  initialState: this.state,
@@ -233,10 +220,7 @@ export class WorkflowBuilder {
233
220
  entryPoint,
234
221
  };
235
222
  }
236
- validate(nodes, edges, entryPoint) {
237
- if (!nodes.has(entryPoint)) {
238
- throw new Error(`Entry point '${entryPoint}' not found in nodes`);
239
- }
223
+ validateEdges(nodes, edges) {
240
224
  for (const edge of edges) {
241
225
  if (!nodes.has(edge.from)) {
242
226
  throw new Error(`Edge references unknown node '${edge.from}'`);
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0CH,MAAM,OAAO,eAAe;IAClB,IAAI,CAAS;IACb,KAAK,CAAI;IACT,KAAK,GAAsB,EAAE,CAAC;IAC9B,YAAY,GAA6B,EAAE,CAAC;IAC5C,KAAK,GAAsB,EAAE,CAAC;IAC9B,SAAS,GAAuB,EAAE,CAAC;IACnC,cAAc,GAAkB,IAAI,CAAC;IACrC,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEtC,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,EAAO,CAAC;IACvB,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,GAAG,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,KAAQ;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,QAAgB;QACzB,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAY,EAAE,EAAa,EAAE,OAAwB;QAC3D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,IAAI;YACJ,EAAE;YACF,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;SAC5B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,IAAY,EACZ,SAA0C,EAC1C,OAA+B;QAE/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,IAAI;YACJ,SAAS;YACT,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;SAC5B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAY,EAAE,OAAuB;QAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,IAAI;YACJ,SAAS,EAAE,OAAO,CAAC,SAAkC;YACrD,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;SAC3B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,OAAiB,EAAE,OAA4B;QACvE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,IAAI;YACJ,OAAO;YACP,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;SAC5B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK;QACH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;QAEpD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC1C,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC1C,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAC1B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC1C,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC7B,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC9E,SAAS;gBACX,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,GAAG;oBACT,EAAE,EAAE,IAAI,CAAC,IAAI;iBACd,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,GAAG;oBACT,EAAE,EAAE,IAAI,CAAC,IAAI;iBACd,CAAC,CAAC;YACL,CAAC;YAED,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,SAAS,EAAE,IAAI,CAAC,SAAkD;oBAClE,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,GAAG;oBACT,EAAE,EAAE,IAAI,CAAC,IAAI;iBACd,CAAC,CAAC;YACL,CAAC;YAED,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,SAAwC;gBACxD,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,GAAG;oBACT,EAAE,EAAE,QAAQ,CAAC,IAAI;iBAClB,CAAC,CAAC;YACL,CAAC;YAED,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,EAAE,EAAE,QAAQ,CAAC,OAAO;aACrB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;QAErC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;YAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC;gBACD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;YACnC,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAE3C,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,IAAI,CAAC,KAAK;YACxB,KAAK,EAAE,QAAQ;YACf,KAAK;YACL,UAAU;SACX,CAAC;IACJ,CAAC;IAEO,QAAQ,CAAC,KAAmC,EAAE,KAAa,EAAE,UAAkB;QACrF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,gBAAgB,UAAU,sBAAsB,CAAC,CAAC;QACpE,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACjE,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxB,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACpC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;oBACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;wBACnB,MAAM,IAAI,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACvC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;wBACvB,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,GAAG,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;gBACtE,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAK/E;;GAEG;AACH,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,WAAW,CAAyC;IAEtD,IAAI,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAKpD,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAUzD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,KAAK,IAAI,IAAI;CAGd;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IACzD,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,CAAC,EAAE,MAAM;YAIhB,eAAe;IAM7B,OAAO,CAAC,WAAW;IAKb,IAAI,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAUpD,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IA0BzD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMxC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C"}
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAK/E;;GAEG;AACH,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,WAAW,CAAyC;IAEtD,IAAI,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAKpD,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAUzD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,KAAK,IAAI,IAAI;CAGd;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IACzD,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,CAAC,EAAE,MAAM;YAIhB,eAAe;IAI7B,OAAO,CAAC,WAAW;IAKb,IAAI,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAgBpD,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IA0BzD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUxC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C"}
@@ -10,17 +10,17 @@ import * as path from 'node:path';
10
10
  export class InMemoryCheckpointStore {
11
11
  checkpoints = new Map();
12
12
  async save(checkpoint) {
13
- this.checkpoints.set(checkpoint.id, { ...checkpoint });
13
+ this.checkpoints.set(checkpoint.id, structuredClone(checkpoint));
14
14
  }
15
15
  async load(id) {
16
16
  const checkpoint = this.checkpoints.get(id);
17
- return checkpoint ? { ...checkpoint } : null;
17
+ return checkpoint ? structuredClone(checkpoint) : null;
18
18
  }
19
19
  async list(workflowName) {
20
20
  const result = [];
21
21
  for (const checkpoint of this.checkpoints.values()) {
22
22
  if (checkpoint.workflowName === workflowName) {
23
- result.push({ ...checkpoint });
23
+ result.push(structuredClone(checkpoint));
24
24
  }
25
25
  }
26
26
  return result.sort((a, b) => b.timestamp - a.timestamp);
@@ -41,10 +41,7 @@ export class FileCheckpointStore {
41
41
  this.directory = directory ?? '.cogitator/checkpoints';
42
42
  }
43
43
  async ensureDirectory() {
44
- try {
45
- await fs.mkdir(this.directory, { recursive: true });
46
- }
47
- catch { }
44
+ await fs.mkdir(this.directory, { recursive: true });
48
45
  }
49
46
  getFilePath(id) {
50
47
  const sanitized = path.basename(id);
@@ -53,17 +50,23 @@ export class FileCheckpointStore {
53
50
  async save(checkpoint) {
54
51
  await this.ensureDirectory();
55
52
  const filePath = this.getFilePath(checkpoint.id);
56
- await fs.writeFile(filePath, JSON.stringify(checkpoint, null, 2), 'utf-8');
53
+ const tmpPath = `${filePath}.tmp`;
54
+ await fs.writeFile(tmpPath, JSON.stringify(checkpoint, null, 2), 'utf-8');
55
+ await fs.rename(tmpPath, filePath);
57
56
  }
58
57
  async load(id) {
58
+ const filePath = this.getFilePath(id);
59
+ let content;
59
60
  try {
60
- const filePath = this.getFilePath(id);
61
- const content = await fs.readFile(filePath, 'utf-8');
62
- return JSON.parse(content);
61
+ content = await fs.readFile(filePath, 'utf-8');
63
62
  }
64
- catch {
65
- return null;
63
+ catch (e) {
64
+ if (e instanceof Error && 'code' in e && e.code === 'ENOENT') {
65
+ return null;
66
+ }
67
+ throw e;
66
68
  }
69
+ return JSON.parse(content);
67
70
  }
68
71
  async list(workflowName) {
69
72
  await this.ensureDirectory();
@@ -91,10 +94,14 @@ export class FileCheckpointStore {
91
94
  }
92
95
  async delete(id) {
93
96
  try {
94
- const filePath = this.getFilePath(id);
95
- await fs.unlink(filePath);
97
+ await fs.unlink(this.getFilePath(id));
98
+ }
99
+ catch (e) {
100
+ if (e instanceof Error && 'code' in e && e.code === 'ENOENT') {
101
+ return;
102
+ }
103
+ throw e;
96
104
  }
97
- catch { }
98
105
  }
99
106
  }
100
107
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,53 @@
1
1
  /**
2
2
  * WorkflowExecutor - Main execution engine for workflows
3
3
  */
4
- import type { Workflow, WorkflowState, WorkflowResult, WorkflowExecuteOptions, StreamingWorkflowEvent, CheckpointStore } from '@cogitator-ai/types';
4
+ import type { Workflow, WorkflowState, WorkflowResult, WorkflowExecuteOptions, StreamingWorkflowEvent, CheckpointStore, RetryConfig, CircuitBreakerConfig, DeadLetterQueue, IdempotencyStore, ApprovalStore, ApprovalNotifier, TimerStore } from '@cogitator-ai/types';
5
5
  import type { Cogitator } from '@cogitator-ai/core';
6
+ import type { WorkflowTracer } from './observability/tracer.js';
7
+ import type { WorkflowMetricsCollector } from './observability/metrics.js';
8
+ export interface ExecutorExecuteOptions extends WorkflowExecuteOptions {
9
+ /** Abort the run; checked between steps and passed to nodes (`ctx.signal`) */
10
+ signal?: AbortSignal;
11
+ /** Emit a workflow span and one span per node execution */
12
+ tracer?: WorkflowTracer;
13
+ /** Record workflow and node executions */
14
+ metricsCollector?: WorkflowMetricsCollector;
15
+ /** Subworkflow nesting depth, exposed to nodes as `ctx.depth` */
16
+ depth?: number;
17
+ /** Retry policy for nodes without their own `config.retries` */
18
+ defaultRetry?: RetryConfig;
19
+ /** Circuit breaker per node name, shared across runs of this executor */
20
+ defaultCircuitBreaker?: CircuitBreakerConfig;
21
+ /** Receives an entry for every node that finally failed */
22
+ deadLetterQueue?: DeadLetterQueue;
23
+ /** Reuse results of nodes that already completed for the same workflow id and step */
24
+ idempotencyStore?: IdempotencyStore;
25
+ /** Defaults for human-in-the-loop nodes (`humanWorkflowNode`) */
26
+ approvalStore?: ApprovalStore;
27
+ approvalNotifier?: ApprovalNotifier;
28
+ /** Default store for persisted timers (`timerWorkflowNode`) */
29
+ timerStore?: TimerStore;
30
+ }
6
31
  export declare class NodeExecutionError extends Error {
7
32
  readonly nodeName: string;
8
33
  constructor(nodeName: string, cause: Error);
9
34
  }
35
+ export declare class NodeTimeoutError extends Error {
36
+ readonly nodeName: string;
37
+ readonly timeoutMs: number;
38
+ constructor(nodeName: string, timeoutMs: number);
39
+ }
10
40
  export declare class WorkflowExecutor {
11
41
  private cogitator;
12
42
  private checkpointStore;
13
43
  private scheduler;
44
+ private breakers;
14
45
  constructor(cogitator: Cogitator, checkpointStore?: CheckpointStore);
15
46
  /**
16
47
  * Execute a workflow
17
48
  */
18
- execute<S extends WorkflowState>(workflow: Workflow<S>, input?: Partial<S>, options?: WorkflowExecuteOptions): Promise<WorkflowResult<S>>;
49
+ execute<S extends WorkflowState>(workflow: Workflow<S>, input?: Partial<S>, options?: ExecutorExecuteOptions): Promise<WorkflowResult<S>>;
50
+ private getBreaker;
19
51
  /**
20
52
  * Resume a workflow from a checkpoint
21
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EAIhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAQpD,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAM3C;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,SAAS,CAAoB;gBAEzB,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,eAAe;IAMnE;;OAEG;IACG,OAAO,CAAC,CAAC,SAAS,aAAa,EACnC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAsL7B;;OAEG;IACG,MAAM,CAAC,CAAC,SAAS,aAAa,EAClC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAqC7B;;OAEG;IACI,MAAM,CAAC,CAAC,SAAS,aAAa,EACnC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,OAAO,CAAC,EAAE,IAAI,CACZ,sBAAsB,EACtB,aAAa,GAAG,gBAAgB,GAAG,aAAa,GAAG,gBAAgB,CACpE,GACA,aAAa,CAAC,sBAAsB,CAAC;CAsEzC"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EAKf,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAKpD,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAKxE,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,8EAA8E;IAC9E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,yEAAyE;IACzE,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;IAC7C,2DAA2D;IAC3D,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,iEAAiE;IACjE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,+DAA+D;IAC/D,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAKD,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;CAM3C;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMhD;AAgHD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,QAAQ,CAAuD;gBAE3D,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,eAAe;IAMnE;;OAEG;IACG,OAAO,CAAC,CAAC,SAAS,aAAa,EACnC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAoR7B,OAAO,CAAC,UAAU;IASlB;;OAEG;IACG,MAAM,CAAC,CAAC,SAAS,aAAa,EAClC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAqC7B;;OAEG;IACI,MAAM,CAAC,CAAC,SAAS,aAAa,EACnC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,OAAO,CAAC,EAAE,IAAI,CACZ,sBAAsB,EACtB,aAAa,GAAG,gBAAgB,GAAG,aAAa,GAAG,gBAAgB,CACpE,GACA,aAAa,CAAC,sBAAsB,CAAC;CAsEzC"}