@cogitator-ai/workflows 0.1.0

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 (179) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +97 -0
  3. package/dist/builder.d.ts +39 -0
  4. package/dist/builder.d.ts.map +1 -0
  5. package/dist/builder.js +224 -0
  6. package/dist/builder.js.map +1 -0
  7. package/dist/checkpoint.d.ts +33 -0
  8. package/dist/checkpoint.d.ts.map +1 -0
  9. package/dist/checkpoint.js +108 -0
  10. package/dist/checkpoint.js.map +1 -0
  11. package/dist/executor.d.ts +24 -0
  12. package/dist/executor.d.ts.map +1 -0
  13. package/dist/executor.js +207 -0
  14. package/dist/executor.js.map +1 -0
  15. package/dist/human/approval-store.d.ts +95 -0
  16. package/dist/human/approval-store.d.ts.map +1 -0
  17. package/dist/human/approval-store.js +377 -0
  18. package/dist/human/approval-store.js.map +1 -0
  19. package/dist/human/human-node.d.ts +104 -0
  20. package/dist/human/human-node.d.ts.map +1 -0
  21. package/dist/human/human-node.js +342 -0
  22. package/dist/human/human-node.js.map +1 -0
  23. package/dist/human/index.d.ts +17 -0
  24. package/dist/human/index.d.ts.map +1 -0
  25. package/dist/human/index.js +17 -0
  26. package/dist/human/index.js.map +1 -0
  27. package/dist/human/notifiers.d.ts +85 -0
  28. package/dist/human/notifiers.d.ts.map +1 -0
  29. package/dist/human/notifiers.js +289 -0
  30. package/dist/human/notifiers.js.map +1 -0
  31. package/dist/index.d.ts +32 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +19 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/manager/index.d.ts +19 -0
  36. package/dist/manager/index.d.ts.map +1 -0
  37. package/dist/manager/index.js +17 -0
  38. package/dist/manager/index.js.map +1 -0
  39. package/dist/manager/run-store.d.ts +78 -0
  40. package/dist/manager/run-store.d.ts.map +1 -0
  41. package/dist/manager/run-store.js +390 -0
  42. package/dist/manager/run-store.js.map +1 -0
  43. package/dist/manager/scheduler.d.ts +159 -0
  44. package/dist/manager/scheduler.d.ts.map +1 -0
  45. package/dist/manager/scheduler.js +355 -0
  46. package/dist/manager/scheduler.js.map +1 -0
  47. package/dist/manager/workflow-manager.d.ts +114 -0
  48. package/dist/manager/workflow-manager.d.ts.map +1 -0
  49. package/dist/manager/workflow-manager.js +460 -0
  50. package/dist/manager/workflow-manager.js.map +1 -0
  51. package/dist/nodes/agent.d.ts +24 -0
  52. package/dist/nodes/agent.d.ts.map +1 -0
  53. package/dist/nodes/agent.js +37 -0
  54. package/dist/nodes/agent.js.map +1 -0
  55. package/dist/nodes/base.d.ts +12 -0
  56. package/dist/nodes/base.d.ts.map +1 -0
  57. package/dist/nodes/base.js +5 -0
  58. package/dist/nodes/base.js.map +1 -0
  59. package/dist/nodes/function.d.ts +27 -0
  60. package/dist/nodes/function.d.ts.map +1 -0
  61. package/dist/nodes/function.js +29 -0
  62. package/dist/nodes/function.js.map +1 -0
  63. package/dist/nodes/index.d.ts +8 -0
  64. package/dist/nodes/index.d.ts.map +1 -0
  65. package/dist/nodes/index.js +8 -0
  66. package/dist/nodes/index.js.map +1 -0
  67. package/dist/nodes/tool.d.ts +19 -0
  68. package/dist/nodes/tool.d.ts.map +1 -0
  69. package/dist/nodes/tool.js +26 -0
  70. package/dist/nodes/tool.js.map +1 -0
  71. package/dist/observability/exporters.d.ts +93 -0
  72. package/dist/observability/exporters.d.ts.map +1 -0
  73. package/dist/observability/exporters.js +330 -0
  74. package/dist/observability/exporters.js.map +1 -0
  75. package/dist/observability/index.d.ts +17 -0
  76. package/dist/observability/index.d.ts.map +1 -0
  77. package/dist/observability/index.js +17 -0
  78. package/dist/observability/index.js.map +1 -0
  79. package/dist/observability/metrics.d.ts +114 -0
  80. package/dist/observability/metrics.d.ts.map +1 -0
  81. package/dist/observability/metrics.js +435 -0
  82. package/dist/observability/metrics.js.map +1 -0
  83. package/dist/observability/span-attributes.d.ts +95 -0
  84. package/dist/observability/span-attributes.d.ts.map +1 -0
  85. package/dist/observability/span-attributes.js +142 -0
  86. package/dist/observability/span-attributes.js.map +1 -0
  87. package/dist/observability/tracer.d.ts +110 -0
  88. package/dist/observability/tracer.d.ts.map +1 -0
  89. package/dist/observability/tracer.js +409 -0
  90. package/dist/observability/tracer.js.map +1 -0
  91. package/dist/patterns/index.d.ts +15 -0
  92. package/dist/patterns/index.d.ts.map +1 -0
  93. package/dist/patterns/index.js +15 -0
  94. package/dist/patterns/index.js.map +1 -0
  95. package/dist/patterns/map-reduce.d.ts +223 -0
  96. package/dist/patterns/map-reduce.d.ts.map +1 -0
  97. package/dist/patterns/map-reduce.js +378 -0
  98. package/dist/patterns/map-reduce.js.map +1 -0
  99. package/dist/saga/circuit-breaker.d.ts +153 -0
  100. package/dist/saga/circuit-breaker.d.ts.map +1 -0
  101. package/dist/saga/circuit-breaker.js +306 -0
  102. package/dist/saga/circuit-breaker.js.map +1 -0
  103. package/dist/saga/compensation.d.ts +134 -0
  104. package/dist/saga/compensation.d.ts.map +1 -0
  105. package/dist/saga/compensation.js +240 -0
  106. package/dist/saga/compensation.js.map +1 -0
  107. package/dist/saga/dead-letter.d.ts +113 -0
  108. package/dist/saga/dead-letter.d.ts.map +1 -0
  109. package/dist/saga/dead-letter.js +307 -0
  110. package/dist/saga/dead-letter.js.map +1 -0
  111. package/dist/saga/idempotency.d.ts +95 -0
  112. package/dist/saga/idempotency.d.ts.map +1 -0
  113. package/dist/saga/idempotency.js +266 -0
  114. package/dist/saga/idempotency.js.map +1 -0
  115. package/dist/saga/index.d.ts +16 -0
  116. package/dist/saga/index.d.ts.map +1 -0
  117. package/dist/saga/index.js +16 -0
  118. package/dist/saga/index.js.map +1 -0
  119. package/dist/saga/retry.d.ts +59 -0
  120. package/dist/saga/retry.d.ts.map +1 -0
  121. package/dist/saga/retry.js +222 -0
  122. package/dist/saga/retry.js.map +1 -0
  123. package/dist/scheduler.d.ts +37 -0
  124. package/dist/scheduler.d.ts.map +1 -0
  125. package/dist/scheduler.js +151 -0
  126. package/dist/scheduler.js.map +1 -0
  127. package/dist/subworkflows/index.d.ts +16 -0
  128. package/dist/subworkflows/index.d.ts.map +1 -0
  129. package/dist/subworkflows/index.js +16 -0
  130. package/dist/subworkflows/index.js.map +1 -0
  131. package/dist/subworkflows/parallel-subworkflows.d.ts +139 -0
  132. package/dist/subworkflows/parallel-subworkflows.d.ts.map +1 -0
  133. package/dist/subworkflows/parallel-subworkflows.js +270 -0
  134. package/dist/subworkflows/parallel-subworkflows.js.map +1 -0
  135. package/dist/subworkflows/subworkflow-node.d.ts +136 -0
  136. package/dist/subworkflows/subworkflow-node.d.ts.map +1 -0
  137. package/dist/subworkflows/subworkflow-node.js +164 -0
  138. package/dist/subworkflows/subworkflow-node.js.map +1 -0
  139. package/dist/timers/cron-parser.d.ts +110 -0
  140. package/dist/timers/cron-parser.d.ts.map +1 -0
  141. package/dist/timers/cron-parser.js +412 -0
  142. package/dist/timers/cron-parser.js.map +1 -0
  143. package/dist/timers/index.d.ts +18 -0
  144. package/dist/timers/index.d.ts.map +1 -0
  145. package/dist/timers/index.js +18 -0
  146. package/dist/timers/index.js.map +1 -0
  147. package/dist/timers/timer-manager.d.ts +219 -0
  148. package/dist/timers/timer-manager.d.ts.map +1 -0
  149. package/dist/timers/timer-manager.js +351 -0
  150. package/dist/timers/timer-manager.js.map +1 -0
  151. package/dist/timers/timer-node.d.ts +144 -0
  152. package/dist/timers/timer-node.d.ts.map +1 -0
  153. package/dist/timers/timer-node.js +246 -0
  154. package/dist/timers/timer-node.js.map +1 -0
  155. package/dist/timers/timer-store.d.ts +90 -0
  156. package/dist/timers/timer-store.d.ts.map +1 -0
  157. package/dist/timers/timer-store.js +357 -0
  158. package/dist/timers/timer-store.js.map +1 -0
  159. package/dist/triggers/cron-trigger.d.ts +102 -0
  160. package/dist/triggers/cron-trigger.d.ts.map +1 -0
  161. package/dist/triggers/cron-trigger.js +309 -0
  162. package/dist/triggers/cron-trigger.js.map +1 -0
  163. package/dist/triggers/index.d.ts +14 -0
  164. package/dist/triggers/index.d.ts.map +1 -0
  165. package/dist/triggers/index.js +10 -0
  166. package/dist/triggers/index.js.map +1 -0
  167. package/dist/triggers/rate-limiter.d.ts +130 -0
  168. package/dist/triggers/rate-limiter.d.ts.map +1 -0
  169. package/dist/triggers/rate-limiter.js +294 -0
  170. package/dist/triggers/rate-limiter.js.map +1 -0
  171. package/dist/triggers/trigger-manager.d.ts +166 -0
  172. package/dist/triggers/trigger-manager.d.ts.map +1 -0
  173. package/dist/triggers/trigger-manager.js +436 -0
  174. package/dist/triggers/trigger-manager.js.map +1 -0
  175. package/dist/triggers/webhook-trigger.d.ts +150 -0
  176. package/dist/triggers/webhook-trigger.d.ts.map +1 -0
  177. package/dist/triggers/webhook-trigger.js +452 -0
  178. package/dist/triggers/webhook-trigger.js.map +1 -0
  179. package/package.json +44 -0
@@ -0,0 +1,355 @@
1
+ /**
2
+ * Workflow Scheduler
3
+ *
4
+ * Features:
5
+ * - Priority queue for pending runs
6
+ * - Cron-based scheduling
7
+ * - Delayed execution
8
+ * - Concurrency control
9
+ */
10
+ import { nanoid } from 'nanoid';
11
+ import { getNextCronOccurrence, validateCronExpression, } from '../timers/cron-parser';
12
+ /**
13
+ * Priority queue implementation using a heap
14
+ */
15
+ export class PriorityQueue {
16
+ items = [];
17
+ /**
18
+ * Add item to queue (sorted by scheduledFor then priority)
19
+ */
20
+ enqueue(item) {
21
+ this.items.push(item);
22
+ this.bubbleUp(this.items.length - 1);
23
+ }
24
+ /**
25
+ * Remove and return highest priority item
26
+ */
27
+ dequeue() {
28
+ if (this.items.length === 0)
29
+ return undefined;
30
+ if (this.items.length === 1)
31
+ return this.items.pop();
32
+ const result = this.items[0];
33
+ this.items[0] = this.items.pop();
34
+ this.bubbleDown(0);
35
+ return result;
36
+ }
37
+ /**
38
+ * Peek at highest priority item without removing
39
+ */
40
+ peek() {
41
+ return this.items[0];
42
+ }
43
+ /**
44
+ * Remove item by runId
45
+ */
46
+ remove(runId) {
47
+ const index = this.items.findIndex((item) => item.runId === runId);
48
+ if (index === -1)
49
+ return false;
50
+ if (index === this.items.length - 1) {
51
+ this.items.pop();
52
+ }
53
+ else {
54
+ this.items[index] = this.items.pop();
55
+ this.bubbleDown(index);
56
+ this.bubbleUp(index);
57
+ }
58
+ return true;
59
+ }
60
+ /**
61
+ * Get items ready to execute (scheduledFor <= now)
62
+ */
63
+ getReady(now = Date.now()) {
64
+ const ready = [];
65
+ while (this.items.length > 0) {
66
+ const top = this.items[0];
67
+ if (top.scheduledFor > now)
68
+ break;
69
+ ready.push(this.dequeue());
70
+ }
71
+ return ready;
72
+ }
73
+ /**
74
+ * Get queue size
75
+ */
76
+ size() {
77
+ return this.items.length;
78
+ }
79
+ /**
80
+ * Clear the queue
81
+ */
82
+ clear() {
83
+ this.items = [];
84
+ }
85
+ /**
86
+ * Get all items (for inspection)
87
+ */
88
+ getAll() {
89
+ return [...this.items];
90
+ }
91
+ bubbleUp(index) {
92
+ while (index > 0) {
93
+ const parentIndex = Math.floor((index - 1) / 2);
94
+ if (this.compare(this.items[index], this.items[parentIndex]) >= 0)
95
+ break;
96
+ [this.items[index], this.items[parentIndex]] = [
97
+ this.items[parentIndex],
98
+ this.items[index],
99
+ ];
100
+ index = parentIndex;
101
+ }
102
+ }
103
+ bubbleDown(index) {
104
+ while (true) {
105
+ const leftChild = 2 * index + 1;
106
+ const rightChild = 2 * index + 2;
107
+ let smallest = index;
108
+ if (leftChild < this.items.length &&
109
+ this.compare(this.items[leftChild], this.items[smallest]) < 0) {
110
+ smallest = leftChild;
111
+ }
112
+ if (rightChild < this.items.length &&
113
+ this.compare(this.items[rightChild], this.items[smallest]) < 0) {
114
+ smallest = rightChild;
115
+ }
116
+ if (smallest === index)
117
+ break;
118
+ [this.items[index], this.items[smallest]] = [
119
+ this.items[smallest],
120
+ this.items[index],
121
+ ];
122
+ index = smallest;
123
+ }
124
+ }
125
+ compare(a, b) {
126
+ if (a.scheduledFor !== b.scheduledFor) {
127
+ return a.scheduledFor - b.scheduledFor;
128
+ }
129
+ return a.priority - b.priority;
130
+ }
131
+ }
132
+ /**
133
+ * Job scheduler for workflow runs
134
+ */
135
+ export class JobScheduler {
136
+ queue = new PriorityQueue();
137
+ cronJobs = new Map();
138
+ runStore;
139
+ maxConcurrency;
140
+ pollInterval;
141
+ onRunReady;
142
+ runningCount = 0;
143
+ pollTimer;
144
+ disposed = false;
145
+ constructor(config) {
146
+ this.runStore = config.runStore;
147
+ this.maxConcurrency = config.maxConcurrency ?? Infinity;
148
+ this.pollInterval = config.pollInterval ?? 1000;
149
+ this.onRunReady = config.onRunReady;
150
+ }
151
+ /**
152
+ * Start the scheduler
153
+ */
154
+ start() {
155
+ if (this.pollTimer)
156
+ return;
157
+ this.pollTimer = setInterval(() => {
158
+ this.tick();
159
+ }, this.pollInterval);
160
+ this.tick();
161
+ }
162
+ /**
163
+ * Stop the scheduler
164
+ */
165
+ stop() {
166
+ if (this.pollTimer) {
167
+ clearInterval(this.pollTimer);
168
+ this.pollTimer = undefined;
169
+ }
170
+ }
171
+ /**
172
+ * Schedule a workflow run
173
+ */
174
+ async scheduleRun(workflow, options = {}) {
175
+ const runId = nanoid();
176
+ const now = Date.now();
177
+ let scheduledFor = now;
178
+ if (options.at) {
179
+ scheduledFor = options.at;
180
+ }
181
+ else if (options.cron) {
182
+ validateCronExpression(options.cron);
183
+ scheduledFor = getNextCronOccurrence(options.cron, {
184
+ currentDate: new Date(),
185
+ timezone: options.timezone,
186
+ }).getTime();
187
+ }
188
+ const run = {
189
+ id: runId,
190
+ workflowName: workflow.name,
191
+ status: scheduledFor > now ? 'scheduled' : 'pending',
192
+ state: options.input ?? {},
193
+ input: options.input,
194
+ currentNodes: [],
195
+ completedNodes: [],
196
+ failedNodes: [],
197
+ scheduledFor: scheduledFor > now ? scheduledFor : undefined,
198
+ priority: options.priority ?? 0,
199
+ tags: options.tags ?? [],
200
+ triggerId: options.triggerId,
201
+ traceId: options.traceContext?.traceId,
202
+ metadata: {
203
+ baggage: options.baggage,
204
+ timeout: options.timeout,
205
+ maxRetries: options.maxRetries,
206
+ },
207
+ };
208
+ await this.runStore.save(run);
209
+ this.queue.enqueue({
210
+ runId,
211
+ workflowName: workflow.name,
212
+ priority: options.priority ?? 0,
213
+ scheduledFor,
214
+ });
215
+ return runId;
216
+ }
217
+ /**
218
+ * Register a cron-based recurring job
219
+ */
220
+ registerCronJob(workflow, expression, options = {}) {
221
+ validateCronExpression(expression);
222
+ const jobId = options.id ?? nanoid();
223
+ const nextRun = getNextCronOccurrence(expression, {
224
+ currentDate: new Date(),
225
+ timezone: options.timezone,
226
+ }).getTime();
227
+ const job = {
228
+ id: jobId,
229
+ workflowName: workflow.name,
230
+ workflow: workflow,
231
+ expression,
232
+ timezone: options.timezone,
233
+ options: options.jobOptions,
234
+ nextRun,
235
+ enabled: true,
236
+ };
237
+ this.cronJobs.set(jobId, job);
238
+ return jobId;
239
+ }
240
+ /**
241
+ * Unregister a cron job
242
+ */
243
+ unregisterCronJob(jobId) {
244
+ return this.cronJobs.delete(jobId);
245
+ }
246
+ /**
247
+ * Enable/disable a cron job
248
+ */
249
+ setCronJobEnabled(jobId, enabled) {
250
+ const job = this.cronJobs.get(jobId);
251
+ if (!job)
252
+ return false;
253
+ job.enabled = enabled;
254
+ if (enabled) {
255
+ job.nextRun = getNextCronOccurrence(job.expression, {
256
+ currentDate: new Date(),
257
+ timezone: job.timezone,
258
+ }).getTime();
259
+ }
260
+ return true;
261
+ }
262
+ /**
263
+ * Cancel a scheduled run
264
+ */
265
+ async cancelRun(runId, reason) {
266
+ const run = await this.runStore.get(runId);
267
+ if (!run)
268
+ return false;
269
+ if (run.status !== 'scheduled' && run.status !== 'pending') {
270
+ return false;
271
+ }
272
+ this.queue.remove(runId);
273
+ await this.runStore.update(runId, {
274
+ status: 'cancelled',
275
+ completedAt: Date.now(),
276
+ error: reason ? { name: 'CancelError', message: reason } : undefined,
277
+ });
278
+ return true;
279
+ }
280
+ /**
281
+ * Mark run as started
282
+ */
283
+ runStarted(_runId) {
284
+ this.runningCount++;
285
+ }
286
+ /**
287
+ * Mark run as completed
288
+ */
289
+ runCompleted(_runId) {
290
+ this.runningCount = Math.max(0, this.runningCount - 1);
291
+ }
292
+ /**
293
+ * Get queue size
294
+ */
295
+ getQueueSize() {
296
+ return this.queue.size();
297
+ }
298
+ /**
299
+ * Get running count
300
+ */
301
+ getRunningCount() {
302
+ return this.runningCount;
303
+ }
304
+ /**
305
+ * Get all cron jobs
306
+ */
307
+ getCronJobs() {
308
+ return Array.from(this.cronJobs.values());
309
+ }
310
+ /**
311
+ * Dispose the scheduler
312
+ */
313
+ dispose() {
314
+ this.disposed = true;
315
+ this.stop();
316
+ this.queue.clear();
317
+ this.cronJobs.clear();
318
+ }
319
+ tick() {
320
+ if (this.disposed)
321
+ return;
322
+ const now = Date.now();
323
+ for (const job of this.cronJobs.values()) {
324
+ if (!job.enabled)
325
+ continue;
326
+ if (job.nextRun <= now) {
327
+ this.scheduleRun(job.workflow, {
328
+ ...job.options,
329
+ triggerId: `cron:${job.id}`,
330
+ });
331
+ job.nextRun = getNextCronOccurrence(job.expression, {
332
+ currentDate: new Date(now + 1000),
333
+ timezone: job.timezone,
334
+ }).getTime();
335
+ }
336
+ }
337
+ if (this.runningCount >= this.maxConcurrency)
338
+ return;
339
+ const ready = this.queue.getReady(now);
340
+ for (const item of ready) {
341
+ if (this.runningCount >= this.maxConcurrency) {
342
+ this.queue.enqueue(item);
343
+ break;
344
+ }
345
+ this.onRunReady?.(item.runId);
346
+ }
347
+ }
348
+ }
349
+ /**
350
+ * Create a job scheduler
351
+ */
352
+ export function createJobScheduler(config) {
353
+ return new JobScheduler(config);
354
+ }
355
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/manager/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQhC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAsB/B;;GAEG;AACH,MAAM,OAAO,aAAa;IAChB,KAAK,GAAgB,EAAE,CAAC;IAEhC;;OAEG;IACH,OAAO,CAAC,IAAe;QACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAErD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAG,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAa;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QACnE,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAE/B,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAG,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;QAC/B,MAAM,KAAK,GAAgB,EAAE,CAAC;QAE9B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,YAAY,GAAG,GAAG;gBAAE,MAAM;YAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAG,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC5B,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;gBAAE,MAAM;YAEzE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG;gBAC7C,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;aAClB,CAAC;YACF,KAAK,GAAG,WAAW,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,KAAa;QAC9B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YAChC,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YACjC,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,IACE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;gBAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAC7D,CAAC;gBACD,QAAQ,GAAG,SAAS,CAAC;YACvB,CAAC;YAED,IACE,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;gBAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAC9D,CAAC;gBACD,QAAQ,GAAG,UAAU,CAAC;YACxB,CAAC;YAED,IAAI,QAAQ,KAAK,KAAK;gBAAE,MAAM;YAE9B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG;gBAC1C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;aAClB,CAAC;YACF,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,CAAY,EAAE,CAAY;QACxC,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,YAAY,EAAE,CAAC;YACtC,OAAO,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;QACzC,CAAC;QACD,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IACjC,CAAC;CACF;AAgBD;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;IAC5B,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IACtC,QAAQ,CAAW;IACnB,cAAc,CAAS;IACvB,YAAY,CAAS;IACrB,UAAU,CAA2B;IACrC,YAAY,GAAG,CAAC,CAAC;IACjB,SAAS,CAAkC;IAC3C,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAAY,MAAuB;QACjC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,QAAQ,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAE3B,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAEtB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,QAAqB,EACrB,UAA2B,EAAE;QAE7B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,YAAY,GAAG,GAAG,CAAC;QACvB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YACf,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC;QAC5B,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACxB,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrC,YAAY,GAAG,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE;gBACjD,WAAW,EAAE,IAAI,IAAI,EAAE;gBACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,CAAC,CAAC,OAAO,EAAE,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAAgB;YACvB,EAAE,EAAE,KAAK;YACT,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,MAAM,EAAE,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YACpD,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,YAAY,EAAE,EAAE;YAChB,cAAc,EAAE,EAAE;YAClB,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;YAC3D,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;YAC/B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO;YACtC,QAAQ,EAAE;gBACR,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B;SACF,CAAC;QAEF,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACjB,KAAK;YACL,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;YAC/B,YAAY;SACb,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,eAAe,CACb,QAAqB,EACrB,UAAkB,EAClB,UAII,EAAE;QAEN,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAEnC,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,EAAE;YAChD,WAAW,EAAE,IAAI,IAAI,EAAE;YACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC,OAAO,EAAE,CAAC;QAEb,MAAM,GAAG,GAAY;YACnB,EAAE,EAAE,KAAK;YACT,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,QAAQ,EAAE,QAA8C;YACxD,UAAU;YACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,UAAU;YAC3B,OAAO;YACP,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAa;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAa,EAAE,OAAgB;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAEvB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;QACtB,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,CAAC,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,UAAU,EAAE;gBAClD,WAAW,EAAE,IAAI,IAAI,EAAE;gBACvB,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB,CAAC,CAAC,OAAO,EAAE,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,MAAe;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAEvB,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEzB,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE;YAChC,MAAM,EAAE,WAAW;YACnB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;YACvB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;SACrE,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAc;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAc;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAEO,IAAI;QACV,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,OAAO;gBAAE,SAAS;YAE3B,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAC7B,GAAG,GAAG,CAAC,OAAO;oBACd,SAAS,EAAE,QAAQ,GAAG,CAAC,EAAE,EAAE;iBAC5B,CAAC,CAAC;gBAEH,GAAG,CAAC,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,UAAU,EAAE;oBAClD,WAAW,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;oBACjC,QAAQ,EAAE,GAAG,CAAC,QAAQ;iBACvB,CAAC,CAAC,OAAO,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAErD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM;YACR,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAuB;IACxD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Workflow Manager
3
+ *
4
+ * Features:
5
+ * - Schedule workflows for later execution
6
+ * - Execute workflows immediately
7
+ * - Cancel, pause, resume, retry runs
8
+ * - Replay from specific nodes
9
+ * - Query run status and history
10
+ * - Cleanup old runs
11
+ */
12
+ import type { Workflow, WorkflowState, WorkflowResult, WorkflowRun, WorkflowRunFilters, WorkflowRunStats, WorkflowManager as IWorkflowManager, ScheduleOptions, WorkflowExecuteOptionsV2, RunStore, CheckpointStore } from '@cogitator-ai/types';
13
+ import type { Cogitator } from '@cogitator-ai/core';
14
+ /**
15
+ * Workflow manager configuration
16
+ */
17
+ export interface WorkflowManagerConfig {
18
+ cogitator: Cogitator;
19
+ runStore?: RunStore;
20
+ checkpointStore?: CheckpointStore;
21
+ maxConcurrency?: number;
22
+ defaultTimeout?: number;
23
+ onRunStateChange?: (run: WorkflowRun) => void;
24
+ }
25
+ /**
26
+ * Workflow manager implementation
27
+ */
28
+ export declare class DefaultWorkflowManager implements IWorkflowManager {
29
+ private cogitator;
30
+ private runStore;
31
+ private checkpointStore?;
32
+ private scheduler;
33
+ private executor;
34
+ private workflows;
35
+ private activeRuns;
36
+ private stateChangeCallbacks;
37
+ constructor(config: WorkflowManagerConfig);
38
+ /**
39
+ * Start the manager (begins processing scheduled runs)
40
+ */
41
+ start(): void;
42
+ /**
43
+ * Stop the manager
44
+ */
45
+ stop(): void;
46
+ /**
47
+ * Register a workflow for scheduling
48
+ */
49
+ registerWorkflow<S extends WorkflowState>(workflow: Workflow<S>): void;
50
+ /**
51
+ * Schedule a workflow for later execution
52
+ */
53
+ schedule<S extends WorkflowState>(workflow: Workflow<S>, options?: ScheduleOptions): Promise<string>;
54
+ /**
55
+ * Execute a workflow immediately
56
+ */
57
+ execute<S extends WorkflowState>(workflow: Workflow<S>, input?: Partial<S>, options?: WorkflowExecuteOptionsV2): Promise<WorkflowResult<S>>;
58
+ /**
59
+ * Cancel a run
60
+ */
61
+ cancel(runId: string, reason?: string): Promise<void>;
62
+ /**
63
+ * Get run status
64
+ */
65
+ getStatus(runId: string): Promise<WorkflowRun | null>;
66
+ /**
67
+ * List runs with filters
68
+ */
69
+ listRuns(filters?: WorkflowRunFilters): Promise<WorkflowRun[]>;
70
+ /**
71
+ * Get run statistics
72
+ */
73
+ getStats(workflowName?: string): Promise<WorkflowRunStats>;
74
+ /**
75
+ * Pause a running workflow
76
+ */
77
+ pause(runId: string): Promise<void>;
78
+ /**
79
+ * Resume a paused workflow
80
+ */
81
+ resume(runId: string): Promise<void>;
82
+ /**
83
+ * Retry a failed run
84
+ */
85
+ retry(runId: string): Promise<string>;
86
+ /**
87
+ * Replay a workflow from a specific node
88
+ */
89
+ replay<S extends WorkflowState>(workflow: Workflow<S>, runId: string, fromNode: string): Promise<WorkflowResult<S>>;
90
+ /**
91
+ * Get count of active runs
92
+ */
93
+ getActiveCount(): Promise<number>;
94
+ /**
95
+ * Subscribe to run state changes
96
+ */
97
+ onRunStateChange(callback: (run: WorkflowRun) => void): () => void;
98
+ /**
99
+ * Cleanup old runs
100
+ */
101
+ cleanup(olderThan: number): Promise<number>;
102
+ /**
103
+ * Dispose the manager
104
+ */
105
+ dispose(): void;
106
+ private handleRunReady;
107
+ private updateRunNodes;
108
+ private notifyStateChange;
109
+ }
110
+ /**
111
+ * Create a workflow manager
112
+ */
113
+ export declare function createWorkflowManager(config: WorkflowManagerConfig): DefaultWorkflowManager;
114
+ //# sourceMappingURL=workflow-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-manager.d.ts","sourceRoot":"","sources":["../../src/manager/workflow-manager.ts"],"names":[],"mappings":"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"}