@langchain/langgraph 0.4.8 → 1.0.0-alpha.0
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 +7 -2
- package/README.md +1 -2
- package/dist/_virtual/rolldown_runtime.cjs +25 -0
- package/dist/channels/any_value.d.cts +26 -0
- package/dist/channels/any_value.d.cts.map +1 -0
- package/dist/channels/any_value.d.ts +16 -9
- package/dist/channels/any_value.d.ts.map +1 -0
- package/dist/channels/base.cjs +97 -133
- package/dist/channels/base.cjs.map +1 -0
- package/dist/channels/base.d.cts +73 -0
- package/dist/channels/base.d.cts.map +1 -0
- package/dist/channels/base.d.ts +73 -74
- package/dist/channels/base.d.ts.map +1 -0
- package/dist/channels/base.js +94 -127
- package/dist/channels/base.js.map +1 -1
- package/dist/channels/binop.cjs +47 -77
- package/dist/channels/binop.cjs.map +1 -0
- package/dist/channels/binop.d.cts +22 -0
- package/dist/channels/binop.d.cts.map +1 -0
- package/dist/channels/binop.d.ts +17 -12
- package/dist/channels/binop.d.ts.map +1 -0
- package/dist/channels/binop.js +45 -71
- package/dist/channels/binop.js.map +1 -1
- package/dist/channels/dynamic_barrier_value.d.cts +43 -0
- package/dist/channels/dynamic_barrier_value.d.cts.map +1 -0
- package/dist/channels/dynamic_barrier_value.d.ts +20 -34
- package/dist/channels/dynamic_barrier_value.d.ts.map +1 -0
- package/dist/channels/ephemeral_value.cjs +46 -70
- package/dist/channels/ephemeral_value.cjs.map +1 -0
- package/dist/channels/ephemeral_value.d.cts +23 -0
- package/dist/channels/ephemeral_value.d.cts.map +1 -0
- package/dist/channels/ephemeral_value.d.ts +18 -11
- package/dist/channels/ephemeral_value.d.ts.map +1 -0
- package/dist/channels/ephemeral_value.js +45 -65
- package/dist/channels/ephemeral_value.js.map +1 -1
- package/dist/channels/index.cjs +2 -10
- package/dist/channels/index.js +4 -3
- package/dist/channels/last_value.cjs +91 -140
- package/dist/channels/last_value.cjs.map +1 -0
- package/dist/channels/last_value.d.cts +30 -0
- package/dist/channels/last_value.d.cts.map +1 -0
- package/dist/channels/last_value.d.ts +15 -23
- package/dist/channels/last_value.d.ts.map +1 -0
- package/dist/channels/last_value.js +88 -133
- package/dist/channels/last_value.js.map +1 -1
- package/dist/channels/named_barrier_value.cjs +114 -170
- package/dist/channels/named_barrier_value.cjs.map +1 -0
- package/dist/channels/named_barrier_value.d.cts +33 -0
- package/dist/channels/named_barrier_value.d.cts.map +1 -0
- package/dist/channels/named_barrier_value.d.ts +19 -29
- package/dist/channels/named_barrier_value.d.ts.map +1 -0
- package/dist/channels/named_barrier_value.js +112 -163
- package/dist/channels/named_barrier_value.js.map +1 -1
- package/dist/channels/topic.cjs +63 -96
- package/dist/channels/topic.cjs.map +1 -0
- package/dist/channels/topic.d.cts +26 -0
- package/dist/channels/topic.d.cts.map +1 -0
- package/dist/channels/topic.d.ts +21 -18
- package/dist/channels/topic.d.ts.map +1 -0
- package/dist/channels/topic.js +61 -90
- package/dist/channels/topic.js.map +1 -1
- package/dist/constants.cjs +373 -452
- package/dist/constants.cjs.map +1 -0
- package/dist/constants.d.cts +284 -0
- package/dist/constants.d.cts.map +1 -0
- package/dist/constants.d.ts +112 -148
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +333 -444
- package/dist/constants.js.map +1 -1
- package/dist/errors.cjs +150 -179
- package/dist/errors.cjs.map +1 -0
- package/dist/errors.d.cts +80 -0
- package/dist/errors.d.cts.map +1 -0
- package/dist/errors.d.ts +55 -46
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +139 -165
- package/dist/errors.js.map +1 -1
- package/dist/func/index.cjs +289 -290
- package/dist/func/index.cjs.map +1 -0
- package/dist/func/index.d.cts +289 -0
- package/dist/func/index.d.cts.map +1 -0
- package/dist/func/index.d.ts +81 -71
- package/dist/func/index.d.ts.map +1 -0
- package/dist/func/index.js +285 -284
- package/dist/func/index.js.map +1 -1
- package/dist/func/types.d.cts +64 -0
- package/dist/func/types.d.cts.map +1 -0
- package/dist/func/types.d.ts +24 -19
- package/dist/func/types.d.ts.map +1 -0
- package/dist/graph/annotation.cjs +96 -120
- package/dist/graph/annotation.cjs.map +1 -0
- package/dist/graph/annotation.d.cts +116 -0
- package/dist/graph/annotation.d.cts.map +1 -0
- package/dist/graph/annotation.d.ts +33 -34
- package/dist/graph/annotation.d.ts.map +1 -0
- package/dist/graph/annotation.js +91 -112
- package/dist/graph/annotation.js.map +1 -1
- package/dist/graph/graph.cjs +419 -723
- package/dist/graph/graph.cjs.map +1 -0
- package/dist/graph/graph.d.cts +131 -0
- package/dist/graph/graph.d.cts.map +1 -0
- package/dist/graph/graph.d.ts +122 -91
- package/dist/graph/graph.d.ts.map +1 -0
- package/dist/graph/graph.js +412 -713
- package/dist/graph/graph.js.map +1 -1
- package/dist/graph/index.cjs +4 -17
- package/dist/graph/index.js +6 -5
- package/dist/graph/message.cjs +59 -104
- package/dist/graph/message.cjs.map +1 -0
- package/dist/graph/message.d.cts +19 -0
- package/dist/graph/message.d.cts.map +1 -0
- package/dist/graph/message.d.ts +11 -10
- package/dist/graph/message.d.ts.map +1 -0
- package/dist/graph/message.js +56 -98
- package/dist/graph/message.js.map +1 -1
- package/dist/graph/messages_annotation.cjs +106 -106
- package/dist/graph/messages_annotation.cjs.map +1 -0
- package/dist/graph/messages_annotation.d.cts +111 -0
- package/dist/graph/messages_annotation.d.cts.map +1 -0
- package/dist/graph/messages_annotation.d.ts +18 -9
- package/dist/graph/messages_annotation.d.ts.map +1 -0
- package/dist/graph/messages_annotation.js +100 -100
- package/dist/graph/messages_annotation.js.map +1 -1
- package/dist/graph/state.cjs +476 -777
- package/dist/graph/state.cjs.map +1 -0
- package/dist/graph/state.d.cts +216 -0
- package/dist/graph/state.d.cts.map +1 -0
- package/dist/graph/state.d.ts +129 -134
- package/dist/graph/state.d.ts.map +1 -0
- package/dist/graph/state.js +470 -768
- package/dist/graph/state.js.map +1 -1
- package/dist/graph/zod/index.cjs +10 -21
- package/dist/graph/zod/index.d.cts +3 -0
- package/dist/graph/zod/index.d.ts +3 -3
- package/dist/graph/zod/index.js +4 -4
- package/dist/graph/zod/meta.cjs +142 -177
- package/dist/graph/zod/meta.cjs.map +1 -0
- package/dist/graph/zod/meta.d.cts +116 -0
- package/dist/graph/zod/meta.d.cts.map +1 -0
- package/dist/graph/zod/meta.d.ts +99 -97
- package/dist/graph/zod/meta.d.ts.map +1 -0
- package/dist/graph/zod/meta.js +136 -170
- package/dist/graph/zod/meta.js.map +1 -1
- package/dist/graph/zod/plugin.cjs +36 -39
- package/dist/graph/zod/plugin.cjs.map +1 -0
- package/dist/graph/zod/plugin.js +34 -35
- package/dist/graph/zod/plugin.js.map +1 -1
- package/dist/graph/zod/schema.cjs +82 -110
- package/dist/graph/zod/schema.cjs.map +1 -0
- package/dist/graph/zod/schema.d.cts +38 -0
- package/dist/graph/zod/schema.d.cts.map +1 -0
- package/dist/graph/zod/schema.d.ts +12 -6
- package/dist/graph/zod/schema.d.ts.map +1 -0
- package/dist/graph/zod/schema.js +77 -103
- package/dist/graph/zod/schema.js.map +1 -1
- package/dist/graph/zod/zod-registry.cjs +41 -47
- package/dist/graph/zod/zod-registry.cjs.map +1 -0
- package/dist/graph/zod/zod-registry.d.cts +51 -0
- package/dist/graph/zod/zod-registry.d.cts.map +1 -0
- package/dist/graph/zod/zod-registry.d.ts +34 -26
- package/dist/graph/zod/zod-registry.d.ts.map +1 -0
- package/dist/graph/zod/zod-registry.js +37 -41
- package/dist/graph/zod/zod-registry.js.map +1 -1
- package/dist/hash.cjs +205 -267
- package/dist/hash.cjs.map +1 -0
- package/dist/hash.js +205 -265
- package/dist/hash.js.map +1 -1
- package/dist/index.cjs +110 -33
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +25 -0
- package/dist/index.d.ts +25 -5
- package/dist/index.js +18 -7
- package/dist/index.js.map +1 -1
- package/dist/interrupt.cjs +79 -85
- package/dist/interrupt.cjs.map +1 -0
- package/dist/interrupt.d.cts +49 -0
- package/dist/interrupt.d.cts.map +1 -0
- package/dist/interrupt.d.ts +6 -1
- package/dist/interrupt.d.ts.map +1 -0
- package/dist/interrupt.js +76 -80
- package/dist/interrupt.js.map +1 -1
- package/dist/prebuilt/agentName.cjs +139 -172
- package/dist/prebuilt/agentName.cjs.map +1 -0
- package/dist/prebuilt/agentName.d.cts +42 -0
- package/dist/prebuilt/agentName.d.cts.map +1 -0
- package/dist/prebuilt/agentName.d.ts +13 -21
- package/dist/prebuilt/agentName.d.ts.map +1 -0
- package/dist/prebuilt/agentName.js +139 -168
- package/dist/prebuilt/agentName.js.map +1 -1
- package/dist/prebuilt/agent_executor.cjs +42 -80
- package/dist/prebuilt/agent_executor.cjs.map +1 -0
- package/dist/prebuilt/agent_executor.d.cts +57 -0
- package/dist/prebuilt/agent_executor.d.cts.map +1 -0
- package/dist/prebuilt/agent_executor.d.ts +46 -37
- package/dist/prebuilt/agent_executor.d.ts.map +1 -0
- package/dist/prebuilt/agent_executor.js +40 -75
- package/dist/prebuilt/agent_executor.js.map +1 -1
- package/dist/prebuilt/chat_agent_executor.cjs +66 -128
- package/dist/prebuilt/chat_agent_executor.cjs.map +1 -0
- package/dist/prebuilt/chat_agent_executor.d.cts +23 -0
- package/dist/prebuilt/chat_agent_executor.d.cts.map +1 -0
- package/dist/prebuilt/chat_agent_executor.d.ts +18 -10
- package/dist/prebuilt/chat_agent_executor.d.ts.map +1 -0
- package/dist/prebuilt/chat_agent_executor.js +63 -123
- package/dist/prebuilt/chat_agent_executor.js.map +1 -1
- package/dist/prebuilt/index.cjs +15 -18
- package/dist/prebuilt/index.d.cts +8 -0
- package/dist/prebuilt/index.d.ts +8 -8
- package/dist/prebuilt/index.js +8 -7
- package/dist/prebuilt/interrupt.d.cts +73 -0
- package/dist/prebuilt/interrupt.d.cts.map +1 -0
- package/dist/prebuilt/interrupt.d.ts +32 -15
- package/dist/prebuilt/interrupt.d.ts.map +1 -0
- package/dist/prebuilt/react_agent_executor.cjs +317 -473
- package/dist/prebuilt/react_agent_executor.cjs.map +1 -0
- package/dist/prebuilt/react_agent_executor.d.cts +229 -0
- package/dist/prebuilt/react_agent_executor.d.cts.map +1 -0
- package/dist/prebuilt/react_agent_executor.d.ts +171 -143
- package/dist/prebuilt/react_agent_executor.d.ts.map +1 -0
- package/dist/prebuilt/react_agent_executor.js +315 -465
- package/dist/prebuilt/react_agent_executor.js.map +1 -1
- package/dist/prebuilt/tool_executor.cjs +45 -67
- package/dist/prebuilt/tool_executor.cjs.map +1 -0
- package/dist/prebuilt/tool_executor.d.cts +42 -0
- package/dist/prebuilt/tool_executor.d.cts.map +1 -0
- package/dist/prebuilt/tool_executor.d.ts +30 -24
- package/dist/prebuilt/tool_executor.d.ts.map +1 -0
- package/dist/prebuilt/tool_executor.js +44 -63
- package/dist/prebuilt/tool_executor.js.map +1 -1
- package/dist/prebuilt/tool_node.cjs +213 -275
- package/dist/prebuilt/tool_node.cjs.map +1 -0
- package/dist/prebuilt/tool_node.d.cts +151 -0
- package/dist/prebuilt/tool_node.d.cts.map +1 -0
- package/dist/prebuilt/tool_node.d.ts +30 -17
- package/dist/prebuilt/tool_node.d.ts.map +1 -0
- package/dist/prebuilt/tool_node.js +209 -268
- package/dist/prebuilt/tool_node.js.map +1 -1
- package/dist/pregel/algo.cjs +521 -692
- package/dist/pregel/algo.cjs.map +1 -0
- package/dist/pregel/algo.d.cts +13 -0
- package/dist/pregel/algo.d.cts.map +1 -0
- package/dist/pregel/algo.d.ts +8 -38
- package/dist/pregel/algo.d.ts.map +1 -0
- package/dist/pregel/algo.js +516 -683
- package/dist/pregel/algo.js.map +1 -1
- package/dist/pregel/call.cjs +46 -42
- package/dist/pregel/call.cjs.map +1 -0
- package/dist/pregel/call.js +43 -37
- package/dist/pregel/call.js.map +1 -1
- package/dist/pregel/debug.cjs +153 -223
- package/dist/pregel/debug.cjs.map +1 -0
- package/dist/pregel/debug.js +152 -215
- package/dist/pregel/debug.js.map +1 -1
- package/dist/pregel/index.cjs +1134 -1604
- package/dist/pregel/index.cjs.map +1 -0
- package/dist/pregel/index.d.cts +534 -0
- package/dist/pregel/index.d.cts.map +1 -0
- package/dist/pregel/index.d.ts +458 -422
- package/dist/pregel/index.d.ts.map +1 -0
- package/dist/pregel/index.js +1125 -1592
- package/dist/pregel/index.js.map +1 -1
- package/dist/pregel/io.cjs +127 -234
- package/dist/pregel/io.cjs.map +1 -0
- package/dist/pregel/io.js +122 -225
- package/dist/pregel/io.js.map +1 -1
- package/dist/pregel/loop.cjs +539 -954
- package/dist/pregel/loop.cjs.map +1 -0
- package/dist/pregel/loop.js +536 -948
- package/dist/pregel/loop.js.map +1 -1
- package/dist/pregel/messages.cjs +104 -196
- package/dist/pregel/messages.cjs.map +1 -0
- package/dist/pregel/messages.js +102 -191
- package/dist/pregel/messages.js.map +1 -1
- package/dist/pregel/read.cjs +150 -280
- package/dist/pregel/read.cjs.map +1 -0
- package/dist/pregel/read.d.cts +51 -0
- package/dist/pregel/read.d.cts.map +1 -0
- package/dist/pregel/read.d.ts +48 -46
- package/dist/pregel/read.d.ts.map +1 -0
- package/dist/pregel/read.js +147 -274
- package/dist/pregel/read.js.map +1 -1
- package/dist/pregel/remote.cjs +339 -458
- package/dist/pregel/remote.cjs.map +1 -0
- package/dist/pregel/remote.d.cts +121 -0
- package/dist/pregel/remote.d.cts.map +1 -0
- package/dist/pregel/remote.d.ts +79 -69
- package/dist/pregel/remote.d.ts.map +1 -0
- package/dist/pregel/remote.js +337 -453
- package/dist/pregel/remote.js.map +1 -1
- package/dist/pregel/retry.cjs +87 -138
- package/dist/pregel/retry.cjs.map +1 -0
- package/dist/pregel/retry.js +83 -130
- package/dist/pregel/retry.js.map +1 -1
- package/dist/pregel/runnable_types.d.cts +25 -0
- package/dist/pregel/runnable_types.d.cts.map +1 -0
- package/dist/pregel/runnable_types.d.ts +22 -16
- package/dist/pregel/runnable_types.d.ts.map +1 -0
- package/dist/pregel/runner.cjs +222 -315
- package/dist/pregel/runner.cjs.map +1 -0
- package/dist/pregel/runner.js +219 -308
- package/dist/pregel/runner.js.map +1 -1
- package/dist/pregel/stream.cjs +89 -130
- package/dist/pregel/stream.cjs.map +1 -0
- package/dist/pregel/stream.js +87 -125
- package/dist/pregel/stream.js.map +1 -1
- package/dist/pregel/types.cjs +25 -62
- package/dist/pregel/types.cjs.map +1 -0
- package/dist/pregel/types.d.cts +437 -0
- package/dist/pregel/types.d.cts.map +1 -0
- package/dist/pregel/types.d.ts +377 -431
- package/dist/pregel/types.d.ts.map +1 -0
- package/dist/pregel/types.js +23 -57
- package/dist/pregel/types.js.map +1 -1
- package/dist/pregel/utils/config.cjs +100 -147
- package/dist/pregel/utils/config.cjs.map +1 -0
- package/dist/pregel/utils/config.d.cts +36 -0
- package/dist/pregel/utils/config.d.cts.map +1 -0
- package/dist/pregel/utils/config.d.ts +12 -9
- package/dist/pregel/utils/config.d.ts.map +1 -0
- package/dist/pregel/utils/config.js +98 -143
- package/dist/pregel/utils/config.js.map +1 -1
- package/dist/pregel/utils/index.cjs +87 -125
- package/dist/pregel/utils/index.cjs.map +1 -0
- package/dist/pregel/utils/index.d.cts +51 -0
- package/dist/pregel/utils/index.d.cts.map +1 -0
- package/dist/pregel/utils/index.d.ts +45 -61
- package/dist/pregel/utils/index.d.ts.map +1 -0
- package/dist/pregel/utils/index.js +86 -120
- package/dist/pregel/utils/index.js.map +1 -1
- package/dist/pregel/utils/subgraph.cjs +15 -26
- package/dist/pregel/utils/subgraph.cjs.map +1 -0
- package/dist/pregel/utils/subgraph.js +12 -21
- package/dist/pregel/utils/subgraph.js.map +1 -1
- package/dist/pregel/validate.cjs +42 -92
- package/dist/pregel/validate.cjs.map +1 -0
- package/dist/pregel/validate.js +39 -84
- package/dist/pregel/validate.js.map +1 -1
- package/dist/pregel/write.cjs +87 -137
- package/dist/pregel/write.cjs.map +1 -0
- package/dist/pregel/write.d.cts +35 -0
- package/dist/pregel/write.d.cts.map +1 -0
- package/dist/pregel/write.d.ts +27 -23
- package/dist/pregel/write.d.ts.map +1 -0
- package/dist/pregel/write.js +83 -131
- package/dist/pregel/write.js.map +1 -1
- package/dist/remote.cjs +3 -6
- package/dist/remote.d.cts +2 -0
- package/dist/remote.d.ts +2 -1
- package/dist/remote.js +3 -2
- package/dist/setup/async_local_storage.cjs +10 -7
- package/dist/setup/async_local_storage.cjs.map +1 -0
- package/dist/setup/async_local_storage.js +7 -2
- package/dist/setup/async_local_storage.js.map +1 -1
- package/dist/ui/index.cjs +4 -0
- package/dist/ui/index.d.cts +5 -0
- package/dist/ui/index.d.ts +5 -0
- package/dist/ui/index.js +3 -0
- package/dist/ui/stream.cjs +145 -0
- package/dist/ui/stream.cjs.map +1 -0
- package/dist/ui/stream.d.cts +25 -0
- package/dist/ui/stream.d.cts.map +1 -0
- package/dist/ui/stream.d.ts +25 -0
- package/dist/ui/stream.d.ts.map +1 -0
- package/dist/ui/stream.js +143 -0
- package/dist/ui/stream.js.map +1 -0
- package/dist/ui/types.infer.d.cts +53 -0
- package/dist/ui/types.infer.d.cts.map +1 -0
- package/dist/ui/types.infer.d.ts +53 -0
- package/dist/ui/types.infer.d.ts.map +1 -0
- package/dist/ui/types.message.d.cts +95 -0
- package/dist/ui/types.message.d.cts.map +1 -0
- package/dist/ui/types.message.d.ts +95 -0
- package/dist/ui/types.message.d.ts.map +1 -0
- package/dist/ui/types.schema.d.cts +228 -0
- package/dist/ui/types.schema.d.cts.map +1 -0
- package/dist/ui/types.schema.d.ts +228 -0
- package/dist/ui/types.schema.d.ts.map +1 -0
- package/dist/utils.cjs +77 -147
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.d.cts +32 -0
- package/dist/utils.d.cts.map +1 -0
- package/dist/utils.d.ts +29 -25
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +73 -140
- package/dist/utils.js.map +1 -1
- package/dist/web.cjs +97 -55
- package/dist/web.d.cts +23 -0
- package/dist/web.d.ts +23 -14
- package/dist/web.js +15 -8
- package/package.json +83 -86
- package/dist/channels/any_value.cjs +0 -65
- package/dist/channels/any_value.js +0 -61
- package/dist/channels/any_value.js.map +0 -1
- package/dist/channels/dynamic_barrier_value.cjs +0 -212
- package/dist/channels/dynamic_barrier_value.js +0 -207
- package/dist/channels/dynamic_barrier_value.js.map +0 -1
- package/dist/channels/index.d.ts +0 -7
- package/dist/channels/index.js.map +0 -1
- package/dist/func/types.cjs +0 -15
- package/dist/func/types.js +0 -12
- package/dist/func/types.js.map +0 -1
- package/dist/graph/index.d.ts +0 -4
- package/dist/graph/index.js.map +0 -1
- package/dist/graph/message.test.cjs +0 -196
- package/dist/graph/message.test.d.ts +0 -1
- package/dist/graph/message.test.js +0 -194
- package/dist/graph/message.test.js.map +0 -1
- package/dist/graph/zod/index.js.map +0 -1
- package/dist/graph/zod/plugin.d.ts +0 -28
- package/dist/hash.d.ts +0 -2
- package/dist/prebuilt/index.js.map +0 -1
- package/dist/prebuilt/interrupt.cjs +0 -3
- package/dist/prebuilt/interrupt.js +0 -2
- package/dist/prebuilt/interrupt.js.map +0 -1
- package/dist/pregel/call.d.ts +0 -16
- package/dist/pregel/debug.d.ts +0 -41
- package/dist/pregel/debug.test.cjs +0 -258
- package/dist/pregel/debug.test.d.ts +0 -1
- package/dist/pregel/debug.test.js +0 -256
- package/dist/pregel/debug.test.js.map +0 -1
- package/dist/pregel/io.d.ts +0 -30
- package/dist/pregel/io.mapCommand.test.cjs +0 -150
- package/dist/pregel/io.mapCommand.test.d.ts +0 -1
- package/dist/pregel/io.mapCommand.test.js +0 -148
- package/dist/pregel/io.mapCommand.test.js.map +0 -1
- package/dist/pregel/loop.d.ts +0 -147
- package/dist/pregel/messages.d.ts +0 -30
- package/dist/pregel/messages.test.cjs +0 -369
- package/dist/pregel/messages.test.d.ts +0 -1
- package/dist/pregel/messages.test.js +0 -367
- package/dist/pregel/messages.test.js.map +0 -1
- package/dist/pregel/read.test.cjs +0 -194
- package/dist/pregel/read.test.d.ts +0 -1
- package/dist/pregel/read.test.js +0 -192
- package/dist/pregel/read.test.js.map +0 -1
- package/dist/pregel/retry.d.ts +0 -17
- package/dist/pregel/runnable_types.cjs +0 -3
- package/dist/pregel/runnable_types.js +0 -2
- package/dist/pregel/runnable_types.js.map +0 -1
- package/dist/pregel/runner.d.ts +0 -79
- package/dist/pregel/runner.test.cjs +0 -66
- package/dist/pregel/runner.test.d.ts +0 -1
- package/dist/pregel/runner.test.js +0 -64
- package/dist/pregel/runner.test.js.map +0 -1
- package/dist/pregel/stream.d.ts +0 -40
- package/dist/pregel/utils/config.test.cjs +0 -214
- package/dist/pregel/utils/config.test.d.ts +0 -1
- package/dist/pregel/utils/config.test.js +0 -212
- package/dist/pregel/utils/config.test.js.map +0 -1
- package/dist/pregel/utils/subgraph.d.ts +0 -4
- package/dist/pregel/utils/subgraph.test.cjs +0 -83
- package/dist/pregel/utils/subgraph.test.d.ts +0 -1
- package/dist/pregel/utils/subgraph.test.js +0 -81
- package/dist/pregel/utils/subgraph.test.js.map +0 -1
- package/dist/pregel/validate.d.ts +0 -16
- package/dist/pregel/validate.test.cjs +0 -220
- package/dist/pregel/validate.test.d.ts +0 -1
- package/dist/pregel/validate.test.js +0 -218
- package/dist/pregel/validate.test.js.map +0 -1
- package/dist/pregel/write.test.cjs +0 -181
- package/dist/pregel/write.test.d.ts +0 -1
- package/dist/pregel/write.test.js +0 -179
- package/dist/pregel/write.test.js.map +0 -1
- package/dist/remote.js.map +0 -1
- package/dist/setup/async_local_storage.d.ts +0 -1
- package/dist/web.js.map +0 -1
- package/index.cjs +0 -1
- package/index.d.cts +0 -1
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/prebuilt.cjs +0 -1
- package/prebuilt.d.cts +0 -1
- package/prebuilt.d.ts +0 -1
- package/prebuilt.js +0 -1
- package/pregel.cjs +0 -1
- package/pregel.d.cts +0 -1
- package/pregel.d.ts +0 -1
- package/pregel.js +0 -1
- package/remote.cjs +0 -1
- package/remote.d.cts +0 -1
- package/remote.d.ts +0 -1
- package/remote.js +0 -1
- package/web.cjs +0 -1
- package/web.d.cts +0 -1
- package/web.d.ts +0 -1
- package/web.js +0 -1
- package/zod/schema.cjs +0 -1
- package/zod/schema.d.cts +0 -1
- package/zod/schema.d.ts +0 -1
- package/zod/schema.js +0 -1
- package/zod.cjs +0 -1
- package/zod.d.cts +0 -1
- package/zod.d.ts +0 -1
- package/zod.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/pregel/remote.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"remote.js","names":["updatedStreamModes: StreamMode[]","tasks: PregelTaskDescription[]","namespace: string[]","nodesMap: Record<string, DrawableNode>","DrawableGraph"],"sources":["../../src/pregel/remote.ts"],"sourcesContent":["import {\n Client,\n type Checkpoint,\n type ThreadState,\n} from \"@langchain/langgraph-sdk\";\nimport {\n Graph as DrawableGraph,\n Node as DrawableNode,\n} from \"@langchain/core/runnables/graph\";\nimport {\n mergeConfigs,\n Runnable,\n RunnableConfig,\n} from \"@langchain/core/runnables\";\nimport {\n All,\n CheckpointListOptions,\n CheckpointMetadata,\n} from \"@langchain/langgraph-checkpoint\";\nimport { StreamEvent } from \"@langchain/core/tracers/log_stream\";\nimport { IterableReadableStream } from \"@langchain/core/utils/stream\";\nimport { isBaseMessage } from \"@langchain/core/messages\";\n\nimport {\n BaseChannel,\n GraphInterrupt,\n LangGraphRunnableConfig,\n RemoteException,\n} from \"../web.js\";\nimport { StrRecord } from \"./algo.js\";\nimport { PregelInputType, PregelOptions, PregelOutputType } from \"./index.js\";\nimport { PregelNode } from \"./read.js\";\nimport {\n PregelParams,\n PregelInterface,\n PregelTaskDescription,\n StateSnapshot,\n StreamMode,\n} from \"./types.js\";\nimport {\n CHECKPOINT_NAMESPACE_SEPARATOR,\n CONFIG_KEY_STREAM,\n INTERRUPT,\n isCommand,\n} from \"../constants.js\";\n\nexport type RemoteGraphParams = Omit<\n PregelParams<StrRecord<string, PregelNode>, StrRecord<string, BaseChannel>>,\n \"channels\" | \"nodes\" | \"inputChannels\" | \"outputChannels\"\n> & {\n graphId: string;\n client?: Client;\n url?: string;\n apiKey?: string;\n headers?: Record<string, string>;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst _serializeInputs = (obj: any): any => {\n if (obj === null || typeof obj !== \"object\") {\n return obj;\n }\n\n if (Array.isArray(obj)) {\n return obj.map(_serializeInputs);\n }\n\n // Handle BaseMessage instances by converting them to a serializable format\n if (isBaseMessage(obj)) {\n const dict = obj.toDict();\n return {\n ...dict.data,\n role: obj.getType(),\n };\n }\n\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [key, _serializeInputs(value)])\n );\n};\n\n/**\n * Return a tuple of the final list of stream modes sent to the\n * remote graph and a boolean flag indicating if only one stream mode was\n * originally requested and whether stream mode 'updates'\n * was present in the original list of stream modes.\n *\n * 'updates' mode is always added to the list of stream modes so that interrupts\n * can be detected in the remote graph.\n */\nconst getStreamModes = (\n streamMode?: StreamMode | StreamMode[],\n defaultStreamMode: StreamMode = \"updates\"\n) => {\n const updatedStreamModes: StreamMode[] = [];\n let reqUpdates = false;\n let reqSingle = true;\n\n if (\n streamMode !== undefined &&\n (typeof streamMode === \"string\" ||\n (Array.isArray(streamMode) && streamMode.length > 0))\n ) {\n reqSingle = typeof streamMode === \"string\";\n const mapped = Array.isArray(streamMode) ? streamMode : [streamMode];\n updatedStreamModes.push(...mapped);\n } else {\n updatedStreamModes.push(defaultStreamMode);\n }\n if (updatedStreamModes.includes(\"updates\")) {\n reqUpdates = true;\n } else {\n updatedStreamModes.push(\"updates\");\n }\n return {\n updatedStreamModes,\n reqUpdates,\n reqSingle,\n };\n};\n\n/**\n * The `RemoteGraph` class is a client implementation for calling remote\n * APIs that implement the LangGraph Server API specification.\n *\n * For example, the `RemoteGraph` class can be used to call APIs from deployments\n * on LangGraph Cloud.\n *\n * `RemoteGraph` behaves the same way as a `StateGraph` and can be used directly as\n * a node in another `StateGraph`.\n *\n * @example\n * ```ts\n * import { RemoteGraph } from \"@langchain/langgraph/remote\";\n *\n * // Can also pass a LangGraph SDK client instance directly\n * const remoteGraph = new RemoteGraph({\n * graphId: process.env.LANGGRAPH_REMOTE_GRAPH_ID!,\n * apiKey: process.env.LANGGRAPH_REMOTE_GRAPH_API_KEY,\n * url: process.env.LANGGRAPH_REMOTE_GRAPH_API_URL,\n * });\n *\n * const input = {\n * messages: [\n * {\n * role: \"human\",\n * content: \"Hello world!\",\n * },\n * ],\n * };\n *\n * const config = {\n * configurable: { thread_id: \"threadId1\" },\n * };\n *\n * await remoteGraph.invoke(input, config);\n * ```\n */\nexport class RemoteGraph<\n Nn extends StrRecord<string, PregelNode> = StrRecord<string, PregelNode>,\n Cc extends StrRecord<string, BaseChannel> = StrRecord<string, BaseChannel>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ContextType extends Record<string, any> = StrRecord<string, any>\n >\n extends Runnable<\n PregelInputType,\n PregelOutputType,\n PregelOptions<Nn, Cc, ContextType>\n >\n implements PregelInterface<Nn, Cc, ContextType>\n{\n static lc_name() {\n return \"RemoteGraph\";\n }\n\n lc_namespace = [\"langgraph\", \"pregel\"];\n\n lg_is_pregel = true;\n\n config?: RunnableConfig;\n\n graphId: string;\n\n protected client: Client;\n\n protected interruptBefore?: Array<keyof Nn> | All;\n\n protected interruptAfter?: Array<keyof Nn> | All;\n\n constructor(params: RemoteGraphParams) {\n super(params);\n\n this.graphId = params.graphId;\n this.client =\n params.client ??\n new Client({\n apiUrl: params.url,\n apiKey: params.apiKey,\n defaultHeaders: params.headers,\n });\n this.config = params.config;\n this.interruptBefore = params.interruptBefore;\n this.interruptAfter = params.interruptAfter;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore Remove ignore when we remove support for 0.2 versions of core\n override withConfig(config: RunnableConfig): typeof this {\n const mergedConfig = mergeConfigs(this.config, config);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.constructor as any)({ ...this, config: mergedConfig });\n }\n\n protected _sanitizeConfig(config: RunnableConfig) {\n const reservedConfigurableKeys = new Set([\n \"callbacks\",\n \"checkpoint_map\",\n \"checkpoint_id\",\n \"checkpoint_ns\",\n ]);\n\n const sanitizeObj = <T>(obj: T): T => {\n try {\n // This will only throw if we're trying to serialize a circular reference\n // or trying to serialize a BigInt...\n JSON.stringify(obj);\n return obj;\n } catch {\n const seen = new WeakSet();\n return JSON.parse(\n JSON.stringify(obj, (_, value) => {\n if (typeof value === \"object\" && value != null) {\n if (seen.has(value)) return \"[Circular]\";\n seen.add(value);\n }\n\n if (typeof value === \"bigint\") return value.toString();\n return value;\n })\n );\n }\n };\n\n // Remove non-JSON serializable fields from the config\n const sanitizedConfig = sanitizeObj(config);\n\n // Only include configurable keys that are not reserved and\n // not starting with \"__pregel_\" prefix\n const newConfigurable = Object.fromEntries(\n Object.entries(sanitizedConfig.configurable ?? {}).filter(\n ([k]) => !reservedConfigurableKeys.has(k) && !k.startsWith(\"__pregel_\")\n )\n );\n\n return {\n tags: sanitizedConfig.tags ?? [],\n metadata: sanitizedConfig.metadata ?? {},\n configurable: newConfigurable,\n recursion_limit: sanitizedConfig.recursionLimit,\n };\n }\n\n protected _getConfig(checkpoint: Record<string, unknown>): RunnableConfig {\n return {\n configurable: {\n thread_id: checkpoint.thread_id,\n checkpoint_ns: checkpoint.checkpoint_ns,\n checkpoint_id: checkpoint.checkpoint_id,\n checkpoint_map: checkpoint.checkpoint_map ?? {},\n },\n };\n }\n\n protected _getCheckpoint(config?: RunnableConfig): Checkpoint | undefined {\n if (config?.configurable === undefined) {\n return undefined;\n }\n\n const checkpointKeys = [\n \"thread_id\",\n \"checkpoint_ns\",\n \"checkpoint_id\",\n \"checkpoint_map\",\n ] as const;\n\n const checkpoint = Object.fromEntries(\n checkpointKeys\n .map((key) => [key, config.configurable![key]])\n .filter(([_, value]) => value !== undefined)\n );\n\n return Object.keys(checkpoint).length > 0 ? checkpoint : undefined;\n }\n\n protected _createStateSnapshot(state: ThreadState): StateSnapshot {\n const tasks: PregelTaskDescription[] = state.tasks.map((task) => {\n return {\n id: task.id,\n name: task.name,\n error: task.error ? { message: task.error } : undefined,\n // TODO: remove in LangGraph.js 0.4\n interrupts: task.interrupts.map(({ id, ...rest }) => ({\n interrupt_id: id,\n ...rest,\n })),\n // eslint-disable-next-line no-nested-ternary\n state: task.state\n ? this._createStateSnapshot(task.state)\n : task.checkpoint\n ? { configurable: task.checkpoint }\n : undefined,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result: (task as any).result,\n };\n });\n\n return {\n values: state.values,\n next: state.next ? [...state.next] : [],\n config: {\n configurable: {\n thread_id: state.checkpoint.thread_id,\n checkpoint_ns: state.checkpoint.checkpoint_ns,\n checkpoint_id: state.checkpoint.checkpoint_id,\n checkpoint_map: state.checkpoint.checkpoint_map ?? {},\n },\n },\n metadata: state.metadata\n ? (state.metadata as CheckpointMetadata)\n : undefined,\n createdAt: state.created_at ?? undefined,\n parentConfig: state.parent_checkpoint\n ? {\n configurable: {\n thread_id: state.parent_checkpoint.thread_id,\n checkpoint_ns: state.parent_checkpoint.checkpoint_ns,\n checkpoint_id: state.parent_checkpoint.checkpoint_id,\n checkpoint_map: state.parent_checkpoint.checkpoint_map ?? {},\n },\n }\n : undefined,\n tasks,\n };\n }\n\n override async invoke(\n input: PregelInputType,\n options?: Partial<PregelOptions<Nn, Cc, ContextType>>\n ): Promise<PregelOutputType> {\n let lastValue;\n const stream = await this.stream(input, {\n ...options,\n streamMode: \"values\",\n });\n for await (const chunk of stream) {\n lastValue = chunk;\n }\n return lastValue;\n }\n\n override streamEvents(\n input: PregelInputType,\n options: Partial<PregelOptions<Nn, Cc, ContextType>> & {\n version: \"v1\" | \"v2\";\n }\n ): IterableReadableStream<StreamEvent>;\n\n override streamEvents(\n input: PregelInputType,\n options: Partial<PregelOptions<Nn, Cc, ContextType>> & {\n version: \"v1\" | \"v2\";\n encoding: never;\n }\n ): IterableReadableStream<never>;\n\n override streamEvents(\n _input: PregelInputType,\n _options: Partial<PregelOptions<Nn, Cc, ContextType>> & {\n version: \"v1\" | \"v2\";\n encoding?: never;\n }\n ): IterableReadableStream<StreamEvent> {\n throw new Error(\"Not implemented.\");\n }\n\n override async *_streamIterator(\n input: PregelInputType,\n options?: Partial<PregelOptions<Nn, Cc, ContextType>>\n ): AsyncGenerator<PregelOutputType> {\n const mergedConfig = mergeConfigs(this.config, options);\n const sanitizedConfig = this._sanitizeConfig(mergedConfig);\n\n const streamProtocolInstance = options?.configurable?.[CONFIG_KEY_STREAM];\n\n const streamSubgraphs =\n options?.subgraphs ?? streamProtocolInstance !== undefined;\n\n const interruptBefore = options?.interruptBefore ?? this.interruptBefore;\n const interruptAfter = options?.interruptAfter ?? this.interruptAfter;\n\n const { updatedStreamModes, reqSingle, reqUpdates } = getStreamModes(\n options?.streamMode\n );\n\n const extendedStreamModes = [\n ...new Set([\n ...updatedStreamModes,\n ...(streamProtocolInstance?.modes ?? new Set()),\n ]),\n ].map((mode) => {\n if (mode === \"messages\") return \"messages-tuple\";\n return mode;\n });\n\n let command;\n let serializedInput;\n if (isCommand(input)) {\n // TODO: Remove cast when SDK type fix gets merged\n command = input.toJSON() as Record<string, unknown>;\n serializedInput = undefined;\n } else {\n serializedInput = _serializeInputs(input);\n }\n\n for await (const chunk of this.client.runs.stream(\n sanitizedConfig.configurable.thread_id as string,\n this.graphId,\n {\n command,\n input: serializedInput,\n config: sanitizedConfig,\n streamMode: extendedStreamModes,\n interruptBefore: interruptBefore as string[],\n interruptAfter: interruptAfter as string[],\n streamSubgraphs,\n ifNotExists: \"create\",\n signal: mergedConfig.signal,\n }\n )) {\n let mode;\n let namespace: string[];\n if (chunk.event.includes(CHECKPOINT_NAMESPACE_SEPARATOR)) {\n const eventComponents = chunk.event.split(\n CHECKPOINT_NAMESPACE_SEPARATOR\n );\n // eslint-disable-next-line prefer-destructuring\n mode = eventComponents[0];\n namespace = eventComponents.slice(1);\n } else {\n mode = chunk.event;\n namespace = [];\n }\n const callerNamespace = options?.configurable?.checkpoint_ns;\n if (typeof callerNamespace === \"string\") {\n namespace = callerNamespace\n .split(CHECKPOINT_NAMESPACE_SEPARATOR)\n .concat(namespace);\n }\n if (\n streamProtocolInstance !== undefined &&\n streamProtocolInstance.modes?.has(chunk.event)\n ) {\n streamProtocolInstance.push([namespace, mode, chunk.data]);\n }\n if (chunk.event.startsWith(\"updates\")) {\n if (\n typeof chunk.data === \"object\" &&\n chunk.data?.[INTERRUPT] !== undefined\n ) {\n throw new GraphInterrupt(chunk.data[INTERRUPT]);\n }\n if (!reqUpdates) {\n continue;\n }\n } else if (chunk.event?.startsWith(\"error\")) {\n throw new RemoteException(\n typeof chunk.data === \"string\"\n ? chunk.data\n : JSON.stringify(chunk.data)\n );\n }\n if (\n !updatedStreamModes.includes(\n chunk.event.split(CHECKPOINT_NAMESPACE_SEPARATOR)[0] as StreamMode\n )\n ) {\n continue;\n }\n if (options?.subgraphs) {\n if (reqSingle) {\n yield [namespace, chunk.data];\n } else {\n yield [namespace, mode, chunk.data];\n }\n } else if (reqSingle) {\n yield chunk.data;\n } else {\n yield [mode, chunk.data];\n }\n }\n }\n\n async updateState(\n inputConfig: LangGraphRunnableConfig,\n values: Record<string, unknown>,\n asNode?: string\n ): Promise<RunnableConfig> {\n const mergedConfig = mergeConfigs(this.config, inputConfig);\n const response = await this.client.threads.updateState(\n mergedConfig.configurable?.thread_id,\n { values, asNode, checkpoint: this._getCheckpoint(mergedConfig) }\n );\n // TODO: Fix SDK typing\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this._getConfig((response as any).checkpoint);\n }\n\n async *getStateHistory(\n config: RunnableConfig,\n options?: CheckpointListOptions\n ): AsyncIterableIterator<StateSnapshot> {\n const mergedConfig = mergeConfigs(this.config, config);\n const states = await this.client.threads.getHistory(\n mergedConfig.configurable?.thread_id,\n {\n limit: options?.limit ?? 10,\n // TODO: Fix type\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n before: this._getCheckpoint(options?.before) as any,\n metadata: options?.filter,\n checkpoint: this._getCheckpoint(mergedConfig),\n }\n );\n for (const state of states) {\n yield this._createStateSnapshot(state);\n }\n }\n\n protected _getDrawableNodes(\n nodes: Array<{\n id: string | number;\n name?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data?: Record<string, any> | string;\n metadata?: unknown;\n }>\n ): Record<string, DrawableNode> {\n const nodesMap: Record<string, DrawableNode> = {};\n for (const node of nodes) {\n const nodeId = node.id;\n nodesMap[nodeId] = {\n id: nodeId.toString(),\n name: typeof node.data === \"string\" ? node.data : node.data?.name ?? \"\",\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: (node.data as any) ?? {},\n metadata:\n typeof node.data !== \"string\" ? node.data?.metadata ?? {} : {},\n };\n }\n return nodesMap;\n }\n\n async getState(\n config: RunnableConfig,\n options?: { subgraphs?: boolean }\n ): Promise<StateSnapshot> {\n const mergedConfig = mergeConfigs(this.config, config);\n\n const state = await this.client.threads.getState(\n mergedConfig.configurable?.thread_id,\n this._getCheckpoint(mergedConfig),\n options\n );\n return this._createStateSnapshot(state);\n }\n\n /** @deprecated Use getGraphAsync instead. The async method will become the default in the next minor release. */\n override getGraph(\n _?: RunnableConfig & { xray?: boolean | number }\n ): DrawableGraph {\n throw new Error(\n `The synchronous \"getGraph\" is not supported for this graph. Call \"getGraphAsync\" instead.`\n );\n }\n\n /**\n * Returns a drawable representation of the computation graph.\n */\n async getGraphAsync(config?: RunnableConfig & { xray?: boolean | number }) {\n const graph = await this.client.assistants.getGraph(this.graphId, {\n xray: config?.xray,\n });\n return new DrawableGraph({\n nodes: this._getDrawableNodes(graph.nodes),\n edges: graph.edges,\n });\n }\n\n /** @deprecated Use getSubgraphsAsync instead. The async method will become the default in the next minor release. */\n getSubgraphs(): Generator<[string, PregelInterface<Nn, Cc, ContextType>]> {\n throw new Error(\n `The synchronous \"getSubgraphs\" method is not supported for this graph. Call \"getSubgraphsAsync\" instead.`\n );\n }\n\n async *getSubgraphsAsync(\n namespace?: string,\n recurse = false\n ): AsyncGenerator<[string, PregelInterface<Nn, Cc, ContextType>]> {\n const subgraphs = await this.client.assistants.getSubgraphs(this.graphId, {\n namespace,\n recurse,\n });\n\n for (const [ns, graphSchema] of Object.entries(subgraphs)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const remoteSubgraph = new (this.constructor as any)({\n ...this,\n graphId: graphSchema.graph_id,\n });\n yield [ns, remoteSubgraph];\n }\n }\n}\n"],"mappings":"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"}
|
package/dist/pregel/retry.cjs
CHANGED
|
@@ -1,143 +1,92 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
exports.DEFAULT_MAX_INTERVAL = 128000;
|
|
12
|
-
exports.DEFAULT_MAX_RETRIES = 3;
|
|
1
|
+
const require_errors = require('../errors.cjs');
|
|
2
|
+
const require_constants = require('../constants.cjs');
|
|
3
|
+
const require_config = require('./utils/config.cjs');
|
|
4
|
+
const require_index = require('./utils/index.cjs');
|
|
5
|
+
|
|
6
|
+
//#region src/pregel/retry.ts
|
|
7
|
+
const DEFAULT_INITIAL_INTERVAL = 500;
|
|
8
|
+
const DEFAULT_BACKOFF_FACTOR = 2;
|
|
9
|
+
const DEFAULT_MAX_INTERVAL = 128e3;
|
|
10
|
+
const DEFAULT_MAX_RETRIES = 3;
|
|
13
11
|
const DEFAULT_STATUS_NO_RETRY = [
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
400,
|
|
13
|
+
401,
|
|
14
|
+
402,
|
|
15
|
+
403,
|
|
16
|
+
404,
|
|
17
|
+
405,
|
|
18
|
+
406,
|
|
19
|
+
407,
|
|
20
|
+
409
|
|
23
21
|
];
|
|
24
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
22
|
const DEFAULT_RETRY_ON_HANDLER = (error) => {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
|
-
if (error?.code === "ECONNABORTED") {
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
const status =
|
|
40
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
-
error?.response?.status ?? error?.status;
|
|
42
|
-
if (status && DEFAULT_STATUS_NO_RETRY.includes(+status)) {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
|
-
if (error?.error?.code === "insufficient_quota") {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
return true;
|
|
23
|
+
if (error.message.startsWith("Cancel") || error.message.startsWith("AbortError") || error.name === "AbortError") return false;
|
|
24
|
+
if (error.name === "GraphValueError") return false;
|
|
25
|
+
if (error?.code === "ECONNABORTED") return false;
|
|
26
|
+
const status = error?.response?.status ?? error?.status;
|
|
27
|
+
if (status && DEFAULT_STATUS_NO_RETRY.includes(+status)) return false;
|
|
28
|
+
if (error?.error?.code === "insufficient_quota") return false;
|
|
29
|
+
return true;
|
|
50
30
|
};
|
|
51
|
-
async function _runWithRetry(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
attempts += 1;
|
|
109
|
-
// check if we should give up
|
|
110
|
-
if (attempts >= (resolvedRetryPolicy.maxAttempts ?? exports.DEFAULT_MAX_RETRIES)) {
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
const retryOn = resolvedRetryPolicy.retryOn ?? DEFAULT_RETRY_ON_HANDLER;
|
|
114
|
-
if (!retryOn(error)) {
|
|
115
|
-
break;
|
|
116
|
-
}
|
|
117
|
-
interval = Math.min(resolvedRetryPolicy.maxInterval ?? exports.DEFAULT_MAX_INTERVAL, interval * (resolvedRetryPolicy.backoffFactor ?? exports.DEFAULT_BACKOFF_FACTOR));
|
|
118
|
-
const intervalWithJitter = resolvedRetryPolicy.jitter
|
|
119
|
-
? Math.floor(interval + Math.random() * 1000)
|
|
120
|
-
: interval;
|
|
121
|
-
// sleep before retrying
|
|
122
|
-
// eslint-disable-next-line no-promise-executor-return
|
|
123
|
-
await new Promise((resolve) => setTimeout(resolve, intervalWithJitter));
|
|
124
|
-
// log the retry
|
|
125
|
-
const errorName = error.name ??
|
|
126
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
127
|
-
error.constructor.unminifiable_name ??
|
|
128
|
-
error.constructor.name;
|
|
129
|
-
if (resolvedRetryPolicy?.logWarning ?? true) {
|
|
130
|
-
console.log(`Retrying task "${String(pregelTask.name)}" after ${interval.toFixed(2)}ms (attempt ${attempts}) after ${errorName}: ${error}`);
|
|
131
|
-
}
|
|
132
|
-
// signal subgraphs to resume (if available)
|
|
133
|
-
config = (0, index_js_1.patchConfigurable)(config, { [constants_js_1.CONFIG_KEY_RESUMING]: true });
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
return {
|
|
137
|
-
task: pregelTask,
|
|
138
|
-
result,
|
|
139
|
-
error: error,
|
|
140
|
-
signalAborted: signal?.aborted,
|
|
141
|
-
};
|
|
31
|
+
async function _runWithRetry(pregelTask, retryPolicy, configurable, signal) {
|
|
32
|
+
const resolvedRetryPolicy = pregelTask.retry_policy ?? retryPolicy;
|
|
33
|
+
let interval = resolvedRetryPolicy !== void 0 ? resolvedRetryPolicy.initialInterval ?? DEFAULT_INITIAL_INTERVAL : 0;
|
|
34
|
+
let attempts = 0;
|
|
35
|
+
let error;
|
|
36
|
+
let result;
|
|
37
|
+
let { config } = pregelTask;
|
|
38
|
+
if (configurable) config = require_index.patchConfigurable(config, configurable);
|
|
39
|
+
config = {
|
|
40
|
+
...config,
|
|
41
|
+
signal
|
|
42
|
+
};
|
|
43
|
+
while (true) {
|
|
44
|
+
if (signal?.aborted) break;
|
|
45
|
+
pregelTask.writes.splice(0, pregelTask.writes.length);
|
|
46
|
+
error = void 0;
|
|
47
|
+
try {
|
|
48
|
+
result = await pregelTask.proc.invoke(pregelTask.input, config);
|
|
49
|
+
break;
|
|
50
|
+
} catch (e) {
|
|
51
|
+
error = e;
|
|
52
|
+
error.pregelTaskId = pregelTask.id;
|
|
53
|
+
if (require_errors.isParentCommand(error)) {
|
|
54
|
+
const ns = config?.configurable?.checkpoint_ns;
|
|
55
|
+
const cmd = error.command;
|
|
56
|
+
if (cmd.graph === ns) {
|
|
57
|
+
for (const writer of pregelTask.writers) await writer.invoke(cmd, config);
|
|
58
|
+
error = void 0;
|
|
59
|
+
break;
|
|
60
|
+
} else if (cmd.graph === require_constants.Command.PARENT) {
|
|
61
|
+
const parentNs = require_config.getParentCheckpointNamespace(ns);
|
|
62
|
+
error.command = new require_constants.Command({
|
|
63
|
+
...error.command,
|
|
64
|
+
graph: parentNs
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (require_errors.isGraphBubbleUp(error)) break;
|
|
69
|
+
if (resolvedRetryPolicy === void 0) break;
|
|
70
|
+
attempts += 1;
|
|
71
|
+
if (attempts >= (resolvedRetryPolicy.maxAttempts ?? DEFAULT_MAX_RETRIES)) break;
|
|
72
|
+
const retryOn = resolvedRetryPolicy.retryOn ?? DEFAULT_RETRY_ON_HANDLER;
|
|
73
|
+
if (!retryOn(error)) break;
|
|
74
|
+
interval = Math.min(resolvedRetryPolicy.maxInterval ?? DEFAULT_MAX_INTERVAL, interval * (resolvedRetryPolicy.backoffFactor ?? DEFAULT_BACKOFF_FACTOR));
|
|
75
|
+
const intervalWithJitter = resolvedRetryPolicy.jitter ? Math.floor(interval + Math.random() * 1e3) : interval;
|
|
76
|
+
await new Promise((resolve) => setTimeout(resolve, intervalWithJitter));
|
|
77
|
+
const errorName = error.name ?? error.constructor.unminifiable_name ?? error.constructor.name;
|
|
78
|
+
if (resolvedRetryPolicy?.logWarning ?? true) console.log(`Retrying task "${String(pregelTask.name)}" after ${interval.toFixed(2)}ms (attempt ${attempts}) after ${errorName}: ${error}`);
|
|
79
|
+
config = require_index.patchConfigurable(config, { [require_constants.CONFIG_KEY_RESUMING]: true });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
task: pregelTask,
|
|
84
|
+
result,
|
|
85
|
+
error,
|
|
86
|
+
signalAborted: signal?.aborted
|
|
87
|
+
};
|
|
142
88
|
}
|
|
143
|
-
|
|
89
|
+
|
|
90
|
+
//#endregion
|
|
91
|
+
exports._runWithRetry = _runWithRetry;
|
|
92
|
+
//# sourceMappingURL=retry.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.cjs","names":["patchConfigurable","e: unknown","isParentCommand","ns: string","Command","getParentCheckpointNamespace","isGraphBubbleUp","CONFIG_KEY_RESUMING"],"sources":["../../src/pregel/retry.ts"],"sourcesContent":["import { Command, CONFIG_KEY_RESUMING } from \"../constants.js\";\nimport { isGraphBubbleUp, isParentCommand } from \"../errors.js\";\nimport { PregelExecutableTask } from \"./types.js\";\nimport { getParentCheckpointNamespace } from \"./utils/config.js\";\nimport { patchConfigurable, type RetryPolicy } from \"./utils/index.js\";\n\nexport const DEFAULT_INITIAL_INTERVAL = 500;\nexport const DEFAULT_BACKOFF_FACTOR = 2;\nexport const DEFAULT_MAX_INTERVAL = 128000;\nexport const DEFAULT_MAX_RETRIES = 3;\n\nconst DEFAULT_STATUS_NO_RETRY = [\n 400, // Bad Request\n 401, // Unauthorized\n 402, // Payment Required\n 403, // Forbidden\n 404, // Not Found\n 405, // Method Not Allowed\n 406, // Not Acceptable\n 407, // Proxy Authentication Required\n 409, // Conflict\n];\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst DEFAULT_RETRY_ON_HANDLER = (error: any) => {\n if (\n error.message.startsWith(\"Cancel\") ||\n error.message.startsWith(\"AbortError\") ||\n error.name === \"AbortError\"\n ) {\n return false;\n }\n\n // Thrown when interrupt is called without a checkpointer\n if (error.name === \"GraphValueError\") {\n return false;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((error as any)?.code === \"ECONNABORTED\") {\n return false;\n }\n\n const status =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (error as any)?.response?.status ?? (error as any)?.status;\n if (status && DEFAULT_STATUS_NO_RETRY.includes(+status)) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((error as any)?.error?.code === \"insufficient_quota\") {\n return false;\n }\n return true;\n};\n\nexport type SettledPregelTask = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n task: PregelExecutableTask<any, any>;\n error: Error;\n signalAborted?: boolean;\n};\n\nexport async function _runWithRetry<\n N extends PropertyKey,\n C extends PropertyKey\n>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n pregelTask: PregelExecutableTask<N, C>,\n retryPolicy?: RetryPolicy,\n configurable?: Record<string, unknown>,\n signal?: AbortSignal\n): Promise<{\n task: PregelExecutableTask<N, C>;\n result: unknown;\n error: Error | undefined;\n signalAborted?: boolean;\n}> {\n const resolvedRetryPolicy = pregelTask.retry_policy ?? retryPolicy;\n let interval =\n resolvedRetryPolicy !== undefined\n ? resolvedRetryPolicy.initialInterval ?? DEFAULT_INITIAL_INTERVAL\n : 0;\n let attempts = 0;\n let error;\n let result;\n\n let { config } = pregelTask;\n if (configurable) config = patchConfigurable(config, configurable);\n config = { ...config, signal };\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (signal?.aborted) {\n // no need to throw here - we'll throw from the runner, instead.\n // there's just no point in retrying if the user has requested an abort.\n break;\n }\n // Clear any writes from previous attempts\n pregelTask.writes.splice(0, pregelTask.writes.length);\n error = undefined;\n try {\n result = await pregelTask.proc.invoke(pregelTask.input, config);\n break;\n } catch (e: unknown) {\n error = e;\n (error as { pregelTaskId: string }).pregelTaskId = pregelTask.id;\n if (isParentCommand(error)) {\n const ns: string = config?.configurable?.checkpoint_ns;\n const cmd = error.command;\n if (cmd.graph === ns) {\n // this command is for the current graph, handle it\n for (const writer of pregelTask.writers) {\n await writer.invoke(cmd, config);\n }\n error = undefined;\n break;\n } else if (cmd.graph === Command.PARENT) {\n // this command is for the parent graph, assign it to the parent\n const parentNs = getParentCheckpointNamespace(ns);\n error.command = new Command({\n ...error.command,\n graph: parentNs,\n });\n }\n }\n if (isGraphBubbleUp(error)) {\n break;\n }\n if (resolvedRetryPolicy === undefined) {\n break;\n }\n attempts += 1;\n // check if we should give up\n if (\n attempts >= (resolvedRetryPolicy.maxAttempts ?? DEFAULT_MAX_RETRIES)\n ) {\n break;\n }\n const retryOn = resolvedRetryPolicy.retryOn ?? DEFAULT_RETRY_ON_HANDLER;\n if (!retryOn(error)) {\n break;\n }\n interval = Math.min(\n resolvedRetryPolicy.maxInterval ?? DEFAULT_MAX_INTERVAL,\n interval * (resolvedRetryPolicy.backoffFactor ?? DEFAULT_BACKOFF_FACTOR)\n );\n const intervalWithJitter = resolvedRetryPolicy.jitter\n ? Math.floor(interval + Math.random() * 1000)\n : interval;\n // sleep before retrying\n // eslint-disable-next-line no-promise-executor-return\n await new Promise((resolve) => setTimeout(resolve, intervalWithJitter));\n // log the retry\n const errorName =\n (error as Error).name ??\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ((error as Error).constructor as any).unminifiable_name ??\n (error as Error).constructor.name;\n if (resolvedRetryPolicy?.logWarning ?? true) {\n console.log(\n `Retrying task \"${String(pregelTask.name)}\" after ${interval.toFixed(\n 2\n )}ms (attempt ${attempts}) after ${errorName}: ${error}`\n );\n }\n\n // signal subgraphs to resume (if available)\n config = patchConfigurable(config, { [CONFIG_KEY_RESUMING]: true });\n }\n }\n return {\n task: pregelTask,\n result,\n error: error as Error | undefined,\n signalAborted: signal?.aborted,\n };\n}\n"],"mappings":";;;;;;AAMA,MAAa,2BAA2B;AACxC,MAAa,yBAAyB;AACtC,MAAa,uBAAuB;AACpC,MAAa,sBAAsB;AAEnC,MAAM,0BAA0B;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;AAIF,MAAM,4BAA4B,UAAe;AAC/C,KACE,MAAM,QAAQ,WAAW,aACzB,MAAM,QAAQ,WAAW,iBACzB,MAAM,SAAS,aAEf,QAAO;AAIT,KAAI,MAAM,SAAS,kBACjB,QAAO;AAIT,KAAK,OAAe,SAAS,eAC3B,QAAO;CAGT,MAAM,SAEH,OAAe,UAAU,UAAW,OAAe;AACtD,KAAI,UAAU,wBAAwB,SAAS,CAAC,QAC9C,QAAO;AAGT,KAAK,OAAe,OAAO,SAAS,qBAClC,QAAO;AAET,QAAO;;AAUT,eAAsB,cAKpB,YACA,aACA,cACA,QAMC;CACD,MAAM,sBAAsB,WAAW,gBAAgB;CACvD,IAAI,WACF,wBAAwB,SACpB,oBAAoB,mBAAmB,2BACvC;CACN,IAAI,WAAW;CACf,IAAI;CACJ,IAAI;CAEJ,IAAI,EAAE,WAAW;AACjB,KAAI,aAAc,UAASA,gCAAkB,QAAQ;AACrD,UAAS;EAAE,GAAG;EAAQ;;AAGtB,QAAO,MAAM;AACX,MAAI,QAAQ,QAGV;AAGF,aAAW,OAAO,OAAO,GAAG,WAAW,OAAO;AAC9C,UAAQ;AACR,MAAI;AACF,YAAS,MAAM,WAAW,KAAK,OAAO,WAAW,OAAO;AACxD;WACOC,GAAY;AACnB,WAAQ;AACR,GAAC,MAAmC,eAAe,WAAW;AAC9D,OAAIC,+BAAgB,QAAQ;IAC1B,MAAMC,KAAa,QAAQ,cAAc;IACzC,MAAM,MAAM,MAAM;AAClB,QAAI,IAAI,UAAU,IAAI;AAEpB,UAAK,MAAM,UAAU,WAAW,QAC9B,OAAM,OAAO,OAAO,KAAK;AAE3B,aAAQ;AACR;eACS,IAAI,UAAUC,0BAAQ,QAAQ;KAEvC,MAAM,WAAWC,4CAA6B;AAC9C,WAAM,UAAU,IAAID,0BAAQ;MAC1B,GAAG,MAAM;MACT,OAAO;;;;AAIb,OAAIE,+BAAgB,OAClB;AAEF,OAAI,wBAAwB,OAC1B;AAEF,eAAY;AAEZ,OACE,aAAa,oBAAoB,eAAe,qBAEhD;GAEF,MAAM,UAAU,oBAAoB,WAAW;AAC/C,OAAI,CAAC,QAAQ,OACX;AAEF,cAAW,KAAK,IACd,oBAAoB,eAAe,sBACnC,YAAY,oBAAoB,iBAAiB;GAEnD,MAAM,qBAAqB,oBAAoB,SAC3C,KAAK,MAAM,WAAW,KAAK,WAAW,OACtC;AAGJ,SAAM,IAAI,SAAS,YAAY,WAAW,SAAS;GAEnD,MAAM,YACH,MAAgB,QAEf,MAAgB,YAAoB,qBACrC,MAAgB,YAAY;AAC/B,OAAI,qBAAqB,cAAc,KACrC,SAAQ,IACN,kBAAkB,OAAO,WAAW,MAAM,UAAU,SAAS,QAC3D,GACA,cAAc,SAAS,UAAU,UAAU,IAAI;AAKrD,YAASN,gCAAkB,QAAQ,GAAGO,wCAAsB;;;AAGhE,QAAO;EACL,MAAM;EACN;EACO;EACP,eAAe,QAAQ"}
|
package/dist/pregel/retry.js
CHANGED
|
@@ -1,139 +1,92 @@
|
|
|
1
|
-
import { Command, CONFIG_KEY_RESUMING } from "../constants.js";
|
|
2
1
|
import { isGraphBubbleUp, isParentCommand } from "../errors.js";
|
|
2
|
+
import { CONFIG_KEY_RESUMING, Command } from "../constants.js";
|
|
3
3
|
import { getParentCheckpointNamespace } from "./utils/config.js";
|
|
4
4
|
import { patchConfigurable } from "./utils/index.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
|
|
6
|
+
//#region src/pregel/retry.ts
|
|
7
|
+
const DEFAULT_INITIAL_INTERVAL = 500;
|
|
8
|
+
const DEFAULT_BACKOFF_FACTOR = 2;
|
|
9
|
+
const DEFAULT_MAX_INTERVAL = 128e3;
|
|
10
|
+
const DEFAULT_MAX_RETRIES = 3;
|
|
9
11
|
const DEFAULT_STATUS_NO_RETRY = [
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
400,
|
|
13
|
+
401,
|
|
14
|
+
402,
|
|
15
|
+
403,
|
|
16
|
+
404,
|
|
17
|
+
405,
|
|
18
|
+
406,
|
|
19
|
+
407,
|
|
20
|
+
409
|
|
19
21
|
];
|
|
20
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
22
|
const DEFAULT_RETRY_ON_HANDLER = (error) => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
|
-
if (error?.code === "ECONNABORTED") {
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
const status =
|
|
36
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
37
|
-
error?.response?.status ?? error?.status;
|
|
38
|
-
if (status && DEFAULT_STATUS_NO_RETRY.includes(+status)) {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
42
|
-
if (error?.error?.code === "insufficient_quota") {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
return true;
|
|
23
|
+
if (error.message.startsWith("Cancel") || error.message.startsWith("AbortError") || error.name === "AbortError") return false;
|
|
24
|
+
if (error.name === "GraphValueError") return false;
|
|
25
|
+
if (error?.code === "ECONNABORTED") return false;
|
|
26
|
+
const status = error?.response?.status ?? error?.status;
|
|
27
|
+
if (status && DEFAULT_STATUS_NO_RETRY.includes(+status)) return false;
|
|
28
|
+
if (error?.error?.code === "insufficient_quota") return false;
|
|
29
|
+
return true;
|
|
46
30
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
attempts += 1;
|
|
105
|
-
// check if we should give up
|
|
106
|
-
if (attempts >= (resolvedRetryPolicy.maxAttempts ?? DEFAULT_MAX_RETRIES)) {
|
|
107
|
-
break;
|
|
108
|
-
}
|
|
109
|
-
const retryOn = resolvedRetryPolicy.retryOn ?? DEFAULT_RETRY_ON_HANDLER;
|
|
110
|
-
if (!retryOn(error)) {
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
interval = Math.min(resolvedRetryPolicy.maxInterval ?? DEFAULT_MAX_INTERVAL, interval * (resolvedRetryPolicy.backoffFactor ?? DEFAULT_BACKOFF_FACTOR));
|
|
114
|
-
const intervalWithJitter = resolvedRetryPolicy.jitter
|
|
115
|
-
? Math.floor(interval + Math.random() * 1000)
|
|
116
|
-
: interval;
|
|
117
|
-
// sleep before retrying
|
|
118
|
-
// eslint-disable-next-line no-promise-executor-return
|
|
119
|
-
await new Promise((resolve) => setTimeout(resolve, intervalWithJitter));
|
|
120
|
-
// log the retry
|
|
121
|
-
const errorName = error.name ??
|
|
122
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
123
|
-
error.constructor.unminifiable_name ??
|
|
124
|
-
error.constructor.name;
|
|
125
|
-
if (resolvedRetryPolicy?.logWarning ?? true) {
|
|
126
|
-
console.log(`Retrying task "${String(pregelTask.name)}" after ${interval.toFixed(2)}ms (attempt ${attempts}) after ${errorName}: ${error}`);
|
|
127
|
-
}
|
|
128
|
-
// signal subgraphs to resume (if available)
|
|
129
|
-
config = patchConfigurable(config, { [CONFIG_KEY_RESUMING]: true });
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
return {
|
|
133
|
-
task: pregelTask,
|
|
134
|
-
result,
|
|
135
|
-
error: error,
|
|
136
|
-
signalAborted: signal?.aborted,
|
|
137
|
-
};
|
|
31
|
+
async function _runWithRetry(pregelTask, retryPolicy, configurable, signal) {
|
|
32
|
+
const resolvedRetryPolicy = pregelTask.retry_policy ?? retryPolicy;
|
|
33
|
+
let interval = resolvedRetryPolicy !== void 0 ? resolvedRetryPolicy.initialInterval ?? DEFAULT_INITIAL_INTERVAL : 0;
|
|
34
|
+
let attempts = 0;
|
|
35
|
+
let error;
|
|
36
|
+
let result;
|
|
37
|
+
let { config } = pregelTask;
|
|
38
|
+
if (configurable) config = patchConfigurable(config, configurable);
|
|
39
|
+
config = {
|
|
40
|
+
...config,
|
|
41
|
+
signal
|
|
42
|
+
};
|
|
43
|
+
while (true) {
|
|
44
|
+
if (signal?.aborted) break;
|
|
45
|
+
pregelTask.writes.splice(0, pregelTask.writes.length);
|
|
46
|
+
error = void 0;
|
|
47
|
+
try {
|
|
48
|
+
result = await pregelTask.proc.invoke(pregelTask.input, config);
|
|
49
|
+
break;
|
|
50
|
+
} catch (e) {
|
|
51
|
+
error = e;
|
|
52
|
+
error.pregelTaskId = pregelTask.id;
|
|
53
|
+
if (isParentCommand(error)) {
|
|
54
|
+
const ns = config?.configurable?.checkpoint_ns;
|
|
55
|
+
const cmd = error.command;
|
|
56
|
+
if (cmd.graph === ns) {
|
|
57
|
+
for (const writer of pregelTask.writers) await writer.invoke(cmd, config);
|
|
58
|
+
error = void 0;
|
|
59
|
+
break;
|
|
60
|
+
} else if (cmd.graph === Command.PARENT) {
|
|
61
|
+
const parentNs = getParentCheckpointNamespace(ns);
|
|
62
|
+
error.command = new Command({
|
|
63
|
+
...error.command,
|
|
64
|
+
graph: parentNs
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (isGraphBubbleUp(error)) break;
|
|
69
|
+
if (resolvedRetryPolicy === void 0) break;
|
|
70
|
+
attempts += 1;
|
|
71
|
+
if (attempts >= (resolvedRetryPolicy.maxAttempts ?? DEFAULT_MAX_RETRIES)) break;
|
|
72
|
+
const retryOn = resolvedRetryPolicy.retryOn ?? DEFAULT_RETRY_ON_HANDLER;
|
|
73
|
+
if (!retryOn(error)) break;
|
|
74
|
+
interval = Math.min(resolvedRetryPolicy.maxInterval ?? DEFAULT_MAX_INTERVAL, interval * (resolvedRetryPolicy.backoffFactor ?? DEFAULT_BACKOFF_FACTOR));
|
|
75
|
+
const intervalWithJitter = resolvedRetryPolicy.jitter ? Math.floor(interval + Math.random() * 1e3) : interval;
|
|
76
|
+
await new Promise((resolve) => setTimeout(resolve, intervalWithJitter));
|
|
77
|
+
const errorName = error.name ?? error.constructor.unminifiable_name ?? error.constructor.name;
|
|
78
|
+
if (resolvedRetryPolicy?.logWarning ?? true) console.log(`Retrying task "${String(pregelTask.name)}" after ${interval.toFixed(2)}ms (attempt ${attempts}) after ${errorName}: ${error}`);
|
|
79
|
+
config = patchConfigurable(config, { [CONFIG_KEY_RESUMING]: true });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
task: pregelTask,
|
|
84
|
+
result,
|
|
85
|
+
error,
|
|
86
|
+
signalAborted: signal?.aborted
|
|
87
|
+
};
|
|
138
88
|
}
|
|
89
|
+
|
|
90
|
+
//#endregion
|
|
91
|
+
export { _runWithRetry };
|
|
139
92
|
//# sourceMappingURL=retry.js.map
|
package/dist/pregel/retry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","
|
|
1
|
+
{"version":3,"file":"retry.js","names":["e: unknown","ns: string"],"sources":["../../src/pregel/retry.ts"],"sourcesContent":["import { Command, CONFIG_KEY_RESUMING } from \"../constants.js\";\nimport { isGraphBubbleUp, isParentCommand } from \"../errors.js\";\nimport { PregelExecutableTask } from \"./types.js\";\nimport { getParentCheckpointNamespace } from \"./utils/config.js\";\nimport { patchConfigurable, type RetryPolicy } from \"./utils/index.js\";\n\nexport const DEFAULT_INITIAL_INTERVAL = 500;\nexport const DEFAULT_BACKOFF_FACTOR = 2;\nexport const DEFAULT_MAX_INTERVAL = 128000;\nexport const DEFAULT_MAX_RETRIES = 3;\n\nconst DEFAULT_STATUS_NO_RETRY = [\n 400, // Bad Request\n 401, // Unauthorized\n 402, // Payment Required\n 403, // Forbidden\n 404, // Not Found\n 405, // Method Not Allowed\n 406, // Not Acceptable\n 407, // Proxy Authentication Required\n 409, // Conflict\n];\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst DEFAULT_RETRY_ON_HANDLER = (error: any) => {\n if (\n error.message.startsWith(\"Cancel\") ||\n error.message.startsWith(\"AbortError\") ||\n error.name === \"AbortError\"\n ) {\n return false;\n }\n\n // Thrown when interrupt is called without a checkpointer\n if (error.name === \"GraphValueError\") {\n return false;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((error as any)?.code === \"ECONNABORTED\") {\n return false;\n }\n\n const status =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (error as any)?.response?.status ?? (error as any)?.status;\n if (status && DEFAULT_STATUS_NO_RETRY.includes(+status)) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((error as any)?.error?.code === \"insufficient_quota\") {\n return false;\n }\n return true;\n};\n\nexport type SettledPregelTask = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n task: PregelExecutableTask<any, any>;\n error: Error;\n signalAborted?: boolean;\n};\n\nexport async function _runWithRetry<\n N extends PropertyKey,\n C extends PropertyKey\n>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n pregelTask: PregelExecutableTask<N, C>,\n retryPolicy?: RetryPolicy,\n configurable?: Record<string, unknown>,\n signal?: AbortSignal\n): Promise<{\n task: PregelExecutableTask<N, C>;\n result: unknown;\n error: Error | undefined;\n signalAborted?: boolean;\n}> {\n const resolvedRetryPolicy = pregelTask.retry_policy ?? retryPolicy;\n let interval =\n resolvedRetryPolicy !== undefined\n ? resolvedRetryPolicy.initialInterval ?? DEFAULT_INITIAL_INTERVAL\n : 0;\n let attempts = 0;\n let error;\n let result;\n\n let { config } = pregelTask;\n if (configurable) config = patchConfigurable(config, configurable);\n config = { ...config, signal };\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (signal?.aborted) {\n // no need to throw here - we'll throw from the runner, instead.\n // there's just no point in retrying if the user has requested an abort.\n break;\n }\n // Clear any writes from previous attempts\n pregelTask.writes.splice(0, pregelTask.writes.length);\n error = undefined;\n try {\n result = await pregelTask.proc.invoke(pregelTask.input, config);\n break;\n } catch (e: unknown) {\n error = e;\n (error as { pregelTaskId: string }).pregelTaskId = pregelTask.id;\n if (isParentCommand(error)) {\n const ns: string = config?.configurable?.checkpoint_ns;\n const cmd = error.command;\n if (cmd.graph === ns) {\n // this command is for the current graph, handle it\n for (const writer of pregelTask.writers) {\n await writer.invoke(cmd, config);\n }\n error = undefined;\n break;\n } else if (cmd.graph === Command.PARENT) {\n // this command is for the parent graph, assign it to the parent\n const parentNs = getParentCheckpointNamespace(ns);\n error.command = new Command({\n ...error.command,\n graph: parentNs,\n });\n }\n }\n if (isGraphBubbleUp(error)) {\n break;\n }\n if (resolvedRetryPolicy === undefined) {\n break;\n }\n attempts += 1;\n // check if we should give up\n if (\n attempts >= (resolvedRetryPolicy.maxAttempts ?? DEFAULT_MAX_RETRIES)\n ) {\n break;\n }\n const retryOn = resolvedRetryPolicy.retryOn ?? DEFAULT_RETRY_ON_HANDLER;\n if (!retryOn(error)) {\n break;\n }\n interval = Math.min(\n resolvedRetryPolicy.maxInterval ?? DEFAULT_MAX_INTERVAL,\n interval * (resolvedRetryPolicy.backoffFactor ?? DEFAULT_BACKOFF_FACTOR)\n );\n const intervalWithJitter = resolvedRetryPolicy.jitter\n ? Math.floor(interval + Math.random() * 1000)\n : interval;\n // sleep before retrying\n // eslint-disable-next-line no-promise-executor-return\n await new Promise((resolve) => setTimeout(resolve, intervalWithJitter));\n // log the retry\n const errorName =\n (error as Error).name ??\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ((error as Error).constructor as any).unminifiable_name ??\n (error as Error).constructor.name;\n if (resolvedRetryPolicy?.logWarning ?? true) {\n console.log(\n `Retrying task \"${String(pregelTask.name)}\" after ${interval.toFixed(\n 2\n )}ms (attempt ${attempts}) after ${errorName}: ${error}`\n );\n }\n\n // signal subgraphs to resume (if available)\n config = patchConfigurable(config, { [CONFIG_KEY_RESUMING]: true });\n }\n }\n return {\n task: pregelTask,\n result,\n error: error as Error | undefined,\n signalAborted: signal?.aborted,\n };\n}\n"],"mappings":";;;;;;AAMA,MAAa,2BAA2B;AACxC,MAAa,yBAAyB;AACtC,MAAa,uBAAuB;AACpC,MAAa,sBAAsB;AAEnC,MAAM,0BAA0B;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;AAIF,MAAM,4BAA4B,UAAe;AAC/C,KACE,MAAM,QAAQ,WAAW,aACzB,MAAM,QAAQ,WAAW,iBACzB,MAAM,SAAS,aAEf,QAAO;AAIT,KAAI,MAAM,SAAS,kBACjB,QAAO;AAIT,KAAK,OAAe,SAAS,eAC3B,QAAO;CAGT,MAAM,SAEH,OAAe,UAAU,UAAW,OAAe;AACtD,KAAI,UAAU,wBAAwB,SAAS,CAAC,QAC9C,QAAO;AAGT,KAAK,OAAe,OAAO,SAAS,qBAClC,QAAO;AAET,QAAO;;AAUT,eAAsB,cAKpB,YACA,aACA,cACA,QAMC;CACD,MAAM,sBAAsB,WAAW,gBAAgB;CACvD,IAAI,WACF,wBAAwB,SACpB,oBAAoB,mBAAmB,2BACvC;CACN,IAAI,WAAW;CACf,IAAI;CACJ,IAAI;CAEJ,IAAI,EAAE,WAAW;AACjB,KAAI,aAAc,UAAS,kBAAkB,QAAQ;AACrD,UAAS;EAAE,GAAG;EAAQ;;AAGtB,QAAO,MAAM;AACX,MAAI,QAAQ,QAGV;AAGF,aAAW,OAAO,OAAO,GAAG,WAAW,OAAO;AAC9C,UAAQ;AACR,MAAI;AACF,YAAS,MAAM,WAAW,KAAK,OAAO,WAAW,OAAO;AACxD;WACOA,GAAY;AACnB,WAAQ;AACR,GAAC,MAAmC,eAAe,WAAW;AAC9D,OAAI,gBAAgB,QAAQ;IAC1B,MAAMC,KAAa,QAAQ,cAAc;IACzC,MAAM,MAAM,MAAM;AAClB,QAAI,IAAI,UAAU,IAAI;AAEpB,UAAK,MAAM,UAAU,WAAW,QAC9B,OAAM,OAAO,OAAO,KAAK;AAE3B,aAAQ;AACR;eACS,IAAI,UAAU,QAAQ,QAAQ;KAEvC,MAAM,WAAW,6BAA6B;AAC9C,WAAM,UAAU,IAAI,QAAQ;MAC1B,GAAG,MAAM;MACT,OAAO;;;;AAIb,OAAI,gBAAgB,OAClB;AAEF,OAAI,wBAAwB,OAC1B;AAEF,eAAY;AAEZ,OACE,aAAa,oBAAoB,eAAe,qBAEhD;GAEF,MAAM,UAAU,oBAAoB,WAAW;AAC/C,OAAI,CAAC,QAAQ,OACX;AAEF,cAAW,KAAK,IACd,oBAAoB,eAAe,sBACnC,YAAY,oBAAoB,iBAAiB;GAEnD,MAAM,qBAAqB,oBAAoB,SAC3C,KAAK,MAAM,WAAW,KAAK,WAAW,OACtC;AAGJ,SAAM,IAAI,SAAS,YAAY,WAAW,SAAS;GAEnD,MAAM,YACH,MAAgB,QAEf,MAAgB,YAAoB,qBACrC,MAAgB,YAAY;AAC/B,OAAI,qBAAqB,cAAc,KACrC,SAAQ,IACN,kBAAkB,OAAO,WAAW,MAAM,UAAU,SAAS,QAC3D,GACA,cAAc,SAAS,UAAU,UAAU,IAAI;AAKrD,YAAS,kBAAkB,QAAQ,GAAG,sBAAsB;;;AAGhE,QAAO;EACL,MAAM;EACN;EACO;EACP,eAAe,QAAQ"}
|