@langchain/langgraph 1.0.7 → 1.0.13
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/channels/any_value.cjs.map +1 -1
- package/dist/channels/any_value.d.cts +0 -1
- package/dist/channels/any_value.d.cts.map +1 -1
- package/dist/channels/any_value.d.ts +0 -1
- package/dist/channels/any_value.d.ts.map +1 -1
- package/dist/channels/any_value.js.map +1 -1
- package/dist/channels/base.cjs +2 -3
- package/dist/channels/base.cjs.map +1 -1
- package/dist/channels/base.d.cts.map +1 -1
- package/dist/channels/base.d.ts.map +1 -1
- package/dist/channels/base.js.map +1 -1
- package/dist/channels/binop.cjs.map +1 -1
- package/dist/channels/binop.d.cts.map +1 -1
- package/dist/channels/binop.d.ts.map +1 -1
- package/dist/channels/binop.js.map +1 -1
- package/dist/channels/dynamic_barrier_value.cjs +0 -1
- package/dist/channels/dynamic_barrier_value.cjs.map +1 -1
- package/dist/channels/dynamic_barrier_value.d.cts +1 -3
- package/dist/channels/dynamic_barrier_value.d.cts.map +1 -1
- package/dist/channels/dynamic_barrier_value.d.ts +1 -3
- package/dist/channels/dynamic_barrier_value.d.ts.map +1 -1
- package/dist/channels/dynamic_barrier_value.js +0 -1
- package/dist/channels/dynamic_barrier_value.js.map +1 -1
- package/dist/channels/ephemeral_value.cjs.map +1 -1
- package/dist/channels/ephemeral_value.d.cts +0 -1
- package/dist/channels/ephemeral_value.d.cts.map +1 -1
- package/dist/channels/ephemeral_value.d.ts +0 -1
- package/dist/channels/ephemeral_value.d.ts.map +1 -1
- package/dist/channels/ephemeral_value.js.map +1 -1
- package/dist/channels/last_value.cjs.map +1 -1
- package/dist/channels/last_value.d.cts +0 -2
- package/dist/channels/last_value.d.cts.map +1 -1
- package/dist/channels/last_value.d.ts +0 -2
- package/dist/channels/last_value.d.ts.map +1 -1
- package/dist/channels/last_value.js.map +1 -1
- package/dist/channels/named_barrier_value.cjs +0 -2
- package/dist/channels/named_barrier_value.cjs.map +1 -1
- package/dist/channels/named_barrier_value.d.cts +2 -4
- package/dist/channels/named_barrier_value.d.cts.map +1 -1
- package/dist/channels/named_barrier_value.d.ts +2 -4
- package/dist/channels/named_barrier_value.d.ts.map +1 -1
- package/dist/channels/named_barrier_value.js +0 -2
- package/dist/channels/named_barrier_value.js.map +1 -1
- package/dist/channels/topic.cjs.map +1 -1
- package/dist/channels/topic.d.cts.map +1 -1
- package/dist/channels/topic.d.ts.map +1 -1
- package/dist/channels/topic.js.map +1 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +2 -6
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.ts +2 -6
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.cts +0 -4
- package/dist/errors.d.cts.map +1 -1
- package/dist/errors.d.ts +0 -4
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/func/index.cjs +2 -4
- package/dist/func/index.cjs.map +1 -1
- package/dist/func/index.d.cts +1 -6
- package/dist/func/index.d.cts.map +1 -1
- package/dist/func/index.d.ts +1 -6
- package/dist/func/index.d.ts.map +1 -1
- package/dist/func/index.js +1 -2
- package/dist/func/index.js.map +1 -1
- package/dist/func/types.d.cts +2 -4
- package/dist/func/types.d.cts.map +1 -1
- package/dist/func/types.d.ts +2 -4
- package/dist/func/types.d.ts.map +1 -1
- package/dist/graph/annotation.cjs.map +1 -1
- package/dist/graph/annotation.d.cts.map +1 -1
- package/dist/graph/annotation.d.ts.map +1 -1
- package/dist/graph/annotation.js.map +1 -1
- package/dist/graph/graph.cjs +15 -18
- package/dist/graph/graph.cjs.map +1 -1
- package/dist/graph/graph.d.cts +4 -28
- package/dist/graph/graph.d.cts.map +1 -1
- package/dist/graph/graph.d.ts +4 -28
- package/dist/graph/graph.d.ts.map +1 -1
- package/dist/graph/graph.js +4 -6
- package/dist/graph/graph.js.map +1 -1
- package/dist/graph/message.cjs +8 -10
- package/dist/graph/message.cjs.map +1 -1
- package/dist/graph/message.d.cts +2 -2
- package/dist/graph/message.d.cts.map +1 -1
- package/dist/graph/message.d.ts +2 -2
- package/dist/graph/message.d.ts.map +1 -1
- package/dist/graph/message.js +3 -4
- package/dist/graph/message.js.map +1 -1
- package/dist/graph/messages_annotation.cjs +1 -2
- package/dist/graph/messages_annotation.cjs.map +1 -1
- package/dist/graph/messages_annotation.d.cts +5 -5
- package/dist/graph/messages_annotation.d.cts.map +1 -1
- package/dist/graph/messages_annotation.d.ts +5 -5
- package/dist/graph/messages_annotation.d.ts.map +1 -1
- package/dist/graph/messages_annotation.js.map +1 -1
- package/dist/graph/state.cjs +23 -30
- package/dist/graph/state.cjs.map +1 -1
- package/dist/graph/state.d.cts +2 -9
- package/dist/graph/state.d.cts.map +1 -1
- package/dist/graph/state.d.ts +2 -9
- package/dist/graph/state.d.ts.map +1 -1
- package/dist/graph/state.js +6 -12
- package/dist/graph/state.js.map +1 -1
- package/dist/graph/zod/meta.cjs +8 -9
- package/dist/graph/zod/meta.cjs.map +1 -1
- package/dist/graph/zod/meta.d.cts +0 -1
- package/dist/graph/zod/meta.d.cts.map +1 -1
- package/dist/graph/zod/meta.d.ts +0 -1
- package/dist/graph/zod/meta.d.ts.map +1 -1
- package/dist/graph/zod/meta.js.map +1 -1
- package/dist/graph/zod/plugin.cjs +4 -6
- package/dist/graph/zod/plugin.cjs.map +1 -1
- package/dist/graph/zod/plugin.js +1 -2
- package/dist/graph/zod/plugin.js.map +1 -1
- package/dist/graph/zod/schema.cjs +2 -3
- package/dist/graph/zod/schema.cjs.map +1 -1
- package/dist/graph/zod/schema.d.cts.map +1 -1
- package/dist/graph/zod/schema.d.ts.map +1 -1
- package/dist/graph/zod/schema.js.map +1 -1
- package/dist/graph/zod/zod-registry.cjs +3 -4
- package/dist/graph/zod/zod-registry.cjs.map +1 -1
- package/dist/graph/zod/zod-registry.d.cts +0 -2
- package/dist/graph/zod/zod-registry.d.cts.map +1 -1
- package/dist/graph/zod/zod-registry.d.ts +0 -2
- package/dist/graph/zod/zod-registry.d.ts.map +1 -1
- package/dist/graph/zod/zod-registry.js.map +1 -1
- package/dist/hash.cjs +4 -10
- package/dist/hash.cjs.map +1 -1
- package/dist/hash.js +4 -10
- package/dist/hash.js.map +1 -1
- package/dist/index.cjs +8 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interrupt.cjs +4 -7
- package/dist/interrupt.cjs.map +1 -1
- package/dist/interrupt.d.cts +1 -4
- package/dist/interrupt.d.cts.map +1 -1
- package/dist/interrupt.d.ts +1 -4
- package/dist/interrupt.d.ts.map +1 -1
- package/dist/interrupt.js +2 -4
- package/dist/interrupt.js.map +1 -1
- package/dist/prebuilt/agentName.cjs +14 -19
- package/dist/prebuilt/agentName.cjs.map +1 -1
- package/dist/prebuilt/agentName.js +6 -10
- package/dist/prebuilt/agentName.js.map +1 -1
- package/dist/prebuilt/agent_executor.cjs +4 -7
- package/dist/prebuilt/agent_executor.cjs.map +1 -1
- package/dist/prebuilt/agent_executor.d.cts +5 -5
- package/dist/prebuilt/agent_executor.d.cts.map +1 -1
- package/dist/prebuilt/agent_executor.d.ts +5 -5
- package/dist/prebuilt/agent_executor.d.ts.map +1 -1
- package/dist/prebuilt/agent_executor.js +4 -7
- package/dist/prebuilt/agent_executor.js.map +1 -1
- package/dist/prebuilt/chat_agent_executor.cjs +11 -17
- package/dist/prebuilt/chat_agent_executor.cjs.map +1 -1
- package/dist/prebuilt/chat_agent_executor.d.cts.map +1 -1
- package/dist/prebuilt/chat_agent_executor.d.ts.map +1 -1
- package/dist/prebuilt/chat_agent_executor.js +7 -12
- package/dist/prebuilt/chat_agent_executor.js.map +1 -1
- package/dist/prebuilt/interrupt.d.cts +0 -1
- package/dist/prebuilt/interrupt.d.cts.map +1 -1
- package/dist/prebuilt/interrupt.d.ts +0 -1
- package/dist/prebuilt/interrupt.d.ts.map +1 -1
- package/dist/prebuilt/react_agent_executor.cjs +35 -40
- package/dist/prebuilt/react_agent_executor.cjs.map +1 -1
- package/dist/prebuilt/react_agent_executor.d.cts +8 -27
- package/dist/prebuilt/react_agent_executor.d.cts.map +1 -1
- package/dist/prebuilt/react_agent_executor.d.ts +8 -27
- package/dist/prebuilt/react_agent_executor.d.ts.map +1 -1
- package/dist/prebuilt/react_agent_executor.js +8 -12
- package/dist/prebuilt/react_agent_executor.js.map +1 -1
- package/dist/prebuilt/tool_executor.cjs +4 -9
- package/dist/prebuilt/tool_executor.cjs.map +1 -1
- package/dist/prebuilt/tool_executor.d.cts +0 -2
- package/dist/prebuilt/tool_executor.d.cts.map +1 -1
- package/dist/prebuilt/tool_executor.d.ts +0 -2
- package/dist/prebuilt/tool_executor.d.ts.map +1 -1
- package/dist/prebuilt/tool_executor.js +1 -5
- package/dist/prebuilt/tool_executor.js.map +1 -1
- package/dist/prebuilt/tool_node.cjs +7 -8
- package/dist/prebuilt/tool_node.cjs.map +1 -1
- package/dist/prebuilt/tool_node.d.cts +0 -2
- package/dist/prebuilt/tool_node.d.cts.map +1 -1
- package/dist/prebuilt/tool_node.d.ts +0 -2
- package/dist/prebuilt/tool_node.d.ts.map +1 -1
- package/dist/prebuilt/tool_node.js.map +1 -1
- package/dist/pregel/algo.cjs +33 -41
- package/dist/pregel/algo.cjs.map +1 -1
- package/dist/pregel/algo.d.cts.map +1 -1
- package/dist/pregel/algo.d.ts.map +1 -1
- package/dist/pregel/algo.js +22 -29
- package/dist/pregel/algo.js.map +1 -1
- package/dist/pregel/call.cjs +11 -14
- package/dist/pregel/call.cjs.map +1 -1
- package/dist/pregel/call.js +7 -9
- package/dist/pregel/call.js.map +1 -1
- package/dist/pregel/debug.cjs +6 -9
- package/dist/pregel/debug.cjs.map +1 -1
- package/dist/pregel/debug.js +6 -9
- package/dist/pregel/debug.js.map +1 -1
- package/dist/pregel/index.cjs +28 -35
- package/dist/pregel/index.cjs.map +1 -1
- package/dist/pregel/index.d.cts +6 -54
- package/dist/pregel/index.d.cts.map +1 -1
- package/dist/pregel/index.d.ts +6 -54
- package/dist/pregel/index.d.ts.map +1 -1
- package/dist/pregel/index.js +10 -16
- package/dist/pregel/index.js.map +1 -1
- package/dist/pregel/io.cjs.map +1 -1
- package/dist/pregel/io.js.map +1 -1
- package/dist/pregel/loop.cjs +9 -12
- package/dist/pregel/loop.cjs.map +1 -1
- package/dist/pregel/loop.js +2 -4
- package/dist/pregel/loop.js.map +1 -1
- package/dist/pregel/messages.cjs +13 -14
- package/dist/pregel/messages.cjs.map +1 -1
- package/dist/pregel/messages.js.map +1 -1
- package/dist/pregel/read.cjs +7 -8
- package/dist/pregel/read.cjs.map +1 -1
- package/dist/pregel/read.d.cts +0 -6
- package/dist/pregel/read.d.cts.map +1 -1
- package/dist/pregel/read.d.ts +0 -6
- package/dist/pregel/read.d.ts.map +1 -1
- package/dist/pregel/read.js +1 -1
- package/dist/pregel/read.js.map +1 -1
- package/dist/pregel/remote.cjs +24 -32
- package/dist/pregel/remote.cjs.map +1 -1
- package/dist/pregel/remote.d.cts +1 -6
- package/dist/pregel/remote.d.cts.map +1 -1
- package/dist/pregel/remote.d.ts +1 -6
- package/dist/pregel/remote.d.ts.map +1 -1
- package/dist/pregel/remote.js +12 -19
- package/dist/pregel/remote.js.map +1 -1
- package/dist/pregel/retry.cjs +1 -2
- package/dist/pregel/retry.cjs.map +1 -1
- package/dist/pregel/retry.js +1 -2
- package/dist/pregel/retry.js.map +1 -1
- package/dist/pregel/runnable_types.d.cts +2 -8
- package/dist/pregel/runnable_types.d.cts.map +1 -1
- package/dist/pregel/runnable_types.d.ts +2 -8
- package/dist/pregel/runnable_types.d.ts.map +1 -1
- package/dist/pregel/runner.cjs +1 -1
- package/dist/pregel/runner.cjs.map +1 -1
- package/dist/pregel/runner.js +1 -1
- package/dist/pregel/runner.js.map +1 -1
- package/dist/pregel/stream.cjs +4 -6
- package/dist/pregel/stream.cjs.map +1 -1
- package/dist/pregel/stream.js +1 -2
- package/dist/pregel/stream.js.map +1 -1
- package/dist/pregel/types.d.cts +5 -18
- package/dist/pregel/types.d.cts.map +1 -1
- package/dist/pregel/types.d.ts +5 -18
- package/dist/pregel/types.d.ts.map +1 -1
- package/dist/pregel/utils/config.cjs +6 -7
- package/dist/pregel/utils/config.cjs.map +1 -1
- package/dist/pregel/utils/config.d.cts.map +1 -1
- package/dist/pregel/utils/config.d.ts.map +1 -1
- package/dist/pregel/utils/config.js.map +1 -1
- package/dist/pregel/utils/index.cjs +1 -2
- package/dist/pregel/utils/index.cjs.map +1 -1
- package/dist/pregel/utils/index.d.cts +1 -1
- package/dist/pregel/utils/index.d.cts.map +1 -1
- package/dist/pregel/utils/index.d.ts +1 -1
- package/dist/pregel/utils/index.d.ts.map +1 -1
- package/dist/pregel/utils/index.js +1 -2
- package/dist/pregel/utils/index.js.map +1 -1
- package/dist/pregel/utils/subgraph.cjs +0 -1
- package/dist/pregel/utils/subgraph.cjs.map +1 -1
- package/dist/pregel/utils/subgraph.js +0 -1
- package/dist/pregel/utils/subgraph.js.map +1 -1
- package/dist/pregel/validate.cjs.map +1 -1
- package/dist/pregel/validate.js.map +1 -1
- package/dist/pregel/write.cjs +2 -3
- package/dist/pregel/write.cjs.map +1 -1
- package/dist/pregel/write.d.cts +1 -5
- package/dist/pregel/write.d.cts.map +1 -1
- package/dist/pregel/write.d.ts +1 -5
- package/dist/pregel/write.d.ts.map +1 -1
- package/dist/pregel/write.js.map +1 -1
- package/dist/setup/async_local_storage.cjs +3 -4
- package/dist/setup/async_local_storage.cjs.map +1 -1
- package/dist/setup/async_local_storage.js.map +1 -1
- package/dist/utils.cjs +9 -11
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +1 -8
- package/dist/utils.d.cts.map +1 -1
- package/dist/utils.d.ts +1 -8
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -2
- package/dist/utils.js.map +1 -1
- package/dist/web.cjs +8 -9
- package/dist/writer.cjs +2 -3
- package/dist/writer.cjs.map +1 -1
- package/dist/writer.d.cts +1 -2
- package/dist/writer.d.cts.map +1 -1
- package/dist/writer.d.ts +1 -2
- package/dist/writer.d.ts.map +1 -1
- package/dist/writer.js.map +1 -1
- package/package.json +7 -7
- package/CHANGELOG.md +0 -286
- package/dist/_virtual/rolldown_runtime.cjs +0 -25
package/dist/hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.js","names":["n","data"],"sources":["../src/hash.ts"],"sourcesContent":["/* Converted from https://github.com/i404788/xxh3-ts\n\nBSD 2-Clause License\n\nCopyright (c) 2019, i404788\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\nconst n = (n: number | string) => BigInt(n);\nconst view = (data: Uint8Array | DataView, offset: number = 0) =>\n new DataView(data.buffer, data.byteOffset + offset, data.byteLength - offset);\n\nconst PRIME32_1 = n(\"0x9E3779B1\"); // 0b10011110001101110111100110110001\nconst PRIME32_2 = n(\"0x85EBCA77\"); // 0b10000101111010111100101001110111\nconst PRIME32_3 = n(\"0xC2B2AE3D\"); // 0b11000010101100101010111000111101\nconst PRIME64_1 = n(\"0x9E3779B185EBCA87\"); // 0b1001111000110111011110011011000110000101111010111100101010000111\nconst PRIME64_2 = n(\"0xC2B2AE3D27D4EB4F\"); // 0b1100001010110010101011100011110100100111110101001110101101001111\nconst PRIME64_3 = n(\"0x165667B19E3779F9\"); // 0b0001011001010110011001111011000110011110001101110111100111111001\nconst PRIME64_4 = n(\"0x85EBCA77C2B2AE63\"); // 0b1000010111101011110010100111011111000010101100101010111001100011\nconst PRIME64_5 = n(\"0x27D4EB2F165667C5\"); // 0b0010011111010100111010110010111100010110010101100110011111000101\nconst PRIME_MX1 = n(\"0x165667919E3779F9\"); // 0b0001011001010110011001111001000110011110001101110111100111111001\nconst PRIME_MX2 = n(\"0x9FB21C651E98DF25\"); // 0b1001111110110010000111000110010100011110100110001101111100100101\n\nconst hexToUint8Array = (hex: string) => {\n const strLen = hex.length;\n if (strLen % 2 !== 0) {\n throw new Error(\"String should have an even number of characters\");\n }\n\n const maxLength = strLen / 2;\n const bytes = new Uint8Array(maxLength);\n\n let read = 0;\n let write = 0;\n while (write < maxLength) {\n const slice = hex.slice(read, (read += 2));\n bytes[write] = Number.parseInt(slice, 16);\n write += 1;\n }\n\n return view(bytes);\n};\n\nconst kkey = hexToUint8Array(\n \"b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e\"\n);\n\nconst mask128 = (n(1) << n(128)) - n(1);\nconst mask64 = (n(1) << n(64)) - n(1);\nconst mask32 = (n(1) << n(32)) - n(1);\nconst STRIPE_LEN = 64;\nconst ACC_NB = STRIPE_LEN / 8;\nconst _U64 = 8;\nconst _U32 = 4;\n\nfunction assert(a: boolean) {\n if (!a) throw new Error(\"Assert failed\");\n}\n\nfunction bswap64(a: bigint) {\n const scratchbuf = new DataView(new ArrayBuffer(8));\n scratchbuf.setBigUint64(0, a, true);\n return scratchbuf.getBigUint64(0, false);\n}\n\nfunction bswap32(input: bigint) {\n let a = input;\n a = ((a & n(0x0000ffff)) << n(16)) | ((a & n(0xffff0000)) >> n(16));\n a = ((a & n(0x00ff00ff)) << n(8)) | ((a & n(0xff00ff00)) >> n(8));\n return a; // 32-bit\n}\n\nfunction XXH_mult32to64(a: bigint, b: bigint) {\n return ((a & mask32) * (b & mask32)) & mask64;\n}\n\nfunction rotl32(a: bigint, b: bigint) {\n return ((a << b) | (a >> (n(32) - b))) & mask32;\n}\n\nfunction XXH3_accumulate_512(\n acc: BigUint64Array,\n dataView: DataView,\n keyView: DataView\n) {\n for (let i = 0; i < ACC_NB; i += 1) {\n const data_val = dataView.getBigUint64(i * 8, true);\n const data_key = data_val ^ keyView.getBigUint64(i * 8, true);\n acc[i ^ 1] += data_val;\n acc[i] += XXH_mult32to64(data_key, data_key >> n(32));\n }\n return acc;\n}\n\nfunction XXH3_accumulate(\n acc: BigUint64Array,\n dataView: DataView,\n keyView: DataView,\n nbStripes: number\n) {\n for (let n = 0; n < nbStripes; n += 1) {\n XXH3_accumulate_512(\n acc,\n view(dataView, n * STRIPE_LEN),\n view(keyView, n * 8)\n );\n }\n return acc;\n}\n\nfunction XXH3_scrambleAcc(acc: BigUint64Array, key: DataView) {\n for (let i = 0; i < ACC_NB; i += 1) {\n const key64 = key.getBigUint64(i * 8, true);\n let acc64 = acc[i];\n acc64 = xorshift64(acc64, n(47));\n acc64 ^= key64;\n acc64 *= PRIME32_1;\n acc[i] = acc64 & mask64;\n }\n return acc;\n}\n\nfunction XXH3_mix2Accs(acc: BigUint64Array, key: DataView) {\n return XXH3_mul128_fold64(\n acc[0] ^ key.getBigUint64(0, true),\n acc[1] ^ key.getBigUint64(_U64, true)\n );\n}\n\nfunction XXH3_mergeAccs(acc: BigUint64Array, key: DataView, start: bigint) {\n let result64 = start;\n\n result64 += XXH3_mix2Accs(acc.slice(0), view(key, 0 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(2), view(key, 4 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(4), view(key, 8 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(6), view(key, 12 * _U32));\n\n return XXH3_avalanche(result64 & mask64);\n}\n\nfunction XXH3_hashLong(\n input: BigUint64Array,\n data: DataView,\n secret: DataView,\n f_acc: (acc: BigUint64Array, data: DataView, key: DataView) => BigUint64Array,\n f_scramble: (acc: BigUint64Array, key: DataView) => BigUint64Array\n) {\n let acc = input;\n const nbStripesPerBlock = Math.floor((secret.byteLength - STRIPE_LEN) / 8);\n const block_len = STRIPE_LEN * nbStripesPerBlock;\n const nb_blocks = Math.floor((data.byteLength - 1) / block_len);\n\n for (let n = 0; n < nb_blocks; n += 1) {\n acc = XXH3_accumulate(\n acc,\n view(data, n * block_len),\n secret,\n nbStripesPerBlock\n );\n acc = f_scramble(acc, view(secret, secret.byteLength - STRIPE_LEN));\n }\n\n {\n // Partial block\n const nbStripes = Math.floor(\n (data.byteLength - 1 - block_len * nb_blocks) / STRIPE_LEN\n );\n acc = XXH3_accumulate(\n acc,\n view(data, nb_blocks * block_len),\n secret,\n nbStripes\n );\n\n // Last Stripe\n acc = f_acc(\n acc,\n view(data, data.byteLength - STRIPE_LEN),\n view(secret, secret.byteLength - STRIPE_LEN - 7)\n );\n }\n return acc;\n}\n\nfunction XXH3_hashLong_128b(data: DataView, secret: DataView) {\n let acc = new BigUint64Array([\n PRIME32_3,\n PRIME64_1,\n PRIME64_2,\n PRIME64_3,\n PRIME64_4,\n PRIME32_2,\n PRIME64_5,\n PRIME32_1,\n ]);\n assert(data.byteLength > 128);\n\n acc = XXH3_hashLong(\n acc,\n data,\n secret,\n XXH3_accumulate_512,\n XXH3_scrambleAcc\n ) as BigUint64Array<ArrayBuffer>;\n\n /* converge into final hash */\n assert(acc.length * 8 === 64);\n {\n const low64 = XXH3_mergeAccs(\n acc,\n view(secret, 11),\n (n(data.byteLength) * PRIME64_1) & mask64\n );\n const high64 = XXH3_mergeAccs(\n acc,\n view(secret, secret.byteLength - STRIPE_LEN - 11),\n ~(n(data.byteLength) * PRIME64_2) & mask64\n );\n return (high64 << n(64)) | low64;\n }\n}\n\nfunction XXH3_mul128_fold64(a: bigint, b: bigint) {\n const lll = (a * b) & mask128;\n return (lll & mask64) ^ (lll >> n(64));\n}\n\nfunction XXH3_mix16B(dataView: DataView, keyView: DataView, seed: bigint) {\n return XXH3_mul128_fold64(\n (dataView.getBigUint64(0, true) ^ (keyView.getBigUint64(0, true) + seed)) &\n mask64,\n (dataView.getBigUint64(8, true) ^ (keyView.getBigUint64(8, true) - seed)) &\n mask64\n );\n}\n\nfunction XXH3_mix32B(\n acc: bigint,\n data1: DataView,\n data2: DataView,\n key: DataView,\n seed: bigint\n) {\n let accl = acc & mask64;\n let acch = (acc >> n(64)) & mask64;\n\n accl += XXH3_mix16B(data1, key, seed);\n accl ^= data2.getBigUint64(0, true) + data2.getBigUint64(8, true);\n accl &= mask64;\n acch += XXH3_mix16B(data2, view(key, 16), seed);\n acch ^= data1.getBigUint64(0, true) + data1.getBigUint64(8, true);\n acch &= mask64;\n\n return (acch << n(64)) | accl;\n}\n\nfunction XXH3_avalanche(input: bigint) {\n let h64 = input;\n h64 ^= h64 >> n(37);\n h64 *= PRIME_MX1;\n h64 &= mask64;\n h64 ^= h64 >> n(32);\n return h64;\n}\n\nfunction XXH3_avalanche64(input: bigint) {\n let h64 = input;\n h64 ^= h64 >> n(33);\n h64 *= PRIME64_2;\n h64 &= mask64; // 64-bit\n h64 ^= h64 >> n(29);\n h64 *= PRIME64_3;\n h64 &= mask64;\n h64 ^= h64 >> n(32);\n return h64;\n}\n\nfunction XXH3_len_1to3_128b(data: DataView, key32: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len > 0 && len <= 3);\n\n const combined =\n n(data.getUint8(len - 1)) |\n n(len << 8) |\n n(data.getUint8(0) << 16) |\n n(data.getUint8(len >> 1) << 24);\n\n const blow =\n (n(key32.getUint32(0, true)) ^ n(key32.getUint32(4, true))) + seed;\n const low = (combined ^ blow) & mask64;\n const bhigh =\n (n(key32.getUint32(8, true)) ^ n(key32.getUint32(12, true))) - seed;\n const high = (rotl32(bswap32(combined), n(13)) ^ bhigh) & mask64;\n\n return ((XXH3_avalanche64(high) & mask64) << n(64)) | XXH3_avalanche64(low);\n}\n\nfunction xorshift64(b: bigint, shift: bigint) {\n return b ^ (b >> shift);\n}\n\nfunction XXH3_len_4to8_128b(data: DataView, key32: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len >= 4 && len <= 8);\n\n {\n const l1 = data.getUint32(0, true);\n const l2 = data.getUint32(len - 4, true);\n const l64 = n(l1) | (n(l2) << n(32));\n const bitflip =\n ((key32.getBigUint64(16, true) ^ key32.getBigUint64(24, true)) + seed) &\n mask64;\n const keyed = l64 ^ bitflip;\n let m128 = (keyed * (PRIME64_1 + (n(len) << n(2)))) & mask128;\n m128 += (m128 & mask64) << n(65);\n m128 &= mask128;\n m128 ^= m128 >> n(67);\n\n return (\n xorshift64(\n (xorshift64(m128 & mask64, n(35)) * PRIME_MX2) & mask64,\n n(28)\n ) |\n (XXH3_avalanche(m128 >> n(64)) << n(64))\n );\n }\n}\n\nfunction XXH3_len_9to16_128b(data: DataView, key64: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len >= 9 && len <= 16);\n\n {\n const bitflipl =\n ((key64.getBigUint64(32, true) ^ key64.getBigUint64(40, true)) + seed) &\n mask64;\n const bitfliph =\n ((key64.getBigUint64(48, true) ^ key64.getBigUint64(56, true)) - seed) &\n mask64;\n const ll1 = data.getBigUint64(0, true);\n let ll2 = data.getBigUint64(len - 8, true);\n\n let m128 = (ll1 ^ ll2 ^ bitflipl) * PRIME64_1;\n\n const m128_l = (m128 & mask64) + (n(len - 1) << n(54));\n m128 = (m128 & (mask128 ^ mask64)) | m128_l; // eqv. to adding only to lower 64b\n ll2 ^= bitfliph;\n\n m128 += (ll2 + (ll2 & mask32) * (PRIME32_2 - n(1))) << n(64);\n m128 &= mask128;\n m128 ^= bswap64(m128 >> n(64));\n let h128 = (m128 & mask64) * PRIME64_2;\n h128 += ((m128 >> n(64)) * PRIME64_2) << n(64);\n h128 &= mask128;\n\n return (\n XXH3_avalanche(h128 & mask64) | (XXH3_avalanche(h128 >> n(64)) << n(64))\n );\n }\n}\n\nfunction XXH3_len_0to16_128b(data: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len <= 16);\n\n if (len > 8) return XXH3_len_9to16_128b(data, kkey, seed);\n if (len >= 4) return XXH3_len_4to8_128b(data, kkey, seed);\n if (len > 0) return XXH3_len_1to3_128b(data, kkey, seed);\n\n return (\n XXH3_avalanche64(\n seed ^ kkey.getBigUint64(64, true) ^ kkey.getBigUint64(72, true)\n ) |\n (XXH3_avalanche64(\n seed ^ kkey.getBigUint64(80, true) ^ kkey.getBigUint64(88, true)\n ) <<\n n(64))\n );\n}\n\nfunction inv64(x: bigint) {\n // NOTE: `AND` fixes signedness (but because of 2's complement we need to re-add 1)\n return (~x + n(1)) & mask64;\n}\n\nfunction XXH3_len_17to128_128b(data: DataView, secret: DataView, seed: bigint) {\n let acc = (n(data.byteLength) * PRIME64_1) & mask64;\n let i = n(data.byteLength - 1) / n(32);\n while (i >= 0) {\n const ni = Number(i);\n acc = XXH3_mix32B(\n acc,\n view(data, 16 * ni),\n view(data, data.byteLength - 16 * (ni + 1)),\n view(secret, 32 * ni),\n seed\n );\n i -= n(1);\n }\n\n let h128l = (acc + (acc >> n(64))) & mask64;\n h128l = XXH3_avalanche(h128l);\n let h128h =\n (acc & mask64) * PRIME64_1 +\n (acc >> n(64)) * PRIME64_4 +\n ((n(data.byteLength) - seed) & mask64) * PRIME64_2;\n h128h &= mask64;\n\n h128h = inv64(XXH3_avalanche(h128h));\n return h128l | (h128h << n(64));\n}\n\nfunction XXH3_len_129to240_128b(\n data: DataView,\n secret: DataView,\n seed: bigint\n) {\n let acc = (n(data.byteLength) * PRIME64_1) & mask64;\n for (let i = 32; i < 160; i += 32) {\n acc = XXH3_mix32B(\n acc,\n view(data, i - 32),\n view(data, i - 16),\n view(secret, i - 32),\n seed\n );\n }\n acc = XXH3_avalanche(acc & mask64) | (XXH3_avalanche(acc >> n(64)) << n(64));\n for (let i = 160; i <= data.byteLength; i += 32) {\n acc = XXH3_mix32B(\n acc,\n view(data, i - 32),\n view(data, i - 16),\n view(secret, 3 + i - 160),\n seed\n );\n }\n acc = XXH3_mix32B(\n acc,\n view(data, data.byteLength - 16),\n view(data, data.byteLength - 32),\n view(secret, 136 - 17 - 16),\n inv64(seed)\n );\n\n let h128l = (acc + (acc >> n(64))) & mask64;\n h128l = XXH3_avalanche(h128l);\n let h128h =\n (acc & mask64) * PRIME64_1 +\n (acc >> n(64)) * PRIME64_4 +\n ((n(data.byteLength) - seed) & mask64) * PRIME64_2;\n h128h &= mask64;\n\n h128h = inv64(XXH3_avalanche(h128h));\n return h128l | (h128h << n(64));\n}\n\n// 16 byte min input\nexport function XXH3(input: Uint8Array | string, seed: bigint = n(0)) {\n const encoder = new TextEncoder();\n const data = view(typeof input === \"string\" ? encoder.encode(input) : input);\n const len = data.byteLength;\n\n const hexDigest = (data: bigint) => data.toString(16).padStart(32, \"0\");\n if (len <= 16) return hexDigest(XXH3_len_0to16_128b(data, seed));\n if (len <= 128) return hexDigest(XXH3_len_17to128_128b(data, kkey, seed));\n if (len <= 240) return hexDigest(XXH3_len_129to240_128b(data, kkey, seed));\n return hexDigest(XXH3_hashLong_128b(data, kkey));\n}\n\nexport function isXXH3(value: string): boolean {\n // Check if the given string matches the format of XXH3 (128 bit hex digest).\n return /^[0-9a-f]{32}$/.test(value);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hash.js","names":["n","data"],"sources":["../src/hash.ts"],"sourcesContent":["/* Converted from https://github.com/i404788/xxh3-ts\n\nBSD 2-Clause License\n\nCopyright (c) 2019, i404788\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\nconst n = (n: number | string) => BigInt(n);\nconst view = (data: Uint8Array | DataView, offset: number = 0) =>\n new DataView(data.buffer, data.byteOffset + offset, data.byteLength - offset);\n\nconst PRIME32_1 = n(\"0x9E3779B1\"); // 0b10011110001101110111100110110001\nconst PRIME32_2 = n(\"0x85EBCA77\"); // 0b10000101111010111100101001110111\nconst PRIME32_3 = n(\"0xC2B2AE3D\"); // 0b11000010101100101010111000111101\nconst PRIME64_1 = n(\"0x9E3779B185EBCA87\"); // 0b1001111000110111011110011011000110000101111010111100101010000111\nconst PRIME64_2 = n(\"0xC2B2AE3D27D4EB4F\"); // 0b1100001010110010101011100011110100100111110101001110101101001111\nconst PRIME64_3 = n(\"0x165667B19E3779F9\"); // 0b0001011001010110011001111011000110011110001101110111100111111001\nconst PRIME64_4 = n(\"0x85EBCA77C2B2AE63\"); // 0b1000010111101011110010100111011111000010101100101010111001100011\nconst PRIME64_5 = n(\"0x27D4EB2F165667C5\"); // 0b0010011111010100111010110010111100010110010101100110011111000101\nconst PRIME_MX1 = n(\"0x165667919E3779F9\"); // 0b0001011001010110011001111001000110011110001101110111100111111001\nconst PRIME_MX2 = n(\"0x9FB21C651E98DF25\"); // 0b1001111110110010000111000110010100011110100110001101111100100101\n\nconst hexToUint8Array = (hex: string) => {\n const strLen = hex.length;\n if (strLen % 2 !== 0) {\n throw new Error(\"String should have an even number of characters\");\n }\n\n const maxLength = strLen / 2;\n const bytes = new Uint8Array(maxLength);\n\n let read = 0;\n let write = 0;\n while (write < maxLength) {\n const slice = hex.slice(read, (read += 2));\n bytes[write] = Number.parseInt(slice, 16);\n write += 1;\n }\n\n return view(bytes);\n};\n\nconst kkey = hexToUint8Array(\n \"b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e\"\n);\n\nconst mask128 = (n(1) << n(128)) - n(1);\nconst mask64 = (n(1) << n(64)) - n(1);\nconst mask32 = (n(1) << n(32)) - n(1);\nconst STRIPE_LEN = 64;\nconst ACC_NB = STRIPE_LEN / 8;\nconst _U64 = 8;\nconst _U32 = 4;\n\nfunction assert(a: boolean) {\n if (!a) throw new Error(\"Assert failed\");\n}\n\nfunction bswap64(a: bigint) {\n const scratchbuf = new DataView(new ArrayBuffer(8));\n scratchbuf.setBigUint64(0, a, true);\n return scratchbuf.getBigUint64(0, false);\n}\n\nfunction bswap32(input: bigint) {\n let a = input;\n a = ((a & n(0x0000ffff)) << n(16)) | ((a & n(0xffff0000)) >> n(16));\n a = ((a & n(0x00ff00ff)) << n(8)) | ((a & n(0xff00ff00)) >> n(8));\n return a; // 32-bit\n}\n\nfunction XXH_mult32to64(a: bigint, b: bigint) {\n return ((a & mask32) * (b & mask32)) & mask64;\n}\n\nfunction rotl32(a: bigint, b: bigint) {\n return ((a << b) | (a >> (n(32) - b))) & mask32;\n}\n\nfunction XXH3_accumulate_512(\n acc: BigUint64Array,\n dataView: DataView,\n keyView: DataView\n) {\n for (let i = 0; i < ACC_NB; i += 1) {\n const data_val = dataView.getBigUint64(i * 8, true);\n const data_key = data_val ^ keyView.getBigUint64(i * 8, true);\n acc[i ^ 1] += data_val;\n acc[i] += XXH_mult32to64(data_key, data_key >> n(32));\n }\n return acc;\n}\n\nfunction XXH3_accumulate(\n acc: BigUint64Array,\n dataView: DataView,\n keyView: DataView,\n nbStripes: number\n) {\n for (let n = 0; n < nbStripes; n += 1) {\n XXH3_accumulate_512(\n acc,\n view(dataView, n * STRIPE_LEN),\n view(keyView, n * 8)\n );\n }\n return acc;\n}\n\nfunction XXH3_scrambleAcc(acc: BigUint64Array, key: DataView) {\n for (let i = 0; i < ACC_NB; i += 1) {\n const key64 = key.getBigUint64(i * 8, true);\n let acc64 = acc[i];\n acc64 = xorshift64(acc64, n(47));\n acc64 ^= key64;\n acc64 *= PRIME32_1;\n acc[i] = acc64 & mask64;\n }\n return acc;\n}\n\nfunction XXH3_mix2Accs(acc: BigUint64Array, key: DataView) {\n return XXH3_mul128_fold64(\n acc[0] ^ key.getBigUint64(0, true),\n acc[1] ^ key.getBigUint64(_U64, true)\n );\n}\n\nfunction XXH3_mergeAccs(acc: BigUint64Array, key: DataView, start: bigint) {\n let result64 = start;\n\n result64 += XXH3_mix2Accs(acc.slice(0), view(key, 0 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(2), view(key, 4 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(4), view(key, 8 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(6), view(key, 12 * _U32));\n\n return XXH3_avalanche(result64 & mask64);\n}\n\nfunction XXH3_hashLong(\n input: BigUint64Array,\n data: DataView,\n secret: DataView,\n f_acc: (acc: BigUint64Array, data: DataView, key: DataView) => BigUint64Array,\n f_scramble: (acc: BigUint64Array, key: DataView) => BigUint64Array\n) {\n let acc = input;\n const nbStripesPerBlock = Math.floor((secret.byteLength - STRIPE_LEN) / 8);\n const block_len = STRIPE_LEN * nbStripesPerBlock;\n const nb_blocks = Math.floor((data.byteLength - 1) / block_len);\n\n for (let n = 0; n < nb_blocks; n += 1) {\n acc = XXH3_accumulate(\n acc,\n view(data, n * block_len),\n secret,\n nbStripesPerBlock\n );\n acc = f_scramble(acc, view(secret, secret.byteLength - STRIPE_LEN));\n }\n\n {\n // Partial block\n const nbStripes = Math.floor(\n (data.byteLength - 1 - block_len * nb_blocks) / STRIPE_LEN\n );\n acc = XXH3_accumulate(\n acc,\n view(data, nb_blocks * block_len),\n secret,\n nbStripes\n );\n\n // Last Stripe\n acc = f_acc(\n acc,\n view(data, data.byteLength - STRIPE_LEN),\n view(secret, secret.byteLength - STRIPE_LEN - 7)\n );\n }\n return acc;\n}\n\nfunction XXH3_hashLong_128b(data: DataView, secret: DataView) {\n let acc = new BigUint64Array([\n PRIME32_3,\n PRIME64_1,\n PRIME64_2,\n PRIME64_3,\n PRIME64_4,\n PRIME32_2,\n PRIME64_5,\n PRIME32_1,\n ]);\n assert(data.byteLength > 128);\n\n acc = XXH3_hashLong(\n acc,\n data,\n secret,\n XXH3_accumulate_512,\n XXH3_scrambleAcc\n ) as BigUint64Array<ArrayBuffer>;\n\n /* converge into final hash */\n assert(acc.length * 8 === 64);\n {\n const low64 = XXH3_mergeAccs(\n acc,\n view(secret, 11),\n (n(data.byteLength) * PRIME64_1) & mask64\n );\n const high64 = XXH3_mergeAccs(\n acc,\n view(secret, secret.byteLength - STRIPE_LEN - 11),\n ~(n(data.byteLength) * PRIME64_2) & mask64\n );\n return (high64 << n(64)) | low64;\n }\n}\n\nfunction XXH3_mul128_fold64(a: bigint, b: bigint) {\n const lll = (a * b) & mask128;\n return (lll & mask64) ^ (lll >> n(64));\n}\n\nfunction XXH3_mix16B(dataView: DataView, keyView: DataView, seed: bigint) {\n return XXH3_mul128_fold64(\n (dataView.getBigUint64(0, true) ^ (keyView.getBigUint64(0, true) + seed)) &\n mask64,\n (dataView.getBigUint64(8, true) ^ (keyView.getBigUint64(8, true) - seed)) &\n mask64\n );\n}\n\nfunction XXH3_mix32B(\n acc: bigint,\n data1: DataView,\n data2: DataView,\n key: DataView,\n seed: bigint\n) {\n let accl = acc & mask64;\n let acch = (acc >> n(64)) & mask64;\n\n accl += XXH3_mix16B(data1, key, seed);\n accl ^= data2.getBigUint64(0, true) + data2.getBigUint64(8, true);\n accl &= mask64;\n acch += XXH3_mix16B(data2, view(key, 16), seed);\n acch ^= data1.getBigUint64(0, true) + data1.getBigUint64(8, true);\n acch &= mask64;\n\n return (acch << n(64)) | accl;\n}\n\nfunction XXH3_avalanche(input: bigint) {\n let h64 = input;\n h64 ^= h64 >> n(37);\n h64 *= PRIME_MX1;\n h64 &= mask64;\n h64 ^= h64 >> n(32);\n return h64;\n}\n\nfunction XXH3_avalanche64(input: bigint) {\n let h64 = input;\n h64 ^= h64 >> n(33);\n h64 *= PRIME64_2;\n h64 &= mask64; // 64-bit\n h64 ^= h64 >> n(29);\n h64 *= PRIME64_3;\n h64 &= mask64;\n h64 ^= h64 >> n(32);\n return h64;\n}\n\nfunction XXH3_len_1to3_128b(data: DataView, key32: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len > 0 && len <= 3);\n\n const combined =\n n(data.getUint8(len - 1)) |\n n(len << 8) |\n n(data.getUint8(0) << 16) |\n n(data.getUint8(len >> 1) << 24);\n\n const blow =\n (n(key32.getUint32(0, true)) ^ n(key32.getUint32(4, true))) + seed;\n const low = (combined ^ blow) & mask64;\n const bhigh =\n (n(key32.getUint32(8, true)) ^ n(key32.getUint32(12, true))) - seed;\n const high = (rotl32(bswap32(combined), n(13)) ^ bhigh) & mask64;\n\n return ((XXH3_avalanche64(high) & mask64) << n(64)) | XXH3_avalanche64(low);\n}\n\nfunction xorshift64(b: bigint, shift: bigint) {\n return b ^ (b >> shift);\n}\n\nfunction XXH3_len_4to8_128b(data: DataView, key32: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len >= 4 && len <= 8);\n\n {\n const l1 = data.getUint32(0, true);\n const l2 = data.getUint32(len - 4, true);\n const l64 = n(l1) | (n(l2) << n(32));\n const bitflip =\n ((key32.getBigUint64(16, true) ^ key32.getBigUint64(24, true)) + seed) &\n mask64;\n const keyed = l64 ^ bitflip;\n let m128 = (keyed * (PRIME64_1 + (n(len) << n(2)))) & mask128;\n m128 += (m128 & mask64) << n(65);\n m128 &= mask128;\n m128 ^= m128 >> n(67);\n\n return (\n xorshift64(\n (xorshift64(m128 & mask64, n(35)) * PRIME_MX2) & mask64,\n n(28)\n ) |\n (XXH3_avalanche(m128 >> n(64)) << n(64))\n );\n }\n}\n\nfunction XXH3_len_9to16_128b(data: DataView, key64: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len >= 9 && len <= 16);\n\n {\n const bitflipl =\n ((key64.getBigUint64(32, true) ^ key64.getBigUint64(40, true)) + seed) &\n mask64;\n const bitfliph =\n ((key64.getBigUint64(48, true) ^ key64.getBigUint64(56, true)) - seed) &\n mask64;\n const ll1 = data.getBigUint64(0, true);\n let ll2 = data.getBigUint64(len - 8, true);\n\n let m128 = (ll1 ^ ll2 ^ bitflipl) * PRIME64_1;\n\n const m128_l = (m128 & mask64) + (n(len - 1) << n(54));\n m128 = (m128 & (mask128 ^ mask64)) | m128_l; // eqv. to adding only to lower 64b\n ll2 ^= bitfliph;\n\n m128 += (ll2 + (ll2 & mask32) * (PRIME32_2 - n(1))) << n(64);\n m128 &= mask128;\n m128 ^= bswap64(m128 >> n(64));\n let h128 = (m128 & mask64) * PRIME64_2;\n h128 += ((m128 >> n(64)) * PRIME64_2) << n(64);\n h128 &= mask128;\n\n return (\n XXH3_avalanche(h128 & mask64) | (XXH3_avalanche(h128 >> n(64)) << n(64))\n );\n }\n}\n\nfunction XXH3_len_0to16_128b(data: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len <= 16);\n\n if (len > 8) return XXH3_len_9to16_128b(data, kkey, seed);\n if (len >= 4) return XXH3_len_4to8_128b(data, kkey, seed);\n if (len > 0) return XXH3_len_1to3_128b(data, kkey, seed);\n\n return (\n XXH3_avalanche64(\n seed ^ kkey.getBigUint64(64, true) ^ kkey.getBigUint64(72, true)\n ) |\n (XXH3_avalanche64(\n seed ^ kkey.getBigUint64(80, true) ^ kkey.getBigUint64(88, true)\n ) <<\n n(64))\n );\n}\n\nfunction inv64(x: bigint) {\n // NOTE: `AND` fixes signedness (but because of 2's complement we need to re-add 1)\n return (~x + n(1)) & mask64;\n}\n\nfunction XXH3_len_17to128_128b(data: DataView, secret: DataView, seed: bigint) {\n let acc = (n(data.byteLength) * PRIME64_1) & mask64;\n let i = n(data.byteLength - 1) / n(32);\n while (i >= 0) {\n const ni = Number(i);\n acc = XXH3_mix32B(\n acc,\n view(data, 16 * ni),\n view(data, data.byteLength - 16 * (ni + 1)),\n view(secret, 32 * ni),\n seed\n );\n i -= n(1);\n }\n\n let h128l = (acc + (acc >> n(64))) & mask64;\n h128l = XXH3_avalanche(h128l);\n let h128h =\n (acc & mask64) * PRIME64_1 +\n (acc >> n(64)) * PRIME64_4 +\n ((n(data.byteLength) - seed) & mask64) * PRIME64_2;\n h128h &= mask64;\n\n h128h = inv64(XXH3_avalanche(h128h));\n return h128l | (h128h << n(64));\n}\n\nfunction XXH3_len_129to240_128b(\n data: DataView,\n secret: DataView,\n seed: bigint\n) {\n let acc = (n(data.byteLength) * PRIME64_1) & mask64;\n for (let i = 32; i < 160; i += 32) {\n acc = XXH3_mix32B(\n acc,\n view(data, i - 32),\n view(data, i - 16),\n view(secret, i - 32),\n seed\n );\n }\n acc = XXH3_avalanche(acc & mask64) | (XXH3_avalanche(acc >> n(64)) << n(64));\n for (let i = 160; i <= data.byteLength; i += 32) {\n acc = XXH3_mix32B(\n acc,\n view(data, i - 32),\n view(data, i - 16),\n view(secret, 3 + i - 160),\n seed\n );\n }\n acc = XXH3_mix32B(\n acc,\n view(data, data.byteLength - 16),\n view(data, data.byteLength - 32),\n view(secret, 136 - 17 - 16),\n inv64(seed)\n );\n\n let h128l = (acc + (acc >> n(64))) & mask64;\n h128l = XXH3_avalanche(h128l);\n let h128h =\n (acc & mask64) * PRIME64_1 +\n (acc >> n(64)) * PRIME64_4 +\n ((n(data.byteLength) - seed) & mask64) * PRIME64_2;\n h128h &= mask64;\n\n h128h = inv64(XXH3_avalanche(h128h));\n return h128l | (h128h << n(64));\n}\n\n// 16 byte min input\nexport function XXH3(input: Uint8Array | string, seed: bigint = n(0)) {\n const encoder = new TextEncoder();\n const data = view(typeof input === \"string\" ? encoder.encode(input) : input);\n const len = data.byteLength;\n\n const hexDigest = (data: bigint) => data.toString(16).padStart(32, \"0\");\n if (len <= 16) return hexDigest(XXH3_len_0to16_128b(data, seed));\n if (len <= 128) return hexDigest(XXH3_len_17to128_128b(data, kkey, seed));\n if (len <= 240) return hexDigest(XXH3_len_129to240_128b(data, kkey, seed));\n return hexDigest(XXH3_hashLong_128b(data, kkey));\n}\n\nexport function isXXH3(value: string): boolean {\n // Check if the given string matches the format of XXH3 (128 bit hex digest).\n return /^[0-9a-f]{32}$/.test(value);\n}\n"],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
1
|
const require_async_local_storage = require('./setup/async_local_storage.cjs');
|
|
3
2
|
const require_errors = require('./errors.cjs');
|
|
4
3
|
const require_base = require('./channels/base.cjs');
|
|
@@ -14,7 +13,7 @@ const require_index = require('./func/index.cjs');
|
|
|
14
13
|
const require_messages_annotation = require('./graph/messages_annotation.cjs');
|
|
15
14
|
require('./web.cjs');
|
|
16
15
|
const require_writer = require('./writer.cjs');
|
|
17
|
-
|
|
16
|
+
let _langchain_langgraph_checkpoint = require("@langchain/langgraph-checkpoint");
|
|
18
17
|
|
|
19
18
|
//#region src/index.ts
|
|
20
19
|
require_async_local_storage.initializeAsyncLocalStorageSingleton();
|
|
@@ -24,21 +23,21 @@ exports.Annotation = require_annotation.Annotation;
|
|
|
24
23
|
Object.defineProperty(exports, 'AsyncBatchedStore', {
|
|
25
24
|
enumerable: true,
|
|
26
25
|
get: function () {
|
|
27
|
-
return
|
|
26
|
+
return _langchain_langgraph_checkpoint.AsyncBatchedStore;
|
|
28
27
|
}
|
|
29
28
|
});
|
|
30
29
|
exports.BaseChannel = require_base.BaseChannel;
|
|
31
30
|
Object.defineProperty(exports, 'BaseCheckpointSaver', {
|
|
32
31
|
enumerable: true,
|
|
33
32
|
get: function () {
|
|
34
|
-
return
|
|
33
|
+
return _langchain_langgraph_checkpoint.BaseCheckpointSaver;
|
|
35
34
|
}
|
|
36
35
|
});
|
|
37
36
|
exports.BaseLangGraphError = require_errors.BaseLangGraphError;
|
|
38
37
|
Object.defineProperty(exports, 'BaseStore', {
|
|
39
38
|
enumerable: true,
|
|
40
39
|
get: function () {
|
|
41
|
-
return
|
|
40
|
+
return _langchain_langgraph_checkpoint.BaseStore;
|
|
42
41
|
}
|
|
43
42
|
});
|
|
44
43
|
exports.BinaryOperatorAggregate = require_binop.BinaryOperatorAggregate;
|
|
@@ -56,14 +55,14 @@ exports.INTERRUPT = require_constants.INTERRUPT;
|
|
|
56
55
|
Object.defineProperty(exports, 'InMemoryStore', {
|
|
57
56
|
enumerable: true,
|
|
58
57
|
get: function () {
|
|
59
|
-
return
|
|
58
|
+
return _langchain_langgraph_checkpoint.InMemoryStore;
|
|
60
59
|
}
|
|
61
60
|
});
|
|
62
61
|
exports.InvalidUpdateError = require_errors.InvalidUpdateError;
|
|
63
62
|
Object.defineProperty(exports, 'MemorySaver', {
|
|
64
63
|
enumerable: true,
|
|
65
64
|
get: function () {
|
|
66
|
-
return
|
|
65
|
+
return _langchain_langgraph_checkpoint.MemorySaver;
|
|
67
66
|
}
|
|
68
67
|
});
|
|
69
68
|
exports.MessageGraph = require_message.MessageGraph;
|
|
@@ -83,13 +82,13 @@ exports.addMessages = require_message.messagesStateReducer;
|
|
|
83
82
|
Object.defineProperty(exports, 'copyCheckpoint', {
|
|
84
83
|
enumerable: true,
|
|
85
84
|
get: function () {
|
|
86
|
-
return
|
|
85
|
+
return _langchain_langgraph_checkpoint.copyCheckpoint;
|
|
87
86
|
}
|
|
88
87
|
});
|
|
89
88
|
Object.defineProperty(exports, 'emptyCheckpoint', {
|
|
90
89
|
enumerable: true,
|
|
91
90
|
get: function () {
|
|
92
|
-
return
|
|
91
|
+
return _langchain_langgraph_checkpoint.emptyCheckpoint;
|
|
93
92
|
}
|
|
94
93
|
});
|
|
95
94
|
exports.entrypoint = require_index.entrypoint;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["initializeAsyncLocalStorageSingleton"],"sources":["../src/index.ts"],"sourcesContent":["/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */\n\nimport { initializeAsyncLocalStorageSingleton } from \"./setup/async_local_storage.js\";\n\n// Initialize global async local storage instance for tracing\ninitializeAsyncLocalStorageSingleton();\n\nexport * from \"./web.js\";\n\nexport { interrupt } from \"./interrupt.js\";\nexport { writer } from \"./writer.js\";\nexport { pushMessage } from \"./graph/message.js\";\nexport { getStore, getWriter, getConfig } from \"./pregel/utils/config.js\";\nexport { getPreviousState } from \"./func/index.js\";\nexport { getCurrentTaskInput } from \"./pregel/utils/config.js\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["initializeAsyncLocalStorageSingleton"],"sources":["../src/index.ts"],"sourcesContent":["/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */\n\nimport { initializeAsyncLocalStorageSingleton } from \"./setup/async_local_storage.js\";\n\n// Initialize global async local storage instance for tracing\ninitializeAsyncLocalStorageSingleton();\n\nexport * from \"./web.js\";\n\nexport { interrupt } from \"./interrupt.js\";\nexport { writer } from \"./writer.js\";\nexport { pushMessage } from \"./graph/message.js\";\nexport { getStore, getWriter, getConfig } from \"./pregel/utils/config.js\";\nexport { getPreviousState } from \"./func/index.js\";\nexport { getCurrentTaskInput } from \"./pregel/utils/config.js\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAKAA,kEAAsC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */\n\nimport { initializeAsyncLocalStorageSingleton } from \"./setup/async_local_storage.js\";\n\n// Initialize global async local storage instance for tracing\ninitializeAsyncLocalStorageSingleton();\n\nexport * from \"./web.js\";\n\nexport { interrupt } from \"./interrupt.js\";\nexport { writer } from \"./writer.js\";\nexport { pushMessage } from \"./graph/message.js\";\nexport { getStore, getWriter, getConfig } from \"./pregel/utils/config.js\";\nexport { getPreviousState } from \"./func/index.js\";\nexport { getCurrentTaskInput } from \"./pregel/utils/config.js\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAKA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */\n\nimport { initializeAsyncLocalStorageSingleton } from \"./setup/async_local_storage.js\";\n\n// Initialize global async local storage instance for tracing\ninitializeAsyncLocalStorageSingleton();\n\nexport * from \"./web.js\";\n\nexport { interrupt } from \"./interrupt.js\";\nexport { writer } from \"./writer.js\";\nexport { pushMessage } from \"./graph/message.js\";\nexport { getStore, getWriter, getConfig } from \"./pregel/utils/config.js\";\nexport { getPreviousState } from \"./func/index.js\";\nexport { getCurrentTaskInput } from \"./pregel/utils/config.js\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAKA,sCAAsC"}
|
package/dist/interrupt.cjs
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
2
1
|
const require_errors = require('./errors.cjs');
|
|
3
2
|
const require_constants = require('./constants.cjs');
|
|
4
3
|
const require_hash = require('./hash.cjs');
|
|
5
|
-
|
|
4
|
+
let _langchain_core_singletons = require("@langchain/core/singletons");
|
|
6
5
|
|
|
7
6
|
//#region src/interrupt.ts
|
|
8
7
|
/**
|
|
@@ -49,12 +48,11 @@ const __langchain_core_singletons = require_rolldown_runtime.__toESM(require("@l
|
|
|
49
48
|
* @throws {GraphInterrupt} When no resume value is available
|
|
50
49
|
*/
|
|
51
50
|
function interrupt(value) {
|
|
52
|
-
const config =
|
|
51
|
+
const config = _langchain_core_singletons.AsyncLocalStorageProviderSingleton.getRunnableConfig();
|
|
53
52
|
if (!config) throw new Error("Called interrupt() outside the context of a graph.");
|
|
54
53
|
const conf = config.configurable;
|
|
55
54
|
if (!conf) throw new Error("No configurable found in config");
|
|
56
|
-
|
|
57
|
-
if (!checkpointer) throw new require_errors.GraphValueError("No checkpointer set", { lc_error_code: "MISSING_CHECKPOINTER" });
|
|
55
|
+
if (!conf[require_constants.CONFIG_KEY_CHECKPOINTER]) throw new require_errors.GraphValueError("No checkpointer set", { lc_error_code: "MISSING_CHECKPOINTER" });
|
|
58
56
|
const scratchpad = conf[require_constants.CONFIG_KEY_SCRATCHPAD];
|
|
59
57
|
scratchpad.interruptCounter += 1;
|
|
60
58
|
const idx = scratchpad.interruptCounter;
|
|
@@ -70,9 +68,8 @@ function interrupt(value) {
|
|
|
70
68
|
return v;
|
|
71
69
|
}
|
|
72
70
|
const ns = conf[require_constants.CONFIG_KEY_CHECKPOINT_NS]?.split(require_constants.CHECKPOINT_NAMESPACE_SEPARATOR);
|
|
73
|
-
const id = ns ? require_hash.XXH3(ns.join(require_constants.CHECKPOINT_NAMESPACE_SEPARATOR)) : void 0;
|
|
74
71
|
throw new require_errors.GraphInterrupt([{
|
|
75
|
-
id,
|
|
72
|
+
id: ns ? require_hash.XXH3(ns.join(require_constants.CHECKPOINT_NAMESPACE_SEPARATOR)) : void 0,
|
|
76
73
|
value
|
|
77
74
|
}]);
|
|
78
75
|
}
|
package/dist/interrupt.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interrupt.cjs","names":["
|
|
1
|
+
{"version":3,"file":"interrupt.cjs","names":["AsyncLocalStorageProviderSingleton","CONFIG_KEY_CHECKPOINTER","GraphValueError","CONFIG_KEY_SCRATCHPAD","CONFIG_KEY_SEND","RESUME","CONFIG_KEY_CHECKPOINT_NS","CHECKPOINT_NAMESPACE_SEPARATOR","GraphInterrupt","XXH3"],"sources":["../src/interrupt.ts"],"sourcesContent":["import { AsyncLocalStorageProviderSingleton } from \"@langchain/core/singletons\";\nimport { RunnableConfig } from \"@langchain/core/runnables\";\nimport {\n BaseCheckpointSaver,\n type PendingWrite,\n} from \"@langchain/langgraph-checkpoint\";\nimport { GraphInterrupt, GraphValueError } from \"./errors.js\";\nimport {\n CONFIG_KEY_CHECKPOINT_NS,\n CONFIG_KEY_SCRATCHPAD,\n CONFIG_KEY_SEND,\n CONFIG_KEY_CHECKPOINTER,\n CHECKPOINT_NAMESPACE_SEPARATOR,\n RESUME,\n} from \"./constants.js\";\nimport { PregelScratchpad } from \"./pregel/types.js\";\nimport { XXH3 } from \"./hash.js\";\n\n/**\n * Interrupts the execution of a graph node.\n * This function can be used to pause execution of a node, and return the value of the `resume`\n * input when the graph is re-invoked using `Command`.\n * Multiple interrupts can be called within a single node, and each will be handled sequentially.\n *\n * When an interrupt is called:\n * 1. If there's a `resume` value available (from a previous `Command`), it returns that value.\n * 2. Otherwise, it throws a `GraphInterrupt` with the provided value\n * 3. The graph can be resumed by passing a `Command` with a `resume` value\n *\n * Because the `interrupt` function propagates by throwing a special `GraphInterrupt` error,\n * you should avoid using `try/catch` blocks around the `interrupt` function,\n * or if you do, ensure that the `GraphInterrupt` error is thrown again within your `catch` block.\n *\n * @param value - The value to include in the interrupt. This will be available in task.interrupts[].value\n * @returns The `resume` value provided when the graph is re-invoked with a Command\n *\n * @example\n * ```typescript\n * // Define a node that uses multiple interrupts\n * const nodeWithInterrupts = () => {\n * // First interrupt - will pause execution and include {value: 1} in task values\n * const answer1 = interrupt({ value: 1 });\n *\n * // Second interrupt - only called after first interrupt is resumed\n * const answer2 = interrupt({ value: 2 });\n *\n * // Use the resume values\n * return { myKey: answer1 + \" \" + answer2 };\n * };\n *\n * // Resume the graph after first interrupt\n * await graph.stream(new Command({ resume: \"answer 1\" }));\n *\n * // Resume the graph after second interrupt\n * await graph.stream(new Command({ resume: \"answer 2\" }));\n * // Final result: { myKey: \"answer 1 answer 2\" }\n * ```\n *\n * @throws {Error} If called outside the context of a graph\n * @throws {GraphInterrupt} When no resume value is available\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function interrupt<I = unknown, R = any>(value: I): R {\n const config: RunnableConfig | undefined =\n AsyncLocalStorageProviderSingleton.getRunnableConfig();\n if (!config) {\n throw new Error(\"Called interrupt() outside the context of a graph.\");\n }\n\n const conf = config.configurable;\n if (!conf) {\n throw new Error(\"No configurable found in config\");\n }\n\n const checkpointer: BaseCheckpointSaver = conf[CONFIG_KEY_CHECKPOINTER];\n if (!checkpointer) {\n throw new GraphValueError(\"No checkpointer set\", {\n lc_error_code: \"MISSING_CHECKPOINTER\",\n });\n }\n\n // Track interrupt index\n const scratchpad: PregelScratchpad = conf[CONFIG_KEY_SCRATCHPAD];\n scratchpad.interruptCounter += 1;\n const idx = scratchpad.interruptCounter;\n\n // Find previous resume values\n if (scratchpad.resume.length > 0 && idx < scratchpad.resume.length) {\n conf[CONFIG_KEY_SEND]?.([[RESUME, scratchpad.resume] as PendingWrite]);\n return scratchpad.resume[idx] as R;\n }\n\n // Find current resume value\n if (scratchpad.nullResume !== undefined) {\n if (scratchpad.resume.length !== idx) {\n throw new Error(\n `Resume length mismatch: ${scratchpad.resume.length} !== ${idx}`\n );\n }\n const v = scratchpad.consumeNullResume();\n scratchpad.resume.push(v);\n conf[CONFIG_KEY_SEND]?.([[RESUME, scratchpad.resume] as PendingWrite]);\n return v as R;\n }\n\n // No resume value found\n const ns: string[] | undefined = conf[CONFIG_KEY_CHECKPOINT_NS]?.split(\n CHECKPOINT_NAMESPACE_SEPARATOR\n );\n\n const id = ns ? XXH3(ns.join(CHECKPOINT_NAMESPACE_SEPARATOR)) : undefined;\n throw new GraphInterrupt([{ id, value }]);\n}\n\ntype FilterAny<X> = (<T>() => T extends X ? 1 : 2) extends <\n T\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n>() => T extends any ? 1 : 2\n ? never\n : X;\n\nexport type InferInterruptInputType<T> = T extends typeof interrupt<\n infer I,\n unknown\n>\n ? I\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends { [key: string]: typeof interrupt<any, any> }\n ? { [K in keyof T]: InferInterruptInputType<T[K]> }[keyof T]\n : unknown;\n\nexport type InferInterruptResumeType<\n T,\n TInner = false\n> = T extends typeof interrupt<never, infer R>\n ? TInner extends true\n ? FilterAny<R>\n : R\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends { [key: string]: typeof interrupt<any, any> }\n ? { [K in keyof T]: InferInterruptResumeType<T[K], true> }[keyof T]\n : unknown;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,SAAgB,UAAgC,OAAa;CAC3D,MAAM,SACJA,8DAAmC,mBAAmB;AACxD,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,qDAAqD;CAGvE,MAAM,OAAO,OAAO;AACpB,KAAI,CAAC,KACH,OAAM,IAAI,MAAM,kCAAkC;AAIpD,KAAI,CADsC,KAAKC,2CAE7C,OAAM,IAAIC,+BAAgB,uBAAuB,EAC/C,eAAe,wBAChB,CAAC;CAIJ,MAAM,aAA+B,KAAKC;AAC1C,YAAW,oBAAoB;CAC/B,MAAM,MAAM,WAAW;AAGvB,KAAI,WAAW,OAAO,SAAS,KAAK,MAAM,WAAW,OAAO,QAAQ;AAClE,OAAKC,qCAAmB,CAAC,CAACC,0BAAQ,WAAW,OAAO,CAAiB,CAAC;AACtE,SAAO,WAAW,OAAO;;AAI3B,KAAI,WAAW,eAAe,QAAW;AACvC,MAAI,WAAW,OAAO,WAAW,IAC/B,OAAM,IAAI,MACR,2BAA2B,WAAW,OAAO,OAAO,OAAO,MAC5D;EAEH,MAAM,IAAI,WAAW,mBAAmB;AACxC,aAAW,OAAO,KAAK,EAAE;AACzB,OAAKD,qCAAmB,CAAC,CAACC,0BAAQ,WAAW,OAAO,CAAiB,CAAC;AACtE,SAAO;;CAIT,MAAM,KAA2B,KAAKC,6CAA2B,MAC/DC,iDACD;AAGD,OAAM,IAAIC,8BAAe,CAAC;EAAE,IADjB,KAAKC,kBAAK,GAAG,KAAKF,iDAA+B,CAAC,GAAG;EAChC;EAAO,CAAC,CAAC"}
|
package/dist/interrupt.d.cts
CHANGED
|
@@ -42,11 +42,8 @@
|
|
|
42
42
|
* @throws {Error} If called outside the context of a graph
|
|
43
43
|
* @throws {GraphInterrupt} When no resume value is available
|
|
44
44
|
*/
|
|
45
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
45
|
declare function interrupt<I = unknown, R = any>(value: I): R;
|
|
47
|
-
type FilterAny<X> = (<T>() => T extends X ? 1 : 2) extends (<T
|
|
48
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
-
>() => (T extends any ? 1 : 2)) ? never : X;
|
|
46
|
+
type FilterAny<X> = (<T>() => T extends X ? 1 : 2) extends (<T>() => (T extends any ? 1 : 2)) ? never : X;
|
|
50
47
|
type InferInterruptInputType<T> = T extends typeof interrupt<infer I, unknown> ? I : T extends {
|
|
51
48
|
[key: string]: typeof interrupt<any, any>;
|
|
52
49
|
} ? { [K in keyof T]: InferInterruptInputType<T[K]> }[keyof T] : unknown;
|
package/dist/interrupt.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interrupt.d.cts","names":["interrupt","I","R","FilterAny","T","X","InferInterruptInputType","K","InferInterruptResumeType","TInner"],"sources":["../src/interrupt.d.ts"],"sourcesContent":["/**\n * Interrupts the execution of a graph node.\n * This function can be used to pause execution of a node, and return the value of the `resume`\n * input when the graph is re-invoked using `Command`.\n * Multiple interrupts can be called within a single node, and each will be handled sequentially.\n *\n * When an interrupt is called:\n * 1. If there's a `resume` value available (from a previous `Command`), it returns that value.\n * 2. Otherwise, it throws a `GraphInterrupt` with the provided value\n * 3. The graph can be resumed by passing a `Command` with a `resume` value\n *\n * Because the `interrupt` function propagates by throwing a special `GraphInterrupt` error,\n * you should avoid using `try/catch` blocks around the `interrupt` function,\n * or if you do, ensure that the `GraphInterrupt` error is thrown again within your `catch` block.\n *\n * @param value - The value to include in the interrupt. This will be available in task.interrupts[].value\n * @returns The `resume` value provided when the graph is re-invoked with a Command\n *\n * @example\n * ```typescript\n * // Define a node that uses multiple interrupts\n * const nodeWithInterrupts = () => {\n * // First interrupt - will pause execution and include {value: 1} in task values\n * const answer1 = interrupt({ value: 1 });\n *\n * // Second interrupt - only called after first interrupt is resumed\n * const answer2 = interrupt({ value: 2 });\n *\n * // Use the resume values\n * return { myKey: answer1 + \" \" + answer2 };\n * };\n *\n * // Resume the graph after first interrupt\n * await graph.stream(new Command({ resume: \"answer 1\" }));\n *\n * // Resume the graph after second interrupt\n * await graph.stream(new Command({ resume: \"answer 2\" }));\n * // Final result: { myKey: \"answer 1 answer 2\" }\n * ```\n *\n * @throws {Error} If called outside the context of a graph\n * @throws {GraphInterrupt} When no resume value is available\n */\
|
|
1
|
+
{"version":3,"file":"interrupt.d.cts","names":["interrupt","I","R","FilterAny","T","X","InferInterruptInputType","K","InferInterruptResumeType","TInner"],"sources":["../src/interrupt.d.ts"],"sourcesContent":["/**\n * Interrupts the execution of a graph node.\n * This function can be used to pause execution of a node, and return the value of the `resume`\n * input when the graph is re-invoked using `Command`.\n * Multiple interrupts can be called within a single node, and each will be handled sequentially.\n *\n * When an interrupt is called:\n * 1. If there's a `resume` value available (from a previous `Command`), it returns that value.\n * 2. Otherwise, it throws a `GraphInterrupt` with the provided value\n * 3. The graph can be resumed by passing a `Command` with a `resume` value\n *\n * Because the `interrupt` function propagates by throwing a special `GraphInterrupt` error,\n * you should avoid using `try/catch` blocks around the `interrupt` function,\n * or if you do, ensure that the `GraphInterrupt` error is thrown again within your `catch` block.\n *\n * @param value - The value to include in the interrupt. This will be available in task.interrupts[].value\n * @returns The `resume` value provided when the graph is re-invoked with a Command\n *\n * @example\n * ```typescript\n * // Define a node that uses multiple interrupts\n * const nodeWithInterrupts = () => {\n * // First interrupt - will pause execution and include {value: 1} in task values\n * const answer1 = interrupt({ value: 1 });\n *\n * // Second interrupt - only called after first interrupt is resumed\n * const answer2 = interrupt({ value: 2 });\n *\n * // Use the resume values\n * return { myKey: answer1 + \" \" + answer2 };\n * };\n *\n * // Resume the graph after first interrupt\n * await graph.stream(new Command({ resume: \"answer 1\" }));\n *\n * // Resume the graph after second interrupt\n * await graph.stream(new Command({ resume: \"answer 2\" }));\n * // Final result: { myKey: \"answer 1 answer 2\" }\n * ```\n *\n * @throws {Error} If called outside the context of a graph\n * @throws {GraphInterrupt} When no resume value is available\n */\nexport declare function interrupt<I = unknown, R = any>(value: I): R;\ntype FilterAny<X> = (<T>() => T extends X ? 1 : 2) extends <T>() => (T extends any ? 1 : 2) ? never : X;\nexport type InferInterruptInputType<T> = T extends typeof interrupt<infer I, unknown> ? I : T extends {\n [key: string]: typeof interrupt<any, any>;\n} ? {\n [K in keyof T]: InferInterruptInputType<T[K]>;\n}[keyof T] : unknown;\nexport type InferInterruptResumeType<T, TInner = false> = T extends typeof interrupt<never, infer R> ? TInner extends true ? FilterAny<R> : R : T extends {\n [key: string]: typeof interrupt<any, any>;\n} ? {\n [K in keyof T]: InferInterruptResumeType<T[K], true>;\n}[keyof T] : unknown;\nexport {};\n"],"mappings":";;AA2CA;;;;;AAAqE;;;;;;;AAErE;;;;;;;;;;;;;AAKA;;;;;;;;;;;;;;;;;iBAPwBA,uCAAuCC,IAAIC;KAC9DC,yBAAyBC,UAAUC,8BAA6BD,kCAAiCC;KAC1FC,6BAA6BF,iBAAiBJ,8BAA8BC,IAAIG;wBAClEJ;kBAEVI,IAAIE,wBAAwBF,EAAEG,YACtCH;KACII,8CAA8CJ,iBAAiBJ,4BAA4BS,sBAAsBN,UAAUD,KAAKA,IAAIE;wBACtHJ;kBAEVI,IAAII,yBAAyBJ,EAAEG,kBACvCH"}
|
package/dist/interrupt.d.ts
CHANGED
|
@@ -42,11 +42,8 @@
|
|
|
42
42
|
* @throws {Error} If called outside the context of a graph
|
|
43
43
|
* @throws {GraphInterrupt} When no resume value is available
|
|
44
44
|
*/
|
|
45
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
45
|
declare function interrupt<I = unknown, R = any>(value: I): R;
|
|
47
|
-
type FilterAny<X> = (<T>() => T extends X ? 1 : 2) extends (<T
|
|
48
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
-
>() => (T extends any ? 1 : 2)) ? never : X;
|
|
46
|
+
type FilterAny<X> = (<T>() => T extends X ? 1 : 2) extends (<T>() => (T extends any ? 1 : 2)) ? never : X;
|
|
50
47
|
type InferInterruptInputType<T> = T extends typeof interrupt<infer I, unknown> ? I : T extends {
|
|
51
48
|
[key: string]: typeof interrupt<any, any>;
|
|
52
49
|
} ? { [K in keyof T]: InferInterruptInputType<T[K]> }[keyof T] : unknown;
|
package/dist/interrupt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interrupt.d.ts","names":["interrupt","I","R","FilterAny","T","X","InferInterruptInputType","K","InferInterruptResumeType","TInner"],"sources":["../src/interrupt.d.ts"],"sourcesContent":["/**\n * Interrupts the execution of a graph node.\n * This function can be used to pause execution of a node, and return the value of the `resume`\n * input when the graph is re-invoked using `Command`.\n * Multiple interrupts can be called within a single node, and each will be handled sequentially.\n *\n * When an interrupt is called:\n * 1. If there's a `resume` value available (from a previous `Command`), it returns that value.\n * 2. Otherwise, it throws a `GraphInterrupt` with the provided value\n * 3. The graph can be resumed by passing a `Command` with a `resume` value\n *\n * Because the `interrupt` function propagates by throwing a special `GraphInterrupt` error,\n * you should avoid using `try/catch` blocks around the `interrupt` function,\n * or if you do, ensure that the `GraphInterrupt` error is thrown again within your `catch` block.\n *\n * @param value - The value to include in the interrupt. This will be available in task.interrupts[].value\n * @returns The `resume` value provided when the graph is re-invoked with a Command\n *\n * @example\n * ```typescript\n * // Define a node that uses multiple interrupts\n * const nodeWithInterrupts = () => {\n * // First interrupt - will pause execution and include {value: 1} in task values\n * const answer1 = interrupt({ value: 1 });\n *\n * // Second interrupt - only called after first interrupt is resumed\n * const answer2 = interrupt({ value: 2 });\n *\n * // Use the resume values\n * return { myKey: answer1 + \" \" + answer2 };\n * };\n *\n * // Resume the graph after first interrupt\n * await graph.stream(new Command({ resume: \"answer 1\" }));\n *\n * // Resume the graph after second interrupt\n * await graph.stream(new Command({ resume: \"answer 2\" }));\n * // Final result: { myKey: \"answer 1 answer 2\" }\n * ```\n *\n * @throws {Error} If called outside the context of a graph\n * @throws {GraphInterrupt} When no resume value is available\n */\
|
|
1
|
+
{"version":3,"file":"interrupt.d.ts","names":["interrupt","I","R","FilterAny","T","X","InferInterruptInputType","K","InferInterruptResumeType","TInner"],"sources":["../src/interrupt.d.ts"],"sourcesContent":["/**\n * Interrupts the execution of a graph node.\n * This function can be used to pause execution of a node, and return the value of the `resume`\n * input when the graph is re-invoked using `Command`.\n * Multiple interrupts can be called within a single node, and each will be handled sequentially.\n *\n * When an interrupt is called:\n * 1. If there's a `resume` value available (from a previous `Command`), it returns that value.\n * 2. Otherwise, it throws a `GraphInterrupt` with the provided value\n * 3. The graph can be resumed by passing a `Command` with a `resume` value\n *\n * Because the `interrupt` function propagates by throwing a special `GraphInterrupt` error,\n * you should avoid using `try/catch` blocks around the `interrupt` function,\n * or if you do, ensure that the `GraphInterrupt` error is thrown again within your `catch` block.\n *\n * @param value - The value to include in the interrupt. This will be available in task.interrupts[].value\n * @returns The `resume` value provided when the graph is re-invoked with a Command\n *\n * @example\n * ```typescript\n * // Define a node that uses multiple interrupts\n * const nodeWithInterrupts = () => {\n * // First interrupt - will pause execution and include {value: 1} in task values\n * const answer1 = interrupt({ value: 1 });\n *\n * // Second interrupt - only called after first interrupt is resumed\n * const answer2 = interrupt({ value: 2 });\n *\n * // Use the resume values\n * return { myKey: answer1 + \" \" + answer2 };\n * };\n *\n * // Resume the graph after first interrupt\n * await graph.stream(new Command({ resume: \"answer 1\" }));\n *\n * // Resume the graph after second interrupt\n * await graph.stream(new Command({ resume: \"answer 2\" }));\n * // Final result: { myKey: \"answer 1 answer 2\" }\n * ```\n *\n * @throws {Error} If called outside the context of a graph\n * @throws {GraphInterrupt} When no resume value is available\n */\nexport declare function interrupt<I = unknown, R = any>(value: I): R;\ntype FilterAny<X> = (<T>() => T extends X ? 1 : 2) extends <T>() => (T extends any ? 1 : 2) ? never : X;\nexport type InferInterruptInputType<T> = T extends typeof interrupt<infer I, unknown> ? I : T extends {\n [key: string]: typeof interrupt<any, any>;\n} ? {\n [K in keyof T]: InferInterruptInputType<T[K]>;\n}[keyof T] : unknown;\nexport type InferInterruptResumeType<T, TInner = false> = T extends typeof interrupt<never, infer R> ? TInner extends true ? FilterAny<R> : R : T extends {\n [key: string]: typeof interrupt<any, any>;\n} ? {\n [K in keyof T]: InferInterruptResumeType<T[K], true>;\n}[keyof T] : unknown;\nexport {};\n"],"mappings":";;AA2CA;;;;;AAAqE;;;;;;;AAErE;;;;;;;;;;;;;AAKA;;;;;;;;;;;;;;;;;iBAPwBA,uCAAuCC,IAAIC;KAC9DC,yBAAyBC,UAAUC,8BAA6BD,kCAAiCC;KAC1FC,6BAA6BF,iBAAiBJ,8BAA8BC,IAAIG;wBAClEJ;kBAEVI,IAAIE,wBAAwBF,EAAEG,YACtCH;KACII,8CAA8CJ,iBAAiBJ,4BAA4BS,sBAAsBN,UAAUD,KAAKA,IAAIE;wBACtHJ;kBAEVI,IAAII,yBAAyBJ,EAAEG,kBACvCH"}
|
package/dist/interrupt.js
CHANGED
|
@@ -52,8 +52,7 @@ function interrupt(value) {
|
|
|
52
52
|
if (!config) throw new Error("Called interrupt() outside the context of a graph.");
|
|
53
53
|
const conf = config.configurable;
|
|
54
54
|
if (!conf) throw new Error("No configurable found in config");
|
|
55
|
-
|
|
56
|
-
if (!checkpointer) throw new GraphValueError("No checkpointer set", { lc_error_code: "MISSING_CHECKPOINTER" });
|
|
55
|
+
if (!conf[CONFIG_KEY_CHECKPOINTER]) throw new GraphValueError("No checkpointer set", { lc_error_code: "MISSING_CHECKPOINTER" });
|
|
57
56
|
const scratchpad = conf[CONFIG_KEY_SCRATCHPAD];
|
|
58
57
|
scratchpad.interruptCounter += 1;
|
|
59
58
|
const idx = scratchpad.interruptCounter;
|
|
@@ -69,9 +68,8 @@ function interrupt(value) {
|
|
|
69
68
|
return v;
|
|
70
69
|
}
|
|
71
70
|
const ns = conf[CONFIG_KEY_CHECKPOINT_NS]?.split(CHECKPOINT_NAMESPACE_SEPARATOR);
|
|
72
|
-
const id = ns ? XXH3(ns.join(CHECKPOINT_NAMESPACE_SEPARATOR)) : void 0;
|
|
73
71
|
throw new GraphInterrupt([{
|
|
74
|
-
id,
|
|
72
|
+
id: ns ? XXH3(ns.join(CHECKPOINT_NAMESPACE_SEPARATOR)) : void 0,
|
|
75
73
|
value
|
|
76
74
|
}]);
|
|
77
75
|
}
|
package/dist/interrupt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interrupt.js","names":[
|
|
1
|
+
{"version":3,"file":"interrupt.js","names":[],"sources":["../src/interrupt.ts"],"sourcesContent":["import { AsyncLocalStorageProviderSingleton } from \"@langchain/core/singletons\";\nimport { RunnableConfig } from \"@langchain/core/runnables\";\nimport {\n BaseCheckpointSaver,\n type PendingWrite,\n} from \"@langchain/langgraph-checkpoint\";\nimport { GraphInterrupt, GraphValueError } from \"./errors.js\";\nimport {\n CONFIG_KEY_CHECKPOINT_NS,\n CONFIG_KEY_SCRATCHPAD,\n CONFIG_KEY_SEND,\n CONFIG_KEY_CHECKPOINTER,\n CHECKPOINT_NAMESPACE_SEPARATOR,\n RESUME,\n} from \"./constants.js\";\nimport { PregelScratchpad } from \"./pregel/types.js\";\nimport { XXH3 } from \"./hash.js\";\n\n/**\n * Interrupts the execution of a graph node.\n * This function can be used to pause execution of a node, and return the value of the `resume`\n * input when the graph is re-invoked using `Command`.\n * Multiple interrupts can be called within a single node, and each will be handled sequentially.\n *\n * When an interrupt is called:\n * 1. If there's a `resume` value available (from a previous `Command`), it returns that value.\n * 2. Otherwise, it throws a `GraphInterrupt` with the provided value\n * 3. The graph can be resumed by passing a `Command` with a `resume` value\n *\n * Because the `interrupt` function propagates by throwing a special `GraphInterrupt` error,\n * you should avoid using `try/catch` blocks around the `interrupt` function,\n * or if you do, ensure that the `GraphInterrupt` error is thrown again within your `catch` block.\n *\n * @param value - The value to include in the interrupt. This will be available in task.interrupts[].value\n * @returns The `resume` value provided when the graph is re-invoked with a Command\n *\n * @example\n * ```typescript\n * // Define a node that uses multiple interrupts\n * const nodeWithInterrupts = () => {\n * // First interrupt - will pause execution and include {value: 1} in task values\n * const answer1 = interrupt({ value: 1 });\n *\n * // Second interrupt - only called after first interrupt is resumed\n * const answer2 = interrupt({ value: 2 });\n *\n * // Use the resume values\n * return { myKey: answer1 + \" \" + answer2 };\n * };\n *\n * // Resume the graph after first interrupt\n * await graph.stream(new Command({ resume: \"answer 1\" }));\n *\n * // Resume the graph after second interrupt\n * await graph.stream(new Command({ resume: \"answer 2\" }));\n * // Final result: { myKey: \"answer 1 answer 2\" }\n * ```\n *\n * @throws {Error} If called outside the context of a graph\n * @throws {GraphInterrupt} When no resume value is available\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function interrupt<I = unknown, R = any>(value: I): R {\n const config: RunnableConfig | undefined =\n AsyncLocalStorageProviderSingleton.getRunnableConfig();\n if (!config) {\n throw new Error(\"Called interrupt() outside the context of a graph.\");\n }\n\n const conf = config.configurable;\n if (!conf) {\n throw new Error(\"No configurable found in config\");\n }\n\n const checkpointer: BaseCheckpointSaver = conf[CONFIG_KEY_CHECKPOINTER];\n if (!checkpointer) {\n throw new GraphValueError(\"No checkpointer set\", {\n lc_error_code: \"MISSING_CHECKPOINTER\",\n });\n }\n\n // Track interrupt index\n const scratchpad: PregelScratchpad = conf[CONFIG_KEY_SCRATCHPAD];\n scratchpad.interruptCounter += 1;\n const idx = scratchpad.interruptCounter;\n\n // Find previous resume values\n if (scratchpad.resume.length > 0 && idx < scratchpad.resume.length) {\n conf[CONFIG_KEY_SEND]?.([[RESUME, scratchpad.resume] as PendingWrite]);\n return scratchpad.resume[idx] as R;\n }\n\n // Find current resume value\n if (scratchpad.nullResume !== undefined) {\n if (scratchpad.resume.length !== idx) {\n throw new Error(\n `Resume length mismatch: ${scratchpad.resume.length} !== ${idx}`\n );\n }\n const v = scratchpad.consumeNullResume();\n scratchpad.resume.push(v);\n conf[CONFIG_KEY_SEND]?.([[RESUME, scratchpad.resume] as PendingWrite]);\n return v as R;\n }\n\n // No resume value found\n const ns: string[] | undefined = conf[CONFIG_KEY_CHECKPOINT_NS]?.split(\n CHECKPOINT_NAMESPACE_SEPARATOR\n );\n\n const id = ns ? XXH3(ns.join(CHECKPOINT_NAMESPACE_SEPARATOR)) : undefined;\n throw new GraphInterrupt([{ id, value }]);\n}\n\ntype FilterAny<X> = (<T>() => T extends X ? 1 : 2) extends <\n T\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n>() => T extends any ? 1 : 2\n ? never\n : X;\n\nexport type InferInterruptInputType<T> = T extends typeof interrupt<\n infer I,\n unknown\n>\n ? I\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends { [key: string]: typeof interrupt<any, any> }\n ? { [K in keyof T]: InferInterruptInputType<T[K]> }[keyof T]\n : unknown;\n\nexport type InferInterruptResumeType<\n T,\n TInner = false\n> = T extends typeof interrupt<never, infer R>\n ? TInner extends true\n ? FilterAny<R>\n : R\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n T extends { [key: string]: typeof interrupt<any, any> }\n ? { [K in keyof T]: InferInterruptResumeType<T[K], true> }[keyof T]\n : unknown;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,SAAgB,UAAgC,OAAa;CAC3D,MAAM,SACJ,mCAAmC,mBAAmB;AACxD,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,qDAAqD;CAGvE,MAAM,OAAO,OAAO;AACpB,KAAI,CAAC,KACH,OAAM,IAAI,MAAM,kCAAkC;AAIpD,KAAI,CADsC,KAAK,yBAE7C,OAAM,IAAI,gBAAgB,uBAAuB,EAC/C,eAAe,wBAChB,CAAC;CAIJ,MAAM,aAA+B,KAAK;AAC1C,YAAW,oBAAoB;CAC/B,MAAM,MAAM,WAAW;AAGvB,KAAI,WAAW,OAAO,SAAS,KAAK,MAAM,WAAW,OAAO,QAAQ;AAClE,OAAK,mBAAmB,CAAC,CAAC,QAAQ,WAAW,OAAO,CAAiB,CAAC;AACtE,SAAO,WAAW,OAAO;;AAI3B,KAAI,WAAW,eAAe,QAAW;AACvC,MAAI,WAAW,OAAO,WAAW,IAC/B,OAAM,IAAI,MACR,2BAA2B,WAAW,OAAO,OAAO,OAAO,MAC5D;EAEH,MAAM,IAAI,WAAW,mBAAmB;AACxC,aAAW,OAAO,KAAK,EAAE;AACzB,OAAK,mBAAmB,CAAC,CAAC,QAAQ,WAAW,OAAO,CAAiB,CAAC;AACtE,SAAO;;CAIT,MAAM,KAA2B,KAAK,2BAA2B,MAC/D,+BACD;AAGD,OAAM,IAAI,eAAe,CAAC;EAAE,IADjB,KAAK,KAAK,GAAG,KAAK,+BAA+B,CAAC,GAAG;EAChC;EAAO,CAAC,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const __langchain_core_messages = require_rolldown_runtime.__toESM(require("@langchain/core/messages"));
|
|
1
|
+
let _langchain_core_runnables = require("@langchain/core/runnables");
|
|
2
|
+
let _langchain_core_messages = require("@langchain/core/messages");
|
|
4
3
|
|
|
5
4
|
//#region src/prebuilt/agentName.ts
|
|
6
5
|
const NAME_PATTERN = /<name>(.*?)<\/name>/s;
|
|
@@ -22,17 +21,13 @@ const CONTENT_PATTERN = /<content>(.*?)<\/content>/s;
|
|
|
22
21
|
* @internal
|
|
23
22
|
*/
|
|
24
23
|
function _addInlineAgentName(message) {
|
|
25
|
-
|
|
26
|
-
if (!isAI || !message.name) return message;
|
|
24
|
+
if (!((0, _langchain_core_messages.isBaseMessage)(message) && ((0, _langchain_core_messages.isAIMessage)(message) || (0, _langchain_core_messages.isBaseMessageChunk)(message) && (0, _langchain_core_messages.isAIMessageChunk)(message))) || !message.name) return message;
|
|
27
25
|
const { name } = message;
|
|
28
|
-
if (typeof message.content === "string") {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
name: void 0
|
|
34
|
-
});
|
|
35
|
-
}
|
|
26
|
+
if (typeof message.content === "string") return new _langchain_core_messages.AIMessage({
|
|
27
|
+
...Object.keys(message.lc_kwargs ?? {}).length > 0 ? message.lc_kwargs : message,
|
|
28
|
+
content: `<name>${name}</name><content>${message.content}</content>`,
|
|
29
|
+
name: void 0
|
|
30
|
+
});
|
|
36
31
|
const updatedContent = [];
|
|
37
32
|
let textBlockCount = 0;
|
|
38
33
|
for (const contentBlock of message.content) if (typeof contentBlock === "string") {
|
|
@@ -49,7 +44,7 @@ function _addInlineAgentName(message) {
|
|
|
49
44
|
type: "text",
|
|
50
45
|
text: `<name>${name}</name><content></content>`
|
|
51
46
|
});
|
|
52
|
-
return new
|
|
47
|
+
return new _langchain_core_messages.AIMessage({
|
|
53
48
|
...message.lc_kwargs,
|
|
54
49
|
content: updatedContent,
|
|
55
50
|
name: void 0
|
|
@@ -74,7 +69,7 @@ function _addInlineAgentName(message) {
|
|
|
74
69
|
* @internal
|
|
75
70
|
*/
|
|
76
71
|
function _removeInlineAgentName(message) {
|
|
77
|
-
if (!(0,
|
|
72
|
+
if (!(0, _langchain_core_messages.isAIMessage)(message) || !message.content) return message;
|
|
78
73
|
let updatedContent = [];
|
|
79
74
|
let updatedName;
|
|
80
75
|
if (Array.isArray(message.content)) updatedContent = message.content.filter((block) => {
|
|
@@ -109,7 +104,7 @@ function _removeInlineAgentName(message) {
|
|
|
109
104
|
updatedName = nameMatch[1];
|
|
110
105
|
updatedContent = contentMatch[1];
|
|
111
106
|
}
|
|
112
|
-
return new
|
|
107
|
+
return new _langchain_core_messages.AIMessage({
|
|
113
108
|
...Object.keys(message.lc_kwargs ?? {}).length > 0 ? message.lc_kwargs : message,
|
|
114
109
|
content: updatedContent,
|
|
115
110
|
name: updatedName
|
|
@@ -141,10 +136,10 @@ function withAgentName(model, agentNameMode) {
|
|
|
141
136
|
function processInputMessages(messages) {
|
|
142
137
|
return messages.map(processInputMessage);
|
|
143
138
|
}
|
|
144
|
-
return
|
|
145
|
-
|
|
139
|
+
return _langchain_core_runnables.RunnableSequence.from([
|
|
140
|
+
_langchain_core_runnables.RunnableLambda.from(processInputMessages),
|
|
146
141
|
model,
|
|
147
|
-
|
|
142
|
+
_langchain_core_runnables.RunnableLambda.from(processOutputMessage)
|
|
148
143
|
]);
|
|
149
144
|
}
|
|
150
145
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentName.cjs","names":["AIMessage","
|
|
1
|
+
{"version":3,"file":"agentName.cjs","names":["AIMessage","RunnableSequence","RunnableLambda"],"sources":["../../src/prebuilt/agentName.ts"],"sourcesContent":["import { LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport {\n AIMessage,\n AIMessageFields,\n BaseMessage,\n BaseMessageLike,\n isAIMessage,\n isAIMessageChunk,\n isBaseMessage,\n isBaseMessageChunk,\n MessageContent,\n} from \"@langchain/core/messages\";\nimport { RunnableLambda, RunnableSequence } from \"@langchain/core/runnables\";\n\nconst NAME_PATTERN = /<name>(.*?)<\\/name>/s;\nconst CONTENT_PATTERN = /<content>(.*?)<\\/content>/s;\n\nexport type AgentNameMode = \"inline\";\n\n/**\n * Attach formatted agent names to the messages passed to and from a language model.\n *\n * This is useful for making a message history with multiple agents more coherent.\n *\n * NOTE: agent name is consumed from the message.name field.\n * If you're using an agent built with createReactAgent, name is automatically set.\n * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.\n *\n * @deprecated migrated to `langchain` package.\n *\n * @param message - Message to add agent name formatting to\n * @returns Message with agent name formatting\n *\n * @internal\n */\nexport function _addInlineAgentName<T extends BaseMessageLike>(\n message: T\n): T | AIMessage {\n const isAI =\n isBaseMessage(message) &&\n (isAIMessage(message) ||\n (isBaseMessageChunk(message) && isAIMessageChunk(message)));\n\n if (!isAI || !message.name) {\n return message;\n }\n\n const { name } = message;\n\n if (typeof message.content === \"string\") {\n const fields = (\n Object.keys(message.lc_kwargs ?? {}).length > 0\n ? message.lc_kwargs\n : message\n ) as AIMessageFields;\n\n return new AIMessage({\n ...fields,\n content: `<name>${name}</name><content>${message.content}</content>`,\n name: undefined,\n });\n }\n\n const updatedContent = [];\n let textBlockCount = 0;\n\n for (const contentBlock of message.content) {\n if (typeof contentBlock === \"string\") {\n textBlockCount += 1;\n updatedContent.push(\n `<name>${name}</name><content>${contentBlock}</content>`\n );\n } else if (\n typeof contentBlock === \"object\" &&\n \"type\" in contentBlock &&\n contentBlock.type === \"text\"\n ) {\n textBlockCount += 1;\n updatedContent.push({\n ...contentBlock,\n text: `<name>${name}</name><content>${contentBlock.text}</content>`,\n });\n } else {\n updatedContent.push(contentBlock);\n }\n }\n\n if (!textBlockCount) {\n updatedContent.unshift({\n type: \"text\",\n text: `<name>${name}</name><content></content>`,\n });\n }\n return new AIMessage({\n ...message.lc_kwargs,\n content: updatedContent as MessageContent,\n name: undefined,\n });\n}\n\n/**\n * Remove explicit name and content XML tags from the AI message content.\n *\n * @deprecated migrated to `langchain` package.\n *\n * Examples:\n *\n * @example\n * ```typescript\n * removeInlineAgentName(new AIMessage({ content: \"<name>assistant</name><content>Hello</content>\", name: \"assistant\" }))\n * // AIMessage with content: \"Hello\"\n *\n * removeInlineAgentName(new AIMessage({ content: [{type: \"text\", text: \"<name>assistant</name><content>Hello</content>\"}], name: \"assistant\" }))\n * // AIMessage with content: [{type: \"text\", text: \"Hello\"}]\n * ```\n *\n * @internal\n */\nexport function _removeInlineAgentName<T extends BaseMessage>(message: T): T {\n if (!isAIMessage(message) || !message.content) {\n return message;\n }\n\n let updatedContent: MessageContent = [];\n let updatedName: string | undefined;\n\n if (Array.isArray(message.content)) {\n updatedContent = message.content\n .filter((block) => {\n if (block.type === \"text\" && typeof block.text === \"string\") {\n const nameMatch = block.text.match(NAME_PATTERN);\n const contentMatch = block.text.match(CONTENT_PATTERN);\n // don't include empty content blocks that were added because there was no text block to modify\n if (nameMatch && (!contentMatch || contentMatch[1] === \"\")) {\n // capture name from text block\n // eslint-disable-next-line prefer-destructuring\n updatedName = nameMatch[1];\n return false;\n }\n return true;\n }\n return true;\n })\n .map((block) => {\n if (block.type === \"text\" && typeof block.text === \"string\") {\n const nameMatch = block.text.match(NAME_PATTERN);\n const contentMatch = block.text.match(CONTENT_PATTERN);\n\n if (!nameMatch || !contentMatch) {\n return block;\n }\n\n // capture name from text block\n // eslint-disable-next-line prefer-destructuring\n updatedName = nameMatch[1];\n\n return {\n ...block,\n text: contentMatch[1],\n };\n }\n return block;\n });\n } else {\n const content = message.content as string;\n const nameMatch = content.match(NAME_PATTERN);\n const contentMatch = content.match(CONTENT_PATTERN);\n\n if (!nameMatch || !contentMatch) {\n return message;\n }\n\n // eslint-disable-next-line prefer-destructuring\n updatedName = nameMatch[1];\n // eslint-disable-next-line prefer-destructuring\n updatedContent = contentMatch[1];\n }\n\n return new AIMessage({\n ...(Object.keys(message.lc_kwargs ?? {}).length > 0\n ? message.lc_kwargs\n : message),\n content: updatedContent,\n name: updatedName,\n }) as T;\n}\n\n/**\n * Attach formatted agent names to the messages passed to and from a language model.\n *\n * This is useful for making a message history with multiple agents more coherent.\n *\n * * @deprecated migrated to `langchain` package.\n *\n * NOTE: agent name is consumed from the message.name field.\n * If you're using an agent built with createReactAgent, name is automatically set.\n * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.\n *\n * @param model - Language model to add agent name formatting to\n * @param agentNameMode - How to expose the agent name to the LLM\n * - \"inline\": Add the agent name directly into the content field of the AI message using XML-style tags.\n * Example: \"How can I help you\" -> \"<name>agent_name</name><content>How can I help you?</content>\".\n */\nexport function withAgentName(\n model: LanguageModelLike,\n agentNameMode: AgentNameMode\n): LanguageModelLike {\n let processInputMessage: (message: BaseMessageLike) => BaseMessageLike;\n let processOutputMessage: (message: BaseMessage) => BaseMessage;\n\n if (agentNameMode === \"inline\") {\n processInputMessage = _addInlineAgentName;\n processOutputMessage = _removeInlineAgentName;\n } else {\n throw new Error(\n `Invalid agent name mode: ${agentNameMode}. Needs to be one of: \"inline\"`\n );\n }\n\n function processInputMessages(\n messages: BaseMessageLike[]\n ): BaseMessageLike[] {\n return messages.map(processInputMessage);\n }\n\n return RunnableSequence.from([\n RunnableLambda.from(processInputMessages),\n model,\n RunnableLambda.from(processOutputMessage),\n ]);\n}\n"],"mappings":"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"}
|
|
@@ -21,17 +21,13 @@ const CONTENT_PATTERN = /<content>(.*?)<\/content>/s;
|
|
|
21
21
|
* @internal
|
|
22
22
|
*/
|
|
23
23
|
function _addInlineAgentName(message) {
|
|
24
|
-
|
|
25
|
-
if (!isAI || !message.name) return message;
|
|
24
|
+
if (!(isBaseMessage(message) && (isAIMessage(message) || isBaseMessageChunk(message) && isAIMessageChunk(message))) || !message.name) return message;
|
|
26
25
|
const { name } = message;
|
|
27
|
-
if (typeof message.content === "string") {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
name: void 0
|
|
33
|
-
});
|
|
34
|
-
}
|
|
26
|
+
if (typeof message.content === "string") return new AIMessage({
|
|
27
|
+
...Object.keys(message.lc_kwargs ?? {}).length > 0 ? message.lc_kwargs : message,
|
|
28
|
+
content: `<name>${name}</name><content>${message.content}</content>`,
|
|
29
|
+
name: void 0
|
|
30
|
+
});
|
|
35
31
|
const updatedContent = [];
|
|
36
32
|
let textBlockCount = 0;
|
|
37
33
|
for (const contentBlock of message.content) if (typeof contentBlock === "string") {
|