@langchain/langgraph 0.4.9 → 1.0.0-alpha.1

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 (505) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +1 -2
  3. package/dist/_virtual/rolldown_runtime.cjs +25 -0
  4. package/dist/channels/any_value.cjs +44 -63
  5. package/dist/channels/any_value.cjs.map +1 -0
  6. package/dist/channels/any_value.d.cts +24 -0
  7. package/dist/channels/any_value.d.cts.map +1 -0
  8. package/dist/channels/any_value.d.ts +16 -11
  9. package/dist/channels/any_value.d.ts.map +1 -0
  10. package/dist/channels/any_value.js +42 -57
  11. package/dist/channels/any_value.js.map +1 -1
  12. package/dist/channels/base.cjs +93 -133
  13. package/dist/channels/base.cjs.map +1 -0
  14. package/dist/channels/base.d.cts +79 -0
  15. package/dist/channels/base.d.cts.map +1 -0
  16. package/dist/channels/base.d.ts +77 -73
  17. package/dist/channels/base.d.ts.map +1 -0
  18. package/dist/channels/base.js +90 -127
  19. package/dist/channels/base.js.map +1 -1
  20. package/dist/channels/binop.cjs +47 -77
  21. package/dist/channels/binop.cjs.map +1 -0
  22. package/dist/channels/binop.d.cts +22 -0
  23. package/dist/channels/binop.d.cts.map +1 -0
  24. package/dist/channels/binop.d.ts +17 -12
  25. package/dist/channels/binop.d.ts.map +1 -0
  26. package/dist/channels/binop.js +45 -71
  27. package/dist/channels/binop.js.map +1 -1
  28. package/dist/channels/dynamic_barrier_value.cjs +72 -208
  29. package/dist/channels/dynamic_barrier_value.cjs.map +1 -0
  30. package/dist/channels/dynamic_barrier_value.d.cts +42 -0
  31. package/dist/channels/dynamic_barrier_value.d.cts.map +1 -0
  32. package/dist/channels/dynamic_barrier_value.d.ts +20 -35
  33. package/dist/channels/dynamic_barrier_value.d.ts.map +1 -0
  34. package/dist/channels/dynamic_barrier_value.js +69 -200
  35. package/dist/channels/dynamic_barrier_value.js.map +1 -1
  36. package/dist/channels/ephemeral_value.cjs +44 -70
  37. package/dist/channels/ephemeral_value.cjs.map +1 -0
  38. package/dist/channels/ephemeral_value.d.cts +22 -0
  39. package/dist/channels/ephemeral_value.d.cts.map +1 -0
  40. package/dist/channels/ephemeral_value.d.ts +18 -12
  41. package/dist/channels/ephemeral_value.d.ts.map +1 -0
  42. package/dist/channels/ephemeral_value.js +43 -65
  43. package/dist/channels/ephemeral_value.js.map +1 -1
  44. package/dist/channels/index.cjs +21 -10
  45. package/dist/channels/index.d.cts +9 -0
  46. package/dist/channels/index.d.ts +9 -7
  47. package/dist/channels/index.js +10 -3
  48. package/dist/channels/last_value.cjs +90 -140
  49. package/dist/channels/last_value.cjs.map +1 -0
  50. package/dist/channels/last_value.d.cts +42 -0
  51. package/dist/channels/last_value.d.cts.map +1 -0
  52. package/dist/channels/last_value.d.ts +27 -23
  53. package/dist/channels/last_value.d.ts.map +1 -0
  54. package/dist/channels/last_value.js +87 -133
  55. package/dist/channels/last_value.js.map +1 -1
  56. package/dist/channels/named_barrier_value.cjs +114 -170
  57. package/dist/channels/named_barrier_value.cjs.map +1 -0
  58. package/dist/channels/named_barrier_value.d.cts +46 -0
  59. package/dist/channels/named_barrier_value.d.cts.map +1 -0
  60. package/dist/channels/named_barrier_value.d.ts +32 -29
  61. package/dist/channels/named_barrier_value.d.ts.map +1 -0
  62. package/dist/channels/named_barrier_value.js +111 -163
  63. package/dist/channels/named_barrier_value.js.map +1 -1
  64. package/dist/channels/topic.cjs +63 -96
  65. package/dist/channels/topic.cjs.map +1 -0
  66. package/dist/channels/topic.d.cts +32 -0
  67. package/dist/channels/topic.d.cts.map +1 -0
  68. package/dist/channels/topic.d.ts +28 -19
  69. package/dist/channels/topic.d.ts.map +1 -0
  70. package/dist/channels/topic.js +61 -90
  71. package/dist/channels/topic.js.map +1 -1
  72. package/dist/constants.cjs +376 -452
  73. package/dist/constants.cjs.map +1 -0
  74. package/dist/constants.d.cts +285 -0
  75. package/dist/constants.d.cts.map +1 -0
  76. package/dist/constants.d.ts +113 -148
  77. package/dist/constants.d.ts.map +1 -0
  78. package/dist/constants.js +336 -444
  79. package/dist/constants.js.map +1 -1
  80. package/dist/errors.cjs +151 -179
  81. package/dist/errors.cjs.map +1 -0
  82. package/dist/errors.d.cts +81 -0
  83. package/dist/errors.d.cts.map +1 -0
  84. package/dist/errors.d.ts +56 -46
  85. package/dist/errors.d.ts.map +1 -0
  86. package/dist/errors.js +140 -165
  87. package/dist/errors.js.map +1 -1
  88. package/dist/func/index.cjs +292 -290
  89. package/dist/func/index.cjs.map +1 -0
  90. package/dist/func/index.d.cts +293 -0
  91. package/dist/func/index.d.cts.map +1 -0
  92. package/dist/func/index.d.ts +86 -72
  93. package/dist/func/index.d.ts.map +1 -0
  94. package/dist/func/index.js +288 -284
  95. package/dist/func/index.js.map +1 -1
  96. package/dist/func/types.d.cts +64 -0
  97. package/dist/func/types.d.cts.map +1 -0
  98. package/dist/func/types.d.ts +24 -19
  99. package/dist/func/types.d.ts.map +1 -0
  100. package/dist/graph/annotation.cjs +96 -120
  101. package/dist/graph/annotation.cjs.map +1 -0
  102. package/dist/graph/annotation.d.cts +116 -0
  103. package/dist/graph/annotation.d.cts.map +1 -0
  104. package/dist/graph/annotation.d.ts +33 -34
  105. package/dist/graph/annotation.d.ts.map +1 -0
  106. package/dist/graph/annotation.js +91 -112
  107. package/dist/graph/annotation.js.map +1 -1
  108. package/dist/graph/graph.cjs +419 -723
  109. package/dist/graph/graph.cjs.map +1 -0
  110. package/dist/graph/graph.d.cts +133 -0
  111. package/dist/graph/graph.d.cts.map +1 -0
  112. package/dist/graph/graph.d.ts +124 -91
  113. package/dist/graph/graph.d.ts.map +1 -0
  114. package/dist/graph/graph.js +412 -713
  115. package/dist/graph/graph.js.map +1 -1
  116. package/dist/graph/index.cjs +4 -17
  117. package/dist/graph/index.js +6 -5
  118. package/dist/graph/message.cjs +59 -104
  119. package/dist/graph/message.cjs.map +1 -0
  120. package/dist/graph/message.d.cts +19 -0
  121. package/dist/graph/message.d.cts.map +1 -0
  122. package/dist/graph/message.d.ts +11 -10
  123. package/dist/graph/message.d.ts.map +1 -0
  124. package/dist/graph/message.js +56 -98
  125. package/dist/graph/message.js.map +1 -1
  126. package/dist/graph/messages_annotation.cjs +106 -106
  127. package/dist/graph/messages_annotation.cjs.map +1 -0
  128. package/dist/graph/messages_annotation.d.cts +111 -0
  129. package/dist/graph/messages_annotation.d.cts.map +1 -0
  130. package/dist/graph/messages_annotation.d.ts +18 -9
  131. package/dist/graph/messages_annotation.d.ts.map +1 -0
  132. package/dist/graph/messages_annotation.js +100 -100
  133. package/dist/graph/messages_annotation.js.map +1 -1
  134. package/dist/graph/state.cjs +475 -779
  135. package/dist/graph/state.cjs.map +1 -0
  136. package/dist/graph/state.d.cts +231 -0
  137. package/dist/graph/state.d.cts.map +1 -0
  138. package/dist/graph/state.d.ts +148 -138
  139. package/dist/graph/state.d.ts.map +1 -0
  140. package/dist/graph/state.js +469 -769
  141. package/dist/graph/state.js.map +1 -1
  142. package/dist/graph/zod/index.cjs +10 -21
  143. package/dist/graph/zod/index.d.cts +3 -0
  144. package/dist/graph/zod/index.d.ts +3 -3
  145. package/dist/graph/zod/index.js +4 -4
  146. package/dist/graph/zod/meta.cjs +142 -177
  147. package/dist/graph/zod/meta.cjs.map +1 -0
  148. package/dist/graph/zod/meta.d.cts +116 -0
  149. package/dist/graph/zod/meta.d.cts.map +1 -0
  150. package/dist/graph/zod/meta.d.ts +99 -97
  151. package/dist/graph/zod/meta.d.ts.map +1 -0
  152. package/dist/graph/zod/meta.js +136 -170
  153. package/dist/graph/zod/meta.js.map +1 -1
  154. package/dist/graph/zod/plugin.cjs +36 -39
  155. package/dist/graph/zod/plugin.cjs.map +1 -0
  156. package/dist/graph/zod/plugin.js +34 -35
  157. package/dist/graph/zod/plugin.js.map +1 -1
  158. package/dist/graph/zod/schema.cjs +82 -110
  159. package/dist/graph/zod/schema.cjs.map +1 -0
  160. package/dist/graph/zod/schema.d.cts +38 -0
  161. package/dist/graph/zod/schema.d.cts.map +1 -0
  162. package/dist/graph/zod/schema.d.ts +12 -6
  163. package/dist/graph/zod/schema.d.ts.map +1 -0
  164. package/dist/graph/zod/schema.js +77 -103
  165. package/dist/graph/zod/schema.js.map +1 -1
  166. package/dist/graph/zod/zod-registry.cjs +41 -47
  167. package/dist/graph/zod/zod-registry.cjs.map +1 -0
  168. package/dist/graph/zod/zod-registry.d.cts +51 -0
  169. package/dist/graph/zod/zod-registry.d.cts.map +1 -0
  170. package/dist/graph/zod/zod-registry.d.ts +34 -26
  171. package/dist/graph/zod/zod-registry.d.ts.map +1 -0
  172. package/dist/graph/zod/zod-registry.js +37 -41
  173. package/dist/graph/zod/zod-registry.js.map +1 -1
  174. package/dist/hash.cjs +205 -267
  175. package/dist/hash.cjs.map +1 -0
  176. package/dist/hash.js +205 -265
  177. package/dist/hash.js.map +1 -1
  178. package/dist/index.cjs +111 -33
  179. package/dist/index.cjs.map +1 -0
  180. package/dist/index.d.cts +26 -0
  181. package/dist/index.d.ts +26 -5
  182. package/dist/index.js +19 -7
  183. package/dist/index.js.map +1 -1
  184. package/dist/interrupt.cjs +79 -85
  185. package/dist/interrupt.cjs.map +1 -0
  186. package/dist/interrupt.d.cts +49 -0
  187. package/dist/interrupt.d.cts.map +1 -0
  188. package/dist/interrupt.d.ts +6 -1
  189. package/dist/interrupt.d.ts.map +1 -0
  190. package/dist/interrupt.js +76 -80
  191. package/dist/interrupt.js.map +1 -1
  192. package/dist/prebuilt/agentName.cjs +139 -172
  193. package/dist/prebuilt/agentName.cjs.map +1 -0
  194. package/dist/prebuilt/agentName.d.cts +42 -0
  195. package/dist/prebuilt/agentName.d.cts.map +1 -0
  196. package/dist/prebuilt/agentName.d.ts +13 -21
  197. package/dist/prebuilt/agentName.d.ts.map +1 -0
  198. package/dist/prebuilt/agentName.js +139 -168
  199. package/dist/prebuilt/agentName.js.map +1 -1
  200. package/dist/prebuilt/agent_executor.cjs +42 -80
  201. package/dist/prebuilt/agent_executor.cjs.map +1 -0
  202. package/dist/prebuilt/agent_executor.d.cts +57 -0
  203. package/dist/prebuilt/agent_executor.d.cts.map +1 -0
  204. package/dist/prebuilt/agent_executor.d.ts +47 -38
  205. package/dist/prebuilt/agent_executor.d.ts.map +1 -0
  206. package/dist/prebuilt/agent_executor.js +40 -75
  207. package/dist/prebuilt/agent_executor.js.map +1 -1
  208. package/dist/prebuilt/chat_agent_executor.cjs +66 -128
  209. package/dist/prebuilt/chat_agent_executor.cjs.map +1 -0
  210. package/dist/prebuilt/chat_agent_executor.d.cts +23 -0
  211. package/dist/prebuilt/chat_agent_executor.d.cts.map +1 -0
  212. package/dist/prebuilt/chat_agent_executor.d.ts +18 -10
  213. package/dist/prebuilt/chat_agent_executor.d.ts.map +1 -0
  214. package/dist/prebuilt/chat_agent_executor.js +63 -123
  215. package/dist/prebuilt/chat_agent_executor.js.map +1 -1
  216. package/dist/prebuilt/index.cjs +15 -18
  217. package/dist/prebuilt/index.d.cts +8 -0
  218. package/dist/prebuilt/index.d.ts +8 -8
  219. package/dist/prebuilt/index.js +8 -7
  220. package/dist/prebuilt/interrupt.d.cts +73 -0
  221. package/dist/prebuilt/interrupt.d.cts.map +1 -0
  222. package/dist/prebuilt/interrupt.d.ts +32 -15
  223. package/dist/prebuilt/interrupt.d.ts.map +1 -0
  224. package/dist/prebuilt/react_agent_executor.cjs +317 -473
  225. package/dist/prebuilt/react_agent_executor.cjs.map +1 -0
  226. package/dist/prebuilt/react_agent_executor.d.cts +229 -0
  227. package/dist/prebuilt/react_agent_executor.d.cts.map +1 -0
  228. package/dist/prebuilt/react_agent_executor.d.ts +171 -143
  229. package/dist/prebuilt/react_agent_executor.d.ts.map +1 -0
  230. package/dist/prebuilt/react_agent_executor.js +315 -465
  231. package/dist/prebuilt/react_agent_executor.js.map +1 -1
  232. package/dist/prebuilt/tool_executor.cjs +45 -67
  233. package/dist/prebuilt/tool_executor.cjs.map +1 -0
  234. package/dist/prebuilt/tool_executor.d.cts +42 -0
  235. package/dist/prebuilt/tool_executor.d.cts.map +1 -0
  236. package/dist/prebuilt/tool_executor.d.ts +30 -24
  237. package/dist/prebuilt/tool_executor.d.ts.map +1 -0
  238. package/dist/prebuilt/tool_executor.js +44 -63
  239. package/dist/prebuilt/tool_executor.js.map +1 -1
  240. package/dist/prebuilt/tool_node.cjs +213 -275
  241. package/dist/prebuilt/tool_node.cjs.map +1 -0
  242. package/dist/prebuilt/tool_node.d.cts +151 -0
  243. package/dist/prebuilt/tool_node.d.cts.map +1 -0
  244. package/dist/prebuilt/tool_node.d.ts +30 -17
  245. package/dist/prebuilt/tool_node.d.ts.map +1 -0
  246. package/dist/prebuilt/tool_node.js +209 -268
  247. package/dist/prebuilt/tool_node.js.map +1 -1
  248. package/dist/pregel/algo.cjs +551 -692
  249. package/dist/pregel/algo.cjs.map +1 -0
  250. package/dist/pregel/algo.d.cts +13 -0
  251. package/dist/pregel/algo.d.cts.map +1 -0
  252. package/dist/pregel/algo.d.ts +8 -38
  253. package/dist/pregel/algo.d.ts.map +1 -0
  254. package/dist/pregel/algo.js +546 -683
  255. package/dist/pregel/algo.js.map +1 -1
  256. package/dist/pregel/call.cjs +46 -42
  257. package/dist/pregel/call.cjs.map +1 -0
  258. package/dist/pregel/call.js +43 -37
  259. package/dist/pregel/call.js.map +1 -1
  260. package/dist/pregel/debug.cjs +153 -223
  261. package/dist/pregel/debug.cjs.map +1 -0
  262. package/dist/pregel/debug.js +152 -215
  263. package/dist/pregel/debug.js.map +1 -1
  264. package/dist/pregel/index.cjs +1138 -1604
  265. package/dist/pregel/index.cjs.map +1 -0
  266. package/dist/pregel/index.d.cts +536 -0
  267. package/dist/pregel/index.d.cts.map +1 -0
  268. package/dist/pregel/index.d.ts +460 -422
  269. package/dist/pregel/index.d.ts.map +1 -0
  270. package/dist/pregel/index.js +1129 -1592
  271. package/dist/pregel/index.js.map +1 -1
  272. package/dist/pregel/io.cjs +127 -234
  273. package/dist/pregel/io.cjs.map +1 -0
  274. package/dist/pregel/io.js +122 -225
  275. package/dist/pregel/io.js.map +1 -1
  276. package/dist/pregel/loop.cjs +542 -954
  277. package/dist/pregel/loop.cjs.map +1 -0
  278. package/dist/pregel/loop.js +539 -948
  279. package/dist/pregel/loop.js.map +1 -1
  280. package/dist/pregel/messages.cjs +104 -196
  281. package/dist/pregel/messages.cjs.map +1 -0
  282. package/dist/pregel/messages.js +102 -191
  283. package/dist/pregel/messages.js.map +1 -1
  284. package/dist/pregel/read.cjs +150 -280
  285. package/dist/pregel/read.cjs.map +1 -0
  286. package/dist/pregel/read.d.cts +51 -0
  287. package/dist/pregel/read.d.cts.map +1 -0
  288. package/dist/pregel/read.d.ts +48 -46
  289. package/dist/pregel/read.d.ts.map +1 -0
  290. package/dist/pregel/read.js +147 -274
  291. package/dist/pregel/read.js.map +1 -1
  292. package/dist/pregel/remote.cjs +339 -458
  293. package/dist/pregel/remote.cjs.map +1 -0
  294. package/dist/pregel/remote.d.cts +121 -0
  295. package/dist/pregel/remote.d.cts.map +1 -0
  296. package/dist/pregel/remote.d.ts +79 -69
  297. package/dist/pregel/remote.d.ts.map +1 -0
  298. package/dist/pregel/remote.js +337 -453
  299. package/dist/pregel/remote.js.map +1 -1
  300. package/dist/pregel/retry.cjs +87 -138
  301. package/dist/pregel/retry.cjs.map +1 -0
  302. package/dist/pregel/retry.js +83 -130
  303. package/dist/pregel/retry.js.map +1 -1
  304. package/dist/pregel/runnable_types.d.cts +49 -0
  305. package/dist/pregel/runnable_types.d.cts.map +1 -0
  306. package/dist/pregel/runnable_types.d.ts +47 -17
  307. package/dist/pregel/runnable_types.d.ts.map +1 -0
  308. package/dist/pregel/runner.cjs +222 -315
  309. package/dist/pregel/runner.cjs.map +1 -0
  310. package/dist/pregel/runner.js +219 -308
  311. package/dist/pregel/runner.js.map +1 -1
  312. package/dist/pregel/stream.cjs +89 -130
  313. package/dist/pregel/stream.cjs.map +1 -0
  314. package/dist/pregel/stream.js +87 -125
  315. package/dist/pregel/stream.js.map +1 -1
  316. package/dist/pregel/types.cjs +25 -62
  317. package/dist/pregel/types.cjs.map +1 -0
  318. package/dist/pregel/types.d.cts +440 -0
  319. package/dist/pregel/types.d.cts.map +1 -0
  320. package/dist/pregel/types.d.ts +381 -432
  321. package/dist/pregel/types.d.ts.map +1 -0
  322. package/dist/pregel/types.js +23 -57
  323. package/dist/pregel/types.js.map +1 -1
  324. package/dist/pregel/utils/config.cjs +101 -147
  325. package/dist/pregel/utils/config.cjs.map +1 -0
  326. package/dist/pregel/utils/config.d.cts +36 -0
  327. package/dist/pregel/utils/config.d.cts.map +1 -0
  328. package/dist/pregel/utils/config.d.ts +12 -9
  329. package/dist/pregel/utils/config.d.ts.map +1 -0
  330. package/dist/pregel/utils/config.js +99 -143
  331. package/dist/pregel/utils/config.js.map +1 -1
  332. package/dist/pregel/utils/index.cjs +87 -125
  333. package/dist/pregel/utils/index.cjs.map +1 -0
  334. package/dist/pregel/utils/index.d.cts +51 -0
  335. package/dist/pregel/utils/index.d.cts.map +1 -0
  336. package/dist/pregel/utils/index.d.ts +45 -61
  337. package/dist/pregel/utils/index.d.ts.map +1 -0
  338. package/dist/pregel/utils/index.js +86 -120
  339. package/dist/pregel/utils/index.js.map +1 -1
  340. package/dist/pregel/utils/subgraph.cjs +15 -26
  341. package/dist/pregel/utils/subgraph.cjs.map +1 -0
  342. package/dist/pregel/utils/subgraph.js +12 -21
  343. package/dist/pregel/utils/subgraph.js.map +1 -1
  344. package/dist/pregel/validate.cjs +42 -92
  345. package/dist/pregel/validate.cjs.map +1 -0
  346. package/dist/pregel/validate.js +39 -84
  347. package/dist/pregel/validate.js.map +1 -1
  348. package/dist/pregel/write.cjs +87 -137
  349. package/dist/pregel/write.cjs.map +1 -0
  350. package/dist/pregel/write.d.cts +35 -0
  351. package/dist/pregel/write.d.cts.map +1 -0
  352. package/dist/pregel/write.d.ts +27 -23
  353. package/dist/pregel/write.d.ts.map +1 -0
  354. package/dist/pregel/write.js +83 -131
  355. package/dist/pregel/write.js.map +1 -1
  356. package/dist/remote.cjs +3 -6
  357. package/dist/remote.d.cts +2 -0
  358. package/dist/remote.d.ts +2 -1
  359. package/dist/remote.js +3 -2
  360. package/dist/setup/async_local_storage.cjs +10 -7
  361. package/dist/setup/async_local_storage.cjs.map +1 -0
  362. package/dist/setup/async_local_storage.js +7 -2
  363. package/dist/setup/async_local_storage.js.map +1 -1
  364. package/dist/ui/index.cjs +4 -0
  365. package/dist/ui/index.d.cts +5 -0
  366. package/dist/ui/index.d.ts +5 -0
  367. package/dist/ui/index.js +3 -0
  368. package/dist/ui/stream.cjs +145 -0
  369. package/dist/ui/stream.cjs.map +1 -0
  370. package/dist/ui/stream.d.cts +25 -0
  371. package/dist/ui/stream.d.cts.map +1 -0
  372. package/dist/ui/stream.d.ts +25 -0
  373. package/dist/ui/stream.d.ts.map +1 -0
  374. package/dist/ui/stream.js +143 -0
  375. package/dist/ui/stream.js.map +1 -0
  376. package/dist/ui/types.infer.d.cts +53 -0
  377. package/dist/ui/types.infer.d.cts.map +1 -0
  378. package/dist/ui/types.infer.d.ts +53 -0
  379. package/dist/ui/types.infer.d.ts.map +1 -0
  380. package/dist/ui/types.message.d.cts +95 -0
  381. package/dist/ui/types.message.d.cts.map +1 -0
  382. package/dist/ui/types.message.d.ts +95 -0
  383. package/dist/ui/types.message.d.ts.map +1 -0
  384. package/dist/ui/types.schema.d.cts +228 -0
  385. package/dist/ui/types.schema.d.cts.map +1 -0
  386. package/dist/ui/types.schema.d.ts +228 -0
  387. package/dist/ui/types.schema.d.ts.map +1 -0
  388. package/dist/utils.cjs +77 -147
  389. package/dist/utils.cjs.map +1 -0
  390. package/dist/utils.d.cts +32 -0
  391. package/dist/utils.d.cts.map +1 -0
  392. package/dist/utils.d.ts +29 -25
  393. package/dist/utils.d.ts.map +1 -0
  394. package/dist/utils.js +73 -140
  395. package/dist/utils.js.map +1 -1
  396. package/dist/web.cjs +96 -55
  397. package/dist/web.d.cts +23 -0
  398. package/dist/web.d.ts +23 -14
  399. package/dist/web.js +15 -8
  400. package/dist/writer.cjs +15 -0
  401. package/dist/writer.cjs.map +1 -0
  402. package/dist/writer.d.cts +5 -0
  403. package/dist/writer.d.cts.map +1 -0
  404. package/dist/writer.d.ts +5 -0
  405. package/dist/writer.d.ts.map +1 -0
  406. package/dist/writer.js +14 -0
  407. package/dist/writer.js.map +1 -0
  408. package/package.json +90 -83
  409. package/dist/channels/index.js.map +0 -1
  410. package/dist/func/types.cjs +0 -15
  411. package/dist/func/types.js +0 -12
  412. package/dist/func/types.js.map +0 -1
  413. package/dist/graph/index.d.ts +0 -4
  414. package/dist/graph/index.js.map +0 -1
  415. package/dist/graph/message.test.cjs +0 -196
  416. package/dist/graph/message.test.d.ts +0 -1
  417. package/dist/graph/message.test.js +0 -194
  418. package/dist/graph/message.test.js.map +0 -1
  419. package/dist/graph/zod/index.js.map +0 -1
  420. package/dist/graph/zod/plugin.d.ts +0 -28
  421. package/dist/hash.d.ts +0 -2
  422. package/dist/prebuilt/index.js.map +0 -1
  423. package/dist/prebuilt/interrupt.cjs +0 -3
  424. package/dist/prebuilt/interrupt.js +0 -2
  425. package/dist/prebuilt/interrupt.js.map +0 -1
  426. package/dist/pregel/call.d.ts +0 -16
  427. package/dist/pregel/debug.d.ts +0 -41
  428. package/dist/pregel/debug.test.cjs +0 -258
  429. package/dist/pregel/debug.test.d.ts +0 -1
  430. package/dist/pregel/debug.test.js +0 -256
  431. package/dist/pregel/debug.test.js.map +0 -1
  432. package/dist/pregel/io.d.ts +0 -30
  433. package/dist/pregel/io.mapCommand.test.cjs +0 -150
  434. package/dist/pregel/io.mapCommand.test.d.ts +0 -1
  435. package/dist/pregel/io.mapCommand.test.js +0 -148
  436. package/dist/pregel/io.mapCommand.test.js.map +0 -1
  437. package/dist/pregel/loop.d.ts +0 -147
  438. package/dist/pregel/messages.d.ts +0 -30
  439. package/dist/pregel/messages.test.cjs +0 -369
  440. package/dist/pregel/messages.test.d.ts +0 -1
  441. package/dist/pregel/messages.test.js +0 -367
  442. package/dist/pregel/messages.test.js.map +0 -1
  443. package/dist/pregel/read.test.cjs +0 -194
  444. package/dist/pregel/read.test.d.ts +0 -1
  445. package/dist/pregel/read.test.js +0 -192
  446. package/dist/pregel/read.test.js.map +0 -1
  447. package/dist/pregel/retry.d.ts +0 -17
  448. package/dist/pregel/runnable_types.cjs +0 -3
  449. package/dist/pregel/runnable_types.js +0 -2
  450. package/dist/pregel/runnable_types.js.map +0 -1
  451. package/dist/pregel/runner.d.ts +0 -79
  452. package/dist/pregel/runner.test.cjs +0 -66
  453. package/dist/pregel/runner.test.d.ts +0 -1
  454. package/dist/pregel/runner.test.js +0 -64
  455. package/dist/pregel/runner.test.js.map +0 -1
  456. package/dist/pregel/stream.d.ts +0 -40
  457. package/dist/pregel/utils/config.test.cjs +0 -214
  458. package/dist/pregel/utils/config.test.d.ts +0 -1
  459. package/dist/pregel/utils/config.test.js +0 -212
  460. package/dist/pregel/utils/config.test.js.map +0 -1
  461. package/dist/pregel/utils/subgraph.d.ts +0 -4
  462. package/dist/pregel/utils/subgraph.test.cjs +0 -83
  463. package/dist/pregel/utils/subgraph.test.d.ts +0 -1
  464. package/dist/pregel/utils/subgraph.test.js +0 -81
  465. package/dist/pregel/utils/subgraph.test.js.map +0 -1
  466. package/dist/pregel/validate.d.ts +0 -16
  467. package/dist/pregel/validate.test.cjs +0 -220
  468. package/dist/pregel/validate.test.d.ts +0 -1
  469. package/dist/pregel/validate.test.js +0 -218
  470. package/dist/pregel/validate.test.js.map +0 -1
  471. package/dist/pregel/write.test.cjs +0 -181
  472. package/dist/pregel/write.test.d.ts +0 -1
  473. package/dist/pregel/write.test.js +0 -179
  474. package/dist/pregel/write.test.js.map +0 -1
  475. package/dist/remote.js.map +0 -1
  476. package/dist/setup/async_local_storage.d.ts +0 -1
  477. package/dist/web.js.map +0 -1
  478. package/index.cjs +0 -1
  479. package/index.d.cts +0 -1
  480. package/index.d.ts +0 -1
  481. package/index.js +0 -1
  482. package/prebuilt.cjs +0 -1
  483. package/prebuilt.d.cts +0 -1
  484. package/prebuilt.d.ts +0 -1
  485. package/prebuilt.js +0 -1
  486. package/pregel.cjs +0 -1
  487. package/pregel.d.cts +0 -1
  488. package/pregel.d.ts +0 -1
  489. package/pregel.js +0 -1
  490. package/remote.cjs +0 -1
  491. package/remote.d.cts +0 -1
  492. package/remote.d.ts +0 -1
  493. package/remote.js +0 -1
  494. package/web.cjs +0 -1
  495. package/web.d.cts +0 -1
  496. package/web.d.ts +0 -1
  497. package/web.js +0 -1
  498. package/zod/schema.cjs +0 -1
  499. package/zod/schema.d.cts +0 -1
  500. package/zod/schema.d.ts +0 -1
  501. package/zod/schema.js +0 -1
  502. package/zod.cjs +0 -1
  503. package/zod.d.cts +0 -1
  504. package/zod.d.ts +0 -1
  505. package/zod.js +0 -1
@@ -1,143 +1,95 @@
1
- import { Runnable, } from "@langchain/core/runnables";
2
- import { _isSend, CONFIG_KEY_SEND, TASKS } from "../constants.js";
3
- import { RunnableCallable } from "../utils.js";
4
1
  import { InvalidUpdateError } from "../errors.js";
5
- export const SKIP_WRITE = {
6
- [Symbol.for("LG_SKIP_WRITE")]: true,
7
- };
2
+ import { CONFIG_KEY_SEND, TASKS, _isSend } from "../constants.js";
3
+ import { RunnableCallable } from "../utils.js";
4
+ import { Runnable } from "@langchain/core/runnables";
5
+
6
+ //#region src/pregel/write.ts
7
+ const SKIP_WRITE = { [Symbol.for("LG_SKIP_WRITE")]: true };
8
8
  function _isSkipWrite(x) {
9
- return (typeof x === "object" &&
10
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
- x?.[Symbol.for("LG_SKIP_WRITE")] !== undefined);
9
+ return typeof x === "object" && x?.[Symbol.for("LG_SKIP_WRITE")] !== void 0;
12
10
  }
13
- export const PASSTHROUGH = {
14
- [Symbol.for("LG_PASSTHROUGH")]: true,
15
- };
11
+ const PASSTHROUGH = { [Symbol.for("LG_PASSTHROUGH")]: true };
16
12
  function _isPassthrough(x) {
17
- return (typeof x === "object" &&
18
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
- x?.[Symbol.for("LG_PASSTHROUGH")] !== undefined);
13
+ return typeof x === "object" && x?.[Symbol.for("LG_PASSTHROUGH")] !== void 0;
20
14
  }
21
15
  const IS_WRITER = Symbol("IS_WRITER");
22
16
  /**
23
- * Mapping of write channels to Runnables that return the value to be written,
24
- * or None to skip writing.
25
- */
26
- export class ChannelWrite extends RunnableCallable {
27
- constructor(writes, tags) {
28
- const name = `ChannelWrite<${writes
29
- .map((packet) => {
30
- if (_isSend(packet)) {
31
- return packet.node;
32
- }
33
- else if ("channel" in packet) {
34
- return packet.channel;
35
- }
36
- return "...";
37
- })
38
- .join(",")}>`;
39
- super({
40
- ...{ writes, name, tags },
41
- func: async (input, config) => {
42
- return this._write(input, config ?? {});
43
- },
44
- });
45
- Object.defineProperty(this, "writes", {
46
- enumerable: true,
47
- configurable: true,
48
- writable: true,
49
- value: void 0
50
- });
51
- this.writes = writes;
52
- }
53
- async _write(input, config) {
54
- const writes = this.writes.map((write) => {
55
- if (_isChannelWriteTupleEntry(write) && _isPassthrough(write.value)) {
56
- return {
57
- mapper: write.mapper,
58
- value: input,
59
- };
60
- }
61
- else if (_isChannelWriteEntry(write) && _isPassthrough(write.value)) {
62
- return {
63
- channel: write.channel,
64
- value: input,
65
- skipNone: write.skipNone,
66
- mapper: write.mapper,
67
- };
68
- }
69
- else {
70
- return write;
71
- }
72
- });
73
- await ChannelWrite.doWrite(config, writes);
74
- return input;
75
- }
76
- // TODO: Support requireAtLeastOneOf
77
- static async doWrite(config, writes) {
78
- // validate
79
- for (const w of writes) {
80
- if (_isChannelWriteEntry(w)) {
81
- if (w.channel === TASKS) {
82
- throw new InvalidUpdateError("Cannot write to the reserved channel TASKS");
83
- }
84
- if (_isPassthrough(w.value)) {
85
- throw new InvalidUpdateError("PASSTHROUGH value must be replaced");
86
- }
87
- }
88
- if (_isChannelWriteTupleEntry(w)) {
89
- if (_isPassthrough(w.value)) {
90
- throw new InvalidUpdateError("PASSTHROUGH value must be replaced");
91
- }
92
- }
93
- }
94
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
- const writeEntries = [];
96
- for (const w of writes) {
97
- if (_isSend(w)) {
98
- writeEntries.push([TASKS, w]);
99
- }
100
- else if (_isChannelWriteTupleEntry(w)) {
101
- const mappedResult = await w.mapper.invoke(w.value, config);
102
- if (mappedResult != null && mappedResult.length > 0) {
103
- writeEntries.push(...mappedResult);
104
- }
105
- }
106
- else if (_isChannelWriteEntry(w)) {
107
- const mappedValue = w.mapper !== undefined
108
- ? await w.mapper.invoke(w.value, config)
109
- : w.value;
110
- if (_isSkipWrite(mappedValue)) {
111
- continue;
112
- }
113
- if (w.skipNone && mappedValue === undefined) {
114
- continue;
115
- }
116
- writeEntries.push([w.channel, mappedValue]);
117
- }
118
- else {
119
- throw new Error(`Invalid write entry: ${JSON.stringify(w)}`);
120
- }
121
- }
122
- const write = config.configurable?.[CONFIG_KEY_SEND];
123
- write(writeEntries);
124
- }
125
- static isWriter(runnable) {
126
- return (
127
- // eslint-disable-next-line no-instanceof/no-instanceof
128
- runnable instanceof ChannelWrite ||
129
- (IS_WRITER in runnable && !!runnable[IS_WRITER]));
130
- }
131
- static registerWriter(runnable) {
132
- return Object.defineProperty(runnable, IS_WRITER, { value: true });
133
- }
134
- }
17
+ * Mapping of write channels to Runnables that return the value to be written,
18
+ * or None to skip writing.
19
+ */
20
+ var ChannelWrite = class ChannelWrite extends RunnableCallable {
21
+ writes;
22
+ constructor(writes, tags) {
23
+ const name = `ChannelWrite<${writes.map((packet) => {
24
+ if (_isSend(packet)) return packet.node;
25
+ else if ("channel" in packet) return packet.channel;
26
+ return "...";
27
+ }).join(",")}>`;
28
+ super({
29
+ writes,
30
+ name,
31
+ tags,
32
+ func: async (input, config) => {
33
+ return this._write(input, config ?? {});
34
+ }
35
+ });
36
+ this.writes = writes;
37
+ }
38
+ async _write(input, config) {
39
+ const writes = this.writes.map((write) => {
40
+ if (_isChannelWriteTupleEntry(write) && _isPassthrough(write.value)) return {
41
+ mapper: write.mapper,
42
+ value: input
43
+ };
44
+ else if (_isChannelWriteEntry(write) && _isPassthrough(write.value)) return {
45
+ channel: write.channel,
46
+ value: input,
47
+ skipNone: write.skipNone,
48
+ mapper: write.mapper
49
+ };
50
+ else return write;
51
+ });
52
+ await ChannelWrite.doWrite(config, writes);
53
+ return input;
54
+ }
55
+ static async doWrite(config, writes) {
56
+ for (const w of writes) {
57
+ if (_isChannelWriteEntry(w)) {
58
+ if (w.channel === TASKS) throw new InvalidUpdateError("Cannot write to the reserved channel TASKS");
59
+ if (_isPassthrough(w.value)) throw new InvalidUpdateError("PASSTHROUGH value must be replaced");
60
+ }
61
+ if (_isChannelWriteTupleEntry(w)) {
62
+ if (_isPassthrough(w.value)) throw new InvalidUpdateError("PASSTHROUGH value must be replaced");
63
+ }
64
+ }
65
+ const writeEntries = [];
66
+ for (const w of writes) if (_isSend(w)) writeEntries.push([TASKS, w]);
67
+ else if (_isChannelWriteTupleEntry(w)) {
68
+ const mappedResult = await w.mapper.invoke(w.value, config);
69
+ if (mappedResult != null && mappedResult.length > 0) writeEntries.push(...mappedResult);
70
+ } else if (_isChannelWriteEntry(w)) {
71
+ const mappedValue = w.mapper !== void 0 ? await w.mapper.invoke(w.value, config) : w.value;
72
+ if (_isSkipWrite(mappedValue)) continue;
73
+ if (w.skipNone && mappedValue === void 0) continue;
74
+ writeEntries.push([w.channel, mappedValue]);
75
+ } else throw new Error(`Invalid write entry: ${JSON.stringify(w)}`);
76
+ const write = config.configurable?.[CONFIG_KEY_SEND];
77
+ write(writeEntries);
78
+ }
79
+ static isWriter(runnable) {
80
+ return runnable instanceof ChannelWrite || IS_WRITER in runnable && !!runnable[IS_WRITER];
81
+ }
82
+ static registerWriter(runnable) {
83
+ return Object.defineProperty(runnable, IS_WRITER, { value: true });
84
+ }
85
+ };
135
86
  function _isChannelWriteEntry(x) {
136
- return (x !== undefined && typeof x.channel === "string");
87
+ return x !== void 0 && typeof x.channel === "string";
137
88
  }
138
89
  function _isChannelWriteTupleEntry(x) {
139
- return (x !== undefined &&
140
- !_isChannelWriteEntry(x) &&
141
- Runnable.isRunnable(x.mapper));
90
+ return x !== void 0 && !_isChannelWriteEntry(x) && Runnable.isRunnable(x.mapper);
142
91
  }
92
+
93
+ //#endregion
94
+ export { ChannelWrite, PASSTHROUGH };
143
95
  //# sourceMappingURL=write.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/pregel/write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write.js","names":["writeEntries: [string, any][]","write: TYPE_SEND"],"sources":["../../src/pregel/write.ts"],"sourcesContent":["import {\n Runnable,\n RunnableConfig,\n RunnableLike,\n} from \"@langchain/core/runnables\";\nimport { _isSend, CONFIG_KEY_SEND, Send, TASKS } from \"../constants.js\";\nimport { RunnableCallable } from \"../utils.js\";\nimport { InvalidUpdateError } from \"../errors.js\";\n\ntype TYPE_SEND = (values: Array<[string, unknown]>) => void;\n\nexport const SKIP_WRITE = {\n [Symbol.for(\"LG_SKIP_WRITE\")]: true,\n};\n\nfunction _isSkipWrite(x: unknown) {\n return (\n typeof x === \"object\" &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (x as any)?.[Symbol.for(\"LG_SKIP_WRITE\")] !== undefined\n );\n}\n\nexport const PASSTHROUGH = {\n [Symbol.for(\"LG_PASSTHROUGH\")]: true,\n};\n\nfunction _isPassthrough(x: unknown) {\n return (\n typeof x === \"object\" &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (x as any)?.[Symbol.for(\"LG_PASSTHROUGH\")] !== undefined\n );\n}\n\nconst IS_WRITER = Symbol(\"IS_WRITER\");\n\n/**\n * Mapping of write channels to Runnables that return the value to be written,\n * or None to skip writing.\n */\nexport class ChannelWrite<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput = any\n> extends RunnableCallable<RunInput, RunInput> {\n writes: Array<ChannelWriteEntry | ChannelWriteTupleEntry | Send>;\n\n constructor(\n writes: Array<ChannelWriteEntry | ChannelWriteTupleEntry | Send>,\n tags?: string[]\n ) {\n const name = `ChannelWrite<${writes\n .map((packet) => {\n if (_isSend(packet)) {\n return packet.node;\n } else if (\"channel\" in packet) {\n return packet.channel;\n }\n return \"...\";\n })\n .join(\",\")}>`;\n super({\n ...{ writes, name, tags },\n func: async (input: RunInput, config?: RunnableConfig) => {\n return this._write(input, config ?? {});\n },\n });\n\n this.writes = writes;\n }\n\n async _write(input: unknown, config: RunnableConfig): Promise<unknown> {\n const writes = this.writes.map((write) => {\n if (_isChannelWriteTupleEntry(write) && _isPassthrough(write.value)) {\n return {\n mapper: write.mapper,\n value: input,\n };\n } else if (_isChannelWriteEntry(write) && _isPassthrough(write.value)) {\n return {\n channel: write.channel,\n value: input,\n skipNone: write.skipNone,\n mapper: write.mapper,\n };\n } else {\n return write;\n }\n });\n await ChannelWrite.doWrite(config, writes);\n return input;\n }\n\n // TODO: Support requireAtLeastOneOf\n static async doWrite(\n config: RunnableConfig,\n writes: (ChannelWriteEntry | ChannelWriteTupleEntry | Send)[]\n ): Promise<void> {\n // validate\n for (const w of writes) {\n if (_isChannelWriteEntry(w)) {\n if (w.channel === TASKS) {\n throw new InvalidUpdateError(\n \"Cannot write to the reserved channel TASKS\"\n );\n }\n if (_isPassthrough(w.value)) {\n throw new InvalidUpdateError(\"PASSTHROUGH value must be replaced\");\n }\n }\n if (_isChannelWriteTupleEntry(w)) {\n if (_isPassthrough(w.value)) {\n throw new InvalidUpdateError(\"PASSTHROUGH value must be replaced\");\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const writeEntries: [string, any][] = [];\n for (const w of writes) {\n if (_isSend(w)) {\n writeEntries.push([TASKS, w]);\n } else if (_isChannelWriteTupleEntry(w)) {\n const mappedResult = await w.mapper.invoke(w.value, config);\n if (mappedResult != null && mappedResult.length > 0) {\n writeEntries.push(...mappedResult);\n }\n } else if (_isChannelWriteEntry(w)) {\n const mappedValue =\n w.mapper !== undefined\n ? await w.mapper.invoke(w.value, config)\n : w.value;\n if (_isSkipWrite(mappedValue)) {\n continue;\n }\n if (w.skipNone && mappedValue === undefined) {\n continue;\n }\n writeEntries.push([w.channel, mappedValue]);\n } else {\n throw new Error(`Invalid write entry: ${JSON.stringify(w)}`);\n }\n }\n const write: TYPE_SEND = config.configurable?.[CONFIG_KEY_SEND];\n write(writeEntries);\n }\n\n static isWriter(runnable: RunnableLike): runnable is ChannelWrite {\n return (\n // eslint-disable-next-line no-instanceof/no-instanceof\n runnable instanceof ChannelWrite ||\n (IS_WRITER in runnable && !!runnable[IS_WRITER])\n );\n }\n\n static registerWriter<T extends Runnable>(runnable: T): T {\n return Object.defineProperty(runnable, IS_WRITER, { value: true });\n }\n}\n\nexport interface ChannelWriteEntry {\n channel: string;\n value: unknown;\n skipNone?: boolean;\n mapper?: Runnable;\n}\n\nfunction _isChannelWriteEntry(x: unknown): x is ChannelWriteEntry {\n return (\n x !== undefined && typeof (x as ChannelWriteEntry).channel === \"string\"\n );\n}\n\nexport interface ChannelWriteTupleEntry {\n value: unknown;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n mapper: Runnable<any, [string, any][]>;\n}\n\nfunction _isChannelWriteTupleEntry(x: unknown): x is ChannelWriteTupleEntry {\n return (\n x !== undefined &&\n !_isChannelWriteEntry(x) &&\n Runnable.isRunnable((x as ChannelWriteTupleEntry).mapper)\n );\n}\n"],"mappings":";;;;;;AAWA,MAAa,aAAa,GACvB,OAAO,IAAI,mBAAmB;AAGjC,SAAS,aAAa,GAAY;AAChC,QACE,OAAO,MAAM,YAEZ,IAAY,OAAO,IAAI,sBAAsB;;AAIlD,MAAa,cAAc,GACxB,OAAO,IAAI,oBAAoB;AAGlC,SAAS,eAAe,GAAY;AAClC,QACE,OAAO,MAAM,YAEZ,IAAY,OAAO,IAAI,uBAAuB;;AAInD,MAAM,YAAY,OAAO;;;;;AAMzB,IAAa,eAAb,MAAa,qBAGH,iBAAqC;CAC7C;CAEA,YACE,QACA,MACA;EACA,MAAM,OAAO,gBAAgB,OAC1B,KAAK,WAAW;AACf,OAAI,QAAQ,QACV,QAAO,OAAO;YACL,aAAa,OACtB,QAAO,OAAO;AAEhB,UAAO;KAER,KAAK,KAAK;AACb,QAAM;GACC;GAAQ;GAAM;GACnB,MAAM,OAAO,OAAiB,WAA4B;AACxD,WAAO,KAAK,OAAO,OAAO,UAAU;;;AAIxC,OAAK,SAAS;;CAGhB,MAAM,OAAO,OAAgB,QAA0C;EACrE,MAAM,SAAS,KAAK,OAAO,KAAK,UAAU;AACxC,OAAI,0BAA0B,UAAU,eAAe,MAAM,OAC3D,QAAO;IACL,QAAQ,MAAM;IACd,OAAO;;YAEA,qBAAqB,UAAU,eAAe,MAAM,OAC7D,QAAO;IACL,SAAS,MAAM;IACf,OAAO;IACP,UAAU,MAAM;IAChB,QAAQ,MAAM;;OAGhB,QAAO;;AAGX,QAAM,aAAa,QAAQ,QAAQ;AACnC,SAAO;;CAIT,aAAa,QACX,QACA,QACe;AAEf,OAAK,MAAM,KAAK,QAAQ;AACtB,OAAI,qBAAqB,IAAI;AAC3B,QAAI,EAAE,YAAY,MAChB,OAAM,IAAI,mBACR;AAGJ,QAAI,eAAe,EAAE,OACnB,OAAM,IAAI,mBAAmB;;AAGjC,OAAI,0BAA0B,IAC5B;QAAI,eAAe,EAAE,OACnB,OAAM,IAAI,mBAAmB;;;EAKnC,MAAMA,eAAgC;AACtC,OAAK,MAAM,KAAK,OACd,KAAI,QAAQ,GACV,cAAa,KAAK,CAAC,OAAO;WACjB,0BAA0B,IAAI;GACvC,MAAM,eAAe,MAAM,EAAE,OAAO,OAAO,EAAE,OAAO;AACpD,OAAI,gBAAgB,QAAQ,aAAa,SAAS,EAChD,cAAa,KAAK,GAAG;aAEd,qBAAqB,IAAI;GAClC,MAAM,cACJ,EAAE,WAAW,SACT,MAAM,EAAE,OAAO,OAAO,EAAE,OAAO,UAC/B,EAAE;AACR,OAAI,aAAa,aACf;AAEF,OAAI,EAAE,YAAY,gBAAgB,OAChC;AAEF,gBAAa,KAAK,CAAC,EAAE,SAAS;QAE9B,OAAM,IAAI,MAAM,wBAAwB,KAAK,UAAU;EAG3D,MAAMC,QAAmB,OAAO,eAAe;AAC/C,QAAM;;CAGR,OAAO,SAAS,UAAkD;AAChE,SAEE,oBAAoB,gBACnB,aAAa,YAAY,CAAC,CAAC,SAAS;;CAIzC,OAAO,eAAmC,UAAgB;AACxD,SAAO,OAAO,eAAe,UAAU,WAAW,EAAE,OAAO;;;AAW/D,SAAS,qBAAqB,GAAoC;AAChE,QACE,MAAM,UAAa,OAAQ,EAAwB,YAAY;;AAUnE,SAAS,0BAA0B,GAAyC;AAC1E,QACE,MAAM,UACN,CAAC,qBAAqB,MACtB,SAAS,WAAY,EAA6B"}
package/dist/remote.cjs CHANGED
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RemoteGraph = void 0;
4
- var remote_js_1 = require("./pregel/remote.cjs");
5
- Object.defineProperty(exports, "RemoteGraph", { enumerable: true, get: function () { return remote_js_1.RemoteGraph; } });
6
- //# sourceMappingURL=remote.js.map
1
+ const require_remote = require('./pregel/remote.cjs');
2
+
3
+ exports.RemoteGraph = require_remote.RemoteGraph;
@@ -0,0 +1,2 @@
1
+ import { RemoteGraph, RemoteGraphParams } from "./pregel/remote.cjs";
2
+ export { RemoteGraph, type RemoteGraphParams };
package/dist/remote.d.ts CHANGED
@@ -1 +1,2 @@
1
- export { RemoteGraph, type RemoteGraphParams } from "./pregel/remote.js";
1
+ import { RemoteGraph, RemoteGraphParams } from "./pregel/remote.js";
2
+ export { RemoteGraph, type RemoteGraphParams };
package/dist/remote.js CHANGED
@@ -1,2 +1,3 @@
1
- export { RemoteGraph } from "./pregel/remote.js";
2
- //# sourceMappingURL=remote.js.map
1
+ import { RemoteGraph } from "./pregel/remote.js";
2
+
3
+ export { RemoteGraph };
@@ -1,9 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initializeAsyncLocalStorageSingleton = initializeAsyncLocalStorageSingleton;
4
- const singletons_1 = require("@langchain/core/singletons");
5
- const node_async_hooks_1 = require("node:async_hooks");
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const __langchain_core_singletons = require_rolldown_runtime.__toESM(require("@langchain/core/singletons"));
3
+ const node_async_hooks = require_rolldown_runtime.__toESM(require("node:async_hooks"));
4
+
5
+ //#region src/setup/async_local_storage.ts
6
6
  function initializeAsyncLocalStorageSingleton() {
7
- singletons_1.AsyncLocalStorageProviderSingleton.initializeGlobalInstance(new node_async_hooks_1.AsyncLocalStorage());
7
+ __langchain_core_singletons.AsyncLocalStorageProviderSingleton.initializeGlobalInstance(new node_async_hooks.AsyncLocalStorage());
8
8
  }
9
- //# sourceMappingURL=async_local_storage.js.map
9
+
10
+ //#endregion
11
+ exports.initializeAsyncLocalStorageSingleton = initializeAsyncLocalStorageSingleton;
12
+ //# sourceMappingURL=async_local_storage.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async_local_storage.cjs","names":["AsyncLocalStorage"],"sources":["../../src/setup/async_local_storage.ts"],"sourcesContent":["import { AsyncLocalStorageProviderSingleton } from \"@langchain/core/singletons\";\nimport { AsyncLocalStorage } from \"node:async_hooks\";\n\nexport function initializeAsyncLocalStorageSingleton() {\n AsyncLocalStorageProviderSingleton.initializeGlobalInstance(\n new AsyncLocalStorage()\n );\n}\n"],"mappings":";;;;;AAGA,SAAgB,uCAAuC;AACrD,gEAAmC,yBACjC,IAAIA"}
@@ -1,6 +1,11 @@
1
1
  import { AsyncLocalStorageProviderSingleton } from "@langchain/core/singletons";
2
2
  import { AsyncLocalStorage } from "node:async_hooks";
3
- export function initializeAsyncLocalStorageSingleton() {
4
- AsyncLocalStorageProviderSingleton.initializeGlobalInstance(new AsyncLocalStorage());
3
+
4
+ //#region src/setup/async_local_storage.ts
5
+ function initializeAsyncLocalStorageSingleton() {
6
+ AsyncLocalStorageProviderSingleton.initializeGlobalInstance(new AsyncLocalStorage());
5
7
  }
8
+
9
+ //#endregion
10
+ export { initializeAsyncLocalStorageSingleton };
6
11
  //# sourceMappingURL=async_local_storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"async_local_storage.js","sourceRoot":"","sources":["../../src/setup/async_local_storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,UAAU,oCAAoC;IAClD,kCAAkC,CAAC,wBAAwB,CACzD,IAAI,iBAAiB,EAAE,CACxB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"async_local_storage.js","names":[],"sources":["../../src/setup/async_local_storage.ts"],"sourcesContent":["import { AsyncLocalStorageProviderSingleton } from \"@langchain/core/singletons\";\nimport { AsyncLocalStorage } from \"node:async_hooks\";\n\nexport function initializeAsyncLocalStorageSingleton() {\n AsyncLocalStorageProviderSingleton.initializeGlobalInstance(\n new AsyncLocalStorage()\n );\n}\n"],"mappings":";;;;AAGA,SAAgB,uCAAuC;AACrD,oCAAmC,yBACjC,IAAI"}
@@ -0,0 +1,4 @@
1
+ const require_stream = require('./stream.cjs');
2
+
3
+ exports.toLangGraphEventStream = require_stream.toLangGraphEventStream;
4
+ exports.toLangGraphEventStreamResponse = require_stream.toLangGraphEventStreamResponse;
@@ -0,0 +1,5 @@
1
+ import { SerializedMessage } from "./types.message.cjs";
2
+ import { LangGraphEventStream } from "./types.schema.cjs";
3
+ import { ExtraTypeBag, InferLangGraphEventStream } from "./types.infer.cjs";
4
+ import { toLangGraphEventStream, toLangGraphEventStreamResponse } from "./stream.cjs";
5
+ export { type ExtraTypeBag, type InferLangGraphEventStream, type LangGraphEventStream, type SerializedMessage, toLangGraphEventStream, toLangGraphEventStreamResponse };
@@ -0,0 +1,5 @@
1
+ import { SerializedMessage } from "./types.message.js";
2
+ import { LangGraphEventStream } from "./types.schema.js";
3
+ import { ExtraTypeBag, InferLangGraphEventStream } from "./types.infer.js";
4
+ import { toLangGraphEventStream, toLangGraphEventStreamResponse } from "./stream.js";
5
+ export { type ExtraTypeBag, type InferLangGraphEventStream, type LangGraphEventStream, type SerializedMessage, toLangGraphEventStream, toLangGraphEventStreamResponse };
@@ -0,0 +1,3 @@
1
+ import { toLangGraphEventStream, toLangGraphEventStreamResponse } from "./stream.js";
2
+
3
+ export { toLangGraphEventStream, toLangGraphEventStreamResponse };
@@ -0,0 +1,145 @@
1
+
2
+ //#region src/ui/stream.ts
3
+ const serialiseAsDict = (obj) => {
4
+ return JSON.parse(JSON.stringify(obj, function(key, value) {
5
+ const rawValue = this[key];
6
+ if (rawValue != null && typeof rawValue === "object" && "toDict" in rawValue && typeof rawValue.toDict === "function") {
7
+ const { type, data } = rawValue.toDict();
8
+ return {
9
+ ...data,
10
+ type
11
+ };
12
+ }
13
+ return value;
14
+ }));
15
+ };
16
+ const serializeError = (error) => {
17
+ if (error instanceof Error) return {
18
+ error: error.name,
19
+ message: error.message
20
+ };
21
+ return {
22
+ error: "Error",
23
+ message: JSON.stringify(error)
24
+ };
25
+ };
26
+ const isRunnableConfig = (config) => {
27
+ if (typeof config !== "object" || config == null) return false;
28
+ return "configurable" in config && typeof config.configurable === "object" && config.configurable != null;
29
+ };
30
+ const extractCheckpointFromConfig = (config) => {
31
+ if (!isRunnableConfig(config) || !config.configurable.thread_id) return null;
32
+ return {
33
+ thread_id: config.configurable.thread_id,
34
+ checkpoint_ns: config.configurable.checkpoint_ns || "",
35
+ checkpoint_id: config.configurable.checkpoint_id || null,
36
+ checkpoint_map: config.configurable.checkpoint_map || null
37
+ };
38
+ };
39
+ const serializeConfig = (config) => {
40
+ if (isRunnableConfig(config)) {
41
+ const configurable = Object.fromEntries(Object.entries(config.configurable).filter(([key]) => !key.startsWith("__")));
42
+ const newConfig = {
43
+ ...config,
44
+ configurable
45
+ };
46
+ delete newConfig.callbacks;
47
+ return newConfig;
48
+ }
49
+ return config;
50
+ };
51
+ function serializeCheckpoint(payload) {
52
+ const result = {
53
+ ...payload,
54
+ checkpoint: extractCheckpointFromConfig(payload.config),
55
+ parent_checkpoint: extractCheckpointFromConfig(payload.parentConfig),
56
+ config: serializeConfig(payload.config),
57
+ parent_config: serializeConfig(payload.parentConfig),
58
+ tasks: payload.tasks.map((task) => {
59
+ if (isRunnableConfig(task.state)) {
60
+ const checkpoint = extractCheckpointFromConfig(task.state);
61
+ if (checkpoint != null) {
62
+ const cloneTask = {
63
+ ...task,
64
+ checkpoint
65
+ };
66
+ delete cloneTask.state;
67
+ return cloneTask;
68
+ }
69
+ }
70
+ return task;
71
+ })
72
+ };
73
+ delete result.parentConfig;
74
+ return result;
75
+ }
76
+ /**
77
+ * Converts a `graph.streamEvents()` output into a LangGraph Platform compatible event stream.
78
+ * @experimental Does not follow semver.
79
+ *
80
+ * @param events
81
+ */
82
+ async function* toLangGraphEventStream(events) {
83
+ let rootRunId;
84
+ try {
85
+ for await (const event of await events) {
86
+ if (event.event === "on_chain_start" && rootRunId == null) rootRunId = event.run_id;
87
+ if (event.tags?.includes("langsmith:hidden")) continue;
88
+ if (event.event === "on_chain_stream" && event.run_id === rootRunId) {
89
+ if (!Array.isArray(event.data.chunk)) continue;
90
+ const [ns, mode, chunk] = event.data.chunk.length === 3 ? event.data.chunk : [null, ...event.data.chunk];
91
+ let data = chunk;
92
+ if (mode === "debug") {
93
+ const debugChunk = chunk;
94
+ if (debugChunk.type === "checkpoint") data = {
95
+ ...debugChunk,
96
+ payload: serializeCheckpoint(debugChunk.payload)
97
+ };
98
+ }
99
+ if (mode === "checkpoints") data = serializeCheckpoint(chunk);
100
+ data = serialiseAsDict(data);
101
+ yield {
102
+ event: ns?.length ? `${mode}|${ns.join("|")}` : mode,
103
+ data
104
+ };
105
+ }
106
+ }
107
+ } catch (error) {
108
+ yield {
109
+ event: "error",
110
+ data: serializeError(error)
111
+ };
112
+ }
113
+ }
114
+ /**
115
+ * Converts a `graph.streamEvents()` output into a LangGraph Platform compatible Web Response.
116
+ * @experimental Does not follow semver.
117
+ */
118
+ function toLangGraphEventStreamResponse(options) {
119
+ const headers = new Headers({
120
+ "Content-Type": "text/event-stream",
121
+ "Cache-Control": "no-cache",
122
+ Connection: "keep-alive"
123
+ });
124
+ if (options.headers) if ("forEach" in options.headers && typeof options.headers.forEach === "function") options.headers.forEach((v, k) => headers.set(k, v));
125
+ else Object.entries(options.headers).map(([k, v]) => headers.set(k, v));
126
+ return new Response(new ReadableStream({ async start(controller) {
127
+ try {
128
+ for await (const { event, data } of toLangGraphEventStream(options.stream)) {
129
+ controller.enqueue(`event: ${event}\n`);
130
+ controller.enqueue(`data: ${JSON.stringify(data)}\n\n`);
131
+ }
132
+ } finally {
133
+ controller.close();
134
+ }
135
+ } }), {
136
+ headers,
137
+ status: options.status,
138
+ statusText: options.statusText
139
+ });
140
+ }
141
+
142
+ //#endregion
143
+ exports.toLangGraphEventStream = toLangGraphEventStream;
144
+ exports.toLangGraphEventStreamResponse = toLangGraphEventStreamResponse;
145
+ //# sourceMappingURL=stream.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.cjs","names":["result: Record<string, unknown>","cloneTask: Record<string, unknown>","rootRunId: string | undefined","data: unknown"],"sources":["../../src/ui/stream.ts"],"sourcesContent":["import type { RunnableConfig } from \"@langchain/core/runnables\";\nimport type { StreamEvent } from \"@langchain/core/tracers/log_stream\";\nimport type { StreamMode, StreamOutputMap } from \"../pregel/types.js\";\nimport type {\n AnyPregelLike,\n ExtraTypeBag,\n InferLangGraphEventStream,\n} from \"./types.infer.js\";\n\ntype StreamCheckpointsOutput<StreamValues> = StreamOutputMap<\n \"checkpoints\",\n false,\n StreamValues,\n unknown,\n string,\n unknown,\n unknown\n>;\n\nconst serialiseAsDict = <T>(obj: T): T => {\n return JSON.parse(\n JSON.stringify(obj, function (key: string | number, value: unknown) {\n const rawValue = this[key];\n if (\n rawValue != null &&\n typeof rawValue === \"object\" &&\n \"toDict\" in rawValue &&\n typeof rawValue.toDict === \"function\"\n ) {\n const { type, data } = rawValue.toDict();\n return { ...data, type };\n }\n\n return value;\n })\n );\n};\n\nconst serializeError = (error: unknown) => {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (error instanceof Error) {\n return { error: error.name, message: error.message };\n }\n return { error: \"Error\", message: JSON.stringify(error) };\n};\n\nconst isRunnableConfig = (\n config: unknown\n): config is RunnableConfig & { configurable: Record<string, unknown> } => {\n if (typeof config !== \"object\" || config == null) return false;\n return (\n \"configurable\" in config &&\n typeof config.configurable === \"object\" &&\n config.configurable != null\n );\n};\n\nconst extractCheckpointFromConfig = (\n config: RunnableConfig | null | undefined\n) => {\n if (!isRunnableConfig(config) || !config.configurable.thread_id) {\n return null;\n }\n\n return {\n thread_id: config.configurable.thread_id,\n checkpoint_ns: config.configurable.checkpoint_ns || \"\",\n checkpoint_id: config.configurable.checkpoint_id || null,\n checkpoint_map: config.configurable.checkpoint_map || null,\n };\n};\n\nconst serializeConfig = (config: unknown) => {\n if (isRunnableConfig(config)) {\n const configurable = Object.fromEntries(\n Object.entries(config.configurable).filter(\n ([key]) => !key.startsWith(\"__\")\n )\n );\n\n const newConfig = { ...config, configurable };\n delete newConfig.callbacks;\n return newConfig;\n }\n\n return config;\n};\n\nfunction serializeCheckpoint(payload: StreamCheckpointsOutput<unknown>) {\n const result: Record<string, unknown> = {\n ...payload,\n checkpoint: extractCheckpointFromConfig(payload.config),\n parent_checkpoint: extractCheckpointFromConfig(payload.parentConfig),\n\n config: serializeConfig(payload.config),\n parent_config: serializeConfig(payload.parentConfig),\n\n tasks: payload.tasks.map((task) => {\n if (isRunnableConfig(task.state)) {\n const checkpoint = extractCheckpointFromConfig(task.state);\n if (checkpoint != null) {\n const cloneTask: Record<string, unknown> = { ...task, checkpoint };\n delete cloneTask.state;\n return cloneTask;\n }\n }\n\n return task;\n }),\n };\n\n delete result.parentConfig;\n return result;\n}\n\n/**\n * Converts a `graph.streamEvents()` output into a LangGraph Platform compatible event stream.\n * @experimental Does not follow semver.\n *\n * @param events\n */\nexport async function* toLangGraphEventStream<\n TGraph extends AnyPregelLike,\n TExtra extends ExtraTypeBag = ExtraTypeBag\n>(\n events: AsyncIterable<StreamEvent> | Promise<AsyncIterable<StreamEvent>>\n): AsyncGenerator<InferLangGraphEventStream<TGraph, TExtra>> {\n let rootRunId: string | undefined;\n\n try {\n for await (const event of await events) {\n if (event.event === \"on_chain_start\" && rootRunId == null) {\n rootRunId = event.run_id;\n }\n if (event.tags?.includes(\"langsmith:hidden\")) continue;\n if (event.event === \"on_chain_stream\" && event.run_id === rootRunId) {\n if (!Array.isArray(event.data.chunk)) {\n continue;\n }\n\n type AnyStreamOutput = StreamOutputMap<\n StreamMode[],\n true,\n unknown,\n unknown,\n string,\n unknown,\n unknown\n >;\n\n const [ns, mode, chunk] = (\n event.data.chunk.length === 3\n ? event.data.chunk\n : [null, ...event.data.chunk]\n ) as AnyStreamOutput;\n\n // Listen for debug events and capture checkpoint\n let data: unknown = chunk;\n if (mode === \"debug\") {\n const debugChunk = chunk;\n\n if (debugChunk.type === \"checkpoint\") {\n data = {\n ...debugChunk,\n payload: serializeCheckpoint(debugChunk.payload),\n };\n }\n }\n\n if (mode === \"checkpoints\") {\n data = serializeCheckpoint(chunk);\n }\n\n // This needs to be done for LC.js V0 messages, since they\n // by default serialize using the verbose Serializable protocol.\n data = serialiseAsDict(data);\n\n yield {\n event: ns?.length ? `${mode}|${ns.join(\"|\")}` : mode,\n data,\n } as InferLangGraphEventStream<TGraph, TExtra>;\n }\n }\n } catch (error) {\n yield { event: \"error\", data: serializeError(error) };\n }\n}\n\n/**\n * Converts a `graph.streamEvents()` output into a LangGraph Platform compatible Web Response.\n * @experimental Does not follow semver.\n */\nexport function toLangGraphEventStreamResponse(options: {\n status?: number;\n statusText?: string;\n headers?: Headers | Record<string, string>;\n stream: AsyncIterable<StreamEvent> | Promise<AsyncIterable<StreamEvent>>;\n}) {\n const headers = new Headers({\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n });\n\n if (options.headers) {\n if (\n \"forEach\" in options.headers &&\n typeof options.headers.forEach === \"function\"\n ) {\n options.headers.forEach((v, k) => headers.set(k, v));\n } else {\n Object.entries(options.headers).map(([k, v]) => headers.set(k, v));\n }\n }\n\n return new Response(\n new ReadableStream({\n async start(controller) {\n try {\n for await (const { event, data } of toLangGraphEventStream(\n options.stream\n )) {\n controller.enqueue(`event: ${event}\\n`);\n controller.enqueue(`data: ${JSON.stringify(data)}\\n\\n`);\n }\n } finally {\n controller.close();\n }\n },\n }),\n { headers, status: options.status, statusText: options.statusText }\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { AnyPregelLike, ExtraTypeBag, InferLangGraphEventStream } from "./types.infer.cjs";
2
+ import { StreamEvent } from "@langchain/core/tracers/log_stream";
3
+
4
+ //#region src/ui/stream.d.ts
5
+
6
+ /**
7
+ * Converts a `graph.streamEvents()` output into a LangGraph Platform compatible event stream.
8
+ * @experimental Does not follow semver.
9
+ *
10
+ * @param events
11
+ */
12
+ declare function toLangGraphEventStream<TGraph extends AnyPregelLike, TExtra extends ExtraTypeBag = ExtraTypeBag>(events: AsyncIterable<StreamEvent> | Promise<AsyncIterable<StreamEvent>>): AsyncGenerator<InferLangGraphEventStream<TGraph, TExtra>>;
13
+ /**
14
+ * Converts a `graph.streamEvents()` output into a LangGraph Platform compatible Web Response.
15
+ * @experimental Does not follow semver.
16
+ */
17
+ declare function toLangGraphEventStreamResponse(options: {
18
+ status?: number;
19
+ statusText?: string;
20
+ headers?: Headers | Record<string, string>;
21
+ stream: AsyncIterable<StreamEvent> | Promise<AsyncIterable<StreamEvent>>;
22
+ }): Response;
23
+ //#endregion
24
+ export { toLangGraphEventStream, toLangGraphEventStreamResponse };
25
+ //# sourceMappingURL=stream.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.cts","names":["StreamEvent","AnyPregelLike","ExtraTypeBag","InferLangGraphEventStream","toLangGraphEventStream","AsyncIterable","Promise","TGraph","TExtra","AsyncGenerator","toLangGraphEventStreamResponse","Headers","Record","Response"],"sources":["../../src/ui/stream.d.ts"],"sourcesContent":["import type { StreamEvent } from \"@langchain/core/tracers/log_stream\";\nimport type { AnyPregelLike, ExtraTypeBag, InferLangGraphEventStream } from \"./types.infer.js\";\n/**\n * Converts a `graph.streamEvents()` output into a LangGraph Platform compatible event stream.\n * @experimental Does not follow semver.\n *\n * @param events\n */\nexport declare function toLangGraphEventStream<TGraph extends AnyPregelLike, TExtra extends ExtraTypeBag = ExtraTypeBag>(events: AsyncIterable<StreamEvent> | Promise<AsyncIterable<StreamEvent>>): AsyncGenerator<InferLangGraphEventStream<TGraph, TExtra>>;\n/**\n * Converts a `graph.streamEvents()` output into a LangGraph Platform compatible Web Response.\n * @experimental Does not follow semver.\n */\nexport declare function toLangGraphEventStreamResponse(options: {\n status?: number;\n statusText?: string;\n headers?: Headers | Record<string, string>;\n stream: AsyncIterable<StreamEvent> | Promise<AsyncIterable<StreamEvent>>;\n}): Response;\n"],"mappings":";;;;;;;AAQA;;;;AAA2GE,iBAAnFE,sBAAmFF,CAAAA,eAA7CD,aAA6CC,EAAAA,eAAfA,YAAeA,GAAAA,YAAAA,CAAAA,CAAAA,MAAAA,EAAsBG,aAAtBH,CAAoCF,WAApCE,CAAAA,GAAmDI,OAAnDJ,CAA2DG,aAA3DH,CAAyEF,WAAzEE,CAAAA,CAAAA,CAAAA,EAAyFO,cAAzFP,CAAwGC,yBAAxGD,CAAkIK,MAAlIL,EAA0IM,MAA1IN,CAAAA,CAAAA;;;;;AAAmDI,iBAKtII,8BAAAA,CALsIJ,OAAAA,EAAAA;QAA+EC,CAAAA,EAAAA,MAAAA;YAAQC,CAAAA,EAAAA,MAAAA;SAAlCL,CAAAA,EAQrMQ,OARqMR,GAQ3LS,MAR2LT,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA;QAAfM,EASxLJ,aATwLI,CAS1KT,WAT0KS,CAAAA,GAS3JH,OAT2JG,CASnJJ,aATmJI,CASrIT,WATqIS,CAAAA,CAAAA;IAUhMI"}
@@ -0,0 +1,25 @@
1
+ import { AnyPregelLike, ExtraTypeBag, InferLangGraphEventStream } from "./types.infer.js";
2
+ import { StreamEvent } from "@langchain/core/tracers/log_stream";
3
+
4
+ //#region src/ui/stream.d.ts
5
+
6
+ /**
7
+ * Converts a `graph.streamEvents()` output into a LangGraph Platform compatible event stream.
8
+ * @experimental Does not follow semver.
9
+ *
10
+ * @param events
11
+ */
12
+ declare function toLangGraphEventStream<TGraph extends AnyPregelLike, TExtra extends ExtraTypeBag = ExtraTypeBag>(events: AsyncIterable<StreamEvent> | Promise<AsyncIterable<StreamEvent>>): AsyncGenerator<InferLangGraphEventStream<TGraph, TExtra>>;
13
+ /**
14
+ * Converts a `graph.streamEvents()` output into a LangGraph Platform compatible Web Response.
15
+ * @experimental Does not follow semver.
16
+ */
17
+ declare function toLangGraphEventStreamResponse(options: {
18
+ status?: number;
19
+ statusText?: string;
20
+ headers?: Headers | Record<string, string>;
21
+ stream: AsyncIterable<StreamEvent> | Promise<AsyncIterable<StreamEvent>>;
22
+ }): Response;
23
+ //#endregion
24
+ export { toLangGraphEventStream, toLangGraphEventStreamResponse };
25
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","names":["StreamEvent","AnyPregelLike","ExtraTypeBag","InferLangGraphEventStream","toLangGraphEventStream","AsyncIterable","Promise","TGraph","TExtra","AsyncGenerator","toLangGraphEventStreamResponse","Headers","Record","Response"],"sources":["../../src/ui/stream.d.ts"],"sourcesContent":["import type { StreamEvent } from \"@langchain/core/tracers/log_stream\";\nimport type { AnyPregelLike, ExtraTypeBag, InferLangGraphEventStream } from \"./types.infer.js\";\n/**\n * Converts a `graph.streamEvents()` output into a LangGraph Platform compatible event stream.\n * @experimental Does not follow semver.\n *\n * @param events\n */\nexport declare function toLangGraphEventStream<TGraph extends AnyPregelLike, TExtra extends ExtraTypeBag = ExtraTypeBag>(events: AsyncIterable<StreamEvent> | Promise<AsyncIterable<StreamEvent>>): AsyncGenerator<InferLangGraphEventStream<TGraph, TExtra>>;\n/**\n * Converts a `graph.streamEvents()` output into a LangGraph Platform compatible Web Response.\n * @experimental Does not follow semver.\n */\nexport declare function toLangGraphEventStreamResponse(options: {\n status?: number;\n statusText?: string;\n headers?: Headers | Record<string, string>;\n stream: AsyncIterable<StreamEvent> | Promise<AsyncIterable<StreamEvent>>;\n}): Response;\n"],"mappings":";;;;;;;AAQA;;;;AAA2GE,iBAAnFE,sBAAmFF,CAAAA,eAA7CD,aAA6CC,EAAAA,eAAfA,YAAeA,GAAAA,YAAAA,CAAAA,CAAAA,MAAAA,EAAsBG,aAAtBH,CAAoCF,WAApCE,CAAAA,GAAmDI,OAAnDJ,CAA2DG,aAA3DH,CAAyEF,WAAzEE,CAAAA,CAAAA,CAAAA,EAAyFO,cAAzFP,CAAwGC,yBAAxGD,CAAkIK,MAAlIL,EAA0IM,MAA1IN,CAAAA,CAAAA;;;;;AAAmDI,iBAKtII,8BAAAA,CALsIJ,OAAAA,EAAAA;QAA+EC,CAAAA,EAAAA,MAAAA;YAAQC,CAAAA,EAAAA,MAAAA;SAAlCL,CAAAA,EAQrMQ,OARqMR,GAQ3LS,MAR2LT,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA;QAAfM,EASxLJ,aATwLI,CAS1KT,WAT0KS,CAAAA,GAS3JH,OAT2JG,CASnJJ,aATmJI,CASrIT,WATqIS,CAAAA,CAAAA;IAUhMI"}