@langchain/langgraph 0.4.9 → 1.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (505) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +1 -2
  3. package/dist/_virtual/rolldown_runtime.cjs +25 -0
  4. package/dist/channels/any_value.cjs +44 -63
  5. package/dist/channels/any_value.cjs.map +1 -0
  6. package/dist/channels/any_value.d.cts +24 -0
  7. package/dist/channels/any_value.d.cts.map +1 -0
  8. package/dist/channels/any_value.d.ts +16 -11
  9. package/dist/channels/any_value.d.ts.map +1 -0
  10. package/dist/channels/any_value.js +42 -57
  11. package/dist/channels/any_value.js.map +1 -1
  12. package/dist/channels/base.cjs +93 -133
  13. package/dist/channels/base.cjs.map +1 -0
  14. package/dist/channels/base.d.cts +79 -0
  15. package/dist/channels/base.d.cts.map +1 -0
  16. package/dist/channels/base.d.ts +77 -73
  17. package/dist/channels/base.d.ts.map +1 -0
  18. package/dist/channels/base.js +90 -127
  19. package/dist/channels/base.js.map +1 -1
  20. package/dist/channels/binop.cjs +47 -77
  21. package/dist/channels/binop.cjs.map +1 -0
  22. package/dist/channels/binop.d.cts +22 -0
  23. package/dist/channels/binop.d.cts.map +1 -0
  24. package/dist/channels/binop.d.ts +17 -12
  25. package/dist/channels/binop.d.ts.map +1 -0
  26. package/dist/channels/binop.js +45 -71
  27. package/dist/channels/binop.js.map +1 -1
  28. package/dist/channels/dynamic_barrier_value.cjs +72 -208
  29. package/dist/channels/dynamic_barrier_value.cjs.map +1 -0
  30. package/dist/channels/dynamic_barrier_value.d.cts +42 -0
  31. package/dist/channels/dynamic_barrier_value.d.cts.map +1 -0
  32. package/dist/channels/dynamic_barrier_value.d.ts +20 -35
  33. package/dist/channels/dynamic_barrier_value.d.ts.map +1 -0
  34. package/dist/channels/dynamic_barrier_value.js +69 -200
  35. package/dist/channels/dynamic_barrier_value.js.map +1 -1
  36. package/dist/channels/ephemeral_value.cjs +44 -70
  37. package/dist/channels/ephemeral_value.cjs.map +1 -0
  38. package/dist/channels/ephemeral_value.d.cts +22 -0
  39. package/dist/channels/ephemeral_value.d.cts.map +1 -0
  40. package/dist/channels/ephemeral_value.d.ts +18 -12
  41. package/dist/channels/ephemeral_value.d.ts.map +1 -0
  42. package/dist/channels/ephemeral_value.js +43 -65
  43. package/dist/channels/ephemeral_value.js.map +1 -1
  44. package/dist/channels/index.cjs +21 -10
  45. package/dist/channels/index.d.cts +9 -0
  46. package/dist/channels/index.d.ts +9 -7
  47. package/dist/channels/index.js +10 -3
  48. package/dist/channels/last_value.cjs +90 -140
  49. package/dist/channels/last_value.cjs.map +1 -0
  50. package/dist/channels/last_value.d.cts +42 -0
  51. package/dist/channels/last_value.d.cts.map +1 -0
  52. package/dist/channels/last_value.d.ts +27 -23
  53. package/dist/channels/last_value.d.ts.map +1 -0
  54. package/dist/channels/last_value.js +87 -133
  55. package/dist/channels/last_value.js.map +1 -1
  56. package/dist/channels/named_barrier_value.cjs +114 -170
  57. package/dist/channels/named_barrier_value.cjs.map +1 -0
  58. package/dist/channels/named_barrier_value.d.cts +46 -0
  59. package/dist/channels/named_barrier_value.d.cts.map +1 -0
  60. package/dist/channels/named_barrier_value.d.ts +32 -29
  61. package/dist/channels/named_barrier_value.d.ts.map +1 -0
  62. package/dist/channels/named_barrier_value.js +111 -163
  63. package/dist/channels/named_barrier_value.js.map +1 -1
  64. package/dist/channels/topic.cjs +63 -96
  65. package/dist/channels/topic.cjs.map +1 -0
  66. package/dist/channels/topic.d.cts +32 -0
  67. package/dist/channels/topic.d.cts.map +1 -0
  68. package/dist/channels/topic.d.ts +28 -19
  69. package/dist/channels/topic.d.ts.map +1 -0
  70. package/dist/channels/topic.js +61 -90
  71. package/dist/channels/topic.js.map +1 -1
  72. package/dist/constants.cjs +376 -452
  73. package/dist/constants.cjs.map +1 -0
  74. package/dist/constants.d.cts +285 -0
  75. package/dist/constants.d.cts.map +1 -0
  76. package/dist/constants.d.ts +113 -148
  77. package/dist/constants.d.ts.map +1 -0
  78. package/dist/constants.js +336 -444
  79. package/dist/constants.js.map +1 -1
  80. package/dist/errors.cjs +151 -179
  81. package/dist/errors.cjs.map +1 -0
  82. package/dist/errors.d.cts +81 -0
  83. package/dist/errors.d.cts.map +1 -0
  84. package/dist/errors.d.ts +56 -46
  85. package/dist/errors.d.ts.map +1 -0
  86. package/dist/errors.js +140 -165
  87. package/dist/errors.js.map +1 -1
  88. package/dist/func/index.cjs +292 -290
  89. package/dist/func/index.cjs.map +1 -0
  90. package/dist/func/index.d.cts +293 -0
  91. package/dist/func/index.d.cts.map +1 -0
  92. package/dist/func/index.d.ts +86 -72
  93. package/dist/func/index.d.ts.map +1 -0
  94. package/dist/func/index.js +288 -284
  95. package/dist/func/index.js.map +1 -1
  96. package/dist/func/types.d.cts +64 -0
  97. package/dist/func/types.d.cts.map +1 -0
  98. package/dist/func/types.d.ts +24 -19
  99. package/dist/func/types.d.ts.map +1 -0
  100. package/dist/graph/annotation.cjs +96 -120
  101. package/dist/graph/annotation.cjs.map +1 -0
  102. package/dist/graph/annotation.d.cts +116 -0
  103. package/dist/graph/annotation.d.cts.map +1 -0
  104. package/dist/graph/annotation.d.ts +33 -34
  105. package/dist/graph/annotation.d.ts.map +1 -0
  106. package/dist/graph/annotation.js +91 -112
  107. package/dist/graph/annotation.js.map +1 -1
  108. package/dist/graph/graph.cjs +419 -723
  109. package/dist/graph/graph.cjs.map +1 -0
  110. package/dist/graph/graph.d.cts +133 -0
  111. package/dist/graph/graph.d.cts.map +1 -0
  112. package/dist/graph/graph.d.ts +124 -91
  113. package/dist/graph/graph.d.ts.map +1 -0
  114. package/dist/graph/graph.js +412 -713
  115. package/dist/graph/graph.js.map +1 -1
  116. package/dist/graph/index.cjs +4 -17
  117. package/dist/graph/index.js +6 -5
  118. package/dist/graph/message.cjs +59 -104
  119. package/dist/graph/message.cjs.map +1 -0
  120. package/dist/graph/message.d.cts +19 -0
  121. package/dist/graph/message.d.cts.map +1 -0
  122. package/dist/graph/message.d.ts +11 -10
  123. package/dist/graph/message.d.ts.map +1 -0
  124. package/dist/graph/message.js +56 -98
  125. package/dist/graph/message.js.map +1 -1
  126. package/dist/graph/messages_annotation.cjs +106 -106
  127. package/dist/graph/messages_annotation.cjs.map +1 -0
  128. package/dist/graph/messages_annotation.d.cts +111 -0
  129. package/dist/graph/messages_annotation.d.cts.map +1 -0
  130. package/dist/graph/messages_annotation.d.ts +18 -9
  131. package/dist/graph/messages_annotation.d.ts.map +1 -0
  132. package/dist/graph/messages_annotation.js +100 -100
  133. package/dist/graph/messages_annotation.js.map +1 -1
  134. package/dist/graph/state.cjs +475 -779
  135. package/dist/graph/state.cjs.map +1 -0
  136. package/dist/graph/state.d.cts +231 -0
  137. package/dist/graph/state.d.cts.map +1 -0
  138. package/dist/graph/state.d.ts +148 -138
  139. package/dist/graph/state.d.ts.map +1 -0
  140. package/dist/graph/state.js +469 -769
  141. package/dist/graph/state.js.map +1 -1
  142. package/dist/graph/zod/index.cjs +10 -21
  143. package/dist/graph/zod/index.d.cts +3 -0
  144. package/dist/graph/zod/index.d.ts +3 -3
  145. package/dist/graph/zod/index.js +4 -4
  146. package/dist/graph/zod/meta.cjs +142 -177
  147. package/dist/graph/zod/meta.cjs.map +1 -0
  148. package/dist/graph/zod/meta.d.cts +116 -0
  149. package/dist/graph/zod/meta.d.cts.map +1 -0
  150. package/dist/graph/zod/meta.d.ts +99 -97
  151. package/dist/graph/zod/meta.d.ts.map +1 -0
  152. package/dist/graph/zod/meta.js +136 -170
  153. package/dist/graph/zod/meta.js.map +1 -1
  154. package/dist/graph/zod/plugin.cjs +36 -39
  155. package/dist/graph/zod/plugin.cjs.map +1 -0
  156. package/dist/graph/zod/plugin.js +34 -35
  157. package/dist/graph/zod/plugin.js.map +1 -1
  158. package/dist/graph/zod/schema.cjs +82 -110
  159. package/dist/graph/zod/schema.cjs.map +1 -0
  160. package/dist/graph/zod/schema.d.cts +38 -0
  161. package/dist/graph/zod/schema.d.cts.map +1 -0
  162. package/dist/graph/zod/schema.d.ts +12 -6
  163. package/dist/graph/zod/schema.d.ts.map +1 -0
  164. package/dist/graph/zod/schema.js +77 -103
  165. package/dist/graph/zod/schema.js.map +1 -1
  166. package/dist/graph/zod/zod-registry.cjs +41 -47
  167. package/dist/graph/zod/zod-registry.cjs.map +1 -0
  168. package/dist/graph/zod/zod-registry.d.cts +51 -0
  169. package/dist/graph/zod/zod-registry.d.cts.map +1 -0
  170. package/dist/graph/zod/zod-registry.d.ts +34 -26
  171. package/dist/graph/zod/zod-registry.d.ts.map +1 -0
  172. package/dist/graph/zod/zod-registry.js +37 -41
  173. package/dist/graph/zod/zod-registry.js.map +1 -1
  174. package/dist/hash.cjs +205 -267
  175. package/dist/hash.cjs.map +1 -0
  176. package/dist/hash.js +205 -265
  177. package/dist/hash.js.map +1 -1
  178. package/dist/index.cjs +111 -33
  179. package/dist/index.cjs.map +1 -0
  180. package/dist/index.d.cts +26 -0
  181. package/dist/index.d.ts +26 -5
  182. package/dist/index.js +19 -7
  183. package/dist/index.js.map +1 -1
  184. package/dist/interrupt.cjs +79 -85
  185. package/dist/interrupt.cjs.map +1 -0
  186. package/dist/interrupt.d.cts +49 -0
  187. package/dist/interrupt.d.cts.map +1 -0
  188. package/dist/interrupt.d.ts +6 -1
  189. package/dist/interrupt.d.ts.map +1 -0
  190. package/dist/interrupt.js +76 -80
  191. package/dist/interrupt.js.map +1 -1
  192. package/dist/prebuilt/agentName.cjs +139 -172
  193. package/dist/prebuilt/agentName.cjs.map +1 -0
  194. package/dist/prebuilt/agentName.d.cts +42 -0
  195. package/dist/prebuilt/agentName.d.cts.map +1 -0
  196. package/dist/prebuilt/agentName.d.ts +13 -21
  197. package/dist/prebuilt/agentName.d.ts.map +1 -0
  198. package/dist/prebuilt/agentName.js +139 -168
  199. package/dist/prebuilt/agentName.js.map +1 -1
  200. package/dist/prebuilt/agent_executor.cjs +42 -80
  201. package/dist/prebuilt/agent_executor.cjs.map +1 -0
  202. package/dist/prebuilt/agent_executor.d.cts +57 -0
  203. package/dist/prebuilt/agent_executor.d.cts.map +1 -0
  204. package/dist/prebuilt/agent_executor.d.ts +47 -38
  205. package/dist/prebuilt/agent_executor.d.ts.map +1 -0
  206. package/dist/prebuilt/agent_executor.js +40 -75
  207. package/dist/prebuilt/agent_executor.js.map +1 -1
  208. package/dist/prebuilt/chat_agent_executor.cjs +66 -128
  209. package/dist/prebuilt/chat_agent_executor.cjs.map +1 -0
  210. package/dist/prebuilt/chat_agent_executor.d.cts +23 -0
  211. package/dist/prebuilt/chat_agent_executor.d.cts.map +1 -0
  212. package/dist/prebuilt/chat_agent_executor.d.ts +18 -10
  213. package/dist/prebuilt/chat_agent_executor.d.ts.map +1 -0
  214. package/dist/prebuilt/chat_agent_executor.js +63 -123
  215. package/dist/prebuilt/chat_agent_executor.js.map +1 -1
  216. package/dist/prebuilt/index.cjs +15 -18
  217. package/dist/prebuilt/index.d.cts +8 -0
  218. package/dist/prebuilt/index.d.ts +8 -8
  219. package/dist/prebuilt/index.js +8 -7
  220. package/dist/prebuilt/interrupt.d.cts +73 -0
  221. package/dist/prebuilt/interrupt.d.cts.map +1 -0
  222. package/dist/prebuilt/interrupt.d.ts +32 -15
  223. package/dist/prebuilt/interrupt.d.ts.map +1 -0
  224. package/dist/prebuilt/react_agent_executor.cjs +317 -473
  225. package/dist/prebuilt/react_agent_executor.cjs.map +1 -0
  226. package/dist/prebuilt/react_agent_executor.d.cts +229 -0
  227. package/dist/prebuilt/react_agent_executor.d.cts.map +1 -0
  228. package/dist/prebuilt/react_agent_executor.d.ts +171 -143
  229. package/dist/prebuilt/react_agent_executor.d.ts.map +1 -0
  230. package/dist/prebuilt/react_agent_executor.js +315 -465
  231. package/dist/prebuilt/react_agent_executor.js.map +1 -1
  232. package/dist/prebuilt/tool_executor.cjs +45 -67
  233. package/dist/prebuilt/tool_executor.cjs.map +1 -0
  234. package/dist/prebuilt/tool_executor.d.cts +42 -0
  235. package/dist/prebuilt/tool_executor.d.cts.map +1 -0
  236. package/dist/prebuilt/tool_executor.d.ts +30 -24
  237. package/dist/prebuilt/tool_executor.d.ts.map +1 -0
  238. package/dist/prebuilt/tool_executor.js +44 -63
  239. package/dist/prebuilt/tool_executor.js.map +1 -1
  240. package/dist/prebuilt/tool_node.cjs +213 -275
  241. package/dist/prebuilt/tool_node.cjs.map +1 -0
  242. package/dist/prebuilt/tool_node.d.cts +151 -0
  243. package/dist/prebuilt/tool_node.d.cts.map +1 -0
  244. package/dist/prebuilt/tool_node.d.ts +30 -17
  245. package/dist/prebuilt/tool_node.d.ts.map +1 -0
  246. package/dist/prebuilt/tool_node.js +209 -268
  247. package/dist/prebuilt/tool_node.js.map +1 -1
  248. package/dist/pregel/algo.cjs +551 -692
  249. package/dist/pregel/algo.cjs.map +1 -0
  250. package/dist/pregel/algo.d.cts +13 -0
  251. package/dist/pregel/algo.d.cts.map +1 -0
  252. package/dist/pregel/algo.d.ts +8 -38
  253. package/dist/pregel/algo.d.ts.map +1 -0
  254. package/dist/pregel/algo.js +546 -683
  255. package/dist/pregel/algo.js.map +1 -1
  256. package/dist/pregel/call.cjs +46 -42
  257. package/dist/pregel/call.cjs.map +1 -0
  258. package/dist/pregel/call.js +43 -37
  259. package/dist/pregel/call.js.map +1 -1
  260. package/dist/pregel/debug.cjs +153 -223
  261. package/dist/pregel/debug.cjs.map +1 -0
  262. package/dist/pregel/debug.js +152 -215
  263. package/dist/pregel/debug.js.map +1 -1
  264. package/dist/pregel/index.cjs +1138 -1604
  265. package/dist/pregel/index.cjs.map +1 -0
  266. package/dist/pregel/index.d.cts +536 -0
  267. package/dist/pregel/index.d.cts.map +1 -0
  268. package/dist/pregel/index.d.ts +460 -422
  269. package/dist/pregel/index.d.ts.map +1 -0
  270. package/dist/pregel/index.js +1129 -1592
  271. package/dist/pregel/index.js.map +1 -1
  272. package/dist/pregel/io.cjs +127 -234
  273. package/dist/pregel/io.cjs.map +1 -0
  274. package/dist/pregel/io.js +122 -225
  275. package/dist/pregel/io.js.map +1 -1
  276. package/dist/pregel/loop.cjs +542 -954
  277. package/dist/pregel/loop.cjs.map +1 -0
  278. package/dist/pregel/loop.js +539 -948
  279. package/dist/pregel/loop.js.map +1 -1
  280. package/dist/pregel/messages.cjs +104 -196
  281. package/dist/pregel/messages.cjs.map +1 -0
  282. package/dist/pregel/messages.js +102 -191
  283. package/dist/pregel/messages.js.map +1 -1
  284. package/dist/pregel/read.cjs +150 -280
  285. package/dist/pregel/read.cjs.map +1 -0
  286. package/dist/pregel/read.d.cts +51 -0
  287. package/dist/pregel/read.d.cts.map +1 -0
  288. package/dist/pregel/read.d.ts +48 -46
  289. package/dist/pregel/read.d.ts.map +1 -0
  290. package/dist/pregel/read.js +147 -274
  291. package/dist/pregel/read.js.map +1 -1
  292. package/dist/pregel/remote.cjs +339 -458
  293. package/dist/pregel/remote.cjs.map +1 -0
  294. package/dist/pregel/remote.d.cts +121 -0
  295. package/dist/pregel/remote.d.cts.map +1 -0
  296. package/dist/pregel/remote.d.ts +79 -69
  297. package/dist/pregel/remote.d.ts.map +1 -0
  298. package/dist/pregel/remote.js +337 -453
  299. package/dist/pregel/remote.js.map +1 -1
  300. package/dist/pregel/retry.cjs +87 -138
  301. package/dist/pregel/retry.cjs.map +1 -0
  302. package/dist/pregel/retry.js +83 -130
  303. package/dist/pregel/retry.js.map +1 -1
  304. package/dist/pregel/runnable_types.d.cts +49 -0
  305. package/dist/pregel/runnable_types.d.cts.map +1 -0
  306. package/dist/pregel/runnable_types.d.ts +47 -17
  307. package/dist/pregel/runnable_types.d.ts.map +1 -0
  308. package/dist/pregel/runner.cjs +222 -315
  309. package/dist/pregel/runner.cjs.map +1 -0
  310. package/dist/pregel/runner.js +219 -308
  311. package/dist/pregel/runner.js.map +1 -1
  312. package/dist/pregel/stream.cjs +89 -130
  313. package/dist/pregel/stream.cjs.map +1 -0
  314. package/dist/pregel/stream.js +87 -125
  315. package/dist/pregel/stream.js.map +1 -1
  316. package/dist/pregel/types.cjs +25 -62
  317. package/dist/pregel/types.cjs.map +1 -0
  318. package/dist/pregel/types.d.cts +440 -0
  319. package/dist/pregel/types.d.cts.map +1 -0
  320. package/dist/pregel/types.d.ts +381 -432
  321. package/dist/pregel/types.d.ts.map +1 -0
  322. package/dist/pregel/types.js +23 -57
  323. package/dist/pregel/types.js.map +1 -1
  324. package/dist/pregel/utils/config.cjs +101 -147
  325. package/dist/pregel/utils/config.cjs.map +1 -0
  326. package/dist/pregel/utils/config.d.cts +36 -0
  327. package/dist/pregel/utils/config.d.cts.map +1 -0
  328. package/dist/pregel/utils/config.d.ts +12 -9
  329. package/dist/pregel/utils/config.d.ts.map +1 -0
  330. package/dist/pregel/utils/config.js +99 -143
  331. package/dist/pregel/utils/config.js.map +1 -1
  332. package/dist/pregel/utils/index.cjs +87 -125
  333. package/dist/pregel/utils/index.cjs.map +1 -0
  334. package/dist/pregel/utils/index.d.cts +51 -0
  335. package/dist/pregel/utils/index.d.cts.map +1 -0
  336. package/dist/pregel/utils/index.d.ts +45 -61
  337. package/dist/pregel/utils/index.d.ts.map +1 -0
  338. package/dist/pregel/utils/index.js +86 -120
  339. package/dist/pregel/utils/index.js.map +1 -1
  340. package/dist/pregel/utils/subgraph.cjs +15 -26
  341. package/dist/pregel/utils/subgraph.cjs.map +1 -0
  342. package/dist/pregel/utils/subgraph.js +12 -21
  343. package/dist/pregel/utils/subgraph.js.map +1 -1
  344. package/dist/pregel/validate.cjs +42 -92
  345. package/dist/pregel/validate.cjs.map +1 -0
  346. package/dist/pregel/validate.js +39 -84
  347. package/dist/pregel/validate.js.map +1 -1
  348. package/dist/pregel/write.cjs +87 -137
  349. package/dist/pregel/write.cjs.map +1 -0
  350. package/dist/pregel/write.d.cts +35 -0
  351. package/dist/pregel/write.d.cts.map +1 -0
  352. package/dist/pregel/write.d.ts +27 -23
  353. package/dist/pregel/write.d.ts.map +1 -0
  354. package/dist/pregel/write.js +83 -131
  355. package/dist/pregel/write.js.map +1 -1
  356. package/dist/remote.cjs +3 -6
  357. package/dist/remote.d.cts +2 -0
  358. package/dist/remote.d.ts +2 -1
  359. package/dist/remote.js +3 -2
  360. package/dist/setup/async_local_storage.cjs +10 -7
  361. package/dist/setup/async_local_storage.cjs.map +1 -0
  362. package/dist/setup/async_local_storage.js +7 -2
  363. package/dist/setup/async_local_storage.js.map +1 -1
  364. package/dist/ui/index.cjs +4 -0
  365. package/dist/ui/index.d.cts +5 -0
  366. package/dist/ui/index.d.ts +5 -0
  367. package/dist/ui/index.js +3 -0
  368. package/dist/ui/stream.cjs +145 -0
  369. package/dist/ui/stream.cjs.map +1 -0
  370. package/dist/ui/stream.d.cts +25 -0
  371. package/dist/ui/stream.d.cts.map +1 -0
  372. package/dist/ui/stream.d.ts +25 -0
  373. package/dist/ui/stream.d.ts.map +1 -0
  374. package/dist/ui/stream.js +143 -0
  375. package/dist/ui/stream.js.map +1 -0
  376. package/dist/ui/types.infer.d.cts +53 -0
  377. package/dist/ui/types.infer.d.cts.map +1 -0
  378. package/dist/ui/types.infer.d.ts +53 -0
  379. package/dist/ui/types.infer.d.ts.map +1 -0
  380. package/dist/ui/types.message.d.cts +95 -0
  381. package/dist/ui/types.message.d.cts.map +1 -0
  382. package/dist/ui/types.message.d.ts +95 -0
  383. package/dist/ui/types.message.d.ts.map +1 -0
  384. package/dist/ui/types.schema.d.cts +228 -0
  385. package/dist/ui/types.schema.d.cts.map +1 -0
  386. package/dist/ui/types.schema.d.ts +228 -0
  387. package/dist/ui/types.schema.d.ts.map +1 -0
  388. package/dist/utils.cjs +77 -147
  389. package/dist/utils.cjs.map +1 -0
  390. package/dist/utils.d.cts +32 -0
  391. package/dist/utils.d.cts.map +1 -0
  392. package/dist/utils.d.ts +29 -25
  393. package/dist/utils.d.ts.map +1 -0
  394. package/dist/utils.js +73 -140
  395. package/dist/utils.js.map +1 -1
  396. package/dist/web.cjs +96 -55
  397. package/dist/web.d.cts +23 -0
  398. package/dist/web.d.ts +23 -14
  399. package/dist/web.js +15 -8
  400. package/dist/writer.cjs +15 -0
  401. package/dist/writer.cjs.map +1 -0
  402. package/dist/writer.d.cts +5 -0
  403. package/dist/writer.d.cts.map +1 -0
  404. package/dist/writer.d.ts +5 -0
  405. package/dist/writer.d.ts.map +1 -0
  406. package/dist/writer.js +14 -0
  407. package/dist/writer.js.map +1 -0
  408. package/package.json +90 -83
  409. package/dist/channels/index.js.map +0 -1
  410. package/dist/func/types.cjs +0 -15
  411. package/dist/func/types.js +0 -12
  412. package/dist/func/types.js.map +0 -1
  413. package/dist/graph/index.d.ts +0 -4
  414. package/dist/graph/index.js.map +0 -1
  415. package/dist/graph/message.test.cjs +0 -196
  416. package/dist/graph/message.test.d.ts +0 -1
  417. package/dist/graph/message.test.js +0 -194
  418. package/dist/graph/message.test.js.map +0 -1
  419. package/dist/graph/zod/index.js.map +0 -1
  420. package/dist/graph/zod/plugin.d.ts +0 -28
  421. package/dist/hash.d.ts +0 -2
  422. package/dist/prebuilt/index.js.map +0 -1
  423. package/dist/prebuilt/interrupt.cjs +0 -3
  424. package/dist/prebuilt/interrupt.js +0 -2
  425. package/dist/prebuilt/interrupt.js.map +0 -1
  426. package/dist/pregel/call.d.ts +0 -16
  427. package/dist/pregel/debug.d.ts +0 -41
  428. package/dist/pregel/debug.test.cjs +0 -258
  429. package/dist/pregel/debug.test.d.ts +0 -1
  430. package/dist/pregel/debug.test.js +0 -256
  431. package/dist/pregel/debug.test.js.map +0 -1
  432. package/dist/pregel/io.d.ts +0 -30
  433. package/dist/pregel/io.mapCommand.test.cjs +0 -150
  434. package/dist/pregel/io.mapCommand.test.d.ts +0 -1
  435. package/dist/pregel/io.mapCommand.test.js +0 -148
  436. package/dist/pregel/io.mapCommand.test.js.map +0 -1
  437. package/dist/pregel/loop.d.ts +0 -147
  438. package/dist/pregel/messages.d.ts +0 -30
  439. package/dist/pregel/messages.test.cjs +0 -369
  440. package/dist/pregel/messages.test.d.ts +0 -1
  441. package/dist/pregel/messages.test.js +0 -367
  442. package/dist/pregel/messages.test.js.map +0 -1
  443. package/dist/pregel/read.test.cjs +0 -194
  444. package/dist/pregel/read.test.d.ts +0 -1
  445. package/dist/pregel/read.test.js +0 -192
  446. package/dist/pregel/read.test.js.map +0 -1
  447. package/dist/pregel/retry.d.ts +0 -17
  448. package/dist/pregel/runnable_types.cjs +0 -3
  449. package/dist/pregel/runnable_types.js +0 -2
  450. package/dist/pregel/runnable_types.js.map +0 -1
  451. package/dist/pregel/runner.d.ts +0 -79
  452. package/dist/pregel/runner.test.cjs +0 -66
  453. package/dist/pregel/runner.test.d.ts +0 -1
  454. package/dist/pregel/runner.test.js +0 -64
  455. package/dist/pregel/runner.test.js.map +0 -1
  456. package/dist/pregel/stream.d.ts +0 -40
  457. package/dist/pregel/utils/config.test.cjs +0 -214
  458. package/dist/pregel/utils/config.test.d.ts +0 -1
  459. package/dist/pregel/utils/config.test.js +0 -212
  460. package/dist/pregel/utils/config.test.js.map +0 -1
  461. package/dist/pregel/utils/subgraph.d.ts +0 -4
  462. package/dist/pregel/utils/subgraph.test.cjs +0 -83
  463. package/dist/pregel/utils/subgraph.test.d.ts +0 -1
  464. package/dist/pregel/utils/subgraph.test.js +0 -81
  465. package/dist/pregel/utils/subgraph.test.js.map +0 -1
  466. package/dist/pregel/validate.d.ts +0 -16
  467. package/dist/pregel/validate.test.cjs +0 -220
  468. package/dist/pregel/validate.test.d.ts +0 -1
  469. package/dist/pregel/validate.test.js +0 -218
  470. package/dist/pregel/validate.test.js.map +0 -1
  471. package/dist/pregel/write.test.cjs +0 -181
  472. package/dist/pregel/write.test.d.ts +0 -1
  473. package/dist/pregel/write.test.js +0 -179
  474. package/dist/pregel/write.test.js.map +0 -1
  475. package/dist/remote.js.map +0 -1
  476. package/dist/setup/async_local_storage.d.ts +0 -1
  477. package/dist/web.js.map +0 -1
  478. package/index.cjs +0 -1
  479. package/index.d.cts +0 -1
  480. package/index.d.ts +0 -1
  481. package/index.js +0 -1
  482. package/prebuilt.cjs +0 -1
  483. package/prebuilt.d.cts +0 -1
  484. package/prebuilt.d.ts +0 -1
  485. package/prebuilt.js +0 -1
  486. package/pregel.cjs +0 -1
  487. package/pregel.d.cts +0 -1
  488. package/pregel.d.ts +0 -1
  489. package/pregel.js +0 -1
  490. package/remote.cjs +0 -1
  491. package/remote.d.cts +0 -1
  492. package/remote.d.ts +0 -1
  493. package/remote.js +0 -1
  494. package/web.cjs +0 -1
  495. package/web.d.cts +0 -1
  496. package/web.d.ts +0 -1
  497. package/web.js +0 -1
  498. package/zod/schema.cjs +0 -1
  499. package/zod/schema.d.cts +0 -1
  500. package/zod/schema.d.ts +0 -1
  501. package/zod/schema.js +0 -1
  502. package/zod.cjs +0 -1
  503. package/zod.d.cts +0 -1
  504. package/zod.d.ts +0 -1
  505. package/zod.js +0 -1
package/dist/interrupt.js CHANGED
@@ -1,85 +1,81 @@
1
- import { AsyncLocalStorageProviderSingleton } from "@langchain/core/singletons";
2
1
  import { GraphInterrupt, GraphValueError } from "./errors.js";
3
- import { CONFIG_KEY_CHECKPOINT_NS, CONFIG_KEY_SCRATCHPAD, CONFIG_KEY_SEND, CONFIG_KEY_CHECKPOINTER, CHECKPOINT_NAMESPACE_SEPARATOR, RESUME, } from "./constants.js";
2
+ import { CHECKPOINT_NAMESPACE_SEPARATOR, CONFIG_KEY_CHECKPOINTER, CONFIG_KEY_CHECKPOINT_NS, CONFIG_KEY_SCRATCHPAD, CONFIG_KEY_SEND, RESUME } from "./constants.js";
4
3
  import { XXH3 } from "./hash.js";
4
+ import { AsyncLocalStorageProviderSingleton } from "@langchain/core/singletons";
5
+
6
+ //#region src/interrupt.ts
5
7
  /**
6
- * Interrupts the execution of a graph node.
7
- * This function can be used to pause execution of a node, and return the value of the `resume`
8
- * input when the graph is re-invoked using `Command`.
9
- * Multiple interrupts can be called within a single node, and each will be handled sequentially.
10
- *
11
- * When an interrupt is called:
12
- * 1. If there's a `resume` value available (from a previous `Command`), it returns that value.
13
- * 2. Otherwise, it throws a `GraphInterrupt` with the provided value
14
- * 3. The graph can be resumed by passing a `Command` with a `resume` value
15
- *
16
- * Because the `interrupt` function propagates by throwing a special `GraphInterrupt` error,
17
- * you should avoid using `try/catch` blocks around the `interrupt` function,
18
- * or if you do, ensure that the `GraphInterrupt` error is thrown again within your `catch` block.
19
- *
20
- * @param value - The value to include in the interrupt. This will be available in task.interrupts[].value
21
- * @returns The `resume` value provided when the graph is re-invoked with a Command
22
- *
23
- * @example
24
- * ```typescript
25
- * // Define a node that uses multiple interrupts
26
- * const nodeWithInterrupts = () => {
27
- * // First interrupt - will pause execution and include {value: 1} in task values
28
- * const answer1 = interrupt({ value: 1 });
29
- *
30
- * // Second interrupt - only called after first interrupt is resumed
31
- * const answer2 = interrupt({ value: 2 });
32
- *
33
- * // Use the resume values
34
- * return { myKey: answer1 + " " + answer2 };
35
- * };
36
- *
37
- * // Resume the graph after first interrupt
38
- * await graph.stream(new Command({ resume: "answer 1" }));
39
- *
40
- * // Resume the graph after second interrupt
41
- * await graph.stream(new Command({ resume: "answer 2" }));
42
- * // Final result: { myKey: "answer 1 answer 2" }
43
- * ```
44
- *
45
- * @throws {Error} If called outside the context of a graph
46
- * @throws {GraphInterrupt} When no resume value is available
47
- */
48
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
49
- export function interrupt(value) {
50
- const config = AsyncLocalStorageProviderSingleton.getRunnableConfig();
51
- if (!config) {
52
- throw new Error("Called interrupt() outside the context of a graph.");
53
- }
54
- const conf = config.configurable;
55
- if (!conf) {
56
- throw new Error("No configurable found in config");
57
- }
58
- const checkpointer = conf[CONFIG_KEY_CHECKPOINTER];
59
- if (!checkpointer)
60
- throw new GraphValueError("No checkpointer set");
61
- // Track interrupt index
62
- const scratchpad = conf[CONFIG_KEY_SCRATCHPAD];
63
- scratchpad.interruptCounter += 1;
64
- const idx = scratchpad.interruptCounter;
65
- // Find previous resume values
66
- if (scratchpad.resume.length > 0 && idx < scratchpad.resume.length) {
67
- conf[CONFIG_KEY_SEND]?.([[RESUME, scratchpad.resume]]);
68
- return scratchpad.resume[idx];
69
- }
70
- // Find current resume value
71
- if (scratchpad.nullResume !== undefined) {
72
- if (scratchpad.resume.length !== idx) {
73
- throw new Error(`Resume length mismatch: ${scratchpad.resume.length} !== ${idx}`);
74
- }
75
- const v = scratchpad.consumeNullResume();
76
- scratchpad.resume.push(v);
77
- conf[CONFIG_KEY_SEND]?.([[RESUME, scratchpad.resume]]);
78
- return v;
79
- }
80
- // No resume value found
81
- const ns = conf[CONFIG_KEY_CHECKPOINT_NS]?.split(CHECKPOINT_NAMESPACE_SEPARATOR);
82
- const id = ns ? XXH3(ns.join(CHECKPOINT_NAMESPACE_SEPARATOR)) : undefined;
83
- throw new GraphInterrupt([{ id, value }]);
8
+ * Interrupts the execution of a graph node.
9
+ * This function can be used to pause execution of a node, and return the value of the `resume`
10
+ * input when the graph is re-invoked using `Command`.
11
+ * Multiple interrupts can be called within a single node, and each will be handled sequentially.
12
+ *
13
+ * When an interrupt is called:
14
+ * 1. If there's a `resume` value available (from a previous `Command`), it returns that value.
15
+ * 2. Otherwise, it throws a `GraphInterrupt` with the provided value
16
+ * 3. The graph can be resumed by passing a `Command` with a `resume` value
17
+ *
18
+ * Because the `interrupt` function propagates by throwing a special `GraphInterrupt` error,
19
+ * you should avoid using `try/catch` blocks around the `interrupt` function,
20
+ * or if you do, ensure that the `GraphInterrupt` error is thrown again within your `catch` block.
21
+ *
22
+ * @param value - The value to include in the interrupt. This will be available in task.interrupts[].value
23
+ * @returns The `resume` value provided when the graph is re-invoked with a Command
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * // Define a node that uses multiple interrupts
28
+ * const nodeWithInterrupts = () => {
29
+ * // First interrupt - will pause execution and include {value: 1} in task values
30
+ * const answer1 = interrupt({ value: 1 });
31
+ *
32
+ * // Second interrupt - only called after first interrupt is resumed
33
+ * const answer2 = interrupt({ value: 2 });
34
+ *
35
+ * // Use the resume values
36
+ * return { myKey: answer1 + " " + answer2 };
37
+ * };
38
+ *
39
+ * // Resume the graph after first interrupt
40
+ * await graph.stream(new Command({ resume: "answer 1" }));
41
+ *
42
+ * // Resume the graph after second interrupt
43
+ * await graph.stream(new Command({ resume: "answer 2" }));
44
+ * // Final result: { myKey: "answer 1 answer 2" }
45
+ * ```
46
+ *
47
+ * @throws {Error} If called outside the context of a graph
48
+ * @throws {GraphInterrupt} When no resume value is available
49
+ */
50
+ function interrupt(value) {
51
+ const config = AsyncLocalStorageProviderSingleton.getRunnableConfig();
52
+ if (!config) throw new Error("Called interrupt() outside the context of a graph.");
53
+ const conf = config.configurable;
54
+ if (!conf) throw new Error("No configurable found in config");
55
+ const checkpointer = conf[CONFIG_KEY_CHECKPOINTER];
56
+ if (!checkpointer) throw new GraphValueError("No checkpointer set", { lc_error_code: "MISSING_CHECKPOINTER" });
57
+ const scratchpad = conf[CONFIG_KEY_SCRATCHPAD];
58
+ scratchpad.interruptCounter += 1;
59
+ const idx = scratchpad.interruptCounter;
60
+ if (scratchpad.resume.length > 0 && idx < scratchpad.resume.length) {
61
+ conf[CONFIG_KEY_SEND]?.([[RESUME, scratchpad.resume]]);
62
+ return scratchpad.resume[idx];
63
+ }
64
+ if (scratchpad.nullResume !== void 0) {
65
+ if (scratchpad.resume.length !== idx) throw new Error(`Resume length mismatch: ${scratchpad.resume.length} !== ${idx}`);
66
+ const v = scratchpad.consumeNullResume();
67
+ scratchpad.resume.push(v);
68
+ conf[CONFIG_KEY_SEND]?.([[RESUME, scratchpad.resume]]);
69
+ return v;
70
+ }
71
+ const ns = conf[CONFIG_KEY_CHECKPOINT_NS]?.split(CHECKPOINT_NAMESPACE_SEPARATOR);
72
+ const id = ns ? XXH3(ns.join(CHECKPOINT_NAMESPACE_SEPARATOR)) : void 0;
73
+ throw new GraphInterrupt([{
74
+ id,
75
+ value
76
+ }]);
84
77
  }
78
+
79
+ //#endregion
80
+ export { interrupt };
85
81
  //# sourceMappingURL=interrupt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interrupt.js","sourceRoot":"","sources":["../src/interrupt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAMhF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,8BAA8B,EAC9B,MAAM,GACP,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,8DAA8D;AAC9D,MAAM,UAAU,SAAS,CAAuB,KAAQ;IACtD,MAAM,MAAM,GACV,kCAAkC,CAAC,iBAAiB,EAAE,CAAC;IACzD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,YAAY,GAAwB,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACxE,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAEpE,wBAAwB;IACxB,MAAM,UAAU,GAAqB,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACjE,UAAU,CAAC,gBAAgB,IAAI,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,UAAU,CAAC,gBAAgB,CAAC;IAExC,8BAA8B;IAC9B,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAiB,CAAC,CAAC,CAAC;QACvE,OAAO,UAAU,CAAC,MAAM,CAAC,GAAG,CAAM,CAAC;IACrC,CAAC;IAED,4BAA4B;IAC5B,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACxC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,2BAA2B,UAAU,CAAC,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CACjE,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;QACzC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAiB,CAAC,CAAC,CAAC;QACvE,OAAO,CAAM,CAAC;IAChB,CAAC;IAED,wBAAwB;IACxB,MAAM,EAAE,GAAyB,IAAI,CAAC,wBAAwB,CAAC,EAAE,KAAK,CACpE,8BAA8B,CAC/B,CAAC;IAEF,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,MAAM,IAAI,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"interrupt.js","names":["config: RunnableConfig | undefined","checkpointer: BaseCheckpointSaver","scratchpad: PregelScratchpad","ns: string[] | undefined"],"sources":["../src/interrupt.ts"],"sourcesContent":["import { AsyncLocalStorageProviderSingleton } from \"@langchain/core/singletons\";\nimport { RunnableConfig } from \"@langchain/core/runnables\";\nimport {\n BaseCheckpointSaver,\n type PendingWrite,\n} from \"@langchain/langgraph-checkpoint\";\nimport { GraphInterrupt, GraphValueError } from \"./errors.js\";\nimport {\n CONFIG_KEY_CHECKPOINT_NS,\n CONFIG_KEY_SCRATCHPAD,\n CONFIG_KEY_SEND,\n CONFIG_KEY_CHECKPOINTER,\n CHECKPOINT_NAMESPACE_SEPARATOR,\n RESUME,\n} from \"./constants.js\";\nimport { PregelScratchpad } from \"./pregel/types.js\";\nimport { XXH3 } from \"./hash.js\";\n\n/**\n * Interrupts the execution of a graph node.\n * This function can be used to pause execution of a node, and return the value of the `resume`\n * input when the graph is re-invoked using `Command`.\n * Multiple interrupts can be called within a single node, and each will be handled sequentially.\n *\n * When an interrupt is called:\n * 1. If there's a `resume` value available (from a previous `Command`), it returns that value.\n * 2. Otherwise, it throws a `GraphInterrupt` with the provided value\n * 3. The graph can be resumed by passing a `Command` with a `resume` value\n *\n * Because the `interrupt` function propagates by throwing a special `GraphInterrupt` error,\n * you should avoid using `try/catch` blocks around the `interrupt` function,\n * or if you do, ensure that the `GraphInterrupt` error is thrown again within your `catch` block.\n *\n * @param value - The value to include in the interrupt. This will be available in task.interrupts[].value\n * @returns The `resume` value provided when the graph is re-invoked with a Command\n *\n * @example\n * ```typescript\n * // Define a node that uses multiple interrupts\n * const nodeWithInterrupts = () => {\n * // First interrupt - will pause execution and include {value: 1} in task values\n * const answer1 = interrupt({ value: 1 });\n *\n * // Second interrupt - only called after first interrupt is resumed\n * const answer2 = interrupt({ value: 2 });\n *\n * // Use the resume values\n * return { myKey: answer1 + \" \" + answer2 };\n * };\n *\n * // Resume the graph after first interrupt\n * await graph.stream(new Command({ resume: \"answer 1\" }));\n *\n * // Resume the graph after second interrupt\n * await graph.stream(new Command({ resume: \"answer 2\" }));\n * // Final result: { myKey: \"answer 1 answer 2\" }\n * ```\n *\n * @throws {Error} If called outside the context of a graph\n * @throws {GraphInterrupt} When no resume value is available\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function interrupt<I = unknown, R = any>(value: I): R {\n const config: RunnableConfig | undefined =\n AsyncLocalStorageProviderSingleton.getRunnableConfig();\n if (!config) {\n throw new Error(\"Called interrupt() outside the context of a graph.\");\n }\n\n const conf = config.configurable;\n if (!conf) {\n throw new Error(\"No configurable found in config\");\n }\n\n const checkpointer: BaseCheckpointSaver = conf[CONFIG_KEY_CHECKPOINTER];\n if (!checkpointer) {\n throw new GraphValueError(\"No checkpointer set\", {\n lc_error_code: \"MISSING_CHECKPOINTER\",\n });\n }\n\n // Track interrupt index\n const scratchpad: PregelScratchpad = conf[CONFIG_KEY_SCRATCHPAD];\n scratchpad.interruptCounter += 1;\n const idx = scratchpad.interruptCounter;\n\n // Find previous resume values\n if (scratchpad.resume.length > 0 && idx < scratchpad.resume.length) {\n conf[CONFIG_KEY_SEND]?.([[RESUME, scratchpad.resume] as PendingWrite]);\n return scratchpad.resume[idx] as R;\n }\n\n // Find current resume value\n if (scratchpad.nullResume !== undefined) {\n if (scratchpad.resume.length !== idx) {\n throw new Error(\n `Resume length mismatch: ${scratchpad.resume.length} !== ${idx}`\n );\n }\n const v = scratchpad.consumeNullResume();\n scratchpad.resume.push(v);\n conf[CONFIG_KEY_SEND]?.([[RESUME, scratchpad.resume] as PendingWrite]);\n return v as R;\n }\n\n // No resume value found\n const ns: string[] | undefined = conf[CONFIG_KEY_CHECKPOINT_NS]?.split(\n CHECKPOINT_NAMESPACE_SEPARATOR\n );\n\n const id = ns ? XXH3(ns.join(CHECKPOINT_NAMESPACE_SEPARATOR)) : undefined;\n throw new GraphInterrupt([{ id, value }]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,SAAgB,UAAgC,OAAa;CAC3D,MAAMA,SACJ,mCAAmC;AACrC,KAAI,CAAC,OACH,OAAM,IAAI,MAAM;CAGlB,MAAM,OAAO,OAAO;AACpB,KAAI,CAAC,KACH,OAAM,IAAI,MAAM;CAGlB,MAAMC,eAAoC,KAAK;AAC/C,KAAI,CAAC,aACH,OAAM,IAAI,gBAAgB,uBAAuB,EAC/C,eAAe;CAKnB,MAAMC,aAA+B,KAAK;AAC1C,YAAW,oBAAoB;CAC/B,MAAM,MAAM,WAAW;AAGvB,KAAI,WAAW,OAAO,SAAS,KAAK,MAAM,WAAW,OAAO,QAAQ;AAClE,OAAK,mBAAmB,CAAC,CAAC,QAAQ,WAAW;AAC7C,SAAO,WAAW,OAAO;;AAI3B,KAAI,WAAW,eAAe,QAAW;AACvC,MAAI,WAAW,OAAO,WAAW,IAC/B,OAAM,IAAI,MACR,2BAA2B,WAAW,OAAO,OAAO,OAAO;EAG/D,MAAM,IAAI,WAAW;AACrB,aAAW,OAAO,KAAK;AACvB,OAAK,mBAAmB,CAAC,CAAC,QAAQ,WAAW;AAC7C,SAAO;;CAIT,MAAMC,KAA2B,KAAK,2BAA2B,MAC/D;CAGF,MAAM,KAAK,KAAK,KAAK,GAAG,KAAK,mCAAmC;AAChE,OAAM,IAAI,eAAe,CAAC;EAAE;EAAI"}
@@ -1,183 +1,150 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports._addInlineAgentName = _addInlineAgentName;
4
- exports._removeInlineAgentName = _removeInlineAgentName;
5
- exports.withAgentName = withAgentName;
6
- const messages_1 = require("@langchain/core/messages");
7
- const runnables_1 = require("@langchain/core/runnables");
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const __langchain_core_runnables = require_rolldown_runtime.__toESM(require("@langchain/core/runnables"));
3
+ const __langchain_core_messages = require_rolldown_runtime.__toESM(require("@langchain/core/messages"));
4
+
5
+ //#region src/prebuilt/agentName.ts
8
6
  const NAME_PATTERN = /<name>(.*?)<\/name>/s;
9
7
  const CONTENT_PATTERN = /<content>(.*?)<\/content>/s;
10
8
  /**
11
- * Attach formatted agent names to the messages passed to and from a language model.
12
- *
13
- * This is useful for making a message history with multiple agents more coherent.
14
- *
15
- * NOTE: agent name is consumed from the message.name field.
16
- * If you're using an agent built with createReactAgent, name is automatically set.
17
- * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.
18
- *
19
- * @param message - Message to add agent name formatting to
20
- * @returns Message with agent name formatting
21
- *
22
- * @internal
23
- */
9
+ * Attach formatted agent names to the messages passed to and from a language model.
10
+ *
11
+ * This is useful for making a message history with multiple agents more coherent.
12
+ *
13
+ * NOTE: agent name is consumed from the message.name field.
14
+ * If you're using an agent built with createReactAgent, name is automatically set.
15
+ * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.
16
+ *
17
+ * @deprecated migrated to `langchain` package.
18
+ *
19
+ * @param message - Message to add agent name formatting to
20
+ * @returns Message with agent name formatting
21
+ *
22
+ * @internal
23
+ */
24
24
  function _addInlineAgentName(message) {
25
- const isAI = (0, messages_1.isBaseMessage)(message) &&
26
- ((0, messages_1.isAIMessage)(message) ||
27
- ((0, messages_1.isBaseMessageChunk)(message) && (0, messages_1.isAIMessageChunk)(message)));
28
- if (!isAI || !message.name) {
29
- return message;
30
- }
31
- const { name } = message;
32
- if (typeof message.content === "string") {
33
- return new messages_1.AIMessage({
34
- ...(Object.keys(message.lc_kwargs ?? {}).length > 0
35
- ? message.lc_kwargs
36
- : message),
37
- content: `<name>${name}</name><content>${message.content}</content>`,
38
- name: undefined,
39
- });
40
- }
41
- const updatedContent = [];
42
- let textBlockCount = 0;
43
- for (const contentBlock of message.content) {
44
- if (typeof contentBlock === "string") {
45
- textBlockCount += 1;
46
- updatedContent.push(`<name>${name}</name><content>${contentBlock}</content>`);
47
- }
48
- else if (typeof contentBlock === "object" &&
49
- "type" in contentBlock &&
50
- contentBlock.type === "text") {
51
- textBlockCount += 1;
52
- updatedContent.push({
53
- ...contentBlock,
54
- text: `<name>${name}</name><content>${contentBlock.text}</content>`,
55
- });
56
- }
57
- else {
58
- updatedContent.push(contentBlock);
59
- }
60
- }
61
- if (!textBlockCount) {
62
- updatedContent.unshift({
63
- type: "text",
64
- text: `<name>${name}</name><content></content>`,
65
- });
66
- }
67
- return new messages_1.AIMessage({
68
- ...message.lc_kwargs,
69
- content: updatedContent,
70
- name: undefined,
71
- });
25
+ const isAI = (0, __langchain_core_messages.isBaseMessage)(message) && ((0, __langchain_core_messages.isAIMessage)(message) || (0, __langchain_core_messages.isBaseMessageChunk)(message) && (0, __langchain_core_messages.isAIMessageChunk)(message));
26
+ if (!isAI || !message.name) return message;
27
+ const { name } = message;
28
+ if (typeof message.content === "string") return new __langchain_core_messages.AIMessage({
29
+ ...Object.keys(message.lc_kwargs ?? {}).length > 0 ? message.lc_kwargs : message,
30
+ content: `<name>${name}</name><content>${message.content}</content>`,
31
+ name: void 0
32
+ });
33
+ const updatedContent = [];
34
+ let textBlockCount = 0;
35
+ for (const contentBlock of message.content) if (typeof contentBlock === "string") {
36
+ textBlockCount += 1;
37
+ updatedContent.push(`<name>${name}</name><content>${contentBlock}</content>`);
38
+ } else if (typeof contentBlock === "object" && "type" in contentBlock && contentBlock.type === "text") {
39
+ textBlockCount += 1;
40
+ updatedContent.push({
41
+ ...contentBlock,
42
+ text: `<name>${name}</name><content>${contentBlock.text}</content>`
43
+ });
44
+ } else updatedContent.push(contentBlock);
45
+ if (!textBlockCount) updatedContent.unshift({
46
+ type: "text",
47
+ text: `<name>${name}</name><content></content>`
48
+ });
49
+ return new __langchain_core_messages.AIMessage({
50
+ ...message.lc_kwargs,
51
+ content: updatedContent,
52
+ name: void 0
53
+ });
72
54
  }
73
55
  /**
74
- * Remove explicit name and content XML tags from the AI message content.
75
- *
76
- * Examples:
77
- *
78
- * @example
79
- * ```typescript
80
- * removeInlineAgentName(new AIMessage({ content: "<name>assistant</name><content>Hello</content>", name: "assistant" }))
81
- * // AIMessage with content: "Hello"
82
- *
83
- * removeInlineAgentName(new AIMessage({ content: [{type: "text", text: "<name>assistant</name><content>Hello</content>"}], name: "assistant" }))
84
- * // AIMessage with content: [{type: "text", text: "Hello"}]
85
- * ```
86
- *
87
- * @internal
88
- */
56
+ * Remove explicit name and content XML tags from the AI message content.
57
+ *
58
+ * @deprecated migrated to `langchain` package.
59
+ *
60
+ * Examples:
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * removeInlineAgentName(new AIMessage({ content: "<name>assistant</name><content>Hello</content>", name: "assistant" }))
65
+ * // AIMessage with content: "Hello"
66
+ *
67
+ * removeInlineAgentName(new AIMessage({ content: [{type: "text", text: "<name>assistant</name><content>Hello</content>"}], name: "assistant" }))
68
+ * // AIMessage with content: [{type: "text", text: "Hello"}]
69
+ * ```
70
+ *
71
+ * @internal
72
+ */
89
73
  function _removeInlineAgentName(message) {
90
- if (!(0, messages_1.isAIMessage)(message) || !message.content) {
91
- return message;
92
- }
93
- let updatedContent = [];
94
- let updatedName;
95
- if (Array.isArray(message.content)) {
96
- updatedContent = message.content
97
- .filter((block) => {
98
- if (block.type === "text") {
99
- const nameMatch = block.text.match(NAME_PATTERN);
100
- const contentMatch = block.text.match(CONTENT_PATTERN);
101
- // don't include empty content blocks that were added because there was no text block to modify
102
- if (nameMatch && (!contentMatch || contentMatch[1] === "")) {
103
- // capture name from text block
104
- // eslint-disable-next-line prefer-destructuring
105
- updatedName = nameMatch[1];
106
- return false;
107
- }
108
- return true;
109
- }
110
- return true;
111
- })
112
- .map((block) => {
113
- if (block.type === "text") {
114
- const nameMatch = block.text.match(NAME_PATTERN);
115
- const contentMatch = block.text.match(CONTENT_PATTERN);
116
- if (!nameMatch || !contentMatch) {
117
- return block;
118
- }
119
- // capture name from text block
120
- // eslint-disable-next-line prefer-destructuring
121
- updatedName = nameMatch[1];
122
- return {
123
- ...block,
124
- text: contentMatch[1],
125
- };
126
- }
127
- return block;
128
- });
129
- }
130
- else {
131
- const content = message.content;
132
- const nameMatch = content.match(NAME_PATTERN);
133
- const contentMatch = content.match(CONTENT_PATTERN);
134
- if (!nameMatch || !contentMatch) {
135
- return message;
136
- }
137
- // eslint-disable-next-line prefer-destructuring
138
- updatedName = nameMatch[1];
139
- // eslint-disable-next-line prefer-destructuring
140
- updatedContent = contentMatch[1];
141
- }
142
- return new messages_1.AIMessage({
143
- ...(Object.keys(message.lc_kwargs ?? {}).length > 0
144
- ? message.lc_kwargs
145
- : message),
146
- content: updatedContent,
147
- name: updatedName,
148
- });
74
+ if (!(0, __langchain_core_messages.isAIMessage)(message) || !message.content) return message;
75
+ let updatedContent = [];
76
+ let updatedName;
77
+ if (Array.isArray(message.content)) updatedContent = message.content.filter((block) => {
78
+ if (block.type === "text" && typeof block.text === "string") {
79
+ const nameMatch = block.text.match(NAME_PATTERN);
80
+ const contentMatch = block.text.match(CONTENT_PATTERN);
81
+ if (nameMatch && (!contentMatch || contentMatch[1] === "")) {
82
+ updatedName = nameMatch[1];
83
+ return false;
84
+ }
85
+ return true;
86
+ }
87
+ return true;
88
+ }).map((block) => {
89
+ if (block.type === "text" && typeof block.text === "string") {
90
+ const nameMatch = block.text.match(NAME_PATTERN);
91
+ const contentMatch = block.text.match(CONTENT_PATTERN);
92
+ if (!nameMatch || !contentMatch) return block;
93
+ updatedName = nameMatch[1];
94
+ return {
95
+ ...block,
96
+ text: contentMatch[1]
97
+ };
98
+ }
99
+ return block;
100
+ });
101
+ else {
102
+ const content = message.content;
103
+ const nameMatch = content.match(NAME_PATTERN);
104
+ const contentMatch = content.match(CONTENT_PATTERN);
105
+ if (!nameMatch || !contentMatch) return message;
106
+ updatedName = nameMatch[1];
107
+ updatedContent = contentMatch[1];
108
+ }
109
+ return new __langchain_core_messages.AIMessage({
110
+ ...Object.keys(message.lc_kwargs ?? {}).length > 0 ? message.lc_kwargs : message,
111
+ content: updatedContent,
112
+ name: updatedName
113
+ });
149
114
  }
150
115
  /**
151
- * Attach formatted agent names to the messages passed to and from a language model.
152
- *
153
- * This is useful for making a message history with multiple agents more coherent.
154
- *
155
- * NOTE: agent name is consumed from the message.name field.
156
- * If you're using an agent built with createReactAgent, name is automatically set.
157
- * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.
158
- *
159
- * @param model - Language model to add agent name formatting to
160
- * @param agentNameMode - How to expose the agent name to the LLM
161
- * - "inline": Add the agent name directly into the content field of the AI message using XML-style tags.
162
- * Example: "How can I help you" -> "<name>agent_name</name><content>How can I help you?</content>".
163
- */
116
+ * Attach formatted agent names to the messages passed to and from a language model.
117
+ *
118
+ * This is useful for making a message history with multiple agents more coherent.
119
+ *
120
+ * * @deprecated migrated to `langchain` package.
121
+ *
122
+ * NOTE: agent name is consumed from the message.name field.
123
+ * If you're using an agent built with createReactAgent, name is automatically set.
124
+ * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.
125
+ *
126
+ * @param model - Language model to add agent name formatting to
127
+ * @param agentNameMode - How to expose the agent name to the LLM
128
+ * - "inline": Add the agent name directly into the content field of the AI message using XML-style tags.
129
+ * Example: "How can I help you" -> "<name>agent_name</name><content>How can I help you?</content>".
130
+ */
164
131
  function withAgentName(model, agentNameMode) {
165
- let processInputMessage;
166
- let processOutputMessage;
167
- if (agentNameMode === "inline") {
168
- processInputMessage = _addInlineAgentName;
169
- processOutputMessage = _removeInlineAgentName;
170
- }
171
- else {
172
- throw new Error(`Invalid agent name mode: ${agentNameMode}. Needs to be one of: "inline"`);
173
- }
174
- function processInputMessages(messages) {
175
- return messages.map(processInputMessage);
176
- }
177
- return runnables_1.RunnableSequence.from([
178
- runnables_1.RunnableLambda.from(processInputMessages),
179
- model,
180
- runnables_1.RunnableLambda.from(processOutputMessage),
181
- ]);
132
+ let processInputMessage;
133
+ let processOutputMessage;
134
+ if (agentNameMode === "inline") {
135
+ processInputMessage = _addInlineAgentName;
136
+ processOutputMessage = _removeInlineAgentName;
137
+ } else throw new Error(`Invalid agent name mode: ${agentNameMode}. Needs to be one of: "inline"`);
138
+ function processInputMessages(messages) {
139
+ return messages.map(processInputMessage);
140
+ }
141
+ return __langchain_core_runnables.RunnableSequence.from([
142
+ __langchain_core_runnables.RunnableLambda.from(processInputMessages),
143
+ model,
144
+ __langchain_core_runnables.RunnableLambda.from(processOutputMessage)
145
+ ]);
182
146
  }
183
- //# sourceMappingURL=agentName.js.map
147
+
148
+ //#endregion
149
+ exports.withAgentName = withAgentName;
150
+ //# sourceMappingURL=agentName.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentName.cjs","names":["AIMessage","updatedContent: MessageContent","updatedName: string | undefined","processInputMessage: (message: BaseMessageLike) => BaseMessageLike","processOutputMessage: (message: BaseMessage) => BaseMessage","RunnableSequence","RunnableLambda"],"sources":["../../src/prebuilt/agentName.ts"],"sourcesContent":["import { LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport {\n AIMessage,\n BaseMessage,\n BaseMessageLike,\n isAIMessage,\n isAIMessageChunk,\n isBaseMessage,\n isBaseMessageChunk,\n MessageContent,\n} from \"@langchain/core/messages\";\nimport { RunnableLambda, RunnableSequence } from \"@langchain/core/runnables\";\n\nconst NAME_PATTERN = /<name>(.*?)<\\/name>/s;\nconst CONTENT_PATTERN = /<content>(.*?)<\\/content>/s;\n\nexport type AgentNameMode = \"inline\";\n\n/**\n * Attach formatted agent names to the messages passed to and from a language model.\n *\n * This is useful for making a message history with multiple agents more coherent.\n *\n * NOTE: agent name is consumed from the message.name field.\n * If you're using an agent built with createReactAgent, name is automatically set.\n * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.\n *\n * @deprecated migrated to `langchain` package.\n *\n * @param message - Message to add agent name formatting to\n * @returns Message with agent name formatting\n *\n * @internal\n */\nexport function _addInlineAgentName<T extends BaseMessageLike>(\n message: T\n): T | AIMessage {\n const isAI =\n isBaseMessage(message) &&\n (isAIMessage(message) ||\n (isBaseMessageChunk(message) && isAIMessageChunk(message)));\n\n if (!isAI || !message.name) {\n return message;\n }\n\n const { name } = message;\n\n if (typeof message.content === \"string\") {\n return new AIMessage({\n ...(Object.keys(message.lc_kwargs ?? {}).length > 0\n ? message.lc_kwargs\n : message),\n content: `<name>${name}</name><content>${message.content}</content>`,\n name: undefined,\n });\n }\n\n const updatedContent = [];\n let textBlockCount = 0;\n\n for (const contentBlock of message.content) {\n if (typeof contentBlock === \"string\") {\n textBlockCount += 1;\n updatedContent.push(\n `<name>${name}</name><content>${contentBlock}</content>`\n );\n } else if (\n typeof contentBlock === \"object\" &&\n \"type\" in contentBlock &&\n contentBlock.type === \"text\"\n ) {\n textBlockCount += 1;\n updatedContent.push({\n ...contentBlock,\n text: `<name>${name}</name><content>${contentBlock.text}</content>`,\n });\n } else {\n updatedContent.push(contentBlock);\n }\n }\n\n if (!textBlockCount) {\n updatedContent.unshift({\n type: \"text\",\n text: `<name>${name}</name><content></content>`,\n });\n }\n return new AIMessage({\n ...message.lc_kwargs,\n content: updatedContent as MessageContent,\n name: undefined,\n });\n}\n\n/**\n * Remove explicit name and content XML tags from the AI message content.\n *\n * @deprecated migrated to `langchain` package.\n *\n * Examples:\n *\n * @example\n * ```typescript\n * removeInlineAgentName(new AIMessage({ content: \"<name>assistant</name><content>Hello</content>\", name: \"assistant\" }))\n * // AIMessage with content: \"Hello\"\n *\n * removeInlineAgentName(new AIMessage({ content: [{type: \"text\", text: \"<name>assistant</name><content>Hello</content>\"}], name: \"assistant\" }))\n * // AIMessage with content: [{type: \"text\", text: \"Hello\"}]\n * ```\n *\n * @internal\n */\nexport function _removeInlineAgentName<T extends BaseMessage>(message: T): T {\n if (!isAIMessage(message) || !message.content) {\n return message;\n }\n\n let updatedContent: MessageContent = [];\n let updatedName: string | undefined;\n\n if (Array.isArray(message.content)) {\n updatedContent = message.content\n .filter((block) => {\n if (block.type === \"text\" && typeof block.text === \"string\") {\n const nameMatch = block.text.match(NAME_PATTERN);\n const contentMatch = block.text.match(CONTENT_PATTERN);\n // don't include empty content blocks that were added because there was no text block to modify\n if (nameMatch && (!contentMatch || contentMatch[1] === \"\")) {\n // capture name from text block\n // eslint-disable-next-line prefer-destructuring\n updatedName = nameMatch[1];\n return false;\n }\n return true;\n }\n return true;\n })\n .map((block) => {\n if (block.type === \"text\" && typeof block.text === \"string\") {\n const nameMatch = block.text.match(NAME_PATTERN);\n const contentMatch = block.text.match(CONTENT_PATTERN);\n\n if (!nameMatch || !contentMatch) {\n return block;\n }\n\n // capture name from text block\n // eslint-disable-next-line prefer-destructuring\n updatedName = nameMatch[1];\n\n return {\n ...block,\n text: contentMatch[1],\n };\n }\n return block;\n });\n } else {\n const content = message.content as string;\n const nameMatch = content.match(NAME_PATTERN);\n const contentMatch = content.match(CONTENT_PATTERN);\n\n if (!nameMatch || !contentMatch) {\n return message;\n }\n\n // eslint-disable-next-line prefer-destructuring\n updatedName = nameMatch[1];\n // eslint-disable-next-line prefer-destructuring\n updatedContent = contentMatch[1];\n }\n\n return new AIMessage({\n ...(Object.keys(message.lc_kwargs ?? {}).length > 0\n ? message.lc_kwargs\n : message),\n content: updatedContent,\n name: updatedName,\n }) as T;\n}\n\n/**\n * Attach formatted agent names to the messages passed to and from a language model.\n *\n * This is useful for making a message history with multiple agents more coherent.\n *\n * * @deprecated migrated to `langchain` package.\n *\n * NOTE: agent name is consumed from the message.name field.\n * If you're using an agent built with createReactAgent, name is automatically set.\n * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.\n *\n * @param model - Language model to add agent name formatting to\n * @param agentNameMode - How to expose the agent name to the LLM\n * - \"inline\": Add the agent name directly into the content field of the AI message using XML-style tags.\n * Example: \"How can I help you\" -> \"<name>agent_name</name><content>How can I help you?</content>\".\n */\nexport function withAgentName(\n model: LanguageModelLike,\n agentNameMode: AgentNameMode\n): LanguageModelLike {\n let processInputMessage: (message: BaseMessageLike) => BaseMessageLike;\n let processOutputMessage: (message: BaseMessage) => BaseMessage;\n\n if (agentNameMode === \"inline\") {\n processInputMessage = _addInlineAgentName;\n processOutputMessage = _removeInlineAgentName;\n } else {\n throw new Error(\n `Invalid agent name mode: ${agentNameMode}. Needs to be one of: \"inline\"`\n );\n }\n\n function processInputMessages(\n messages: BaseMessageLike[]\n ): BaseMessageLike[] {\n return messages.map(processInputMessage);\n }\n\n return RunnableSequence.from([\n RunnableLambda.from(processInputMessages),\n model,\n RunnableLambda.from(processOutputMessage),\n ]);\n}\n"],"mappings":";;;;;AAaA,MAAM,eAAe;AACrB,MAAM,kBAAkB;;;;;;;;;;;;;;;;;AAoBxB,SAAgB,oBACd,SACe;CACf,MAAM,oDACU,wDACD,8DACS,4DAA6B;AAErD,KAAI,CAAC,QAAQ,CAAC,QAAQ,KACpB,QAAO;CAGT,MAAM,EAAE,SAAS;AAEjB,KAAI,OAAO,QAAQ,YAAY,SAC7B,QAAO,IAAIA,oCAAU;EACnB,GAAI,OAAO,KAAK,QAAQ,aAAa,IAAI,SAAS,IAC9C,QAAQ,YACR;EACJ,SAAS,SAAS,KAAK,kBAAkB,QAAQ,QAAQ;EACzD,MAAM;;CAIV,MAAM,iBAAiB;CACvB,IAAI,iBAAiB;AAErB,MAAK,MAAM,gBAAgB,QAAQ,QACjC,KAAI,OAAO,iBAAiB,UAAU;AACpC,oBAAkB;AAClB,iBAAe,KACb,SAAS,KAAK,kBAAkB,aAAa;YAG/C,OAAO,iBAAiB,YACxB,UAAU,gBACV,aAAa,SAAS,QACtB;AACA,oBAAkB;AAClB,iBAAe,KAAK;GAClB,GAAG;GACH,MAAM,SAAS,KAAK,kBAAkB,aAAa,KAAK;;OAG1D,gBAAe,KAAK;AAIxB,KAAI,CAAC,eACH,gBAAe,QAAQ;EACrB,MAAM;EACN,MAAM,SAAS,KAAK;;AAGxB,QAAO,IAAIA,oCAAU;EACnB,GAAG,QAAQ;EACX,SAAS;EACT,MAAM;;;;;;;;;;;;;;;;;;;;;AAsBV,SAAgB,uBAA8C,SAAe;AAC3E,KAAI,4CAAa,YAAY,CAAC,QAAQ,QACpC,QAAO;CAGT,IAAIC,iBAAiC;CACrC,IAAIC;AAEJ,KAAI,MAAM,QAAQ,QAAQ,SACxB,kBAAiB,QAAQ,QACtB,QAAQ,UAAU;AACjB,MAAI,MAAM,SAAS,UAAU,OAAO,MAAM,SAAS,UAAU;GAC3D,MAAM,YAAY,MAAM,KAAK,MAAM;GACnC,MAAM,eAAe,MAAM,KAAK,MAAM;AAEtC,OAAI,cAAc,CAAC,gBAAgB,aAAa,OAAO,KAAK;AAG1D,kBAAc,UAAU;AACxB,WAAO;;AAET,UAAO;;AAET,SAAO;IAER,KAAK,UAAU;AACd,MAAI,MAAM,SAAS,UAAU,OAAO,MAAM,SAAS,UAAU;GAC3D,MAAM,YAAY,MAAM,KAAK,MAAM;GACnC,MAAM,eAAe,MAAM,KAAK,MAAM;AAEtC,OAAI,CAAC,aAAa,CAAC,aACjB,QAAO;AAKT,iBAAc,UAAU;AAExB,UAAO;IACL,GAAG;IACH,MAAM,aAAa;;;AAGvB,SAAO;;MAEN;EACL,MAAM,UAAU,QAAQ;EACxB,MAAM,YAAY,QAAQ,MAAM;EAChC,MAAM,eAAe,QAAQ,MAAM;AAEnC,MAAI,CAAC,aAAa,CAAC,aACjB,QAAO;AAIT,gBAAc,UAAU;AAExB,mBAAiB,aAAa;;AAGhC,QAAO,IAAIF,oCAAU;EACnB,GAAI,OAAO,KAAK,QAAQ,aAAa,IAAI,SAAS,IAC9C,QAAQ,YACR;EACJ,SAAS;EACT,MAAM;;;;;;;;;;;;;;;;;;;AAoBV,SAAgB,cACd,OACA,eACmB;CACnB,IAAIG;CACJ,IAAIC;AAEJ,KAAI,kBAAkB,UAAU;AAC9B,wBAAsB;AACtB,yBAAuB;OAEvB,OAAM,IAAI,MACR,4BAA4B,cAAc;CAI9C,SAAS,qBACP,UACmB;AACnB,SAAO,SAAS,IAAI;;AAGtB,QAAOC,4CAAiB,KAAK;EAC3BC,0CAAe,KAAK;EACpB;EACAA,0CAAe,KAAK"}
@@ -0,0 +1,42 @@
1
+ import { BaseMessage, BaseMessageLike } from "@langchain/core/messages";
2
+ import { LanguageModelLike } from "@langchain/core/language_models/base";
3
+
4
+ //#region src/prebuilt/agentName.d.ts
5
+ type AgentNameMode = "inline";
6
+ /**
7
+ * Attach formatted agent names to the messages passed to and from a language model.
8
+ *
9
+ * This is useful for making a message history with multiple agents more coherent.
10
+ *
11
+ * NOTE: agent name is consumed from the message.name field.
12
+ * If you're using an agent built with createReactAgent, name is automatically set.
13
+ * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.
14
+ *
15
+ * @deprecated migrated to `langchain` package.
16
+ *
17
+ * @param message - Message to add agent name formatting to
18
+ * @returns Message with agent name formatting
19
+ *
20
+ * @internal
21
+ */
22
+
23
+ /**
24
+ * Attach formatted agent names to the messages passed to and from a language model.
25
+ *
26
+ * This is useful for making a message history with multiple agents more coherent.
27
+ *
28
+ * * @deprecated migrated to `langchain` package.
29
+ *
30
+ * NOTE: agent name is consumed from the message.name field.
31
+ * If you're using an agent built with createReactAgent, name is automatically set.
32
+ * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.
33
+ *
34
+ * @param model - Language model to add agent name formatting to
35
+ * @param agentNameMode - How to expose the agent name to the LLM
36
+ * - "inline": Add the agent name directly into the content field of the AI message using XML-style tags.
37
+ * Example: "How can I help you" -> "<name>agent_name</name><content>How can I help you?</content>".
38
+ */
39
+ declare function withAgentName(model: LanguageModelLike, agentNameMode: AgentNameMode): LanguageModelLike;
40
+ //#endregion
41
+ export { AgentNameMode, withAgentName };
42
+ //# sourceMappingURL=agentName.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentName.d.cts","names":["LanguageModelLike","AIMessage","BaseMessage","BaseMessageLike","AgentNameMode","_addInlineAgentName","T","_removeInlineAgentName","withAgentName"],"sources":["../../src/prebuilt/agentName.d.ts"],"sourcesContent":["import { LanguageModelLike } from \"@langchain/core/language_models/base\";\nimport { AIMessage, BaseMessage, BaseMessageLike } from \"@langchain/core/messages\";\nexport type AgentNameMode = \"inline\";\n/**\n * Attach formatted agent names to the messages passed to and from a language model.\n *\n * This is useful for making a message history with multiple agents more coherent.\n *\n * NOTE: agent name is consumed from the message.name field.\n * If you're using an agent built with createReactAgent, name is automatically set.\n * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.\n *\n * @deprecated migrated to `langchain` package.\n *\n * @param message - Message to add agent name formatting to\n * @returns Message with agent name formatting\n *\n * @internal\n */\nexport declare function _addInlineAgentName<T extends BaseMessageLike>(message: T): T | AIMessage;\n/**\n * Remove explicit name and content XML tags from the AI message content.\n *\n * @deprecated migrated to `langchain` package.\n *\n * Examples:\n *\n * @example\n * ```typescript\n * removeInlineAgentName(new AIMessage({ content: \"<name>assistant</name><content>Hello</content>\", name: \"assistant\" }))\n * // AIMessage with content: \"Hello\"\n *\n * removeInlineAgentName(new AIMessage({ content: [{type: \"text\", text: \"<name>assistant</name><content>Hello</content>\"}], name: \"assistant\" }))\n * // AIMessage with content: [{type: \"text\", text: \"Hello\"}]\n * ```\n *\n * @internal\n */\nexport declare function _removeInlineAgentName<T extends BaseMessage>(message: T): T;\n/**\n * Attach formatted agent names to the messages passed to and from a language model.\n *\n * This is useful for making a message history with multiple agents more coherent.\n *\n * * @deprecated migrated to `langchain` package.\n *\n * NOTE: agent name is consumed from the message.name field.\n * If you're using an agent built with createReactAgent, name is automatically set.\n * If you're building a custom agent, make sure to set the name on the AI message returned by the LLM.\n *\n * @param model - Language model to add agent name formatting to\n * @param agentNameMode - How to expose the agent name to the LLM\n * - \"inline\": Add the agent name directly into the content field of the AI message using XML-style tags.\n * Example: \"How can I help you\" -> \"<name>agent_name</name><content>How can I help you?</content>\".\n */\nexport declare function withAgentName(model: LanguageModelLike, agentNameMode: AgentNameMode): LanguageModelLike;\n"],"mappings":";;;;KAEYI,aAAAA;;AAAZ;AAqDA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAwBI,aAAAA,QAAqBR,kCAAkCI,gBAAgBJ"}