@langchain/langgraph 0.3.5 → 0.3.7
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/CHANGELOG.md +10 -0
- package/dist/channels/base.cjs +2 -2
- package/dist/channels/base.d.ts +3 -1
- package/dist/channels/base.js +2 -2
- package/dist/channels/base.js.map +1 -1
- package/dist/constants.cjs +3 -1
- package/dist/constants.d.ts +3 -0
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -1
- package/dist/errors.cjs +1 -6
- package/dist/errors.js +1 -6
- package/dist/errors.js.map +1 -1
- package/dist/graph/state.d.ts +1 -1
- package/dist/hash.cjs +333 -0
- package/dist/hash.d.ts +2 -0
- package/dist/hash.js +329 -0
- package/dist/hash.js.map +1 -0
- package/dist/interrupt.cjs +11 -1
- package/dist/interrupt.js +13 -3
- package/dist/interrupt.js.map +1 -1
- package/dist/prebuilt/react_agent_executor.cjs +78 -12
- package/dist/prebuilt/react_agent_executor.d.ts +4 -3
- package/dist/prebuilt/react_agent_executor.js +77 -12
- package/dist/prebuilt/react_agent_executor.js.map +1 -1
- package/dist/pregel/algo.cjs +29 -14
- package/dist/pregel/algo.js +30 -15
- package/dist/pregel/algo.js.map +1 -1
- package/dist/pregel/debug.cjs +18 -42
- package/dist/pregel/debug.d.ts +18 -33
- package/dist/pregel/debug.js +18 -42
- package/dist/pregel/debug.js.map +1 -1
- package/dist/pregel/index.cjs +77 -23
- package/dist/pregel/index.d.ts +7 -2
- package/dist/pregel/index.js +78 -24
- package/dist/pregel/index.js.map +1 -1
- package/dist/pregel/loop.cjs +157 -43
- package/dist/pregel/loop.d.ts +7 -1
- package/dist/pregel/loop.js +158 -44
- package/dist/pregel/loop.js.map +1 -1
- package/dist/pregel/messages.cjs +3 -0
- package/dist/pregel/messages.d.ts +1 -1
- package/dist/pregel/messages.js +3 -0
- package/dist/pregel/messages.js.map +1 -1
- package/dist/pregel/messages.test.cjs +18 -0
- package/dist/pregel/messages.test.js +18 -0
- package/dist/pregel/messages.test.js.map +1 -1
- package/dist/pregel/remote.cjs +2 -0
- package/dist/pregel/remote.d.ts +1 -0
- package/dist/pregel/remote.js +2 -0
- package/dist/pregel/remote.js.map +1 -1
- package/dist/pregel/retry.cjs +4 -0
- package/dist/pregel/retry.js +4 -0
- package/dist/pregel/retry.js.map +1 -1
- package/dist/pregel/types.d.ts +49 -4
- package/dist/pregel/types.js.map +1 -1
- package/dist/pregel/utils/config.cjs +2 -1
- package/dist/pregel/utils/config.js +2 -1
- package/dist/pregel/utils/config.js.map +1 -1
- package/dist/pregel/validate.cjs +1 -1
- package/dist/pregel/validate.js +1 -1
- package/dist/pregel/validate.js.map +1 -1
- package/dist/pregel/validate.test.cjs +1 -1
- package/dist/pregel/validate.test.js +1 -1
- package/dist/pregel/validate.test.js.map +1 -1
- package/dist/utils.js.map +1 -1
- package/package.json +6 -5
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
|
package/dist/hash.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"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"}
|
package/dist/interrupt.cjs
CHANGED
|
@@ -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`
|
|
@@ -57,6 +58,9 @@ function interrupt(value) {
|
|
|
57
58
|
if (!conf) {
|
|
58
59
|
throw new Error("No configurable found in config");
|
|
59
60
|
}
|
|
61
|
+
const checkpointer = conf[constants_js_1.CONFIG_KEY_CHECKPOINTER];
|
|
62
|
+
if (!checkpointer)
|
|
63
|
+
throw new errors_js_1.GraphValueError("No checkpointer set");
|
|
60
64
|
// Track interrupt index
|
|
61
65
|
const scratchpad = conf[constants_js_1.CONFIG_KEY_SCRATCHPAD];
|
|
62
66
|
scratchpad.interruptCounter += 1;
|
|
@@ -79,12 +83,18 @@ function interrupt(value) {
|
|
|
79
83
|
return v;
|
|
80
84
|
}
|
|
81
85
|
// No resume value found
|
|
86
|
+
const ns = conf[constants_js_1.CONFIG_KEY_CHECKPOINT_NS]?.split(constants_js_1.CHECKPOINT_NAMESPACE_SEPARATOR);
|
|
82
87
|
throw new errors_js_1.GraphInterrupt([
|
|
83
88
|
{
|
|
84
89
|
value,
|
|
85
90
|
when: "during",
|
|
86
91
|
resumable: true,
|
|
87
|
-
ns
|
|
92
|
+
ns,
|
|
93
|
+
get interrupt_id() {
|
|
94
|
+
if (ns == null)
|
|
95
|
+
return undefined;
|
|
96
|
+
return (0, hash_js_1.XXH3)(ns.join(constants_js_1.CHECKPOINT_NAMESPACE_SEPARATOR));
|
|
97
|
+
},
|
|
88
98
|
},
|
|
89
99
|
]);
|
|
90
100
|
}
|
package/dist/interrupt.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AsyncLocalStorageProviderSingleton } from "@langchain/core/singletons";
|
|
2
|
-
import { GraphInterrupt } from "./errors.js";
|
|
3
|
-
import { CONFIG_KEY_CHECKPOINT_NS, CONFIG_KEY_SCRATCHPAD, CONFIG_KEY_SEND, CHECKPOINT_NAMESPACE_SEPARATOR, RESUME, } from "./constants.js";
|
|
2
|
+
import { GraphInterrupt, GraphValueError } from "./errors.js";
|
|
3
|
+
import { CONFIG_KEY_CHECKPOINT_NS, CONFIG_KEY_SCRATCHPAD, CONFIG_KEY_SEND, CONFIG_KEY_CHECKPOINTER, 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`
|
|
@@ -54,6 +55,9 @@ export function interrupt(value) {
|
|
|
54
55
|
if (!conf) {
|
|
55
56
|
throw new Error("No configurable found in config");
|
|
56
57
|
}
|
|
58
|
+
const checkpointer = conf[CONFIG_KEY_CHECKPOINTER];
|
|
59
|
+
if (!checkpointer)
|
|
60
|
+
throw new GraphValueError("No checkpointer set");
|
|
57
61
|
// Track interrupt index
|
|
58
62
|
const scratchpad = conf[CONFIG_KEY_SCRATCHPAD];
|
|
59
63
|
scratchpad.interruptCounter += 1;
|
|
@@ -76,12 +80,18 @@ export function interrupt(value) {
|
|
|
76
80
|
return v;
|
|
77
81
|
}
|
|
78
82
|
// No resume value found
|
|
83
|
+
const ns = conf[CONFIG_KEY_CHECKPOINT_NS]?.split(CHECKPOINT_NAMESPACE_SEPARATOR);
|
|
79
84
|
throw new GraphInterrupt([
|
|
80
85
|
{
|
|
81
86
|
value,
|
|
82
87
|
when: "during",
|
|
83
88
|
resumable: true,
|
|
84
|
-
ns
|
|
89
|
+
ns,
|
|
90
|
+
get interrupt_id() {
|
|
91
|
+
if (ns == null)
|
|
92
|
+
return undefined;
|
|
93
|
+
return XXH3(ns.join(CHECKPOINT_NAMESPACE_SEPARATOR));
|
|
94
|
+
},
|
|
85
95
|
},
|
|
86
96
|
]);
|
|
87
97
|
}
|
package/dist/interrupt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interrupt.js","sourceRoot":"","sources":["../src/interrupt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"interrupt.js","sourceRoot":"","sources":["../src/interrupt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAMhF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,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,MAAM,YAAY,GAAwB,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACxE,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAEpE,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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createReactAgentAnnotation = void 0;
|
|
4
4
|
exports._shouldBindTools = _shouldBindTools;
|
|
5
|
+
exports._bindTools = _bindTools;
|
|
5
6
|
exports._getModel = _getModel;
|
|
6
7
|
exports.createReactAgent = createReactAgent;
|
|
7
8
|
const messages_1 = require("@langchain/core/messages");
|
|
@@ -85,6 +86,11 @@ function _isConfigurableModel(model) {
|
|
|
85
86
|
"_model" in model &&
|
|
86
87
|
typeof model._model === "function");
|
|
87
88
|
}
|
|
89
|
+
function _isChatModelWithBindTools(llm) {
|
|
90
|
+
if (!_isBaseChatModel(llm))
|
|
91
|
+
return false;
|
|
92
|
+
return "bindTools" in llm && typeof llm.bindTools === "function";
|
|
93
|
+
}
|
|
88
94
|
async function _shouldBindTools(llm, tools) {
|
|
89
95
|
// If model is a RunnableSequence, find a RunnableBinding or BaseChatModel in its steps
|
|
90
96
|
let model = llm;
|
|
@@ -101,17 +107,32 @@ async function _shouldBindTools(llm, tools) {
|
|
|
101
107
|
if (!runnables_1.RunnableBinding.isRunnableBinding(model)) {
|
|
102
108
|
return true;
|
|
103
109
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
110
|
+
let boundTools = (() => {
|
|
111
|
+
// check if model.kwargs contain the tools key
|
|
112
|
+
if (model.kwargs != null &&
|
|
113
|
+
typeof model.kwargs === "object" &&
|
|
114
|
+
"tools" in model.kwargs &&
|
|
115
|
+
Array.isArray(model.kwargs.tools)) {
|
|
116
|
+
return (model.kwargs.tools ?? null);
|
|
117
|
+
}
|
|
118
|
+
// Some models can bind the tools via `withConfig()` instead of `bind()`
|
|
119
|
+
if (model.config != null &&
|
|
120
|
+
typeof model.config === "object" &&
|
|
121
|
+
"tools" in model.config &&
|
|
122
|
+
Array.isArray(model.config.tools)) {
|
|
123
|
+
return (model.config.tools ?? null);
|
|
124
|
+
}
|
|
125
|
+
return null;
|
|
126
|
+
})();
|
|
111
127
|
// google-style
|
|
112
|
-
if (boundTools
|
|
128
|
+
if (boundTools != null &&
|
|
129
|
+
boundTools.length === 1 &&
|
|
130
|
+
"functionDeclarations" in boundTools[0]) {
|
|
113
131
|
boundTools = boundTools[0].functionDeclarations;
|
|
114
132
|
}
|
|
133
|
+
// If no tools in kwargs, we should bind tools
|
|
134
|
+
if (boundTools == null)
|
|
135
|
+
return true;
|
|
115
136
|
// Check if tools count matches
|
|
116
137
|
if (tools.length !== boundTools.length) {
|
|
117
138
|
throw new Error("Number of tools in the model.bindTools() and tools passed to createReactAgent must match");
|
|
@@ -147,6 +168,54 @@ async function _shouldBindTools(llm, tools) {
|
|
|
147
168
|
}
|
|
148
169
|
return false;
|
|
149
170
|
}
|
|
171
|
+
const _simpleBindTools = (llm, toolClasses) => {
|
|
172
|
+
if (_isChatModelWithBindTools(llm)) {
|
|
173
|
+
return llm.bindTools(toolClasses);
|
|
174
|
+
}
|
|
175
|
+
if (runnables_1.RunnableBinding.isRunnableBinding(llm) &&
|
|
176
|
+
_isChatModelWithBindTools(llm.bound)) {
|
|
177
|
+
const newBound = llm.bound.bindTools(toolClasses);
|
|
178
|
+
if (runnables_1.RunnableBinding.isRunnableBinding(newBound)) {
|
|
179
|
+
return new runnables_1.RunnableBinding({
|
|
180
|
+
bound: newBound.bound,
|
|
181
|
+
config: { ...llm.config, ...newBound.config },
|
|
182
|
+
kwargs: { ...llm.kwargs, ...newBound.kwargs },
|
|
183
|
+
configFactories: newBound.configFactories ?? llm.configFactories,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
return new runnables_1.RunnableBinding({
|
|
187
|
+
bound: newBound,
|
|
188
|
+
config: llm.config,
|
|
189
|
+
kwargs: llm.kwargs,
|
|
190
|
+
configFactories: llm.configFactories,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
return null;
|
|
194
|
+
};
|
|
195
|
+
async function _bindTools(llm, toolClasses) {
|
|
196
|
+
const model = _simpleBindTools(llm, toolClasses);
|
|
197
|
+
if (model)
|
|
198
|
+
return model;
|
|
199
|
+
if (_isConfigurableModel(llm)) {
|
|
200
|
+
const model = _simpleBindTools(await llm._model(), toolClasses);
|
|
201
|
+
if (model)
|
|
202
|
+
return model;
|
|
203
|
+
}
|
|
204
|
+
if (runnables_1.RunnableSequence.isRunnableSequence(llm)) {
|
|
205
|
+
const modelStep = llm.steps.findIndex((step) => runnables_1.RunnableBinding.isRunnableBinding(step) ||
|
|
206
|
+
_isBaseChatModel(step) ||
|
|
207
|
+
_isConfigurableModel(step));
|
|
208
|
+
if (modelStep >= 0) {
|
|
209
|
+
const model = _simpleBindTools(llm.steps[modelStep], toolClasses);
|
|
210
|
+
if (model) {
|
|
211
|
+
const nextSteps = llm.steps.slice();
|
|
212
|
+
nextSteps.splice(modelStep, 1, model);
|
|
213
|
+
return runnables_1.RunnableSequence.from(nextSteps);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
throw new Error(`llm ${llm} must define bindTools method.`);
|
|
218
|
+
}
|
|
150
219
|
async function _getModel(llm) {
|
|
151
220
|
// If model is a RunnableSequence, find a RunnableBinding or BaseChatModel in its steps
|
|
152
221
|
let model = llm;
|
|
@@ -243,10 +312,7 @@ function createReactAgent(params) {
|
|
|
243
312
|
}
|
|
244
313
|
let modelWithTools;
|
|
245
314
|
if (await _shouldBindTools(llm, toolClasses)) {
|
|
246
|
-
|
|
247
|
-
throw new Error(`llm ${llm} must define bindTools method.`);
|
|
248
|
-
}
|
|
249
|
-
modelWithTools = llm.bindTools(toolClasses);
|
|
315
|
+
modelWithTools = await _bindTools(llm, toolClasses);
|
|
250
316
|
}
|
|
251
317
|
else {
|
|
252
318
|
modelWithTools = llm;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
2
2
|
import { LanguageModelLike } from "@langchain/core/language_models/base";
|
|
3
3
|
import { BaseMessage, BaseMessageLike, SystemMessage } from "@langchain/core/messages";
|
|
4
|
-
import { Runnable, RunnableToolLike, type RunnableLike } from "@langchain/core/runnables";
|
|
4
|
+
import { Runnable, RunnableToolLike, RunnableSequence, RunnableBinding, type RunnableLike } from "@langchain/core/runnables";
|
|
5
5
|
import { DynamicTool, StructuredToolInterface } from "@langchain/core/tools";
|
|
6
6
|
import { InteropZodType } from "@langchain/core/utils/types";
|
|
7
7
|
import { All, BaseCheckpointSaver, BaseStore } from "@langchain/langgraph-checkpoint";
|
|
@@ -27,6 +27,7 @@ interface ConfigurableModelInterface {
|
|
|
27
27
|
_model: () => Promise<BaseChatModel>;
|
|
28
28
|
}
|
|
29
29
|
export declare function _shouldBindTools(llm: LanguageModelLike, tools: (ClientTool | ServerTool)[]): Promise<boolean>;
|
|
30
|
+
export declare function _bindTools(llm: LanguageModelLike, toolClasses: (ClientTool | ServerTool)[]): Promise<RunnableSequence<any, any> | Runnable<import("@langchain/core/language_models/base").BaseLanguageModelInput, import("@langchain/core/messages").AIMessageChunk, import("@langchain/core/language_models/chat_models").BaseChatModelCallOptions> | RunnableBinding<any, any, any>>;
|
|
30
31
|
export declare function _getModel(llm: LanguageModelLike | ConfigurableModelInterface): Promise<BaseChatModel>;
|
|
31
32
|
export type Prompt = SystemMessage | string | ((state: typeof MessagesAnnotation.State, config: LangGraphRunnableConfig) => BaseMessageLike[]) | ((state: typeof MessagesAnnotation.State, config: LangGraphRunnableConfig) => Promise<BaseMessageLike[]>) | Runnable;
|
|
32
33
|
/** @deprecated Use Prompt instead. */
|
|
@@ -75,9 +76,9 @@ export type CreateReactAgentParams<A extends AnnotationRoot<any> = AnnotationRoo
|
|
|
75
76
|
prompt?: Prompt;
|
|
76
77
|
stateSchema?: A;
|
|
77
78
|
/** An optional checkpoint saver to persist the agent's state. */
|
|
78
|
-
checkpointSaver?: BaseCheckpointSaver;
|
|
79
|
+
checkpointSaver?: BaseCheckpointSaver | boolean;
|
|
79
80
|
/** An optional checkpoint saver to persist the agent's state. Alias of "checkpointSaver". */
|
|
80
|
-
checkpointer?: BaseCheckpointSaver;
|
|
81
|
+
checkpointer?: BaseCheckpointSaver | boolean;
|
|
81
82
|
/** An optional list of node names to interrupt before running. */
|
|
82
83
|
interruptBefore?: N[] | All;
|
|
83
84
|
/** An optional list of node names to interrupt after running. */
|