@langchain/langgraph 1.0.12 → 1.0.13

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 (381) hide show
  1. package/dist/channels/any_value.cjs +46 -0
  2. package/dist/channels/any_value.cjs.map +1 -0
  3. package/dist/channels/any_value.d.cts +23 -0
  4. package/dist/channels/any_value.d.cts.map +1 -0
  5. package/dist/channels/any_value.d.ts +23 -0
  6. package/dist/channels/any_value.d.ts.map +1 -0
  7. package/dist/channels/any_value.js +46 -0
  8. package/dist/channels/any_value.js.map +1 -0
  9. package/dist/channels/base.cjs +101 -0
  10. package/dist/channels/base.cjs.map +1 -0
  11. package/dist/channels/base.d.cts +79 -0
  12. package/dist/channels/base.d.cts.map +1 -0
  13. package/dist/channels/base.d.ts +79 -0
  14. package/dist/channels/base.d.ts.map +1 -0
  15. package/dist/channels/base.js +97 -0
  16. package/dist/channels/base.js.map +1 -0
  17. package/dist/channels/binop.cjs +49 -0
  18. package/dist/channels/binop.cjs.map +1 -0
  19. package/dist/channels/binop.d.cts +22 -0
  20. package/dist/channels/binop.d.cts.map +1 -0
  21. package/dist/channels/binop.d.ts +22 -0
  22. package/dist/channels/binop.d.ts.map +1 -0
  23. package/dist/channels/binop.js +49 -0
  24. package/dist/channels/binop.js.map +1 -0
  25. package/dist/channels/dynamic_barrier_value.cjs +75 -0
  26. package/dist/channels/dynamic_barrier_value.cjs.map +1 -0
  27. package/dist/channels/dynamic_barrier_value.d.cts +40 -0
  28. package/dist/channels/dynamic_barrier_value.d.cts.map +1 -0
  29. package/dist/channels/dynamic_barrier_value.d.ts +40 -0
  30. package/dist/channels/dynamic_barrier_value.d.ts.map +1 -0
  31. package/dist/channels/dynamic_barrier_value.js +75 -0
  32. package/dist/channels/dynamic_barrier_value.js.map +1 -0
  33. package/dist/channels/ephemeral_value.cjs +46 -0
  34. package/dist/channels/ephemeral_value.cjs.map +1 -0
  35. package/dist/channels/ephemeral_value.d.cts +21 -0
  36. package/dist/channels/ephemeral_value.d.cts.map +1 -0
  37. package/dist/channels/ephemeral_value.d.ts +21 -0
  38. package/dist/channels/ephemeral_value.d.ts.map +1 -0
  39. package/dist/channels/ephemeral_value.js +46 -0
  40. package/dist/channels/ephemeral_value.js.map +1 -0
  41. package/dist/channels/index.cjs +21 -0
  42. package/dist/channels/index.d.cts +9 -0
  43. package/dist/channels/index.d.ts +9 -0
  44. package/dist/channels/index.js +10 -0
  45. package/dist/channels/last_value.cjs +98 -0
  46. package/dist/channels/last_value.cjs.map +1 -0
  47. package/dist/channels/last_value.d.cts +42 -0
  48. package/dist/channels/last_value.d.cts.map +1 -0
  49. package/dist/channels/last_value.d.ts +42 -0
  50. package/dist/channels/last_value.d.ts.map +1 -0
  51. package/dist/channels/last_value.js +97 -0
  52. package/dist/channels/last_value.js.map +1 -0
  53. package/dist/channels/named_barrier_value.cjs +116 -0
  54. package/dist/channels/named_barrier_value.cjs.map +1 -0
  55. package/dist/channels/named_barrier_value.d.cts +44 -0
  56. package/dist/channels/named_barrier_value.d.cts.map +1 -0
  57. package/dist/channels/named_barrier_value.d.ts +44 -0
  58. package/dist/channels/named_barrier_value.d.ts.map +1 -0
  59. package/dist/channels/named_barrier_value.js +114 -0
  60. package/dist/channels/named_barrier_value.js.map +1 -0
  61. package/dist/channels/topic.cjs +65 -0
  62. package/dist/channels/topic.cjs.map +1 -0
  63. package/dist/channels/topic.d.cts +32 -0
  64. package/dist/channels/topic.d.cts.map +1 -0
  65. package/dist/channels/topic.d.ts +32 -0
  66. package/dist/channels/topic.d.ts.map +1 -0
  67. package/dist/channels/topic.js +65 -0
  68. package/dist/channels/topic.js.map +1 -0
  69. package/dist/constants.cjs +406 -0
  70. package/dist/constants.cjs.map +1 -0
  71. package/dist/constants.d.cts +281 -0
  72. package/dist/constants.d.cts.map +1 -0
  73. package/dist/constants.d.ts +281 -0
  74. package/dist/constants.d.ts.map +1 -0
  75. package/dist/constants.js +362 -0
  76. package/dist/constants.js.map +1 -0
  77. package/dist/errors.cjs +163 -0
  78. package/dist/errors.cjs.map +1 -0
  79. package/dist/errors.d.cts +77 -0
  80. package/dist/errors.d.cts.map +1 -0
  81. package/dist/errors.d.ts +77 -0
  82. package/dist/errors.d.ts.map +1 -0
  83. package/dist/errors.js +146 -0
  84. package/dist/errors.js.map +1 -0
  85. package/dist/func/index.cjs +299 -0
  86. package/dist/func/index.cjs.map +1 -0
  87. package/dist/func/index.d.cts +288 -0
  88. package/dist/func/index.d.cts.map +1 -0
  89. package/dist/func/index.d.ts +288 -0
  90. package/dist/func/index.d.ts.map +1 -0
  91. package/dist/func/index.js +297 -0
  92. package/dist/func/index.js.map +1 -0
  93. package/dist/func/types.d.cts +62 -0
  94. package/dist/func/types.d.cts.map +1 -0
  95. package/dist/func/types.d.ts +62 -0
  96. package/dist/func/types.d.ts.map +1 -0
  97. package/dist/graph/annotation.cjs +101 -0
  98. package/dist/graph/annotation.cjs.map +1 -0
  99. package/dist/graph/annotation.d.cts +116 -0
  100. package/dist/graph/annotation.d.cts.map +1 -0
  101. package/dist/graph/annotation.d.ts +116 -0
  102. package/dist/graph/annotation.d.ts.map +1 -0
  103. package/dist/graph/annotation.js +99 -0
  104. package/dist/graph/annotation.js.map +1 -0
  105. package/dist/graph/graph.cjs +420 -0
  106. package/dist/graph/graph.cjs.map +1 -0
  107. package/dist/graph/graph.d.cts +108 -0
  108. package/dist/graph/graph.d.cts.map +1 -0
  109. package/dist/graph/graph.d.ts +108 -0
  110. package/dist/graph/graph.d.ts.map +1 -0
  111. package/dist/graph/graph.js +418 -0
  112. package/dist/graph/graph.js.map +1 -0
  113. package/dist/graph/index.cjs +5 -0
  114. package/dist/graph/index.js +7 -0
  115. package/dist/graph/message.cjs +97 -0
  116. package/dist/graph/message.cjs.map +1 -0
  117. package/dist/graph/message.d.cts +40 -0
  118. package/dist/graph/message.d.cts.map +1 -0
  119. package/dist/graph/message.d.ts +40 -0
  120. package/dist/graph/message.d.ts.map +1 -0
  121. package/dist/graph/message.js +94 -0
  122. package/dist/graph/message.js.map +1 -0
  123. package/dist/graph/messages_annotation.cjs +109 -0
  124. package/dist/graph/messages_annotation.cjs.map +1 -0
  125. package/dist/graph/messages_annotation.d.cts +112 -0
  126. package/dist/graph/messages_annotation.d.cts.map +1 -0
  127. package/dist/graph/messages_annotation.d.ts +112 -0
  128. package/dist/graph/messages_annotation.d.ts.map +1 -0
  129. package/dist/graph/messages_annotation.js +107 -0
  130. package/dist/graph/messages_annotation.js.map +1 -0
  131. package/dist/graph/state.cjs +494 -0
  132. package/dist/graph/state.cjs.map +1 -0
  133. package/dist/graph/state.d.cts +229 -0
  134. package/dist/graph/state.d.cts.map +1 -0
  135. package/dist/graph/state.d.ts +229 -0
  136. package/dist/graph/state.d.ts.map +1 -0
  137. package/dist/graph/state.js +493 -0
  138. package/dist/graph/state.js.map +1 -0
  139. package/dist/graph/zod/index.cjs +10 -0
  140. package/dist/graph/zod/index.d.cts +3 -0
  141. package/dist/graph/zod/index.d.ts +3 -0
  142. package/dist/graph/zod/index.js +5 -0
  143. package/dist/graph/zod/meta.cjs +144 -0
  144. package/dist/graph/zod/meta.cjs.map +1 -0
  145. package/dist/graph/zod/meta.d.cts +115 -0
  146. package/dist/graph/zod/meta.d.cts.map +1 -0
  147. package/dist/graph/zod/meta.d.ts +115 -0
  148. package/dist/graph/zod/meta.d.ts.map +1 -0
  149. package/dist/graph/zod/meta.js +141 -0
  150. package/dist/graph/zod/meta.js.map +1 -0
  151. package/dist/graph/zod/plugin.cjs +39 -0
  152. package/dist/graph/zod/plugin.cjs.map +1 -0
  153. package/dist/graph/zod/plugin.js +40 -0
  154. package/dist/graph/zod/plugin.js.map +1 -0
  155. package/dist/graph/zod/schema.cjs +98 -0
  156. package/dist/graph/zod/schema.cjs.map +1 -0
  157. package/dist/graph/zod/schema.d.cts +38 -0
  158. package/dist/graph/zod/schema.d.cts.map +1 -0
  159. package/dist/graph/zod/schema.d.ts +38 -0
  160. package/dist/graph/zod/schema.d.ts.map +1 -0
  161. package/dist/graph/zod/schema.js +94 -0
  162. package/dist/graph/zod/schema.js.map +1 -0
  163. package/dist/graph/zod/zod-registry.cjs +42 -0
  164. package/dist/graph/zod/zod-registry.cjs.map +1 -0
  165. package/dist/graph/zod/zod-registry.d.cts +49 -0
  166. package/dist/graph/zod/zod-registry.d.cts.map +1 -0
  167. package/dist/graph/zod/zod-registry.d.ts +49 -0
  168. package/dist/graph/zod/zod-registry.d.ts.map +1 -0
  169. package/dist/graph/zod/zod-registry.js +41 -0
  170. package/dist/graph/zod/zod-registry.js.map +1 -0
  171. package/dist/hash.cjs +265 -0
  172. package/dist/hash.cjs.map +1 -0
  173. package/dist/hash.js +263 -0
  174. package/dist/hash.js.map +1 -0
  175. package/dist/index.cjs +111 -0
  176. package/dist/index.cjs.map +1 -0
  177. package/dist/index.d.cts +26 -0
  178. package/dist/index.d.ts +26 -0
  179. package/dist/index.js +22 -0
  180. package/dist/index.js.map +1 -0
  181. package/dist/interrupt.cjs +79 -0
  182. package/dist/interrupt.cjs.map +1 -0
  183. package/dist/interrupt.d.cts +55 -0
  184. package/dist/interrupt.d.cts.map +1 -0
  185. package/dist/interrupt.d.ts +55 -0
  186. package/dist/interrupt.d.ts.map +1 -0
  187. package/dist/interrupt.js +79 -0
  188. package/dist/interrupt.js.map +1 -0
  189. package/dist/prebuilt/agentName.cjs +148 -0
  190. package/dist/prebuilt/agentName.cjs.map +1 -0
  191. package/dist/prebuilt/agentName.d.cts +42 -0
  192. package/dist/prebuilt/agentName.d.cts.map +1 -0
  193. package/dist/prebuilt/agentName.d.ts +42 -0
  194. package/dist/prebuilt/agentName.d.ts.map +1 -0
  195. package/dist/prebuilt/agentName.js +148 -0
  196. package/dist/prebuilt/agentName.js.map +1 -0
  197. package/dist/prebuilt/agent_executor.cjs +41 -0
  198. package/dist/prebuilt/agent_executor.cjs.map +1 -0
  199. package/dist/prebuilt/agent_executor.d.cts +58 -0
  200. package/dist/prebuilt/agent_executor.d.cts.map +1 -0
  201. package/dist/prebuilt/agent_executor.d.ts +58 -0
  202. package/dist/prebuilt/agent_executor.d.ts.map +1 -0
  203. package/dist/prebuilt/agent_executor.js +41 -0
  204. package/dist/prebuilt/agent_executor.js.map +1 -0
  205. package/dist/prebuilt/chat_agent_executor.cjs +62 -0
  206. package/dist/prebuilt/chat_agent_executor.cjs.map +1 -0
  207. package/dist/prebuilt/chat_agent_executor.d.cts +23 -0
  208. package/dist/prebuilt/chat_agent_executor.d.cts.map +1 -0
  209. package/dist/prebuilt/chat_agent_executor.d.ts +23 -0
  210. package/dist/prebuilt/chat_agent_executor.d.ts.map +1 -0
  211. package/dist/prebuilt/chat_agent_executor.js +62 -0
  212. package/dist/prebuilt/chat_agent_executor.js.map +1 -0
  213. package/dist/prebuilt/index.cjs +15 -0
  214. package/dist/prebuilt/index.d.cts +8 -0
  215. package/dist/prebuilt/index.d.ts +8 -0
  216. package/dist/prebuilt/index.js +8 -0
  217. package/dist/prebuilt/interrupt.d.cts +60 -0
  218. package/dist/prebuilt/interrupt.d.cts.map +1 -0
  219. package/dist/prebuilt/interrupt.d.ts +60 -0
  220. package/dist/prebuilt/interrupt.d.ts.map +1 -0
  221. package/dist/prebuilt/react_agent_executor.cjs +339 -0
  222. package/dist/prebuilt/react_agent_executor.cjs.map +1 -0
  223. package/dist/prebuilt/react_agent_executor.d.cts +211 -0
  224. package/dist/prebuilt/react_agent_executor.d.cts.map +1 -0
  225. package/dist/prebuilt/react_agent_executor.d.ts +211 -0
  226. package/dist/prebuilt/react_agent_executor.d.ts.map +1 -0
  227. package/dist/prebuilt/react_agent_executor.js +338 -0
  228. package/dist/prebuilt/react_agent_executor.js.map +1 -0
  229. package/dist/prebuilt/tool_executor.cjs +43 -0
  230. package/dist/prebuilt/tool_executor.cjs.map +1 -0
  231. package/dist/prebuilt/tool_executor.d.cts +40 -0
  232. package/dist/prebuilt/tool_executor.d.cts.map +1 -0
  233. package/dist/prebuilt/tool_executor.d.ts +40 -0
  234. package/dist/prebuilt/tool_executor.d.ts.map +1 -0
  235. package/dist/prebuilt/tool_executor.js +43 -0
  236. package/dist/prebuilt/tool_executor.js.map +1 -0
  237. package/dist/prebuilt/tool_node.cjs +247 -0
  238. package/dist/prebuilt/tool_node.cjs.map +1 -0
  239. package/dist/prebuilt/tool_node.d.cts +180 -0
  240. package/dist/prebuilt/tool_node.d.cts.map +1 -0
  241. package/dist/prebuilt/tool_node.d.ts +180 -0
  242. package/dist/prebuilt/tool_node.d.ts.map +1 -0
  243. package/dist/prebuilt/tool_node.js +246 -0
  244. package/dist/prebuilt/tool_node.js.map +1 -0
  245. package/dist/pregel/algo.cjs +565 -0
  246. package/dist/pregel/algo.cjs.map +1 -0
  247. package/dist/pregel/algo.d.cts +13 -0
  248. package/dist/pregel/algo.d.cts.map +1 -0
  249. package/dist/pregel/algo.d.ts +13 -0
  250. package/dist/pregel/algo.d.ts.map +1 -0
  251. package/dist/pregel/algo.js +560 -0
  252. package/dist/pregel/algo.js.map +1 -0
  253. package/dist/pregel/call.cjs +50 -0
  254. package/dist/pregel/call.cjs.map +1 -0
  255. package/dist/pregel/call.js +48 -0
  256. package/dist/pregel/call.js.map +1 -0
  257. package/dist/pregel/debug.cjs +172 -0
  258. package/dist/pregel/debug.cjs.map +1 -0
  259. package/dist/pregel/debug.js +166 -0
  260. package/dist/pregel/debug.js.map +1 -0
  261. package/dist/pregel/index.cjs +1163 -0
  262. package/dist/pregel/index.cjs.map +1 -0
  263. package/dist/pregel/index.d.cts +498 -0
  264. package/dist/pregel/index.d.cts.map +1 -0
  265. package/dist/pregel/index.d.ts +498 -0
  266. package/dist/pregel/index.d.ts.map +1 -0
  267. package/dist/pregel/index.js +1162 -0
  268. package/dist/pregel/index.js.map +1 -0
  269. package/dist/pregel/io.cjs +140 -0
  270. package/dist/pregel/io.cjs.map +1 -0
  271. package/dist/pregel/io.js +135 -0
  272. package/dist/pregel/io.js.map +1 -0
  273. package/dist/pregel/loop.cjs +545 -0
  274. package/dist/pregel/loop.cjs.map +1 -0
  275. package/dist/pregel/loop.js +545 -0
  276. package/dist/pregel/loop.js.map +1 -0
  277. package/dist/pregel/messages.cjs +107 -0
  278. package/dist/pregel/messages.cjs.map +1 -0
  279. package/dist/pregel/messages.js +107 -0
  280. package/dist/pregel/messages.js.map +1 -0
  281. package/dist/pregel/read.cjs +151 -0
  282. package/dist/pregel/read.cjs.map +1 -0
  283. package/dist/pregel/read.d.cts +45 -0
  284. package/dist/pregel/read.d.cts.map +1 -0
  285. package/dist/pregel/read.d.ts +45 -0
  286. package/dist/pregel/read.d.ts.map +1 -0
  287. package/dist/pregel/read.js +150 -0
  288. package/dist/pregel/read.js.map +1 -0
  289. package/dist/pregel/remote.cjs +341 -0
  290. package/dist/pregel/remote.cjs.map +1 -0
  291. package/dist/pregel/remote.d.cts +118 -0
  292. package/dist/pregel/remote.d.cts.map +1 -0
  293. package/dist/pregel/remote.d.ts +118 -0
  294. package/dist/pregel/remote.d.ts.map +1 -0
  295. package/dist/pregel/remote.js +341 -0
  296. package/dist/pregel/remote.js.map +1 -0
  297. package/dist/pregel/retry.cjs +91 -0
  298. package/dist/pregel/retry.cjs.map +1 -0
  299. package/dist/pregel/retry.js +91 -0
  300. package/dist/pregel/retry.js.map +1 -0
  301. package/dist/pregel/runnable_types.d.cts +43 -0
  302. package/dist/pregel/runnable_types.d.cts.map +1 -0
  303. package/dist/pregel/runnable_types.d.ts +43 -0
  304. package/dist/pregel/runnable_types.d.ts.map +1 -0
  305. package/dist/pregel/runner.cjs +228 -0
  306. package/dist/pregel/runner.cjs.map +1 -0
  307. package/dist/pregel/runner.js +228 -0
  308. package/dist/pregel/runner.js.map +1 -0
  309. package/dist/pregel/stream.cjs +197 -0
  310. package/dist/pregel/stream.cjs.map +1 -0
  311. package/dist/pregel/stream.js +195 -0
  312. package/dist/pregel/stream.js.map +1 -0
  313. package/dist/pregel/types.cjs +27 -0
  314. package/dist/pregel/types.cjs.map +1 -0
  315. package/dist/pregel/types.d.cts +440 -0
  316. package/dist/pregel/types.d.cts.map +1 -0
  317. package/dist/pregel/types.d.ts +440 -0
  318. package/dist/pregel/types.d.ts.map +1 -0
  319. package/dist/pregel/types.js +25 -0
  320. package/dist/pregel/types.js.map +1 -0
  321. package/dist/pregel/utils/config.cjs +121 -0
  322. package/dist/pregel/utils/config.cjs.map +1 -0
  323. package/dist/pregel/utils/config.d.cts +36 -0
  324. package/dist/pregel/utils/config.d.cts.map +1 -0
  325. package/dist/pregel/utils/config.d.ts +36 -0
  326. package/dist/pregel/utils/config.d.ts.map +1 -0
  327. package/dist/pregel/utils/config.js +115 -0
  328. package/dist/pregel/utils/config.js.map +1 -0
  329. package/dist/pregel/utils/index.cjs +102 -0
  330. package/dist/pregel/utils/index.cjs.map +1 -0
  331. package/dist/pregel/utils/index.d.cts +51 -0
  332. package/dist/pregel/utils/index.d.cts.map +1 -0
  333. package/dist/pregel/utils/index.d.ts +51 -0
  334. package/dist/pregel/utils/index.d.ts.map +1 -0
  335. package/dist/pregel/utils/index.js +96 -0
  336. package/dist/pregel/utils/index.js.map +1 -0
  337. package/dist/pregel/utils/subgraph.cjs +18 -0
  338. package/dist/pregel/utils/subgraph.cjs.map +1 -0
  339. package/dist/pregel/utils/subgraph.js +16 -0
  340. package/dist/pregel/utils/subgraph.js.map +1 -0
  341. package/dist/pregel/validate.cjs +45 -0
  342. package/dist/pregel/validate.cjs.map +1 -0
  343. package/dist/pregel/validate.js +44 -0
  344. package/dist/pregel/validate.js.map +1 -0
  345. package/dist/pregel/write.cjs +96 -0
  346. package/dist/pregel/write.cjs.map +1 -0
  347. package/dist/pregel/write.d.cts +31 -0
  348. package/dist/pregel/write.d.cts.map +1 -0
  349. package/dist/pregel/write.d.ts +31 -0
  350. package/dist/pregel/write.d.ts.map +1 -0
  351. package/dist/pregel/write.js +95 -0
  352. package/dist/pregel/write.js.map +1 -0
  353. package/dist/remote.cjs +3 -0
  354. package/dist/remote.d.cts +2 -0
  355. package/dist/remote.d.ts +2 -0
  356. package/dist/remote.js +3 -0
  357. package/dist/setup/async_local_storage.cjs +11 -0
  358. package/dist/setup/async_local_storage.cjs.map +1 -0
  359. package/dist/setup/async_local_storage.js +11 -0
  360. package/dist/setup/async_local_storage.js.map +1 -0
  361. package/dist/utils.cjs +86 -0
  362. package/dist/utils.cjs.map +1 -0
  363. package/dist/utils.d.cts +25 -0
  364. package/dist/utils.d.cts.map +1 -0
  365. package/dist/utils.d.ts +25 -0
  366. package/dist/utils.d.ts.map +1 -0
  367. package/dist/utils.js +80 -0
  368. package/dist/utils.js.map +1 -0
  369. package/dist/web.cjs +95 -0
  370. package/dist/web.d.cts +23 -0
  371. package/dist/web.d.ts +23 -0
  372. package/dist/web.js +15 -0
  373. package/dist/writer.cjs +14 -0
  374. package/dist/writer.cjs.map +1 -0
  375. package/dist/writer.d.cts +6 -0
  376. package/dist/writer.d.cts.map +1 -0
  377. package/dist/writer.d.ts +6 -0
  378. package/dist/writer.d.ts.map +1 -0
  379. package/dist/writer.js +14 -0
  380. package/dist/writer.js.map +1 -0
  381. package/package.json +2 -2
@@ -0,0 +1,288 @@
1
+ import { LastValue } from "../channels/last_value.cjs";
2
+ import { EphemeralValue } from "../channels/ephemeral_value.cjs";
3
+ import { CachePolicy, RetryPolicy } from "../pregel/utils/index.cjs";
4
+ import { PregelNode } from "../pregel/read.cjs";
5
+ import { END, PREVIOUS, START } from "../constants.cjs";
6
+ import { Pregel } from "../pregel/index.cjs";
7
+ import { EntrypointFinal, EntrypointFinalSaveT, EntrypointFunc, EntrypointReturnT, TaskFunc } from "./types.cjs";
8
+ import { BaseCache, BaseCheckpointSaver, BaseStore } from "@langchain/langgraph-checkpoint";
9
+
10
+ //#region src/func/index.d.ts
11
+
12
+ /**
13
+ * Options for the {@link task} function
14
+ */
15
+ interface TaskOptions {
16
+ /**
17
+ * The name of the task, analogous to the node name in {@link StateGraph}.
18
+ */
19
+ name: string;
20
+ /**
21
+ * The retry policy for the task. Configures how many times and under what conditions
22
+ * the task should be retried if it fails.
23
+ */
24
+ retry?: RetryPolicy;
25
+ /**
26
+ * The cache policy for the task. Configures how the task should be cached.
27
+ */
28
+ cachePolicy?: CachePolicy;
29
+ }
30
+ /**
31
+ * Define a LangGraph task using the `task` function.
32
+ *
33
+ * Tasks can only be called from within an {@link entrypoint} or from within a StateGraph.
34
+ * A task can be called like a regular function with the following differences:
35
+ *
36
+ * - When a checkpointer is enabled, the function inputs and outputs must be serializable.
37
+ * - The wrapped function can only be called from within an entrypoint or StateGraph.
38
+ * - Calling the function produces a promise. This makes it easy to parallelize tasks.
39
+ *
40
+ * @typeParam ArgsT - The type of arguments the task function accepts
41
+ * @typeParam OutputT - The type of value the task function returns
42
+ * @param optionsOrName - Either an {@link TaskOptions} object, or a string for the name of the task
43
+ * @param func - The function that executes this task
44
+ * @returns A proxy function that accepts the same arguments as the original and always returns the result as a Promise
45
+ *
46
+ * @example basic example
47
+ * ```typescript
48
+ * const addOne = task("add", async (a: number) => a + 1);
49
+ *
50
+ * const workflow = entrypoint("example", async (numbers: number[]) => {
51
+ * const promises = numbers.map(n => addOne(n));
52
+ * const results = await Promise.all(promises);
53
+ * return results;
54
+ * });
55
+ *
56
+ * // Call the entrypoint
57
+ * await workflow.invoke([1, 2, 3]); // Returns [2, 3, 4]
58
+ * ```
59
+ *
60
+ * @example using a retry policy
61
+ * ```typescript
62
+ * const addOne = task({
63
+ * name: "add",
64
+ * retry: { maxAttempts: 3 }
65
+ * },
66
+ * async (a: number) => a + 1
67
+ * );
68
+ *
69
+ * const workflow = entrypoint("example", async (numbers: number[]) => {
70
+ * const promises = numbers.map(n => addOne(n));
71
+ * const results = await Promise.all(promises);
72
+ * return results;
73
+ * });
74
+ * ```
75
+ * @category Functional API
76
+ */
77
+ declare function task<ArgsT extends unknown[], OutputT>(optionsOrName: TaskOptions | string, func: TaskFunc<ArgsT, OutputT>): (...args: ArgsT) => Promise<OutputT>;
78
+ /**
79
+ * Options for the {@link entrypoint} function
80
+ */
81
+ type EntrypointOptions = {
82
+ /**
83
+ * The name of the {@link entrypoint}, analogous to the node name in {@link StateGraph}.
84
+ * This name is used for logging, debugging, and checkpoint identification.
85
+ */
86
+ name: string;
87
+ /**
88
+ * The checkpointer for the {@link entrypoint}. Used to save and restore state between
89
+ * invocations of the workflow.
90
+ */
91
+ checkpointer?: BaseCheckpointSaver;
92
+ /**
93
+ * The store for the {@link entrypoint}. Used to persist data across workflow runs.
94
+ */
95
+ store?: BaseStore;
96
+ /**
97
+ * The cache for the {@link entrypoint}. Used to cache values between workflow runs.
98
+ */
99
+ cache?: BaseCache;
100
+ };
101
+ /**
102
+ * Type declaration for the entrypoint function with its properties
103
+ * @category Functional API
104
+ */
105
+ interface EntrypointFunction {
106
+ <InputT, OutputT>(optionsOrName: EntrypointOptions | string, func: EntrypointFunc<InputT, OutputT>): Pregel<Record<string, PregelNode<InputT, EntrypointReturnT<OutputT>>>, {
107
+ [START]: EphemeralValue<InputT>;
108
+ [END]: LastValue<EntrypointReturnT<OutputT>>;
109
+ [PREVIOUS]: LastValue<EntrypointFinalSaveT<OutputT>>;
110
+ }, Record<string, unknown>, InputT, EntrypointReturnT<OutputT>, any, Awaited<EntrypointReturnT<OutputT>>>;
111
+ /**
112
+ * A helper utility for use with the functional API that returns a value to the caller,
113
+ * as well as a separate state value to persist to the checkpoint. This allows workflows
114
+ * to maintain state between runs while returning different values to the caller.
115
+ *
116
+ * @typeParam ValueT - The type of the value to return to the caller
117
+ * @typeParam SaveT - The type of the state to save to the checkpoint
118
+ * @param options.value - The value to return to the caller
119
+ * @param options.save - The value to save to the checkpoint
120
+ * @returns An object with the value and save properties
121
+ *
122
+ * @example
123
+ * ```typescript
124
+ * return entrypoint.final({
125
+ * value: "result for caller",
126
+ * save: { counter: currentCount + 1 }
127
+ * });
128
+ * ```
129
+ */
130
+ final<ValueT, SaveT>(options: {
131
+ value?: ValueT;
132
+ save?: SaveT;
133
+ }): EntrypointFinal<ValueT, SaveT>;
134
+ }
135
+ /**
136
+ * Define a LangGraph workflow using the `entrypoint` function.
137
+ *
138
+ * ### Function signature
139
+ *
140
+ * The wrapped function must accept at most **two parameters**. The first parameter
141
+ * is the input to the function. The second (optional) parameter is a
142
+ * {@link LangGraphRunnableConfig} object. If you wish to pass multiple parameters to
143
+ * the function, you can pass them as an object.
144
+ *
145
+ * ### Helper functions
146
+ *
147
+ * #### Streaming
148
+ * To write data to the "custom" stream, use the {@link getWriter} function, or the
149
+ * {@link LangGraphRunnableConfig.writer} property.
150
+ *
151
+ * #### State management
152
+ * The {@link getPreviousState} function can be used to access the previous state
153
+ * that was returned from the last invocation of the entrypoint on the same thread id.
154
+ *
155
+ * If you wish to save state other than the return value, you can use the
156
+ * {@link entrypoint.final} function.
157
+ *
158
+ * @typeParam InputT - The type of input the entrypoint accepts
159
+ * @typeParam OutputT - The type of output the entrypoint produces
160
+ * @param optionsOrName - Either an {@link EntrypointOptions} object, or a string for the name of the entrypoint
161
+ * @param func - The function that executes this entrypoint
162
+ * @returns A {@link Pregel} instance that can be run to execute the workflow
163
+ *
164
+ * @example Using entrypoint and tasks
165
+ * ```typescript
166
+ * import { task, entrypoint } from "@langchain/langgraph";
167
+ * import { MemorySaver } from "@langchain/langgraph-checkpoint";
168
+ * import { interrupt, Command } from "@langchain/langgraph";
169
+ *
170
+ * const composeEssay = task("compose", async (topic: string) => {
171
+ * await new Promise(r => setTimeout(r, 1000)); // Simulate slow operation
172
+ * return `An essay about ${topic}`;
173
+ * });
174
+ *
175
+ * const reviewWorkflow = entrypoint({
176
+ * name: "review",
177
+ * checkpointer: new MemorySaver()
178
+ * }, async (topic: string) => {
179
+ * const essay = await composeEssay(topic);
180
+ * const humanReview = await interrupt({
181
+ * question: "Please provide a review",
182
+ * essay
183
+ * });
184
+ * return {
185
+ * essay,
186
+ * review: humanReview
187
+ * };
188
+ * });
189
+ *
190
+ * // Example configuration for the workflow
191
+ * const config = {
192
+ * configurable: {
193
+ * thread_id: "some_thread"
194
+ * }
195
+ * };
196
+ *
197
+ * // Topic for the essay
198
+ * const topic = "cats";
199
+ *
200
+ * // Stream the workflow to generate the essay and await human review
201
+ * for await (const result of reviewWorkflow.stream(topic, config)) {
202
+ * console.log(result);
203
+ * }
204
+ *
205
+ * // Example human review provided after the interrupt
206
+ * const humanReview = "This essay is great.";
207
+ *
208
+ * // Resume the workflow with the provided human review
209
+ * for await (const result of reviewWorkflow.stream(new Command({ resume: humanReview }), config)) {
210
+ * console.log(result);
211
+ * }
212
+ * ```
213
+ *
214
+ * @example Accessing the previous return value
215
+ * ```typescript
216
+ * import { entrypoint, getPreviousState } from "@langchain/langgraph";
217
+ * import { MemorySaver } from "@langchain/langgraph-checkpoint";
218
+ *
219
+ * const accumulator = entrypoint({
220
+ * name: "accumulator",
221
+ * checkpointer: new MemorySaver()
222
+ * }, async (input: string) => {
223
+ * const previous = getPreviousState<number>();
224
+ * return previous !== undefined ? `${previous } ${input}` : input;
225
+ * });
226
+ *
227
+ * const config = {
228
+ * configurable: {
229
+ * thread_id: "some_thread"
230
+ * }
231
+ * };
232
+ * await accumulator.invoke("hello", config); // returns "hello"
233
+ * await accumulator.invoke("world", config); // returns "hello world"
234
+ * ```
235
+ *
236
+ * @example Using entrypoint.final to save a value
237
+ * ```typescript
238
+ * import { entrypoint, getPreviousState } from "@langchain/langgraph";
239
+ * import { MemorySaver } from "@langchain/langgraph-checkpoint";
240
+ *
241
+ * const myWorkflow = entrypoint({
242
+ * name: "accumulator",
243
+ * checkpointer: new MemorySaver()
244
+ * }, async (num: number) => {
245
+ * const previous = getPreviousState<number>();
246
+ *
247
+ * // This will return the previous value to the caller, saving
248
+ * // 2 * num to the checkpoint, which will be used in the next invocation
249
+ * // for the `previous` parameter.
250
+ * return entrypoint.final({
251
+ * value: previous ?? 0,
252
+ * save: 2 * num
253
+ * });
254
+ * });
255
+ *
256
+ * const config = {
257
+ * configurable: {
258
+ * thread_id: "some_thread"
259
+ * }
260
+ * };
261
+ *
262
+ * await myWorkflow.invoke(3, config); // 0 (previous was undefined)
263
+ * await myWorkflow.invoke(1, config); // 6 (previous was 3 * 2 from the previous invocation)
264
+ * ```
265
+ * @category Functional API
266
+ */
267
+ declare const entrypoint: EntrypointFunction;
268
+ /**
269
+ * A helper utility function for use with the functional API that returns the previous
270
+ * state from the checkpoint from the last invocation of the current thread.
271
+ *
272
+ * This function allows workflows to access state that was saved in previous runs
273
+ * using {@link entrypoint.final}.
274
+ *
275
+ * @typeParam StateT - The type of the state that was previously saved
276
+ * @returns The previous saved state from the last invocation of the current thread
277
+ *
278
+ * @example
279
+ * ```typescript
280
+ * const previousState = getPreviousState<{ counter: number }>();
281
+ * const newCount = (previousState?.counter ?? 0) + 1;
282
+ * ```
283
+ * @category Functional API
284
+ */
285
+ declare function getPreviousState<StateT>(): StateT;
286
+ //#endregion
287
+ export { EntrypointOptions, TaskOptions, entrypoint, getPreviousState, task };
288
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":["BaseCache","BaseCheckpointSaver","BaseStore","Pregel","PregelNode","END","PREVIOUS","START","EphemeralValue","CachePolicy","RetryPolicy","LastValue","EntrypointFinal","EntrypointReturnT","EntrypointFinalSaveT","EntrypointFunc","TaskFunc","TaskOptions","task","ArgsT","OutputT","Promise","EntrypointOptions","EntrypointFunction","InputT","Record","Awaited","ValueT","SaveT","entrypoint","getPreviousState","StateT"],"sources":["../../src/func/index.d.ts"],"sourcesContent":["import { BaseCache, BaseCheckpointSaver, BaseStore } from \"@langchain/langgraph-checkpoint\";\nimport { Pregel } from \"../pregel/index.js\";\nimport { PregelNode } from \"../pregel/read.js\";\nimport { END, PREVIOUS, START } from \"../constants.js\";\nimport { EphemeralValue } from \"../channels/ephemeral_value.js\";\nimport type { CachePolicy, RetryPolicy } from \"../pregel/utils/index.js\";\nimport { LastValue } from \"../channels/last_value.js\";\nimport { EntrypointFinal, EntrypointReturnT, EntrypointFinalSaveT, EntrypointFunc, TaskFunc } from \"./types.js\";\n/**\n * Options for the {@link task} function\n */\nexport interface TaskOptions {\n /**\n * The name of the task, analogous to the node name in {@link StateGraph}.\n */\n name: string;\n /**\n * The retry policy for the task. Configures how many times and under what conditions\n * the task should be retried if it fails.\n */\n retry?: RetryPolicy;\n /**\n * The cache policy for the task. Configures how the task should be cached.\n */\n cachePolicy?: CachePolicy;\n}\n/**\n * Define a LangGraph task using the `task` function.\n *\n * Tasks can only be called from within an {@link entrypoint} or from within a StateGraph.\n * A task can be called like a regular function with the following differences:\n *\n * - When a checkpointer is enabled, the function inputs and outputs must be serializable.\n * - The wrapped function can only be called from within an entrypoint or StateGraph.\n * - Calling the function produces a promise. This makes it easy to parallelize tasks.\n *\n * @typeParam ArgsT - The type of arguments the task function accepts\n * @typeParam OutputT - The type of value the task function returns\n * @param optionsOrName - Either an {@link TaskOptions} object, or a string for the name of the task\n * @param func - The function that executes this task\n * @returns A proxy function that accepts the same arguments as the original and always returns the result as a Promise\n *\n * @example basic example\n * ```typescript\n * const addOne = task(\"add\", async (a: number) => a + 1);\n *\n * const workflow = entrypoint(\"example\", async (numbers: number[]) => {\n * const promises = numbers.map(n => addOne(n));\n * const results = await Promise.all(promises);\n * return results;\n * });\n *\n * // Call the entrypoint\n * await workflow.invoke([1, 2, 3]); // Returns [2, 3, 4]\n * ```\n *\n * @example using a retry policy\n * ```typescript\n * const addOne = task({\n * name: \"add\",\n * retry: { maxAttempts: 3 }\n * },\n * async (a: number) => a + 1\n * );\n *\n * const workflow = entrypoint(\"example\", async (numbers: number[]) => {\n * const promises = numbers.map(n => addOne(n));\n * const results = await Promise.all(promises);\n * return results;\n * });\n * ```\n * @category Functional API\n */\nexport declare function task<ArgsT extends unknown[], OutputT>(optionsOrName: TaskOptions | string, func: TaskFunc<ArgsT, OutputT>): (...args: ArgsT) => Promise<OutputT>;\n/**\n * Options for the {@link entrypoint} function\n */\nexport type EntrypointOptions = {\n /**\n * The name of the {@link entrypoint}, analogous to the node name in {@link StateGraph}.\n * This name is used for logging, debugging, and checkpoint identification.\n */\n name: string;\n /**\n * The checkpointer for the {@link entrypoint}. Used to save and restore state between\n * invocations of the workflow.\n */\n checkpointer?: BaseCheckpointSaver;\n /**\n * The store for the {@link entrypoint}. Used to persist data across workflow runs.\n */\n store?: BaseStore;\n /**\n * The cache for the {@link entrypoint}. Used to cache values between workflow runs.\n */\n cache?: BaseCache;\n};\n/**\n * Type declaration for the entrypoint function with its properties\n * @category Functional API\n */\nexport interface EntrypointFunction {\n <InputT, OutputT>(optionsOrName: EntrypointOptions | string, func: EntrypointFunc<InputT, OutputT>): Pregel<Record<string, PregelNode<InputT, EntrypointReturnT<OutputT>>>, {\n [START]: EphemeralValue<InputT>;\n [END]: LastValue<EntrypointReturnT<OutputT>>;\n [PREVIOUS]: LastValue<EntrypointFinalSaveT<OutputT>>;\n }, Record<string, unknown>, InputT, EntrypointReturnT<OutputT>, any, Awaited<EntrypointReturnT<OutputT>>>;\n /**\n * A helper utility for use with the functional API that returns a value to the caller,\n * as well as a separate state value to persist to the checkpoint. This allows workflows\n * to maintain state between runs while returning different values to the caller.\n *\n * @typeParam ValueT - The type of the value to return to the caller\n * @typeParam SaveT - The type of the state to save to the checkpoint\n * @param options.value - The value to return to the caller\n * @param options.save - The value to save to the checkpoint\n * @returns An object with the value and save properties\n *\n * @example\n * ```typescript\n * return entrypoint.final({\n * value: \"result for caller\",\n * save: { counter: currentCount + 1 }\n * });\n * ```\n */\n final<ValueT, SaveT>(options: {\n value?: ValueT;\n save?: SaveT;\n }): EntrypointFinal<ValueT, SaveT>;\n}\n/**\n * Define a LangGraph workflow using the `entrypoint` function.\n *\n * ### Function signature\n *\n * The wrapped function must accept at most **two parameters**. The first parameter\n * is the input to the function. The second (optional) parameter is a\n * {@link LangGraphRunnableConfig} object. If you wish to pass multiple parameters to\n * the function, you can pass them as an object.\n *\n * ### Helper functions\n *\n * #### Streaming\n * To write data to the \"custom\" stream, use the {@link getWriter} function, or the\n * {@link LangGraphRunnableConfig.writer} property.\n *\n * #### State management\n * The {@link getPreviousState} function can be used to access the previous state\n * that was returned from the last invocation of the entrypoint on the same thread id.\n *\n * If you wish to save state other than the return value, you can use the\n * {@link entrypoint.final} function.\n *\n * @typeParam InputT - The type of input the entrypoint accepts\n * @typeParam OutputT - The type of output the entrypoint produces\n * @param optionsOrName - Either an {@link EntrypointOptions} object, or a string for the name of the entrypoint\n * @param func - The function that executes this entrypoint\n * @returns A {@link Pregel} instance that can be run to execute the workflow\n *\n * @example Using entrypoint and tasks\n * ```typescript\n * import { task, entrypoint } from \"@langchain/langgraph\";\n * import { MemorySaver } from \"@langchain/langgraph-checkpoint\";\n * import { interrupt, Command } from \"@langchain/langgraph\";\n *\n * const composeEssay = task(\"compose\", async (topic: string) => {\n * await new Promise(r => setTimeout(r, 1000)); // Simulate slow operation\n * return `An essay about ${topic}`;\n * });\n *\n * const reviewWorkflow = entrypoint({\n * name: \"review\",\n * checkpointer: new MemorySaver()\n * }, async (topic: string) => {\n * const essay = await composeEssay(topic);\n * const humanReview = await interrupt({\n * question: \"Please provide a review\",\n * essay\n * });\n * return {\n * essay,\n * review: humanReview\n * };\n * });\n *\n * // Example configuration for the workflow\n * const config = {\n * configurable: {\n * thread_id: \"some_thread\"\n * }\n * };\n *\n * // Topic for the essay\n * const topic = \"cats\";\n *\n * // Stream the workflow to generate the essay and await human review\n * for await (const result of reviewWorkflow.stream(topic, config)) {\n * console.log(result);\n * }\n *\n * // Example human review provided after the interrupt\n * const humanReview = \"This essay is great.\";\n *\n * // Resume the workflow with the provided human review\n * for await (const result of reviewWorkflow.stream(new Command({ resume: humanReview }), config)) {\n * console.log(result);\n * }\n * ```\n *\n * @example Accessing the previous return value\n * ```typescript\n * import { entrypoint, getPreviousState } from \"@langchain/langgraph\";\n * import { MemorySaver } from \"@langchain/langgraph-checkpoint\";\n *\n * const accumulator = entrypoint({\n * name: \"accumulator\",\n * checkpointer: new MemorySaver()\n * }, async (input: string) => {\n * const previous = getPreviousState<number>();\n * return previous !== undefined ? `${previous } ${input}` : input;\n * });\n *\n * const config = {\n * configurable: {\n * thread_id: \"some_thread\"\n * }\n * };\n * await accumulator.invoke(\"hello\", config); // returns \"hello\"\n * await accumulator.invoke(\"world\", config); // returns \"hello world\"\n * ```\n *\n * @example Using entrypoint.final to save a value\n * ```typescript\n * import { entrypoint, getPreviousState } from \"@langchain/langgraph\";\n * import { MemorySaver } from \"@langchain/langgraph-checkpoint\";\n *\n * const myWorkflow = entrypoint({\n * name: \"accumulator\",\n * checkpointer: new MemorySaver()\n * }, async (num: number) => {\n * const previous = getPreviousState<number>();\n *\n * // This will return the previous value to the caller, saving\n * // 2 * num to the checkpoint, which will be used in the next invocation\n * // for the `previous` parameter.\n * return entrypoint.final({\n * value: previous ?? 0,\n * save: 2 * num\n * });\n * });\n *\n * const config = {\n * configurable: {\n * thread_id: \"some_thread\"\n * }\n * };\n *\n * await myWorkflow.invoke(3, config); // 0 (previous was undefined)\n * await myWorkflow.invoke(1, config); // 6 (previous was 3 * 2 from the previous invocation)\n * ```\n * @category Functional API\n */\nexport declare const entrypoint: EntrypointFunction;\n/**\n * A helper utility function for use with the functional API that returns the previous\n * state from the checkpoint from the last invocation of the current thread.\n *\n * This function allows workflows to access state that was saved in previous runs\n * using {@link entrypoint.final}.\n *\n * @typeParam StateT - The type of the state that was previously saved\n * @returns The previous saved state from the last invocation of the current thread\n *\n * @example\n * ```typescript\n * const previousState = getPreviousState<{ counter: number }>();\n * const newCount = (previousState?.counter ?? 0) + 1;\n * ```\n * @category Functional API\n */\nexport declare function getPreviousState<StateT>(): StateT;\n"],"mappings":";;;;;;;;;;;;;AAWA;AAA4B,UAAXiB,WAAAA,CAAW;;;;EA8DJC,IAAAA,EAAAA,MAAI;EAAA;;;;OAA8EF,CAAAA,EArD9FN,WAqD8FM;;;;EAAsD,WAAA,CAAA,EAjD9IP,WAiD8I;AAIhK;;;;;;AAwBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkKA;AAkBA;;;;;iBAhNwBS,sDAAsDD,4BAA4BD,SAASG,OAAOC,qBAAqBD,UAAUE,QAAQD;;;;KAIrJE,iBAAAA;;;;;;;;;;iBAUOrB;;;;UAIPC;;;;UAIAF;;;;;;UAMKuB,kBAAAA;mCACoBD,kCAAkCP,eAAeS,QAAQJ,WAAWjB,OAAOsB,eAAerB,WAAWoB,QAAQX,kBAAkBO;KAC3Jb,KAAAA,GAAQC,eAAegB;KACvBnB,GAAAA,GAAMM,UAAUE,kBAAkBO;KAClCd,QAAAA,GAAWK,UAAUG,qBAAqBM;KAC5CK,yBAAyBD,QAAQX,kBAAkBO,eAAeM,QAAQb,kBAAkBO;;;;;;;;;;;;;;;;;;;;;YAqBnFO;WACDC;MACPhB,gBAAgBe,QAAQC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsIXC,YAAYN;;;;;;;;;;;;;;;;;;iBAkBTO,4BAA4BC"}
@@ -0,0 +1,288 @@
1
+ import { LastValue } from "../channels/last_value.js";
2
+ import { EphemeralValue } from "../channels/ephemeral_value.js";
3
+ import { CachePolicy, RetryPolicy } from "../pregel/utils/index.js";
4
+ import { PregelNode } from "../pregel/read.js";
5
+ import { END, PREVIOUS, START } from "../constants.js";
6
+ import { Pregel } from "../pregel/index.js";
7
+ import { EntrypointFinal, EntrypointFinalSaveT, EntrypointFunc, EntrypointReturnT, TaskFunc } from "./types.js";
8
+ import { BaseCache, BaseCheckpointSaver, BaseStore } from "@langchain/langgraph-checkpoint";
9
+
10
+ //#region src/func/index.d.ts
11
+
12
+ /**
13
+ * Options for the {@link task} function
14
+ */
15
+ interface TaskOptions {
16
+ /**
17
+ * The name of the task, analogous to the node name in {@link StateGraph}.
18
+ */
19
+ name: string;
20
+ /**
21
+ * The retry policy for the task. Configures how many times and under what conditions
22
+ * the task should be retried if it fails.
23
+ */
24
+ retry?: RetryPolicy;
25
+ /**
26
+ * The cache policy for the task. Configures how the task should be cached.
27
+ */
28
+ cachePolicy?: CachePolicy;
29
+ }
30
+ /**
31
+ * Define a LangGraph task using the `task` function.
32
+ *
33
+ * Tasks can only be called from within an {@link entrypoint} or from within a StateGraph.
34
+ * A task can be called like a regular function with the following differences:
35
+ *
36
+ * - When a checkpointer is enabled, the function inputs and outputs must be serializable.
37
+ * - The wrapped function can only be called from within an entrypoint or StateGraph.
38
+ * - Calling the function produces a promise. This makes it easy to parallelize tasks.
39
+ *
40
+ * @typeParam ArgsT - The type of arguments the task function accepts
41
+ * @typeParam OutputT - The type of value the task function returns
42
+ * @param optionsOrName - Either an {@link TaskOptions} object, or a string for the name of the task
43
+ * @param func - The function that executes this task
44
+ * @returns A proxy function that accepts the same arguments as the original and always returns the result as a Promise
45
+ *
46
+ * @example basic example
47
+ * ```typescript
48
+ * const addOne = task("add", async (a: number) => a + 1);
49
+ *
50
+ * const workflow = entrypoint("example", async (numbers: number[]) => {
51
+ * const promises = numbers.map(n => addOne(n));
52
+ * const results = await Promise.all(promises);
53
+ * return results;
54
+ * });
55
+ *
56
+ * // Call the entrypoint
57
+ * await workflow.invoke([1, 2, 3]); // Returns [2, 3, 4]
58
+ * ```
59
+ *
60
+ * @example using a retry policy
61
+ * ```typescript
62
+ * const addOne = task({
63
+ * name: "add",
64
+ * retry: { maxAttempts: 3 }
65
+ * },
66
+ * async (a: number) => a + 1
67
+ * );
68
+ *
69
+ * const workflow = entrypoint("example", async (numbers: number[]) => {
70
+ * const promises = numbers.map(n => addOne(n));
71
+ * const results = await Promise.all(promises);
72
+ * return results;
73
+ * });
74
+ * ```
75
+ * @category Functional API
76
+ */
77
+ declare function task<ArgsT extends unknown[], OutputT>(optionsOrName: TaskOptions | string, func: TaskFunc<ArgsT, OutputT>): (...args: ArgsT) => Promise<OutputT>;
78
+ /**
79
+ * Options for the {@link entrypoint} function
80
+ */
81
+ type EntrypointOptions = {
82
+ /**
83
+ * The name of the {@link entrypoint}, analogous to the node name in {@link StateGraph}.
84
+ * This name is used for logging, debugging, and checkpoint identification.
85
+ */
86
+ name: string;
87
+ /**
88
+ * The checkpointer for the {@link entrypoint}. Used to save and restore state between
89
+ * invocations of the workflow.
90
+ */
91
+ checkpointer?: BaseCheckpointSaver;
92
+ /**
93
+ * The store for the {@link entrypoint}. Used to persist data across workflow runs.
94
+ */
95
+ store?: BaseStore;
96
+ /**
97
+ * The cache for the {@link entrypoint}. Used to cache values between workflow runs.
98
+ */
99
+ cache?: BaseCache;
100
+ };
101
+ /**
102
+ * Type declaration for the entrypoint function with its properties
103
+ * @category Functional API
104
+ */
105
+ interface EntrypointFunction {
106
+ <InputT, OutputT>(optionsOrName: EntrypointOptions | string, func: EntrypointFunc<InputT, OutputT>): Pregel<Record<string, PregelNode<InputT, EntrypointReturnT<OutputT>>>, {
107
+ [START]: EphemeralValue<InputT>;
108
+ [END]: LastValue<EntrypointReturnT<OutputT>>;
109
+ [PREVIOUS]: LastValue<EntrypointFinalSaveT<OutputT>>;
110
+ }, Record<string, unknown>, InputT, EntrypointReturnT<OutputT>, any, Awaited<EntrypointReturnT<OutputT>>>;
111
+ /**
112
+ * A helper utility for use with the functional API that returns a value to the caller,
113
+ * as well as a separate state value to persist to the checkpoint. This allows workflows
114
+ * to maintain state between runs while returning different values to the caller.
115
+ *
116
+ * @typeParam ValueT - The type of the value to return to the caller
117
+ * @typeParam SaveT - The type of the state to save to the checkpoint
118
+ * @param options.value - The value to return to the caller
119
+ * @param options.save - The value to save to the checkpoint
120
+ * @returns An object with the value and save properties
121
+ *
122
+ * @example
123
+ * ```typescript
124
+ * return entrypoint.final({
125
+ * value: "result for caller",
126
+ * save: { counter: currentCount + 1 }
127
+ * });
128
+ * ```
129
+ */
130
+ final<ValueT, SaveT>(options: {
131
+ value?: ValueT;
132
+ save?: SaveT;
133
+ }): EntrypointFinal<ValueT, SaveT>;
134
+ }
135
+ /**
136
+ * Define a LangGraph workflow using the `entrypoint` function.
137
+ *
138
+ * ### Function signature
139
+ *
140
+ * The wrapped function must accept at most **two parameters**. The first parameter
141
+ * is the input to the function. The second (optional) parameter is a
142
+ * {@link LangGraphRunnableConfig} object. If you wish to pass multiple parameters to
143
+ * the function, you can pass them as an object.
144
+ *
145
+ * ### Helper functions
146
+ *
147
+ * #### Streaming
148
+ * To write data to the "custom" stream, use the {@link getWriter} function, or the
149
+ * {@link LangGraphRunnableConfig.writer} property.
150
+ *
151
+ * #### State management
152
+ * The {@link getPreviousState} function can be used to access the previous state
153
+ * that was returned from the last invocation of the entrypoint on the same thread id.
154
+ *
155
+ * If you wish to save state other than the return value, you can use the
156
+ * {@link entrypoint.final} function.
157
+ *
158
+ * @typeParam InputT - The type of input the entrypoint accepts
159
+ * @typeParam OutputT - The type of output the entrypoint produces
160
+ * @param optionsOrName - Either an {@link EntrypointOptions} object, or a string for the name of the entrypoint
161
+ * @param func - The function that executes this entrypoint
162
+ * @returns A {@link Pregel} instance that can be run to execute the workflow
163
+ *
164
+ * @example Using entrypoint and tasks
165
+ * ```typescript
166
+ * import { task, entrypoint } from "@langchain/langgraph";
167
+ * import { MemorySaver } from "@langchain/langgraph-checkpoint";
168
+ * import { interrupt, Command } from "@langchain/langgraph";
169
+ *
170
+ * const composeEssay = task("compose", async (topic: string) => {
171
+ * await new Promise(r => setTimeout(r, 1000)); // Simulate slow operation
172
+ * return `An essay about ${topic}`;
173
+ * });
174
+ *
175
+ * const reviewWorkflow = entrypoint({
176
+ * name: "review",
177
+ * checkpointer: new MemorySaver()
178
+ * }, async (topic: string) => {
179
+ * const essay = await composeEssay(topic);
180
+ * const humanReview = await interrupt({
181
+ * question: "Please provide a review",
182
+ * essay
183
+ * });
184
+ * return {
185
+ * essay,
186
+ * review: humanReview
187
+ * };
188
+ * });
189
+ *
190
+ * // Example configuration for the workflow
191
+ * const config = {
192
+ * configurable: {
193
+ * thread_id: "some_thread"
194
+ * }
195
+ * };
196
+ *
197
+ * // Topic for the essay
198
+ * const topic = "cats";
199
+ *
200
+ * // Stream the workflow to generate the essay and await human review
201
+ * for await (const result of reviewWorkflow.stream(topic, config)) {
202
+ * console.log(result);
203
+ * }
204
+ *
205
+ * // Example human review provided after the interrupt
206
+ * const humanReview = "This essay is great.";
207
+ *
208
+ * // Resume the workflow with the provided human review
209
+ * for await (const result of reviewWorkflow.stream(new Command({ resume: humanReview }), config)) {
210
+ * console.log(result);
211
+ * }
212
+ * ```
213
+ *
214
+ * @example Accessing the previous return value
215
+ * ```typescript
216
+ * import { entrypoint, getPreviousState } from "@langchain/langgraph";
217
+ * import { MemorySaver } from "@langchain/langgraph-checkpoint";
218
+ *
219
+ * const accumulator = entrypoint({
220
+ * name: "accumulator",
221
+ * checkpointer: new MemorySaver()
222
+ * }, async (input: string) => {
223
+ * const previous = getPreviousState<number>();
224
+ * return previous !== undefined ? `${previous } ${input}` : input;
225
+ * });
226
+ *
227
+ * const config = {
228
+ * configurable: {
229
+ * thread_id: "some_thread"
230
+ * }
231
+ * };
232
+ * await accumulator.invoke("hello", config); // returns "hello"
233
+ * await accumulator.invoke("world", config); // returns "hello world"
234
+ * ```
235
+ *
236
+ * @example Using entrypoint.final to save a value
237
+ * ```typescript
238
+ * import { entrypoint, getPreviousState } from "@langchain/langgraph";
239
+ * import { MemorySaver } from "@langchain/langgraph-checkpoint";
240
+ *
241
+ * const myWorkflow = entrypoint({
242
+ * name: "accumulator",
243
+ * checkpointer: new MemorySaver()
244
+ * }, async (num: number) => {
245
+ * const previous = getPreviousState<number>();
246
+ *
247
+ * // This will return the previous value to the caller, saving
248
+ * // 2 * num to the checkpoint, which will be used in the next invocation
249
+ * // for the `previous` parameter.
250
+ * return entrypoint.final({
251
+ * value: previous ?? 0,
252
+ * save: 2 * num
253
+ * });
254
+ * });
255
+ *
256
+ * const config = {
257
+ * configurable: {
258
+ * thread_id: "some_thread"
259
+ * }
260
+ * };
261
+ *
262
+ * await myWorkflow.invoke(3, config); // 0 (previous was undefined)
263
+ * await myWorkflow.invoke(1, config); // 6 (previous was 3 * 2 from the previous invocation)
264
+ * ```
265
+ * @category Functional API
266
+ */
267
+ declare const entrypoint: EntrypointFunction;
268
+ /**
269
+ * A helper utility function for use with the functional API that returns the previous
270
+ * state from the checkpoint from the last invocation of the current thread.
271
+ *
272
+ * This function allows workflows to access state that was saved in previous runs
273
+ * using {@link entrypoint.final}.
274
+ *
275
+ * @typeParam StateT - The type of the state that was previously saved
276
+ * @returns The previous saved state from the last invocation of the current thread
277
+ *
278
+ * @example
279
+ * ```typescript
280
+ * const previousState = getPreviousState<{ counter: number }>();
281
+ * const newCount = (previousState?.counter ?? 0) + 1;
282
+ * ```
283
+ * @category Functional API
284
+ */
285
+ declare function getPreviousState<StateT>(): StateT;
286
+ //#endregion
287
+ export { EntrypointOptions, TaskOptions, entrypoint, getPreviousState, task };
288
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":["BaseCache","BaseCheckpointSaver","BaseStore","Pregel","PregelNode","END","PREVIOUS","START","EphemeralValue","CachePolicy","RetryPolicy","LastValue","EntrypointFinal","EntrypointReturnT","EntrypointFinalSaveT","EntrypointFunc","TaskFunc","TaskOptions","task","ArgsT","OutputT","Promise","EntrypointOptions","EntrypointFunction","InputT","Record","Awaited","ValueT","SaveT","entrypoint","getPreviousState","StateT"],"sources":["../../src/func/index.d.ts"],"sourcesContent":["import { BaseCache, BaseCheckpointSaver, BaseStore } from \"@langchain/langgraph-checkpoint\";\nimport { Pregel } from \"../pregel/index.js\";\nimport { PregelNode } from \"../pregel/read.js\";\nimport { END, PREVIOUS, START } from \"../constants.js\";\nimport { EphemeralValue } from \"../channels/ephemeral_value.js\";\nimport type { CachePolicy, RetryPolicy } from \"../pregel/utils/index.js\";\nimport { LastValue } from \"../channels/last_value.js\";\nimport { EntrypointFinal, EntrypointReturnT, EntrypointFinalSaveT, EntrypointFunc, TaskFunc } from \"./types.js\";\n/**\n * Options for the {@link task} function\n */\nexport interface TaskOptions {\n /**\n * The name of the task, analogous to the node name in {@link StateGraph}.\n */\n name: string;\n /**\n * The retry policy for the task. Configures how many times and under what conditions\n * the task should be retried if it fails.\n */\n retry?: RetryPolicy;\n /**\n * The cache policy for the task. Configures how the task should be cached.\n */\n cachePolicy?: CachePolicy;\n}\n/**\n * Define a LangGraph task using the `task` function.\n *\n * Tasks can only be called from within an {@link entrypoint} or from within a StateGraph.\n * A task can be called like a regular function with the following differences:\n *\n * - When a checkpointer is enabled, the function inputs and outputs must be serializable.\n * - The wrapped function can only be called from within an entrypoint or StateGraph.\n * - Calling the function produces a promise. This makes it easy to parallelize tasks.\n *\n * @typeParam ArgsT - The type of arguments the task function accepts\n * @typeParam OutputT - The type of value the task function returns\n * @param optionsOrName - Either an {@link TaskOptions} object, or a string for the name of the task\n * @param func - The function that executes this task\n * @returns A proxy function that accepts the same arguments as the original and always returns the result as a Promise\n *\n * @example basic example\n * ```typescript\n * const addOne = task(\"add\", async (a: number) => a + 1);\n *\n * const workflow = entrypoint(\"example\", async (numbers: number[]) => {\n * const promises = numbers.map(n => addOne(n));\n * const results = await Promise.all(promises);\n * return results;\n * });\n *\n * // Call the entrypoint\n * await workflow.invoke([1, 2, 3]); // Returns [2, 3, 4]\n * ```\n *\n * @example using a retry policy\n * ```typescript\n * const addOne = task({\n * name: \"add\",\n * retry: { maxAttempts: 3 }\n * },\n * async (a: number) => a + 1\n * );\n *\n * const workflow = entrypoint(\"example\", async (numbers: number[]) => {\n * const promises = numbers.map(n => addOne(n));\n * const results = await Promise.all(promises);\n * return results;\n * });\n * ```\n * @category Functional API\n */\nexport declare function task<ArgsT extends unknown[], OutputT>(optionsOrName: TaskOptions | string, func: TaskFunc<ArgsT, OutputT>): (...args: ArgsT) => Promise<OutputT>;\n/**\n * Options for the {@link entrypoint} function\n */\nexport type EntrypointOptions = {\n /**\n * The name of the {@link entrypoint}, analogous to the node name in {@link StateGraph}.\n * This name is used for logging, debugging, and checkpoint identification.\n */\n name: string;\n /**\n * The checkpointer for the {@link entrypoint}. Used to save and restore state between\n * invocations of the workflow.\n */\n checkpointer?: BaseCheckpointSaver;\n /**\n * The store for the {@link entrypoint}. Used to persist data across workflow runs.\n */\n store?: BaseStore;\n /**\n * The cache for the {@link entrypoint}. Used to cache values between workflow runs.\n */\n cache?: BaseCache;\n};\n/**\n * Type declaration for the entrypoint function with its properties\n * @category Functional API\n */\nexport interface EntrypointFunction {\n <InputT, OutputT>(optionsOrName: EntrypointOptions | string, func: EntrypointFunc<InputT, OutputT>): Pregel<Record<string, PregelNode<InputT, EntrypointReturnT<OutputT>>>, {\n [START]: EphemeralValue<InputT>;\n [END]: LastValue<EntrypointReturnT<OutputT>>;\n [PREVIOUS]: LastValue<EntrypointFinalSaveT<OutputT>>;\n }, Record<string, unknown>, InputT, EntrypointReturnT<OutputT>, any, Awaited<EntrypointReturnT<OutputT>>>;\n /**\n * A helper utility for use with the functional API that returns a value to the caller,\n * as well as a separate state value to persist to the checkpoint. This allows workflows\n * to maintain state between runs while returning different values to the caller.\n *\n * @typeParam ValueT - The type of the value to return to the caller\n * @typeParam SaveT - The type of the state to save to the checkpoint\n * @param options.value - The value to return to the caller\n * @param options.save - The value to save to the checkpoint\n * @returns An object with the value and save properties\n *\n * @example\n * ```typescript\n * return entrypoint.final({\n * value: \"result for caller\",\n * save: { counter: currentCount + 1 }\n * });\n * ```\n */\n final<ValueT, SaveT>(options: {\n value?: ValueT;\n save?: SaveT;\n }): EntrypointFinal<ValueT, SaveT>;\n}\n/**\n * Define a LangGraph workflow using the `entrypoint` function.\n *\n * ### Function signature\n *\n * The wrapped function must accept at most **two parameters**. The first parameter\n * is the input to the function. The second (optional) parameter is a\n * {@link LangGraphRunnableConfig} object. If you wish to pass multiple parameters to\n * the function, you can pass them as an object.\n *\n * ### Helper functions\n *\n * #### Streaming\n * To write data to the \"custom\" stream, use the {@link getWriter} function, or the\n * {@link LangGraphRunnableConfig.writer} property.\n *\n * #### State management\n * The {@link getPreviousState} function can be used to access the previous state\n * that was returned from the last invocation of the entrypoint on the same thread id.\n *\n * If you wish to save state other than the return value, you can use the\n * {@link entrypoint.final} function.\n *\n * @typeParam InputT - The type of input the entrypoint accepts\n * @typeParam OutputT - The type of output the entrypoint produces\n * @param optionsOrName - Either an {@link EntrypointOptions} object, or a string for the name of the entrypoint\n * @param func - The function that executes this entrypoint\n * @returns A {@link Pregel} instance that can be run to execute the workflow\n *\n * @example Using entrypoint and tasks\n * ```typescript\n * import { task, entrypoint } from \"@langchain/langgraph\";\n * import { MemorySaver } from \"@langchain/langgraph-checkpoint\";\n * import { interrupt, Command } from \"@langchain/langgraph\";\n *\n * const composeEssay = task(\"compose\", async (topic: string) => {\n * await new Promise(r => setTimeout(r, 1000)); // Simulate slow operation\n * return `An essay about ${topic}`;\n * });\n *\n * const reviewWorkflow = entrypoint({\n * name: \"review\",\n * checkpointer: new MemorySaver()\n * }, async (topic: string) => {\n * const essay = await composeEssay(topic);\n * const humanReview = await interrupt({\n * question: \"Please provide a review\",\n * essay\n * });\n * return {\n * essay,\n * review: humanReview\n * };\n * });\n *\n * // Example configuration for the workflow\n * const config = {\n * configurable: {\n * thread_id: \"some_thread\"\n * }\n * };\n *\n * // Topic for the essay\n * const topic = \"cats\";\n *\n * // Stream the workflow to generate the essay and await human review\n * for await (const result of reviewWorkflow.stream(topic, config)) {\n * console.log(result);\n * }\n *\n * // Example human review provided after the interrupt\n * const humanReview = \"This essay is great.\";\n *\n * // Resume the workflow with the provided human review\n * for await (const result of reviewWorkflow.stream(new Command({ resume: humanReview }), config)) {\n * console.log(result);\n * }\n * ```\n *\n * @example Accessing the previous return value\n * ```typescript\n * import { entrypoint, getPreviousState } from \"@langchain/langgraph\";\n * import { MemorySaver } from \"@langchain/langgraph-checkpoint\";\n *\n * const accumulator = entrypoint({\n * name: \"accumulator\",\n * checkpointer: new MemorySaver()\n * }, async (input: string) => {\n * const previous = getPreviousState<number>();\n * return previous !== undefined ? `${previous } ${input}` : input;\n * });\n *\n * const config = {\n * configurable: {\n * thread_id: \"some_thread\"\n * }\n * };\n * await accumulator.invoke(\"hello\", config); // returns \"hello\"\n * await accumulator.invoke(\"world\", config); // returns \"hello world\"\n * ```\n *\n * @example Using entrypoint.final to save a value\n * ```typescript\n * import { entrypoint, getPreviousState } from \"@langchain/langgraph\";\n * import { MemorySaver } from \"@langchain/langgraph-checkpoint\";\n *\n * const myWorkflow = entrypoint({\n * name: \"accumulator\",\n * checkpointer: new MemorySaver()\n * }, async (num: number) => {\n * const previous = getPreviousState<number>();\n *\n * // This will return the previous value to the caller, saving\n * // 2 * num to the checkpoint, which will be used in the next invocation\n * // for the `previous` parameter.\n * return entrypoint.final({\n * value: previous ?? 0,\n * save: 2 * num\n * });\n * });\n *\n * const config = {\n * configurable: {\n * thread_id: \"some_thread\"\n * }\n * };\n *\n * await myWorkflow.invoke(3, config); // 0 (previous was undefined)\n * await myWorkflow.invoke(1, config); // 6 (previous was 3 * 2 from the previous invocation)\n * ```\n * @category Functional API\n */\nexport declare const entrypoint: EntrypointFunction;\n/**\n * A helper utility function for use with the functional API that returns the previous\n * state from the checkpoint from the last invocation of the current thread.\n *\n * This function allows workflows to access state that was saved in previous runs\n * using {@link entrypoint.final}.\n *\n * @typeParam StateT - The type of the state that was previously saved\n * @returns The previous saved state from the last invocation of the current thread\n *\n * @example\n * ```typescript\n * const previousState = getPreviousState<{ counter: number }>();\n * const newCount = (previousState?.counter ?? 0) + 1;\n * ```\n * @category Functional API\n */\nexport declare function getPreviousState<StateT>(): StateT;\n"],"mappings":";;;;;;;;;;;;;AAWA;AAA4B,UAAXiB,WAAAA,CAAW;;;;EA8DJC,IAAAA,EAAAA,MAAI;EAAA;;;;OAA8EF,CAAAA,EArD9FN,WAqD8FM;;;;EAAsD,WAAA,CAAA,EAjD9IP,WAiD8I;AAIhK;;;;;;AAwBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkKA;AAkBA;;;;;iBAhNwBS,sDAAsDD,4BAA4BD,SAASG,OAAOC,qBAAqBD,UAAUE,QAAQD;;;;KAIrJE,iBAAAA;;;;;;;;;;iBAUOrB;;;;UAIPC;;;;UAIAF;;;;;;UAMKuB,kBAAAA;mCACoBD,kCAAkCP,eAAeS,QAAQJ,WAAWjB,OAAOsB,eAAerB,WAAWoB,QAAQX,kBAAkBO;KAC3Jb,KAAAA,GAAQC,eAAegB;KACvBnB,GAAAA,GAAMM,UAAUE,kBAAkBO;KAClCd,QAAAA,GAAWK,UAAUG,qBAAqBM;KAC5CK,yBAAyBD,QAAQX,kBAAkBO,eAAeM,QAAQb,kBAAkBO;;;;;;;;;;;;;;;;;;;;;YAqBnFO;WACDC;MACPhB,gBAAgBe,QAAQC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsIXC,YAAYN;;;;;;;;;;;;;;;;;;iBAkBTO,4BAA4BC"}