@langchain/langgraph 0.4.8 → 1.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/CHANGELOG.md +7 -2
  2. package/README.md +1 -2
  3. package/dist/_virtual/rolldown_runtime.cjs +25 -0
  4. package/dist/channels/any_value.d.cts +26 -0
  5. package/dist/channels/any_value.d.cts.map +1 -0
  6. package/dist/channels/any_value.d.ts +16 -9
  7. package/dist/channels/any_value.d.ts.map +1 -0
  8. package/dist/channels/base.cjs +97 -133
  9. package/dist/channels/base.cjs.map +1 -0
  10. package/dist/channels/base.d.cts +73 -0
  11. package/dist/channels/base.d.cts.map +1 -0
  12. package/dist/channels/base.d.ts +73 -74
  13. package/dist/channels/base.d.ts.map +1 -0
  14. package/dist/channels/base.js +94 -127
  15. package/dist/channels/base.js.map +1 -1
  16. package/dist/channels/binop.cjs +47 -77
  17. package/dist/channels/binop.cjs.map +1 -0
  18. package/dist/channels/binop.d.cts +22 -0
  19. package/dist/channels/binop.d.cts.map +1 -0
  20. package/dist/channels/binop.d.ts +17 -12
  21. package/dist/channels/binop.d.ts.map +1 -0
  22. package/dist/channels/binop.js +45 -71
  23. package/dist/channels/binop.js.map +1 -1
  24. package/dist/channels/dynamic_barrier_value.d.cts +43 -0
  25. package/dist/channels/dynamic_barrier_value.d.cts.map +1 -0
  26. package/dist/channels/dynamic_barrier_value.d.ts +20 -34
  27. package/dist/channels/dynamic_barrier_value.d.ts.map +1 -0
  28. package/dist/channels/ephemeral_value.cjs +46 -70
  29. package/dist/channels/ephemeral_value.cjs.map +1 -0
  30. package/dist/channels/ephemeral_value.d.cts +23 -0
  31. package/dist/channels/ephemeral_value.d.cts.map +1 -0
  32. package/dist/channels/ephemeral_value.d.ts +18 -11
  33. package/dist/channels/ephemeral_value.d.ts.map +1 -0
  34. package/dist/channels/ephemeral_value.js +45 -65
  35. package/dist/channels/ephemeral_value.js.map +1 -1
  36. package/dist/channels/index.cjs +2 -10
  37. package/dist/channels/index.js +4 -3
  38. package/dist/channels/last_value.cjs +91 -140
  39. package/dist/channels/last_value.cjs.map +1 -0
  40. package/dist/channels/last_value.d.cts +30 -0
  41. package/dist/channels/last_value.d.cts.map +1 -0
  42. package/dist/channels/last_value.d.ts +15 -23
  43. package/dist/channels/last_value.d.ts.map +1 -0
  44. package/dist/channels/last_value.js +88 -133
  45. package/dist/channels/last_value.js.map +1 -1
  46. package/dist/channels/named_barrier_value.cjs +114 -170
  47. package/dist/channels/named_barrier_value.cjs.map +1 -0
  48. package/dist/channels/named_barrier_value.d.cts +33 -0
  49. package/dist/channels/named_barrier_value.d.cts.map +1 -0
  50. package/dist/channels/named_barrier_value.d.ts +19 -29
  51. package/dist/channels/named_barrier_value.d.ts.map +1 -0
  52. package/dist/channels/named_barrier_value.js +112 -163
  53. package/dist/channels/named_barrier_value.js.map +1 -1
  54. package/dist/channels/topic.cjs +63 -96
  55. package/dist/channels/topic.cjs.map +1 -0
  56. package/dist/channels/topic.d.cts +26 -0
  57. package/dist/channels/topic.d.cts.map +1 -0
  58. package/dist/channels/topic.d.ts +21 -18
  59. package/dist/channels/topic.d.ts.map +1 -0
  60. package/dist/channels/topic.js +61 -90
  61. package/dist/channels/topic.js.map +1 -1
  62. package/dist/constants.cjs +373 -452
  63. package/dist/constants.cjs.map +1 -0
  64. package/dist/constants.d.cts +284 -0
  65. package/dist/constants.d.cts.map +1 -0
  66. package/dist/constants.d.ts +112 -148
  67. package/dist/constants.d.ts.map +1 -0
  68. package/dist/constants.js +333 -444
  69. package/dist/constants.js.map +1 -1
  70. package/dist/errors.cjs +150 -179
  71. package/dist/errors.cjs.map +1 -0
  72. package/dist/errors.d.cts +80 -0
  73. package/dist/errors.d.cts.map +1 -0
  74. package/dist/errors.d.ts +55 -46
  75. package/dist/errors.d.ts.map +1 -0
  76. package/dist/errors.js +139 -165
  77. package/dist/errors.js.map +1 -1
  78. package/dist/func/index.cjs +289 -290
  79. package/dist/func/index.cjs.map +1 -0
  80. package/dist/func/index.d.cts +289 -0
  81. package/dist/func/index.d.cts.map +1 -0
  82. package/dist/func/index.d.ts +81 -71
  83. package/dist/func/index.d.ts.map +1 -0
  84. package/dist/func/index.js +285 -284
  85. package/dist/func/index.js.map +1 -1
  86. package/dist/func/types.d.cts +64 -0
  87. package/dist/func/types.d.cts.map +1 -0
  88. package/dist/func/types.d.ts +24 -19
  89. package/dist/func/types.d.ts.map +1 -0
  90. package/dist/graph/annotation.cjs +96 -120
  91. package/dist/graph/annotation.cjs.map +1 -0
  92. package/dist/graph/annotation.d.cts +116 -0
  93. package/dist/graph/annotation.d.cts.map +1 -0
  94. package/dist/graph/annotation.d.ts +33 -34
  95. package/dist/graph/annotation.d.ts.map +1 -0
  96. package/dist/graph/annotation.js +91 -112
  97. package/dist/graph/annotation.js.map +1 -1
  98. package/dist/graph/graph.cjs +419 -723
  99. package/dist/graph/graph.cjs.map +1 -0
  100. package/dist/graph/graph.d.cts +131 -0
  101. package/dist/graph/graph.d.cts.map +1 -0
  102. package/dist/graph/graph.d.ts +122 -91
  103. package/dist/graph/graph.d.ts.map +1 -0
  104. package/dist/graph/graph.js +412 -713
  105. package/dist/graph/graph.js.map +1 -1
  106. package/dist/graph/index.cjs +4 -17
  107. package/dist/graph/index.js +6 -5
  108. package/dist/graph/message.cjs +59 -104
  109. package/dist/graph/message.cjs.map +1 -0
  110. package/dist/graph/message.d.cts +19 -0
  111. package/dist/graph/message.d.cts.map +1 -0
  112. package/dist/graph/message.d.ts +11 -10
  113. package/dist/graph/message.d.ts.map +1 -0
  114. package/dist/graph/message.js +56 -98
  115. package/dist/graph/message.js.map +1 -1
  116. package/dist/graph/messages_annotation.cjs +106 -106
  117. package/dist/graph/messages_annotation.cjs.map +1 -0
  118. package/dist/graph/messages_annotation.d.cts +111 -0
  119. package/dist/graph/messages_annotation.d.cts.map +1 -0
  120. package/dist/graph/messages_annotation.d.ts +18 -9
  121. package/dist/graph/messages_annotation.d.ts.map +1 -0
  122. package/dist/graph/messages_annotation.js +100 -100
  123. package/dist/graph/messages_annotation.js.map +1 -1
  124. package/dist/graph/state.cjs +476 -777
  125. package/dist/graph/state.cjs.map +1 -0
  126. package/dist/graph/state.d.cts +216 -0
  127. package/dist/graph/state.d.cts.map +1 -0
  128. package/dist/graph/state.d.ts +129 -134
  129. package/dist/graph/state.d.ts.map +1 -0
  130. package/dist/graph/state.js +470 -768
  131. package/dist/graph/state.js.map +1 -1
  132. package/dist/graph/zod/index.cjs +10 -21
  133. package/dist/graph/zod/index.d.cts +3 -0
  134. package/dist/graph/zod/index.d.ts +3 -3
  135. package/dist/graph/zod/index.js +4 -4
  136. package/dist/graph/zod/meta.cjs +142 -177
  137. package/dist/graph/zod/meta.cjs.map +1 -0
  138. package/dist/graph/zod/meta.d.cts +116 -0
  139. package/dist/graph/zod/meta.d.cts.map +1 -0
  140. package/dist/graph/zod/meta.d.ts +99 -97
  141. package/dist/graph/zod/meta.d.ts.map +1 -0
  142. package/dist/graph/zod/meta.js +136 -170
  143. package/dist/graph/zod/meta.js.map +1 -1
  144. package/dist/graph/zod/plugin.cjs +36 -39
  145. package/dist/graph/zod/plugin.cjs.map +1 -0
  146. package/dist/graph/zod/plugin.js +34 -35
  147. package/dist/graph/zod/plugin.js.map +1 -1
  148. package/dist/graph/zod/schema.cjs +82 -110
  149. package/dist/graph/zod/schema.cjs.map +1 -0
  150. package/dist/graph/zod/schema.d.cts +38 -0
  151. package/dist/graph/zod/schema.d.cts.map +1 -0
  152. package/dist/graph/zod/schema.d.ts +12 -6
  153. package/dist/graph/zod/schema.d.ts.map +1 -0
  154. package/dist/graph/zod/schema.js +77 -103
  155. package/dist/graph/zod/schema.js.map +1 -1
  156. package/dist/graph/zod/zod-registry.cjs +41 -47
  157. package/dist/graph/zod/zod-registry.cjs.map +1 -0
  158. package/dist/graph/zod/zod-registry.d.cts +51 -0
  159. package/dist/graph/zod/zod-registry.d.cts.map +1 -0
  160. package/dist/graph/zod/zod-registry.d.ts +34 -26
  161. package/dist/graph/zod/zod-registry.d.ts.map +1 -0
  162. package/dist/graph/zod/zod-registry.js +37 -41
  163. package/dist/graph/zod/zod-registry.js.map +1 -1
  164. package/dist/hash.cjs +205 -267
  165. package/dist/hash.cjs.map +1 -0
  166. package/dist/hash.js +205 -265
  167. package/dist/hash.js.map +1 -1
  168. package/dist/index.cjs +110 -33
  169. package/dist/index.cjs.map +1 -0
  170. package/dist/index.d.cts +25 -0
  171. package/dist/index.d.ts +25 -5
  172. package/dist/index.js +18 -7
  173. package/dist/index.js.map +1 -1
  174. package/dist/interrupt.cjs +79 -85
  175. package/dist/interrupt.cjs.map +1 -0
  176. package/dist/interrupt.d.cts +49 -0
  177. package/dist/interrupt.d.cts.map +1 -0
  178. package/dist/interrupt.d.ts +6 -1
  179. package/dist/interrupt.d.ts.map +1 -0
  180. package/dist/interrupt.js +76 -80
  181. package/dist/interrupt.js.map +1 -1
  182. package/dist/prebuilt/agentName.cjs +139 -172
  183. package/dist/prebuilt/agentName.cjs.map +1 -0
  184. package/dist/prebuilt/agentName.d.cts +42 -0
  185. package/dist/prebuilt/agentName.d.cts.map +1 -0
  186. package/dist/prebuilt/agentName.d.ts +13 -21
  187. package/dist/prebuilt/agentName.d.ts.map +1 -0
  188. package/dist/prebuilt/agentName.js +139 -168
  189. package/dist/prebuilt/agentName.js.map +1 -1
  190. package/dist/prebuilt/agent_executor.cjs +42 -80
  191. package/dist/prebuilt/agent_executor.cjs.map +1 -0
  192. package/dist/prebuilt/agent_executor.d.cts +57 -0
  193. package/dist/prebuilt/agent_executor.d.cts.map +1 -0
  194. package/dist/prebuilt/agent_executor.d.ts +46 -37
  195. package/dist/prebuilt/agent_executor.d.ts.map +1 -0
  196. package/dist/prebuilt/agent_executor.js +40 -75
  197. package/dist/prebuilt/agent_executor.js.map +1 -1
  198. package/dist/prebuilt/chat_agent_executor.cjs +66 -128
  199. package/dist/prebuilt/chat_agent_executor.cjs.map +1 -0
  200. package/dist/prebuilt/chat_agent_executor.d.cts +23 -0
  201. package/dist/prebuilt/chat_agent_executor.d.cts.map +1 -0
  202. package/dist/prebuilt/chat_agent_executor.d.ts +18 -10
  203. package/dist/prebuilt/chat_agent_executor.d.ts.map +1 -0
  204. package/dist/prebuilt/chat_agent_executor.js +63 -123
  205. package/dist/prebuilt/chat_agent_executor.js.map +1 -1
  206. package/dist/prebuilt/index.cjs +15 -18
  207. package/dist/prebuilt/index.d.cts +8 -0
  208. package/dist/prebuilt/index.d.ts +8 -8
  209. package/dist/prebuilt/index.js +8 -7
  210. package/dist/prebuilt/interrupt.d.cts +73 -0
  211. package/dist/prebuilt/interrupt.d.cts.map +1 -0
  212. package/dist/prebuilt/interrupt.d.ts +32 -15
  213. package/dist/prebuilt/interrupt.d.ts.map +1 -0
  214. package/dist/prebuilt/react_agent_executor.cjs +317 -473
  215. package/dist/prebuilt/react_agent_executor.cjs.map +1 -0
  216. package/dist/prebuilt/react_agent_executor.d.cts +229 -0
  217. package/dist/prebuilt/react_agent_executor.d.cts.map +1 -0
  218. package/dist/prebuilt/react_agent_executor.d.ts +171 -143
  219. package/dist/prebuilt/react_agent_executor.d.ts.map +1 -0
  220. package/dist/prebuilt/react_agent_executor.js +315 -465
  221. package/dist/prebuilt/react_agent_executor.js.map +1 -1
  222. package/dist/prebuilt/tool_executor.cjs +45 -67
  223. package/dist/prebuilt/tool_executor.cjs.map +1 -0
  224. package/dist/prebuilt/tool_executor.d.cts +42 -0
  225. package/dist/prebuilt/tool_executor.d.cts.map +1 -0
  226. package/dist/prebuilt/tool_executor.d.ts +30 -24
  227. package/dist/prebuilt/tool_executor.d.ts.map +1 -0
  228. package/dist/prebuilt/tool_executor.js +44 -63
  229. package/dist/prebuilt/tool_executor.js.map +1 -1
  230. package/dist/prebuilt/tool_node.cjs +213 -275
  231. package/dist/prebuilt/tool_node.cjs.map +1 -0
  232. package/dist/prebuilt/tool_node.d.cts +151 -0
  233. package/dist/prebuilt/tool_node.d.cts.map +1 -0
  234. package/dist/prebuilt/tool_node.d.ts +30 -17
  235. package/dist/prebuilt/tool_node.d.ts.map +1 -0
  236. package/dist/prebuilt/tool_node.js +209 -268
  237. package/dist/prebuilt/tool_node.js.map +1 -1
  238. package/dist/pregel/algo.cjs +521 -692
  239. package/dist/pregel/algo.cjs.map +1 -0
  240. package/dist/pregel/algo.d.cts +13 -0
  241. package/dist/pregel/algo.d.cts.map +1 -0
  242. package/dist/pregel/algo.d.ts +8 -38
  243. package/dist/pregel/algo.d.ts.map +1 -0
  244. package/dist/pregel/algo.js +516 -683
  245. package/dist/pregel/algo.js.map +1 -1
  246. package/dist/pregel/call.cjs +46 -42
  247. package/dist/pregel/call.cjs.map +1 -0
  248. package/dist/pregel/call.js +43 -37
  249. package/dist/pregel/call.js.map +1 -1
  250. package/dist/pregel/debug.cjs +153 -223
  251. package/dist/pregel/debug.cjs.map +1 -0
  252. package/dist/pregel/debug.js +152 -215
  253. package/dist/pregel/debug.js.map +1 -1
  254. package/dist/pregel/index.cjs +1134 -1604
  255. package/dist/pregel/index.cjs.map +1 -0
  256. package/dist/pregel/index.d.cts +534 -0
  257. package/dist/pregel/index.d.cts.map +1 -0
  258. package/dist/pregel/index.d.ts +458 -422
  259. package/dist/pregel/index.d.ts.map +1 -0
  260. package/dist/pregel/index.js +1125 -1592
  261. package/dist/pregel/index.js.map +1 -1
  262. package/dist/pregel/io.cjs +127 -234
  263. package/dist/pregel/io.cjs.map +1 -0
  264. package/dist/pregel/io.js +122 -225
  265. package/dist/pregel/io.js.map +1 -1
  266. package/dist/pregel/loop.cjs +539 -954
  267. package/dist/pregel/loop.cjs.map +1 -0
  268. package/dist/pregel/loop.js +536 -948
  269. package/dist/pregel/loop.js.map +1 -1
  270. package/dist/pregel/messages.cjs +104 -196
  271. package/dist/pregel/messages.cjs.map +1 -0
  272. package/dist/pregel/messages.js +102 -191
  273. package/dist/pregel/messages.js.map +1 -1
  274. package/dist/pregel/read.cjs +150 -280
  275. package/dist/pregel/read.cjs.map +1 -0
  276. package/dist/pregel/read.d.cts +51 -0
  277. package/dist/pregel/read.d.cts.map +1 -0
  278. package/dist/pregel/read.d.ts +48 -46
  279. package/dist/pregel/read.d.ts.map +1 -0
  280. package/dist/pregel/read.js +147 -274
  281. package/dist/pregel/read.js.map +1 -1
  282. package/dist/pregel/remote.cjs +339 -458
  283. package/dist/pregel/remote.cjs.map +1 -0
  284. package/dist/pregel/remote.d.cts +121 -0
  285. package/dist/pregel/remote.d.cts.map +1 -0
  286. package/dist/pregel/remote.d.ts +79 -69
  287. package/dist/pregel/remote.d.ts.map +1 -0
  288. package/dist/pregel/remote.js +337 -453
  289. package/dist/pregel/remote.js.map +1 -1
  290. package/dist/pregel/retry.cjs +87 -138
  291. package/dist/pregel/retry.cjs.map +1 -0
  292. package/dist/pregel/retry.js +83 -130
  293. package/dist/pregel/retry.js.map +1 -1
  294. package/dist/pregel/runnable_types.d.cts +25 -0
  295. package/dist/pregel/runnable_types.d.cts.map +1 -0
  296. package/dist/pregel/runnable_types.d.ts +22 -16
  297. package/dist/pregel/runnable_types.d.ts.map +1 -0
  298. package/dist/pregel/runner.cjs +222 -315
  299. package/dist/pregel/runner.cjs.map +1 -0
  300. package/dist/pregel/runner.js +219 -308
  301. package/dist/pregel/runner.js.map +1 -1
  302. package/dist/pregel/stream.cjs +89 -130
  303. package/dist/pregel/stream.cjs.map +1 -0
  304. package/dist/pregel/stream.js +87 -125
  305. package/dist/pregel/stream.js.map +1 -1
  306. package/dist/pregel/types.cjs +25 -62
  307. package/dist/pregel/types.cjs.map +1 -0
  308. package/dist/pregel/types.d.cts +437 -0
  309. package/dist/pregel/types.d.cts.map +1 -0
  310. package/dist/pregel/types.d.ts +377 -431
  311. package/dist/pregel/types.d.ts.map +1 -0
  312. package/dist/pregel/types.js +23 -57
  313. package/dist/pregel/types.js.map +1 -1
  314. package/dist/pregel/utils/config.cjs +100 -147
  315. package/dist/pregel/utils/config.cjs.map +1 -0
  316. package/dist/pregel/utils/config.d.cts +36 -0
  317. package/dist/pregel/utils/config.d.cts.map +1 -0
  318. package/dist/pregel/utils/config.d.ts +12 -9
  319. package/dist/pregel/utils/config.d.ts.map +1 -0
  320. package/dist/pregel/utils/config.js +98 -143
  321. package/dist/pregel/utils/config.js.map +1 -1
  322. package/dist/pregel/utils/index.cjs +87 -125
  323. package/dist/pregel/utils/index.cjs.map +1 -0
  324. package/dist/pregel/utils/index.d.cts +51 -0
  325. package/dist/pregel/utils/index.d.cts.map +1 -0
  326. package/dist/pregel/utils/index.d.ts +45 -61
  327. package/dist/pregel/utils/index.d.ts.map +1 -0
  328. package/dist/pregel/utils/index.js +86 -120
  329. package/dist/pregel/utils/index.js.map +1 -1
  330. package/dist/pregel/utils/subgraph.cjs +15 -26
  331. package/dist/pregel/utils/subgraph.cjs.map +1 -0
  332. package/dist/pregel/utils/subgraph.js +12 -21
  333. package/dist/pregel/utils/subgraph.js.map +1 -1
  334. package/dist/pregel/validate.cjs +42 -92
  335. package/dist/pregel/validate.cjs.map +1 -0
  336. package/dist/pregel/validate.js +39 -84
  337. package/dist/pregel/validate.js.map +1 -1
  338. package/dist/pregel/write.cjs +87 -137
  339. package/dist/pregel/write.cjs.map +1 -0
  340. package/dist/pregel/write.d.cts +35 -0
  341. package/dist/pregel/write.d.cts.map +1 -0
  342. package/dist/pregel/write.d.ts +27 -23
  343. package/dist/pregel/write.d.ts.map +1 -0
  344. package/dist/pregel/write.js +83 -131
  345. package/dist/pregel/write.js.map +1 -1
  346. package/dist/remote.cjs +3 -6
  347. package/dist/remote.d.cts +2 -0
  348. package/dist/remote.d.ts +2 -1
  349. package/dist/remote.js +3 -2
  350. package/dist/setup/async_local_storage.cjs +10 -7
  351. package/dist/setup/async_local_storage.cjs.map +1 -0
  352. package/dist/setup/async_local_storage.js +7 -2
  353. package/dist/setup/async_local_storage.js.map +1 -1
  354. package/dist/ui/index.cjs +4 -0
  355. package/dist/ui/index.d.cts +5 -0
  356. package/dist/ui/index.d.ts +5 -0
  357. package/dist/ui/index.js +3 -0
  358. package/dist/ui/stream.cjs +145 -0
  359. package/dist/ui/stream.cjs.map +1 -0
  360. package/dist/ui/stream.d.cts +25 -0
  361. package/dist/ui/stream.d.cts.map +1 -0
  362. package/dist/ui/stream.d.ts +25 -0
  363. package/dist/ui/stream.d.ts.map +1 -0
  364. package/dist/ui/stream.js +143 -0
  365. package/dist/ui/stream.js.map +1 -0
  366. package/dist/ui/types.infer.d.cts +53 -0
  367. package/dist/ui/types.infer.d.cts.map +1 -0
  368. package/dist/ui/types.infer.d.ts +53 -0
  369. package/dist/ui/types.infer.d.ts.map +1 -0
  370. package/dist/ui/types.message.d.cts +95 -0
  371. package/dist/ui/types.message.d.cts.map +1 -0
  372. package/dist/ui/types.message.d.ts +95 -0
  373. package/dist/ui/types.message.d.ts.map +1 -0
  374. package/dist/ui/types.schema.d.cts +228 -0
  375. package/dist/ui/types.schema.d.cts.map +1 -0
  376. package/dist/ui/types.schema.d.ts +228 -0
  377. package/dist/ui/types.schema.d.ts.map +1 -0
  378. package/dist/utils.cjs +77 -147
  379. package/dist/utils.cjs.map +1 -0
  380. package/dist/utils.d.cts +32 -0
  381. package/dist/utils.d.cts.map +1 -0
  382. package/dist/utils.d.ts +29 -25
  383. package/dist/utils.d.ts.map +1 -0
  384. package/dist/utils.js +73 -140
  385. package/dist/utils.js.map +1 -1
  386. package/dist/web.cjs +97 -55
  387. package/dist/web.d.cts +23 -0
  388. package/dist/web.d.ts +23 -14
  389. package/dist/web.js +15 -8
  390. package/package.json +83 -86
  391. package/dist/channels/any_value.cjs +0 -65
  392. package/dist/channels/any_value.js +0 -61
  393. package/dist/channels/any_value.js.map +0 -1
  394. package/dist/channels/dynamic_barrier_value.cjs +0 -212
  395. package/dist/channels/dynamic_barrier_value.js +0 -207
  396. package/dist/channels/dynamic_barrier_value.js.map +0 -1
  397. package/dist/channels/index.d.ts +0 -7
  398. package/dist/channels/index.js.map +0 -1
  399. package/dist/func/types.cjs +0 -15
  400. package/dist/func/types.js +0 -12
  401. package/dist/func/types.js.map +0 -1
  402. package/dist/graph/index.d.ts +0 -4
  403. package/dist/graph/index.js.map +0 -1
  404. package/dist/graph/message.test.cjs +0 -196
  405. package/dist/graph/message.test.d.ts +0 -1
  406. package/dist/graph/message.test.js +0 -194
  407. package/dist/graph/message.test.js.map +0 -1
  408. package/dist/graph/zod/index.js.map +0 -1
  409. package/dist/graph/zod/plugin.d.ts +0 -28
  410. package/dist/hash.d.ts +0 -2
  411. package/dist/prebuilt/index.js.map +0 -1
  412. package/dist/prebuilt/interrupt.cjs +0 -3
  413. package/dist/prebuilt/interrupt.js +0 -2
  414. package/dist/prebuilt/interrupt.js.map +0 -1
  415. package/dist/pregel/call.d.ts +0 -16
  416. package/dist/pregel/debug.d.ts +0 -41
  417. package/dist/pregel/debug.test.cjs +0 -258
  418. package/dist/pregel/debug.test.d.ts +0 -1
  419. package/dist/pregel/debug.test.js +0 -256
  420. package/dist/pregel/debug.test.js.map +0 -1
  421. package/dist/pregel/io.d.ts +0 -30
  422. package/dist/pregel/io.mapCommand.test.cjs +0 -150
  423. package/dist/pregel/io.mapCommand.test.d.ts +0 -1
  424. package/dist/pregel/io.mapCommand.test.js +0 -148
  425. package/dist/pregel/io.mapCommand.test.js.map +0 -1
  426. package/dist/pregel/loop.d.ts +0 -147
  427. package/dist/pregel/messages.d.ts +0 -30
  428. package/dist/pregel/messages.test.cjs +0 -369
  429. package/dist/pregel/messages.test.d.ts +0 -1
  430. package/dist/pregel/messages.test.js +0 -367
  431. package/dist/pregel/messages.test.js.map +0 -1
  432. package/dist/pregel/read.test.cjs +0 -194
  433. package/dist/pregel/read.test.d.ts +0 -1
  434. package/dist/pregel/read.test.js +0 -192
  435. package/dist/pregel/read.test.js.map +0 -1
  436. package/dist/pregel/retry.d.ts +0 -17
  437. package/dist/pregel/runnable_types.cjs +0 -3
  438. package/dist/pregel/runnable_types.js +0 -2
  439. package/dist/pregel/runnable_types.js.map +0 -1
  440. package/dist/pregel/runner.d.ts +0 -79
  441. package/dist/pregel/runner.test.cjs +0 -66
  442. package/dist/pregel/runner.test.d.ts +0 -1
  443. package/dist/pregel/runner.test.js +0 -64
  444. package/dist/pregel/runner.test.js.map +0 -1
  445. package/dist/pregel/stream.d.ts +0 -40
  446. package/dist/pregel/utils/config.test.cjs +0 -214
  447. package/dist/pregel/utils/config.test.d.ts +0 -1
  448. package/dist/pregel/utils/config.test.js +0 -212
  449. package/dist/pregel/utils/config.test.js.map +0 -1
  450. package/dist/pregel/utils/subgraph.d.ts +0 -4
  451. package/dist/pregel/utils/subgraph.test.cjs +0 -83
  452. package/dist/pregel/utils/subgraph.test.d.ts +0 -1
  453. package/dist/pregel/utils/subgraph.test.js +0 -81
  454. package/dist/pregel/utils/subgraph.test.js.map +0 -1
  455. package/dist/pregel/validate.d.ts +0 -16
  456. package/dist/pregel/validate.test.cjs +0 -220
  457. package/dist/pregel/validate.test.d.ts +0 -1
  458. package/dist/pregel/validate.test.js +0 -218
  459. package/dist/pregel/validate.test.js.map +0 -1
  460. package/dist/pregel/write.test.cjs +0 -181
  461. package/dist/pregel/write.test.d.ts +0 -1
  462. package/dist/pregel/write.test.js +0 -179
  463. package/dist/pregel/write.test.js.map +0 -1
  464. package/dist/remote.js.map +0 -1
  465. package/dist/setup/async_local_storage.d.ts +0 -1
  466. package/dist/web.js.map +0 -1
  467. package/index.cjs +0 -1
  468. package/index.d.cts +0 -1
  469. package/index.d.ts +0 -1
  470. package/index.js +0 -1
  471. package/prebuilt.cjs +0 -1
  472. package/prebuilt.d.cts +0 -1
  473. package/prebuilt.d.ts +0 -1
  474. package/prebuilt.js +0 -1
  475. package/pregel.cjs +0 -1
  476. package/pregel.d.cts +0 -1
  477. package/pregel.d.ts +0 -1
  478. package/pregel.js +0 -1
  479. package/remote.cjs +0 -1
  480. package/remote.d.cts +0 -1
  481. package/remote.d.ts +0 -1
  482. package/remote.js +0 -1
  483. package/web.cjs +0 -1
  484. package/web.d.cts +0 -1
  485. package/web.d.ts +0 -1
  486. package/web.js +0 -1
  487. package/zod/schema.cjs +0 -1
  488. package/zod/schema.d.cts +0 -1
  489. package/zod/schema.d.ts +0 -1
  490. package/zod/schema.js +0 -1
  491. package/zod.cjs +0 -1
  492. package/zod.d.cts +0 -1
  493. package/zod.d.ts +0 -1
  494. 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 {};