@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,367 +0,0 @@
1
- import { describe, expect, it, vi } from "vitest";
2
- import { AIMessage, AIMessageChunk, ToolMessage, } from "@langchain/core/messages";
3
- import { ChatGenerationChunk } from "@langchain/core/outputs";
4
- import { StreamMessagesHandler } from "./messages.js";
5
- import { TAG_HIDDEN, TAG_NOSTREAM } from "../constants.js";
6
- describe("StreamMessagesHandler", () => {
7
- describe("constructor", () => {
8
- it("should properly initialize the handler", () => {
9
- const streamFn = vi.fn();
10
- const handler = new StreamMessagesHandler(streamFn);
11
- expect(handler.name).toBe("StreamMessagesHandler");
12
- expect(handler.streamFn).toBe(streamFn);
13
- expect(handler.metadatas).toEqual({});
14
- expect(handler.seen).toEqual({});
15
- expect(handler.emittedChatModelRunIds).toEqual({});
16
- expect(handler.stableMessageIdMap).toEqual({});
17
- expect(handler.lc_prefer_streaming).toBe(true);
18
- });
19
- });
20
- describe("_emit", () => {
21
- it("should emit a message with metadata", () => {
22
- const streamFn = vi.fn();
23
- const handler = new StreamMessagesHandler(streamFn);
24
- const meta = [
25
- ["ns1", "ns2"],
26
- { name: "test", tags: [] },
27
- ];
28
- const message = new AIMessage({ content: "Hello world" });
29
- const runId = "run-123";
30
- handler._emit(meta, message, runId);
31
- expect(streamFn).toHaveBeenCalledWith([
32
- ["ns1", "ns2"],
33
- "messages",
34
- [message, { name: "test", tags: [] }],
35
- ]);
36
- // Should store the message in seen if it has an ID
37
- message.id = "msg-123";
38
- handler._emit(meta, message, runId);
39
- expect(handler.seen["msg-123"]).toBe(message);
40
- });
41
- it("should deduplicate messages when dedupe=true and message has been seen", () => {
42
- const streamFn = vi.fn();
43
- const handler = new StreamMessagesHandler(streamFn);
44
- const meta = [
45
- ["ns1"],
46
- { name: "test" },
47
- ];
48
- const message = new AIMessage({ content: "Hello world", id: "msg-123" });
49
- const runId = "run-123";
50
- // First emit should work
51
- handler._emit(meta, message, runId);
52
- expect(streamFn).toHaveBeenCalledTimes(1);
53
- // Second emit with same ID and dedupe=true should be ignored
54
- streamFn.mockClear();
55
- handler._emit(meta, message, runId, true);
56
- expect(streamFn).not.toHaveBeenCalled();
57
- });
58
- it("should assign proper ID to tool messages", () => {
59
- const streamFn = vi.fn();
60
- const handler = new StreamMessagesHandler(streamFn);
61
- const meta = [
62
- ["ns1"],
63
- { name: "test" },
64
- ];
65
- const toolMessage = new ToolMessage({
66
- content: "Tool result",
67
- tool_call_id: "tc-123",
68
- });
69
- const runId = "run-456";
70
- handler._emit(meta, toolMessage, runId);
71
- // Should assign an ID based on the tool call ID
72
- expect(toolMessage.id).toBe(`run-${runId}-tool-tc-123`);
73
- expect(streamFn).toHaveBeenCalled();
74
- });
75
- it("should maintain stable message IDs for the same run", () => {
76
- const streamFn = vi.fn();
77
- const handler = new StreamMessagesHandler(streamFn);
78
- const meta = [
79
- ["ns1"],
80
- { name: "test" },
81
- ];
82
- const runId = "run-789";
83
- // First message with auto-generated ID
84
- const message1 = new AIMessage({ content: "First chunk" });
85
- handler._emit(meta, message1, runId);
86
- const stableId = message1.id;
87
- // Second message with no ID should get the same stable ID
88
- const message2 = new AIMessage({ content: "Second chunk" });
89
- handler._emit(meta, message2, runId);
90
- expect(message2.id).toBe(stableId);
91
- expect(handler.stableMessageIdMap[runId]).toBe(stableId);
92
- });
93
- });
94
- describe("handleChatModelStart", () => {
95
- it("should store metadata when provided", () => {
96
- const handler = new StreamMessagesHandler(vi.fn());
97
- const runId = "run-123";
98
- const metadata = {
99
- langgraph_checkpoint_ns: "ns1|ns2",
100
- other_meta: "value",
101
- };
102
- handler.handleChatModelStart({}, // llm
103
- [], // messages
104
- runId, undefined, // parentRunId
105
- {}, // extraParams
106
- [], // tags
107
- metadata, // metadata
108
- "ModelName" // name
109
- );
110
- expect(handler.metadatas[runId]).toEqual([
111
- ["ns1", "ns2"],
112
- { tags: [], name: "ModelName", ...metadata },
113
- ]);
114
- });
115
- it("should not store metadata when TAG_NOSTREAM is present", () => {
116
- const handler = new StreamMessagesHandler(vi.fn());
117
- const runId = "run-123";
118
- const metadata = {
119
- langgraph_checkpoint_ns: "ns1|ns2",
120
- };
121
- handler.handleChatModelStart({}, [], runId, undefined, {}, [TAG_NOSTREAM], // nostream tag
122
- metadata, "ModelName");
123
- // Should not store metadata due to TAG_NOSTREAM
124
- expect(handler.metadatas[runId]).toBeUndefined();
125
- });
126
- });
127
- describe("handleLLMNewToken", () => {
128
- it("should emit message chunk when metadata exists", () => {
129
- const streamFn = vi.fn();
130
- const handler = new StreamMessagesHandler(streamFn);
131
- const runId = "run-123";
132
- handler.metadatas[runId] = [["ns1", "ns2"], { name: "test" }];
133
- // Spy on _emit
134
- const emitSpy = vi.spyOn(handler, "_emit");
135
- handler.handleLLMNewToken("token", { prompt: 0, completion: 0 }, // idx
136
- runId);
137
- // Should mark run as emitted
138
- expect(handler.emittedChatModelRunIds[runId]).toBe(true);
139
- // Should emit AIMessageChunk when no chunk is provided
140
- expect(emitSpy).toHaveBeenCalledWith(handler.metadatas[runId], expect.any(AIMessageChunk), runId);
141
- expect(emitSpy.mock.calls[0][1].content).toBe("token");
142
- });
143
- it("should emit provided chunk when available", () => {
144
- const streamFn = vi.fn();
145
- const handler = new StreamMessagesHandler(streamFn);
146
- const runId = "run-123";
147
- handler.metadatas[runId] = [["ns1"], { name: "test" }];
148
- // Spy on _emit
149
- const emitSpy = vi.spyOn(handler, "_emit");
150
- // Create a chunk
151
- const chunk = new ChatGenerationChunk({
152
- message: new AIMessageChunk({ content: "chunk content" }),
153
- text: "chunk content", // Add text field to satisfy ChatGenerationChunkFields
154
- });
155
- handler.handleLLMNewToken("token", { prompt: 0, completion: 0 }, runId, undefined, undefined, { chunk } // provide the chunk
156
- );
157
- // Should emit the chunk's message
158
- expect(emitSpy).toHaveBeenCalledWith(handler.metadatas[runId], chunk.message, runId);
159
- });
160
- it("should not emit when metadata is missing", () => {
161
- const streamFn = vi.fn();
162
- const handler = new StreamMessagesHandler(streamFn);
163
- const runId = "run-123";
164
- // No metadata for this runId
165
- // Spy on _emit
166
- const emitSpy = vi.spyOn(handler, "_emit");
167
- handler.handleLLMNewToken("token", { prompt: 0, completion: 0 }, runId);
168
- // Should mark run as emitted
169
- expect(handler.emittedChatModelRunIds[runId]).toBe(true);
170
- // But should not call _emit
171
- expect(emitSpy).not.toHaveBeenCalled();
172
- });
173
- });
174
- describe("handleLLMEnd", () => {
175
- it("should emit message from non-streaming run", () => {
176
- const streamFn = vi.fn();
177
- const handler = new StreamMessagesHandler(streamFn);
178
- const runId = "run-123";
179
- handler.metadatas[runId] = [["ns1"], { name: "test" }];
180
- // Not marked as emitted yet
181
- // Mock _emit directly instead of spying
182
- handler._emit = vi.fn();
183
- const message = new AIMessage({ content: "final result" });
184
- handler.handleLLMEnd({
185
- generations: [[{ text: "test output", message }]],
186
- }, runId);
187
- // Should emit the message with dedupe=true
188
- expect(handler._emit).toHaveBeenCalledWith(expect.anything(), expect.objectContaining({ content: "final result" }), runId, true);
189
- // Should clean up
190
- expect(handler.metadatas[runId]).toBeUndefined();
191
- });
192
- it("should not emit for streaming runs that already emitted", () => {
193
- const streamFn = vi.fn();
194
- const handler = new StreamMessagesHandler(streamFn);
195
- const runId = "run-123";
196
- handler.metadatas[runId] = [["ns1"], { name: "test" }];
197
- // Mark as already emitted
198
- handler.emittedChatModelRunIds[runId] = true;
199
- // Mock _emit directly
200
- handler._emit = vi.fn();
201
- handler.handleLLMEnd({
202
- generations: [
203
- [
204
- {
205
- text: "test output",
206
- message: new AIMessage({ content: "result" }),
207
- },
208
- ],
209
- ],
210
- }, runId);
211
- // Should not emit anything
212
- expect(handler._emit).not.toHaveBeenCalled();
213
- // Should clean up metadata
214
- expect(handler.metadatas[runId]).toBeUndefined();
215
- });
216
- it("should not emit when metadata is missing", () => {
217
- const streamFn = vi.fn();
218
- const handler = new StreamMessagesHandler(streamFn);
219
- // Spy on _emit
220
- const emitSpy = vi.spyOn(handler, "_emit");
221
- handler.handleLLMEnd({
222
- generations: [
223
- [
224
- {
225
- text: "test output",
226
- message: new AIMessage({ content: "result" }),
227
- },
228
- ],
229
- ],
230
- }, "run-123");
231
- // Should not emit anything
232
- expect(emitSpy).not.toHaveBeenCalled();
233
- });
234
- });
235
- describe("handleLLMError", () => {
236
- it("should clean up metadata on error", () => {
237
- const handler = new StreamMessagesHandler(vi.fn());
238
- const runId = "run-123";
239
- handler.metadatas[runId] = [["ns1"], { name: "test" }];
240
- handler.handleLLMError(new Error("Test error"), runId);
241
- // Should clean up metadata
242
- expect(handler.metadatas[runId]).toBeUndefined();
243
- });
244
- });
245
- describe("handleChainStart", () => {
246
- it("should store metadata for matching node name", () => {
247
- const handler = new StreamMessagesHandler(vi.fn());
248
- const runId = "chain-123";
249
- const metadata = {
250
- langgraph_checkpoint_ns: "ns1|ns2",
251
- langgraph_node: "NodeName", // Matches name parameter
252
- };
253
- handler.handleChainStart({}, {}, runId, undefined, [], metadata, undefined, "NodeName" // Name matches langgraph_node
254
- );
255
- expect(handler.metadatas[runId]).toEqual([
256
- ["ns1", "ns2"],
257
- { tags: [], name: "NodeName", ...metadata },
258
- ]);
259
- });
260
- it("should not store metadata when node name doesn't match", () => {
261
- const handler = new StreamMessagesHandler(vi.fn());
262
- const runId = "chain-123";
263
- const metadata = {
264
- langgraph_checkpoint_ns: "ns1|ns2",
265
- langgraph_node: "NodeName", // Doesn't match name parameter
266
- };
267
- handler.handleChainStart({}, {}, runId, undefined, [], metadata, undefined, "DifferentName" // Different from langgraph_node
268
- );
269
- expect(handler.metadatas[runId]).toBeUndefined();
270
- });
271
- it("should not store metadata when TAG_HIDDEN is present", () => {
272
- const handler = new StreamMessagesHandler(vi.fn());
273
- const runId = "chain-123";
274
- const metadata = {
275
- langgraph_checkpoint_ns: "ns1|ns2",
276
- langgraph_node: "NodeName",
277
- };
278
- handler.handleChainStart({}, {}, runId, undefined, [TAG_HIDDEN], // Hidden tag
279
- metadata, undefined, "NodeName");
280
- expect(handler.metadatas[runId]).toBeUndefined();
281
- });
282
- });
283
- describe("handleChainEnd", () => {
284
- it("should emit a single message output", () => {
285
- const streamFn = vi.fn();
286
- const handler = new StreamMessagesHandler(streamFn);
287
- const runId = "chain-123";
288
- handler.metadatas[runId] = [["ns1"], { name: "test" }];
289
- // Mock _emit directly
290
- handler._emit = vi.fn();
291
- const message = new AIMessage({ content: "chain result" });
292
- handler.handleChainEnd(message, runId);
293
- // Should emit the message with dedupe=true
294
- expect(handler._emit).toHaveBeenCalledWith(expect.anything(), expect.objectContaining({ content: "chain result" }), runId, true);
295
- // Should clean up
296
- expect(handler.metadatas[runId]).toBeUndefined();
297
- });
298
- it("should emit messages from an array output", () => {
299
- const streamFn = vi.fn();
300
- const handler = new StreamMessagesHandler(streamFn);
301
- const runId = "chain-123";
302
- handler.metadatas[runId] = [["ns1"], { name: "test" }];
303
- // Mock _emit directly
304
- handler._emit = vi.fn();
305
- const message1 = new AIMessage({ content: "result 1" });
306
- const message2 = new AIMessage({ content: "result 2" });
307
- const notAMessage = "not a message";
308
- handler.handleChainEnd([message1, message2, notAMessage], runId);
309
- // Should emit both messages
310
- expect(handler._emit).toHaveBeenCalledTimes(2);
311
- // Verify calls in a way that's less brittle
312
- const callArgs = handler._emit.mock.calls;
313
- const emittedContents = callArgs.map((args) => args[1].content);
314
- expect(emittedContents).toContain("result 1");
315
- expect(emittedContents).toContain("result 2");
316
- // Should clean up
317
- expect(handler.metadatas[runId]).toBeUndefined();
318
- });
319
- it("should emit messages from object output properties", () => {
320
- const streamFn = vi.fn();
321
- const handler = new StreamMessagesHandler(streamFn);
322
- const runId = "chain-123";
323
- handler.metadatas[runId] = [["ns1"], { name: "test" }];
324
- // Mock _emit directly
325
- handler._emit = vi.fn();
326
- const message = new AIMessage({ content: "direct result" });
327
- const arrayMessage = new AIMessage({ content: "array result" });
328
- handler.handleChainEnd({
329
- directMessage: message,
330
- arrayMessages: [arrayMessage, "not a message"],
331
- otherProp: "something else",
332
- }, runId);
333
- // Should emit both messages
334
- expect(handler._emit).toHaveBeenCalledTimes(2);
335
- // Verify calls in a way that's less brittle
336
- const callArgs = handler._emit.mock.calls;
337
- const emittedContents = callArgs.map((args) => args[1].content);
338
- expect(emittedContents).toContain("direct result");
339
- expect(emittedContents).toContain("array result");
340
- // Should clean up
341
- expect(handler.metadatas[runId]).toBeUndefined();
342
- });
343
- it("should do nothing when metadata is missing", () => {
344
- const streamFn = vi.fn();
345
- const handler = new StreamMessagesHandler(streamFn);
346
- const runId = "chain-123";
347
- // No metadata for this runId
348
- // Spy on _emit
349
- const emitSpy = vi.spyOn(handler, "_emit");
350
- const message = new AIMessage({ content: "result" });
351
- handler.handleChainEnd(message, runId);
352
- // Should not emit anything
353
- expect(emitSpy).not.toHaveBeenCalled();
354
- });
355
- });
356
- describe("handleChainError", () => {
357
- it("should clean up metadata on error", () => {
358
- const handler = new StreamMessagesHandler(vi.fn());
359
- const runId = "chain-123";
360
- handler.metadatas[runId] = [["ns1"], { name: "test" }];
361
- handler.handleChainError(new Error("Test error"), runId);
362
- // Should clean up metadata
363
- expect(handler.metadatas[runId]).toBeUndefined();
364
- });
365
- });
366
- });
367
- //# sourceMappingURL=messages.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messages.test.js","sourceRoot":"","sources":["../../src/pregel/messages.test.ts"],"names":[],"mappings":"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"}
@@ -1,194 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const constants_js_1 = require("../constants.cjs");
5
- const last_value_js_1 = require("../channels/last_value.cjs");
6
- const read_js_1 = require("./read.cjs");
7
- const write_js_1 = require("./write.cjs");
8
- (0, vitest_1.describe)("ChannelRead", () => {
9
- (0, vitest_1.it)("should read a single channel value", async () => {
10
- // Setup mock read function
11
- const mockRead = vitest_1.vi
12
- .fn()
13
- .mockImplementation((channel) => {
14
- if (channel === "test_channel") {
15
- return "test_value";
16
- }
17
- return null;
18
- });
19
- const config = {
20
- configurable: {
21
- [constants_js_1.CONFIG_KEY_READ]: mockRead,
22
- },
23
- };
24
- // Create channel read
25
- const channelRead = new read_js_1.ChannelRead("test_channel");
26
- // Run the channel read with our config
27
- const result = await channelRead.invoke(null, config);
28
- // Verify results
29
- (0, vitest_1.expect)(result).toBe("test_value");
30
- });
31
- (0, vitest_1.it)("should read multiple channel values", async () => {
32
- // Setup mock read function
33
- const mockRead = vitest_1.vi
34
- .fn()
35
- .mockImplementation((channels) => {
36
- if (Array.isArray(channels)) {
37
- return {
38
- channel1: "value1",
39
- channel2: "value2",
40
- };
41
- }
42
- return null;
43
- });
44
- const config = {
45
- configurable: {
46
- [constants_js_1.CONFIG_KEY_READ]: mockRead,
47
- },
48
- };
49
- // Create channel read for multiple channels
50
- const channelRead = new read_js_1.ChannelRead(["channel1", "channel2"]);
51
- // Run the channel read with our config
52
- const result = await channelRead.invoke(null, config);
53
- // Verify results
54
- (0, vitest_1.expect)(result).toEqual({
55
- channel1: "value1",
56
- channel2: "value2",
57
- });
58
- });
59
- (0, vitest_1.it)("should apply a mapper function to the channel value", async () => {
60
- // Setup mock read function
61
- const mockRead = vitest_1.vi.fn().mockImplementation(() => "test_value");
62
- const config = {
63
- configurable: {
64
- [constants_js_1.CONFIG_KEY_READ]: mockRead,
65
- },
66
- };
67
- // Create mapper function
68
- const mapper = (value) => `mapped_${value}`;
69
- // Create channel read with mapper
70
- const channelRead = new read_js_1.ChannelRead("test_channel", mapper);
71
- // Run the channel read with our config
72
- const result = await channelRead.invoke(null, config);
73
- // Verify results
74
- (0, vitest_1.expect)(result).toBe("mapped_test_value");
75
- });
76
- (0, vitest_1.it)("should throw an error if no read function is configured", async () => {
77
- // Create channel read without configuring a read function
78
- const channelRead = new read_js_1.ChannelRead("test_channel");
79
- const config = {};
80
- // Run the channel read with empty config
81
- await (0, vitest_1.expect)(channelRead.invoke(null, config)).rejects.toThrow("not configured with a read function");
82
- });
83
- });
84
- (0, vitest_1.describe)("PregelNode", () => {
85
- (0, vitest_1.it)("should create a node that subscribes to channels", () => {
86
- const node = new read_js_1.PregelNode({
87
- channels: ["input", "context"],
88
- triggers: ["input"],
89
- });
90
- (0, vitest_1.expect)(node.channels).toEqual(["input", "context"]);
91
- (0, vitest_1.expect)(node.triggers).toEqual(["input"]);
92
- });
93
- (0, vitest_1.it)("should chain with ChannelWrite using pipe", () => {
94
- const node = new read_js_1.PregelNode({
95
- channels: ["input"],
96
- triggers: ["input"],
97
- });
98
- const write = new write_js_1.ChannelWrite([
99
- { channel: "output", value: "test_output" },
100
- ]);
101
- const pipeResult = node.pipe(write);
102
- (0, vitest_1.expect)(pipeResult.writers).toHaveLength(1);
103
- (0, vitest_1.expect)(pipeResult.writers[0]).toBe(write);
104
- });
105
- (0, vitest_1.it)("should combine multiple consecutive ChannelWrite instances", () => {
106
- const node = new read_js_1.PregelNode({
107
- channels: ["input"],
108
- triggers: ["input"],
109
- });
110
- const write1 = new write_js_1.ChannelWrite([{ channel: "output1", value: "value1" }]);
111
- const write2 = new write_js_1.ChannelWrite([{ channel: "output2", value: "value2" }]);
112
- // Chain two writes
113
- const pipeResult = node.pipe(write1).pipe(write2);
114
- // Get optimized writers
115
- const optimizedWriters = pipeResult.getWriters();
116
- // Should be combined into a single ChannelWrite
117
- (0, vitest_1.expect)(optimizedWriters).toHaveLength(1);
118
- (0, vitest_1.expect)(optimizedWriters[0]).toBeInstanceOf(write_js_1.ChannelWrite);
119
- (0, vitest_1.expect)(optimizedWriters[0].writes).toHaveLength(2);
120
- });
121
- (0, vitest_1.it)("should join additional channels", () => {
122
- const node = new read_js_1.PregelNode({
123
- channels: { input: "input", context: "context" },
124
- triggers: ["input"],
125
- });
126
- const joinedNode = node.join(["history"]);
127
- (0, vitest_1.expect)(joinedNode.channels).toEqual({
128
- input: "input",
129
- context: "context",
130
- history: "history",
131
- });
132
- });
133
- });
134
- (0, vitest_1.describe)("Integrated Channel Read and Write", () => {
135
- (0, vitest_1.it)("should perform direct channel operations", async () => {
136
- // Use direct channel operations rather than depending on invoke
137
- // Setup test environment with real channels
138
- const channels = {
139
- input: new last_value_js_1.LastValue(),
140
- output: new last_value_js_1.LastValue(),
141
- };
142
- // Set initial value in input channel
143
- channels.input.update(["test_input"]);
144
- // Get value from input channel
145
- const inputValue = channels.input.get();
146
- (0, vitest_1.expect)(inputValue).toBe("test_input");
147
- // Process value
148
- const processedValue = `processed_${inputValue}`;
149
- // Write to output channel
150
- const updated = channels.output.update([processedValue]);
151
- (0, vitest_1.expect)(updated).toBe(true);
152
- // Read from output channel
153
- const outputValue = channels.output.get();
154
- (0, vitest_1.expect)(outputValue).toBe("processed_test_input");
155
- });
156
- (0, vitest_1.it)("should work with manual read and write operations", async () => {
157
- // Setup test environment with real channels
158
- const channels = {
159
- input: new last_value_js_1.LastValue(),
160
- output: new last_value_js_1.LastValue(),
161
- };
162
- // Initialize input channel with a value
163
- channels.input.update(["test_input"]);
164
- // Setup write tracking
165
- let writtenValue = null;
166
- // Manual read operation
167
- const readFunc = (channel) => {
168
- if (channel === "input") {
169
- return channels.input.get();
170
- }
171
- return null;
172
- };
173
- // Manual write operation
174
- const writeFunc = (values) => {
175
- for (const [channel, value] of values) {
176
- if (channel === "output") {
177
- writtenValue = value;
178
- channels.output.update([value]);
179
- }
180
- }
181
- };
182
- // Read from input channel
183
- const inputValue = readFunc("input");
184
- (0, vitest_1.expect)(inputValue).toBe("test_input");
185
- // Process the value
186
- const processedValue = `processed_${inputValue}`;
187
- // Write to output channel
188
- writeFunc([["output", processedValue]]);
189
- // Verify the write happened
190
- (0, vitest_1.expect)(writtenValue).toBe("processed_test_input");
191
- (0, vitest_1.expect)(channels.output.get()).toBe("processed_test_input");
192
- });
193
- });
194
- //# sourceMappingURL=read.test.js.map
@@ -1 +0,0 @@
1
- export {};