@langchain/langgraph 1.0.7 → 1.0.12

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 (383) hide show
  1. package/package.json +7 -7
  2. package/CHANGELOG.md +0 -286
  3. package/dist/_virtual/rolldown_runtime.cjs +0 -25
  4. package/dist/channels/any_value.cjs +0 -46
  5. package/dist/channels/any_value.cjs.map +0 -1
  6. package/dist/channels/any_value.d.cts +0 -24
  7. package/dist/channels/any_value.d.cts.map +0 -1
  8. package/dist/channels/any_value.d.ts +0 -24
  9. package/dist/channels/any_value.d.ts.map +0 -1
  10. package/dist/channels/any_value.js +0 -46
  11. package/dist/channels/any_value.js.map +0 -1
  12. package/dist/channels/base.cjs +0 -102
  13. package/dist/channels/base.cjs.map +0 -1
  14. package/dist/channels/base.d.cts +0 -79
  15. package/dist/channels/base.d.cts.map +0 -1
  16. package/dist/channels/base.d.ts +0 -79
  17. package/dist/channels/base.d.ts.map +0 -1
  18. package/dist/channels/base.js +0 -97
  19. package/dist/channels/base.js.map +0 -1
  20. package/dist/channels/binop.cjs +0 -49
  21. package/dist/channels/binop.cjs.map +0 -1
  22. package/dist/channels/binop.d.cts +0 -22
  23. package/dist/channels/binop.d.cts.map +0 -1
  24. package/dist/channels/binop.d.ts +0 -22
  25. package/dist/channels/binop.d.ts.map +0 -1
  26. package/dist/channels/binop.js +0 -49
  27. package/dist/channels/binop.js.map +0 -1
  28. package/dist/channels/dynamic_barrier_value.cjs +0 -76
  29. package/dist/channels/dynamic_barrier_value.cjs.map +0 -1
  30. package/dist/channels/dynamic_barrier_value.d.cts +0 -42
  31. package/dist/channels/dynamic_barrier_value.d.cts.map +0 -1
  32. package/dist/channels/dynamic_barrier_value.d.ts +0 -42
  33. package/dist/channels/dynamic_barrier_value.d.ts.map +0 -1
  34. package/dist/channels/dynamic_barrier_value.js +0 -76
  35. package/dist/channels/dynamic_barrier_value.js.map +0 -1
  36. package/dist/channels/ephemeral_value.cjs +0 -46
  37. package/dist/channels/ephemeral_value.cjs.map +0 -1
  38. package/dist/channels/ephemeral_value.d.cts +0 -22
  39. package/dist/channels/ephemeral_value.d.cts.map +0 -1
  40. package/dist/channels/ephemeral_value.d.ts +0 -22
  41. package/dist/channels/ephemeral_value.d.ts.map +0 -1
  42. package/dist/channels/ephemeral_value.js +0 -46
  43. package/dist/channels/ephemeral_value.js.map +0 -1
  44. package/dist/channels/index.cjs +0 -21
  45. package/dist/channels/index.d.cts +0 -9
  46. package/dist/channels/index.d.ts +0 -9
  47. package/dist/channels/index.js +0 -10
  48. package/dist/channels/last_value.cjs +0 -98
  49. package/dist/channels/last_value.cjs.map +0 -1
  50. package/dist/channels/last_value.d.cts +0 -44
  51. package/dist/channels/last_value.d.cts.map +0 -1
  52. package/dist/channels/last_value.d.ts +0 -44
  53. package/dist/channels/last_value.d.ts.map +0 -1
  54. package/dist/channels/last_value.js +0 -97
  55. package/dist/channels/last_value.js.map +0 -1
  56. package/dist/channels/named_barrier_value.cjs +0 -118
  57. package/dist/channels/named_barrier_value.cjs.map +0 -1
  58. package/dist/channels/named_barrier_value.d.cts +0 -46
  59. package/dist/channels/named_barrier_value.d.cts.map +0 -1
  60. package/dist/channels/named_barrier_value.d.ts +0 -46
  61. package/dist/channels/named_barrier_value.d.ts.map +0 -1
  62. package/dist/channels/named_barrier_value.js +0 -116
  63. package/dist/channels/named_barrier_value.js.map +0 -1
  64. package/dist/channels/topic.cjs +0 -65
  65. package/dist/channels/topic.cjs.map +0 -1
  66. package/dist/channels/topic.d.cts +0 -32
  67. package/dist/channels/topic.d.cts.map +0 -1
  68. package/dist/channels/topic.d.ts +0 -32
  69. package/dist/channels/topic.d.ts.map +0 -1
  70. package/dist/channels/topic.js +0 -65
  71. package/dist/channels/topic.js.map +0 -1
  72. package/dist/constants.cjs +0 -406
  73. package/dist/constants.cjs.map +0 -1
  74. package/dist/constants.d.cts +0 -285
  75. package/dist/constants.d.cts.map +0 -1
  76. package/dist/constants.d.ts +0 -285
  77. package/dist/constants.d.ts.map +0 -1
  78. package/dist/constants.js +0 -362
  79. package/dist/constants.js.map +0 -1
  80. package/dist/errors.cjs +0 -163
  81. package/dist/errors.cjs.map +0 -1
  82. package/dist/errors.d.cts +0 -81
  83. package/dist/errors.d.cts.map +0 -1
  84. package/dist/errors.d.ts +0 -81
  85. package/dist/errors.d.ts.map +0 -1
  86. package/dist/errors.js +0 -146
  87. package/dist/errors.js.map +0 -1
  88. package/dist/func/index.cjs +0 -301
  89. package/dist/func/index.cjs.map +0 -1
  90. package/dist/func/index.d.cts +0 -293
  91. package/dist/func/index.d.cts.map +0 -1
  92. package/dist/func/index.d.ts +0 -293
  93. package/dist/func/index.d.ts.map +0 -1
  94. package/dist/func/index.js +0 -298
  95. package/dist/func/index.js.map +0 -1
  96. package/dist/func/types.d.cts +0 -64
  97. package/dist/func/types.d.cts.map +0 -1
  98. package/dist/func/types.d.ts +0 -64
  99. package/dist/func/types.d.ts.map +0 -1
  100. package/dist/graph/annotation.cjs +0 -101
  101. package/dist/graph/annotation.cjs.map +0 -1
  102. package/dist/graph/annotation.d.cts +0 -116
  103. package/dist/graph/annotation.d.cts.map +0 -1
  104. package/dist/graph/annotation.d.ts +0 -116
  105. package/dist/graph/annotation.d.ts.map +0 -1
  106. package/dist/graph/annotation.js +0 -99
  107. package/dist/graph/annotation.js.map +0 -1
  108. package/dist/graph/graph.cjs +0 -423
  109. package/dist/graph/graph.cjs.map +0 -1
  110. package/dist/graph/graph.d.cts +0 -132
  111. package/dist/graph/graph.d.cts.map +0 -1
  112. package/dist/graph/graph.d.ts +0 -132
  113. package/dist/graph/graph.d.ts.map +0 -1
  114. package/dist/graph/graph.js +0 -420
  115. package/dist/graph/graph.js.map +0 -1
  116. package/dist/graph/index.cjs +0 -5
  117. package/dist/graph/index.js +0 -7
  118. package/dist/graph/message.cjs +0 -99
  119. package/dist/graph/message.cjs.map +0 -1
  120. package/dist/graph/message.d.cts +0 -40
  121. package/dist/graph/message.d.cts.map +0 -1
  122. package/dist/graph/message.d.ts +0 -40
  123. package/dist/graph/message.d.ts.map +0 -1
  124. package/dist/graph/message.js +0 -95
  125. package/dist/graph/message.js.map +0 -1
  126. package/dist/graph/messages_annotation.cjs +0 -110
  127. package/dist/graph/messages_annotation.cjs.map +0 -1
  128. package/dist/graph/messages_annotation.d.cts +0 -112
  129. package/dist/graph/messages_annotation.d.cts.map +0 -1
  130. package/dist/graph/messages_annotation.d.ts +0 -112
  131. package/dist/graph/messages_annotation.d.ts.map +0 -1
  132. package/dist/graph/messages_annotation.js +0 -107
  133. package/dist/graph/messages_annotation.js.map +0 -1
  134. package/dist/graph/state.cjs +0 -501
  135. package/dist/graph/state.cjs.map +0 -1
  136. package/dist/graph/state.d.cts +0 -236
  137. package/dist/graph/state.d.cts.map +0 -1
  138. package/dist/graph/state.d.ts +0 -236
  139. package/dist/graph/state.d.ts.map +0 -1
  140. package/dist/graph/state.js +0 -499
  141. package/dist/graph/state.js.map +0 -1
  142. package/dist/graph/zod/index.cjs +0 -10
  143. package/dist/graph/zod/index.d.cts +0 -3
  144. package/dist/graph/zod/index.d.ts +0 -3
  145. package/dist/graph/zod/index.js +0 -5
  146. package/dist/graph/zod/meta.cjs +0 -145
  147. package/dist/graph/zod/meta.cjs.map +0 -1
  148. package/dist/graph/zod/meta.d.cts +0 -116
  149. package/dist/graph/zod/meta.d.cts.map +0 -1
  150. package/dist/graph/zod/meta.d.ts +0 -116
  151. package/dist/graph/zod/meta.d.ts.map +0 -1
  152. package/dist/graph/zod/meta.js +0 -141
  153. package/dist/graph/zod/meta.js.map +0 -1
  154. package/dist/graph/zod/plugin.cjs +0 -41
  155. package/dist/graph/zod/plugin.cjs.map +0 -1
  156. package/dist/graph/zod/plugin.js +0 -41
  157. package/dist/graph/zod/plugin.js.map +0 -1
  158. package/dist/graph/zod/schema.cjs +0 -99
  159. package/dist/graph/zod/schema.cjs.map +0 -1
  160. package/dist/graph/zod/schema.d.cts +0 -38
  161. package/dist/graph/zod/schema.d.cts.map +0 -1
  162. package/dist/graph/zod/schema.d.ts +0 -38
  163. package/dist/graph/zod/schema.d.ts.map +0 -1
  164. package/dist/graph/zod/schema.js +0 -94
  165. package/dist/graph/zod/schema.js.map +0 -1
  166. package/dist/graph/zod/zod-registry.cjs +0 -43
  167. package/dist/graph/zod/zod-registry.cjs.map +0 -1
  168. package/dist/graph/zod/zod-registry.d.cts +0 -51
  169. package/dist/graph/zod/zod-registry.d.cts.map +0 -1
  170. package/dist/graph/zod/zod-registry.d.ts +0 -51
  171. package/dist/graph/zod/zod-registry.d.ts.map +0 -1
  172. package/dist/graph/zod/zod-registry.js +0 -41
  173. package/dist/graph/zod/zod-registry.js.map +0 -1
  174. package/dist/hash.cjs +0 -271
  175. package/dist/hash.cjs.map +0 -1
  176. package/dist/hash.js +0 -269
  177. package/dist/hash.js.map +0 -1
  178. package/dist/index.cjs +0 -112
  179. package/dist/index.cjs.map +0 -1
  180. package/dist/index.d.cts +0 -26
  181. package/dist/index.d.ts +0 -26
  182. package/dist/index.js +0 -22
  183. package/dist/index.js.map +0 -1
  184. package/dist/interrupt.cjs +0 -82
  185. package/dist/interrupt.cjs.map +0 -1
  186. package/dist/interrupt.d.cts +0 -58
  187. package/dist/interrupt.d.cts.map +0 -1
  188. package/dist/interrupt.d.ts +0 -58
  189. package/dist/interrupt.d.ts.map +0 -1
  190. package/dist/interrupt.js +0 -81
  191. package/dist/interrupt.js.map +0 -1
  192. package/dist/prebuilt/agentName.cjs +0 -153
  193. package/dist/prebuilt/agentName.cjs.map +0 -1
  194. package/dist/prebuilt/agentName.d.cts +0 -42
  195. package/dist/prebuilt/agentName.d.cts.map +0 -1
  196. package/dist/prebuilt/agentName.d.ts +0 -42
  197. package/dist/prebuilt/agentName.d.ts.map +0 -1
  198. package/dist/prebuilt/agentName.js +0 -152
  199. package/dist/prebuilt/agentName.js.map +0 -1
  200. package/dist/prebuilt/agent_executor.cjs +0 -44
  201. package/dist/prebuilt/agent_executor.cjs.map +0 -1
  202. package/dist/prebuilt/agent_executor.d.cts +0 -58
  203. package/dist/prebuilt/agent_executor.d.cts.map +0 -1
  204. package/dist/prebuilt/agent_executor.d.ts +0 -58
  205. package/dist/prebuilt/agent_executor.d.ts.map +0 -1
  206. package/dist/prebuilt/agent_executor.js +0 -44
  207. package/dist/prebuilt/agent_executor.js.map +0 -1
  208. package/dist/prebuilt/chat_agent_executor.cjs +0 -68
  209. package/dist/prebuilt/chat_agent_executor.cjs.map +0 -1
  210. package/dist/prebuilt/chat_agent_executor.d.cts +0 -23
  211. package/dist/prebuilt/chat_agent_executor.d.cts.map +0 -1
  212. package/dist/prebuilt/chat_agent_executor.d.ts +0 -23
  213. package/dist/prebuilt/chat_agent_executor.d.ts.map +0 -1
  214. package/dist/prebuilt/chat_agent_executor.js +0 -67
  215. package/dist/prebuilt/chat_agent_executor.js.map +0 -1
  216. package/dist/prebuilt/index.cjs +0 -15
  217. package/dist/prebuilt/index.d.cts +0 -8
  218. package/dist/prebuilt/index.d.ts +0 -8
  219. package/dist/prebuilt/index.js +0 -8
  220. package/dist/prebuilt/interrupt.d.cts +0 -61
  221. package/dist/prebuilt/interrupt.d.cts.map +0 -1
  222. package/dist/prebuilt/interrupt.d.ts +0 -61
  223. package/dist/prebuilt/interrupt.d.ts.map +0 -1
  224. package/dist/prebuilt/react_agent_executor.cjs +0 -344
  225. package/dist/prebuilt/react_agent_executor.cjs.map +0 -1
  226. package/dist/prebuilt/react_agent_executor.d.cts +0 -230
  227. package/dist/prebuilt/react_agent_executor.d.cts.map +0 -1
  228. package/dist/prebuilt/react_agent_executor.d.ts +0 -230
  229. package/dist/prebuilt/react_agent_executor.d.ts.map +0 -1
  230. package/dist/prebuilt/react_agent_executor.js +0 -342
  231. package/dist/prebuilt/react_agent_executor.js.map +0 -1
  232. package/dist/prebuilt/tool_executor.cjs +0 -48
  233. package/dist/prebuilt/tool_executor.cjs.map +0 -1
  234. package/dist/prebuilt/tool_executor.d.cts +0 -42
  235. package/dist/prebuilt/tool_executor.d.cts.map +0 -1
  236. package/dist/prebuilt/tool_executor.d.ts +0 -42
  237. package/dist/prebuilt/tool_executor.d.ts.map +0 -1
  238. package/dist/prebuilt/tool_executor.js +0 -47
  239. package/dist/prebuilt/tool_executor.js.map +0 -1
  240. package/dist/prebuilt/tool_node.cjs +0 -248
  241. package/dist/prebuilt/tool_node.cjs.map +0 -1
  242. package/dist/prebuilt/tool_node.d.cts +0 -182
  243. package/dist/prebuilt/tool_node.d.cts.map +0 -1
  244. package/dist/prebuilt/tool_node.d.ts +0 -182
  245. package/dist/prebuilt/tool_node.d.ts.map +0 -1
  246. package/dist/prebuilt/tool_node.js +0 -246
  247. package/dist/prebuilt/tool_node.js.map +0 -1
  248. package/dist/pregel/algo.cjs +0 -573
  249. package/dist/pregel/algo.cjs.map +0 -1
  250. package/dist/pregel/algo.d.cts +0 -13
  251. package/dist/pregel/algo.d.cts.map +0 -1
  252. package/dist/pregel/algo.d.ts +0 -13
  253. package/dist/pregel/algo.d.ts.map +0 -1
  254. package/dist/pregel/algo.js +0 -567
  255. package/dist/pregel/algo.js.map +0 -1
  256. package/dist/pregel/call.cjs +0 -53
  257. package/dist/pregel/call.cjs.map +0 -1
  258. package/dist/pregel/call.js +0 -50
  259. package/dist/pregel/call.js.map +0 -1
  260. package/dist/pregel/debug.cjs +0 -175
  261. package/dist/pregel/debug.cjs.map +0 -1
  262. package/dist/pregel/debug.js +0 -169
  263. package/dist/pregel/debug.js.map +0 -1
  264. package/dist/pregel/index.cjs +0 -1170
  265. package/dist/pregel/index.cjs.map +0 -1
  266. package/dist/pregel/index.d.cts +0 -546
  267. package/dist/pregel/index.d.cts.map +0 -1
  268. package/dist/pregel/index.d.ts +0 -546
  269. package/dist/pregel/index.d.ts.map +0 -1
  270. package/dist/pregel/index.js +0 -1168
  271. package/dist/pregel/index.js.map +0 -1
  272. package/dist/pregel/io.cjs +0 -140
  273. package/dist/pregel/io.cjs.map +0 -1
  274. package/dist/pregel/io.js +0 -135
  275. package/dist/pregel/io.js.map +0 -1
  276. package/dist/pregel/loop.cjs +0 -548
  277. package/dist/pregel/loop.cjs.map +0 -1
  278. package/dist/pregel/loop.js +0 -547
  279. package/dist/pregel/loop.js.map +0 -1
  280. package/dist/pregel/messages.cjs +0 -108
  281. package/dist/pregel/messages.cjs.map +0 -1
  282. package/dist/pregel/messages.js +0 -107
  283. package/dist/pregel/messages.js.map +0 -1
  284. package/dist/pregel/read.cjs +0 -152
  285. package/dist/pregel/read.cjs.map +0 -1
  286. package/dist/pregel/read.d.cts +0 -51
  287. package/dist/pregel/read.d.cts.map +0 -1
  288. package/dist/pregel/read.d.ts +0 -51
  289. package/dist/pregel/read.d.ts.map +0 -1
  290. package/dist/pregel/read.js +0 -150
  291. package/dist/pregel/read.js.map +0 -1
  292. package/dist/pregel/remote.cjs +0 -349
  293. package/dist/pregel/remote.cjs.map +0 -1
  294. package/dist/pregel/remote.d.cts +0 -123
  295. package/dist/pregel/remote.d.cts.map +0 -1
  296. package/dist/pregel/remote.d.ts +0 -123
  297. package/dist/pregel/remote.d.ts.map +0 -1
  298. package/dist/pregel/remote.js +0 -348
  299. package/dist/pregel/remote.js.map +0 -1
  300. package/dist/pregel/retry.cjs +0 -92
  301. package/dist/pregel/retry.cjs.map +0 -1
  302. package/dist/pregel/retry.js +0 -92
  303. package/dist/pregel/retry.js.map +0 -1
  304. package/dist/pregel/runnable_types.d.cts +0 -49
  305. package/dist/pregel/runnable_types.d.cts.map +0 -1
  306. package/dist/pregel/runnable_types.d.ts +0 -49
  307. package/dist/pregel/runnable_types.d.ts.map +0 -1
  308. package/dist/pregel/runner.cjs +0 -228
  309. package/dist/pregel/runner.cjs.map +0 -1
  310. package/dist/pregel/runner.js +0 -228
  311. package/dist/pregel/runner.js.map +0 -1
  312. package/dist/pregel/stream.cjs +0 -199
  313. package/dist/pregel/stream.cjs.map +0 -1
  314. package/dist/pregel/stream.js +0 -196
  315. package/dist/pregel/stream.js.map +0 -1
  316. package/dist/pregel/types.cjs +0 -27
  317. package/dist/pregel/types.cjs.map +0 -1
  318. package/dist/pregel/types.d.cts +0 -453
  319. package/dist/pregel/types.d.cts.map +0 -1
  320. package/dist/pregel/types.d.ts +0 -453
  321. package/dist/pregel/types.d.ts.map +0 -1
  322. package/dist/pregel/types.js +0 -25
  323. package/dist/pregel/types.js.map +0 -1
  324. package/dist/pregel/utils/config.cjs +0 -122
  325. package/dist/pregel/utils/config.cjs.map +0 -1
  326. package/dist/pregel/utils/config.d.cts +0 -36
  327. package/dist/pregel/utils/config.d.cts.map +0 -1
  328. package/dist/pregel/utils/config.d.ts +0 -36
  329. package/dist/pregel/utils/config.d.ts.map +0 -1
  330. package/dist/pregel/utils/config.js +0 -115
  331. package/dist/pregel/utils/config.js.map +0 -1
  332. package/dist/pregel/utils/index.cjs +0 -103
  333. package/dist/pregel/utils/index.cjs.map +0 -1
  334. package/dist/pregel/utils/index.d.cts +0 -51
  335. package/dist/pregel/utils/index.d.cts.map +0 -1
  336. package/dist/pregel/utils/index.d.ts +0 -51
  337. package/dist/pregel/utils/index.d.ts.map +0 -1
  338. package/dist/pregel/utils/index.js +0 -97
  339. package/dist/pregel/utils/index.js.map +0 -1
  340. package/dist/pregel/utils/subgraph.cjs +0 -19
  341. package/dist/pregel/utils/subgraph.cjs.map +0 -1
  342. package/dist/pregel/utils/subgraph.js +0 -17
  343. package/dist/pregel/utils/subgraph.js.map +0 -1
  344. package/dist/pregel/validate.cjs +0 -45
  345. package/dist/pregel/validate.cjs.map +0 -1
  346. package/dist/pregel/validate.js +0 -44
  347. package/dist/pregel/validate.js.map +0 -1
  348. package/dist/pregel/write.cjs +0 -97
  349. package/dist/pregel/write.cjs.map +0 -1
  350. package/dist/pregel/write.d.cts +0 -35
  351. package/dist/pregel/write.d.cts.map +0 -1
  352. package/dist/pregel/write.d.ts +0 -35
  353. package/dist/pregel/write.d.ts.map +0 -1
  354. package/dist/pregel/write.js +0 -95
  355. package/dist/pregel/write.js.map +0 -1
  356. package/dist/remote.cjs +0 -3
  357. package/dist/remote.d.cts +0 -2
  358. package/dist/remote.d.ts +0 -2
  359. package/dist/remote.js +0 -3
  360. package/dist/setup/async_local_storage.cjs +0 -12
  361. package/dist/setup/async_local_storage.cjs.map +0 -1
  362. package/dist/setup/async_local_storage.js +0 -11
  363. package/dist/setup/async_local_storage.js.map +0 -1
  364. package/dist/utils.cjs +0 -88
  365. package/dist/utils.cjs.map +0 -1
  366. package/dist/utils.d.cts +0 -32
  367. package/dist/utils.d.cts.map +0 -1
  368. package/dist/utils.d.ts +0 -32
  369. package/dist/utils.d.ts.map +0 -1
  370. package/dist/utils.js +0 -81
  371. package/dist/utils.js.map +0 -1
  372. package/dist/web.cjs +0 -96
  373. package/dist/web.d.cts +0 -23
  374. package/dist/web.d.ts +0 -23
  375. package/dist/web.js +0 -15
  376. package/dist/writer.cjs +0 -15
  377. package/dist/writer.cjs.map +0 -1
  378. package/dist/writer.d.cts +0 -7
  379. package/dist/writer.d.cts.map +0 -1
  380. package/dist/writer.d.ts +0 -7
  381. package/dist/writer.d.ts.map +0 -1
  382. package/dist/writer.js +0 -14
  383. package/dist/writer.js.map +0 -1
@@ -1,548 +0,0 @@
1
- const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
- const require_errors = require('../errors.cjs');
3
- const require_base = require('../channels/base.cjs');
4
- const require_constants = require('../constants.cjs');
5
- const require_utils = require('../utils.cjs');
6
- const require_hash = require('../hash.cjs');
7
- const require_io = require('./io.cjs');
8
- const require_index = require('./utils/index.cjs');
9
- const require_algo = require('./algo.cjs');
10
- const require_debug = require('./debug.cjs');
11
- const require_stream = require('./stream.cjs');
12
- const __langchain_langgraph_checkpoint = require_rolldown_runtime.__toESM(require("@langchain/langgraph-checkpoint"));
13
-
14
- //#region src/pregel/loop.ts
15
- const INPUT_DONE = Symbol.for("INPUT_DONE");
16
- const INPUT_RESUMING = Symbol.for("INPUT_RESUMING");
17
- const DEFAULT_LOOP_LIMIT = 25;
18
- function createDuplexStream(...streams) {
19
- return new require_stream.IterableReadableWritableStream({
20
- passthroughFn: (value) => {
21
- for (const stream of streams) if (stream.modes.has(value[1])) stream.push(value);
22
- },
23
- modes: new Set(streams.flatMap((s) => Array.from(s.modes)))
24
- });
25
- }
26
- var AsyncBatchedCache = class extends __langchain_langgraph_checkpoint.BaseCache {
27
- cache;
28
- queue = Promise.resolve();
29
- constructor(cache) {
30
- super();
31
- this.cache = cache;
32
- }
33
- async get(keys) {
34
- return this.enqueueOperation("get", keys);
35
- }
36
- async set(pairs) {
37
- return this.enqueueOperation("set", pairs);
38
- }
39
- async clear(namespaces) {
40
- return this.enqueueOperation("clear", namespaces);
41
- }
42
- async stop() {
43
- await this.queue;
44
- }
45
- enqueueOperation(type, ...args) {
46
- const newPromise = this.queue.then(() => {
47
- return this.cache[type](...args);
48
- });
49
- this.queue = newPromise.then(() => void 0, () => void 0);
50
- return newPromise;
51
- }
52
- };
53
- var PregelLoop = class PregelLoop {
54
- input;
55
- output;
56
- config;
57
- checkpointer;
58
- checkpointerGetNextVersion;
59
- channels;
60
- checkpoint;
61
- checkpointIdSaved;
62
- checkpointConfig;
63
- checkpointMetadata;
64
- checkpointNamespace;
65
- checkpointPendingWrites = [];
66
- checkpointPreviousVersions;
67
- step;
68
- stop;
69
- durability;
70
- outputKeys;
71
- streamKeys;
72
- nodes;
73
- skipDoneTasks;
74
- prevCheckpointConfig;
75
- updatedChannels;
76
- status = "pending";
77
- tasks = {};
78
- stream;
79
- checkpointerPromises = [];
80
- isNested;
81
- _checkpointerChainedPromise = Promise.resolve();
82
- store;
83
- cache;
84
- manager;
85
- interruptAfter;
86
- interruptBefore;
87
- toInterrupt = [];
88
- debug = false;
89
- triggerToNodes;
90
- get isResuming() {
91
- let hasChannelVersions = false;
92
- if (require_constants.START in this.checkpoint.channel_versions) hasChannelVersions = true;
93
- else for (const chan in this.checkpoint.channel_versions) if (Object.prototype.hasOwnProperty.call(this.checkpoint.channel_versions, chan)) {
94
- hasChannelVersions = true;
95
- break;
96
- }
97
- const configHasResumingFlag = this.config.configurable?.[require_constants.CONFIG_KEY_RESUMING] !== void 0;
98
- const configIsResuming = configHasResumingFlag && this.config.configurable?.[require_constants.CONFIG_KEY_RESUMING];
99
- const inputIsNullOrUndefined = this.input === null || this.input === void 0;
100
- const inputIsCommandResuming = require_constants.isCommand(this.input) && this.input.resume != null;
101
- const inputIsResuming = this.input === INPUT_RESUMING;
102
- const runIdMatchesPrevious = !this.isNested && this.config.metadata?.run_id !== void 0 && this.checkpointMetadata?.run_id !== void 0 && this.config.metadata.run_id === this.checkpointMetadata?.run_id;
103
- return hasChannelVersions && (configIsResuming || inputIsNullOrUndefined || inputIsCommandResuming || inputIsResuming || runIdMatchesPrevious);
104
- }
105
- constructor(params) {
106
- this.input = params.input;
107
- this.checkpointer = params.checkpointer;
108
- if (this.checkpointer !== void 0) this.checkpointerGetNextVersion = this.checkpointer.getNextVersion.bind(this.checkpointer);
109
- else this.checkpointerGetNextVersion = require_algo.increment;
110
- this.checkpoint = params.checkpoint;
111
- this.checkpointMetadata = params.checkpointMetadata;
112
- this.checkpointPreviousVersions = params.checkpointPreviousVersions;
113
- this.channels = params.channels;
114
- this.checkpointPendingWrites = params.checkpointPendingWrites;
115
- this.step = params.step;
116
- this.stop = params.stop;
117
- this.config = params.config;
118
- this.checkpointConfig = params.checkpointConfig;
119
- this.isNested = params.isNested;
120
- this.manager = params.manager;
121
- this.outputKeys = params.outputKeys;
122
- this.streamKeys = params.streamKeys;
123
- this.nodes = params.nodes;
124
- this.skipDoneTasks = params.skipDoneTasks;
125
- this.store = params.store;
126
- this.cache = params.cache ? new AsyncBatchedCache(params.cache) : void 0;
127
- this.stream = params.stream;
128
- this.checkpointNamespace = params.checkpointNamespace;
129
- this.prevCheckpointConfig = params.prevCheckpointConfig;
130
- this.interruptAfter = params.interruptAfter;
131
- this.interruptBefore = params.interruptBefore;
132
- this.durability = params.durability;
133
- this.debug = params.debug;
134
- this.triggerToNodes = params.triggerToNodes;
135
- }
136
- static async initialize(params) {
137
- let { config, stream } = params;
138
- if (stream !== void 0 && config.configurable?.[require_constants.CONFIG_KEY_STREAM] !== void 0) stream = createDuplexStream(stream, config.configurable[require_constants.CONFIG_KEY_STREAM]);
139
- const skipDoneTasks = config.configurable ? !("checkpoint_id" in config.configurable) : true;
140
- const scratchpad = config.configurable?.[require_constants.CONFIG_KEY_SCRATCHPAD];
141
- if (config.configurable && scratchpad) {
142
- if (scratchpad.subgraphCounter > 0) config = require_index.patchConfigurable(config, { [require_constants.CONFIG_KEY_CHECKPOINT_NS]: [config.configurable[require_constants.CONFIG_KEY_CHECKPOINT_NS], scratchpad.subgraphCounter.toString()].join(require_constants.CHECKPOINT_NAMESPACE_SEPARATOR) });
143
- scratchpad.subgraphCounter += 1;
144
- }
145
- const isNested = require_constants.CONFIG_KEY_READ in (config.configurable ?? {});
146
- if (!isNested && config.configurable?.checkpoint_ns !== void 0 && config.configurable?.checkpoint_ns !== "") config = require_index.patchConfigurable(config, {
147
- checkpoint_ns: "",
148
- checkpoint_id: void 0
149
- });
150
- let checkpointConfig = config;
151
- if (config.configurable?.[require_constants.CONFIG_KEY_CHECKPOINT_MAP] !== void 0 && config.configurable?.[require_constants.CONFIG_KEY_CHECKPOINT_MAP]?.[config.configurable?.checkpoint_ns]) checkpointConfig = require_index.patchConfigurable(config, { checkpoint_id: config.configurable[require_constants.CONFIG_KEY_CHECKPOINT_MAP][config.configurable?.checkpoint_ns] });
152
- const checkpointNamespace = config.configurable?.checkpoint_ns?.split(require_constants.CHECKPOINT_NAMESPACE_SEPARATOR) ?? [];
153
- const saved = await params.checkpointer?.getTuple(checkpointConfig) ?? {
154
- config,
155
- checkpoint: (0, __langchain_langgraph_checkpoint.emptyCheckpoint)(),
156
- metadata: {
157
- source: "input",
158
- step: -2,
159
- parents: {}
160
- },
161
- pendingWrites: []
162
- };
163
- checkpointConfig = {
164
- ...config,
165
- ...saved.config,
166
- configurable: {
167
- checkpoint_ns: "",
168
- ...config.configurable,
169
- ...saved.config.configurable
170
- }
171
- };
172
- const prevCheckpointConfig = saved.parentConfig;
173
- const checkpoint = (0, __langchain_langgraph_checkpoint.copyCheckpoint)(saved.checkpoint);
174
- const checkpointMetadata = { ...saved.metadata };
175
- const checkpointPendingWrites = saved.pendingWrites ?? [];
176
- const channels = require_base.emptyChannels(params.channelSpecs, checkpoint);
177
- const step = (checkpointMetadata.step ?? 0) + 1;
178
- const stop = step + (config.recursionLimit ?? DEFAULT_LOOP_LIMIT) + 1;
179
- const checkpointPreviousVersions = { ...checkpoint.channel_versions };
180
- const store = params.store ? new __langchain_langgraph_checkpoint.AsyncBatchedStore(params.store) : void 0;
181
- if (store) await store.start();
182
- return new PregelLoop({
183
- input: params.input,
184
- config,
185
- checkpointer: params.checkpointer,
186
- checkpoint,
187
- checkpointMetadata,
188
- checkpointConfig,
189
- prevCheckpointConfig,
190
- checkpointNamespace,
191
- channels,
192
- isNested,
193
- manager: params.manager,
194
- skipDoneTasks,
195
- step,
196
- stop,
197
- checkpointPreviousVersions,
198
- checkpointPendingWrites,
199
- outputKeys: params.outputKeys ?? [],
200
- streamKeys: params.streamKeys ?? [],
201
- nodes: params.nodes,
202
- stream,
203
- store,
204
- cache: params.cache,
205
- interruptAfter: params.interruptAfter,
206
- interruptBefore: params.interruptBefore,
207
- durability: params.durability,
208
- debug: params.debug,
209
- triggerToNodes: params.triggerToNodes
210
- });
211
- }
212
- _checkpointerPutAfterPrevious(input) {
213
- this._checkpointerChainedPromise = this._checkpointerChainedPromise.then(() => {
214
- return this.checkpointer?.put(input.config, input.checkpoint, input.metadata, input.newVersions);
215
- });
216
- this.checkpointerPromises.push(this._checkpointerChainedPromise);
217
- }
218
- /**
219
- * Put writes for a task, to be read by the next tick.
220
- * @param taskId
221
- * @param writes
222
- */
223
- putWrites(taskId, writes) {
224
- let writesCopy = writes;
225
- if (writesCopy.length === 0) return;
226
- if (writesCopy.every(([key]) => key in __langchain_langgraph_checkpoint.WRITES_IDX_MAP)) writesCopy = Array.from(new Map(writesCopy.map((w) => [w[0], w])).values());
227
- this.checkpointPendingWrites = this.checkpointPendingWrites.filter((w) => w[0] !== taskId);
228
- for (const [c, v] of writesCopy) this.checkpointPendingWrites.push([
229
- taskId,
230
- c,
231
- v
232
- ]);
233
- const config = require_index.patchConfigurable(this.checkpointConfig, {
234
- [require_constants.CONFIG_KEY_CHECKPOINT_NS]: this.config.configurable?.checkpoint_ns ?? "",
235
- [require_constants.CONFIG_KEY_CHECKPOINT_ID]: this.checkpoint.id
236
- });
237
- if (this.durability !== "exit" && this.checkpointer != null) this.checkpointerPromises.push(this.checkpointer.putWrites(config, writesCopy, taskId));
238
- if (this.tasks) this._outputWrites(taskId, writesCopy);
239
- if (!writes.length || !this.cache || !this.tasks) return;
240
- const task = this.tasks[taskId];
241
- if (task == null || task.cache_key == null) return;
242
- if (writes[0][0] === require_constants.ERROR || writes[0][0] === require_constants.INTERRUPT) return;
243
- this.cache.set([{
244
- key: [task.cache_key.ns, task.cache_key.key],
245
- value: task.writes,
246
- ttl: task.cache_key.ttl
247
- }]);
248
- }
249
- _outputWrites(taskId, writes, cached = false) {
250
- const task = this.tasks[taskId];
251
- if (task !== void 0) {
252
- if (task.config !== void 0 && (task.config.tags ?? []).includes(require_constants.TAG_HIDDEN)) return;
253
- if (writes.length > 0) {
254
- if (writes[0][0] === require_constants.INTERRUPT) {
255
- if (task.path?.[0] === require_constants.PUSH && task.path?.at(-1) === true) return;
256
- const interruptWrites = writes.filter((w) => w[0] === require_constants.INTERRUPT).flatMap((w) => w[1]);
257
- this._emit([["updates", { [require_constants.INTERRUPT]: interruptWrites }], ["values", { [require_constants.INTERRUPT]: interruptWrites }]]);
258
- } else if (writes[0][0] !== require_constants.ERROR) this._emit(require_utils.gatherIteratorSync(require_utils.prefixGenerator(require_io.mapOutputUpdates(this.outputKeys, [[task, writes]], cached), "updates")));
259
- }
260
- if (!cached) this._emit(require_utils.gatherIteratorSync(require_utils.prefixGenerator(require_debug.mapDebugTaskResults([[task, writes]], this.streamKeys), "tasks")));
261
- }
262
- }
263
- async _matchCachedWrites() {
264
- if (!this.cache) return [];
265
- const matched = [];
266
- const serializeKey = ([ns, key]) => {
267
- return `ns:${ns.join(",")}|key:${key}`;
268
- };
269
- const keys = [];
270
- const keyMap = {};
271
- for (const task of Object.values(this.tasks)) if (task.cache_key != null && !task.writes.length) {
272
- keys.push([task.cache_key.ns, task.cache_key.key]);
273
- keyMap[serializeKey([task.cache_key.ns, task.cache_key.key])] = task;
274
- }
275
- if (keys.length === 0) return [];
276
- const cache = await this.cache.get(keys);
277
- for (const { key, value } of cache) {
278
- const task = keyMap[serializeKey(key)];
279
- if (task != null) {
280
- task.writes.push(...value);
281
- matched.push({
282
- task,
283
- result: value
284
- });
285
- }
286
- }
287
- return matched;
288
- }
289
- /**
290
- * Execute a single iteration of the Pregel loop.
291
- * Returns true if more iterations are needed.
292
- * @param params
293
- */
294
- async tick(params) {
295
- if (this.store && !this.store.isRunning) await this.store?.start();
296
- const { inputKeys = [] } = params;
297
- if (this.status !== "pending") throw new Error(`Cannot tick when status is no longer "pending". Current status: "${this.status}"`);
298
- if (![INPUT_DONE, INPUT_RESUMING].includes(this.input)) await this._first(inputKeys);
299
- else if (this.toInterrupt.length > 0) {
300
- this.status = "interrupt_before";
301
- throw new require_errors.GraphInterrupt();
302
- } else if (Object.values(this.tasks).every((task) => task.writes.length > 0)) {
303
- const writes = Object.values(this.tasks).flatMap((t) => t.writes);
304
- this.updatedChannels = require_algo._applyWrites(this.checkpoint, this.channels, Object.values(this.tasks), this.checkpointerGetNextVersion, this.triggerToNodes);
305
- const valuesOutput = await require_utils.gatherIterator(require_utils.prefixGenerator(require_io.mapOutputValues(this.outputKeys, writes, this.channels), "values"));
306
- this._emit(valuesOutput);
307
- this.checkpointPendingWrites = [];
308
- await this._putCheckpoint({ source: "loop" });
309
- if (require_algo.shouldInterrupt(this.checkpoint, this.interruptAfter, Object.values(this.tasks))) {
310
- this.status = "interrupt_after";
311
- throw new require_errors.GraphInterrupt();
312
- }
313
- if (this.config.configurable?.[require_constants.CONFIG_KEY_RESUMING] !== void 0) delete this.config.configurable?.[require_constants.CONFIG_KEY_RESUMING];
314
- } else return false;
315
- if (this.step > this.stop) {
316
- this.status = "out_of_steps";
317
- return false;
318
- }
319
- const nextTasks = require_algo._prepareNextTasks(this.checkpoint, this.checkpointPendingWrites, this.nodes, this.channels, this.config, true, {
320
- step: this.step,
321
- checkpointer: this.checkpointer,
322
- isResuming: this.isResuming,
323
- manager: this.manager,
324
- store: this.store,
325
- stream: this.stream,
326
- triggerToNodes: this.triggerToNodes,
327
- updatedChannels: this.updatedChannels
328
- });
329
- this.tasks = nextTasks;
330
- if (this.checkpointer) this._emit(await require_utils.gatherIterator(require_utils.prefixGenerator(require_debug.mapDebugCheckpoint(this.checkpointConfig, this.channels, this.streamKeys, this.checkpointMetadata, Object.values(this.tasks), this.checkpointPendingWrites, this.prevCheckpointConfig, this.outputKeys), "checkpoints")));
331
- if (Object.values(this.tasks).length === 0) {
332
- this.status = "done";
333
- return false;
334
- }
335
- if (this.skipDoneTasks && this.checkpointPendingWrites.length > 0) {
336
- for (const [tid, k, v] of this.checkpointPendingWrites) {
337
- if (k === require_constants.ERROR || k === require_constants.INTERRUPT || k === require_constants.RESUME) continue;
338
- const task = Object.values(this.tasks).find((t) => t.id === tid);
339
- if (task) task.writes.push([k, v]);
340
- }
341
- for (const task of Object.values(this.tasks)) if (task.writes.length > 0) this._outputWrites(task.id, task.writes, true);
342
- }
343
- if (Object.values(this.tasks).every((task) => task.writes.length > 0)) return this.tick({ inputKeys });
344
- if (require_algo.shouldInterrupt(this.checkpoint, this.interruptBefore, Object.values(this.tasks))) {
345
- this.status = "interrupt_before";
346
- throw new require_errors.GraphInterrupt();
347
- }
348
- const debugOutput = await require_utils.gatherIterator(require_utils.prefixGenerator(require_debug.mapDebugTasks(Object.values(this.tasks)), "tasks"));
349
- this._emit(debugOutput);
350
- return true;
351
- }
352
- async finishAndHandleError(error) {
353
- if (this.durability === "exit" && (!this.isNested || typeof error !== "undefined" || this.checkpointNamespace.every((part) => !part.includes(require_constants.CHECKPOINT_NAMESPACE_END)))) {
354
- this._putCheckpoint(this.checkpointMetadata);
355
- this._flushPendingWrites();
356
- }
357
- const suppress = this._suppressInterrupt(error);
358
- if (suppress || error === void 0) this.output = require_io.readChannels(this.channels, this.outputKeys);
359
- if (suppress) {
360
- if (this.tasks !== void 0 && this.checkpointPendingWrites.length > 0 && Object.values(this.tasks).some((task) => task.writes.length > 0)) {
361
- this.updatedChannels = require_algo._applyWrites(this.checkpoint, this.channels, Object.values(this.tasks), this.checkpointerGetNextVersion, this.triggerToNodes);
362
- this._emit(require_utils.gatherIteratorSync(require_utils.prefixGenerator(require_io.mapOutputValues(this.outputKeys, Object.values(this.tasks).flatMap((t) => t.writes), this.channels), "values")));
363
- }
364
- if (require_errors.isGraphInterrupt(error) && !error.interrupts.length) this._emit([["updates", { [require_constants.INTERRUPT]: [] }], ["values", { [require_constants.INTERRUPT]: [] }]]);
365
- }
366
- return suppress;
367
- }
368
- async acceptPush(task, writeIdx, call) {
369
- if (this.interruptAfter?.length > 0 && require_algo.shouldInterrupt(this.checkpoint, this.interruptAfter, [task])) {
370
- this.toInterrupt.push(task);
371
- return;
372
- }
373
- const pushed = require_algo._prepareSingleTask([
374
- require_constants.PUSH,
375
- task.path ?? [],
376
- writeIdx,
377
- task.id,
378
- call
379
- ], this.checkpoint, this.checkpointPendingWrites, this.nodes, this.channels, task.config ?? {}, true, {
380
- step: this.step,
381
- checkpointer: this.checkpointer,
382
- manager: this.manager,
383
- store: this.store,
384
- stream: this.stream
385
- });
386
- if (!pushed) return;
387
- if (this.interruptBefore?.length > 0 && require_algo.shouldInterrupt(this.checkpoint, this.interruptBefore, [pushed])) {
388
- this.toInterrupt.push(pushed);
389
- return;
390
- }
391
- this._emit(require_utils.gatherIteratorSync(require_utils.prefixGenerator(require_debug.mapDebugTasks([pushed]), "tasks")));
392
- if (this.debug) require_debug.printStepTasks(this.step, [pushed]);
393
- this.tasks[pushed.id] = pushed;
394
- if (this.skipDoneTasks) this._matchWrites({ [pushed.id]: pushed });
395
- const tasks = await this._matchCachedWrites();
396
- for (const { task: task$1 } of tasks) this._outputWrites(task$1.id, task$1.writes, true);
397
- return pushed;
398
- }
399
- _suppressInterrupt(e) {
400
- return require_errors.isGraphInterrupt(e) && !this.isNested;
401
- }
402
- async _first(inputKeys) {
403
- const { configurable } = this.config;
404
- const scratchpad = configurable?.[require_constants.CONFIG_KEY_SCRATCHPAD];
405
- if (scratchpad && scratchpad.nullResume !== void 0) this.putWrites(require_constants.NULL_TASK_ID, [[require_constants.RESUME, scratchpad.nullResume]]);
406
- if (require_constants.isCommand(this.input)) {
407
- const hasResume = this.input.resume != null;
408
- if (this.input.resume != null && typeof this.input.resume === "object" && Object.keys(this.input.resume).every(require_hash.isXXH3)) {
409
- this.config.configurable ??= {};
410
- this.config.configurable[require_constants.CONFIG_KEY_RESUME_MAP] = this.input.resume;
411
- }
412
- if (hasResume && this.checkpointer == null) throw new Error("Cannot use Command(resume=...) without checkpointer");
413
- const writes = {};
414
- for (const [tid, key, value] of require_io.mapCommand(this.input, this.checkpointPendingWrites)) {
415
- writes[tid] ??= [];
416
- writes[tid].push([key, value]);
417
- }
418
- if (Object.keys(writes).length === 0) throw new require_errors.EmptyInputError("Received empty Command input");
419
- for (const [tid, ws] of Object.entries(writes)) this.putWrites(tid, ws);
420
- }
421
- const nullWrites = (this.checkpointPendingWrites ?? []).filter((w) => w[0] === require_constants.NULL_TASK_ID).map((w) => w.slice(1));
422
- if (nullWrites.length > 0) require_algo._applyWrites(this.checkpoint, this.channels, [{
423
- name: require_constants.INPUT,
424
- writes: nullWrites,
425
- triggers: []
426
- }], this.checkpointerGetNextVersion, this.triggerToNodes);
427
- const isCommandUpdateOrGoto = require_constants.isCommand(this.input) && nullWrites.length > 0;
428
- if (this.isResuming || isCommandUpdateOrGoto) {
429
- for (const channelName in this.channels) {
430
- if (!Object.prototype.hasOwnProperty.call(this.channels, channelName)) continue;
431
- if (this.checkpoint.channel_versions[channelName] !== void 0) {
432
- const version = this.checkpoint.channel_versions[channelName];
433
- this.checkpoint.versions_seen[require_constants.INTERRUPT] = {
434
- ...this.checkpoint.versions_seen[require_constants.INTERRUPT],
435
- [channelName]: version
436
- };
437
- }
438
- }
439
- const valuesOutput = await require_utils.gatherIterator(require_utils.prefixGenerator(require_io.mapOutputValues(this.outputKeys, true, this.channels), "values"));
440
- this._emit(valuesOutput);
441
- }
442
- if (this.isResuming) this.input = INPUT_RESUMING;
443
- else if (isCommandUpdateOrGoto) {
444
- await this._putCheckpoint({ source: "input" });
445
- this.input = INPUT_DONE;
446
- } else {
447
- const inputWrites = await require_utils.gatherIterator(require_io.mapInput(inputKeys, this.input));
448
- if (inputWrites.length > 0) {
449
- const discardTasks = require_algo._prepareNextTasks(this.checkpoint, this.checkpointPendingWrites, this.nodes, this.channels, this.config, true, { step: this.step });
450
- this.updatedChannels = require_algo._applyWrites(this.checkpoint, this.channels, Object.values(discardTasks).concat([{
451
- name: require_constants.INPUT,
452
- writes: inputWrites,
453
- triggers: []
454
- }]), this.checkpointerGetNextVersion, this.triggerToNodes);
455
- await this._putCheckpoint({ source: "input" });
456
- this.input = INPUT_DONE;
457
- } else if (!(require_constants.CONFIG_KEY_RESUMING in (this.config.configurable ?? {}))) throw new require_errors.EmptyInputError(`Received no input writes for ${JSON.stringify(inputKeys, null, 2)}`);
458
- else this.input = INPUT_DONE;
459
- }
460
- if (!this.isNested) this.config = require_index.patchConfigurable(this.config, { [require_constants.CONFIG_KEY_RESUMING]: this.isResuming });
461
- }
462
- _emit(values) {
463
- for (const [mode, payload] of values) {
464
- if (this.stream.modes.has(mode)) this.stream.push([
465
- this.checkpointNamespace,
466
- mode,
467
- payload
468
- ]);
469
- if ((mode === "checkpoints" || mode === "tasks") && this.stream.modes.has("debug")) {
470
- const step = mode === "checkpoints" ? this.step - 1 : this.step;
471
- const timestamp = (/* @__PURE__ */ new Date()).toISOString();
472
- const type = (() => {
473
- if (mode === "checkpoints") return "checkpoint";
474
- else if (typeof payload === "object" && payload != null && "result" in payload) return "task_result";
475
- else return "task";
476
- })();
477
- this.stream.push([
478
- this.checkpointNamespace,
479
- "debug",
480
- {
481
- step,
482
- type,
483
- timestamp,
484
- payload
485
- }
486
- ]);
487
- }
488
- }
489
- }
490
- _putCheckpoint(inputMetadata) {
491
- const exiting = this.checkpointMetadata === inputMetadata;
492
- const doCheckpoint = this.checkpointer != null && (this.durability !== "exit" || exiting);
493
- const storeCheckpoint = (checkpoint) => {
494
- this.prevCheckpointConfig = this.checkpointConfig?.configurable?.checkpoint_id ? this.checkpointConfig : void 0;
495
- this.checkpointConfig = require_index.patchConfigurable(this.checkpointConfig, { [require_constants.CONFIG_KEY_CHECKPOINT_NS]: this.config.configurable?.checkpoint_ns ?? "" });
496
- const channelVersions = { ...this.checkpoint.channel_versions };
497
- const newVersions = require_index.getNewChannelVersions(this.checkpointPreviousVersions, channelVersions);
498
- this.checkpointPreviousVersions = channelVersions;
499
- this._checkpointerPutAfterPrevious({
500
- config: { ...this.checkpointConfig },
501
- checkpoint: (0, __langchain_langgraph_checkpoint.copyCheckpoint)(checkpoint),
502
- metadata: { ...this.checkpointMetadata },
503
- newVersions
504
- });
505
- this.checkpointConfig = {
506
- ...this.checkpointConfig,
507
- configurable: {
508
- ...this.checkpointConfig.configurable,
509
- checkpoint_id: this.checkpoint.id
510
- }
511
- };
512
- };
513
- if (!exiting) this.checkpointMetadata = {
514
- ...inputMetadata,
515
- step: this.step,
516
- parents: this.config.configurable?.[require_constants.CONFIG_KEY_CHECKPOINT_MAP] ?? {}
517
- };
518
- this.checkpoint = require_base.createCheckpoint(this.checkpoint, doCheckpoint ? this.channels : void 0, this.step, exiting ? { id: this.checkpoint.id } : void 0);
519
- if (doCheckpoint) storeCheckpoint(this.checkpoint);
520
- if (!exiting) this.step += 1;
521
- }
522
- _flushPendingWrites() {
523
- if (this.checkpointer == null) return;
524
- if (this.checkpointPendingWrites.length === 0) return;
525
- const config = require_index.patchConfigurable(this.checkpointConfig, {
526
- [require_constants.CONFIG_KEY_CHECKPOINT_NS]: this.config.configurable?.checkpoint_ns ?? "",
527
- [require_constants.CONFIG_KEY_CHECKPOINT_ID]: this.checkpoint.id
528
- });
529
- const byTask = {};
530
- for (const [tid, key, value] of this.checkpointPendingWrites) {
531
- byTask[tid] ??= [];
532
- byTask[tid].push([key, value]);
533
- }
534
- for (const [tid, ws] of Object.entries(byTask)) this.checkpointerPromises.push(this.checkpointer.putWrites(config, ws, tid));
535
- }
536
- _matchWrites(tasks) {
537
- for (const [tid, k, v] of this.checkpointPendingWrites) {
538
- if (k === require_constants.ERROR || k === require_constants.INTERRUPT || k === require_constants.RESUME) continue;
539
- const task = Object.values(tasks).find((t) => t.id === tid);
540
- if (task) task.writes.push([k, v]);
541
- }
542
- for (const task of Object.values(tasks)) if (task.writes.length > 0) this._outputWrites(task.id, task.writes, true);
543
- }
544
- };
545
-
546
- //#endregion
547
- exports.PregelLoop = PregelLoop;
548
- //# sourceMappingURL=loop.cjs.map