@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.cjs","names":["INTERRUPT","PregelNode"],"sources":["../../src/pregel/validate.ts"],"sourcesContent":["import { All } from \"@langchain/langgraph-checkpoint\";\nimport { BaseChannel } from \"../channels/index.js\";\nimport { INTERRUPT } from \"../constants.js\";\nimport { PregelNode } from \"./read.js\";\n\nexport class GraphValidationError extends Error {\n constructor(message?: string) {\n super(message);\n this.name = \"GraphValidationError\";\n }\n}\n\nexport function validateGraph<\n Nn extends Record<string, PregelNode>,\n Cc extends Record<string, BaseChannel>\n>({\n nodes,\n channels,\n inputChannels,\n outputChannels,\n streamChannels,\n interruptAfterNodes,\n interruptBeforeNodes,\n}: {\n nodes: Nn;\n channels: Cc;\n inputChannels: keyof Cc | Array<keyof Cc>;\n outputChannels: keyof Cc | Array<keyof Cc>;\n streamChannels?: keyof Cc | Array<keyof Cc>;\n interruptAfterNodes?: Array<keyof Nn> | All;\n interruptBeforeNodes?: Array<keyof Nn> | All;\n}): void {\n if (!channels) {\n throw new GraphValidationError(\"Channels not provided\");\n }\n\n const subscribedChannels = new Set<keyof Cc>();\n const allOutputChannels = new Set<keyof Cc>();\n\n for (const [name, node] of Object.entries(nodes)) {\n if (name === INTERRUPT) {\n throw new GraphValidationError(`\"Node name ${INTERRUPT} is reserved\"`);\n }\n if (node.constructor === PregelNode) {\n node.triggers.forEach((trigger) => subscribedChannels.add(trigger));\n } else {\n throw new GraphValidationError(\n `Invalid node type ${typeof node}, expected PregelNode`\n );\n }\n }\n\n // side effect: update channels\n for (const chan of subscribedChannels) {\n if (!(chan in channels)) {\n throw new GraphValidationError(\n `Subscribed channel '${String(chan)}' not in channels`\n );\n }\n }\n\n if (!Array.isArray(inputChannels)) {\n if (!subscribedChannels.has(inputChannels)) {\n throw new GraphValidationError(\n `Input channel ${String(\n inputChannels\n )} is not subscribed to by any node`\n );\n }\n } else {\n if (inputChannels.every((channel) => !subscribedChannels.has(channel))) {\n throw new GraphValidationError(\n `None of the input channels ${inputChannels} are subscribed to by any node`\n );\n }\n }\n\n if (!Array.isArray(outputChannels)) {\n allOutputChannels.add(outputChannels);\n } else {\n outputChannels.forEach((chan) => allOutputChannels.add(chan));\n }\n\n if (streamChannels && !Array.isArray(streamChannels)) {\n allOutputChannels.add(streamChannels);\n } else if (Array.isArray(streamChannels)) {\n streamChannels.forEach((chan) => allOutputChannels.add(chan));\n }\n\n for (const chan of allOutputChannels) {\n if (!(chan in channels)) {\n throw new GraphValidationError(\n `Output channel '${String(chan)}' not in channels`\n );\n }\n }\n\n // validate interrupt before/after\n if (interruptAfterNodes && interruptAfterNodes !== \"*\") {\n for (const node of interruptAfterNodes) {\n if (!(node in nodes)) {\n throw new GraphValidationError(`Node ${String(node)} not in nodes`);\n }\n }\n }\n\n if (interruptBeforeNodes && interruptBeforeNodes !== \"*\") {\n for (const node of interruptBeforeNodes) {\n if (!(node in nodes)) {\n throw new GraphValidationError(`Node ${String(node)} not in nodes`);\n }\n }\n }\n}\n\nexport function validateKeys<Cc extends Record<string, BaseChannel>>(\n keys: keyof Cc | Array<keyof Cc>,\n channels: Cc\n): void {\n if (Array.isArray(keys)) {\n for (const key of keys) {\n if (!(key in channels)) {\n throw new Error(`Key ${String(key)} not found in channels`);\n }\n }\n } else {\n if (!(keys in channels)) {\n throw new Error(`Key ${String(keys)} not found in channels`);\n }\n }\n}\n"],"mappings":";;;;AAKA,IAAa,uBAAb,cAA0C,MAAM;CAC9C,YAAY,SAAkB;AAC5B,QAAM;AACN,OAAK,OAAO;;;AAIhB,SAAgB,cAGd,EACA,OACA,UACA,eACA,gBACA,gBACA,qBACA,wBASO;AACP,KAAI,CAAC,SACH,OAAM,IAAI,qBAAqB;CAGjC,MAAM,qCAAqB,IAAI;CAC/B,MAAM,oCAAoB,IAAI;AAE9B,MAAK,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,QAAQ;AAChD,MAAI,SAASA,4BACX,OAAM,IAAI,qBAAqB,cAAcA,4BAAU;AAEzD,MAAI,KAAK,gBAAgBC,wBACvB,MAAK,SAAS,SAAS,YAAY,mBAAmB,IAAI;MAE1D,OAAM,IAAI,qBACR,qBAAqB,OAAO,KAAK;;AAMvC,MAAK,MAAM,QAAQ,mBACjB,KAAI,EAAE,QAAQ,UACZ,OAAM,IAAI,qBACR,uBAAuB,OAAO,MAAM;AAK1C,KAAI,CAAC,MAAM,QAAQ,gBACjB;MAAI,CAAC,mBAAmB,IAAI,eAC1B,OAAM,IAAI,qBACR,iBAAiB,OACf,eACA;YAIF,cAAc,OAAO,YAAY,CAAC,mBAAmB,IAAI,UAC3D,OAAM,IAAI,qBACR,8BAA8B,cAAc;AAKlD,KAAI,CAAC,MAAM,QAAQ,gBACjB,mBAAkB,IAAI;KAEtB,gBAAe,SAAS,SAAS,kBAAkB,IAAI;AAGzD,KAAI,kBAAkB,CAAC,MAAM,QAAQ,gBACnC,mBAAkB,IAAI;UACb,MAAM,QAAQ,gBACvB,gBAAe,SAAS,SAAS,kBAAkB,IAAI;AAGzD,MAAK,MAAM,QAAQ,kBACjB,KAAI,EAAE,QAAQ,UACZ,OAAM,IAAI,qBACR,mBAAmB,OAAO,MAAM;AAMtC,KAAI,uBAAuB,wBAAwB,KACjD;OAAK,MAAM,QAAQ,oBACjB,KAAI,EAAE,QAAQ,OACZ,OAAM,IAAI,qBAAqB,QAAQ,OAAO,MAAM;;AAK1D,KAAI,wBAAwB,yBAAyB,KACnD;OAAK,MAAM,QAAQ,qBACjB,KAAI,EAAE,QAAQ,OACZ,OAAM,IAAI,qBAAqB,QAAQ,OAAO,MAAM;;;AAM5D,SAAgB,aACd,MACA,UACM;AACN,KAAI,MAAM,QAAQ,OAChB;OAAK,MAAM,OAAO,KAChB,KAAI,EAAE,OAAO,UACX,OAAM,IAAI,MAAM,OAAO,OAAO,KAAK;YAInC,EAAE,QAAQ,UACZ,OAAM,IAAI,MAAM,OAAO,OAAO,MAAM"}
@@ -1,89 +1,44 @@
1
1
  import { INTERRUPT } from "../constants.js";
2
2
  import { PregelNode } from "./read.js";
3
- export class GraphValidationError extends Error {
4
- constructor(message) {
5
- super(message);
6
- this.name = "GraphValidationError";
7
- }
3
+
4
+ //#region src/pregel/validate.ts
5
+ var GraphValidationError = class extends Error {
6
+ constructor(message) {
7
+ super(message);
8
+ this.name = "GraphValidationError";
9
+ }
10
+ };
11
+ function validateGraph({ nodes, channels, inputChannels, outputChannels, streamChannels, interruptAfterNodes, interruptBeforeNodes }) {
12
+ if (!channels) throw new GraphValidationError("Channels not provided");
13
+ const subscribedChannels = /* @__PURE__ */ new Set();
14
+ const allOutputChannels = /* @__PURE__ */ new Set();
15
+ for (const [name, node] of Object.entries(nodes)) {
16
+ if (name === INTERRUPT) throw new GraphValidationError(`"Node name ${INTERRUPT} is reserved"`);
17
+ if (node.constructor === PregelNode) node.triggers.forEach((trigger) => subscribedChannels.add(trigger));
18
+ else throw new GraphValidationError(`Invalid node type ${typeof node}, expected PregelNode`);
19
+ }
20
+ for (const chan of subscribedChannels) if (!(chan in channels)) throw new GraphValidationError(`Subscribed channel '${String(chan)}' not in channels`);
21
+ if (!Array.isArray(inputChannels)) {
22
+ if (!subscribedChannels.has(inputChannels)) throw new GraphValidationError(`Input channel ${String(inputChannels)} is not subscribed to by any node`);
23
+ } else if (inputChannels.every((channel) => !subscribedChannels.has(channel))) throw new GraphValidationError(`None of the input channels ${inputChannels} are subscribed to by any node`);
24
+ if (!Array.isArray(outputChannels)) allOutputChannels.add(outputChannels);
25
+ else outputChannels.forEach((chan) => allOutputChannels.add(chan));
26
+ if (streamChannels && !Array.isArray(streamChannels)) allOutputChannels.add(streamChannels);
27
+ else if (Array.isArray(streamChannels)) streamChannels.forEach((chan) => allOutputChannels.add(chan));
28
+ for (const chan of allOutputChannels) if (!(chan in channels)) throw new GraphValidationError(`Output channel '${String(chan)}' not in channels`);
29
+ if (interruptAfterNodes && interruptAfterNodes !== "*") {
30
+ for (const node of interruptAfterNodes) if (!(node in nodes)) throw new GraphValidationError(`Node ${String(node)} not in nodes`);
31
+ }
32
+ if (interruptBeforeNodes && interruptBeforeNodes !== "*") {
33
+ for (const node of interruptBeforeNodes) if (!(node in nodes)) throw new GraphValidationError(`Node ${String(node)} not in nodes`);
34
+ }
8
35
  }
9
- export function validateGraph({ nodes, channels, inputChannels, outputChannels, streamChannels, interruptAfterNodes, interruptBeforeNodes, }) {
10
- if (!channels) {
11
- throw new GraphValidationError("Channels not provided");
12
- }
13
- const subscribedChannels = new Set();
14
- const allOutputChannels = new Set();
15
- for (const [name, node] of Object.entries(nodes)) {
16
- if (name === INTERRUPT) {
17
- throw new GraphValidationError(`"Node name ${INTERRUPT} is reserved"`);
18
- }
19
- if (node.constructor === PregelNode) {
20
- node.triggers.forEach((trigger) => subscribedChannels.add(trigger));
21
- }
22
- else {
23
- throw new GraphValidationError(`Invalid node type ${typeof node}, expected PregelNode`);
24
- }
25
- }
26
- // side effect: update channels
27
- for (const chan of subscribedChannels) {
28
- if (!(chan in channels)) {
29
- throw new GraphValidationError(`Subscribed channel '${String(chan)}' not in channels`);
30
- }
31
- }
32
- if (!Array.isArray(inputChannels)) {
33
- if (!subscribedChannels.has(inputChannels)) {
34
- throw new GraphValidationError(`Input channel ${String(inputChannels)} is not subscribed to by any node`);
35
- }
36
- }
37
- else {
38
- if (inputChannels.every((channel) => !subscribedChannels.has(channel))) {
39
- throw new GraphValidationError(`None of the input channels ${inputChannels} are subscribed to by any node`);
40
- }
41
- }
42
- if (!Array.isArray(outputChannels)) {
43
- allOutputChannels.add(outputChannels);
44
- }
45
- else {
46
- outputChannels.forEach((chan) => allOutputChannels.add(chan));
47
- }
48
- if (streamChannels && !Array.isArray(streamChannels)) {
49
- allOutputChannels.add(streamChannels);
50
- }
51
- else if (Array.isArray(streamChannels)) {
52
- streamChannels.forEach((chan) => allOutputChannels.add(chan));
53
- }
54
- for (const chan of allOutputChannels) {
55
- if (!(chan in channels)) {
56
- throw new GraphValidationError(`Output channel '${String(chan)}' not in channels`);
57
- }
58
- }
59
- // validate interrupt before/after
60
- if (interruptAfterNodes && interruptAfterNodes !== "*") {
61
- for (const node of interruptAfterNodes) {
62
- if (!(node in nodes)) {
63
- throw new GraphValidationError(`Node ${String(node)} not in nodes`);
64
- }
65
- }
66
- }
67
- if (interruptBeforeNodes && interruptBeforeNodes !== "*") {
68
- for (const node of interruptBeforeNodes) {
69
- if (!(node in nodes)) {
70
- throw new GraphValidationError(`Node ${String(node)} not in nodes`);
71
- }
72
- }
73
- }
74
- }
75
- export function validateKeys(keys, channels) {
76
- if (Array.isArray(keys)) {
77
- for (const key of keys) {
78
- if (!(key in channels)) {
79
- throw new Error(`Key ${String(key)} not found in channels`);
80
- }
81
- }
82
- }
83
- else {
84
- if (!(keys in channels)) {
85
- throw new Error(`Key ${String(keys)} not found in channels`);
86
- }
87
- }
36
+ function validateKeys(keys, channels) {
37
+ if (Array.isArray(keys)) {
38
+ for (const key of keys) if (!(key in channels)) throw new Error(`Key ${String(key)} not found in channels`);
39
+ } else if (!(keys in channels)) throw new Error(`Key ${String(keys)} not found in channels`);
88
40
  }
41
+
42
+ //#endregion
43
+ export { validateGraph, validateKeys };
89
44
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/pregel/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","names":[],"sources":["../../src/pregel/validate.ts"],"sourcesContent":["import { All } from \"@langchain/langgraph-checkpoint\";\nimport { BaseChannel } from \"../channels/index.js\";\nimport { INTERRUPT } from \"../constants.js\";\nimport { PregelNode } from \"./read.js\";\n\nexport class GraphValidationError extends Error {\n constructor(message?: string) {\n super(message);\n this.name = \"GraphValidationError\";\n }\n}\n\nexport function validateGraph<\n Nn extends Record<string, PregelNode>,\n Cc extends Record<string, BaseChannel>\n>({\n nodes,\n channels,\n inputChannels,\n outputChannels,\n streamChannels,\n interruptAfterNodes,\n interruptBeforeNodes,\n}: {\n nodes: Nn;\n channels: Cc;\n inputChannels: keyof Cc | Array<keyof Cc>;\n outputChannels: keyof Cc | Array<keyof Cc>;\n streamChannels?: keyof Cc | Array<keyof Cc>;\n interruptAfterNodes?: Array<keyof Nn> | All;\n interruptBeforeNodes?: Array<keyof Nn> | All;\n}): void {\n if (!channels) {\n throw new GraphValidationError(\"Channels not provided\");\n }\n\n const subscribedChannels = new Set<keyof Cc>();\n const allOutputChannels = new Set<keyof Cc>();\n\n for (const [name, node] of Object.entries(nodes)) {\n if (name === INTERRUPT) {\n throw new GraphValidationError(`\"Node name ${INTERRUPT} is reserved\"`);\n }\n if (node.constructor === PregelNode) {\n node.triggers.forEach((trigger) => subscribedChannels.add(trigger));\n } else {\n throw new GraphValidationError(\n `Invalid node type ${typeof node}, expected PregelNode`\n );\n }\n }\n\n // side effect: update channels\n for (const chan of subscribedChannels) {\n if (!(chan in channels)) {\n throw new GraphValidationError(\n `Subscribed channel '${String(chan)}' not in channels`\n );\n }\n }\n\n if (!Array.isArray(inputChannels)) {\n if (!subscribedChannels.has(inputChannels)) {\n throw new GraphValidationError(\n `Input channel ${String(\n inputChannels\n )} is not subscribed to by any node`\n );\n }\n } else {\n if (inputChannels.every((channel) => !subscribedChannels.has(channel))) {\n throw new GraphValidationError(\n `None of the input channels ${inputChannels} are subscribed to by any node`\n );\n }\n }\n\n if (!Array.isArray(outputChannels)) {\n allOutputChannels.add(outputChannels);\n } else {\n outputChannels.forEach((chan) => allOutputChannels.add(chan));\n }\n\n if (streamChannels && !Array.isArray(streamChannels)) {\n allOutputChannels.add(streamChannels);\n } else if (Array.isArray(streamChannels)) {\n streamChannels.forEach((chan) => allOutputChannels.add(chan));\n }\n\n for (const chan of allOutputChannels) {\n if (!(chan in channels)) {\n throw new GraphValidationError(\n `Output channel '${String(chan)}' not in channels`\n );\n }\n }\n\n // validate interrupt before/after\n if (interruptAfterNodes && interruptAfterNodes !== \"*\") {\n for (const node of interruptAfterNodes) {\n if (!(node in nodes)) {\n throw new GraphValidationError(`Node ${String(node)} not in nodes`);\n }\n }\n }\n\n if (interruptBeforeNodes && interruptBeforeNodes !== \"*\") {\n for (const node of interruptBeforeNodes) {\n if (!(node in nodes)) {\n throw new GraphValidationError(`Node ${String(node)} not in nodes`);\n }\n }\n }\n}\n\nexport function validateKeys<Cc extends Record<string, BaseChannel>>(\n keys: keyof Cc | Array<keyof Cc>,\n channels: Cc\n): void {\n if (Array.isArray(keys)) {\n for (const key of keys) {\n if (!(key in channels)) {\n throw new Error(`Key ${String(key)} not found in channels`);\n }\n }\n } else {\n if (!(keys in channels)) {\n throw new Error(`Key ${String(keys)} not found in channels`);\n }\n }\n}\n"],"mappings":";;;;AAKA,IAAa,uBAAb,cAA0C,MAAM;CAC9C,YAAY,SAAkB;AAC5B,QAAM;AACN,OAAK,OAAO;;;AAIhB,SAAgB,cAGd,EACA,OACA,UACA,eACA,gBACA,gBACA,qBACA,wBASO;AACP,KAAI,CAAC,SACH,OAAM,IAAI,qBAAqB;CAGjC,MAAM,qCAAqB,IAAI;CAC/B,MAAM,oCAAoB,IAAI;AAE9B,MAAK,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,QAAQ;AAChD,MAAI,SAAS,UACX,OAAM,IAAI,qBAAqB,cAAc,UAAU;AAEzD,MAAI,KAAK,gBAAgB,WACvB,MAAK,SAAS,SAAS,YAAY,mBAAmB,IAAI;MAE1D,OAAM,IAAI,qBACR,qBAAqB,OAAO,KAAK;;AAMvC,MAAK,MAAM,QAAQ,mBACjB,KAAI,EAAE,QAAQ,UACZ,OAAM,IAAI,qBACR,uBAAuB,OAAO,MAAM;AAK1C,KAAI,CAAC,MAAM,QAAQ,gBACjB;MAAI,CAAC,mBAAmB,IAAI,eAC1B,OAAM,IAAI,qBACR,iBAAiB,OACf,eACA;YAIF,cAAc,OAAO,YAAY,CAAC,mBAAmB,IAAI,UAC3D,OAAM,IAAI,qBACR,8BAA8B,cAAc;AAKlD,KAAI,CAAC,MAAM,QAAQ,gBACjB,mBAAkB,IAAI;KAEtB,gBAAe,SAAS,SAAS,kBAAkB,IAAI;AAGzD,KAAI,kBAAkB,CAAC,MAAM,QAAQ,gBACnC,mBAAkB,IAAI;UACb,MAAM,QAAQ,gBACvB,gBAAe,SAAS,SAAS,kBAAkB,IAAI;AAGzD,MAAK,MAAM,QAAQ,kBACjB,KAAI,EAAE,QAAQ,UACZ,OAAM,IAAI,qBACR,mBAAmB,OAAO,MAAM;AAMtC,KAAI,uBAAuB,wBAAwB,KACjD;OAAK,MAAM,QAAQ,oBACjB,KAAI,EAAE,QAAQ,OACZ,OAAM,IAAI,qBAAqB,QAAQ,OAAO,MAAM;;AAK1D,KAAI,wBAAwB,yBAAyB,KACnD;OAAK,MAAM,QAAQ,qBACjB,KAAI,EAAE,QAAQ,OACZ,OAAM,IAAI,qBAAqB,QAAQ,OAAO,MAAM;;;AAM5D,SAAgB,aACd,MACA,UACM;AACN,KAAI,MAAM,QAAQ,OAChB;OAAK,MAAM,OAAO,KAChB,KAAI,EAAE,OAAO,UACX,OAAM,IAAI,MAAM,OAAO,OAAO,KAAK;YAInC,EAAE,QAAQ,UACZ,OAAM,IAAI,MAAM,OAAO,OAAO,MAAM"}
@@ -1,147 +1,97 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChannelWrite = exports.PASSTHROUGH = exports.SKIP_WRITE = void 0;
4
- const runnables_1 = require("@langchain/core/runnables");
5
- const constants_js_1 = require("../constants.cjs");
6
- const utils_js_1 = require("../utils.cjs");
7
- const errors_js_1 = require("../errors.cjs");
8
- exports.SKIP_WRITE = {
9
- [Symbol.for("LG_SKIP_WRITE")]: true,
10
- };
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_errors = require('../errors.cjs');
3
+ const require_constants = require('../constants.cjs');
4
+ const require_utils = require('../utils.cjs');
5
+ const __langchain_core_runnables = require_rolldown_runtime.__toESM(require("@langchain/core/runnables"));
6
+
7
+ //#region src/pregel/write.ts
8
+ const SKIP_WRITE = { [Symbol.for("LG_SKIP_WRITE")]: true };
11
9
  function _isSkipWrite(x) {
12
- return (typeof x === "object" &&
13
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
- x?.[Symbol.for("LG_SKIP_WRITE")] !== undefined);
10
+ return typeof x === "object" && x?.[Symbol.for("LG_SKIP_WRITE")] !== void 0;
15
11
  }
16
- exports.PASSTHROUGH = {
17
- [Symbol.for("LG_PASSTHROUGH")]: true,
18
- };
12
+ const PASSTHROUGH = { [Symbol.for("LG_PASSTHROUGH")]: true };
19
13
  function _isPassthrough(x) {
20
- return (typeof x === "object" &&
21
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
- x?.[Symbol.for("LG_PASSTHROUGH")] !== undefined);
14
+ return typeof x === "object" && x?.[Symbol.for("LG_PASSTHROUGH")] !== void 0;
23
15
  }
24
16
  const IS_WRITER = Symbol("IS_WRITER");
25
17
  /**
26
- * Mapping of write channels to Runnables that return the value to be written,
27
- * or None to skip writing.
28
- */
29
- class ChannelWrite extends utils_js_1.RunnableCallable {
30
- constructor(writes, tags) {
31
- const name = `ChannelWrite<${writes
32
- .map((packet) => {
33
- if ((0, constants_js_1._isSend)(packet)) {
34
- return packet.node;
35
- }
36
- else if ("channel" in packet) {
37
- return packet.channel;
38
- }
39
- return "...";
40
- })
41
- .join(",")}>`;
42
- super({
43
- ...{ writes, name, tags },
44
- func: async (input, config) => {
45
- return this._write(input, config ?? {});
46
- },
47
- });
48
- Object.defineProperty(this, "writes", {
49
- enumerable: true,
50
- configurable: true,
51
- writable: true,
52
- value: void 0
53
- });
54
- this.writes = writes;
55
- }
56
- async _write(input, config) {
57
- const writes = this.writes.map((write) => {
58
- if (_isChannelWriteTupleEntry(write) && _isPassthrough(write.value)) {
59
- return {
60
- mapper: write.mapper,
61
- value: input,
62
- };
63
- }
64
- else if (_isChannelWriteEntry(write) && _isPassthrough(write.value)) {
65
- return {
66
- channel: write.channel,
67
- value: input,
68
- skipNone: write.skipNone,
69
- mapper: write.mapper,
70
- };
71
- }
72
- else {
73
- return write;
74
- }
75
- });
76
- await ChannelWrite.doWrite(config, writes);
77
- return input;
78
- }
79
- // TODO: Support requireAtLeastOneOf
80
- static async doWrite(config, writes) {
81
- // validate
82
- for (const w of writes) {
83
- if (_isChannelWriteEntry(w)) {
84
- if (w.channel === constants_js_1.TASKS) {
85
- throw new errors_js_1.InvalidUpdateError("Cannot write to the reserved channel TASKS");
86
- }
87
- if (_isPassthrough(w.value)) {
88
- throw new errors_js_1.InvalidUpdateError("PASSTHROUGH value must be replaced");
89
- }
90
- }
91
- if (_isChannelWriteTupleEntry(w)) {
92
- if (_isPassthrough(w.value)) {
93
- throw new errors_js_1.InvalidUpdateError("PASSTHROUGH value must be replaced");
94
- }
95
- }
96
- }
97
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
98
- const writeEntries = [];
99
- for (const w of writes) {
100
- if ((0, constants_js_1._isSend)(w)) {
101
- writeEntries.push([constants_js_1.TASKS, w]);
102
- }
103
- else if (_isChannelWriteTupleEntry(w)) {
104
- const mappedResult = await w.mapper.invoke(w.value, config);
105
- if (mappedResult != null && mappedResult.length > 0) {
106
- writeEntries.push(...mappedResult);
107
- }
108
- }
109
- else if (_isChannelWriteEntry(w)) {
110
- const mappedValue = w.mapper !== undefined
111
- ? await w.mapper.invoke(w.value, config)
112
- : w.value;
113
- if (_isSkipWrite(mappedValue)) {
114
- continue;
115
- }
116
- if (w.skipNone && mappedValue === undefined) {
117
- continue;
118
- }
119
- writeEntries.push([w.channel, mappedValue]);
120
- }
121
- else {
122
- throw new Error(`Invalid write entry: ${JSON.stringify(w)}`);
123
- }
124
- }
125
- const write = config.configurable?.[constants_js_1.CONFIG_KEY_SEND];
126
- write(writeEntries);
127
- }
128
- static isWriter(runnable) {
129
- return (
130
- // eslint-disable-next-line no-instanceof/no-instanceof
131
- runnable instanceof ChannelWrite ||
132
- (IS_WRITER in runnable && !!runnable[IS_WRITER]));
133
- }
134
- static registerWriter(runnable) {
135
- return Object.defineProperty(runnable, IS_WRITER, { value: true });
136
- }
137
- }
138
- exports.ChannelWrite = ChannelWrite;
18
+ * Mapping of write channels to Runnables that return the value to be written,
19
+ * or None to skip writing.
20
+ */
21
+ var ChannelWrite = class ChannelWrite extends require_utils.RunnableCallable {
22
+ writes;
23
+ constructor(writes, tags) {
24
+ const name = `ChannelWrite<${writes.map((packet) => {
25
+ if (require_constants._isSend(packet)) return packet.node;
26
+ else if ("channel" in packet) return packet.channel;
27
+ return "...";
28
+ }).join(",")}>`;
29
+ super({
30
+ writes,
31
+ name,
32
+ tags,
33
+ func: async (input, config) => {
34
+ return this._write(input, config ?? {});
35
+ }
36
+ });
37
+ this.writes = writes;
38
+ }
39
+ async _write(input, config) {
40
+ const writes = this.writes.map((write) => {
41
+ if (_isChannelWriteTupleEntry(write) && _isPassthrough(write.value)) return {
42
+ mapper: write.mapper,
43
+ value: input
44
+ };
45
+ else if (_isChannelWriteEntry(write) && _isPassthrough(write.value)) return {
46
+ channel: write.channel,
47
+ value: input,
48
+ skipNone: write.skipNone,
49
+ mapper: write.mapper
50
+ };
51
+ else return write;
52
+ });
53
+ await ChannelWrite.doWrite(config, writes);
54
+ return input;
55
+ }
56
+ static async doWrite(config, writes) {
57
+ for (const w of writes) {
58
+ if (_isChannelWriteEntry(w)) {
59
+ if (w.channel === require_constants.TASKS) throw new require_errors.InvalidUpdateError("Cannot write to the reserved channel TASKS");
60
+ if (_isPassthrough(w.value)) throw new require_errors.InvalidUpdateError("PASSTHROUGH value must be replaced");
61
+ }
62
+ if (_isChannelWriteTupleEntry(w)) {
63
+ if (_isPassthrough(w.value)) throw new require_errors.InvalidUpdateError("PASSTHROUGH value must be replaced");
64
+ }
65
+ }
66
+ const writeEntries = [];
67
+ for (const w of writes) if (require_constants._isSend(w)) writeEntries.push([require_constants.TASKS, w]);
68
+ else if (_isChannelWriteTupleEntry(w)) {
69
+ const mappedResult = await w.mapper.invoke(w.value, config);
70
+ if (mappedResult != null && mappedResult.length > 0) writeEntries.push(...mappedResult);
71
+ } else if (_isChannelWriteEntry(w)) {
72
+ const mappedValue = w.mapper !== void 0 ? await w.mapper.invoke(w.value, config) : w.value;
73
+ if (_isSkipWrite(mappedValue)) continue;
74
+ if (w.skipNone && mappedValue === void 0) continue;
75
+ writeEntries.push([w.channel, mappedValue]);
76
+ } else throw new Error(`Invalid write entry: ${JSON.stringify(w)}`);
77
+ const write = config.configurable?.[require_constants.CONFIG_KEY_SEND];
78
+ write(writeEntries);
79
+ }
80
+ static isWriter(runnable) {
81
+ return runnable instanceof ChannelWrite || IS_WRITER in runnable && !!runnable[IS_WRITER];
82
+ }
83
+ static registerWriter(runnable) {
84
+ return Object.defineProperty(runnable, IS_WRITER, { value: true });
85
+ }
86
+ };
139
87
  function _isChannelWriteEntry(x) {
140
- return (x !== undefined && typeof x.channel === "string");
88
+ return x !== void 0 && typeof x.channel === "string";
141
89
  }
142
90
  function _isChannelWriteTupleEntry(x) {
143
- return (x !== undefined &&
144
- !_isChannelWriteEntry(x) &&
145
- runnables_1.Runnable.isRunnable(x.mapper));
91
+ return x !== void 0 && !_isChannelWriteEntry(x) && __langchain_core_runnables.Runnable.isRunnable(x.mapper);
146
92
  }
147
- //# sourceMappingURL=write.js.map
93
+
94
+ //#endregion
95
+ exports.ChannelWrite = ChannelWrite;
96
+ exports.PASSTHROUGH = PASSTHROUGH;
97
+ //# sourceMappingURL=write.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.cjs","names":["RunnableCallable","_isSend","TASKS","InvalidUpdateError","writeEntries: [string, any][]","write: TYPE_SEND","CONFIG_KEY_SEND","Runnable"],"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,qBAGHA,+BAAqC;CAC7C;CAEA,YACE,QACA,MACA;EACA,MAAM,OAAO,gBAAgB,OAC1B,KAAK,WAAW;AACf,OAAIC,0BAAQ,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,YAAYC,wBAChB,OAAM,IAAIC,kCACR;AAGJ,QAAI,eAAe,EAAE,OACnB,OAAM,IAAIA,kCAAmB;;AAGjC,OAAI,0BAA0B,IAC5B;QAAI,eAAe,EAAE,OACnB,OAAM,IAAIA,kCAAmB;;;EAKnC,MAAMC,eAAgC;AACtC,OAAK,MAAM,KAAK,OACd,KAAIH,0BAAQ,GACV,cAAa,KAAK,CAACC,yBAAO;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,MAAMG,QAAmB,OAAO,eAAeC;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,MACtBC,oCAAS,WAAY,EAA6B"}
@@ -0,0 +1,35 @@
1
+ import { RunnableCallable } from "../utils.cjs";
2
+ import { Send } from "../constants.cjs";
3
+ import { Runnable, RunnableConfig, RunnableLike } from "@langchain/core/runnables";
4
+
5
+ //#region src/pregel/write.d.ts
6
+
7
+ /**
8
+ * Mapping of write channels to Runnables that return the value to be written,
9
+ * or None to skip writing.
10
+ */
11
+ declare class ChannelWrite<
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ RunInput = any> extends RunnableCallable<RunInput, RunInput> {
14
+ writes: Array<ChannelWriteEntry | ChannelWriteTupleEntry | Send>;
15
+ constructor(writes: Array<ChannelWriteEntry | ChannelWriteTupleEntry | Send>, tags?: string[]);
16
+ _write(input: unknown, config: RunnableConfig): Promise<unknown>;
17
+ // TODO: Support requireAtLeastOneOf
18
+ static doWrite(config: RunnableConfig, writes: (ChannelWriteEntry | ChannelWriteTupleEntry | Send)[]): Promise<void>;
19
+ static isWriter(runnable: RunnableLike): runnable is ChannelWrite;
20
+ static registerWriter<T extends Runnable>(runnable: T): T;
21
+ }
22
+ interface ChannelWriteEntry {
23
+ channel: string;
24
+ value: unknown;
25
+ skipNone?: boolean;
26
+ mapper?: Runnable;
27
+ }
28
+ interface ChannelWriteTupleEntry {
29
+ value: unknown;
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+ mapper: Runnable<any, [string, any][]>;
32
+ }
33
+ //#endregion
34
+ export { ChannelWrite };
35
+ //# sourceMappingURL=write.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.d.cts","names":["Runnable","RunnableConfig","RunnableLike","Send","RunnableCallable","SKIP_WRITE","PASSTHROUGH","ChannelWrite","RunInput","ChannelWriteEntry","ChannelWriteTupleEntry","Array","Promise","T"],"sources":["../../src/pregel/write.d.ts"],"sourcesContent":["import { Runnable, RunnableConfig, RunnableLike } from \"@langchain/core/runnables\";\nimport { Send } from \"../constants.js\";\nimport { RunnableCallable } from \"../utils.js\";\nexport declare const SKIP_WRITE: {\n [x: symbol]: boolean;\n};\nexport declare const PASSTHROUGH: {\n [x: symbol]: boolean;\n};\n/**\n * Mapping of write channels to Runnables that return the value to be written,\n * or None to skip writing.\n */\nexport declare class ChannelWrite<\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nRunInput = any> extends RunnableCallable<RunInput, RunInput> {\n writes: Array<ChannelWriteEntry | ChannelWriteTupleEntry | Send>;\n constructor(writes: Array<ChannelWriteEntry | ChannelWriteTupleEntry | Send>, tags?: string[]);\n _write(input: unknown, config: RunnableConfig): Promise<unknown>;\n // TODO: Support requireAtLeastOneOf\n static doWrite(config: RunnableConfig, writes: (ChannelWriteEntry | ChannelWriteTupleEntry | Send)[]): Promise<void>;\n static isWriter(runnable: RunnableLike): runnable is ChannelWrite;\n static registerWriter<T extends Runnable>(runnable: T): T;\n}\nexport interface ChannelWriteEntry {\n channel: string;\n value: unknown;\n skipNone?: boolean;\n mapper?: Runnable;\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"],"mappings":";;;;;;;;;;AAiB8BS,cAJTF,YAISE;;WAA6CN,GAAAA,CAAAA,SAFnDC,gBAEmDD,CAFlCK,QAEkCL,EAFxBK,QAEwBL,CAAAA,CAAAA;QAAnDQ,EADZA,KACYA,CADNF,iBACME,GADcD,sBACdC,GADuCR,IACvCQ,CAAAA;aACWV,CAAAA,MAAAA,EADXU,KACWV,CADLQ,iBACKR,GADeS,sBACfT,GADwCE,IACxCF,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,MAAAA,EAAAA;QAAiBW,CAAAA,KAAAA,EAAAA,OAAAA,EAAAA,MAAAA,EAAjBX,cAAiBW,CAAAA,EAAAA,OAAAA,CAAAA,OAAAA,CAAAA;;SAEAH,OAAAA,CAAAA,MAAAA,EAAzBR,cAAyBQ,EAAAA,MAAAA,EAAAA,CAAAA,iBAAAA,GAAoBC,sBAApBD,GAA6CN,IAA7CM,CAAAA,EAAAA,CAAAA,EAAuDG,OAAvDH,CAAAA,IAAAA,CAAAA;SAAoBC,QAAAA,CAAAA,QAAAA,EAC1CR,YAD0CQ,CAAAA,EAAAA,QAAAA,IACfH,YADeG;SAAyBP,cAAAA,CAAAA,UAE7DH,QAF6DG,CAAAA,CAAAA,QAAAA,EAEzCU,CAFyCV,CAAAA,EAErCU,CAFqCV;;AACnED,UAGbO,iBAAAA,CAHaP;SAA2BK,EAAAA,MAAAA;OACrBP,EAAAA,OAAAA;UAAoBa,CAAAA,EAAAA,OAAAA;QAAIA,CAAAA,EAM/Cb,QAN+Ca;;UAQ3CH,sBAAAA;EANAD,KAAAA,EAAAA,OAAAA;EAMAC;UAGLV"}
@@ -1,31 +1,35 @@
1
- import { Runnable, RunnableConfig, RunnableLike } from "@langchain/core/runnables";
2
- import { Send } from "../constants.js";
3
1
  import { RunnableCallable } from "../utils.js";
4
- export declare const SKIP_WRITE: {
5
- [x: symbol]: boolean;
6
- };
7
- export declare const PASSTHROUGH: {
8
- [x: symbol]: boolean;
9
- };
2
+ import { Send } from "../constants.js";
3
+ import { Runnable, RunnableConfig, RunnableLike } from "@langchain/core/runnables";
4
+
5
+ //#region src/pregel/write.d.ts
6
+
10
7
  /**
11
8
  * Mapping of write channels to Runnables that return the value to be written,
12
9
  * or None to skip writing.
13
10
  */
14
- export declare class ChannelWrite<RunInput = any> extends RunnableCallable<RunInput, RunInput> {
15
- writes: Array<ChannelWriteEntry | ChannelWriteTupleEntry | Send>;
16
- constructor(writes: Array<ChannelWriteEntry | ChannelWriteTupleEntry | Send>, tags?: string[]);
17
- _write(input: unknown, config: RunnableConfig): Promise<unknown>;
18
- static doWrite(config: RunnableConfig, writes: (ChannelWriteEntry | ChannelWriteTupleEntry | Send)[]): Promise<void>;
19
- static isWriter(runnable: RunnableLike): runnable is ChannelWrite;
20
- static registerWriter<T extends Runnable>(runnable: T): T;
11
+ declare class ChannelWrite<
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ RunInput = any> extends RunnableCallable<RunInput, RunInput> {
14
+ writes: Array<ChannelWriteEntry | ChannelWriteTupleEntry | Send>;
15
+ constructor(writes: Array<ChannelWriteEntry | ChannelWriteTupleEntry | Send>, tags?: string[]);
16
+ _write(input: unknown, config: RunnableConfig): Promise<unknown>;
17
+ // TODO: Support requireAtLeastOneOf
18
+ static doWrite(config: RunnableConfig, writes: (ChannelWriteEntry | ChannelWriteTupleEntry | Send)[]): Promise<void>;
19
+ static isWriter(runnable: RunnableLike): runnable is ChannelWrite;
20
+ static registerWriter<T extends Runnable>(runnable: T): T;
21
21
  }
22
- export interface ChannelWriteEntry {
23
- channel: string;
24
- value: unknown;
25
- skipNone?: boolean;
26
- mapper?: Runnable;
22
+ interface ChannelWriteEntry {
23
+ channel: string;
24
+ value: unknown;
25
+ skipNone?: boolean;
26
+ mapper?: Runnable;
27
27
  }
28
- export interface ChannelWriteTupleEntry {
29
- value: unknown;
30
- mapper: Runnable<any, [string, any][]>;
28
+ interface ChannelWriteTupleEntry {
29
+ value: unknown;
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+ mapper: Runnable<any, [string, any][]>;
31
32
  }
33
+ //#endregion
34
+ export { ChannelWrite };
35
+ //# sourceMappingURL=write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.d.ts","names":["Runnable","RunnableConfig","RunnableLike","Send","RunnableCallable","SKIP_WRITE","PASSTHROUGH","ChannelWrite","RunInput","ChannelWriteEntry","ChannelWriteTupleEntry","Array","Promise","T"],"sources":["../../src/pregel/write.d.ts"],"sourcesContent":["import { Runnable, RunnableConfig, RunnableLike } from \"@langchain/core/runnables\";\nimport { Send } from \"../constants.js\";\nimport { RunnableCallable } from \"../utils.js\";\nexport declare const SKIP_WRITE: {\n [x: symbol]: boolean;\n};\nexport declare const PASSTHROUGH: {\n [x: symbol]: boolean;\n};\n/**\n * Mapping of write channels to Runnables that return the value to be written,\n * or None to skip writing.\n */\nexport declare class ChannelWrite<\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nRunInput = any> extends RunnableCallable<RunInput, RunInput> {\n writes: Array<ChannelWriteEntry | ChannelWriteTupleEntry | Send>;\n constructor(writes: Array<ChannelWriteEntry | ChannelWriteTupleEntry | Send>, tags?: string[]);\n _write(input: unknown, config: RunnableConfig): Promise<unknown>;\n // TODO: Support requireAtLeastOneOf\n static doWrite(config: RunnableConfig, writes: (ChannelWriteEntry | ChannelWriteTupleEntry | Send)[]): Promise<void>;\n static isWriter(runnable: RunnableLike): runnable is ChannelWrite;\n static registerWriter<T extends Runnable>(runnable: T): T;\n}\nexport interface ChannelWriteEntry {\n channel: string;\n value: unknown;\n skipNone?: boolean;\n mapper?: Runnable;\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"],"mappings":";;;;;;;;;;AAiB8BS,cAJTF,YAISE;;WAA6CN,GAAAA,CAAAA,SAFnDC,gBAEmDD,CAFlCK,QAEkCL,EAFxBK,QAEwBL,CAAAA,CAAAA;QAAnDQ,EADZA,KACYA,CADNF,iBACME,GADcD,sBACdC,GADuCR,IACvCQ,CAAAA;aACWV,CAAAA,MAAAA,EADXU,KACWV,CADLQ,iBACKR,GADeS,sBACfT,GADwCE,IACxCF,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,MAAAA,EAAAA;QAAiBW,CAAAA,KAAAA,EAAAA,OAAAA,EAAAA,MAAAA,EAAjBX,cAAiBW,CAAAA,EAAAA,OAAAA,CAAAA,OAAAA,CAAAA;;SAEAH,OAAAA,CAAAA,MAAAA,EAAzBR,cAAyBQ,EAAAA,MAAAA,EAAAA,CAAAA,iBAAAA,GAAoBC,sBAApBD,GAA6CN,IAA7CM,CAAAA,EAAAA,CAAAA,EAAuDG,OAAvDH,CAAAA,IAAAA,CAAAA;SAAoBC,QAAAA,CAAAA,QAAAA,EAC1CR,YAD0CQ,CAAAA,EAAAA,QAAAA,IACfH,YADeG;SAAyBP,cAAAA,CAAAA,UAE7DH,QAF6DG,CAAAA,CAAAA,QAAAA,EAEzCU,CAFyCV,CAAAA,EAErCU,CAFqCV;;AACnED,UAGbO,iBAAAA,CAHaP;SAA2BK,EAAAA,MAAAA;OACrBP,EAAAA,OAAAA;UAAoBa,CAAAA,EAAAA,OAAAA;QAAIA,CAAAA,EAM/Cb,QAN+Ca;;UAQ3CH,sBAAAA;EANAD,KAAAA,EAAAA,OAAAA;EAMAC;UAGLV"}