@langchain/langgraph 0.2.61 → 0.2.63

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 (78) hide show
  1. package/README.md +14 -0
  2. package/dist/constants.cjs +2 -1
  3. package/dist/constants.d.ts +1 -0
  4. package/dist/constants.js +1 -0
  5. package/dist/constants.js.map +1 -1
  6. package/dist/prebuilt/react_agent_executor.cjs +34 -13
  7. package/dist/prebuilt/react_agent_executor.d.ts +3 -0
  8. package/dist/prebuilt/react_agent_executor.js +34 -15
  9. package/dist/prebuilt/react_agent_executor.js.map +1 -1
  10. package/dist/prebuilt/tool_node.cjs +26 -4
  11. package/dist/prebuilt/tool_node.js +27 -5
  12. package/dist/prebuilt/tool_node.js.map +1 -1
  13. package/dist/pregel/debug.cjs +9 -7
  14. package/dist/pregel/debug.d.ts +10 -0
  15. package/dist/pregel/debug.js +2 -2
  16. package/dist/pregel/debug.js.map +1 -1
  17. package/dist/pregel/debug.test.cjs +189 -0
  18. package/dist/pregel/debug.test.d.ts +1 -0
  19. package/dist/pregel/debug.test.js +187 -0
  20. package/dist/pregel/debug.test.js.map +1 -0
  21. package/dist/pregel/index.cjs +12 -4
  22. package/dist/pregel/index.d.ts +3 -0
  23. package/dist/pregel/index.js +14 -6
  24. package/dist/pregel/index.js.map +1 -1
  25. package/dist/pregel/io.mapCommand.test.cjs +151 -0
  26. package/dist/pregel/io.mapCommand.test.d.ts +1 -0
  27. package/dist/pregel/io.mapCommand.test.js +149 -0
  28. package/dist/pregel/io.mapCommand.test.js.map +1 -0
  29. package/dist/pregel/messages.test.cjs +351 -0
  30. package/dist/pregel/messages.test.d.ts +1 -0
  31. package/dist/pregel/messages.test.js +349 -0
  32. package/dist/pregel/messages.test.js.map +1 -0
  33. package/dist/pregel/read.cjs +1 -1
  34. package/dist/pregel/read.js +1 -1
  35. package/dist/pregel/read.js.map +1 -1
  36. package/dist/pregel/read.test.cjs +194 -0
  37. package/dist/pregel/read.test.d.ts +1 -0
  38. package/dist/pregel/read.test.js +192 -0
  39. package/dist/pregel/read.test.js.map +1 -0
  40. package/dist/pregel/retry.cjs +5 -0
  41. package/dist/pregel/retry.d.ts +2 -0
  42. package/dist/pregel/retry.js +5 -0
  43. package/dist/pregel/retry.js.map +1 -1
  44. package/dist/pregel/runner.cjs +95 -27
  45. package/dist/pregel/runner.d.ts +14 -0
  46. package/dist/pregel/runner.js +97 -29
  47. package/dist/pregel/runner.js.map +1 -1
  48. package/dist/pregel/runner.test.cjs +66 -0
  49. package/dist/pregel/runner.test.d.ts +1 -0
  50. package/dist/pregel/runner.test.js +64 -0
  51. package/dist/pregel/runner.test.js.map +1 -0
  52. package/dist/pregel/stream.cjs +62 -1
  53. package/dist/pregel/stream.d.ts +23 -0
  54. package/dist/pregel/stream.js +60 -0
  55. package/dist/pregel/stream.js.map +1 -1
  56. package/dist/pregel/types.d.ts +19 -0
  57. package/dist/pregel/types.js.map +1 -1
  58. package/dist/pregel/utils/config.test.cjs +214 -0
  59. package/dist/pregel/utils/config.test.d.ts +1 -0
  60. package/dist/pregel/utils/config.test.js +212 -0
  61. package/dist/pregel/utils/config.test.js.map +1 -0
  62. package/dist/pregel/utils/index.cjs +26 -1
  63. package/dist/pregel/utils/index.d.ts +6 -0
  64. package/dist/pregel/utils/index.js +24 -0
  65. package/dist/pregel/utils/index.js.map +1 -1
  66. package/dist/pregel/utils/subgraph.test.cjs +83 -0
  67. package/dist/pregel/utils/subgraph.test.d.ts +1 -0
  68. package/dist/pregel/utils/subgraph.test.js +81 -0
  69. package/dist/pregel/utils/subgraph.test.js.map +1 -0
  70. package/dist/pregel/validate.test.cjs +220 -0
  71. package/dist/pregel/validate.test.d.ts +1 -0
  72. package/dist/pregel/validate.test.js +218 -0
  73. package/dist/pregel/validate.test.js.map +1 -0
  74. package/dist/pregel/write.test.cjs +181 -0
  75. package/dist/pregel/write.test.d.ts +1 -0
  76. package/dist/pregel/write.test.js +179 -0
  77. package/dist/pregel/write.test.js.map +1 -0
  78. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
- import { Call } from "./types.js";
2
- import { CONFIG_KEY_SEND, CONFIG_KEY_SCRATCHPAD, PUSH, ERROR, INTERRUPT, RESUME, NO_WRITES, TAG_HIDDEN, RETURN, CONFIG_KEY_CALL, } from "../constants.js";
1
+ import { Call, } from "./types.js";
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
4
  import { isGraphBubbleUp, isGraphInterrupt } from "../errors.js";
4
5
  import { _runWithRetry } from "./retry.js";
5
6
  /**
@@ -33,18 +34,23 @@ export class PregelRunner {
33
34
  * @param options - Options for the execution.
34
35
  */
35
36
  async tick(options = {}) {
36
- const { timeout, signal, retryPolicy, onStepWrite, maxConcurrency } = options;
37
+ const { timeout, retryPolicy, onStepWrite, maxConcurrency } = options;
37
38
  const nodeErrors = new Set();
38
39
  let graphBubbleUp;
40
+ const exceptionSignalController = new AbortController();
39
41
  // Start task execution
40
42
  const pendingTasks = Object.values(this.loop.tasks).filter((t) => t.writes.length === 0);
43
+ const currentSignals = this._initializeAbortSignals({
44
+ exceptionSignalController,
45
+ timeout,
46
+ signal: options.signal,
47
+ });
41
48
  const taskStream = this._executeTasksWithRetry(pendingTasks, {
42
- stepTimeout: timeout,
43
- signal,
49
+ signals: currentSignals,
44
50
  retryPolicy,
45
51
  maxConcurrency,
46
52
  });
47
- for await (const { task, error } of taskStream) {
53
+ for await (const { task, error, signalAborted } of taskStream) {
48
54
  this._commit(task, error);
49
55
  if (isGraphInterrupt(error)) {
50
56
  graphBubbleUp = error;
@@ -52,7 +58,22 @@ export class PregelRunner {
52
58
  else if (isGraphBubbleUp(error) && !isGraphInterrupt(graphBubbleUp)) {
53
59
  graphBubbleUp = error;
54
60
  }
55
- else if (error) {
61
+ else if (error && (nodeErrors.size === 0 || !signalAborted)) {
62
+ /*
63
+ * The goal here is to capture the exception that causes the graph to terminate early. In
64
+ * theory it's possible for multiple nodes to throw, so this also handles the edge case of
65
+ * capturing concurrent exceptions thrown before the node saw an abort. This is checked via
66
+ * the signalAborted flag, which records the state of the abort signal at the time the node
67
+ * execution finished.
68
+ *
69
+ * There is a case however where one node throws some error causing us to trigger an abort,
70
+ * which then causes other concurrently executing nodes to throw their own AbortErrors. In
71
+ * this case we don't care about reporting the abort errors thrown by the other nodes,
72
+ * because they don't tell the user anything about what caused the graph execution to
73
+ * terminate early, so we ignore them (and any other errors that occur after the node sees
74
+ * an abort signal).
75
+ */
76
+ exceptionSignalController.abort();
56
77
  nodeErrors.add(error);
57
78
  }
58
79
  }
@@ -72,14 +93,60 @@ export class PregelRunner {
72
93
  throw graphBubbleUp;
73
94
  }
74
95
  }
96
+ /**
97
+ * Initializes the current AbortSignals for the PregelRunner, handling the various ways that
98
+ * AbortSignals must be chained together so that the PregelLoop can be interrupted if necessary
99
+ * while still allowing nodes to gracefully exit.
100
+ *
101
+ * This method must only be called once per PregelRunner#tick. It has the side effect of updating
102
+ * the PregelLoop#config with the new AbortSignals so they may be propagated correctly to future
103
+ * ticks and subgraph calls.
104
+ *
105
+ * @param options - Options for the initialization.
106
+ * @returns The current abort signals.
107
+ * @internal
108
+ */
109
+ _initializeAbortSignals({ exceptionSignalController, timeout, signal, }) {
110
+ const previousSignals = this.loop.config.configurable?.[CONFIG_KEY_ABORT_SIGNALS] ?? {};
111
+ // This is true when a node calls a subgraph and, rather than forwarding its own AbortSignal,
112
+ // it creates a new AbortSignal and passes that along instead.
113
+ const subgraphCalledWithSignalCreatedByNode = signal &&
114
+ previousSignals.composedAbortSignal &&
115
+ signal !== previousSignals.composedAbortSignal;
116
+ const externalAbortSignal = subgraphCalledWithSignalCreatedByNode
117
+ ? // Chain the signals here to make sure that the subgraph receives the external abort signal in
118
+ // addition to the signal created by the node.
119
+ combineAbortSignals(previousSignals.externalAbortSignal, signal)
120
+ : // Otherwise, just keep using the external abort signal, or initialize it if it hasn't been
121
+ // assigned yet
122
+ previousSignals.externalAbortSignal ?? signal;
123
+ const errorAbortSignal = previousSignals.errorAbortSignal
124
+ ? // Chaining here rather than always using a fresh one handles the case where a subgraph is
125
+ // called in a parallel branch to some other node in the parent graph.
126
+ combineAbortSignals(previousSignals.errorAbortSignal, exceptionSignalController.signal)
127
+ : exceptionSignalController.signal;
128
+ const timeoutAbortSignal = timeout
129
+ ? AbortSignal.timeout(timeout)
130
+ : undefined;
131
+ const composedAbortSignal = combineAbortSignals(...(externalAbortSignal ? [externalAbortSignal] : []), ...(timeoutAbortSignal ? [timeoutAbortSignal] : []), errorAbortSignal);
132
+ const currentSignals = {
133
+ externalAbortSignal,
134
+ errorAbortSignal,
135
+ timeoutAbortSignal,
136
+ composedAbortSignal,
137
+ };
138
+ this.loop.config = patchConfigurable(this.loop.config, {
139
+ [CONFIG_KEY_ABORT_SIGNALS]: currentSignals,
140
+ });
141
+ return currentSignals;
142
+ }
75
143
  /**
76
144
  * Concurrently executes tasks with the requested retry policy, yielding a {@link SettledPregelTask} for each task as it completes.
77
145
  * @param tasks - The tasks to execute.
78
146
  * @param options - Options for the execution.
79
147
  */
80
148
  async *_executeTasksWithRetry(tasks, options) {
81
- const { stepTimeout, retryPolicy, maxConcurrency } = options ?? {};
82
- let signal = options?.signal;
149
+ const { retryPolicy, maxConcurrency, signals } = options ?? {};
83
150
  const promiseAddedSymbol = Symbol.for("promiseAdded");
84
151
  let addedPromiseSignal;
85
152
  let addedPromiseWait;
@@ -193,29 +260,26 @@ export class PregelRunner {
193
260
  }
194
261
  return Promise.resolve();
195
262
  }
196
- if (stepTimeout && signal) {
197
- if ("any" in AbortSignal) {
198
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
199
- signal = AbortSignal.any([
200
- signal,
201
- AbortSignal.timeout(stepTimeout),
202
- ]);
203
- }
204
- }
205
- else if (stepTimeout) {
206
- signal = AbortSignal.timeout(stepTimeout);
207
- }
208
- if (signal?.aborted) {
263
+ if (signals?.composedAbortSignal?.aborted) {
209
264
  // note: don't use throwIfAborted here because it throws a DOMException,
210
265
  // which isn't consistent with how we throw on abort below.
211
266
  throw new Error("Abort");
212
267
  }
213
268
  let startedTasksCount = 0;
214
269
  let listener;
215
- const signalPromise = new Promise((_resolve, reject) => {
216
- listener = () => reject(new Error("Abort"));
217
- signal?.addEventListener("abort", listener);
218
- }).finally(() => signal?.removeEventListener("abort", listener));
270
+ const timeoutOrCancelSignal = signals?.externalAbortSignal || signals?.timeoutAbortSignal
271
+ ? combineAbortSignals(...(signals.externalAbortSignal
272
+ ? [signals.externalAbortSignal]
273
+ : []), ...(signals.timeoutAbortSignal ? [signals.timeoutAbortSignal] : []))
274
+ : undefined;
275
+ const abortPromise = timeoutOrCancelSignal
276
+ ? new Promise((_resolve, reject) => {
277
+ listener = () => reject(new Error("Abort"));
278
+ timeoutOrCancelSignal.addEventListener("abort", listener, {
279
+ once: true,
280
+ });
281
+ })
282
+ : undefined;
219
283
  while ((startedTasksCount === 0 || Object.keys(executingTasksMap).length > 0) &&
220
284
  tasks.length) {
221
285
  for (; Object.values(executingTasksMap).length <
@@ -224,13 +288,17 @@ export class PregelRunner {
224
288
  executingTasksMap[task.id] = _runWithRetry(task, retryPolicy, {
225
289
  [CONFIG_KEY_SEND]: writer?.bind(null, this, task),
226
290
  [CONFIG_KEY_CALL]: call?.bind(null, this, task),
227
- }).catch((error) => {
228
- return { task, error };
291
+ }, signals?.composedAbortSignal).catch((error) => {
292
+ return {
293
+ task,
294
+ error,
295
+ signalAborted: signals?.composedAbortSignal?.aborted,
296
+ };
229
297
  });
230
298
  }
231
299
  const settledTask = await Promise.race([
232
300
  ...Object.values(executingTasksMap),
233
- signalPromise,
301
+ ...(abortPromise ? [abortPromise] : []),
234
302
  addedPromiseWait,
235
303
  ]);
236
304
  if (settledTask === promiseAddedSymbol) {
@@ -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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"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const globals_1 = require("@jest/globals");
4
+ const runner_js_1 = require("./runner.cjs");
5
+ (0, globals_1.describe)("PregelRunner", () => {
6
+ // Basic structure test
7
+ (0, globals_1.describe)("constructor", () => {
8
+ (0, globals_1.it)("should initialize without errors", () => {
9
+ const mockLoop = {};
10
+ const runner = new runner_js_1.PregelRunner({ loop: mockLoop });
11
+ (0, globals_1.expect)(runner).toBeInstanceOf(runner_js_1.PregelRunner);
12
+ });
13
+ });
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 () => {
17
+ const mockLoop = {
18
+ config: {
19
+ configurable: {
20
+ thread_id: "1",
21
+ },
22
+ },
23
+ tasks: {},
24
+ step: 1,
25
+ isNested: false,
26
+ };
27
+ const timeoutSpy = globals_1.jest.spyOn(AbortSignal, "timeout");
28
+ const runner = new runner_js_1.PregelRunner({ loop: mockLoop });
29
+ try {
30
+ await runner.tick({ timeout: 5000 });
31
+ }
32
+ catch (e) {
33
+ // Ignore errors
34
+ }
35
+ (0, globals_1.expect)(timeoutSpy).toHaveBeenCalledWith(5000);
36
+ timeoutSpy.mockRestore();
37
+ });
38
+ });
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 () => {
42
+ // Create a minimal implementation
43
+ const mockOnStepWrite = globals_1.jest.fn();
44
+ const mockLoop = {
45
+ config: {
46
+ configurable: {
47
+ thread_id: "1",
48
+ },
49
+ },
50
+ tasks: {},
51
+ step: 42,
52
+ isNested: false,
53
+ };
54
+ const runner = new runner_js_1.PregelRunner({ loop: mockLoop });
55
+ try {
56
+ await runner.tick({ onStepWrite: mockOnStepWrite });
57
+ }
58
+ catch (e) {
59
+ // Ignore any errors from other parts of the code
60
+ }
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));
63
+ });
64
+ });
65
+ });
66
+ //# sourceMappingURL=runner.test.js.map
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,64 @@
1
+ import { describe, expect, it, jest } from "@jest/globals";
2
+ import { PregelRunner } from "./runner.js";
3
+ describe("PregelRunner", () => {
4
+ // Basic structure test
5
+ describe("constructor", () => {
6
+ it("should initialize without errors", () => {
7
+ const mockLoop = {};
8
+ const runner = new PregelRunner({ loop: mockLoop });
9
+ expect(runner).toBeInstanceOf(PregelRunner);
10
+ });
11
+ });
12
+ // Simple behavior test with limited mocking
13
+ describe("timeout option", () => {
14
+ it("should pass timeout option to AbortSignal.timeout", async () => {
15
+ const mockLoop = {
16
+ config: {
17
+ configurable: {
18
+ thread_id: "1",
19
+ },
20
+ },
21
+ tasks: {},
22
+ step: 1,
23
+ isNested: false,
24
+ };
25
+ const timeoutSpy = jest.spyOn(AbortSignal, "timeout");
26
+ const runner = new PregelRunner({ loop: mockLoop });
27
+ try {
28
+ await runner.tick({ timeout: 5000 });
29
+ }
30
+ catch (e) {
31
+ // Ignore errors
32
+ }
33
+ expect(timeoutSpy).toHaveBeenCalledWith(5000);
34
+ timeoutSpy.mockRestore();
35
+ });
36
+ });
37
+ // Testing the onStepWrite callback behavior
38
+ describe("onStepWrite callback", () => {
39
+ it("should call onStepWrite with the step number and writes", async () => {
40
+ // Create a minimal implementation
41
+ const mockOnStepWrite = jest.fn();
42
+ const mockLoop = {
43
+ config: {
44
+ configurable: {
45
+ thread_id: "1",
46
+ },
47
+ },
48
+ tasks: {},
49
+ step: 42,
50
+ isNested: false,
51
+ };
52
+ const runner = new PregelRunner({ loop: mockLoop });
53
+ try {
54
+ await runner.tick({ onStepWrite: mockOnStepWrite });
55
+ }
56
+ catch (e) {
57
+ // Ignore any errors from other parts of the code
58
+ }
59
+ // Verify the callback was called with the correct step number (42)
60
+ expect(mockOnStepWrite).toHaveBeenCalledWith(42, expect.any(Array));
61
+ });
62
+ });
63
+ });
64
+ //# sourceMappingURL=runner.test.js.map
@@ -0,0 +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,7 +1,68 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IterableReadableWritableStream = void 0;
3
+ exports.IterableReadableWritableStream = exports.IterableReadableStreamWithAbortSignal = void 0;
4
4
  const stream_1 = require("@langchain/core/utils/stream");
5
+ /**
6
+ * A wrapper around an IterableReadableStream that allows for aborting the stream when
7
+ * {@link cancel} is called.
8
+ */
9
+ class IterableReadableStreamWithAbortSignal extends stream_1.IterableReadableStream {
10
+ /**
11
+ * @param readableStream - The stream to wrap.
12
+ * @param abortController - The abort controller to use. Optional. One will be created if not provided.
13
+ */
14
+ constructor(readableStream, abortController) {
15
+ const reader = readableStream.getReader();
16
+ const ac = abortController ?? new AbortController();
17
+ super({
18
+ start(controller) {
19
+ return pump();
20
+ function pump() {
21
+ return reader.read().then(({ done, value }) => {
22
+ // When no more data needs to be consumed, close the stream
23
+ if (done) {
24
+ controller.close();
25
+ return;
26
+ }
27
+ // Enqueue the next data chunk into our target stream
28
+ controller.enqueue(value);
29
+ return pump();
30
+ });
31
+ }
32
+ },
33
+ });
34
+ Object.defineProperty(this, "_abortController", {
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true,
38
+ value: void 0
39
+ });
40
+ Object.defineProperty(this, "_reader", {
41
+ enumerable: true,
42
+ configurable: true,
43
+ writable: true,
44
+ value: void 0
45
+ });
46
+ this._abortController = ac;
47
+ this._reader = reader;
48
+ }
49
+ /**
50
+ * Aborts the stream, abandoning any pending operations in progress. Calling this triggers an
51
+ * {@link AbortSignal} that is propagated to the tasks that are producing the data for this stream.
52
+ * @param reason - The reason for aborting the stream. Optional.
53
+ */
54
+ async cancel(reason) {
55
+ this._abortController.abort(reason);
56
+ this._reader.releaseLock();
57
+ }
58
+ /**
59
+ * The {@link AbortSignal} for the stream. Aborted when {@link cancel} is called.
60
+ */
61
+ get signal() {
62
+ return this._abortController.signal;
63
+ }
64
+ }
65
+ exports.IterableReadableStreamWithAbortSignal = IterableReadableStreamWithAbortSignal;
5
66
  class IterableReadableWritableStream extends stream_1.IterableReadableStream {
6
67
  get closed() {
7
68
  return this._closed;
@@ -1,6 +1,29 @@
1
1
  import { IterableReadableStream } from "@langchain/core/utils/stream";
2
2
  import { StreamMode } from "./types.js";
3
3
  export type StreamChunk = [string[], StreamMode, unknown];
4
+ /**
5
+ * A wrapper around an IterableReadableStream that allows for aborting the stream when
6
+ * {@link cancel} is called.
7
+ */
8
+ export declare class IterableReadableStreamWithAbortSignal<T> extends IterableReadableStream<T> {
9
+ protected _abortController: AbortController;
10
+ protected _reader: ReadableStreamDefaultReader<T>;
11
+ /**
12
+ * @param readableStream - The stream to wrap.
13
+ * @param abortController - The abort controller to use. Optional. One will be created if not provided.
14
+ */
15
+ constructor(readableStream: ReadableStream<T>, abortController?: AbortController);
16
+ /**
17
+ * Aborts the stream, abandoning any pending operations in progress. Calling this triggers an
18
+ * {@link AbortSignal} that is propagated to the tasks that are producing the data for this stream.
19
+ * @param reason - The reason for aborting the stream. Optional.
20
+ */
21
+ cancel(reason?: unknown): Promise<void>;
22
+ /**
23
+ * The {@link AbortSignal} for the stream. Aborted when {@link cancel} is called.
24
+ */
25
+ get signal(): AbortSignal;
26
+ }
4
27
  export declare class IterableReadableWritableStream extends IterableReadableStream<StreamChunk> {
5
28
  modes: Set<StreamMode>;
6
29
  private controller;
@@ -1,4 +1,64 @@
1
1
  import { IterableReadableStream } from "@langchain/core/utils/stream";
2
+ /**
3
+ * A wrapper around an IterableReadableStream that allows for aborting the stream when
4
+ * {@link cancel} is called.
5
+ */
6
+ export class IterableReadableStreamWithAbortSignal extends IterableReadableStream {
7
+ /**
8
+ * @param readableStream - The stream to wrap.
9
+ * @param abortController - The abort controller to use. Optional. One will be created if not provided.
10
+ */
11
+ constructor(readableStream, abortController) {
12
+ const reader = readableStream.getReader();
13
+ const ac = abortController ?? new AbortController();
14
+ super({
15
+ start(controller) {
16
+ return pump();
17
+ function pump() {
18
+ return reader.read().then(({ done, value }) => {
19
+ // When no more data needs to be consumed, close the stream
20
+ if (done) {
21
+ controller.close();
22
+ return;
23
+ }
24
+ // Enqueue the next data chunk into our target stream
25
+ controller.enqueue(value);
26
+ return pump();
27
+ });
28
+ }
29
+ },
30
+ });
31
+ Object.defineProperty(this, "_abortController", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: void 0
36
+ });
37
+ Object.defineProperty(this, "_reader", {
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true,
41
+ value: void 0
42
+ });
43
+ this._abortController = ac;
44
+ this._reader = reader;
45
+ }
46
+ /**
47
+ * Aborts the stream, abandoning any pending operations in progress. Calling this triggers an
48
+ * {@link AbortSignal} that is propagated to the tasks that are producing the data for this stream.
49
+ * @param reason - The reason for aborting the stream. Optional.
50
+ */
51
+ async cancel(reason) {
52
+ this._abortController.abort(reason);
53
+ this._reader.releaseLock();
54
+ }
55
+ /**
56
+ * The {@link AbortSignal} for the stream. Aborted when {@link cancel} is called.
57
+ */
58
+ get signal() {
59
+ return this._abortController.signal;
60
+ }
61
+ }
2
62
  export class IterableReadableWritableStream extends IterableReadableStream {
3
63
  get closed() {
4
64
  return this._closed;
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/pregel/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAMtE,MAAM,OAAO,8BAA+B,SAAQ,sBAAmC;IASrF,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,YAAY,MAGX;QACC,IAAI,+BAEK,CAAC;QACV,MAAM,uBAAuB,GAC3B,IAAI,OAAO,CAAkC,CAAC,OAAO,EAAE,EAAE;YACvD,+BAA+B,GAAG,OAAO,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEL,KAAK,CAAC;YACJ,KAAK,EAAE,CAAC,UAAU,EAAE,EAAE;gBACpB,+BAAgC,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;SACF,CAAC,CAAC;QA5BL;;;;;WAAuB;QAEvB;;;;;WAAoD;QAEpD;;;;;WAAqD;QAErD;;;;mBAA2B,KAAK;WAAC;QAwB/B,qEAAqE;QACrE,cAAc;QACd,KAAK,uBAAuB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;YAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,KAAkB;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK;QACH,IAAI;YACF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SACzB;QAAC,OAAO,CAAC,EAAE;YACV,OAAO;SACR;gBAAS;YACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,CAAM;QACV,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/pregel/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAMtE;;;GAGG;AACH,MAAM,OAAO,qCAEX,SAAQ,sBAAyB;IAKjC;;;OAGG;IACH,YACE,cAAiC,EACjC,eAAiC;QAEjC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,eAAe,IAAI,IAAI,eAAe,EAAE,CAAC;QACpD,KAAK,CAAC;YACJ,KAAK,CAAC,UAA8C;gBAClD,OAAO,IAAI,EAAE,CAAC;gBACd,SAAS,IAAI;oBACX,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;wBAC5C,2DAA2D;wBAC3D,IAAI,IAAI,EAAE;4BACR,UAAU,CAAC,KAAK,EAAE,CAAC;4BACnB,OAAO;yBACR;wBACD,qDAAqD;wBACrD,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBAC1B,OAAO,IAAI,EAAE,CAAC;oBAChB,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QA9BL;;;;;WAA4C;QAE5C;;;;;WAAkD;QA6BhD,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACM,KAAK,CAAC,MAAM,CAAC,MAAgB;QACpC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;IACtC,CAAC;CACF;AAED,MAAM,OAAO,8BAA+B,SAAQ,sBAAmC;IASrF,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,YAAY,MAGX;QACC,IAAI,+BAEK,CAAC;QACV,MAAM,uBAAuB,GAC3B,IAAI,OAAO,CAAkC,CAAC,OAAO,EAAE,EAAE;YACvD,+BAA+B,GAAG,OAAO,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEL,KAAK,CAAC;YACJ,KAAK,EAAE,CAAC,UAAU,EAAE,EAAE;gBACpB,+BAAgC,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;SACF,CAAC,CAAC;QA5BL;;;;;WAAuB;QAEvB;;;;;WAAoD;QAEpD;;;;;WAAqD;QAErD;;;;mBAA2B,KAAK;WAAC;QAwB/B,qEAAqE;QACrE,cAAc;QACd,KAAK,uBAAuB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;YAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,KAAkB;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK;QACH,IAAI;YACF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SACzB;QAAC,OAAO,CAAC,EAAE;YACV,OAAO;SACR;gBAAS;YACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,CAAM;QACV,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;CACF"}
@@ -329,6 +329,25 @@ export type PregelScratchpad<Resume = unknown> = {
329
329
  /** The input to the currently executing task */
330
330
  currentTaskInput: unknown;
331
331
  };
332
+ /**
333
+ * @internal
334
+ */
335
+ export type PregelAbortSignals = {
336
+ /** Aborts when the user calls `stream.cancel()` or aborts the {@link AbortSignal} that they passed in via the `signal` option */
337
+ externalAbortSignal?: AbortSignal;
338
+ /**
339
+ * Aborts when the currently executing task throws any error other than a {@link GraphBubbleUp}
340
+ */
341
+ errorAbortSignal?: AbortSignal;
342
+ /**
343
+ * Aborts when the currently executing task throws any error other than a {@link GraphBubbleUp}
344
+ */
345
+ timeoutAbortSignal?: AbortSignal;
346
+ /**
347
+ * A reference to the AbortSignal that is passed to the node. Aborts on step timeout, stream cancel, or when an error is thrown.
348
+ */
349
+ composedAbortSignal?: AbortSignal;
350
+ };
332
351
  export type CallOptions = {
333
352
  func: (...args: unknown[]) => unknown | Promise<unknown>;
334
353
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/pregel/types.ts"],"names":[],"mappings":"AAobA,MAAM,OAAO,IAAI;IAaf,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAe;QAZhE;;;;;WAAyD;QAEzD;;;;;WAAa;QAEb;;;;;WAAe;QAEf;;;;;WAAoB;QAEpB;;;;;WAAoB;QAEpB;;;;mBAAqB,MAAM;WAAC;QAG1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,WAAW,IAAI,KAAK;QACpB,KAAK,CAAC,SAAS,KAAK,MAAM,CAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/pregel/types.ts"],"names":[],"mappings":"AA2cA,MAAM,OAAO,IAAI;IAaf,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAe;QAZhE;;;;;WAAyD;QAEzD;;;;;WAAa;QAEb;;;;;WAAe;QAEf;;;;;WAAoB;QAEpB;;;;;WAAoB;QAEpB;;;;mBAAqB,MAAM;WAAC;QAG1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,WAAW,IAAI,KAAK;QACpB,KAAK,CAAC,SAAS,KAAK,MAAM,CAC3B,CAAC;AACJ,CAAC"}