@langchain/langgraph 0.2.73 → 0.3.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 (187) hide show
  1. package/dist/channels/any_value.cjs +3 -0
  2. package/dist/channels/any_value.d.ts +1 -0
  3. package/dist/channels/any_value.js +3 -0
  4. package/dist/channels/any_value.js.map +1 -1
  5. package/dist/channels/base.cjs +35 -6
  6. package/dist/channels/base.d.ts +17 -2
  7. package/dist/channels/base.js +31 -2
  8. package/dist/channels/base.js.map +1 -1
  9. package/dist/channels/binop.cjs +3 -0
  10. package/dist/channels/binop.d.ts +1 -0
  11. package/dist/channels/binop.js +3 -0
  12. package/dist/channels/binop.js.map +1 -1
  13. package/dist/channels/dynamic_barrier_value.cjs +119 -9
  14. package/dist/channels/dynamic_barrier_value.d.ts +29 -0
  15. package/dist/channels/dynamic_barrier_value.js +117 -8
  16. package/dist/channels/dynamic_barrier_value.js.map +1 -1
  17. package/dist/channels/ephemeral_value.cjs +3 -0
  18. package/dist/channels/ephemeral_value.d.ts +1 -0
  19. package/dist/channels/ephemeral_value.js +3 -0
  20. package/dist/channels/ephemeral_value.js.map +1 -1
  21. package/dist/channels/last_value.cjs +82 -4
  22. package/dist/channels/last_value.d.ts +21 -0
  23. package/dist/channels/last_value.js +80 -3
  24. package/dist/channels/last_value.js.map +1 -1
  25. package/dist/channels/named_barrier_value.cjs +94 -1
  26. package/dist/channels/named_barrier_value.d.ts +23 -0
  27. package/dist/channels/named_barrier_value.js +92 -0
  28. package/dist/channels/named_barrier_value.js.map +1 -1
  29. package/dist/channels/topic.cjs +3 -0
  30. package/dist/channels/topic.d.ts +1 -0
  31. package/dist/channels/topic.js +3 -0
  32. package/dist/channels/topic.js.map +1 -1
  33. package/dist/constants.cjs +33 -12
  34. package/dist/constants.d.ts +48 -27
  35. package/dist/constants.js +27 -7
  36. package/dist/constants.js.map +1 -1
  37. package/dist/errors.cjs +4 -4
  38. package/dist/errors.js.map +1 -1
  39. package/dist/func/index.cjs +15 -7
  40. package/dist/func/index.d.ts +12 -3
  41. package/dist/func/index.js +12 -4
  42. package/dist/func/index.js.map +1 -1
  43. package/dist/func/types.cjs +1 -2
  44. package/dist/func/types.d.ts +1 -1
  45. package/dist/graph/annotation.cjs +2 -2
  46. package/dist/graph/annotation.js.map +1 -1
  47. package/dist/graph/graph.cjs +46 -40
  48. package/dist/graph/graph.d.ts +14 -4
  49. package/dist/graph/graph.js +46 -40
  50. package/dist/graph/graph.js.map +1 -1
  51. package/dist/graph/index.cjs +3 -1
  52. package/dist/graph/index.d.ts +2 -2
  53. package/dist/graph/index.js +2 -2
  54. package/dist/graph/index.js.map +1 -1
  55. package/dist/graph/message.cjs +43 -5
  56. package/dist/graph/message.d.ts +5 -0
  57. package/dist/graph/message.js +40 -3
  58. package/dist/graph/message.js.map +1 -1
  59. package/dist/graph/message.test.cjs +196 -0
  60. package/dist/graph/message.test.d.ts +1 -0
  61. package/dist/graph/message.test.js +194 -0
  62. package/dist/graph/message.test.js.map +1 -0
  63. package/dist/graph/messages_annotation.cjs +54 -1
  64. package/dist/graph/messages_annotation.d.ts +47 -0
  65. package/dist/graph/messages_annotation.js +53 -0
  66. package/dist/graph/messages_annotation.js.map +1 -1
  67. package/dist/graph/state.cjs +162 -104
  68. package/dist/graph/state.d.ts +36 -11
  69. package/dist/graph/state.js +163 -106
  70. package/dist/graph/state.js.map +1 -1
  71. package/dist/graph/zod/plugin.js.map +1 -1
  72. package/dist/graph/zod/schema.cjs +17 -67
  73. package/dist/graph/zod/schema.js +12 -61
  74. package/dist/graph/zod/schema.js.map +1 -1
  75. package/dist/graph/zod/state.cjs +69 -7
  76. package/dist/graph/zod/state.d.ts +10 -1
  77. package/dist/graph/zod/state.js +61 -0
  78. package/dist/graph/zod/state.js.map +1 -1
  79. package/dist/interrupt.cjs +1 -2
  80. package/dist/interrupt.js.map +1 -1
  81. package/dist/managed/base.cjs +3 -3
  82. package/dist/managed/base.js.map +1 -1
  83. package/dist/managed/shared_value.js.map +1 -1
  84. package/dist/prebuilt/agentName.cjs +3 -4
  85. package/dist/prebuilt/agentName.js.map +1 -1
  86. package/dist/prebuilt/agent_executor.cjs +1 -2
  87. package/dist/prebuilt/agent_executor.d.ts +1 -1
  88. package/dist/prebuilt/agent_executor.js.map +1 -1
  89. package/dist/prebuilt/chat_agent_executor.cjs +1 -2
  90. package/dist/prebuilt/chat_agent_executor.js.map +1 -1
  91. package/dist/prebuilt/react_agent_executor.cjs +103 -49
  92. package/dist/prebuilt/react_agent_executor.d.ts +22 -6
  93. package/dist/prebuilt/react_agent_executor.js +99 -45
  94. package/dist/prebuilt/react_agent_executor.js.map +1 -1
  95. package/dist/prebuilt/tool_executor.js.map +1 -1
  96. package/dist/prebuilt/tool_node.cjs +2 -2
  97. package/dist/prebuilt/tool_node.js.map +1 -1
  98. package/dist/pregel/algo.cjs +68 -27
  99. package/dist/pregel/algo.d.ts +1 -1
  100. package/dist/pregel/algo.js +62 -21
  101. package/dist/pregel/algo.js.map +1 -1
  102. package/dist/pregel/call.cjs +5 -5
  103. package/dist/pregel/call.d.ts +3 -2
  104. package/dist/pregel/call.js +2 -1
  105. package/dist/pregel/call.js.map +1 -1
  106. package/dist/pregel/debug.cjs +10 -10
  107. package/dist/pregel/debug.d.ts +3 -3
  108. package/dist/pregel/debug.js.map +1 -1
  109. package/dist/pregel/debug.test.cjs +37 -31
  110. package/dist/pregel/debug.test.js +18 -12
  111. package/dist/pregel/debug.test.js.map +1 -1
  112. package/dist/pregel/index.cjs +99 -29
  113. package/dist/pregel/index.d.ts +19 -6
  114. package/dist/pregel/index.js +100 -30
  115. package/dist/pregel/index.js.map +1 -1
  116. package/dist/pregel/io.cjs +8 -9
  117. package/dist/pregel/io.js +2 -2
  118. package/dist/pregel/io.js.map +1 -1
  119. package/dist/pregel/io.mapCommand.test.cjs +29 -29
  120. package/dist/pregel/io.mapCommand.test.js +5 -5
  121. package/dist/pregel/io.mapCommand.test.js.map +1 -1
  122. package/dist/pregel/loop.cjs +126 -26
  123. package/dist/pregel/loop.d.ts +29 -2
  124. package/dist/pregel/loop.js +127 -27
  125. package/dist/pregel/loop.js.map +1 -1
  126. package/dist/pregel/messages.cjs +15 -13
  127. package/dist/pregel/messages.d.ts +1 -1
  128. package/dist/pregel/messages.js +15 -13
  129. package/dist/pregel/messages.js.map +1 -1
  130. package/dist/pregel/messages.test.cjs +105 -105
  131. package/dist/pregel/messages.test.js +31 -31
  132. package/dist/pregel/messages.test.js.map +1 -1
  133. package/dist/pregel/read.cjs +12 -1
  134. package/dist/pregel/read.d.ts +3 -1
  135. package/dist/pregel/read.js +12 -1
  136. package/dist/pregel/read.js.map +1 -1
  137. package/dist/pregel/read.test.cjs +35 -35
  138. package/dist/pregel/read.test.js +4 -4
  139. package/dist/pregel/read.test.js.map +1 -1
  140. package/dist/pregel/remote.js.map +1 -1
  141. package/dist/pregel/retry.cjs +12 -16
  142. package/dist/pregel/retry.js +10 -14
  143. package/dist/pregel/retry.js.map +1 -1
  144. package/dist/pregel/runner.cjs +92 -118
  145. package/dist/pregel/runner.js +93 -119
  146. package/dist/pregel/runner.js.map +1 -1
  147. package/dist/pregel/runner.test.cjs +14 -14
  148. package/dist/pregel/runner.test.js +4 -4
  149. package/dist/pregel/runner.test.js.map +1 -1
  150. package/dist/pregel/stream.js.map +1 -1
  151. package/dist/pregel/types.cjs +10 -3
  152. package/dist/pregel/types.d.ts +64 -8
  153. package/dist/pregel/types.js +8 -1
  154. package/dist/pregel/types.js.map +1 -1
  155. package/dist/pregel/utils/config.cjs +40 -22
  156. package/dist/pregel/utils/config.d.ts +8 -5
  157. package/dist/pregel/utils/config.js +33 -14
  158. package/dist/pregel/utils/config.js.map +1 -1
  159. package/dist/pregel/utils/config.test.cjs +58 -58
  160. package/dist/pregel/utils/config.test.js +12 -12
  161. package/dist/pregel/utils/config.test.js.map +1 -1
  162. package/dist/pregel/utils/index.cjs +12 -11
  163. package/dist/pregel/utils/index.d.ts +15 -0
  164. package/dist/pregel/utils/index.js +6 -4
  165. package/dist/pregel/utils/index.js.map +1 -1
  166. package/dist/pregel/utils/subgraph.cjs +2 -3
  167. package/dist/pregel/utils/subgraph.js.map +1 -1
  168. package/dist/pregel/utils/subgraph.test.cjs +18 -18
  169. package/dist/pregel/utils/subgraph.test.js +1 -1
  170. package/dist/pregel/utils/subgraph.test.js.map +1 -1
  171. package/dist/pregel/validate.cjs +3 -3
  172. package/dist/pregel/validate.js.map +1 -1
  173. package/dist/pregel/validate.test.cjs +43 -43
  174. package/dist/pregel/validate.test.js +3 -3
  175. package/dist/pregel/validate.test.js.map +1 -1
  176. package/dist/pregel/write.js.map +1 -1
  177. package/dist/pregel/write.test.cjs +30 -30
  178. package/dist/pregel/write.test.js +8 -8
  179. package/dist/pregel/write.test.js.map +1 -1
  180. package/dist/setup/async_local_storage.cjs +1 -2
  181. package/dist/utils.cjs +7 -7
  182. package/dist/utils.js.map +1 -1
  183. package/dist/web.cjs +6 -1
  184. package/dist/web.d.ts +3 -3
  185. package/dist/web.js +3 -3
  186. package/dist/web.js.map +1 -1
  187. package/package.json +15 -15
@@ -6,6 +6,21 @@ const index_js_1 = require("./utils/index.cjs");
6
6
  const constants_js_1 = require("../constants.cjs");
7
7
  const errors_js_1 = require("../errors.cjs");
8
8
  const retry_js_1 = require("./retry.cjs");
9
+ const PROMISE_ADDED_SYMBOL = Symbol.for("promiseAdded");
10
+ function createPromiseBarrier() {
11
+ const barrier = {
12
+ next: () => void 0,
13
+ wait: Promise.resolve(PROMISE_ADDED_SYMBOL),
14
+ };
15
+ function waitHandler(resolve) {
16
+ barrier.next = () => {
17
+ barrier.wait = new Promise(waitHandler);
18
+ resolve(PROMISE_ADDED_SYMBOL);
19
+ };
20
+ }
21
+ barrier.wait = new Promise(waitHandler);
22
+ return barrier;
23
+ }
9
24
  /**
10
25
  * Responsible for handling task execution on each tick of the {@link PregelLoop}.
11
26
  */
@@ -150,119 +165,14 @@ class PregelRunner {
150
165
  */
151
166
  async *_executeTasksWithRetry(tasks, options) {
152
167
  const { retryPolicy, maxConcurrency, signals } = options ?? {};
153
- const promiseAddedSymbol = Symbol.for("promiseAdded");
154
- let addedPromiseSignal;
155
- let addedPromiseWait;
156
- function waitHandler(resolve) {
157
- addedPromiseSignal = () => {
158
- addedPromiseWait = new Promise(waitHandler);
159
- resolve(promiseAddedSymbol);
160
- };
161
- }
162
- addedPromiseWait = new Promise(waitHandler);
168
+ const barrier = createPromiseBarrier();
163
169
  const executingTasksMap = {};
164
- function writer(runner, task, writes, { calls } = {}) {
165
- if (writes.every(([channel]) => channel !== constants_js_1.PUSH)) {
166
- return task.config?.configurable?.[constants_js_1.CONFIG_KEY_SEND]?.(writes) ?? [];
167
- }
168
- // Schedule PUSH tasks, collect promises
169
- const scratchpad = task.config?.configurable?.[constants_js_1.CONFIG_KEY_SCRATCHPAD];
170
- if (!scratchpad) {
171
- throw new Error(`BUG: No scratchpad found on task ${task.name}__${task.id}`);
172
- }
173
- const rtn = {};
174
- for (const [idx, write] of writes.entries()) {
175
- const [channel] = write;
176
- if (channel !== constants_js_1.PUSH) {
177
- continue;
178
- }
179
- const wcall = calls?.[idx];
180
- const cnt = scratchpad.callCounter;
181
- scratchpad.callCounter += 1;
182
- if (wcall == null) {
183
- throw new Error("BUG: No call found");
184
- }
185
- const nextTask = runner.loop.acceptPush(task, cnt, wcall);
186
- if (!nextTask) {
187
- continue;
188
- }
189
- // Check if this task is already running
190
- const existingPromise = executingTasksMap[nextTask.id];
191
- if (existingPromise !== undefined) {
192
- // If the parent task was retried, the next task might already be running
193
- rtn[idx] = existingPromise;
194
- }
195
- else if (nextTask.writes.length > 0) {
196
- // If it already ran, return the result
197
- const returns = nextTask.writes.filter(([c]) => c === constants_js_1.RETURN);
198
- const errors = nextTask.writes.filter(([c]) => c === constants_js_1.ERROR);
199
- if (returns.length > 0) {
200
- // Task completed successfully
201
- if (returns.length === 1) {
202
- rtn[idx] = Promise.resolve(returns[0][1]);
203
- }
204
- else {
205
- // should be unreachable
206
- throw new Error(`BUG: multiple returns found for task ${nextTask.name}__${nextTask.id}`);
207
- }
208
- }
209
- else if (errors.length > 0) {
210
- if (errors.length === 1) {
211
- const errorValue = errors[0][1];
212
- // Task failed
213
- const error =
214
- // eslint-disable-next-line no-instanceof/no-instanceof
215
- errorValue instanceof Error
216
- ? errorValue
217
- : new Error(String(errorValue));
218
- rtn[idx] = Promise.reject(error);
219
- }
220
- else {
221
- // the only way this should happen is if the task executes multiple times and writes aren't cleared
222
- throw new Error(`BUG: multiple errors found for task ${nextTask.name}__${nextTask.id}`);
223
- }
224
- }
225
- }
226
- else {
227
- // Schedule the next task with retry
228
- const prom = (0, retry_js_1._runWithRetry)(nextTask, retryPolicy, {
229
- [constants_js_1.CONFIG_KEY_SEND]: writer.bind(null, runner, nextTask),
230
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
231
- [constants_js_1.CONFIG_KEY_CALL]: call.bind(null, runner, nextTask),
232
- });
233
- executingTasksMap[nextTask.id] = prom;
234
- addedPromiseSignal();
235
- rtn[idx] = prom.then(({ result, error }) => {
236
- if (error) {
237
- return Promise.reject(error);
238
- }
239
- return result;
240
- });
241
- }
242
- }
243
- return Object.values(rtn);
244
- }
245
- function call(runner, task, func, name, input, options = {}) {
246
- const result = writer(runner, task, [[constants_js_1.PUSH, null]], {
247
- calls: [
248
- new types_js_1.Call({
249
- func,
250
- name,
251
- input,
252
- retry: options.retry,
253
- callbacks: options.callbacks,
254
- }),
255
- ],
256
- });
257
- // eslint-disable-next-line no-instanceof/no-instanceof
258
- if (result !== undefined) {
259
- if (result.length === 1) {
260
- return result[0];
261
- }
262
- return Promise.all(result);
263
- }
264
- return Promise.resolve();
265
- }
170
+ const thisCall = {
171
+ executingTasksMap,
172
+ barrier,
173
+ retryPolicy,
174
+ scheduleTask: async (task, writeIdx, call) => this.loop.acceptPush(task, writeIdx, call),
175
+ };
266
176
  if (signals?.composedAbortSignal?.aborted) {
267
177
  // note: don't use throwIfAborted here because it throws a DOMException,
268
178
  // which isn't consistent with how we throw on abort below.
@@ -288,10 +198,7 @@ class PregelRunner {
288
198
  for (; Object.values(executingTasksMap).length <
289
199
  (maxConcurrency ?? tasks.length) && startedTasksCount < tasks.length; startedTasksCount += 1) {
290
200
  const task = tasks[startedTasksCount];
291
- executingTasksMap[task.id] = (0, retry_js_1._runWithRetry)(task, retryPolicy, {
292
- [constants_js_1.CONFIG_KEY_SEND]: writer?.bind(null, this, task),
293
- [constants_js_1.CONFIG_KEY_CALL]: call?.bind(null, this, task),
294
- }, signals?.composedAbortSignal).catch((error) => {
201
+ executingTasksMap[task.id] = (0, retry_js_1._runWithRetry)(task, retryPolicy, { [constants_js_1.CONFIG_KEY_CALL]: call?.bind(thisCall, this, task) }, signals?.composedAbortSignal).catch((error) => {
295
202
  return {
296
203
  task,
297
204
  error,
@@ -302,9 +209,9 @@ class PregelRunner {
302
209
  const settledTask = await Promise.race([
303
210
  ...Object.values(executingTasksMap),
304
211
  ...(abortPromise ? [abortPromise] : []),
305
- addedPromiseWait,
212
+ barrier.wait,
306
213
  ]);
307
- if (settledTask === promiseAddedSymbol) {
214
+ if (settledTask === PROMISE_ADDED_SYMBOL) {
308
215
  continue;
309
216
  }
310
217
  yield settledTask;
@@ -355,4 +262,71 @@ class PregelRunner {
355
262
  }
356
263
  }
357
264
  exports.PregelRunner = PregelRunner;
265
+ async function call(runner, task, func, name, input, options = {}) {
266
+ // Schedule PUSH tasks, collect promises
267
+ const scratchpad = task.config?.configurable?.[constants_js_1.CONFIG_KEY_SCRATCHPAD];
268
+ if (!scratchpad) {
269
+ throw new Error(`BUG: No scratchpad found on task ${task.name}__${task.id}`);
270
+ }
271
+ const cnt = scratchpad.callCounter;
272
+ scratchpad.callCounter += 1;
273
+ // schedule the next task, if the callback returns one
274
+ const wcall = new types_js_1.Call({
275
+ func,
276
+ name,
277
+ input,
278
+ cache: options.cache,
279
+ retry: options.retry,
280
+ callbacks: options.callbacks,
281
+ });
282
+ const nextTask = await this.scheduleTask(task, cnt, wcall);
283
+ if (!nextTask)
284
+ return undefined;
285
+ // Check if this task is already running
286
+ const existingPromise = this.executingTasksMap[nextTask.id];
287
+ if (existingPromise !== undefined) {
288
+ // If the parent task was retried, the next task might already be running
289
+ return existingPromise;
290
+ }
291
+ if (nextTask.writes.length > 0) {
292
+ // If it already ran, return the result
293
+ const returns = nextTask.writes.filter(([c]) => c === constants_js_1.RETURN);
294
+ const errors = nextTask.writes.filter(([c]) => c === constants_js_1.ERROR);
295
+ if (returns.length > 0) {
296
+ // Task completed successfully
297
+ if (returns.length === 1)
298
+ return Promise.resolve(returns[0][1]);
299
+ // should be unreachable
300
+ throw new Error(`BUG: multiple returns found for task ${nextTask.name}__${nextTask.id}`);
301
+ }
302
+ if (errors.length > 0) {
303
+ // Task failed
304
+ if (errors.length === 1) {
305
+ const errorValue = errors[0][1];
306
+ const error =
307
+ // eslint-disable-next-line no-instanceof/no-instanceof
308
+ errorValue instanceof Error
309
+ ? errorValue
310
+ : new Error(String(errorValue));
311
+ return Promise.reject(error);
312
+ }
313
+ // the only way this should happen is if the task executes multiple times and writes aren't cleared
314
+ throw new Error(`BUG: multiple errors found for task ${nextTask.name}__${nextTask.id}`);
315
+ }
316
+ return undefined;
317
+ }
318
+ else {
319
+ // Schedule the next task with retry
320
+ const prom = (0, retry_js_1._runWithRetry)(nextTask, options.retry, {
321
+ [constants_js_1.CONFIG_KEY_CALL]: call.bind(this, runner, nextTask),
322
+ });
323
+ this.executingTasksMap[nextTask.id] = prom;
324
+ this.barrier.next();
325
+ return prom.then(({ result, error }) => {
326
+ if (error)
327
+ return Promise.reject(error);
328
+ return result;
329
+ });
330
+ }
331
+ }
358
332
  //# sourceMappingURL=runner.js.map
@@ -1,8 +1,23 @@
1
1
  import { Call, } from "./types.js";
2
2
  import { combineAbortSignals, patchConfigurable, } from "./utils/index.js";
3
- import { CONFIG_KEY_SEND, CONFIG_KEY_SCRATCHPAD, PUSH, ERROR, INTERRUPT, RESUME, NO_WRITES, TAG_HIDDEN, RETURN, CONFIG_KEY_CALL, CONFIG_KEY_ABORT_SIGNALS, } from "../constants.js";
3
+ import { CONFIG_KEY_SCRATCHPAD, ERROR, INTERRUPT, RESUME, NO_WRITES, TAG_HIDDEN, RETURN, CONFIG_KEY_CALL, CONFIG_KEY_ABORT_SIGNALS, } from "../constants.js";
4
4
  import { isGraphBubbleUp, isGraphInterrupt } from "../errors.js";
5
5
  import { _runWithRetry } from "./retry.js";
6
+ const PROMISE_ADDED_SYMBOL = Symbol.for("promiseAdded");
7
+ function createPromiseBarrier() {
8
+ const barrier = {
9
+ next: () => void 0,
10
+ wait: Promise.resolve(PROMISE_ADDED_SYMBOL),
11
+ };
12
+ function waitHandler(resolve) {
13
+ barrier.next = () => {
14
+ barrier.wait = new Promise(waitHandler);
15
+ resolve(PROMISE_ADDED_SYMBOL);
16
+ };
17
+ }
18
+ barrier.wait = new Promise(waitHandler);
19
+ return barrier;
20
+ }
6
21
  /**
7
22
  * Responsible for handling task execution on each tick of the {@link PregelLoop}.
8
23
  */
@@ -147,119 +162,14 @@ export class PregelRunner {
147
162
  */
148
163
  async *_executeTasksWithRetry(tasks, options) {
149
164
  const { retryPolicy, maxConcurrency, signals } = options ?? {};
150
- const promiseAddedSymbol = Symbol.for("promiseAdded");
151
- let addedPromiseSignal;
152
- let addedPromiseWait;
153
- function waitHandler(resolve) {
154
- addedPromiseSignal = () => {
155
- addedPromiseWait = new Promise(waitHandler);
156
- resolve(promiseAddedSymbol);
157
- };
158
- }
159
- addedPromiseWait = new Promise(waitHandler);
165
+ const barrier = createPromiseBarrier();
160
166
  const executingTasksMap = {};
161
- function writer(runner, task, writes, { calls } = {}) {
162
- if (writes.every(([channel]) => channel !== PUSH)) {
163
- return task.config?.configurable?.[CONFIG_KEY_SEND]?.(writes) ?? [];
164
- }
165
- // Schedule PUSH tasks, collect promises
166
- const scratchpad = task.config?.configurable?.[CONFIG_KEY_SCRATCHPAD];
167
- if (!scratchpad) {
168
- throw new Error(`BUG: No scratchpad found on task ${task.name}__${task.id}`);
169
- }
170
- const rtn = {};
171
- for (const [idx, write] of writes.entries()) {
172
- const [channel] = write;
173
- if (channel !== PUSH) {
174
- continue;
175
- }
176
- const wcall = calls?.[idx];
177
- const cnt = scratchpad.callCounter;
178
- scratchpad.callCounter += 1;
179
- if (wcall == null) {
180
- throw new Error("BUG: No call found");
181
- }
182
- const nextTask = runner.loop.acceptPush(task, cnt, wcall);
183
- if (!nextTask) {
184
- continue;
185
- }
186
- // Check if this task is already running
187
- const existingPromise = executingTasksMap[nextTask.id];
188
- if (existingPromise !== undefined) {
189
- // If the parent task was retried, the next task might already be running
190
- rtn[idx] = existingPromise;
191
- }
192
- else if (nextTask.writes.length > 0) {
193
- // If it already ran, return the result
194
- const returns = nextTask.writes.filter(([c]) => c === RETURN);
195
- const errors = nextTask.writes.filter(([c]) => c === ERROR);
196
- if (returns.length > 0) {
197
- // Task completed successfully
198
- if (returns.length === 1) {
199
- rtn[idx] = Promise.resolve(returns[0][1]);
200
- }
201
- else {
202
- // should be unreachable
203
- throw new Error(`BUG: multiple returns found for task ${nextTask.name}__${nextTask.id}`);
204
- }
205
- }
206
- else if (errors.length > 0) {
207
- if (errors.length === 1) {
208
- const errorValue = errors[0][1];
209
- // Task failed
210
- const error =
211
- // eslint-disable-next-line no-instanceof/no-instanceof
212
- errorValue instanceof Error
213
- ? errorValue
214
- : new Error(String(errorValue));
215
- rtn[idx] = Promise.reject(error);
216
- }
217
- else {
218
- // the only way this should happen is if the task executes multiple times and writes aren't cleared
219
- throw new Error(`BUG: multiple errors found for task ${nextTask.name}__${nextTask.id}`);
220
- }
221
- }
222
- }
223
- else {
224
- // Schedule the next task with retry
225
- const prom = _runWithRetry(nextTask, retryPolicy, {
226
- [CONFIG_KEY_SEND]: writer.bind(null, runner, nextTask),
227
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
228
- [CONFIG_KEY_CALL]: call.bind(null, runner, nextTask),
229
- });
230
- executingTasksMap[nextTask.id] = prom;
231
- addedPromiseSignal();
232
- rtn[idx] = prom.then(({ result, error }) => {
233
- if (error) {
234
- return Promise.reject(error);
235
- }
236
- return result;
237
- });
238
- }
239
- }
240
- return Object.values(rtn);
241
- }
242
- function call(runner, task, func, name, input, options = {}) {
243
- const result = writer(runner, task, [[PUSH, null]], {
244
- calls: [
245
- new Call({
246
- func,
247
- name,
248
- input,
249
- retry: options.retry,
250
- callbacks: options.callbacks,
251
- }),
252
- ],
253
- });
254
- // eslint-disable-next-line no-instanceof/no-instanceof
255
- if (result !== undefined) {
256
- if (result.length === 1) {
257
- return result[0];
258
- }
259
- return Promise.all(result);
260
- }
261
- return Promise.resolve();
262
- }
167
+ const thisCall = {
168
+ executingTasksMap,
169
+ barrier,
170
+ retryPolicy,
171
+ scheduleTask: async (task, writeIdx, call) => this.loop.acceptPush(task, writeIdx, call),
172
+ };
263
173
  if (signals?.composedAbortSignal?.aborted) {
264
174
  // note: don't use throwIfAborted here because it throws a DOMException,
265
175
  // which isn't consistent with how we throw on abort below.
@@ -285,10 +195,7 @@ export class PregelRunner {
285
195
  for (; Object.values(executingTasksMap).length <
286
196
  (maxConcurrency ?? tasks.length) && startedTasksCount < tasks.length; startedTasksCount += 1) {
287
197
  const task = tasks[startedTasksCount];
288
- executingTasksMap[task.id] = _runWithRetry(task, retryPolicy, {
289
- [CONFIG_KEY_SEND]: writer?.bind(null, this, task),
290
- [CONFIG_KEY_CALL]: call?.bind(null, this, task),
291
- }, signals?.composedAbortSignal).catch((error) => {
198
+ executingTasksMap[task.id] = _runWithRetry(task, retryPolicy, { [CONFIG_KEY_CALL]: call?.bind(thisCall, this, task) }, signals?.composedAbortSignal).catch((error) => {
292
199
  return {
293
200
  task,
294
201
  error,
@@ -299,9 +206,9 @@ export class PregelRunner {
299
206
  const settledTask = await Promise.race([
300
207
  ...Object.values(executingTasksMap),
301
208
  ...(abortPromise ? [abortPromise] : []),
302
- addedPromiseWait,
209
+ barrier.wait,
303
210
  ]);
304
- if (settledTask === promiseAddedSymbol) {
211
+ if (settledTask === PROMISE_ADDED_SYMBOL) {
305
212
  continue;
306
213
  }
307
214
  yield settledTask;
@@ -351,4 +258,71 @@ export class PregelRunner {
351
258
  }
352
259
  }
353
260
  }
261
+ async function call(runner, task, func, name, input, options = {}) {
262
+ // Schedule PUSH tasks, collect promises
263
+ const scratchpad = task.config?.configurable?.[CONFIG_KEY_SCRATCHPAD];
264
+ if (!scratchpad) {
265
+ throw new Error(`BUG: No scratchpad found on task ${task.name}__${task.id}`);
266
+ }
267
+ const cnt = scratchpad.callCounter;
268
+ scratchpad.callCounter += 1;
269
+ // schedule the next task, if the callback returns one
270
+ const wcall = new Call({
271
+ func,
272
+ name,
273
+ input,
274
+ cache: options.cache,
275
+ retry: options.retry,
276
+ callbacks: options.callbacks,
277
+ });
278
+ const nextTask = await this.scheduleTask(task, cnt, wcall);
279
+ if (!nextTask)
280
+ return undefined;
281
+ // Check if this task is already running
282
+ const existingPromise = this.executingTasksMap[nextTask.id];
283
+ if (existingPromise !== undefined) {
284
+ // If the parent task was retried, the next task might already be running
285
+ return existingPromise;
286
+ }
287
+ if (nextTask.writes.length > 0) {
288
+ // If it already ran, return the result
289
+ const returns = nextTask.writes.filter(([c]) => c === RETURN);
290
+ const errors = nextTask.writes.filter(([c]) => c === ERROR);
291
+ if (returns.length > 0) {
292
+ // Task completed successfully
293
+ if (returns.length === 1)
294
+ return Promise.resolve(returns[0][1]);
295
+ // should be unreachable
296
+ throw new Error(`BUG: multiple returns found for task ${nextTask.name}__${nextTask.id}`);
297
+ }
298
+ if (errors.length > 0) {
299
+ // Task failed
300
+ if (errors.length === 1) {
301
+ const errorValue = errors[0][1];
302
+ const error =
303
+ // eslint-disable-next-line no-instanceof/no-instanceof
304
+ errorValue instanceof Error
305
+ ? errorValue
306
+ : new Error(String(errorValue));
307
+ return Promise.reject(error);
308
+ }
309
+ // the only way this should happen is if the task executes multiple times and writes aren't cleared
310
+ throw new Error(`BUG: multiple errors found for task ${nextTask.name}__${nextTask.id}`);
311
+ }
312
+ return undefined;
313
+ }
314
+ else {
315
+ // Schedule the next task with retry
316
+ const prom = _runWithRetry(nextTask, options.retry, {
317
+ [CONFIG_KEY_CALL]: call.bind(this, runner, nextTask),
318
+ });
319
+ this.executingTasksMap[nextTask.id] = prom;
320
+ this.barrier.next();
321
+ return prom.then(({ result, error }) => {
322
+ if (error)
323
+ return Promise.reject(error);
324
+ return result;
325
+ });
326
+ }
327
+ }
354
328
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/pregel/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/pregel/runner.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const globals_1 = require("@jest/globals");
3
+ const vitest_1 = require("vitest");
4
4
  const runner_js_1 = require("./runner.cjs");
5
- (0, globals_1.describe)("PregelRunner", () => {
5
+ (0, vitest_1.describe)("PregelRunner", () => {
6
6
  // Basic structure test
7
- (0, globals_1.describe)("constructor", () => {
8
- (0, globals_1.it)("should initialize without errors", () => {
7
+ (0, vitest_1.describe)("constructor", () => {
8
+ (0, vitest_1.it)("should initialize without errors", () => {
9
9
  const mockLoop = {};
10
10
  const runner = new runner_js_1.PregelRunner({ loop: mockLoop });
11
- (0, globals_1.expect)(runner).toBeInstanceOf(runner_js_1.PregelRunner);
11
+ (0, vitest_1.expect)(runner).toBeInstanceOf(runner_js_1.PregelRunner);
12
12
  });
13
13
  });
14
14
  // Simple behavior test with limited mocking
15
- (0, globals_1.describe)("timeout option", () => {
16
- (0, globals_1.it)("should pass timeout option to AbortSignal.timeout", async () => {
15
+ (0, vitest_1.describe)("timeout option", () => {
16
+ (0, vitest_1.it)("should pass timeout option to AbortSignal.timeout", async () => {
17
17
  const mockLoop = {
18
18
  config: {
19
19
  configurable: {
@@ -24,7 +24,7 @@ const runner_js_1 = require("./runner.cjs");
24
24
  step: 1,
25
25
  isNested: false,
26
26
  };
27
- const timeoutSpy = globals_1.jest.spyOn(AbortSignal, "timeout");
27
+ const timeoutSpy = vitest_1.vi.spyOn(AbortSignal, "timeout");
28
28
  const runner = new runner_js_1.PregelRunner({ loop: mockLoop });
29
29
  try {
30
30
  await runner.tick({ timeout: 5000 });
@@ -32,15 +32,15 @@ const runner_js_1 = require("./runner.cjs");
32
32
  catch (e) {
33
33
  // Ignore errors
34
34
  }
35
- (0, globals_1.expect)(timeoutSpy).toHaveBeenCalledWith(5000);
35
+ (0, vitest_1.expect)(timeoutSpy).toHaveBeenCalledWith(5000);
36
36
  timeoutSpy.mockRestore();
37
37
  });
38
38
  });
39
39
  // Testing the onStepWrite callback behavior
40
- (0, globals_1.describe)("onStepWrite callback", () => {
41
- (0, globals_1.it)("should call onStepWrite with the step number and writes", async () => {
40
+ (0, vitest_1.describe)("onStepWrite callback", () => {
41
+ (0, vitest_1.it)("should call onStepWrite with the step number and writes", async () => {
42
42
  // Create a minimal implementation
43
- const mockOnStepWrite = globals_1.jest.fn();
43
+ const mockOnStepWrite = vitest_1.vi.fn();
44
44
  const mockLoop = {
45
45
  config: {
46
46
  configurable: {
@@ -48,7 +48,7 @@ const runner_js_1 = require("./runner.cjs");
48
48
  },
49
49
  },
50
50
  tasks: {},
51
- step: 42,
51
+ step: 42, // Use a unique value to verify it's passed correctly
52
52
  isNested: false,
53
53
  };
54
54
  const runner = new runner_js_1.PregelRunner({ loop: mockLoop });
@@ -59,7 +59,7 @@ const runner_js_1 = require("./runner.cjs");
59
59
  // Ignore any errors from other parts of the code
60
60
  }
61
61
  // Verify the callback was called with the correct step number (42)
62
- (0, globals_1.expect)(mockOnStepWrite).toHaveBeenCalledWith(42, globals_1.expect.any(Array));
62
+ (0, vitest_1.expect)(mockOnStepWrite).toHaveBeenCalledWith(42, vitest_1.expect.any(Array));
63
63
  });
64
64
  });
65
65
  });
@@ -1,4 +1,4 @@
1
- import { describe, expect, it, jest } from "@jest/globals";
1
+ import { describe, expect, it, vi } from "vitest";
2
2
  import { PregelRunner } from "./runner.js";
3
3
  describe("PregelRunner", () => {
4
4
  // Basic structure test
@@ -22,7 +22,7 @@ describe("PregelRunner", () => {
22
22
  step: 1,
23
23
  isNested: false,
24
24
  };
25
- const timeoutSpy = jest.spyOn(AbortSignal, "timeout");
25
+ const timeoutSpy = vi.spyOn(AbortSignal, "timeout");
26
26
  const runner = new PregelRunner({ loop: mockLoop });
27
27
  try {
28
28
  await runner.tick({ timeout: 5000 });
@@ -38,7 +38,7 @@ describe("PregelRunner", () => {
38
38
  describe("onStepWrite callback", () => {
39
39
  it("should call onStepWrite with the step number and writes", async () => {
40
40
  // Create a minimal implementation
41
- const mockOnStepWrite = jest.fn();
41
+ const mockOnStepWrite = vi.fn();
42
42
  const mockLoop = {
43
43
  config: {
44
44
  configurable: {
@@ -46,7 +46,7 @@ describe("PregelRunner", () => {
46
46
  },
47
47
  },
48
48
  tasks: {},
49
- step: 42,
49
+ step: 42, // Use a unique value to verify it's passed correctly
50
50
  isNested: false,
51
51
  };
52
52
  const runner = new PregelRunner({ loop: mockLoop });
@@ -1 +1 @@
1
- {"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../../src/pregel/runner.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,uBAAuB;IACvB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,QAAQ,GAAG,EAAgB,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,QAAQ,GAAG;gBACf,MAAM,EAAE;oBACN,YAAY,EAAE;wBACZ,SAAS,EAAE,GAAG;qBACf;iBACF;gBACD,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,KAAK;aACS,CAAC;YAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEpD,IAAI;gBACF,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;YAAC,OAAO,CAAC,EAAE;gBACV,gBAAgB;aACjB;YAED,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC9C,UAAU,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,kCAAkC;YAClC,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG;gBACf,MAAM,EAAE;oBACN,YAAY,EAAE;wBACZ,SAAS,EAAE,GAAG;qBACf;iBACF;gBACD,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE,KAAK;aACS,CAAC;YAE3B,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEpD,IAAI;gBACF,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;aACrD;YAAC,OAAO,CAAC,EAAE;gBACV,iDAAiD;aAClD;YAED,mEAAmE;YACnE,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../../src/pregel/runner.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,uBAAuB;IACvB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,QAAQ,GAAG,EAAgB,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,QAAQ,GAAG;gBACf,MAAM,EAAE;oBACN,YAAY,EAAE;wBACZ,SAAS,EAAE,GAAG;qBACf;iBACF;gBACD,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,KAAK;aACS,CAAC;YAE3B,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEpD,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,gBAAgB;YAClB,CAAC;YAED,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC9C,UAAU,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,kCAAkC;YAClC,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG;gBACf,MAAM,EAAE;oBACN,YAAY,EAAE;wBACZ,SAAS,EAAE,GAAG;qBACf;iBACF;gBACD,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,EAAE,EAAE,qDAAqD;gBAC/D,QAAQ,EAAE,KAAK;aACS,CAAC;YAE3B,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEpD,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,iDAAiD;YACnD,CAAC;YAED,mEAAmE;YACnE,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}