@cogitator-ai/workflows 0.5.16 → 0.5.17

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 (137) hide show
  1. package/dist/builder.d.ts.map +1 -1
  2. package/dist/builder.js +2 -1
  3. package/dist/builder.js.map +1 -1
  4. package/dist/checkpoint.d.ts.map +1 -1
  5. package/dist/checkpoint.js +16 -13
  6. package/dist/checkpoint.js.map +1 -1
  7. package/dist/executor.d.ts +4 -1
  8. package/dist/executor.d.ts.map +1 -1
  9. package/dist/executor.js +6 -2
  10. package/dist/executor.js.map +1 -1
  11. package/dist/human/approval-store.d.ts +0 -4
  12. package/dist/human/approval-store.d.ts.map +1 -1
  13. package/dist/human/approval-store.js +50 -38
  14. package/dist/human/approval-store.js.map +1 -1
  15. package/dist/human/human-node.d.ts.map +1 -1
  16. package/dist/human/human-node.js +6 -2
  17. package/dist/human/human-node.js.map +1 -1
  18. package/dist/human/notifiers.d.ts +0 -3
  19. package/dist/human/notifiers.d.ts.map +1 -1
  20. package/dist/human/notifiers.js +67 -25
  21. package/dist/human/notifiers.js.map +1 -1
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/manager/scheduler.d.ts.map +1 -1
  26. package/dist/manager/scheduler.js +6 -2
  27. package/dist/manager/scheduler.js.map +1 -1
  28. package/dist/manager/workflow-manager.d.ts +1 -1
  29. package/dist/manager/workflow-manager.d.ts.map +1 -1
  30. package/dist/manager/workflow-manager.js +21 -7
  31. package/dist/manager/workflow-manager.js.map +1 -1
  32. package/dist/nodes/agent.d.ts +0 -15
  33. package/dist/nodes/agent.d.ts.map +1 -1
  34. package/dist/nodes/agent.js +16 -16
  35. package/dist/nodes/agent.js.map +1 -1
  36. package/dist/nodes/base.d.ts +2 -7
  37. package/dist/nodes/base.d.ts.map +1 -1
  38. package/dist/nodes/base.js +0 -3
  39. package/dist/nodes/base.js.map +1 -1
  40. package/dist/nodes/function.d.ts +0 -18
  41. package/dist/nodes/function.d.ts.map +1 -1
  42. package/dist/nodes/function.js +0 -9
  43. package/dist/nodes/function.js.map +1 -1
  44. package/dist/nodes/index.d.ts +0 -3
  45. package/dist/nodes/index.d.ts.map +1 -1
  46. package/dist/nodes/index.js +0 -3
  47. package/dist/nodes/index.js.map +1 -1
  48. package/dist/nodes/tool.d.ts +1 -12
  49. package/dist/nodes/tool.d.ts.map +1 -1
  50. package/dist/nodes/tool.js +2 -9
  51. package/dist/nodes/tool.js.map +1 -1
  52. package/dist/observability/exporters.d.ts +4 -4
  53. package/dist/observability/exporters.d.ts.map +1 -1
  54. package/dist/observability/exporters.js +25 -9
  55. package/dist/observability/exporters.js.map +1 -1
  56. package/dist/observability/index.d.ts +1 -1
  57. package/dist/observability/index.d.ts.map +1 -1
  58. package/dist/observability/index.js +1 -1
  59. package/dist/observability/index.js.map +1 -1
  60. package/dist/observability/metrics.d.ts +0 -21
  61. package/dist/observability/metrics.d.ts.map +1 -1
  62. package/dist/observability/metrics.js +22 -26
  63. package/dist/observability/metrics.js.map +1 -1
  64. package/dist/observability/tracer.d.ts +9 -69
  65. package/dist/observability/tracer.d.ts.map +1 -1
  66. package/dist/observability/tracer.js +82 -125
  67. package/dist/observability/tracer.js.map +1 -1
  68. package/dist/patterns/index.d.ts +0 -13
  69. package/dist/patterns/index.d.ts.map +1 -1
  70. package/dist/patterns/index.js +0 -13
  71. package/dist/patterns/index.js.map +1 -1
  72. package/dist/patterns/map-reduce.d.ts +0 -129
  73. package/dist/patterns/map-reduce.d.ts.map +1 -1
  74. package/dist/patterns/map-reduce.js +63 -92
  75. package/dist/patterns/map-reduce.js.map +1 -1
  76. package/dist/saga/circuit-breaker.d.ts.map +1 -1
  77. package/dist/saga/circuit-breaker.js +5 -2
  78. package/dist/saga/circuit-breaker.js.map +1 -1
  79. package/dist/saga/compensation.d.ts +5 -2
  80. package/dist/saga/compensation.d.ts.map +1 -1
  81. package/dist/saga/compensation.js +49 -44
  82. package/dist/saga/compensation.js.map +1 -1
  83. package/dist/saga/dead-letter.d.ts +3 -0
  84. package/dist/saga/dead-letter.d.ts.map +1 -1
  85. package/dist/saga/dead-letter.js +11 -5
  86. package/dist/saga/dead-letter.js.map +1 -1
  87. package/dist/saga/idempotency.d.ts +1 -1
  88. package/dist/saga/idempotency.d.ts.map +1 -1
  89. package/dist/saga/idempotency.js +46 -13
  90. package/dist/saga/idempotency.js.map +1 -1
  91. package/dist/saga/retry.d.ts.map +1 -1
  92. package/dist/saga/retry.js +37 -31
  93. package/dist/saga/retry.js.map +1 -1
  94. package/dist/scheduler.d.ts.map +1 -1
  95. package/dist/scheduler.js +18 -3
  96. package/dist/scheduler.js.map +1 -1
  97. package/dist/subworkflows/index.d.ts +0 -13
  98. package/dist/subworkflows/index.d.ts.map +1 -1
  99. package/dist/subworkflows/index.js +0 -13
  100. package/dist/subworkflows/index.js.map +1 -1
  101. package/dist/subworkflows/parallel-subworkflows.d.ts +1 -77
  102. package/dist/subworkflows/parallel-subworkflows.d.ts.map +1 -1
  103. package/dist/subworkflows/parallel-subworkflows.js +12 -40
  104. package/dist/subworkflows/parallel-subworkflows.js.map +1 -1
  105. package/dist/subworkflows/subworkflow-node.d.ts +1 -82
  106. package/dist/subworkflows/subworkflow-node.d.ts.map +1 -1
  107. package/dist/subworkflows/subworkflow-node.js +20 -36
  108. package/dist/subworkflows/subworkflow-node.js.map +1 -1
  109. package/dist/timers/cron-parser.d.ts.map +1 -1
  110. package/dist/timers/cron-parser.js +32 -10
  111. package/dist/timers/cron-parser.js.map +1 -1
  112. package/dist/timers/timer-manager.d.ts +10 -0
  113. package/dist/timers/timer-manager.d.ts.map +1 -1
  114. package/dist/timers/timer-manager.js +13 -0
  115. package/dist/timers/timer-manager.js.map +1 -1
  116. package/dist/timers/timer-node.d.ts.map +1 -1
  117. package/dist/timers/timer-node.js +1 -0
  118. package/dist/timers/timer-node.js.map +1 -1
  119. package/dist/timers/timer-store.d.ts.map +1 -1
  120. package/dist/timers/timer-store.js +16 -10
  121. package/dist/timers/timer-store.js.map +1 -1
  122. package/dist/triggers/cron-trigger.d.ts +6 -5
  123. package/dist/triggers/cron-trigger.d.ts.map +1 -1
  124. package/dist/triggers/cron-trigger.js +52 -18
  125. package/dist/triggers/cron-trigger.js.map +1 -1
  126. package/dist/triggers/rate-limiter.d.ts +4 -0
  127. package/dist/triggers/rate-limiter.d.ts.map +1 -1
  128. package/dist/triggers/rate-limiter.js +10 -1
  129. package/dist/triggers/rate-limiter.js.map +1 -1
  130. package/dist/triggers/trigger-manager.d.ts.map +1 -1
  131. package/dist/triggers/trigger-manager.js +55 -38
  132. package/dist/triggers/trigger-manager.js.map +1 -1
  133. package/dist/triggers/webhook-trigger.d.ts +1 -0
  134. package/dist/triggers/webhook-trigger.d.ts.map +1 -1
  135. package/dist/triggers/webhook-trigger.js +8 -8
  136. package/dist/triggers/webhook-trigger.js.map +1 -1
  137. package/package.json +3 -3
@@ -1,17 +1,3 @@
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
1
  export interface MapItemResult<T> {
16
2
  index: number;
17
3
  item: unknown;
@@ -20,9 +6,6 @@ export interface MapItemResult<T> {
20
6
  error?: Error;
21
7
  duration: number;
22
8
  }
23
- /**
24
- * Map progress event
25
- */
26
9
  export interface MapProgressEvent<T> {
27
10
  total: number;
28
11
  completed: number;
@@ -32,85 +15,30 @@ export interface MapProgressEvent<T> {
32
15
  pending: number;
33
16
  running: number;
34
17
  }
35
- /**
36
- * Map node configuration
37
- */
38
18
  export interface MapNodeConfig<S, T> {
39
19
  name: string;
40
- /**
41
- * Extract items to map over from state
42
- */
43
20
  items: (state: S) => unknown[];
44
- /**
45
- * Map function to apply to each item
46
- */
47
21
  mapper: (item: unknown, index: number, state: S) => Promise<T> | T;
48
- /**
49
- * Maximum concurrent mappers
50
- * @default Infinity
51
- */
52
22
  concurrency?: number;
53
- /**
54
- * Continue processing if some items fail
55
- * @default false
56
- */
57
23
  continueOnError?: boolean;
58
- /**
59
- * Progress callback
60
- */
61
24
  onProgress?: (progress: MapProgressEvent<T>) => void;
62
- /**
63
- * Filter items before mapping
64
- */
65
25
  filter?: (item: unknown, index: number, state: S) => boolean;
66
- /**
67
- * Transform items before mapping
68
- */
69
26
  transform?: (item: unknown, index: number, state: S) => unknown;
70
- /**
71
- * Timeout per item (ms)
72
- */
73
27
  timeout?: number;
74
- /**
75
- * Retry configuration per item
76
- */
77
28
  retry?: {
78
29
  maxAttempts: number;
79
30
  delay?: number;
80
31
  backoff?: 'linear' | 'exponential';
81
32
  };
82
33
  }
83
- /**
84
- * Reduce node configuration
85
- */
86
34
  export interface ReduceNodeConfig<S, T, R> {
87
35
  name: string;
88
- /**
89
- * Initial accumulator value
90
- */
91
36
  initial: R | ((state: S) => R);
92
- /**
93
- * Reducer function
94
- */
95
37
  reducer: (accumulator: R, item: MapItemResult<T>, state: S) => R;
96
- /**
97
- * Process items as they complete (streaming)
98
- * @default false
99
- */
100
38
  streaming?: boolean;
101
- /**
102
- * Only include successful items in reduce
103
- * @default true
104
- */
105
39
  successOnly?: boolean;
106
- /**
107
- * Final transformation
108
- */
109
40
  finalize?: (result: R, state: S) => R;
110
41
  }
111
- /**
112
- * Map-Reduce result
113
- */
114
42
  export interface MapReduceResult<T, R> {
115
43
  results: MapItemResult<T>[];
116
44
  reduced: R;
@@ -122,97 +50,40 @@ export interface MapReduceResult<T, R> {
122
50
  avgItemDuration: number;
123
51
  };
124
52
  }
125
- /**
126
- * Map-Reduce node configuration
127
- */
128
53
  export interface MapReduceNodeConfig<S, T, R> {
129
54
  name: string;
130
55
  map: Omit<MapNodeConfig<S, T>, 'name'>;
131
56
  reduce: Omit<ReduceNodeConfig<S, T, R>, 'name'>;
132
57
  }
133
- /**
134
- * Execute a map operation
135
- */
136
58
  export declare function executeMap<S, T>(state: S, config: MapNodeConfig<S, T>): Promise<MapItemResult<T>[]>;
137
- /**
138
- * Execute a reduce operation
139
- */
140
59
  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
60
  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
61
  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
62
  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
63
  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
64
  export declare function parallelMap<S, T>(state: S, items: (state: S) => unknown[], mapper: (item: unknown, index: number, state: S) => Promise<T> | T, options?: {
161
65
  continueOnError?: boolean;
162
66
  onProgress?: (progress: MapProgressEvent<T>) => void;
163
67
  }): Promise<MapItemResult<T>[]>;
164
- /**
165
- * Sequential map helper - execute items one by one
166
- */
167
68
  export declare function sequentialMap<S, T>(state: S, items: (state: S) => unknown[], mapper: (item: unknown, index: number, state: S) => Promise<T> | T, options?: {
168
69
  continueOnError?: boolean;
169
70
  onProgress?: (progress: MapProgressEvent<T>) => void;
170
71
  }): Promise<MapItemResult<T>[]>;
171
- /**
172
- * Batched map helper - process items in fixed-size batches
173
- */
174
72
  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
73
  continueOnError?: boolean;
176
74
  onProgress?: (progress: MapProgressEvent<T>) => void;
177
75
  }): Promise<MapItemResult<T>[]>;
178
- /**
179
- * Collect helper - reduce results to an array
180
- */
181
76
  export declare function collect<T>(): Omit<ReduceNodeConfig<unknown, T, T[]>, 'name'>;
182
- /**
183
- * Sum helper - reduce numbers to sum
184
- */
185
77
  export declare function sum(): Omit<ReduceNodeConfig<unknown, number, number>, 'name'>;
186
- /**
187
- * Count helper - count successful items
188
- */
189
78
  export declare function count(): Omit<ReduceNodeConfig<unknown, unknown, number>, 'name'>;
190
- /**
191
- * First helper - get first result
192
- */
193
79
  export declare function first<T>(): Omit<ReduceNodeConfig<unknown, T, T | undefined>, 'name'>;
194
- /**
195
- * Last helper - get last result
196
- */
197
80
  export declare function last<T>(): Omit<ReduceNodeConfig<unknown, T, T | undefined>, 'name'>;
198
- /**
199
- * GroupBy helper - group results by key
200
- */
201
81
  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
82
  export declare function partition<T>(predicate: (result: T, item: MapItemResult<T>) => boolean): Omit<ReduceNodeConfig<unknown, T, {
206
83
  pass: T[];
207
84
  fail: T[];
208
85
  }>, 'name'>;
209
- /**
210
- * FlatMap helper - flatten arrays of results
211
- */
212
86
  export declare function flatMap<T>(): Omit<ReduceNodeConfig<unknown, T[], T[]>, 'name'>;
213
- /**
214
- * Stats helper - compute statistics from numeric results
215
- */
216
87
  export declare function stats(): Omit<ReduceNodeConfig<unknown, number, {
217
88
  count: number;
218
89
  sum: number;
@@ -1 +1 @@
1
- {"version":3,"file":"map-reduce.d.ts","sourceRoot":"","sources":["../../src/patterns/map-reduce.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map-reduce.d.ts","sourceRoot":"","sources":["../../src/patterns/map-reduce.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,3 @@
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
1
  async function executeWithConcurrency(items, mapper, concurrency, onComplete) {
16
2
  const results = new Array(items.length);
17
3
  const pending = [];
@@ -32,9 +18,6 @@ async function executeWithConcurrency(items, mapper, concurrency, onComplete) {
32
18
  await Promise.all(pending);
33
19
  return results;
34
20
  }
35
- /**
36
- * Execute single item with timeout and retry
37
- */
38
21
  async function executeItem(item, index, state, config) {
39
22
  const startTime = Date.now();
40
23
  let lastError;
@@ -47,10 +30,23 @@ async function executeItem(item, index, state, config) {
47
30
  }
48
31
  let resultPromise = Promise.resolve(config.mapper(processedItem, index, state));
49
32
  if (config.timeout) {
50
- resultPromise = Promise.race([
51
- resultPromise,
52
- new Promise((_, reject) => setTimeout(() => reject(new Error('Item timeout exceeded')), config.timeout)),
53
- ]);
33
+ let timer;
34
+ const timeoutPromise = new Promise((_, reject) => {
35
+ timer = setTimeout(() => reject(new Error('Item timeout exceeded')), config.timeout);
36
+ });
37
+ try {
38
+ const result = await Promise.race([resultPromise, timeoutPromise]);
39
+ return {
40
+ index,
41
+ item,
42
+ result,
43
+ success: true,
44
+ duration: Date.now() - startTime,
45
+ };
46
+ }
47
+ finally {
48
+ clearTimeout(timer);
49
+ }
54
50
  }
55
51
  const result = await resultPromise;
56
52
  return {
@@ -81,9 +77,6 @@ async function executeItem(item, index, state, config) {
81
77
  duration: Date.now() - startTime,
82
78
  };
83
79
  }
84
- /**
85
- * Execute a map operation
86
- */
87
80
  export async function executeMap(state, config) {
88
81
  let items = config.items(state);
89
82
  if (config.filter) {
@@ -93,6 +86,7 @@ export async function executeMap(state, config) {
93
86
  let completed = 0;
94
87
  let successful = 0;
95
88
  let failed = 0;
89
+ let started = false;
96
90
  const emitProgress = (current) => {
97
91
  if (config.onProgress) {
98
92
  config.onProgress({
@@ -102,12 +96,13 @@ export async function executeMap(state, config) {
102
96
  failed,
103
97
  currentItem: current,
104
98
  pending: items.length - completed,
105
- running: Math.min(concurrency, items.length - completed),
99
+ running: started ? Math.min(concurrency, items.length - completed) : 0,
106
100
  });
107
101
  }
108
102
  };
109
103
  emitProgress();
110
104
  const mapper = async (item, index) => {
105
+ started = true;
111
106
  const result = await executeItem(item, index, state, config);
112
107
  completed++;
113
108
  if (result.success) {
@@ -122,12 +117,25 @@ export async function executeMap(state, config) {
122
117
  emitProgress(result);
123
118
  return result;
124
119
  };
125
- const allResults = await executeWithConcurrency(items, mapper, concurrency);
126
- return allResults;
120
+ try {
121
+ return await executeWithConcurrency(items, mapper, concurrency);
122
+ }
123
+ catch (error) {
124
+ const err = error instanceof Error ? error : new Error(String(error));
125
+ const partialResults = [];
126
+ for (let i = 0; i < items.length; i++) {
127
+ partialResults.push({
128
+ index: i,
129
+ item: items[i],
130
+ result: undefined,
131
+ success: false,
132
+ error: err,
133
+ duration: 0,
134
+ });
135
+ }
136
+ throw Object.assign(err, { partialResults });
137
+ }
127
138
  }
128
- /**
129
- * Execute a reduce operation
130
- */
131
139
  export function executeReduce(results, state, config) {
132
140
  const initial = typeof config.initial === 'function'
133
141
  ? config.initial(state)
@@ -139,9 +147,6 @@ export function executeReduce(results, state, config) {
139
147
  }
140
148
  return result;
141
149
  }
142
- /**
143
- * Execute a map-reduce operation
144
- */
145
150
  export async function executeMapReduce(state, config) {
146
151
  const startTime = Date.now();
147
152
  const mapConfig = {
@@ -154,16 +159,27 @@ export async function executeMapReduce(state, config) {
154
159
  typeof config.reduce.initial === 'function'
155
160
  ? config.reduce.initial(state)
156
161
  : config.reduce.initial;
162
+ const reduceConfig = {
163
+ name: `${config.name}:reduce`,
164
+ ...config.reduce,
165
+ };
166
+ const streamingQueue = [];
167
+ let nextExpectedIndex = 0;
168
+ const drainQueue = () => {
169
+ streamingQueue.sort((a, b) => a.index - b.index);
170
+ while (streamingQueue.length > 0 && streamingQueue[0].index === nextExpectedIndex) {
171
+ const item = streamingQueue.shift();
172
+ if (item.success && reduceConfig.successOnly !== false) {
173
+ streamingAccumulator = reduceConfig.reducer(streamingAccumulator, item, state);
174
+ }
175
+ nextExpectedIndex++;
176
+ }
177
+ };
157
178
  const originalOnProgress = mapConfig.onProgress;
158
179
  mapConfig.onProgress = (progress) => {
159
- if (progress.currentItem?.success) {
160
- const reduceConfig = {
161
- name: `${config.name}:reduce`,
162
- ...config.reduce,
163
- };
164
- if (reduceConfig.successOnly !== false || progress.currentItem.success) {
165
- streamingAccumulator = reduceConfig.reducer(streamingAccumulator, progress.currentItem, state);
166
- }
180
+ if (progress.currentItem) {
181
+ streamingQueue.push(progress.currentItem);
182
+ drainQueue();
167
183
  }
168
184
  originalOnProgress?.(progress);
169
185
  };
@@ -198,27 +214,15 @@ export async function executeMapReduce(state, config) {
198
214
  },
199
215
  };
200
216
  }
201
- /**
202
- * Create a map node factory
203
- */
204
217
  export function mapNode(name, config) {
205
218
  return { name, ...config };
206
219
  }
207
- /**
208
- * Create a reduce node factory
209
- */
210
220
  export function reduceNode(name, config) {
211
221
  return { name, ...config };
212
222
  }
213
- /**
214
- * Create a map-reduce node factory
215
- */
216
223
  export function mapReduceNode(name, config) {
217
224
  return { name, ...config };
218
225
  }
219
- /**
220
- * Parallel map helper - execute all items in parallel
221
- */
222
226
  export async function parallelMap(state, items, mapper, options = {}) {
223
227
  return executeMap(state, {
224
228
  name: 'parallelMap',
@@ -228,9 +232,6 @@ export async function parallelMap(state, items, mapper, options = {}) {
228
232
  ...options,
229
233
  });
230
234
  }
231
- /**
232
- * Sequential map helper - execute items one by one
233
- */
234
235
  export async function sequentialMap(state, items, mapper, options = {}) {
235
236
  return executeMap(state, {
236
237
  name: 'sequentialMap',
@@ -240,9 +241,6 @@ export async function sequentialMap(state, items, mapper, options = {}) {
240
241
  ...options,
241
242
  });
242
243
  }
243
- /**
244
- * Batched map helper - process items in fixed-size batches
245
- */
246
244
  export async function batchedMap(state, items, mapper, batchSize, options = {}) {
247
245
  return executeMap(state, {
248
246
  name: 'batchedMap',
@@ -252,60 +250,42 @@ export async function batchedMap(state, items, mapper, batchSize, options = {})
252
250
  ...options,
253
251
  });
254
252
  }
255
- /**
256
- * Collect helper - reduce results to an array
257
- */
258
253
  export function collect() {
259
254
  return {
260
- initial: [],
255
+ initial: () => [],
261
256
  reducer: (acc, item) => {
262
257
  acc.push(item.result);
263
258
  return acc;
264
259
  },
265
260
  };
266
261
  }
267
- /**
268
- * Sum helper - reduce numbers to sum
269
- */
270
262
  export function sum() {
271
263
  return {
272
264
  initial: 0,
273
265
  reducer: (acc, item) => acc + item.result,
274
266
  };
275
267
  }
276
- /**
277
- * Count helper - count successful items
278
- */
279
268
  export function count() {
280
269
  return {
281
270
  initial: 0,
282
271
  reducer: (acc) => acc + 1,
283
272
  };
284
273
  }
285
- /**
286
- * First helper - get first result
287
- */
288
274
  export function first() {
289
275
  return {
290
276
  initial: undefined,
291
277
  reducer: (acc, item) => acc ?? item.result,
292
278
  };
293
279
  }
294
- /**
295
- * Last helper - get last result
296
- */
297
280
  export function last() {
298
281
  return {
299
282
  initial: undefined,
300
283
  reducer: (_, item) => item.result,
301
284
  };
302
285
  }
303
- /**
304
- * GroupBy helper - group results by key
305
- */
306
286
  export function groupBy(keyFn) {
307
287
  return {
308
- initial: {},
288
+ initial: () => ({}),
309
289
  reducer: (acc, item) => {
310
290
  const key = keyFn(item.result, item);
311
291
  if (!acc[key]) {
@@ -316,12 +296,9 @@ export function groupBy(keyFn) {
316
296
  },
317
297
  };
318
298
  }
319
- /**
320
- * Partition helper - partition results by predicate
321
- */
322
299
  export function partition(predicate) {
323
300
  return {
324
- initial: { pass: [], fail: [] },
301
+ initial: () => ({ pass: [], fail: [] }),
325
302
  reducer: (acc, item) => {
326
303
  if (predicate(item.result, item)) {
327
304
  acc.pass.push(item.result);
@@ -333,30 +310,24 @@ export function partition(predicate) {
333
310
  },
334
311
  };
335
312
  }
336
- /**
337
- * FlatMap helper - flatten arrays of results
338
- */
339
313
  export function flatMap() {
340
314
  return {
341
- initial: [],
315
+ initial: () => [],
342
316
  reducer: (acc, item) => {
343
317
  acc.push(...item.result);
344
318
  return acc;
345
319
  },
346
320
  };
347
321
  }
348
- /**
349
- * Stats helper - compute statistics from numeric results
350
- */
351
322
  export function stats() {
352
323
  return {
353
- initial: {
324
+ initial: () => ({
354
325
  count: 0,
355
326
  sum: 0,
356
327
  avg: 0,
357
328
  min: Infinity,
358
329
  max: -Infinity,
359
- },
330
+ }),
360
331
  reducer: (acc, item) => {
361
332
  acc.count++;
362
333
  acc.sum += item.result;
@@ -1 +1 @@
1
- {"version":3,"file":"map-reduce.js","sourceRoot":"","sources":["../../src/patterns/map-reduce.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map-reduce.js","sourceRoot":"","sources":["../../src/patterns/map-reduce.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/saga/circuit-breaker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/saga/circuit-breaker.ts"],"names":[],"mappings":"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"}
@@ -90,6 +90,7 @@ export class CircuitBreaker {
90
90
  const elapsed = now - breaker.lastStateChange;
91
91
  if (elapsed >= this.config.resetTimeout) {
92
92
  this.changeState(nodeId, breaker, 'half-open');
93
+ breaker.halfOpenAttempts++;
93
94
  return true;
94
95
  }
95
96
  return false;
@@ -264,7 +265,9 @@ export class CircuitBreaker {
264
265
  try {
265
266
  handler(event);
266
267
  }
267
- catch { }
268
+ catch (err) {
269
+ console.warn('[CircuitBreaker] Event handler error:', err);
270
+ }
268
271
  }
269
272
  }
270
273
  }
@@ -277,7 +280,7 @@ export class CircuitBreakerOpenError extends Error {
277
280
  failures;
278
281
  lastFailure;
279
282
  constructor(nodeId, breaker) {
280
- super(`Circuit breaker is open for node '${nodeId}'`);
283
+ super(`Circuit breaker is ${breaker.state} for node '${nodeId}'`);
281
284
  this.name = 'CircuitBreakerOpenError';
282
285
  this.nodeId = nodeId;
283
286
  this.state = breaker.state;