@langchain/langgraph 0.2.60 → 0.2.62
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.
- package/dist/constants.cjs +2 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/graph/state.d.ts +2 -1
- package/dist/graph/state.js.map +1 -1
- package/dist/graph/zod/index.cjs +1 -0
- package/dist/graph/zod/index.js +1 -0
- package/dist/graph/zod/index.js.map +1 -1
- package/dist/prebuilt/react_agent_executor.cjs +3 -3
- package/dist/prebuilt/react_agent_executor.js +3 -3
- package/dist/prebuilt/react_agent_executor.js.map +1 -1
- package/dist/pregel/index.cjs +12 -4
- package/dist/pregel/index.d.ts +3 -0
- package/dist/pregel/index.js +14 -6
- package/dist/pregel/index.js.map +1 -1
- package/dist/pregel/retry.cjs +5 -0
- package/dist/pregel/retry.d.ts +2 -0
- package/dist/pregel/retry.js +5 -0
- package/dist/pregel/retry.js.map +1 -1
- package/dist/pregel/runner.cjs +95 -27
- package/dist/pregel/runner.d.ts +14 -0
- package/dist/pregel/runner.js +97 -29
- package/dist/pregel/runner.js.map +1 -1
- package/dist/pregel/stream.cjs +62 -1
- package/dist/pregel/stream.d.ts +23 -0
- package/dist/pregel/stream.js +60 -0
- package/dist/pregel/stream.js.map +1 -1
- package/dist/pregel/types.d.ts +19 -0
- package/dist/pregel/types.js.map +1 -1
- package/dist/pregel/utils/index.cjs +26 -1
- package/dist/pregel/utils/index.d.ts +6 -0
- package/dist/pregel/utils/index.js +24 -0
- package/dist/pregel/utils/index.js.map +1 -1
- package/package.json +1 -1
package/dist/pregel/retry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/pregel/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAoB,MAAM,kBAAkB,CAAC;AAEvE,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAC5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAC3C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC,MAAM,uBAAuB,GAAG;IAC9B,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG,EAAE,WAAW;CACjB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,wBAAwB,GAAG,CAAC,KAAU,EAAE,EAAE;IAC9C,IACE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAClC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;QACtC,KAAK,CAAC,IAAI,KAAK,YAAY,EAC3B;QACA,OAAO,KAAK,CAAC;KACd;IACD,8DAA8D;IAC9D,IAAK,KAAa,EAAE,IAAI,KAAK,cAAc,EAAE;QAC3C,OAAO,KAAK,CAAC;KACd;IACD,MAAM,MAAM;IACV,8DAA8D;IAC7D,KAAa,EAAE,QAAQ,EAAE,MAAM,IAAK,KAAa,EAAE,MAAM,CAAC;IAC7D,IAAI,MAAM,IAAI,uBAAuB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE;QACvD,OAAO,KAAK,CAAC;KACd;IACD,8DAA8D;IAC9D,IAAK,KAAa,EAAE,KAAK,EAAE,IAAI,KAAK,oBAAoB,EAAE;QACxD,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/pregel/retry.ts"],"names":[],"mappings":"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"}
|
package/dist/pregel/runner.cjs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PregelRunner = void 0;
|
|
4
4
|
const types_js_1 = require("./types.cjs");
|
|
5
|
+
const index_js_1 = require("./utils/index.cjs");
|
|
5
6
|
const constants_js_1 = require("../constants.cjs");
|
|
6
7
|
const errors_js_1 = require("../errors.cjs");
|
|
7
8
|
const retry_js_1 = require("./retry.cjs");
|
|
@@ -36,18 +37,23 @@ class PregelRunner {
|
|
|
36
37
|
* @param options - Options for the execution.
|
|
37
38
|
*/
|
|
38
39
|
async tick(options = {}) {
|
|
39
|
-
const { timeout,
|
|
40
|
+
const { timeout, retryPolicy, onStepWrite, maxConcurrency } = options;
|
|
40
41
|
const nodeErrors = new Set();
|
|
41
42
|
let graphBubbleUp;
|
|
43
|
+
const exceptionSignalController = new AbortController();
|
|
42
44
|
// Start task execution
|
|
43
45
|
const pendingTasks = Object.values(this.loop.tasks).filter((t) => t.writes.length === 0);
|
|
46
|
+
const currentSignals = this._initializeAbortSignals({
|
|
47
|
+
exceptionSignalController,
|
|
48
|
+
timeout,
|
|
49
|
+
signal: options.signal,
|
|
50
|
+
});
|
|
44
51
|
const taskStream = this._executeTasksWithRetry(pendingTasks, {
|
|
45
|
-
|
|
46
|
-
signal,
|
|
52
|
+
signals: currentSignals,
|
|
47
53
|
retryPolicy,
|
|
48
54
|
maxConcurrency,
|
|
49
55
|
});
|
|
50
|
-
for await (const { task, error } of taskStream) {
|
|
56
|
+
for await (const { task, error, signalAborted } of taskStream) {
|
|
51
57
|
this._commit(task, error);
|
|
52
58
|
if ((0, errors_js_1.isGraphInterrupt)(error)) {
|
|
53
59
|
graphBubbleUp = error;
|
|
@@ -55,7 +61,22 @@ class PregelRunner {
|
|
|
55
61
|
else if ((0, errors_js_1.isGraphBubbleUp)(error) && !(0, errors_js_1.isGraphInterrupt)(graphBubbleUp)) {
|
|
56
62
|
graphBubbleUp = error;
|
|
57
63
|
}
|
|
58
|
-
else if (error) {
|
|
64
|
+
else if (error && (nodeErrors.size === 0 || !signalAborted)) {
|
|
65
|
+
/*
|
|
66
|
+
* The goal here is to capture the exception that causes the graph to terminate early. In
|
|
67
|
+
* theory it's possible for multiple nodes to throw, so this also handles the edge case of
|
|
68
|
+
* capturing concurrent exceptions thrown before the node saw an abort. This is checked via
|
|
69
|
+
* the signalAborted flag, which records the state of the abort signal at the time the node
|
|
70
|
+
* execution finished.
|
|
71
|
+
*
|
|
72
|
+
* There is a case however where one node throws some error causing us to trigger an abort,
|
|
73
|
+
* which then causes other concurrently executing nodes to throw their own AbortErrors. In
|
|
74
|
+
* this case we don't care about reporting the abort errors thrown by the other nodes,
|
|
75
|
+
* because they don't tell the user anything about what caused the graph execution to
|
|
76
|
+
* terminate early, so we ignore them (and any other errors that occur after the node sees
|
|
77
|
+
* an abort signal).
|
|
78
|
+
*/
|
|
79
|
+
exceptionSignalController.abort();
|
|
59
80
|
nodeErrors.add(error);
|
|
60
81
|
}
|
|
61
82
|
}
|
|
@@ -75,14 +96,60 @@ class PregelRunner {
|
|
|
75
96
|
throw graphBubbleUp;
|
|
76
97
|
}
|
|
77
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Initializes the current AbortSignals for the PregelRunner, handling the various ways that
|
|
101
|
+
* AbortSignals must be chained together so that the PregelLoop can be interrupted if necessary
|
|
102
|
+
* while still allowing nodes to gracefully exit.
|
|
103
|
+
*
|
|
104
|
+
* This method must only be called once per PregelRunner#tick. It has the side effect of updating
|
|
105
|
+
* the PregelLoop#config with the new AbortSignals so they may be propagated correctly to future
|
|
106
|
+
* ticks and subgraph calls.
|
|
107
|
+
*
|
|
108
|
+
* @param options - Options for the initialization.
|
|
109
|
+
* @returns The current abort signals.
|
|
110
|
+
* @internal
|
|
111
|
+
*/
|
|
112
|
+
_initializeAbortSignals({ exceptionSignalController, timeout, signal, }) {
|
|
113
|
+
const previousSignals = this.loop.config.configurable?.[constants_js_1.CONFIG_KEY_ABORT_SIGNALS] ?? {};
|
|
114
|
+
// This is true when a node calls a subgraph and, rather than forwarding its own AbortSignal,
|
|
115
|
+
// it creates a new AbortSignal and passes that along instead.
|
|
116
|
+
const subgraphCalledWithSignalCreatedByNode = signal &&
|
|
117
|
+
previousSignals.composedAbortSignal &&
|
|
118
|
+
signal !== previousSignals.composedAbortSignal;
|
|
119
|
+
const externalAbortSignal = subgraphCalledWithSignalCreatedByNode
|
|
120
|
+
? // Chain the signals here to make sure that the subgraph receives the external abort signal in
|
|
121
|
+
// addition to the signal created by the node.
|
|
122
|
+
(0, index_js_1.combineAbortSignals)(previousSignals.externalAbortSignal, signal)
|
|
123
|
+
: // Otherwise, just keep using the external abort signal, or initialize it if it hasn't been
|
|
124
|
+
// assigned yet
|
|
125
|
+
previousSignals.externalAbortSignal ?? signal;
|
|
126
|
+
const errorAbortSignal = previousSignals.errorAbortSignal
|
|
127
|
+
? // Chaining here rather than always using a fresh one handles the case where a subgraph is
|
|
128
|
+
// called in a parallel branch to some other node in the parent graph.
|
|
129
|
+
(0, index_js_1.combineAbortSignals)(previousSignals.errorAbortSignal, exceptionSignalController.signal)
|
|
130
|
+
: exceptionSignalController.signal;
|
|
131
|
+
const timeoutAbortSignal = timeout
|
|
132
|
+
? AbortSignal.timeout(timeout)
|
|
133
|
+
: undefined;
|
|
134
|
+
const composedAbortSignal = (0, index_js_1.combineAbortSignals)(...(externalAbortSignal ? [externalAbortSignal] : []), ...(timeoutAbortSignal ? [timeoutAbortSignal] : []), errorAbortSignal);
|
|
135
|
+
const currentSignals = {
|
|
136
|
+
externalAbortSignal,
|
|
137
|
+
errorAbortSignal,
|
|
138
|
+
timeoutAbortSignal,
|
|
139
|
+
composedAbortSignal,
|
|
140
|
+
};
|
|
141
|
+
this.loop.config = (0, index_js_1.patchConfigurable)(this.loop.config, {
|
|
142
|
+
[constants_js_1.CONFIG_KEY_ABORT_SIGNALS]: currentSignals,
|
|
143
|
+
});
|
|
144
|
+
return currentSignals;
|
|
145
|
+
}
|
|
78
146
|
/**
|
|
79
147
|
* Concurrently executes tasks with the requested retry policy, yielding a {@link SettledPregelTask} for each task as it completes.
|
|
80
148
|
* @param tasks - The tasks to execute.
|
|
81
149
|
* @param options - Options for the execution.
|
|
82
150
|
*/
|
|
83
151
|
async *_executeTasksWithRetry(tasks, options) {
|
|
84
|
-
const {
|
|
85
|
-
let signal = options?.signal;
|
|
152
|
+
const { retryPolicy, maxConcurrency, signals } = options ?? {};
|
|
86
153
|
const promiseAddedSymbol = Symbol.for("promiseAdded");
|
|
87
154
|
let addedPromiseSignal;
|
|
88
155
|
let addedPromiseWait;
|
|
@@ -196,29 +263,26 @@ class PregelRunner {
|
|
|
196
263
|
}
|
|
197
264
|
return Promise.resolve();
|
|
198
265
|
}
|
|
199
|
-
if (
|
|
200
|
-
if ("any" in AbortSignal) {
|
|
201
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
202
|
-
signal = AbortSignal.any([
|
|
203
|
-
signal,
|
|
204
|
-
AbortSignal.timeout(stepTimeout),
|
|
205
|
-
]);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
else if (stepTimeout) {
|
|
209
|
-
signal = AbortSignal.timeout(stepTimeout);
|
|
210
|
-
}
|
|
211
|
-
if (signal?.aborted) {
|
|
266
|
+
if (signals?.composedAbortSignal?.aborted) {
|
|
212
267
|
// note: don't use throwIfAborted here because it throws a DOMException,
|
|
213
268
|
// which isn't consistent with how we throw on abort below.
|
|
214
269
|
throw new Error("Abort");
|
|
215
270
|
}
|
|
216
271
|
let startedTasksCount = 0;
|
|
217
272
|
let listener;
|
|
218
|
-
const
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
273
|
+
const timeoutOrCancelSignal = signals?.externalAbortSignal || signals?.timeoutAbortSignal
|
|
274
|
+
? (0, index_js_1.combineAbortSignals)(...(signals.externalAbortSignal
|
|
275
|
+
? [signals.externalAbortSignal]
|
|
276
|
+
: []), ...(signals.timeoutAbortSignal ? [signals.timeoutAbortSignal] : []))
|
|
277
|
+
: undefined;
|
|
278
|
+
const abortPromise = timeoutOrCancelSignal
|
|
279
|
+
? new Promise((_resolve, reject) => {
|
|
280
|
+
listener = () => reject(new Error("Abort"));
|
|
281
|
+
timeoutOrCancelSignal.addEventListener("abort", listener, {
|
|
282
|
+
once: true,
|
|
283
|
+
});
|
|
284
|
+
})
|
|
285
|
+
: undefined;
|
|
222
286
|
while ((startedTasksCount === 0 || Object.keys(executingTasksMap).length > 0) &&
|
|
223
287
|
tasks.length) {
|
|
224
288
|
for (; Object.values(executingTasksMap).length <
|
|
@@ -227,13 +291,17 @@ class PregelRunner {
|
|
|
227
291
|
executingTasksMap[task.id] = (0, retry_js_1._runWithRetry)(task, retryPolicy, {
|
|
228
292
|
[constants_js_1.CONFIG_KEY_SEND]: writer?.bind(null, this, task),
|
|
229
293
|
[constants_js_1.CONFIG_KEY_CALL]: call?.bind(null, this, task),
|
|
230
|
-
}).catch((error) => {
|
|
231
|
-
return {
|
|
294
|
+
}, signals?.composedAbortSignal).catch((error) => {
|
|
295
|
+
return {
|
|
296
|
+
task,
|
|
297
|
+
error,
|
|
298
|
+
signalAborted: signals?.composedAbortSignal?.aborted,
|
|
299
|
+
};
|
|
232
300
|
});
|
|
233
301
|
}
|
|
234
302
|
const settledTask = await Promise.race([
|
|
235
303
|
...Object.values(executingTasksMap),
|
|
236
|
-
|
|
304
|
+
...(abortPromise ? [abortPromise] : []),
|
|
237
305
|
addedPromiseWait,
|
|
238
306
|
]);
|
|
239
307
|
if (settledTask === promiseAddedSymbol) {
|
package/dist/pregel/runner.d.ts
CHANGED
|
@@ -47,6 +47,20 @@ export declare class PregelRunner {
|
|
|
47
47
|
* @param options - Options for the execution.
|
|
48
48
|
*/
|
|
49
49
|
tick(options?: TickOptions): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Initializes the current AbortSignals for the PregelRunner, handling the various ways that
|
|
52
|
+
* AbortSignals must be chained together so that the PregelLoop can be interrupted if necessary
|
|
53
|
+
* while still allowing nodes to gracefully exit.
|
|
54
|
+
*
|
|
55
|
+
* This method must only be called once per PregelRunner#tick. It has the side effect of updating
|
|
56
|
+
* the PregelLoop#config with the new AbortSignals so they may be propagated correctly to future
|
|
57
|
+
* ticks and subgraph calls.
|
|
58
|
+
*
|
|
59
|
+
* @param options - Options for the initialization.
|
|
60
|
+
* @returns The current abort signals.
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
private _initializeAbortSignals;
|
|
50
64
|
/**
|
|
51
65
|
* Concurrently executes tasks with the requested retry policy, yielding a {@link SettledPregelTask} for each task as it completes.
|
|
52
66
|
* @param tasks - The tasks to execute.
|
package/dist/pregel/runner.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Call } from "./types.js";
|
|
2
|
-
import {
|
|
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,
|
|
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
|
-
|
|
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 {
|
|
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 (
|
|
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
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
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 {
|
|
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
|
-
|
|
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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"}
|
package/dist/pregel/stream.cjs
CHANGED
|
@@ -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;
|
package/dist/pregel/stream.d.ts
CHANGED
|
@@ -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;
|
package/dist/pregel/stream.js
CHANGED
|
@@ -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":"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"}
|