@langchain/langgraph 1.3.6 → 1.4.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.
Files changed (221) hide show
  1. package/dist/channels/base.cjs +78 -2
  2. package/dist/channels/base.cjs.map +1 -1
  3. package/dist/channels/base.d.cts +35 -2
  4. package/dist/channels/base.d.cts.map +1 -1
  5. package/dist/channels/base.d.ts +35 -2
  6. package/dist/channels/base.d.ts.map +1 -1
  7. package/dist/channels/base.js +77 -4
  8. package/dist/channels/base.js.map +1 -1
  9. package/dist/channels/delta.cjs +136 -0
  10. package/dist/channels/delta.cjs.map +1 -0
  11. package/dist/channels/delta.d.cts +99 -0
  12. package/dist/channels/delta.d.cts.map +1 -0
  13. package/dist/channels/delta.d.ts +99 -0
  14. package/dist/channels/delta.d.ts.map +1 -0
  15. package/dist/channels/delta.js +136 -0
  16. package/dist/channels/delta.js.map +1 -0
  17. package/dist/channels/index.cjs +5 -0
  18. package/dist/channels/index.d.cts +3 -2
  19. package/dist/channels/index.d.ts +3 -2
  20. package/dist/channels/index.js +3 -2
  21. package/dist/constants.cjs +62 -4
  22. package/dist/constants.cjs.map +1 -1
  23. package/dist/constants.d.cts +33 -2
  24. package/dist/constants.d.cts.map +1 -1
  25. package/dist/constants.d.ts +33 -2
  26. package/dist/constants.d.ts.map +1 -1
  27. package/dist/constants.js +59 -5
  28. package/dist/constants.js.map +1 -1
  29. package/dist/errors.cjs +128 -0
  30. package/dist/errors.cjs.map +1 -1
  31. package/dist/errors.d.cts +86 -1
  32. package/dist/errors.d.cts.map +1 -1
  33. package/dist/errors.d.ts +86 -1
  34. package/dist/errors.d.ts.map +1 -1
  35. package/dist/errors.js +123 -1
  36. package/dist/errors.js.map +1 -1
  37. package/dist/func/index.cjs +9 -2
  38. package/dist/func/index.cjs.map +1 -1
  39. package/dist/func/index.d.cts +14 -0
  40. package/dist/func/index.d.cts.map +1 -1
  41. package/dist/func/index.d.ts +14 -0
  42. package/dist/func/index.d.ts.map +1 -1
  43. package/dist/func/index.js +9 -2
  44. package/dist/func/index.js.map +1 -1
  45. package/dist/graph/graph.cjs +44 -7
  46. package/dist/graph/graph.cjs.map +1 -1
  47. package/dist/graph/graph.d.cts +24 -2
  48. package/dist/graph/graph.d.cts.map +1 -1
  49. package/dist/graph/graph.d.ts +24 -2
  50. package/dist/graph/graph.d.ts.map +1 -1
  51. package/dist/graph/graph.js +44 -7
  52. package/dist/graph/graph.js.map +1 -1
  53. package/dist/graph/index.d.ts +3 -3
  54. package/dist/graph/messages_reducer.cjs +55 -0
  55. package/dist/graph/messages_reducer.cjs.map +1 -1
  56. package/dist/graph/messages_reducer.d.cts +28 -1
  57. package/dist/graph/messages_reducer.d.cts.map +1 -1
  58. package/dist/graph/messages_reducer.d.ts +28 -1
  59. package/dist/graph/messages_reducer.d.ts.map +1 -1
  60. package/dist/graph/messages_reducer.js +56 -2
  61. package/dist/graph/messages_reducer.js.map +1 -1
  62. package/dist/graph/state.cjs +174 -7
  63. package/dist/graph/state.cjs.map +1 -1
  64. package/dist/graph/state.d.cts +193 -17
  65. package/dist/graph/state.d.cts.map +1 -1
  66. package/dist/graph/state.d.ts +193 -17
  67. package/dist/graph/state.d.ts.map +1 -1
  68. package/dist/graph/state.js +175 -8
  69. package/dist/graph/state.js.map +1 -1
  70. package/dist/graph/zod/schema.cjs +5 -0
  71. package/dist/graph/zod/schema.cjs.map +1 -1
  72. package/dist/graph/zod/schema.d.cts.map +1 -1
  73. package/dist/graph/zod/schema.d.ts.map +1 -1
  74. package/dist/graph/zod/schema.js +5 -0
  75. package/dist/graph/zod/schema.js.map +1 -1
  76. package/dist/index.cjs +11 -0
  77. package/dist/index.cjs.map +1 -1
  78. package/dist/index.d.cts +11 -8
  79. package/dist/index.d.ts +11 -8
  80. package/dist/index.js +5 -3
  81. package/dist/index.js.map +1 -1
  82. package/dist/prebuilt/react_agent_executor.d.cts +1 -1
  83. package/dist/pregel/algo.cjs +182 -21
  84. package/dist/pregel/algo.cjs.map +1 -1
  85. package/dist/pregel/algo.d.cts +1 -1
  86. package/dist/pregel/algo.d.cts.map +1 -1
  87. package/dist/pregel/algo.d.ts +1 -1
  88. package/dist/pregel/algo.d.ts.map +1 -1
  89. package/dist/pregel/algo.js +185 -25
  90. package/dist/pregel/algo.js.map +1 -1
  91. package/dist/pregel/call.cjs +2 -1
  92. package/dist/pregel/call.cjs.map +1 -1
  93. package/dist/pregel/call.js +2 -1
  94. package/dist/pregel/call.js.map +1 -1
  95. package/dist/pregel/index.cjs +15 -3
  96. package/dist/pregel/index.cjs.map +1 -1
  97. package/dist/pregel/index.d.cts.map +1 -1
  98. package/dist/pregel/index.d.ts.map +1 -1
  99. package/dist/pregel/index.js +17 -5
  100. package/dist/pregel/index.js.map +1 -1
  101. package/dist/pregel/loop.cjs +362 -41
  102. package/dist/pregel/loop.cjs.map +1 -1
  103. package/dist/pregel/loop.js +365 -44
  104. package/dist/pregel/loop.js.map +1 -1
  105. package/dist/pregel/messages-v2.cjs +1 -1
  106. package/dist/pregel/messages-v2.js +1 -1
  107. package/dist/pregel/messages.cjs +1 -1
  108. package/dist/pregel/messages.js +1 -1
  109. package/dist/pregel/read.cjs +15 -5
  110. package/dist/pregel/read.cjs.map +1 -1
  111. package/dist/pregel/read.d.cts +9 -0
  112. package/dist/pregel/read.d.cts.map +1 -1
  113. package/dist/pregel/read.d.ts +9 -0
  114. package/dist/pregel/read.d.ts.map +1 -1
  115. package/dist/pregel/read.js +15 -5
  116. package/dist/pregel/read.js.map +1 -1
  117. package/dist/pregel/remote-run-stream.cjs +107 -0
  118. package/dist/pregel/remote-run-stream.cjs.map +1 -0
  119. package/dist/pregel/remote-run-stream.d.cts +33 -0
  120. package/dist/pregel/remote-run-stream.d.cts.map +1 -0
  121. package/dist/pregel/remote-run-stream.d.ts +33 -0
  122. package/dist/pregel/remote-run-stream.d.ts.map +1 -0
  123. package/dist/pregel/remote-run-stream.js +107 -0
  124. package/dist/pregel/remote-run-stream.js.map +1 -0
  125. package/dist/pregel/remote.cjs +61 -1
  126. package/dist/pregel/remote.cjs.map +1 -1
  127. package/dist/pregel/remote.d.cts +17 -0
  128. package/dist/pregel/remote.d.cts.map +1 -1
  129. package/dist/pregel/remote.d.ts +17 -0
  130. package/dist/pregel/remote.d.ts.map +1 -1
  131. package/dist/pregel/remote.js +61 -1
  132. package/dist/pregel/remote.js.map +1 -1
  133. package/dist/pregel/replay.cjs +62 -0
  134. package/dist/pregel/replay.cjs.map +1 -0
  135. package/dist/pregel/replay.js +62 -0
  136. package/dist/pregel/replay.js.map +1 -0
  137. package/dist/pregel/retry.cjs +8 -6
  138. package/dist/pregel/retry.cjs.map +1 -1
  139. package/dist/pregel/retry.js +8 -6
  140. package/dist/pregel/retry.js.map +1 -1
  141. package/dist/pregel/runnable_types.d.cts +20 -0
  142. package/dist/pregel/runnable_types.d.cts.map +1 -1
  143. package/dist/pregel/runnable_types.d.ts +20 -0
  144. package/dist/pregel/runnable_types.d.ts.map +1 -1
  145. package/dist/pregel/runner.cjs +48 -7
  146. package/dist/pregel/runner.cjs.map +1 -1
  147. package/dist/pregel/runner.js +50 -9
  148. package/dist/pregel/runner.js.map +1 -1
  149. package/dist/pregel/runtime.cjs +64 -0
  150. package/dist/pregel/runtime.cjs.map +1 -0
  151. package/dist/pregel/runtime.d.cts +57 -0
  152. package/dist/pregel/runtime.d.cts.map +1 -0
  153. package/dist/pregel/runtime.d.ts +57 -0
  154. package/dist/pregel/runtime.d.ts.map +1 -0
  155. package/dist/pregel/runtime.js +64 -0
  156. package/dist/pregel/runtime.js.map +1 -0
  157. package/dist/pregel/stream.cjs +2 -0
  158. package/dist/pregel/stream.cjs.map +1 -1
  159. package/dist/pregel/stream.js +2 -0
  160. package/dist/pregel/stream.js.map +1 -1
  161. package/dist/pregel/timeout.cjs +216 -0
  162. package/dist/pregel/timeout.cjs.map +1 -0
  163. package/dist/pregel/timeout.js +216 -0
  164. package/dist/pregel/timeout.js.map +1 -0
  165. package/dist/pregel/types.cjs +3 -1
  166. package/dist/pregel/types.cjs.map +1 -1
  167. package/dist/pregel/types.d.cts +13 -0
  168. package/dist/pregel/types.d.cts.map +1 -1
  169. package/dist/pregel/types.d.ts +14 -1
  170. package/dist/pregel/types.d.ts.map +1 -1
  171. package/dist/pregel/types.js +3 -1
  172. package/dist/pregel/types.js.map +1 -1
  173. package/dist/pregel/utils/config.cjs +3 -1
  174. package/dist/pregel/utils/config.cjs.map +1 -1
  175. package/dist/pregel/utils/config.d.cts.map +1 -1
  176. package/dist/pregel/utils/config.d.ts.map +1 -1
  177. package/dist/pregel/utils/config.js +3 -1
  178. package/dist/pregel/utils/config.js.map +1 -1
  179. package/dist/pregel/utils/index.cjs +1 -0
  180. package/dist/pregel/utils/index.cjs.map +1 -1
  181. package/dist/pregel/utils/index.d.cts +6 -1
  182. package/dist/pregel/utils/index.d.cts.map +1 -1
  183. package/dist/pregel/utils/index.d.ts +6 -1
  184. package/dist/pregel/utils/index.d.ts.map +1 -1
  185. package/dist/pregel/utils/index.js +1 -0
  186. package/dist/pregel/utils/index.js.map +1 -1
  187. package/dist/pregel/utils/timeout.cjs +34 -0
  188. package/dist/pregel/utils/timeout.cjs.map +1 -0
  189. package/dist/pregel/utils/timeout.d.cts +45 -0
  190. package/dist/pregel/utils/timeout.d.cts.map +1 -0
  191. package/dist/pregel/utils/timeout.d.ts +45 -0
  192. package/dist/pregel/utils/timeout.d.ts.map +1 -0
  193. package/dist/pregel/utils/timeout.js +34 -0
  194. package/dist/pregel/utils/timeout.js.map +1 -0
  195. package/dist/stream/index.cjs +1 -0
  196. package/dist/stream/index.d.cts +2 -1
  197. package/dist/stream/index.d.ts +2 -1
  198. package/dist/stream/index.js +1 -0
  199. package/dist/stream/stream-channel.d.cts +9 -1
  200. package/dist/stream/stream-channel.d.cts.map +1 -1
  201. package/dist/stream/stream-channel.d.ts +9 -1
  202. package/dist/stream/stream-channel.d.ts.map +1 -1
  203. package/dist/stream/subscription.cjs +136 -0
  204. package/dist/stream/subscription.cjs.map +1 -0
  205. package/dist/stream/subscription.d.cts +94 -0
  206. package/dist/stream/subscription.d.cts.map +1 -0
  207. package/dist/stream/subscription.d.ts +94 -0
  208. package/dist/stream/subscription.d.ts.map +1 -0
  209. package/dist/stream/subscription.js +131 -0
  210. package/dist/stream/subscription.js.map +1 -0
  211. package/dist/stream/types.d.cts +1 -1
  212. package/dist/stream/types.d.ts +1 -1
  213. package/dist/stream.cjs +16 -0
  214. package/dist/stream.d.cts +5 -0
  215. package/dist/stream.d.ts +5 -0
  216. package/dist/stream.js +4 -0
  217. package/dist/web.cjs +11 -0
  218. package/dist/web.d.cts +11 -8
  219. package/dist/web.d.ts +11 -8
  220. package/dist/web.js +5 -3
  221. package/package.json +18 -6
@@ -1 +1 @@
1
- {"version":3,"file":"call.cjs","names":["RunnableSequence","RunnableCallable","ChannelWrite","RETURN","PASSTHROUGH","TAG_HIDDEN","AsyncLocalStorageProviderSingleton","CONFIG_KEY_CALL"],"sources":["../../src/pregel/call.ts"],"sourcesContent":["import {\n Runnable,\n RunnableConfig,\n RunnableSequence,\n} from \"@langchain/core/runnables\";\nimport { AsyncLocalStorageProviderSingleton } from \"@langchain/core/singletons\";\nimport { CONFIG_KEY_CALL, RETURN, TAG_HIDDEN } from \"../constants.js\";\nimport { ChannelWrite, PASSTHROUGH } from \"./write.js\";\nimport { CachePolicy, RetryPolicy } from \"./utils/index.js\";\nimport { RunnableCallable, type RunnableCallableArgs } from \"../utils.js\";\nimport { EntrypointFunc, EntrypointReturnT, TaskFunc } from \"../func/types.js\";\nimport { LangGraphRunnableConfig } from \"./runnable_types.js\";\n\n/**\n * Wraps a user function in a Runnable that writes the returned value to the RETURN channel.\n */\nexport function getRunnableForFunc<ArgsT extends unknown[], OutputT>(\n name: string,\n func: TaskFunc<ArgsT, OutputT>\n): Runnable<ArgsT, OutputT, LangGraphRunnableConfig> {\n const run = new RunnableCallable<ArgsT, OutputT>({\n func: (input: ArgsT) => func(...input),\n name,\n trace: false,\n recurse: false,\n } as RunnableCallableArgs);\n\n return new RunnableSequence<ArgsT, OutputT>({\n name,\n first: run,\n last: new ChannelWrite<OutputT>(\n [{ channel: RETURN, value: PASSTHROUGH }],\n [TAG_HIDDEN]\n ),\n });\n}\n\nexport function getRunnableForEntrypoint<InputT, OutputT>(\n name: string,\n func: EntrypointFunc<InputT, OutputT>\n): Runnable<InputT, EntrypointReturnT<OutputT>, LangGraphRunnableConfig> {\n const run = new RunnableCallable<InputT, EntrypointReturnT<OutputT>>({\n func: (input: InputT, config: LangGraphRunnableConfig) => {\n return func(input, config);\n },\n name,\n trace: false,\n recurse: false,\n });\n\n return run;\n}\n\nexport type CallWrapperOptions<ArgsT extends unknown[], OutputT> = {\n func: TaskFunc<ArgsT, OutputT>;\n name: string;\n retry?: RetryPolicy;\n cache?: CachePolicy;\n};\n\nexport function call<ArgsT extends unknown[], OutputT>(\n { func, name, cache, retry }: CallWrapperOptions<ArgsT, OutputT>,\n ...args: ArgsT\n): Promise<OutputT> {\n const config =\n AsyncLocalStorageProviderSingleton.getRunnableConfig() as RunnableConfig;\n if (typeof config.configurable?.[CONFIG_KEY_CALL] === \"function\") {\n return config.configurable[CONFIG_KEY_CALL](func, name, args, {\n retry,\n cache,\n callbacks: config.callbacks,\n });\n }\n throw new Error(\n \"Async local storage not initialized. Please call initializeAsyncLocalStorageSingleton() before using this function.\"\n );\n}\n"],"mappings":";;;;;;;;;AAgBA,SAAgB,mBACd,MACA,MACmD;AAQnD,QAAO,IAAIA,0BAAAA,iBAAiC;EAC1C;EACA,OATU,IAAIC,cAAAA,iBAAiC;GAC/C,OAAO,UAAiB,KAAK,GAAG,MAAM;GACtC;GACA,OAAO;GACP,SAAS;GACV,CAAyB;EAKxB,MAAM,IAAIC,cAAAA,aACR,CAAC;GAAE,SAASC,kBAAAA;GAAQ,OAAOC,cAAAA;GAAa,CAAC,EACzC,CAACC,kBAAAA,WAAW,CACb;EACF,CAAC;;AAGJ,SAAgB,yBACd,MACA,MACuE;AAUvE,QATY,IAAIJ,cAAAA,iBAAqD;EACnE,OAAO,OAAe,WAAoC;AACxD,UAAO,KAAK,OAAO,OAAO;;EAE5B;EACA,OAAO;EACP,SAAS;EACV,CAAC;;AAYJ,SAAgB,KACd,EAAE,MAAM,MAAM,OAAO,SACrB,GAAG,MACe;CAClB,MAAM,SACJK,2BAAAA,mCAAmC,mBAAmB;AACxD,KAAI,OAAO,OAAO,eAAA,qBAAoC,WACpD,QAAO,OAAO,aAAaC,kBAAAA,iBAAiB,MAAM,MAAM,MAAM;EAC5D;EACA;EACA,WAAW,OAAO;EACnB,CAAC;AAEJ,OAAM,IAAI,MACR,sHACD"}
1
+ {"version":3,"file":"call.cjs","names":["RunnableSequence","RunnableCallable","ChannelWrite","RETURN","PASSTHROUGH","TAG_HIDDEN","AsyncLocalStorageProviderSingleton","CONFIG_KEY_CALL"],"sources":["../../src/pregel/call.ts"],"sourcesContent":["import {\n Runnable,\n RunnableConfig,\n RunnableSequence,\n} from \"@langchain/core/runnables\";\nimport { AsyncLocalStorageProviderSingleton } from \"@langchain/core/singletons\";\nimport { CONFIG_KEY_CALL, RETURN, TAG_HIDDEN } from \"../constants.js\";\nimport { ChannelWrite, PASSTHROUGH } from \"./write.js\";\nimport { CachePolicy, RetryPolicy, TimeoutPolicy } from \"./utils/index.js\";\nimport { RunnableCallable, type RunnableCallableArgs } from \"../utils.js\";\nimport { EntrypointFunc, EntrypointReturnT, TaskFunc } from \"../func/types.js\";\nimport { LangGraphRunnableConfig } from \"./runnable_types.js\";\n\n/**\n * Wraps a user function in a Runnable that writes the returned value to the RETURN channel.\n */\nexport function getRunnableForFunc<ArgsT extends unknown[], OutputT>(\n name: string,\n func: TaskFunc<ArgsT, OutputT>\n): Runnable<ArgsT, OutputT, LangGraphRunnableConfig> {\n const run = new RunnableCallable<ArgsT, OutputT>({\n func: (input: ArgsT) => func(...input),\n name,\n trace: false,\n recurse: false,\n } as RunnableCallableArgs);\n\n return new RunnableSequence<ArgsT, OutputT>({\n name,\n first: run,\n last: new ChannelWrite<OutputT>(\n [{ channel: RETURN, value: PASSTHROUGH }],\n [TAG_HIDDEN]\n ),\n });\n}\n\nexport function getRunnableForEntrypoint<InputT, OutputT>(\n name: string,\n func: EntrypointFunc<InputT, OutputT>\n): Runnable<InputT, EntrypointReturnT<OutputT>, LangGraphRunnableConfig> {\n const run = new RunnableCallable<InputT, EntrypointReturnT<OutputT>>({\n func: (input: InputT, config: LangGraphRunnableConfig) => {\n return func(input, config);\n },\n name,\n trace: false,\n recurse: false,\n });\n\n return run;\n}\n\nexport type CallWrapperOptions<ArgsT extends unknown[], OutputT> = {\n func: TaskFunc<ArgsT, OutputT>;\n name: string;\n retry?: RetryPolicy;\n cache?: CachePolicy;\n timeout?: TimeoutPolicy;\n};\n\nexport function call<ArgsT extends unknown[], OutputT>(\n { func, name, cache, retry, timeout }: CallWrapperOptions<ArgsT, OutputT>,\n ...args: ArgsT\n): Promise<OutputT> {\n const config =\n AsyncLocalStorageProviderSingleton.getRunnableConfig() as RunnableConfig;\n if (typeof config.configurable?.[CONFIG_KEY_CALL] === \"function\") {\n return config.configurable[CONFIG_KEY_CALL](func, name, args, {\n retry,\n cache,\n timeout,\n callbacks: config.callbacks,\n });\n }\n throw new Error(\n \"Async local storage not initialized. Please call initializeAsyncLocalStorageSingleton() before using this function.\"\n );\n}\n"],"mappings":";;;;;;;;;AAgBA,SAAgB,mBACd,MACA,MACmD;AAQnD,QAAO,IAAIA,0BAAAA,iBAAiC;EAC1C;EACA,OATU,IAAIC,cAAAA,iBAAiC;GAC/C,OAAO,UAAiB,KAAK,GAAG,MAAM;GACtC;GACA,OAAO;GACP,SAAS;GACV,CAAyB;EAKxB,MAAM,IAAIC,cAAAA,aACR,CAAC;GAAE,SAASC,kBAAAA;GAAQ,OAAOC,cAAAA;GAAa,CAAC,EACzC,CAACC,kBAAAA,WAAW,CACb;EACF,CAAC;;AAGJ,SAAgB,yBACd,MACA,MACuE;AAUvE,QATY,IAAIJ,cAAAA,iBAAqD;EACnE,OAAO,OAAe,WAAoC;AACxD,UAAO,KAAK,OAAO,OAAO;;EAE5B;EACA,OAAO;EACP,SAAS;EACV,CAAC;;AAaJ,SAAgB,KACd,EAAE,MAAM,MAAM,OAAO,OAAO,WAC5B,GAAG,MACe;CAClB,MAAM,SACJK,2BAAAA,mCAAmC,mBAAmB;AACxD,KAAI,OAAO,OAAO,eAAA,qBAAoC,WACpD,QAAO,OAAO,aAAaC,kBAAAA,iBAAiB,MAAM,MAAM,MAAM;EAC5D;EACA;EACA;EACA,WAAW,OAAO;EACnB,CAAC;AAEJ,OAAM,IAAI,MACR,sHACD"}
@@ -32,11 +32,12 @@ function getRunnableForEntrypoint(name, func) {
32
32
  recurse: false
33
33
  });
34
34
  }
35
- function call({ func, name, cache, retry }, ...args) {
35
+ function call({ func, name, cache, retry, timeout }, ...args) {
36
36
  const config = AsyncLocalStorageProviderSingleton.getRunnableConfig();
37
37
  if (typeof config.configurable?.["__pregel_call"] === "function") return config.configurable[CONFIG_KEY_CALL](func, name, args, {
38
38
  retry,
39
39
  cache,
40
+ timeout,
40
41
  callbacks: config.callbacks
41
42
  });
42
43
  throw new Error("Async local storage not initialized. Please call initializeAsyncLocalStorageSingleton() before using this function.");
@@ -1 +1 @@
1
- {"version":3,"file":"call.js","names":[],"sources":["../../src/pregel/call.ts"],"sourcesContent":["import {\n Runnable,\n RunnableConfig,\n RunnableSequence,\n} from \"@langchain/core/runnables\";\nimport { AsyncLocalStorageProviderSingleton } from \"@langchain/core/singletons\";\nimport { CONFIG_KEY_CALL, RETURN, TAG_HIDDEN } from \"../constants.js\";\nimport { ChannelWrite, PASSTHROUGH } from \"./write.js\";\nimport { CachePolicy, RetryPolicy } from \"./utils/index.js\";\nimport { RunnableCallable, type RunnableCallableArgs } from \"../utils.js\";\nimport { EntrypointFunc, EntrypointReturnT, TaskFunc } from \"../func/types.js\";\nimport { LangGraphRunnableConfig } from \"./runnable_types.js\";\n\n/**\n * Wraps a user function in a Runnable that writes the returned value to the RETURN channel.\n */\nexport function getRunnableForFunc<ArgsT extends unknown[], OutputT>(\n name: string,\n func: TaskFunc<ArgsT, OutputT>\n): Runnable<ArgsT, OutputT, LangGraphRunnableConfig> {\n const run = new RunnableCallable<ArgsT, OutputT>({\n func: (input: ArgsT) => func(...input),\n name,\n trace: false,\n recurse: false,\n } as RunnableCallableArgs);\n\n return new RunnableSequence<ArgsT, OutputT>({\n name,\n first: run,\n last: new ChannelWrite<OutputT>(\n [{ channel: RETURN, value: PASSTHROUGH }],\n [TAG_HIDDEN]\n ),\n });\n}\n\nexport function getRunnableForEntrypoint<InputT, OutputT>(\n name: string,\n func: EntrypointFunc<InputT, OutputT>\n): Runnable<InputT, EntrypointReturnT<OutputT>, LangGraphRunnableConfig> {\n const run = new RunnableCallable<InputT, EntrypointReturnT<OutputT>>({\n func: (input: InputT, config: LangGraphRunnableConfig) => {\n return func(input, config);\n },\n name,\n trace: false,\n recurse: false,\n });\n\n return run;\n}\n\nexport type CallWrapperOptions<ArgsT extends unknown[], OutputT> = {\n func: TaskFunc<ArgsT, OutputT>;\n name: string;\n retry?: RetryPolicy;\n cache?: CachePolicy;\n};\n\nexport function call<ArgsT extends unknown[], OutputT>(\n { func, name, cache, retry }: CallWrapperOptions<ArgsT, OutputT>,\n ...args: ArgsT\n): Promise<OutputT> {\n const config =\n AsyncLocalStorageProviderSingleton.getRunnableConfig() as RunnableConfig;\n if (typeof config.configurable?.[CONFIG_KEY_CALL] === \"function\") {\n return config.configurable[CONFIG_KEY_CALL](func, name, args, {\n retry,\n cache,\n callbacks: config.callbacks,\n });\n }\n throw new Error(\n \"Async local storage not initialized. Please call initializeAsyncLocalStorageSingleton() before using this function.\"\n );\n}\n"],"mappings":";;;;;;;;;AAgBA,SAAgB,mBACd,MACA,MACmD;AAQnD,QAAO,IAAI,iBAAiC;EAC1C;EACA,OATU,IAAI,iBAAiC;GAC/C,OAAO,UAAiB,KAAK,GAAG,MAAM;GACtC;GACA,OAAO;GACP,SAAS;GACV,CAAyB;EAKxB,MAAM,IAAI,aACR,CAAC;GAAE,SAAS;GAAQ,OAAO;GAAa,CAAC,EACzC,CAAC,WAAW,CACb;EACF,CAAC;;AAGJ,SAAgB,yBACd,MACA,MACuE;AAUvE,QATY,IAAI,iBAAqD;EACnE,OAAO,OAAe,WAAoC;AACxD,UAAO,KAAK,OAAO,OAAO;;EAE5B;EACA,OAAO;EACP,SAAS;EACV,CAAC;;AAYJ,SAAgB,KACd,EAAE,MAAM,MAAM,OAAO,SACrB,GAAG,MACe;CAClB,MAAM,SACJ,mCAAmC,mBAAmB;AACxD,KAAI,OAAO,OAAO,eAAA,qBAAoC,WACpD,QAAO,OAAO,aAAa,iBAAiB,MAAM,MAAM,MAAM;EAC5D;EACA;EACA,WAAW,OAAO;EACnB,CAAC;AAEJ,OAAM,IAAI,MACR,sHACD"}
1
+ {"version":3,"file":"call.js","names":[],"sources":["../../src/pregel/call.ts"],"sourcesContent":["import {\n Runnable,\n RunnableConfig,\n RunnableSequence,\n} from \"@langchain/core/runnables\";\nimport { AsyncLocalStorageProviderSingleton } from \"@langchain/core/singletons\";\nimport { CONFIG_KEY_CALL, RETURN, TAG_HIDDEN } from \"../constants.js\";\nimport { ChannelWrite, PASSTHROUGH } from \"./write.js\";\nimport { CachePolicy, RetryPolicy, TimeoutPolicy } from \"./utils/index.js\";\nimport { RunnableCallable, type RunnableCallableArgs } from \"../utils.js\";\nimport { EntrypointFunc, EntrypointReturnT, TaskFunc } from \"../func/types.js\";\nimport { LangGraphRunnableConfig } from \"./runnable_types.js\";\n\n/**\n * Wraps a user function in a Runnable that writes the returned value to the RETURN channel.\n */\nexport function getRunnableForFunc<ArgsT extends unknown[], OutputT>(\n name: string,\n func: TaskFunc<ArgsT, OutputT>\n): Runnable<ArgsT, OutputT, LangGraphRunnableConfig> {\n const run = new RunnableCallable<ArgsT, OutputT>({\n func: (input: ArgsT) => func(...input),\n name,\n trace: false,\n recurse: false,\n } as RunnableCallableArgs);\n\n return new RunnableSequence<ArgsT, OutputT>({\n name,\n first: run,\n last: new ChannelWrite<OutputT>(\n [{ channel: RETURN, value: PASSTHROUGH }],\n [TAG_HIDDEN]\n ),\n });\n}\n\nexport function getRunnableForEntrypoint<InputT, OutputT>(\n name: string,\n func: EntrypointFunc<InputT, OutputT>\n): Runnable<InputT, EntrypointReturnT<OutputT>, LangGraphRunnableConfig> {\n const run = new RunnableCallable<InputT, EntrypointReturnT<OutputT>>({\n func: (input: InputT, config: LangGraphRunnableConfig) => {\n return func(input, config);\n },\n name,\n trace: false,\n recurse: false,\n });\n\n return run;\n}\n\nexport type CallWrapperOptions<ArgsT extends unknown[], OutputT> = {\n func: TaskFunc<ArgsT, OutputT>;\n name: string;\n retry?: RetryPolicy;\n cache?: CachePolicy;\n timeout?: TimeoutPolicy;\n};\n\nexport function call<ArgsT extends unknown[], OutputT>(\n { func, name, cache, retry, timeout }: CallWrapperOptions<ArgsT, OutputT>,\n ...args: ArgsT\n): Promise<OutputT> {\n const config =\n AsyncLocalStorageProviderSingleton.getRunnableConfig() as RunnableConfig;\n if (typeof config.configurable?.[CONFIG_KEY_CALL] === \"function\") {\n return config.configurable[CONFIG_KEY_CALL](func, name, args, {\n retry,\n cache,\n timeout,\n callbacks: config.callbacks,\n });\n }\n throw new Error(\n \"Async local storage not initialized. Please call initializeAsyncLocalStorageSingleton() before using this function.\"\n );\n}\n"],"mappings":";;;;;;;;;AAgBA,SAAgB,mBACd,MACA,MACmD;AAQnD,QAAO,IAAI,iBAAiC;EAC1C;EACA,OATU,IAAI,iBAAiC;GAC/C,OAAO,UAAiB,KAAK,GAAG,MAAM;GACtC;GACA,OAAO;GACP,SAAS;GACV,CAAyB;EAKxB,MAAM,IAAI,aACR,CAAC;GAAE,SAAS;GAAQ,OAAO;GAAa,CAAC,EACzC,CAAC,WAAW,CACb;EACF,CAAC;;AAGJ,SAAgB,yBACd,MACA,MACuE;AAUvE,QATY,IAAI,iBAAqD;EACnE,OAAO,OAAe,WAAoC;AACxD,UAAO,KAAK,OAAO,OAAO;;EAE5B;EACA,OAAO;EACP,SAAS;EACV,CAAC;;AAaJ,SAAgB,KACd,EAAE,MAAM,MAAM,OAAO,OAAO,WAC5B,GAAG,MACe;CAClB,MAAM,SACJ,mCAAmC,mBAAmB;AACxD,KAAI,OAAO,OAAO,eAAA,qBAAoC,WACpD,QAAO,OAAO,aAAa,iBAAiB,MAAM,MAAM,MAAM;EAC5D;EACA;EACA;EACA,WAAW,OAAO;EACnB,CAAC;AAEJ,OAAM,IAAI,MACR,sHACD"}
@@ -6,6 +6,7 @@ const require_config = require("./utils/config.cjs");
6
6
  const require_utils = require("../utils.cjs");
7
7
  const require_write = require("./write.cjs");
8
8
  const require_read = require("./read.cjs");
9
+ const require_runtime = require("./runtime.cjs");
9
10
  const require_io = require("./io.cjs");
10
11
  const require_index = require("./utils/index.cjs");
11
12
  const require_algo = require("./algo.cjs");
@@ -439,7 +440,10 @@ var Pregel = class extends PartialRunnable {
439
440
  config,
440
441
  tasks: []
441
442
  };
442
- const channels = require_base.emptyChannels(this.channels, saved.checkpoint);
443
+ const channels = await require_base.channelsFromCheckpoint(this.channels, saved.checkpoint, {
444
+ saver: typeof this.checkpointer === "object" ? this.checkpointer : void 0,
445
+ config: saved.config ?? config
446
+ });
443
447
  if (saved.pendingWrites?.length) {
444
448
  const nullWrites = saved.pendingWrites.filter(([taskId, _]) => taskId === require_constants.NULL_TASK_ID).map(([_, channel, value]) => [String(channel), value]);
445
449
  if (nullWrites.length > 0) require_algo._applyWrites(saved.checkpoint, channels, [{
@@ -519,7 +523,7 @@ var Pregel = class extends PartialRunnable {
519
523
  const checkpointer = config.configurable?.["__pregel_checkpointer"] ?? this.checkpointer;
520
524
  if (!checkpointer) throw new require_errors.GraphValueError("No checkpointer set", { lc_error_code: "MISSING_CHECKPOINTER" });
521
525
  const checkpointNamespace = config.configurable?.checkpoint_ns ?? "";
522
- if (checkpointNamespace !== "" && config.configurable?.["__pregel_checkpointer"] === void 0) {
526
+ if (checkpointNamespace !== "" && config.configurable?.["__pregel_read"] === void 0 && config.configurable?.["__pregel_checkpointer"] === void 0) {
523
527
  const recastNamespace = require_config.recastCheckpointNamespace(checkpointNamespace);
524
528
  for await (const [name, subgraph] of this.getSubgraphsAsync(recastNamespace, true)) if (name === recastNamespace) return await subgraph.getState(require_utils.patchConfigurable(config, { [require_constants.CONFIG_KEY_CHECKPOINTER]: checkpointer }), { subgraphs: options?.subgraphs });
525
529
  }
@@ -613,7 +617,10 @@ var Pregel = class extends PartialRunnable {
613
617
  parents: saved?.metadata?.parents ?? {}
614
618
  }, {}), saved ? saved.metadata : void 0);
615
619
  }
616
- const channels = require_base.emptyChannels(this.channels, checkpoint);
620
+ const channels = await require_base.channelsFromCheckpoint(this.channels, checkpoint, {
621
+ saver: checkpointer,
622
+ config: saved?.config ?? checkpointConfig
623
+ });
617
624
  if (values === null && asNode === "__end__") {
618
625
  if (updates.length > 1) throw new require_errors.InvalidUpdateError(`Cannot apply multiple updates when clearing state`);
619
626
  if (saved) {
@@ -1044,6 +1051,7 @@ var Pregel = class extends PartialRunnable {
1044
1051
  };
1045
1052
  config.interrupt ??= this.userInterrupt ?? require_interrupt.interrupt;
1046
1053
  if (config.serverInfo == null) config.serverInfo = _buildServerInfo(config);
1054
+ config.control ??= new require_runtime.RunControl();
1047
1055
  const callbackManagerOptions = { tracerInheritableMetadata: _getTracingMetadataDefaults(config) };
1048
1056
  const runManager = await (await _langchain_core_callbacks_manager.CallbackManager._configureSync(config?.callbacks, void 0, config?.tags, void 0, config?.metadata, void 0, callbackManagerOptions))?.handleChainStart(this.toJSON(), require_index._coerceToDict(input, "input"), runId, void 0, void 0, void 0, config?.runName ?? this.getName());
1049
1057
  const channelSpecs = require_base.getOnlyChannels(this.channels);
@@ -1201,6 +1209,10 @@ var Pregel = class extends PartialRunnable {
1201
1209
  signal: config.signal
1202
1210
  });
1203
1211
  }
1212
+ if (loop.status === "draining") {
1213
+ if (loop.control == null) throw new Error("Draining status requires run control");
1214
+ throw new require_errors.GraphDrained(loop.control.drainReason ?? "shutdown");
1215
+ }
1204
1216
  if (loop.status === "out_of_steps") throw new require_errors.GraphRecursionError([
1205
1217
  `Recursion limit of ${config.recursionLimit} reached`,
1206
1218
  "without hitting a stop condition. You can increase the",