@langchain/langgraph 0.3.4 → 0.3.6

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 (58) hide show
  1. package/dist/channels/base.cjs +2 -2
  2. package/dist/channels/base.d.ts +3 -1
  3. package/dist/channels/base.js +2 -2
  4. package/dist/channels/base.js.map +1 -1
  5. package/dist/constants.cjs +3 -1
  6. package/dist/constants.d.ts +3 -0
  7. package/dist/constants.js +2 -0
  8. package/dist/constants.js.map +1 -1
  9. package/dist/errors.cjs +1 -6
  10. package/dist/errors.js +1 -6
  11. package/dist/errors.js.map +1 -1
  12. package/dist/graph/state.d.ts +1 -1
  13. package/dist/graph/zod/zod-registry.d.ts +8 -2
  14. package/dist/graph/zod/zod-registry.js +1 -1
  15. package/dist/graph/zod/zod-registry.js.map +1 -1
  16. package/dist/hash.cjs +333 -0
  17. package/dist/hash.d.ts +2 -0
  18. package/dist/hash.js +329 -0
  19. package/dist/hash.js.map +1 -0
  20. package/dist/interrupt.cjs +8 -1
  21. package/dist/interrupt.js +8 -1
  22. package/dist/interrupt.js.map +1 -1
  23. package/dist/prebuilt/react_agent_executor.d.ts +2 -2
  24. package/dist/pregel/algo.cjs +29 -14
  25. package/dist/pregel/algo.js +30 -15
  26. package/dist/pregel/algo.js.map +1 -1
  27. package/dist/pregel/debug.cjs +42 -49
  28. package/dist/pregel/debug.d.ts +20 -34
  29. package/dist/pregel/debug.js +43 -50
  30. package/dist/pregel/debug.js.map +1 -1
  31. package/dist/pregel/debug.test.cjs +83 -20
  32. package/dist/pregel/debug.test.js +83 -20
  33. package/dist/pregel/debug.test.js.map +1 -1
  34. package/dist/pregel/index.cjs +77 -23
  35. package/dist/pregel/index.d.ts +7 -2
  36. package/dist/pregel/index.js +78 -24
  37. package/dist/pregel/index.js.map +1 -1
  38. package/dist/pregel/loop.cjs +157 -43
  39. package/dist/pregel/loop.d.ts +7 -1
  40. package/dist/pregel/loop.js +158 -44
  41. package/dist/pregel/loop.js.map +1 -1
  42. package/dist/pregel/remote.cjs +2 -0
  43. package/dist/pregel/remote.d.ts +1 -0
  44. package/dist/pregel/remote.js +2 -0
  45. package/dist/pregel/remote.js.map +1 -1
  46. package/dist/pregel/types.d.ts +50 -4
  47. package/dist/pregel/types.js.map +1 -1
  48. package/dist/pregel/utils/config.cjs +2 -1
  49. package/dist/pregel/utils/config.js +2 -1
  50. package/dist/pregel/utils/config.js.map +1 -1
  51. package/dist/pregel/validate.cjs +1 -1
  52. package/dist/pregel/validate.js +1 -1
  53. package/dist/pregel/validate.js.map +1 -1
  54. package/dist/pregel/validate.test.cjs +1 -1
  55. package/dist/pregel/validate.test.js +1 -1
  56. package/dist/pregel/validate.test.js.map +1 -1
  57. package/dist/utils.js.map +1 -1
  58. package/package.json +5 -6
package/dist/hash.js ADDED
@@ -0,0 +1,329 @@
1
+ /* Converted from https://github.com/i404788/xxh3-ts
2
+
3
+ BSD 2-Clause License
4
+
5
+ Copyright (c) 2019, i404788
6
+ All rights reserved.
7
+
8
+ Redistribution and use in source and binary forms, with or without
9
+ modification, are permitted provided that the following conditions are met:
10
+
11
+ 1. Redistributions of source code must retain the above copyright notice, this
12
+ list of conditions and the following disclaimer.
13
+
14
+ 2. Redistributions in binary form must reproduce the above copyright notice,
15
+ this list of conditions and the following disclaimer in the documentation
16
+ and/or other materials provided with the distribution.
17
+
18
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
+ */
29
+ const n = (n) => BigInt(n);
30
+ const view = (data, offset = 0) => new DataView(data.buffer, data.byteOffset + offset, data.byteLength - offset);
31
+ const PRIME32_1 = n("0x9E3779B1"); // 0b10011110001101110111100110110001
32
+ const PRIME32_2 = n("0x85EBCA77"); // 0b10000101111010111100101001110111
33
+ const PRIME32_3 = n("0xC2B2AE3D"); // 0b11000010101100101010111000111101
34
+ const PRIME64_1 = n("0x9E3779B185EBCA87"); // 0b1001111000110111011110011011000110000101111010111100101010000111
35
+ const PRIME64_2 = n("0xC2B2AE3D27D4EB4F"); // 0b1100001010110010101011100011110100100111110101001110101101001111
36
+ const PRIME64_3 = n("0x165667B19E3779F9"); // 0b0001011001010110011001111011000110011110001101110111100111111001
37
+ const PRIME64_4 = n("0x85EBCA77C2B2AE63"); // 0b1000010111101011110010100111011111000010101100101010111001100011
38
+ const PRIME64_5 = n("0x27D4EB2F165667C5"); // 0b0010011111010100111010110010111100010110010101100110011111000101
39
+ const PRIME_MX1 = n("0x165667919E3779F9"); // 0b0001011001010110011001111001000110011110001101110111100111111001
40
+ const PRIME_MX2 = n("0x9FB21C651E98DF25"); // 0b1001111110110010000111000110010100011110100110001101111100100101
41
+ const hexToUint8Array = (hex) => {
42
+ const strLen = hex.length;
43
+ if (strLen % 2 !== 0) {
44
+ throw new Error("String should have an even number of characters");
45
+ }
46
+ const maxLength = strLen / 2;
47
+ const bytes = new Uint8Array(maxLength);
48
+ let read = 0;
49
+ let write = 0;
50
+ while (write < maxLength) {
51
+ const slice = hex.slice(read, (read += 2));
52
+ bytes[write] = Number.parseInt(slice, 16);
53
+ write += 1;
54
+ }
55
+ return view(bytes);
56
+ };
57
+ const kkey = hexToUint8Array("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e");
58
+ const mask128 = (n(1) << n(128)) - n(1);
59
+ const mask64 = (n(1) << n(64)) - n(1);
60
+ const mask32 = (n(1) << n(32)) - n(1);
61
+ const STRIPE_LEN = 64;
62
+ const ACC_NB = STRIPE_LEN / 8;
63
+ const _U64 = 8;
64
+ const _U32 = 4;
65
+ function assert(a) {
66
+ if (!a)
67
+ throw new Error("Assert failed");
68
+ }
69
+ function bswap64(a) {
70
+ const scratchbuf = new DataView(new ArrayBuffer(8));
71
+ scratchbuf.setBigUint64(0, a, true);
72
+ return scratchbuf.getBigUint64(0, false);
73
+ }
74
+ function bswap32(input) {
75
+ let a = input;
76
+ a = ((a & n(0x0000ffff)) << n(16)) | ((a & n(0xffff0000)) >> n(16));
77
+ a = ((a & n(0x00ff00ff)) << n(8)) | ((a & n(0xff00ff00)) >> n(8));
78
+ return a; // 32-bit
79
+ }
80
+ function XXH_mult32to64(a, b) {
81
+ return ((a & mask32) * (b & mask32)) & mask64;
82
+ }
83
+ function rotl32(a, b) {
84
+ return ((a << b) | (a >> (n(32) - b))) & mask32;
85
+ }
86
+ function XXH3_accumulate_512(acc, dataView, keyView) {
87
+ for (let i = 0; i < ACC_NB; i += 1) {
88
+ const data_val = dataView.getBigUint64(i * 8, true);
89
+ const data_key = data_val ^ keyView.getBigUint64(i * 8, true);
90
+ acc[i ^ 1] += data_val;
91
+ acc[i] += XXH_mult32to64(data_key, data_key >> n(32));
92
+ }
93
+ return acc;
94
+ }
95
+ function XXH3_accumulate(acc, dataView, keyView, nbStripes) {
96
+ for (let n = 0; n < nbStripes; n += 1) {
97
+ XXH3_accumulate_512(acc, view(dataView, n * STRIPE_LEN), view(keyView, n * 8));
98
+ }
99
+ return acc;
100
+ }
101
+ function XXH3_scrambleAcc(acc, key) {
102
+ for (let i = 0; i < ACC_NB; i += 1) {
103
+ const key64 = key.getBigUint64(i * 8, true);
104
+ let acc64 = acc[i];
105
+ acc64 = xorshift64(acc64, n(47));
106
+ acc64 ^= key64;
107
+ acc64 *= PRIME32_1;
108
+ acc[i] = acc64 & mask64;
109
+ }
110
+ return acc;
111
+ }
112
+ function XXH3_mix2Accs(acc, key) {
113
+ return XXH3_mul128_fold64(acc[0] ^ key.getBigUint64(0, true), acc[1] ^ key.getBigUint64(_U64, true));
114
+ }
115
+ function XXH3_mergeAccs(acc, key, start) {
116
+ let result64 = start;
117
+ result64 += XXH3_mix2Accs(acc.slice(0), view(key, 0 * _U32));
118
+ result64 += XXH3_mix2Accs(acc.slice(2), view(key, 4 * _U32));
119
+ result64 += XXH3_mix2Accs(acc.slice(4), view(key, 8 * _U32));
120
+ result64 += XXH3_mix2Accs(acc.slice(6), view(key, 12 * _U32));
121
+ return XXH3_avalanche(result64 & mask64);
122
+ }
123
+ function XXH3_hashLong(input, data, secret, f_acc, f_scramble) {
124
+ let acc = input;
125
+ const nbStripesPerBlock = Math.floor((secret.byteLength - STRIPE_LEN) / 8);
126
+ const block_len = STRIPE_LEN * nbStripesPerBlock;
127
+ const nb_blocks = Math.floor((data.byteLength - 1) / block_len);
128
+ for (let n = 0; n < nb_blocks; n += 1) {
129
+ acc = XXH3_accumulate(acc, view(data, n * block_len), secret, nbStripesPerBlock);
130
+ acc = f_scramble(acc, view(secret, secret.byteLength - STRIPE_LEN));
131
+ }
132
+ {
133
+ // Partial block
134
+ const nbStripes = Math.floor((data.byteLength - 1 - block_len * nb_blocks) / STRIPE_LEN);
135
+ acc = XXH3_accumulate(acc, view(data, nb_blocks * block_len), secret, nbStripes);
136
+ // Last Stripe
137
+ acc = f_acc(acc, view(data, data.byteLength - STRIPE_LEN), view(secret, secret.byteLength - STRIPE_LEN - 7));
138
+ }
139
+ return acc;
140
+ }
141
+ function XXH3_hashLong_128b(data, secret) {
142
+ let acc = new BigUint64Array([
143
+ PRIME32_3,
144
+ PRIME64_1,
145
+ PRIME64_2,
146
+ PRIME64_3,
147
+ PRIME64_4,
148
+ PRIME32_2,
149
+ PRIME64_5,
150
+ PRIME32_1,
151
+ ]);
152
+ assert(data.byteLength > 128);
153
+ acc = XXH3_hashLong(acc, data, secret, XXH3_accumulate_512, XXH3_scrambleAcc);
154
+ /* converge into final hash */
155
+ assert(acc.length * 8 === 64);
156
+ {
157
+ const low64 = XXH3_mergeAccs(acc, view(secret, 11), (n(data.byteLength) * PRIME64_1) & mask64);
158
+ const high64 = XXH3_mergeAccs(acc, view(secret, secret.byteLength - STRIPE_LEN - 11), ~(n(data.byteLength) * PRIME64_2) & mask64);
159
+ return (high64 << n(64)) | low64;
160
+ }
161
+ }
162
+ function XXH3_mul128_fold64(a, b) {
163
+ const lll = (a * b) & mask128;
164
+ return (lll & mask64) ^ (lll >> n(64));
165
+ }
166
+ function XXH3_mix16B(dataView, keyView, seed) {
167
+ return XXH3_mul128_fold64((dataView.getBigUint64(0, true) ^ (keyView.getBigUint64(0, true) + seed)) &
168
+ mask64, (dataView.getBigUint64(8, true) ^ (keyView.getBigUint64(8, true) - seed)) &
169
+ mask64);
170
+ }
171
+ function XXH3_mix32B(acc, data1, data2, key, seed) {
172
+ let accl = acc & mask64;
173
+ let acch = (acc >> n(64)) & mask64;
174
+ accl += XXH3_mix16B(data1, key, seed);
175
+ accl ^= data2.getBigUint64(0, true) + data2.getBigUint64(8, true);
176
+ accl &= mask64;
177
+ acch += XXH3_mix16B(data2, view(key, 16), seed);
178
+ acch ^= data1.getBigUint64(0, true) + data1.getBigUint64(8, true);
179
+ acch &= mask64;
180
+ return (acch << n(64)) | accl;
181
+ }
182
+ function XXH3_avalanche(input) {
183
+ let h64 = input;
184
+ h64 ^= h64 >> n(37);
185
+ h64 *= PRIME_MX1;
186
+ h64 &= mask64;
187
+ h64 ^= h64 >> n(32);
188
+ return h64;
189
+ }
190
+ function XXH3_avalanche64(input) {
191
+ let h64 = input;
192
+ h64 ^= h64 >> n(33);
193
+ h64 *= PRIME64_2;
194
+ h64 &= mask64; // 64-bit
195
+ h64 ^= h64 >> n(29);
196
+ h64 *= PRIME64_3;
197
+ h64 &= mask64;
198
+ h64 ^= h64 >> n(32);
199
+ return h64;
200
+ }
201
+ function XXH3_len_1to3_128b(data, key32, seed) {
202
+ const len = data.byteLength;
203
+ assert(len > 0 && len <= 3);
204
+ const combined = n(data.getUint8(len - 1)) |
205
+ n(len << 8) |
206
+ n(data.getUint8(0) << 16) |
207
+ n(data.getUint8(len >> 1) << 24);
208
+ const blow = (n(key32.getUint32(0, true)) ^ n(key32.getUint32(4, true))) + seed;
209
+ const low = (combined ^ blow) & mask64;
210
+ const bhigh = (n(key32.getUint32(8, true)) ^ n(key32.getUint32(12, true))) - seed;
211
+ const high = (rotl32(bswap32(combined), n(13)) ^ bhigh) & mask64;
212
+ return ((XXH3_avalanche64(high) & mask64) << n(64)) | XXH3_avalanche64(low);
213
+ }
214
+ function xorshift64(b, shift) {
215
+ return b ^ (b >> shift);
216
+ }
217
+ function XXH3_len_4to8_128b(data, key32, seed) {
218
+ const len = data.byteLength;
219
+ assert(len >= 4 && len <= 8);
220
+ {
221
+ const l1 = data.getUint32(0, true);
222
+ const l2 = data.getUint32(len - 4, true);
223
+ const l64 = n(l1) | (n(l2) << n(32));
224
+ const bitflip = ((key32.getBigUint64(16, true) ^ key32.getBigUint64(24, true)) + seed) &
225
+ mask64;
226
+ const keyed = l64 ^ bitflip;
227
+ let m128 = (keyed * (PRIME64_1 + (n(len) << n(2)))) & mask128;
228
+ m128 += (m128 & mask64) << n(65);
229
+ m128 &= mask128;
230
+ m128 ^= m128 >> n(67);
231
+ return (xorshift64((xorshift64(m128 & mask64, n(35)) * PRIME_MX2) & mask64, n(28)) |
232
+ (XXH3_avalanche(m128 >> n(64)) << n(64)));
233
+ }
234
+ }
235
+ function XXH3_len_9to16_128b(data, key64, seed) {
236
+ const len = data.byteLength;
237
+ assert(len >= 9 && len <= 16);
238
+ {
239
+ const bitflipl = ((key64.getBigUint64(32, true) ^ key64.getBigUint64(40, true)) + seed) &
240
+ mask64;
241
+ const bitfliph = ((key64.getBigUint64(48, true) ^ key64.getBigUint64(56, true)) - seed) &
242
+ mask64;
243
+ const ll1 = data.getBigUint64(0, true);
244
+ let ll2 = data.getBigUint64(len - 8, true);
245
+ let m128 = (ll1 ^ ll2 ^ bitflipl) * PRIME64_1;
246
+ const m128_l = (m128 & mask64) + (n(len - 1) << n(54));
247
+ m128 = (m128 & (mask128 ^ mask64)) | m128_l; // eqv. to adding only to lower 64b
248
+ ll2 ^= bitfliph;
249
+ m128 += (ll2 + (ll2 & mask32) * (PRIME32_2 - n(1))) << n(64);
250
+ m128 &= mask128;
251
+ m128 ^= bswap64(m128 >> n(64));
252
+ let h128 = (m128 & mask64) * PRIME64_2;
253
+ h128 += ((m128 >> n(64)) * PRIME64_2) << n(64);
254
+ h128 &= mask128;
255
+ return (XXH3_avalanche(h128 & mask64) | (XXH3_avalanche(h128 >> n(64)) << n(64)));
256
+ }
257
+ }
258
+ function XXH3_len_0to16_128b(data, seed) {
259
+ const len = data.byteLength;
260
+ assert(len <= 16);
261
+ if (len > 8)
262
+ return XXH3_len_9to16_128b(data, kkey, seed);
263
+ if (len >= 4)
264
+ return XXH3_len_4to8_128b(data, kkey, seed);
265
+ if (len > 0)
266
+ return XXH3_len_1to3_128b(data, kkey, seed);
267
+ return (XXH3_avalanche64(seed ^ kkey.getBigUint64(64, true) ^ kkey.getBigUint64(72, true)) |
268
+ (XXH3_avalanche64(seed ^ kkey.getBigUint64(80, true) ^ kkey.getBigUint64(88, true)) <<
269
+ n(64)));
270
+ }
271
+ function inv64(x) {
272
+ // NOTE: `AND` fixes signedness (but because of 2's complement we need to re-add 1)
273
+ return (~x + n(1)) & mask64;
274
+ }
275
+ function XXH3_len_17to128_128b(data, secret, seed) {
276
+ let acc = (n(data.byteLength) * PRIME64_1) & mask64;
277
+ let i = n(data.byteLength - 1) / n(32);
278
+ while (i >= 0) {
279
+ const ni = Number(i);
280
+ acc = XXH3_mix32B(acc, view(data, 16 * ni), view(data, data.byteLength - 16 * (ni + 1)), view(secret, 32 * ni), seed);
281
+ i -= n(1);
282
+ }
283
+ let h128l = (acc + (acc >> n(64))) & mask64;
284
+ h128l = XXH3_avalanche(h128l);
285
+ let h128h = (acc & mask64) * PRIME64_1 +
286
+ (acc >> n(64)) * PRIME64_4 +
287
+ ((n(data.byteLength) - seed) & mask64) * PRIME64_2;
288
+ h128h &= mask64;
289
+ h128h = inv64(XXH3_avalanche(h128h));
290
+ return h128l | (h128h << n(64));
291
+ }
292
+ function XXH3_len_129to240_128b(data, secret, seed) {
293
+ let acc = (n(data.byteLength) * PRIME64_1) & mask64;
294
+ for (let i = 32; i < 160; i += 32) {
295
+ acc = XXH3_mix32B(acc, view(data, i - 32), view(data, i - 16), view(secret, i - 32), seed);
296
+ }
297
+ acc = XXH3_avalanche(acc & mask64) | (XXH3_avalanche(acc >> n(64)) << n(64));
298
+ for (let i = 160; i <= data.byteLength; i += 32) {
299
+ acc = XXH3_mix32B(acc, view(data, i - 32), view(data, i - 16), view(secret, 3 + i - 160), seed);
300
+ }
301
+ acc = XXH3_mix32B(acc, view(data, data.byteLength - 16), view(data, data.byteLength - 32), view(secret, 136 - 17 - 16), inv64(seed));
302
+ let h128l = (acc + (acc >> n(64))) & mask64;
303
+ h128l = XXH3_avalanche(h128l);
304
+ let h128h = (acc & mask64) * PRIME64_1 +
305
+ (acc >> n(64)) * PRIME64_4 +
306
+ ((n(data.byteLength) - seed) & mask64) * PRIME64_2;
307
+ h128h &= mask64;
308
+ h128h = inv64(XXH3_avalanche(h128h));
309
+ return h128l | (h128h << n(64));
310
+ }
311
+ // 16 byte min input
312
+ export function XXH3(input, seed = n(0)) {
313
+ const encoder = new TextEncoder();
314
+ const data = view(typeof input === "string" ? encoder.encode(input) : input);
315
+ const len = data.byteLength;
316
+ const hexDigest = (data) => data.toString(16).padStart(32, "0");
317
+ if (len <= 16)
318
+ return hexDigest(XXH3_len_0to16_128b(data, seed));
319
+ if (len <= 128)
320
+ return hexDigest(XXH3_len_17to128_128b(data, kkey, seed));
321
+ if (len <= 240)
322
+ return hexDigest(XXH3_len_129to240_128b(data, kkey, seed));
323
+ return hexDigest(XXH3_hashLong_128b(data, kkey));
324
+ }
325
+ export function isXXH3(value) {
326
+ // Check if the given string matches the format of XXH3 (128 bit hex digest).
327
+ return /^[0-9a-f]{32}$/.test(value);
328
+ }
329
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ exports.interrupt = interrupt;
4
4
  const singletons_1 = require("@langchain/core/singletons");
5
5
  const errors_js_1 = require("./errors.cjs");
6
6
  const constants_js_1 = require("./constants.cjs");
7
+ const hash_js_1 = require("./hash.cjs");
7
8
  /**
8
9
  * Interrupts the execution of a graph node.
9
10
  * This function can be used to pause execution of a node, and return the value of the `resume`
@@ -79,12 +80,18 @@ function interrupt(value) {
79
80
  return v;
80
81
  }
81
82
  // No resume value found
83
+ const ns = conf[constants_js_1.CONFIG_KEY_CHECKPOINT_NS]?.split(constants_js_1.CHECKPOINT_NAMESPACE_SEPARATOR);
82
84
  throw new errors_js_1.GraphInterrupt([
83
85
  {
84
86
  value,
85
87
  when: "during",
86
88
  resumable: true,
87
- ns: conf[constants_js_1.CONFIG_KEY_CHECKPOINT_NS]?.split(constants_js_1.CHECKPOINT_NAMESPACE_SEPARATOR),
89
+ ns,
90
+ get interrupt_id() {
91
+ if (ns == null)
92
+ return undefined;
93
+ return (0, hash_js_1.XXH3)(ns.join(constants_js_1.CHECKPOINT_NAMESPACE_SEPARATOR));
94
+ },
88
95
  },
89
96
  ]);
90
97
  }
package/dist/interrupt.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { AsyncLocalStorageProviderSingleton } from "@langchain/core/singletons";
2
2
  import { GraphInterrupt } from "./errors.js";
3
3
  import { CONFIG_KEY_CHECKPOINT_NS, CONFIG_KEY_SCRATCHPAD, CONFIG_KEY_SEND, CHECKPOINT_NAMESPACE_SEPARATOR, RESUME, } from "./constants.js";
4
+ import { XXH3 } from "./hash.js";
4
5
  /**
5
6
  * Interrupts the execution of a graph node.
6
7
  * This function can be used to pause execution of a node, and return the value of the `resume`
@@ -76,12 +77,18 @@ export function interrupt(value) {
76
77
  return v;
77
78
  }
78
79
  // No resume value found
80
+ const ns = conf[CONFIG_KEY_CHECKPOINT_NS]?.split(CHECKPOINT_NAMESPACE_SEPARATOR);
79
81
  throw new GraphInterrupt([
80
82
  {
81
83
  value,
82
84
  when: "during",
83
85
  resumable: true,
84
- ns: conf[CONFIG_KEY_CHECKPOINT_NS]?.split(CHECKPOINT_NAMESPACE_SEPARATOR),
86
+ ns,
87
+ get interrupt_id() {
88
+ if (ns == null)
89
+ return undefined;
90
+ return XXH3(ns.join(CHECKPOINT_NAMESPACE_SEPARATOR));
91
+ },
85
92
  },
86
93
  ]);
87
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interrupt.js","sourceRoot":"","sources":["../src/interrupt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAGhF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,8BAA8B,EAC9B,MAAM,GACP,MAAM,gBAAgB,CAAC;AAGxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,8DAA8D;AAC9D,MAAM,UAAU,SAAS,CAAuB,KAAQ;IACtD,MAAM,MAAM,GACV,kCAAkC,CAAC,iBAAiB,EAAE,CAAC;IACzD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,wBAAwB;IACxB,MAAM,UAAU,GAAqB,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACjE,UAAU,CAAC,gBAAgB,IAAI,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,UAAU,CAAC,gBAAgB,CAAC;IAExC,8BAA8B;IAC9B,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnE,OAAO,UAAU,CAAC,MAAM,CAAC,GAAG,CAAM,CAAC;IACrC,CAAC;IAED,4BAA4B;IAC5B,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACxC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,2BAA2B,UAAU,CAAC,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CACjE,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;QACzC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;QACnC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAiB,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAM,CAAC;IAChB,CAAC;IAED,wBAAwB;IACxB,MAAM,IAAI,cAAc,CAAC;QACvB;YACE,KAAK;YACL,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,wBAAwB,CAAC,EAAE,KAAK,CAAC,8BAA8B,CAAC;SAC1E;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"interrupt.js","sourceRoot":"","sources":["../src/interrupt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAGhF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,8BAA8B,EAC9B,MAAM,GACP,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,8DAA8D;AAC9D,MAAM,UAAU,SAAS,CAAuB,KAAQ;IACtD,MAAM,MAAM,GACV,kCAAkC,CAAC,iBAAiB,EAAE,CAAC;IACzD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,wBAAwB;IACxB,MAAM,UAAU,GAAqB,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACjE,UAAU,CAAC,gBAAgB,IAAI,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,UAAU,CAAC,gBAAgB,CAAC;IAExC,8BAA8B;IAC9B,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnE,OAAO,UAAU,CAAC,MAAM,CAAC,GAAG,CAAM,CAAC;IACrC,CAAC;IAED,4BAA4B;IAC5B,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACxC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,2BAA2B,UAAU,CAAC,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CACjE,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;QACzC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;QACnC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAiB,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAM,CAAC;IAChB,CAAC;IAED,wBAAwB;IACxB,MAAM,EAAE,GAAyB,IAAI,CAAC,wBAAwB,CAAC,EAAE,KAAK,CACpE,8BAA8B,CAC/B,CAAC;IACF,MAAM,IAAI,cAAc,CAAC;QACvB;YACE,KAAK;YACL,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,IAAI;YACf,EAAE;YACF,IAAI,YAAY;gBACd,IAAI,EAAE,IAAI,IAAI;oBAAE,OAAO,SAAS,CAAC;gBACjC,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACvD,CAAC;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -75,9 +75,9 @@ export type CreateReactAgentParams<A extends AnnotationRoot<any> = AnnotationRoo
75
75
  prompt?: Prompt;
76
76
  stateSchema?: A;
77
77
  /** An optional checkpoint saver to persist the agent's state. */
78
- checkpointSaver?: BaseCheckpointSaver;
78
+ checkpointSaver?: BaseCheckpointSaver | boolean;
79
79
  /** An optional checkpoint saver to persist the agent's state. Alias of "checkpointSaver". */
80
- checkpointer?: BaseCheckpointSaver;
80
+ checkpointer?: BaseCheckpointSaver | boolean;
81
81
  /** An optional list of node names to interrupt before running. */
82
82
  interruptBefore?: N[] | All;
83
83
  /** An optional list of node names to interrupt after running. */
@@ -17,6 +17,7 @@ const types_js_1 = require("./types.cjs");
17
17
  const errors_js_1 = require("../errors.cjs");
18
18
  const index_js_1 = require("./utils/index.cjs");
19
19
  const call_js_1 = require("./call.cjs");
20
+ const hash_js_1 = require("../hash.cjs");
20
21
  const increment = (current) => {
21
22
  return current !== undefined ? current + 1 : 1;
22
23
  };
@@ -297,11 +298,14 @@ function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processes, chan
297
298
  taskPath[2],
298
299
  ]), checkpoint.id);
299
300
  const taskCheckpointNamespace = `${checkpointNamespace}${constants_js_1.CHECKPOINT_NAMESPACE_END}${id}`;
301
+ // we append `true` to the task path to indicate that a call is being made
302
+ // so we should not return interrupts from this task (responsibility lies with the parent)
303
+ const outputTaskPath = [...taskPath.slice(0, 3), true];
300
304
  const metadata = {
301
305
  langgraph_step: step,
302
306
  langgraph_node: call.name,
303
307
  langgraph_triggers: triggers,
304
- langgraph_path: taskPath.slice(0, 3),
308
+ langgraph_path: outputTaskPath,
305
309
  langgraph_checkpoint_ns: taskCheckpointNamespace,
306
310
  };
307
311
  if (forExecution) {
@@ -325,7 +329,7 @@ function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processes, chan
325
329
  name: call.name,
326
330
  writes: writes,
327
331
  triggers,
328
- path: taskPath.slice(0, 3),
332
+ path: outputTaskPath,
329
333
  }, select_, fresh_),
330
334
  [constants_js_1.CONFIG_KEY_CHECKPOINTER]: checkpointer ?? configurable[constants_js_1.CONFIG_KEY_CHECKPOINTER],
331
335
  [constants_js_1.CONFIG_KEY_CHECKPOINT_MAP]: {
@@ -336,6 +340,8 @@ function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processes, chan
336
340
  pendingWrites: pendingWrites ?? [],
337
341
  taskId: id,
338
342
  currentTaskInput: call.input,
343
+ resumeMap: config.configurable?.[constants_js_1.CONFIG_KEY_RESUME_MAP],
344
+ namespaceHash: (0, hash_js_1.XXH3)(taskCheckpointNamespace),
339
345
  }),
340
346
  [constants_js_1.CONFIG_KEY_PREVIOUS_STATE]: checkpoint.channel_values[constants_js_1.PREVIOUS],
341
347
  checkpoint_id: undefined,
@@ -346,14 +352,13 @@ function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processes, chan
346
352
  retry_policy: call.retry,
347
353
  cache_key: call.cache
348
354
  ? {
349
- // TODO: add xxh3_128 hex digest
350
- key: (call.cache.keyFunc ?? JSON.stringify)([call.input]),
355
+ key: (0, hash_js_1.XXH3)((call.cache.keyFunc ?? JSON.stringify)([call.input])),
351
356
  ns: [constants_js_1.CACHE_NS_WRITES, call.name ?? "__dynamic__"],
352
357
  ttl: call.cache.ttl,
353
358
  }
354
359
  : undefined,
355
360
  id,
356
- path: taskPath.slice(0, 3),
361
+ path: outputTaskPath,
357
362
  writers: [],
358
363
  };
359
364
  return task;
@@ -363,7 +368,7 @@ function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processes, chan
363
368
  id,
364
369
  name: call.name,
365
370
  interrupts: [],
366
- path: taskPath.slice(0, 3),
371
+ path: outputTaskPath,
367
372
  };
368
373
  }
369
374
  }
@@ -446,6 +451,8 @@ function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processes, chan
446
451
  pendingWrites: pendingWrites ?? [],
447
452
  taskId,
448
453
  currentTaskInput: packet.args,
454
+ resumeMap: config.configurable?.[constants_js_1.CONFIG_KEY_RESUME_MAP],
455
+ namespaceHash: (0, hash_js_1.XXH3)(taskCheckpointNamespace),
449
456
  }),
450
457
  [constants_js_1.CONFIG_KEY_PREVIOUS_STATE]: checkpoint.channel_values[constants_js_1.PREVIOUS],
451
458
  checkpoint_id: undefined,
@@ -456,9 +463,7 @@ function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processes, chan
456
463
  retry_policy: proc.retryPolicy,
457
464
  cache_key: proc.cachePolicy
458
465
  ? {
459
- key: (proc.cachePolicy.keyFunc ?? JSON.stringify)([
460
- packet.args,
461
- ]),
466
+ key: (0, hash_js_1.XXH3)((proc.cachePolicy.keyFunc ?? JSON.stringify)([packet.args])),
462
467
  ns: [constants_js_1.CACHE_NS_WRITES, proc.name ?? "__dynamic__", packet.node],
463
468
  ttl: proc.cachePolicy.ttl,
464
469
  }
@@ -586,6 +591,8 @@ function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processes, chan
586
591
  pendingWrites: pendingWrites ?? [],
587
592
  taskId,
588
593
  currentTaskInput: val,
594
+ resumeMap: config.configurable?.[constants_js_1.CONFIG_KEY_RESUME_MAP],
595
+ namespaceHash: (0, hash_js_1.XXH3)(taskCheckpointNamespace),
589
596
  }),
590
597
  [constants_js_1.CONFIG_KEY_PREVIOUS_STATE]: checkpoint.channel_values[constants_js_1.PREVIOUS],
591
598
  checkpoint_id: undefined,
@@ -596,7 +603,7 @@ function _prepareSingleTask(taskPath, checkpoint, pendingWrites, processes, chan
596
603
  retry_policy: proc.retryPolicy,
597
604
  cache_key: proc.cachePolicy
598
605
  ? {
599
- key: (proc.cachePolicy.keyFunc ?? JSON.stringify)([val]),
606
+ key: (0, hash_js_1.XXH3)((proc.cachePolicy.keyFunc ?? JSON.stringify)([val])),
600
607
  ns: [constants_js_1.CACHE_NS_WRITES, proc.name ?? "__dynamic__", name],
601
608
  ttl: proc.cachePolicy.ttl,
602
609
  }
@@ -696,14 +703,22 @@ function _procInput(step, proc, managed, channels, forExecution) {
696
703
  }
697
704
  return val;
698
705
  }
699
- function _scratchpad({ pendingWrites, taskId, currentTaskInput, }) {
706
+ function _scratchpad({ pendingWrites, taskId, currentTaskInput, resumeMap, namespaceHash, }) {
700
707
  const nullResume = pendingWrites.find(([writeTaskId, chan]) => writeTaskId === constants_js_1.NULL_TASK_ID && chan === constants_js_1.RESUME)?.[2];
708
+ const resume = (() => {
709
+ const result = pendingWrites
710
+ .filter(([writeTaskId, chan]) => writeTaskId === taskId && chan === constants_js_1.RESUME)
711
+ .flatMap(([_writeTaskId, _chan, resume]) => resume);
712
+ if (resumeMap != null && namespaceHash in resumeMap) {
713
+ const mappedResume = resumeMap[namespaceHash];
714
+ result.push(mappedResume);
715
+ }
716
+ return result;
717
+ })();
701
718
  const scratchpad = {
702
719
  callCounter: 0,
703
720
  interruptCounter: -1,
704
- resume: pendingWrites
705
- .filter(([writeTaskId, chan]) => writeTaskId === taskId && chan === constants_js_1.RESUME)
706
- .flatMap(([_writeTaskId, _chan, resume]) => resume),
721
+ resume,
707
722
  nullResume,
708
723
  subgraphCounter: 0,
709
724
  currentTaskInput,