@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 @@
1
+ {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../src/observability/tracer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @cogitator-ai/workflows - Patterns module
3
+ *
4
+ * Advanced workflow patterns for complex data processing.
5
+ *
6
+ * Features:
7
+ * - Map-Reduce pattern for parallel processing
8
+ * - Dynamic fan-out based on state
9
+ * - Configurable concurrency limits
10
+ * - Partial failure handling
11
+ * - Progress tracking
12
+ * - Streaming reduce
13
+ */
14
+ export { type MapItemResult, type MapProgressEvent, type MapNodeConfig, type ReduceNodeConfig, type MapReduceResult, type MapReduceNodeConfig, executeMap, executeReduce, executeMapReduce, mapNode, reduceNode, mapReduceNode, parallelMap, sequentialMap, batchedMap, collect, sum, count, first, last, groupBy, partition, flatMap, stats, } from './map-reduce';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/patterns/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EAExB,UAAU,EACV,aAAa,EACb,gBAAgB,EAEhB,OAAO,EACP,UAAU,EACV,aAAa,EAEb,WAAW,EACX,aAAa,EACb,UAAU,EAEV,OAAO,EACP,GAAG,EACH,KAAK,EACL,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,OAAO,EACP,KAAK,GACN,MAAM,cAAc,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @cogitator-ai/workflows - Patterns module
3
+ *
4
+ * Advanced workflow patterns for complex data processing.
5
+ *
6
+ * Features:
7
+ * - Map-Reduce pattern for parallel processing
8
+ * - Dynamic fan-out based on state
9
+ * - Configurable concurrency limits
10
+ * - Partial failure handling
11
+ * - Progress tracking
12
+ * - Streaming reduce
13
+ */
14
+ export { executeMap, executeReduce, executeMapReduce, mapNode, reduceNode, mapReduceNode, parallelMap, sequentialMap, batchedMap, collect, sum, count, first, last, groupBy, partition, flatMap, stats, } from './map-reduce';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/patterns/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAQL,UAAU,EACV,aAAa,EACb,gBAAgB,EAEhB,OAAO,EACP,UAAU,EACV,aAAa,EAEb,WAAW,EACX,aAAa,EACb,UAAU,EAEV,OAAO,EACP,GAAG,EACH,KAAK,EACL,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,OAAO,EACP,KAAK,GACN,MAAM,cAAc,CAAC"}
@@ -0,0 +1,223 @@
1
+ /**
2
+ * Map-Reduce pattern implementation for workflows
3
+ *
4
+ * Features:
5
+ * - Dynamic fan-out based on state
6
+ * - Configurable concurrency limits
7
+ * - Partial failure handling (continue with successful items)
8
+ * - Progress tracking per item
9
+ * - Streaming reduce (process as items complete)
10
+ * - Nested map-reduce support
11
+ */
12
+ /**
13
+ * Item result wrapper
14
+ */
15
+ export interface MapItemResult<T> {
16
+ index: number;
17
+ item: unknown;
18
+ result: T;
19
+ success: boolean;
20
+ error?: Error;
21
+ duration: number;
22
+ }
23
+ /**
24
+ * Map progress event
25
+ */
26
+ export interface MapProgressEvent<T> {
27
+ total: number;
28
+ completed: number;
29
+ successful: number;
30
+ failed: number;
31
+ currentItem?: MapItemResult<T>;
32
+ pending: number;
33
+ running: number;
34
+ }
35
+ /**
36
+ * Map node configuration
37
+ */
38
+ export interface MapNodeConfig<S, T> {
39
+ name: string;
40
+ /**
41
+ * Extract items to map over from state
42
+ */
43
+ items: (state: S) => unknown[];
44
+ /**
45
+ * Map function to apply to each item
46
+ */
47
+ mapper: (item: unknown, index: number, state: S) => Promise<T> | T;
48
+ /**
49
+ * Maximum concurrent mappers
50
+ * @default Infinity
51
+ */
52
+ concurrency?: number;
53
+ /**
54
+ * Continue processing if some items fail
55
+ * @default false
56
+ */
57
+ continueOnError?: boolean;
58
+ /**
59
+ * Progress callback
60
+ */
61
+ onProgress?: (progress: MapProgressEvent<T>) => void;
62
+ /**
63
+ * Filter items before mapping
64
+ */
65
+ filter?: (item: unknown, index: number, state: S) => boolean;
66
+ /**
67
+ * Transform items before mapping
68
+ */
69
+ transform?: (item: unknown, index: number, state: S) => unknown;
70
+ /**
71
+ * Timeout per item (ms)
72
+ */
73
+ timeout?: number;
74
+ /**
75
+ * Retry configuration per item
76
+ */
77
+ retry?: {
78
+ maxAttempts: number;
79
+ delay?: number;
80
+ backoff?: 'linear' | 'exponential';
81
+ };
82
+ }
83
+ /**
84
+ * Reduce node configuration
85
+ */
86
+ export interface ReduceNodeConfig<S, T, R> {
87
+ name: string;
88
+ /**
89
+ * Initial accumulator value
90
+ */
91
+ initial: R | ((state: S) => R);
92
+ /**
93
+ * Reducer function
94
+ */
95
+ reducer: (accumulator: R, item: MapItemResult<T>, state: S) => R;
96
+ /**
97
+ * Process items as they complete (streaming)
98
+ * @default false
99
+ */
100
+ streaming?: boolean;
101
+ /**
102
+ * Only include successful items in reduce
103
+ * @default true
104
+ */
105
+ successOnly?: boolean;
106
+ /**
107
+ * Final transformation
108
+ */
109
+ finalize?: (result: R, state: S) => R;
110
+ }
111
+ /**
112
+ * Map-Reduce result
113
+ */
114
+ export interface MapReduceResult<T, R> {
115
+ results: MapItemResult<T>[];
116
+ reduced: R;
117
+ stats: {
118
+ total: number;
119
+ successful: number;
120
+ failed: number;
121
+ duration: number;
122
+ avgItemDuration: number;
123
+ };
124
+ }
125
+ /**
126
+ * Map-Reduce node configuration
127
+ */
128
+ export interface MapReduceNodeConfig<S, T, R> {
129
+ name: string;
130
+ map: Omit<MapNodeConfig<S, T>, 'name'>;
131
+ reduce: Omit<ReduceNodeConfig<S, T, R>, 'name'>;
132
+ }
133
+ /**
134
+ * Execute a map operation
135
+ */
136
+ export declare function executeMap<S, T>(state: S, config: MapNodeConfig<S, T>): Promise<MapItemResult<T>[]>;
137
+ /**
138
+ * Execute a reduce operation
139
+ */
140
+ export declare function executeReduce<S, T, R>(results: MapItemResult<T>[], state: S, config: ReduceNodeConfig<S, T, R>): R;
141
+ /**
142
+ * Execute a map-reduce operation
143
+ */
144
+ export declare function executeMapReduce<S, T, R>(state: S, config: MapReduceNodeConfig<S, T, R>): Promise<MapReduceResult<T, R>>;
145
+ /**
146
+ * Create a map node factory
147
+ */
148
+ export declare function mapNode<S, T>(name: string, config: Omit<MapNodeConfig<S, T>, 'name'>): MapNodeConfig<S, T>;
149
+ /**
150
+ * Create a reduce node factory
151
+ */
152
+ export declare function reduceNode<S, T, R>(name: string, config: Omit<ReduceNodeConfig<S, T, R>, 'name'>): ReduceNodeConfig<S, T, R>;
153
+ /**
154
+ * Create a map-reduce node factory
155
+ */
156
+ export declare function mapReduceNode<S, T, R>(name: string, config: Omit<MapReduceNodeConfig<S, T, R>, 'name'>): MapReduceNodeConfig<S, T, R>;
157
+ /**
158
+ * Parallel map helper - execute all items in parallel
159
+ */
160
+ export declare function parallelMap<S, T>(state: S, items: (state: S) => unknown[], mapper: (item: unknown, index: number, state: S) => Promise<T> | T, options?: {
161
+ continueOnError?: boolean;
162
+ onProgress?: (progress: MapProgressEvent<T>) => void;
163
+ }): Promise<MapItemResult<T>[]>;
164
+ /**
165
+ * Sequential map helper - execute items one by one
166
+ */
167
+ export declare function sequentialMap<S, T>(state: S, items: (state: S) => unknown[], mapper: (item: unknown, index: number, state: S) => Promise<T> | T, options?: {
168
+ continueOnError?: boolean;
169
+ onProgress?: (progress: MapProgressEvent<T>) => void;
170
+ }): Promise<MapItemResult<T>[]>;
171
+ /**
172
+ * Batched map helper - process items in fixed-size batches
173
+ */
174
+ export declare function batchedMap<S, T>(state: S, items: (state: S) => unknown[], mapper: (item: unknown, index: number, state: S) => Promise<T> | T, batchSize: number, options?: {
175
+ continueOnError?: boolean;
176
+ onProgress?: (progress: MapProgressEvent<T>) => void;
177
+ }): Promise<MapItemResult<T>[]>;
178
+ /**
179
+ * Collect helper - reduce results to an array
180
+ */
181
+ export declare function collect<T>(): Omit<ReduceNodeConfig<unknown, T, T[]>, 'name'>;
182
+ /**
183
+ * Sum helper - reduce numbers to sum
184
+ */
185
+ export declare function sum(): Omit<ReduceNodeConfig<unknown, number, number>, 'name'>;
186
+ /**
187
+ * Count helper - count successful items
188
+ */
189
+ export declare function count(): Omit<ReduceNodeConfig<unknown, unknown, number>, 'name'>;
190
+ /**
191
+ * First helper - get first result
192
+ */
193
+ export declare function first<T>(): Omit<ReduceNodeConfig<unknown, T, T | undefined>, 'name'>;
194
+ /**
195
+ * Last helper - get last result
196
+ */
197
+ export declare function last<T>(): Omit<ReduceNodeConfig<unknown, T, T | undefined>, 'name'>;
198
+ /**
199
+ * GroupBy helper - group results by key
200
+ */
201
+ export declare function groupBy<T, K extends string | number>(keyFn: (result: T, item: MapItemResult<T>) => K): Omit<ReduceNodeConfig<unknown, T, Record<K, T[]>>, 'name'>;
202
+ /**
203
+ * Partition helper - partition results by predicate
204
+ */
205
+ export declare function partition<T>(predicate: (result: T, item: MapItemResult<T>) => boolean): Omit<ReduceNodeConfig<unknown, T, {
206
+ pass: T[];
207
+ fail: T[];
208
+ }>, 'name'>;
209
+ /**
210
+ * FlatMap helper - flatten arrays of results
211
+ */
212
+ export declare function flatMap<T>(): Omit<ReduceNodeConfig<unknown, T[], T[]>, 'name'>;
213
+ /**
214
+ * Stats helper - compute statistics from numeric results
215
+ */
216
+ export declare function stats(): Omit<ReduceNodeConfig<unknown, number, {
217
+ count: number;
218
+ sum: number;
219
+ avg: number;
220
+ min: number;
221
+ max: number;
222
+ }>, 'name'>;
223
+ //# sourceMappingURL=map-reduce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-reduce.d.ts","sourceRoot":"","sources":["../../src/patterns/map-reduce.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,378 @@
1
+ /**
2
+ * Map-Reduce pattern implementation for workflows
3
+ *
4
+ * Features:
5
+ * - Dynamic fan-out based on state
6
+ * - Configurable concurrency limits
7
+ * - Partial failure handling (continue with successful items)
8
+ * - Progress tracking per item
9
+ * - Streaming reduce (process as items complete)
10
+ * - Nested map-reduce support
11
+ */
12
+ /**
13
+ * Execute items with concurrency limit
14
+ */
15
+ async function executeWithConcurrency(items, mapper, concurrency, onComplete) {
16
+ const results = new Array(items.length);
17
+ const pending = [];
18
+ let nextIndex = 0;
19
+ const executeNext = async () => {
20
+ const index = nextIndex++;
21
+ if (index >= items.length)
22
+ return;
23
+ const result = await mapper(items[index], index);
24
+ results[index] = result;
25
+ onComplete?.(result);
26
+ await executeNext();
27
+ };
28
+ const initialBatch = Math.min(concurrency, items.length);
29
+ for (let i = 0; i < initialBatch; i++) {
30
+ pending.push(executeNext());
31
+ }
32
+ await Promise.all(pending);
33
+ return results;
34
+ }
35
+ /**
36
+ * Execute single item with timeout and retry
37
+ */
38
+ async function executeItem(item, index, state, config) {
39
+ const startTime = Date.now();
40
+ let lastError;
41
+ const maxAttempts = config.retry?.maxAttempts ?? 1;
42
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
43
+ try {
44
+ let processedItem = item;
45
+ if (config.transform) {
46
+ processedItem = config.transform(item, index, state);
47
+ }
48
+ let resultPromise = Promise.resolve(config.mapper(processedItem, index, state));
49
+ if (config.timeout) {
50
+ resultPromise = Promise.race([
51
+ resultPromise,
52
+ new Promise((_, reject) => setTimeout(() => reject(new Error('Item timeout exceeded')), config.timeout)),
53
+ ]);
54
+ }
55
+ const result = await resultPromise;
56
+ return {
57
+ index,
58
+ item,
59
+ result,
60
+ success: true,
61
+ duration: Date.now() - startTime,
62
+ };
63
+ }
64
+ catch (error) {
65
+ lastError = error instanceof Error ? error : new Error(String(error));
66
+ if (attempt < maxAttempts - 1 && config.retry) {
67
+ const delay = config.retry.delay ?? 1000;
68
+ const actualDelay = config.retry.backoff === 'exponential'
69
+ ? delay * Math.pow(2, attempt)
70
+ : delay * (attempt + 1);
71
+ await new Promise((resolve) => setTimeout(resolve, actualDelay));
72
+ }
73
+ }
74
+ }
75
+ return {
76
+ index,
77
+ item,
78
+ result: undefined,
79
+ success: false,
80
+ error: lastError,
81
+ duration: Date.now() - startTime,
82
+ };
83
+ }
84
+ /**
85
+ * Execute a map operation
86
+ */
87
+ export async function executeMap(state, config) {
88
+ let items = config.items(state);
89
+ if (config.filter) {
90
+ items = items.filter((item, index) => config.filter(item, index, state));
91
+ }
92
+ const concurrency = config.concurrency ?? Infinity;
93
+ const results = [];
94
+ let completed = 0;
95
+ let successful = 0;
96
+ let failed = 0;
97
+ const emitProgress = (current) => {
98
+ if (config.onProgress) {
99
+ config.onProgress({
100
+ total: items.length,
101
+ completed,
102
+ successful,
103
+ failed,
104
+ currentItem: current,
105
+ pending: items.length - completed,
106
+ running: Math.min(concurrency, items.length - completed),
107
+ });
108
+ }
109
+ };
110
+ emitProgress();
111
+ const mapper = async (item, index) => {
112
+ const result = await executeItem(item, index, state, config);
113
+ completed++;
114
+ if (result.success) {
115
+ successful++;
116
+ }
117
+ else {
118
+ failed++;
119
+ if (!config.continueOnError) {
120
+ throw result.error ?? new Error(`Item ${index} failed`);
121
+ }
122
+ }
123
+ emitProgress(result);
124
+ return result;
125
+ };
126
+ const allResults = await executeWithConcurrency(items, mapper, concurrency, (result) => results.push(result));
127
+ return allResults;
128
+ }
129
+ /**
130
+ * Execute a reduce operation
131
+ */
132
+ export function executeReduce(results, state, config) {
133
+ const initial = typeof config.initial === 'function'
134
+ ? config.initial(state)
135
+ : config.initial;
136
+ const items = config.successOnly !== false
137
+ ? results.filter((r) => r.success)
138
+ : results;
139
+ let result = items.reduce((acc, item) => config.reducer(acc, item, state), initial);
140
+ if (config.finalize) {
141
+ result = config.finalize(result, state);
142
+ }
143
+ return result;
144
+ }
145
+ /**
146
+ * Execute a map-reduce operation
147
+ */
148
+ export async function executeMapReduce(state, config) {
149
+ const startTime = Date.now();
150
+ const mapConfig = {
151
+ name: `${config.name}:map`,
152
+ ...config.map,
153
+ };
154
+ let streamingAccumulator;
155
+ if (config.reduce.streaming) {
156
+ streamingAccumulator =
157
+ typeof config.reduce.initial === 'function'
158
+ ? config.reduce.initial(state)
159
+ : config.reduce.initial;
160
+ const originalOnProgress = mapConfig.onProgress;
161
+ mapConfig.onProgress = (progress) => {
162
+ if (progress.currentItem?.success) {
163
+ const reduceConfig = {
164
+ name: `${config.name}:reduce`,
165
+ ...config.reduce,
166
+ };
167
+ if (reduceConfig.successOnly !== false || progress.currentItem.success) {
168
+ streamingAccumulator = reduceConfig.reducer(streamingAccumulator, progress.currentItem, state);
169
+ }
170
+ }
171
+ originalOnProgress?.(progress);
172
+ };
173
+ }
174
+ const results = await executeMap(state, mapConfig);
175
+ const reduceConfig = {
176
+ name: `${config.name}:reduce`,
177
+ ...config.reduce,
178
+ };
179
+ let reduced;
180
+ if (config.reduce.streaming && streamingAccumulator !== undefined) {
181
+ reduced = streamingAccumulator;
182
+ if (reduceConfig.finalize) {
183
+ reduced = reduceConfig.finalize(reduced, state);
184
+ }
185
+ }
186
+ else {
187
+ reduced = executeReduce(results, state, reduceConfig);
188
+ }
189
+ const duration = Date.now() - startTime;
190
+ const successful = results.filter((r) => r.success).length;
191
+ const totalDuration = results.reduce((sum, r) => sum + r.duration, 0);
192
+ return {
193
+ results,
194
+ reduced,
195
+ stats: {
196
+ total: results.length,
197
+ successful,
198
+ failed: results.length - successful,
199
+ duration,
200
+ avgItemDuration: results.length > 0 ? totalDuration / results.length : 0,
201
+ },
202
+ };
203
+ }
204
+ /**
205
+ * Create a map node factory
206
+ */
207
+ export function mapNode(name, config) {
208
+ return { name, ...config };
209
+ }
210
+ /**
211
+ * Create a reduce node factory
212
+ */
213
+ export function reduceNode(name, config) {
214
+ return { name, ...config };
215
+ }
216
+ /**
217
+ * Create a map-reduce node factory
218
+ */
219
+ export function mapReduceNode(name, config) {
220
+ return { name, ...config };
221
+ }
222
+ /**
223
+ * Parallel map helper - execute all items in parallel
224
+ */
225
+ export async function parallelMap(state, items, mapper, options = {}) {
226
+ return executeMap(state, {
227
+ name: 'parallelMap',
228
+ items,
229
+ mapper,
230
+ concurrency: Infinity,
231
+ ...options,
232
+ });
233
+ }
234
+ /**
235
+ * Sequential map helper - execute items one by one
236
+ */
237
+ export async function sequentialMap(state, items, mapper, options = {}) {
238
+ return executeMap(state, {
239
+ name: 'sequentialMap',
240
+ items,
241
+ mapper,
242
+ concurrency: 1,
243
+ ...options,
244
+ });
245
+ }
246
+ /**
247
+ * Batched map helper - process items in fixed-size batches
248
+ */
249
+ export async function batchedMap(state, items, mapper, batchSize, options = {}) {
250
+ return executeMap(state, {
251
+ name: 'batchedMap',
252
+ items,
253
+ mapper,
254
+ concurrency: batchSize,
255
+ ...options,
256
+ });
257
+ }
258
+ /**
259
+ * Collect helper - reduce results to an array
260
+ */
261
+ export function collect() {
262
+ return {
263
+ initial: [],
264
+ reducer: (acc, item) => {
265
+ acc.push(item.result);
266
+ return acc;
267
+ },
268
+ };
269
+ }
270
+ /**
271
+ * Sum helper - reduce numbers to sum
272
+ */
273
+ export function sum() {
274
+ return {
275
+ initial: 0,
276
+ reducer: (acc, item) => acc + item.result,
277
+ };
278
+ }
279
+ /**
280
+ * Count helper - count successful items
281
+ */
282
+ export function count() {
283
+ return {
284
+ initial: 0,
285
+ reducer: (acc) => acc + 1,
286
+ };
287
+ }
288
+ /**
289
+ * First helper - get first result
290
+ */
291
+ export function first() {
292
+ return {
293
+ initial: undefined,
294
+ reducer: (acc, item) => acc ?? item.result,
295
+ };
296
+ }
297
+ /**
298
+ * Last helper - get last result
299
+ */
300
+ export function last() {
301
+ return {
302
+ initial: undefined,
303
+ reducer: (_, item) => item.result,
304
+ };
305
+ }
306
+ /**
307
+ * GroupBy helper - group results by key
308
+ */
309
+ export function groupBy(keyFn) {
310
+ return {
311
+ initial: {},
312
+ reducer: (acc, item) => {
313
+ const key = keyFn(item.result, item);
314
+ if (!acc[key]) {
315
+ acc[key] = [];
316
+ }
317
+ acc[key].push(item.result);
318
+ return acc;
319
+ },
320
+ };
321
+ }
322
+ /**
323
+ * Partition helper - partition results by predicate
324
+ */
325
+ export function partition(predicate) {
326
+ return {
327
+ initial: { pass: [], fail: [] },
328
+ reducer: (acc, item) => {
329
+ if (predicate(item.result, item)) {
330
+ acc.pass.push(item.result);
331
+ }
332
+ else {
333
+ acc.fail.push(item.result);
334
+ }
335
+ return acc;
336
+ },
337
+ };
338
+ }
339
+ /**
340
+ * FlatMap helper - flatten arrays of results
341
+ */
342
+ export function flatMap() {
343
+ return {
344
+ initial: [],
345
+ reducer: (acc, item) => {
346
+ acc.push(...item.result);
347
+ return acc;
348
+ },
349
+ };
350
+ }
351
+ /**
352
+ * Stats helper - compute statistics from numeric results
353
+ */
354
+ export function stats() {
355
+ return {
356
+ initial: {
357
+ count: 0,
358
+ sum: 0,
359
+ avg: 0,
360
+ min: Infinity,
361
+ max: -Infinity,
362
+ },
363
+ reducer: (acc, item) => {
364
+ acc.count++;
365
+ acc.sum += item.result;
366
+ acc.min = Math.min(acc.min, item.result);
367
+ acc.max = Math.max(acc.max, item.result);
368
+ return acc;
369
+ },
370
+ finalize: (result) => ({
371
+ ...result,
372
+ avg: result.count > 0 ? result.sum / result.count : 0,
373
+ min: result.count > 0 ? result.min : 0,
374
+ max: result.count > 0 ? result.max : 0,
375
+ }),
376
+ };
377
+ }
378
+ //# sourceMappingURL=map-reduce.js.map