langgraph-ui-components 0.0.3 → 0.0.6

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 (536) hide show
  1. package/README.md +32 -0
  2. package/dist/index.es10.js +31 -16
  3. package/dist/index.es10.js.map +1 -1
  4. package/dist/index.es100.js +37 -5
  5. package/dist/index.es100.js.map +1 -1
  6. package/dist/index.es101.js +160 -67
  7. package/dist/index.es101.js.map +1 -1
  8. package/dist/index.es102.js +196 -30
  9. package/dist/index.es102.js.map +1 -1
  10. package/dist/index.es103.js +14 -5
  11. package/dist/index.es103.js.map +1 -1
  12. package/dist/index.es104.js +32 -2
  13. package/dist/index.es104.js.map +1 -1
  14. package/dist/index.es105.js +33 -10
  15. package/dist/index.es105.js.map +1 -1
  16. package/dist/index.es106.js +3110 -454
  17. package/dist/index.es106.js.map +1 -1
  18. package/dist/index.es107.js +5 -5
  19. package/dist/index.es108.js +2 -2
  20. package/dist/index.es109.js +12 -142
  21. package/dist/index.es109.js.map +1 -1
  22. package/dist/index.es11.js +146 -120
  23. package/dist/index.es11.js.map +1 -1
  24. package/dist/index.es110.js +11 -906
  25. package/dist/index.es110.js.map +1 -1
  26. package/dist/index.es111.js +483 -262
  27. package/dist/index.es111.js.map +1 -1
  28. package/dist/index.es112.js +7 -4
  29. package/dist/index.es112.js.map +1 -1
  30. package/dist/index.es113.js +2 -446
  31. package/dist/index.es113.js.map +1 -1
  32. package/dist/index.es114.js +141 -41
  33. package/dist/index.es114.js.map +1 -1
  34. package/dist/index.es115.js +904 -20
  35. package/dist/index.es115.js.map +1 -1
  36. package/dist/index.es116.js +267 -66
  37. package/dist/index.es116.js.map +1 -1
  38. package/dist/index.es117.js +3 -130
  39. package/dist/index.es117.js.map +1 -1
  40. package/dist/index.es118.js +437 -42
  41. package/dist/index.es118.js.map +1 -1
  42. package/dist/index.es119.js +46 -10
  43. package/dist/index.es119.js.map +1 -1
  44. package/dist/index.es12.js +13 -103
  45. package/dist/index.es12.js.map +1 -1
  46. package/dist/index.es120.js +22 -45
  47. package/dist/index.es120.js.map +1 -1
  48. package/dist/index.es121.js +72 -92
  49. package/dist/index.es121.js.map +1 -1
  50. package/dist/index.es122.js +126 -50
  51. package/dist/index.es122.js.map +1 -1
  52. package/dist/index.es123.js +46 -13
  53. package/dist/index.es123.js.map +1 -1
  54. package/dist/index.es124.js +9 -14
  55. package/dist/index.es124.js.map +1 -1
  56. package/dist/index.es125.js +45 -89
  57. package/dist/index.es125.js.map +1 -1
  58. package/dist/index.es126.js +99 -2
  59. package/dist/index.es126.js.map +1 -1
  60. package/dist/index.es127.js +48 -51
  61. package/dist/index.es127.js.map +1 -1
  62. package/dist/index.es128.js +14 -99
  63. package/dist/index.es128.js.map +1 -1
  64. package/dist/index.es129.js +88 -190
  65. package/dist/index.es129.js.map +1 -1
  66. package/dist/index.es13.js +126 -33
  67. package/dist/index.es13.js.map +1 -1
  68. package/dist/index.es130.js +2 -110
  69. package/dist/index.es130.js.map +1 -1
  70. package/dist/index.es131.js +163 -34
  71. package/dist/index.es131.js.map +1 -1
  72. package/dist/index.es132.js +2 -10
  73. package/dist/index.es132.js.map +1 -1
  74. package/dist/index.es133.js +55 -10
  75. package/dist/index.es133.js.map +1 -1
  76. package/dist/index.es134.js +99 -11
  77. package/dist/index.es134.js.map +1 -1
  78. package/dist/index.es135.js +181 -81
  79. package/dist/index.es135.js.map +1 -1
  80. package/dist/index.es136.js +105 -270
  81. package/dist/index.es136.js.map +1 -1
  82. package/dist/index.es137.js +35 -2
  83. package/dist/index.es137.js.map +1 -1
  84. package/dist/index.es138.js +10 -164
  85. package/dist/index.es138.js.map +1 -1
  86. package/dist/index.es139.js +11 -51
  87. package/dist/index.es139.js.map +1 -1
  88. package/dist/index.es140.js +11 -39
  89. package/dist/index.es140.js.map +1 -1
  90. package/dist/index.es141.js +89 -33
  91. package/dist/index.es141.js.map +1 -1
  92. package/dist/index.es142.js +264 -29
  93. package/dist/index.es142.js.map +1 -1
  94. package/dist/index.es143.js +2 -24
  95. package/dist/index.es143.js.map +1 -1
  96. package/dist/index.es144.js +158 -585
  97. package/dist/index.es144.js.map +1 -1
  98. package/dist/index.es145.js +44 -118
  99. package/dist/index.es145.js.map +1 -1
  100. package/dist/index.es146.js +34 -158
  101. package/dist/index.es146.js.map +1 -1
  102. package/dist/index.es147.js +35 -2
  103. package/dist/index.es147.js.map +1 -1
  104. package/dist/index.es148.js +40 -2
  105. package/dist/index.es148.js.map +1 -1
  106. package/dist/index.es149.js +24 -2
  107. package/dist/index.es149.js.map +1 -1
  108. package/dist/index.es15.js +15 -15
  109. package/dist/index.es150.js +589 -20
  110. package/dist/index.es150.js.map +1 -1
  111. package/dist/index.es151.js +125 -2
  112. package/dist/index.es151.js.map +1 -1
  113. package/dist/index.es152.js +3 -24
  114. package/dist/index.es152.js.map +1 -1
  115. package/dist/index.es153.js +2 -4
  116. package/dist/index.es153.js.map +1 -1
  117. package/dist/index.es154.js +2 -5
  118. package/dist/index.es154.js.map +1 -1
  119. package/dist/index.es155.js +22 -13
  120. package/dist/index.es155.js.map +1 -1
  121. package/dist/index.es156.js +2 -6
  122. package/dist/index.es156.js.map +1 -1
  123. package/dist/index.es157.js +25 -8
  124. package/dist/index.es157.js.map +1 -1
  125. package/dist/index.es158.js +5 -64
  126. package/dist/index.es158.js.map +1 -1
  127. package/dist/index.es159.js +12 -21
  128. package/dist/index.es159.js.map +1 -1
  129. package/dist/index.es16.js +2 -2
  130. package/dist/index.es160.js +5 -5
  131. package/dist/index.es160.js.map +1 -1
  132. package/dist/index.es161.js +8 -349
  133. package/dist/index.es161.js.map +1 -1
  134. package/dist/index.es162.js +1 -1
  135. package/dist/index.es163.js +1 -1
  136. package/dist/index.es164.js +3 -3
  137. package/dist/index.es165.js +63 -6
  138. package/dist/index.es165.js.map +1 -1
  139. package/dist/index.es166.js +21 -102
  140. package/dist/index.es166.js.map +1 -1
  141. package/dist/index.es167.js +5 -118
  142. package/dist/index.es167.js.map +1 -1
  143. package/dist/index.es168.js +330 -117
  144. package/dist/index.es168.js.map +1 -1
  145. package/dist/index.es169.js +6 -114
  146. package/dist/index.es169.js.map +1 -1
  147. package/dist/index.es17.js +2 -2
  148. package/dist/index.es170.js +103 -6
  149. package/dist/index.es170.js.map +1 -1
  150. package/dist/index.es171.js +119 -2
  151. package/dist/index.es171.js.map +1 -1
  152. package/dist/index.es172.js +134 -140
  153. package/dist/index.es172.js.map +1 -1
  154. package/dist/index.es173.js +115 -2
  155. package/dist/index.es173.js.map +1 -1
  156. package/dist/index.es174.js +6 -3737
  157. package/dist/index.es174.js.map +1 -1
  158. package/dist/index.es175.js +2 -342
  159. package/dist/index.es175.js.map +1 -1
  160. package/dist/index.es176.js +138 -105
  161. package/dist/index.es176.js.map +1 -1
  162. package/dist/index.es177.js +2 -133
  163. package/dist/index.es177.js.map +1 -1
  164. package/dist/index.es178.js +3734 -12
  165. package/dist/index.es178.js.map +1 -1
  166. package/dist/index.es179.js +326 -136
  167. package/dist/index.es179.js.map +1 -1
  168. package/dist/index.es180.js +107 -13
  169. package/dist/index.es180.js.map +1 -1
  170. package/dist/index.es181.js +131 -6
  171. package/dist/index.es181.js.map +1 -1
  172. package/dist/index.es182.js +13 -19
  173. package/dist/index.es182.js.map +1 -1
  174. package/dist/index.es183.js +139 -77
  175. package/dist/index.es183.js.map +1 -1
  176. package/dist/index.es184.js +13 -241
  177. package/dist/index.es184.js.map +1 -1
  178. package/dist/index.es185.js +8 -24
  179. package/dist/index.es185.js.map +1 -1
  180. package/dist/index.es186.js +21 -6
  181. package/dist/index.es186.js.map +1 -1
  182. package/dist/index.es187.js +90 -4
  183. package/dist/index.es187.js.map +1 -1
  184. package/dist/index.es188.js +240 -15
  185. package/dist/index.es188.js.map +1 -1
  186. package/dist/index.es189.js +24 -8
  187. package/dist/index.es189.js.map +1 -1
  188. package/dist/index.es19.js +15 -119
  189. package/dist/index.es19.js.map +1 -1
  190. package/dist/index.es190.js +5 -31
  191. package/dist/index.es190.js.map +1 -1
  192. package/dist/index.es191.js +4 -6
  193. package/dist/index.es191.js.map +1 -1
  194. package/dist/index.es192.js +17 -105
  195. package/dist/index.es192.js.map +1 -1
  196. package/dist/index.es193.js +6 -11
  197. package/dist/index.es193.js.map +1 -1
  198. package/dist/index.es194.js +32 -18
  199. package/dist/index.es194.js.map +1 -1
  200. package/dist/index.es195.js +6 -31
  201. package/dist/index.es195.js.map +1 -1
  202. package/dist/index.es196.js +106 -4
  203. package/dist/index.es196.js.map +1 -1
  204. package/dist/index.es197.js +12 -4
  205. package/dist/index.es197.js.map +1 -1
  206. package/dist/index.es198.js +17 -4
  207. package/dist/index.es198.js.map +1 -1
  208. package/dist/index.es199.js +21 -27
  209. package/dist/index.es199.js.map +1 -1
  210. package/dist/index.es2.js +25 -16
  211. package/dist/index.es2.js.map +1 -1
  212. package/dist/index.es20.js +37 -17
  213. package/dist/index.es20.js.map +1 -1
  214. package/dist/index.es200.js +3 -7
  215. package/dist/index.es200.js.map +1 -1
  216. package/dist/index.es201.js +3 -4
  217. package/dist/index.es201.js.map +1 -1
  218. package/dist/index.es202.js +5 -7
  219. package/dist/index.es202.js.map +1 -1
  220. package/dist/index.es203.js +36 -41
  221. package/dist/index.es203.js.map +1 -1
  222. package/dist/index.es204.js +5 -10
  223. package/dist/index.es204.js.map +1 -1
  224. package/dist/index.es205.js +5 -241
  225. package/dist/index.es205.js.map +1 -1
  226. package/dist/index.es206.js +5 -49
  227. package/dist/index.es206.js.map +1 -1
  228. package/dist/index.es207.js +29 -22
  229. package/dist/index.es207.js.map +1 -1
  230. package/dist/index.es208.js +10 -10
  231. package/dist/index.es208.js.map +1 -1
  232. package/dist/index.es209.js +241 -7
  233. package/dist/index.es209.js.map +1 -1
  234. package/dist/index.es21.js +27 -67
  235. package/dist/index.es21.js.map +1 -1
  236. package/dist/index.es210.js +50 -6
  237. package/dist/index.es210.js.map +1 -1
  238. package/dist/index.es211.js +30 -60
  239. package/dist/index.es211.js.map +1 -1
  240. package/dist/index.es212.js +11 -39
  241. package/dist/index.es212.js.map +1 -1
  242. package/dist/index.es213.js +7 -31
  243. package/dist/index.es213.js.map +1 -1
  244. package/dist/index.es214.js +6 -61
  245. package/dist/index.es214.js.map +1 -1
  246. package/dist/index.es215.js +58 -8
  247. package/dist/index.es215.js.map +1 -1
  248. package/dist/index.es216.js +34 -16
  249. package/dist/index.es216.js.map +1 -1
  250. package/dist/index.es217.js +31 -4
  251. package/dist/index.es217.js.map +1 -1
  252. package/dist/index.es218.js +58 -13
  253. package/dist/index.es218.js.map +1 -1
  254. package/dist/index.es219.js +14 -32
  255. package/dist/index.es219.js.map +1 -1
  256. package/dist/index.es22.js +140 -30
  257. package/dist/index.es22.js.map +1 -1
  258. package/dist/index.es220.js +23 -5
  259. package/dist/index.es220.js.map +1 -1
  260. package/dist/index.es221.js +4 -4
  261. package/dist/index.es221.js.map +1 -1
  262. package/dist/index.es222.js +16 -4
  263. package/dist/index.es222.js.map +1 -1
  264. package/dist/index.es223.js +32 -7
  265. package/dist/index.es223.js.map +1 -1
  266. package/dist/index.es224.js +4 -91
  267. package/dist/index.es224.js.map +1 -1
  268. package/dist/index.es225.js +4 -17
  269. package/dist/index.es225.js.map +1 -1
  270. package/dist/index.es226.js +5 -762
  271. package/dist/index.es226.js.map +1 -1
  272. package/dist/index.es227.js +8 -66
  273. package/dist/index.es227.js.map +1 -1
  274. package/dist/index.es228.js +83 -165
  275. package/dist/index.es228.js.map +1 -1
  276. package/dist/index.es229.js +16 -36
  277. package/dist/index.es229.js.map +1 -1
  278. package/dist/index.es23.js +17 -32
  279. package/dist/index.es23.js.map +1 -1
  280. package/dist/index.es230.js +761 -136
  281. package/dist/index.es230.js.map +1 -1
  282. package/dist/index.es231.js +66 -93
  283. package/dist/index.es231.js.map +1 -1
  284. package/dist/index.es232.js +172 -31
  285. package/dist/index.es232.js.map +1 -1
  286. package/dist/index.es233.js +129 -277
  287. package/dist/index.es233.js.map +1 -1
  288. package/dist/index.es234.js +92 -25
  289. package/dist/index.es234.js.map +1 -1
  290. package/dist/index.es235.js +31 -22
  291. package/dist/index.es235.js.map +1 -1
  292. package/dist/index.es236.js +284 -14
  293. package/dist/index.es236.js.map +1 -1
  294. package/dist/index.es237.js +24 -13
  295. package/dist/index.es237.js.map +1 -1
  296. package/dist/index.es238.js +17 -19
  297. package/dist/index.es238.js.map +1 -1
  298. package/dist/index.es239.js +12 -43
  299. package/dist/index.es239.js.map +1 -1
  300. package/dist/index.es24.js +57 -136
  301. package/dist/index.es24.js.map +1 -1
  302. package/dist/index.es240.js +14 -11
  303. package/dist/index.es240.js.map +1 -1
  304. package/dist/index.es241.js +24 -10
  305. package/dist/index.es241.js.map +1 -1
  306. package/dist/index.es242.js +45 -11
  307. package/dist/index.es242.js.map +1 -1
  308. package/dist/index.es243.js +11 -14
  309. package/dist/index.es243.js.map +1 -1
  310. package/dist/index.es244.js +10 -10
  311. package/dist/index.es244.js.map +1 -1
  312. package/dist/index.es245.js +11 -11
  313. package/dist/index.es245.js.map +1 -1
  314. package/dist/index.es246.js +14 -11
  315. package/dist/index.es246.js.map +1 -1
  316. package/dist/index.es247.js +10 -14
  317. package/dist/index.es247.js.map +1 -1
  318. package/dist/index.es248.js +11 -11
  319. package/dist/index.es248.js.map +1 -1
  320. package/dist/index.es249.js +11 -11
  321. package/dist/index.es249.js.map +1 -1
  322. package/dist/index.es25.js +298 -94
  323. package/dist/index.es25.js.map +1 -1
  324. package/dist/index.es250.js +15 -11
  325. package/dist/index.es250.js.map +1 -1
  326. package/dist/index.es251.js +11 -11
  327. package/dist/index.es251.js.map +1 -1
  328. package/dist/index.es252.js +11 -11
  329. package/dist/index.es252.js.map +1 -1
  330. package/dist/index.es253.js +10 -10
  331. package/dist/index.es253.js.map +1 -1
  332. package/dist/index.es254.js +10 -10
  333. package/dist/index.es254.js.map +1 -1
  334. package/dist/index.es255.js +10 -10
  335. package/dist/index.es255.js.map +1 -1
  336. package/dist/index.es256.js +11 -56
  337. package/dist/index.es256.js.map +1 -1
  338. package/dist/index.es257.js +11 -49
  339. package/dist/index.es257.js.map +1 -1
  340. package/dist/index.es258.js +11 -119
  341. package/dist/index.es258.js.map +1 -1
  342. package/dist/index.es259.js +56 -384
  343. package/dist/index.es259.js.map +1 -1
  344. package/dist/index.es26.js +116 -65
  345. package/dist/index.es26.js.map +1 -1
  346. package/dist/index.es260.js +47 -16
  347. package/dist/index.es260.js.map +1 -1
  348. package/dist/index.es261.js +118 -10
  349. package/dist/index.es261.js.map +1 -1
  350. package/dist/index.es262.js +379 -26
  351. package/dist/index.es262.js.map +1 -1
  352. package/dist/index.es263.js +13 -26
  353. package/dist/index.es263.js.map +1 -1
  354. package/dist/index.es264.js +10 -61
  355. package/dist/index.es264.js.map +1 -1
  356. package/dist/index.es265.js +25 -11
  357. package/dist/index.es265.js.map +1 -1
  358. package/dist/index.es266.js +25 -71
  359. package/dist/index.es266.js.map +1 -1
  360. package/dist/index.es267.js +62 -11
  361. package/dist/index.es267.js.map +1 -1
  362. package/dist/index.es268.js +17 -11
  363. package/dist/index.es268.js.map +1 -1
  364. package/dist/index.es269.js +75 -13
  365. package/dist/index.es269.js.map +1 -1
  366. package/dist/index.es27.js +91 -168
  367. package/dist/index.es27.js.map +1 -1
  368. package/dist/index.es270.js +11 -52
  369. package/dist/index.es270.js.map +1 -1
  370. package/dist/index.es271.js +11 -166
  371. package/dist/index.es271.js.map +1 -1
  372. package/dist/index.es272.js +16 -2
  373. package/dist/index.es272.js.map +1 -1
  374. package/dist/index.es273.js +51 -9
  375. package/dist/index.es273.js.map +1 -1
  376. package/dist/index.es274.js +165 -18
  377. package/dist/index.es274.js.map +1 -1
  378. package/dist/index.es275.js +36 -37
  379. package/dist/index.es275.js.map +1 -1
  380. package/dist/index.es276.js +5 -0
  381. package/dist/index.es276.js.map +1 -0
  382. package/dist/index.es277.js +14 -0
  383. package/dist/index.es277.js.map +1 -0
  384. package/dist/index.es278.js +23 -0
  385. package/dist/index.es278.js.map +1 -0
  386. package/dist/index.es279.js +42 -0
  387. package/dist/index.es279.js.map +1 -0
  388. package/dist/index.es28.js +68 -24
  389. package/dist/index.es28.js.map +1 -1
  390. package/dist/index.es29.js +178 -12
  391. package/dist/index.es29.js.map +1 -1
  392. package/dist/index.es30.js +23 -437
  393. package/dist/index.es30.js.map +1 -1
  394. package/dist/index.es31.js +13 -15
  395. package/dist/index.es31.js.map +1 -1
  396. package/dist/index.es32.js +429 -107
  397. package/dist/index.es32.js.map +1 -1
  398. package/dist/index.es33.js +112 -65
  399. package/dist/index.es33.js.map +1 -1
  400. package/dist/index.es34.js +71 -18
  401. package/dist/index.es34.js.map +1 -1
  402. package/dist/index.es35.js +17 -260
  403. package/dist/index.es35.js.map +1 -1
  404. package/dist/index.es36.js +249 -31
  405. package/dist/index.es36.js.map +1 -1
  406. package/dist/index.es37.js +27 -199
  407. package/dist/index.es37.js.map +1 -1
  408. package/dist/index.es38.js +198 -50
  409. package/dist/index.es38.js.map +1 -1
  410. package/dist/index.es39.js +45 -120
  411. package/dist/index.es39.js.map +1 -1
  412. package/dist/index.es40.js +132 -14
  413. package/dist/index.es40.js.map +1 -1
  414. package/dist/index.es41.js +19 -225
  415. package/dist/index.es41.js.map +1 -1
  416. package/dist/index.es42.js +229 -8
  417. package/dist/index.es42.js.map +1 -1
  418. package/dist/index.es43.js +7 -1190
  419. package/dist/index.es43.js.map +1 -1
  420. package/dist/index.es44.js +1191 -6
  421. package/dist/index.es44.js.map +1 -1
  422. package/dist/index.es45.js +6 -146
  423. package/dist/index.es45.js.map +1 -1
  424. package/dist/index.es46.js +147 -7
  425. package/dist/index.es46.js.map +1 -1
  426. package/dist/index.es47.js +15 -92
  427. package/dist/index.es47.js.map +1 -1
  428. package/dist/index.es49.js +5 -35
  429. package/dist/index.es49.js.map +1 -1
  430. package/dist/index.es50.js +7 -71
  431. package/dist/index.es50.js.map +1 -1
  432. package/dist/index.es51.js +89 -33
  433. package/dist/index.es51.js.map +1 -1
  434. package/dist/index.es52.js +3 -305
  435. package/dist/index.es52.js.map +1 -1
  436. package/dist/index.es53.js +36 -9
  437. package/dist/index.es53.js.map +1 -1
  438. package/dist/index.es54.js +64 -83
  439. package/dist/index.es54.js.map +1 -1
  440. package/dist/index.es55.js +36 -6
  441. package/dist/index.es55.js.map +1 -1
  442. package/dist/index.es56.js +303 -12
  443. package/dist/index.es56.js.map +1 -1
  444. package/dist/index.es57.js +9 -143
  445. package/dist/index.es57.js.map +1 -1
  446. package/dist/index.es58.js +83 -292
  447. package/dist/index.es58.js.map +1 -1
  448. package/dist/index.es59.js +6 -64
  449. package/dist/index.es59.js.map +1 -1
  450. package/dist/index.es6.js +21 -5
  451. package/dist/index.es6.js.map +1 -1
  452. package/dist/index.es60.js +12 -210
  453. package/dist/index.es60.js.map +1 -1
  454. package/dist/index.es61.js +138 -29
  455. package/dist/index.es61.js.map +1 -1
  456. package/dist/index.es62.js +299 -8
  457. package/dist/index.es62.js.map +1 -1
  458. package/dist/index.es63.js +65 -11
  459. package/dist/index.es63.js.map +1 -1
  460. package/dist/index.es64.js +201 -175
  461. package/dist/index.es64.js.map +1 -1
  462. package/dist/index.es65.js +33 -23
  463. package/dist/index.es65.js.map +1 -1
  464. package/dist/index.es66.js +8 -1399
  465. package/dist/index.es66.js.map +1 -1
  466. package/dist/index.es67.js +12 -9
  467. package/dist/index.es67.js.map +1 -1
  468. package/dist/index.es68.js +187 -8
  469. package/dist/index.es68.js.map +1 -1
  470. package/dist/index.es69.js +24 -6
  471. package/dist/index.es69.js.map +1 -1
  472. package/dist/index.es70.js +1384 -147
  473. package/dist/index.es70.js.map +1 -1
  474. package/dist/index.es71.js +9 -672
  475. package/dist/index.es71.js.map +1 -1
  476. package/dist/index.es72.js +8 -12
  477. package/dist/index.es72.js.map +1 -1
  478. package/dist/index.es73.js +6 -40
  479. package/dist/index.es73.js.map +1 -1
  480. package/dist/index.es74.js +155 -26
  481. package/dist/index.es74.js.map +1 -1
  482. package/dist/index.es75.js +657 -217
  483. package/dist/index.es75.js.map +1 -1
  484. package/dist/index.es76.js +11 -29
  485. package/dist/index.es76.js.map +1 -1
  486. package/dist/index.es77.js +37 -72
  487. package/dist/index.es77.js.map +1 -1
  488. package/dist/index.es78.js +32 -74
  489. package/dist/index.es78.js.map +1 -1
  490. package/dist/index.es79.js +226 -46
  491. package/dist/index.es79.js.map +1 -1
  492. package/dist/index.es80.js +6 -6
  493. package/dist/index.es80.js.map +1 -1
  494. package/dist/index.es81.js +71 -39
  495. package/dist/index.es81.js.map +1 -1
  496. package/dist/index.es82.js +73 -54
  497. package/dist/index.es82.js.map +1 -1
  498. package/dist/index.es83.js +52 -13
  499. package/dist/index.es83.js.map +1 -1
  500. package/dist/index.es84.js +28 -135
  501. package/dist/index.es84.js.map +1 -1
  502. package/dist/index.es85.js +42 -20
  503. package/dist/index.es85.js.map +1 -1
  504. package/dist/index.es86.js +36 -181
  505. package/dist/index.es86.js.map +1 -1
  506. package/dist/index.es87.js +5 -241
  507. package/dist/index.es87.js.map +1 -1
  508. package/dist/index.es88.js +65 -347
  509. package/dist/index.es88.js.map +1 -1
  510. package/dist/index.es89.js +31 -131
  511. package/dist/index.es89.js.map +1 -1
  512. package/dist/index.es90.js +49 -62
  513. package/dist/index.es90.js.map +1 -1
  514. package/dist/index.es91.js +13 -37
  515. package/dist/index.es91.js.map +1 -1
  516. package/dist/index.es92.js +134 -34
  517. package/dist/index.es92.js.map +1 -1
  518. package/dist/index.es93.js +20 -165
  519. package/dist/index.es93.js.map +1 -1
  520. package/dist/index.es94.js +162 -183
  521. package/dist/index.es94.js.map +1 -1
  522. package/dist/index.es95.js +240 -13
  523. package/dist/index.es95.js.map +1 -1
  524. package/dist/index.es96.js +352 -27
  525. package/dist/index.es96.js.map +1 -1
  526. package/dist/index.es97.js +130 -27
  527. package/dist/index.es97.js.map +1 -1
  528. package/dist/index.es98.js +64 -3151
  529. package/dist/index.es98.js.map +1 -1
  530. package/dist/index.es99.js +34 -34
  531. package/dist/index.es99.js.map +1 -1
  532. package/dist/langgraph-ui-components.css +107 -0
  533. package/dist/styles.css +1 -1
  534. package/package.json +8 -7
  535. package/dist/index.es48.js +0 -7
  536. package/dist/index.es48.js.map +0 -1
@@ -1,234 +1,28 @@
1
- import { isBaseMessage, _isMessageFieldWithRole } from "./index.es35.js";
2
- import { ToolMessage } from "./index.es39.js";
3
- import { addLangChainErrorFields } from "./index.es62.js";
4
- import { _isToolCall } from "./index.es63.js";
5
- import { parsePartialJson } from "./index.es64.js";
6
- import { ChatMessage, ChatMessageChunk } from "./index.es50.js";
7
- import { FunctionMessage, FunctionMessageChunk } from "./index.es51.js";
8
- import { HumanMessage, HumanMessageChunk } from "./index.es36.js";
9
- import { RemoveMessage } from "./index.es40.js";
10
- import { SystemMessage, SystemMessageChunk } from "./index.es38.js";
11
- import { AIMessage, AIMessageChunk } from "./index.es37.js";
12
- const iife = (fn) => fn();
13
- function _coerceToolCall(toolCall) {
14
- if (_isToolCall(toolCall)) return toolCall;
15
- else if (typeof toolCall.id === "string" && toolCall.type === "function" && typeof toolCall.function === "object" && toolCall.function !== null && "arguments" in toolCall.function && typeof toolCall.function.arguments === "string" && "name" in toolCall.function && typeof toolCall.function.name === "string") return {
16
- id: toolCall.id,
17
- args: JSON.parse(toolCall.function.arguments),
18
- name: toolCall.function.name,
19
- type: "tool_call"
20
- };
21
- else return toolCall;
22
- }
23
- function isSerializedConstructor(x) {
24
- return typeof x === "object" && x != null && x.lc === 1 && Array.isArray(x.id) && x.kwargs != null && typeof x.kwargs === "object";
25
- }
26
- function _constructMessageFromParams(params) {
27
- let type;
28
- let rest;
29
- if (isSerializedConstructor(params)) {
30
- const className = params.id.at(-1);
31
- if (className === "HumanMessage" || className === "HumanMessageChunk") type = "user";
32
- else if (className === "AIMessage" || className === "AIMessageChunk") type = "assistant";
33
- else if (className === "SystemMessage" || className === "SystemMessageChunk") type = "system";
34
- else if (className === "FunctionMessage" || className === "FunctionMessageChunk") type = "function";
35
- else if (className === "ToolMessage" || className === "ToolMessageChunk") type = "tool";
36
- else type = "unknown";
37
- rest = params.kwargs;
38
- } else {
39
- const { type: extractedType, ...otherParams } = params;
40
- type = extractedType;
41
- rest = otherParams;
42
- }
43
- if (type === "human" || type === "user") return new HumanMessage(rest);
44
- else if (type === "ai" || type === "assistant") {
45
- const { tool_calls: rawToolCalls, ...other } = rest;
46
- if (!Array.isArray(rawToolCalls)) return new AIMessage(rest);
47
- const tool_calls = rawToolCalls.map(_coerceToolCall);
48
- return new AIMessage({
49
- ...other,
50
- tool_calls
51
- });
52
- } else if (type === "system") return new SystemMessage(rest);
53
- else if (type === "developer") return new SystemMessage({
54
- ...rest,
55
- additional_kwargs: {
56
- ...rest.additional_kwargs,
57
- __openai_role__: "developer"
58
- }
59
- });
60
- else if (type === "tool" && "tool_call_id" in rest) return new ToolMessage({
61
- ...rest,
62
- content: rest.content,
63
- tool_call_id: rest.tool_call_id,
64
- name: rest.name
65
- });
66
- else if (type === "remove" && "id" in rest && typeof rest.id === "string") return new RemoveMessage({
67
- ...rest,
68
- id: rest.id
69
- });
70
- else {
71
- const error = addLangChainErrorFields(/* @__PURE__ */ new Error(`Unable to coerce message from array: only human, AI, system, developer, or tool message coercion is currently supported.
72
-
73
- Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
74
- throw error;
75
- }
76
- }
77
- function coerceMessageLikeToMessage(messageLike) {
78
- if (typeof messageLike === "string") return new HumanMessage(messageLike);
79
- else if (isBaseMessage(messageLike)) return messageLike;
80
- if (Array.isArray(messageLike)) {
81
- const [type, content] = messageLike;
82
- return _constructMessageFromParams({
83
- type,
84
- content
85
- });
86
- } else if (_isMessageFieldWithRole(messageLike)) {
87
- const { role: type, ...rest } = messageLike;
88
- return _constructMessageFromParams({
89
- ...rest,
90
- type
1
+ import { BaseMessage } from "./index.es36.js";
2
+ var RemoveMessage = class extends BaseMessage {
3
+ type = "remove";
4
+ /**
5
+ * The ID of the message to remove.
6
+ */
7
+ id;
8
+ constructor(fields) {
9
+ super({
10
+ ...fields,
11
+ content: []
91
12
  });
92
- } else return _constructMessageFromParams(messageLike);
93
- }
94
- function getBufferString(messages, humanPrefix = "Human", aiPrefix = "AI") {
95
- const string_messages = [];
96
- for (const m of messages) {
97
- let role;
98
- if (m.type === "human") role = humanPrefix;
99
- else if (m.type === "ai") role = aiPrefix;
100
- else if (m.type === "system") role = "System";
101
- else if (m.type === "tool") role = "Tool";
102
- else if (m.type === "generic") role = m.role;
103
- else throw new Error(`Got unsupported message type: ${m.type}`);
104
- const nameStr = m.name ? `${m.name}, ` : "";
105
- const readableContent = m.text;
106
- let message = `${role}: ${nameStr}${readableContent}`;
107
- if (m.type === "ai") {
108
- const aiMessage = m;
109
- if (aiMessage.tool_calls && aiMessage.tool_calls.length > 0) message += JSON.stringify(aiMessage.tool_calls);
110
- else if (aiMessage.additional_kwargs && "function_call" in aiMessage.additional_kwargs) message += JSON.stringify(aiMessage.additional_kwargs.function_call);
111
- }
112
- string_messages.push(message);
13
+ this.id = fields.id;
113
14
  }
114
- return string_messages.join("\n");
115
- }
116
- function mapV1MessageToStoredMessage(message) {
117
- if (message.data !== void 0) return message;
118
- else {
119
- const v1Message = message;
15
+ get _printableFields() {
120
16
  return {
121
- type: v1Message.type,
122
- data: {
123
- content: v1Message.text,
124
- role: v1Message.role,
125
- name: void 0,
126
- tool_call_id: void 0
127
- }
17
+ ...super._printableFields,
18
+ id: this.id
128
19
  };
129
20
  }
130
- }
131
- function mapStoredMessageToChatMessage(message) {
132
- const storedMessage = mapV1MessageToStoredMessage(message);
133
- switch (storedMessage.type) {
134
- case "human":
135
- return new HumanMessage(storedMessage.data);
136
- case "ai":
137
- return new AIMessage(storedMessage.data);
138
- case "system":
139
- return new SystemMessage(storedMessage.data);
140
- case "function":
141
- if (storedMessage.data.name === void 0) throw new Error("Name must be defined for function messages");
142
- return new FunctionMessage(storedMessage.data);
143
- case "tool":
144
- if (storedMessage.data.tool_call_id === void 0) throw new Error("Tool call ID must be defined for tool messages");
145
- return new ToolMessage(storedMessage.data);
146
- case "generic":
147
- if (storedMessage.data.role === void 0) throw new Error("Role must be defined for chat messages");
148
- return new ChatMessage(storedMessage.data);
149
- default:
150
- throw new Error(`Got unexpected type: ${storedMessage.type}`);
21
+ static isInstance(obj) {
22
+ return super.isInstance(obj) && obj.type === "remove";
151
23
  }
152
- }
153
- function mapStoredMessagesToChatMessages(messages) {
154
- return messages.map(mapStoredMessageToChatMessage);
155
- }
156
- function mapChatMessagesToStoredMessages(messages) {
157
- return messages.map((message) => message.toDict());
158
- }
159
- function convertToChunk(message) {
160
- const type = message._getType();
161
- if (type === "human") return new HumanMessageChunk({ ...message });
162
- else if (type === "ai") {
163
- let aiChunkFields = { ...message };
164
- if ("tool_calls" in aiChunkFields) aiChunkFields = {
165
- ...aiChunkFields,
166
- tool_call_chunks: aiChunkFields.tool_calls?.map((tc) => ({
167
- ...tc,
168
- type: "tool_call_chunk",
169
- index: void 0,
170
- args: JSON.stringify(tc.args)
171
- }))
172
- };
173
- return new AIMessageChunk({ ...aiChunkFields });
174
- } else if (type === "system") return new SystemMessageChunk({ ...message });
175
- else if (type === "function") return new FunctionMessageChunk({ ...message });
176
- else if (ChatMessage.isInstance(message)) return new ChatMessageChunk({ ...message });
177
- else throw new Error("Unknown message type.");
178
- }
179
- function collapseToolCallChunks(chunks) {
180
- const groupedToolCallChunks = chunks.reduce((acc, chunk) => {
181
- const matchedChunkIndex = acc.findIndex(([match]) => {
182
- if ("id" in chunk && chunk.id && "index" in chunk && chunk.index !== void 0) return chunk.id === match.id && chunk.index === match.index;
183
- if ("id" in chunk && chunk.id) return chunk.id === match.id;
184
- if ("index" in chunk && chunk.index !== void 0) return chunk.index === match.index;
185
- return false;
186
- });
187
- if (matchedChunkIndex !== -1) acc[matchedChunkIndex].push(chunk);
188
- else acc.push([chunk]);
189
- return acc;
190
- }, []);
191
- const toolCalls = [];
192
- const invalidToolCalls = [];
193
- for (const chunks$1 of groupedToolCallChunks) {
194
- let parsedArgs = null;
195
- const name = chunks$1[0]?.name ?? "";
196
- const joinedArgs = chunks$1.map((c) => c.args || "").join("").trim();
197
- const argsStr = joinedArgs.length ? joinedArgs : "{}";
198
- const id = chunks$1[0]?.id;
199
- try {
200
- parsedArgs = parsePartialJson(argsStr);
201
- if (!id || parsedArgs === null || typeof parsedArgs !== "object" || Array.isArray(parsedArgs)) throw new Error("Malformed tool call chunk args.");
202
- toolCalls.push({
203
- name,
204
- args: parsedArgs,
205
- id,
206
- type: "tool_call"
207
- });
208
- } catch {
209
- invalidToolCalls.push({
210
- name,
211
- args: argsStr,
212
- id,
213
- error: "Malformed args.",
214
- type: "invalid_tool_call"
215
- });
216
- }
217
- }
218
- return {
219
- tool_call_chunks: chunks,
220
- tool_calls: toolCalls,
221
- invalid_tool_calls: invalidToolCalls
222
- };
223
- }
24
+ };
224
25
  export {
225
- coerceMessageLikeToMessage,
226
- collapseToolCallChunks,
227
- convertToChunk,
228
- getBufferString,
229
- iife,
230
- mapChatMessagesToStoredMessages,
231
- mapStoredMessageToChatMessage,
232
- mapStoredMessagesToChatMessages
26
+ RemoveMessage
233
27
  };
234
28
  //# sourceMappingURL=index.es41.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es41.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/utils.js"],"sourcesContent":["import { _isMessageFieldWithRole, isBaseMessage } from \"./base.js\";\nimport { ToolMessage } from \"./tool.js\";\nimport { addLangChainErrorFields } from \"../errors/index.js\";\nimport { _isToolCall } from \"../tools/utils.js\";\nimport { parsePartialJson } from \"../utils/json.js\";\nimport { ChatMessage, ChatMessageChunk } from \"./chat.js\";\nimport { FunctionMessage, FunctionMessageChunk } from \"./function.js\";\nimport { HumanMessage, HumanMessageChunk } from \"./human.js\";\nimport { RemoveMessage } from \"./modifier.js\";\nimport { SystemMessage, SystemMessageChunk } from \"./system.js\";\nimport { AIMessage, AIMessageChunk } from \"./ai.js\";\n\n//#region src/messages/utils.ts\n/**\n* Immediately-invoked function expression.\n*\n* @param fn - The function to execute\n* @returns The result of the function\n*/\nconst iife = (fn) => fn();\nfunction _coerceToolCall(toolCall) {\n\tif (_isToolCall(toolCall)) return toolCall;\n\telse if (typeof toolCall.id === \"string\" && toolCall.type === \"function\" && typeof toolCall.function === \"object\" && toolCall.function !== null && \"arguments\" in toolCall.function && typeof toolCall.function.arguments === \"string\" && \"name\" in toolCall.function && typeof toolCall.function.name === \"string\") return {\n\t\tid: toolCall.id,\n\t\targs: JSON.parse(toolCall.function.arguments),\n\t\tname: toolCall.function.name,\n\t\ttype: \"tool_call\"\n\t};\n\telse return toolCall;\n}\nfunction isSerializedConstructor(x) {\n\treturn typeof x === \"object\" && x != null && x.lc === 1 && Array.isArray(x.id) && x.kwargs != null && typeof x.kwargs === \"object\";\n}\nfunction _constructMessageFromParams(params) {\n\tlet type;\n\tlet rest;\n\tif (isSerializedConstructor(params)) {\n\t\tconst className = params.id.at(-1);\n\t\tif (className === \"HumanMessage\" || className === \"HumanMessageChunk\") type = \"user\";\n\t\telse if (className === \"AIMessage\" || className === \"AIMessageChunk\") type = \"assistant\";\n\t\telse if (className === \"SystemMessage\" || className === \"SystemMessageChunk\") type = \"system\";\n\t\telse if (className === \"FunctionMessage\" || className === \"FunctionMessageChunk\") type = \"function\";\n\t\telse if (className === \"ToolMessage\" || className === \"ToolMessageChunk\") type = \"tool\";\n\t\telse type = \"unknown\";\n\t\trest = params.kwargs;\n\t} else {\n\t\tconst { type: extractedType,...otherParams } = params;\n\t\ttype = extractedType;\n\t\trest = otherParams;\n\t}\n\tif (type === \"human\" || type === \"user\") return new HumanMessage(rest);\n\telse if (type === \"ai\" || type === \"assistant\") {\n\t\tconst { tool_calls: rawToolCalls,...other } = rest;\n\t\tif (!Array.isArray(rawToolCalls)) return new AIMessage(rest);\n\t\tconst tool_calls = rawToolCalls.map(_coerceToolCall);\n\t\treturn new AIMessage({\n\t\t\t...other,\n\t\t\ttool_calls\n\t\t});\n\t} else if (type === \"system\") return new SystemMessage(rest);\n\telse if (type === \"developer\") return new SystemMessage({\n\t\t...rest,\n\t\tadditional_kwargs: {\n\t\t\t...rest.additional_kwargs,\n\t\t\t__openai_role__: \"developer\"\n\t\t}\n\t});\n\telse if (type === \"tool\" && \"tool_call_id\" in rest) return new ToolMessage({\n\t\t...rest,\n\t\tcontent: rest.content,\n\t\ttool_call_id: rest.tool_call_id,\n\t\tname: rest.name\n\t});\n\telse if (type === \"remove\" && \"id\" in rest && typeof rest.id === \"string\") return new RemoveMessage({\n\t\t...rest,\n\t\tid: rest.id\n\t});\n\telse {\n\t\tconst error = addLangChainErrorFields(/* @__PURE__ */ new Error(`Unable to coerce message from array: only human, AI, system, developer, or tool message coercion is currently supported.\\n\\nReceived: ${JSON.stringify(params, null, 2)}`), \"MESSAGE_COERCION_FAILURE\");\n\t\tthrow error;\n\t}\n}\nfunction coerceMessageLikeToMessage(messageLike) {\n\tif (typeof messageLike === \"string\") return new HumanMessage(messageLike);\n\telse if (isBaseMessage(messageLike)) return messageLike;\n\tif (Array.isArray(messageLike)) {\n\t\tconst [type, content] = messageLike;\n\t\treturn _constructMessageFromParams({\n\t\t\ttype,\n\t\t\tcontent\n\t\t});\n\t} else if (_isMessageFieldWithRole(messageLike)) {\n\t\tconst { role: type,...rest } = messageLike;\n\t\treturn _constructMessageFromParams({\n\t\t\t...rest,\n\t\t\ttype\n\t\t});\n\t} else return _constructMessageFromParams(messageLike);\n}\n/**\n* This function is used by memory classes to get a string representation\n* of the chat message history, based on the message content and role.\n*\n* Produces compact output like:\n* ```\n* Human: What's the weather?\n* AI: Let me check...[tool_calls]\n* Tool: 72°F and sunny\n* ```\n*\n* This avoids token inflation from metadata when stringifying message objects directly.\n*/\nfunction getBufferString(messages, humanPrefix = \"Human\", aiPrefix = \"AI\") {\n\tconst string_messages = [];\n\tfor (const m of messages) {\n\t\tlet role;\n\t\tif (m.type === \"human\") role = humanPrefix;\n\t\telse if (m.type === \"ai\") role = aiPrefix;\n\t\telse if (m.type === \"system\") role = \"System\";\n\t\telse if (m.type === \"tool\") role = \"Tool\";\n\t\telse if (m.type === \"generic\") role = m.role;\n\t\telse throw new Error(`Got unsupported message type: ${m.type}`);\n\t\tconst nameStr = m.name ? `${m.name}, ` : \"\";\n\t\tconst readableContent = m.text;\n\t\tlet message = `${role}: ${nameStr}${readableContent}`;\n\t\tif (m.type === \"ai\") {\n\t\t\tconst aiMessage = m;\n\t\t\tif (aiMessage.tool_calls && aiMessage.tool_calls.length > 0) message += JSON.stringify(aiMessage.tool_calls);\n\t\t\telse if (aiMessage.additional_kwargs && \"function_call\" in aiMessage.additional_kwargs) message += JSON.stringify(aiMessage.additional_kwargs.function_call);\n\t\t}\n\t\tstring_messages.push(message);\n\t}\n\treturn string_messages.join(\"\\n\");\n}\n/**\n* Maps messages from an older format (V1) to the current `StoredMessage`\n* format. If the message is already in the `StoredMessage` format, it is\n* returned as is. Otherwise, it transforms the V1 message into a\n* `StoredMessage`. This function is important for maintaining\n* compatibility with older message formats.\n*/\nfunction mapV1MessageToStoredMessage(message) {\n\tif (message.data !== void 0) return message;\n\telse {\n\t\tconst v1Message = message;\n\t\treturn {\n\t\t\ttype: v1Message.type,\n\t\t\tdata: {\n\t\t\t\tcontent: v1Message.text,\n\t\t\t\trole: v1Message.role,\n\t\t\t\tname: void 0,\n\t\t\t\ttool_call_id: void 0\n\t\t\t}\n\t\t};\n\t}\n}\nfunction mapStoredMessageToChatMessage(message) {\n\tconst storedMessage = mapV1MessageToStoredMessage(message);\n\tswitch (storedMessage.type) {\n\t\tcase \"human\": return new HumanMessage(storedMessage.data);\n\t\tcase \"ai\": return new AIMessage(storedMessage.data);\n\t\tcase \"system\": return new SystemMessage(storedMessage.data);\n\t\tcase \"function\":\n\t\t\tif (storedMessage.data.name === void 0) throw new Error(\"Name must be defined for function messages\");\n\t\t\treturn new FunctionMessage(storedMessage.data);\n\t\tcase \"tool\":\n\t\t\tif (storedMessage.data.tool_call_id === void 0) throw new Error(\"Tool call ID must be defined for tool messages\");\n\t\t\treturn new ToolMessage(storedMessage.data);\n\t\tcase \"generic\":\n\t\t\tif (storedMessage.data.role === void 0) throw new Error(\"Role must be defined for chat messages\");\n\t\t\treturn new ChatMessage(storedMessage.data);\n\t\tdefault: throw new Error(`Got unexpected type: ${storedMessage.type}`);\n\t}\n}\n/**\n* Transforms an array of `StoredMessage` instances into an array of\n* `BaseMessage` instances. It uses the `mapV1MessageToStoredMessage`\n* function to ensure all messages are in the `StoredMessage` format, then\n* creates new instances of the appropriate `BaseMessage` subclass based\n* on the type of each message. This function is used to prepare stored\n* messages for use in a chat context.\n*/\nfunction mapStoredMessagesToChatMessages(messages) {\n\treturn messages.map(mapStoredMessageToChatMessage);\n}\n/**\n* Transforms an array of `BaseMessage` instances into an array of\n* `StoredMessage` instances. It does this by calling the `toDict` method\n* on each `BaseMessage`, which returns a `StoredMessage`. This function\n* is used to prepare chat messages for storage.\n*/\nfunction mapChatMessagesToStoredMessages(messages) {\n\treturn messages.map((message) => message.toDict());\n}\nfunction convertToChunk(message) {\n\tconst type = message._getType();\n\tif (type === \"human\") return new HumanMessageChunk({ ...message });\n\telse if (type === \"ai\") {\n\t\tlet aiChunkFields = { ...message };\n\t\tif (\"tool_calls\" in aiChunkFields) aiChunkFields = {\n\t\t\t...aiChunkFields,\n\t\t\ttool_call_chunks: aiChunkFields.tool_calls?.map((tc) => ({\n\t\t\t\t...tc,\n\t\t\t\ttype: \"tool_call_chunk\",\n\t\t\t\tindex: void 0,\n\t\t\t\targs: JSON.stringify(tc.args)\n\t\t\t}))\n\t\t};\n\t\treturn new AIMessageChunk({ ...aiChunkFields });\n\t} else if (type === \"system\") return new SystemMessageChunk({ ...message });\n\telse if (type === \"function\") return new FunctionMessageChunk({ ...message });\n\telse if (ChatMessage.isInstance(message)) return new ChatMessageChunk({ ...message });\n\telse throw new Error(\"Unknown message type.\");\n}\n/**\n* Collapses an array of tool call chunks into complete tool calls.\n*\n* This function groups tool call chunks by their id and/or index, then attempts to\n* parse and validate the accumulated arguments for each group. Successfully parsed\n* tool calls are returned as valid `ToolCall` objects, while malformed ones are\n* returned as `InvalidToolCall` objects.\n*\n* @param chunks - An array of `ToolCallChunk` objects to collapse\n* @returns An object containing:\n* - `tool_call_chunks`: The original input chunks\n* - `tool_calls`: An array of successfully parsed and validated tool calls\n* - `invalid_tool_calls`: An array of tool calls that failed parsing or validation\n*\n* @remarks\n* Chunks are grouped using the following matching logic:\n* - If a chunk has both an id and index, it matches chunks with the same id and index\n* - If a chunk has only an id, it matches chunks with the same id\n* - If a chunk has only an index, it matches chunks with the same index\n*\n* For each group, the function:\n* 1. Concatenates all `args` strings from the chunks\n* 2. Attempts to parse the concatenated string as JSON\n* 3. Validates that the result is a non-null object with a valid id\n* 4. Creates either a `ToolCall` (if valid) or `InvalidToolCall` (if invalid)\n*/\nfunction collapseToolCallChunks(chunks) {\n\tconst groupedToolCallChunks = chunks.reduce((acc, chunk) => {\n\t\tconst matchedChunkIndex = acc.findIndex(([match]) => {\n\t\t\tif (\"id\" in chunk && chunk.id && \"index\" in chunk && chunk.index !== void 0) return chunk.id === match.id && chunk.index === match.index;\n\t\t\tif (\"id\" in chunk && chunk.id) return chunk.id === match.id;\n\t\t\tif (\"index\" in chunk && chunk.index !== void 0) return chunk.index === match.index;\n\t\t\treturn false;\n\t\t});\n\t\tif (matchedChunkIndex !== -1) acc[matchedChunkIndex].push(chunk);\n\t\telse acc.push([chunk]);\n\t\treturn acc;\n\t}, []);\n\tconst toolCalls = [];\n\tconst invalidToolCalls = [];\n\tfor (const chunks$1 of groupedToolCallChunks) {\n\t\tlet parsedArgs = null;\n\t\tconst name = chunks$1[0]?.name ?? \"\";\n\t\tconst joinedArgs = chunks$1.map((c) => c.args || \"\").join(\"\").trim();\n\t\tconst argsStr = joinedArgs.length ? joinedArgs : \"{}\";\n\t\tconst id = chunks$1[0]?.id;\n\t\ttry {\n\t\t\tparsedArgs = parsePartialJson(argsStr);\n\t\t\tif (!id || parsedArgs === null || typeof parsedArgs !== \"object\" || Array.isArray(parsedArgs)) throw new Error(\"Malformed tool call chunk args.\");\n\t\t\ttoolCalls.push({\n\t\t\t\tname,\n\t\t\t\targs: parsedArgs,\n\t\t\t\tid,\n\t\t\t\ttype: \"tool_call\"\n\t\t\t});\n\t\t} catch {\n\t\t\tinvalidToolCalls.push({\n\t\t\t\tname,\n\t\t\t\targs: argsStr,\n\t\t\t\tid,\n\t\t\t\terror: \"Malformed args.\",\n\t\t\t\ttype: \"invalid_tool_call\"\n\t\t\t});\n\t\t}\n\t}\n\treturn {\n\t\ttool_call_chunks: chunks,\n\t\ttool_calls: toolCalls,\n\t\tinvalid_tool_calls: invalidToolCalls\n\t};\n}\n\n//#endregion\nexport { coerceMessageLikeToMessage, collapseToolCallChunks, convertToChunk, getBufferString, iife, mapChatMessagesToStoredMessages, mapStoredMessageToChatMessage, mapStoredMessagesToChatMessages };\n//# sourceMappingURL=utils.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es41.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/modifier.js"],"sourcesContent":["import { BaseMessage } from \"./base.js\";\n\n//#region src/messages/modifier.ts\n/**\n* Message responsible for deleting other messages.\n*/\nvar RemoveMessage = class extends BaseMessage {\n\ttype = \"remove\";\n\t/**\n\t* The ID of the message to remove.\n\t*/\n\tid;\n\tconstructor(fields) {\n\t\tsuper({\n\t\t\t...fields,\n\t\t\tcontent: []\n\t\t});\n\t\tthis.id = fields.id;\n\t}\n\tget _printableFields() {\n\t\treturn {\n\t\t\t...super._printableFields,\n\t\t\tid: this.id\n\t\t};\n\t}\n\tstatic isInstance(obj) {\n\t\treturn super.isInstance(obj) && obj.type === \"remove\";\n\t}\n};\n\n//#endregion\nexport { RemoveMessage };\n//# sourceMappingURL=modifier.js.map"],"names":[],"mappings":";AAMG,IAAC,gBAAgB,cAAc,YAAY;AAAA,EAC7C,OAAO;AAAA;AAAA;AAAA;AAAA,EAIP;AAAA,EACA,YAAY,QAAQ;AACnB,UAAM;AAAA,MACL,GAAG;AAAA,MACH,SAAS,CAAA;AAAA,IACZ,CAAG;AACD,SAAK,KAAK,OAAO;AAAA,EAClB;AAAA,EACA,IAAI,mBAAmB;AACtB,WAAO;AAAA,MACN,GAAG,MAAM;AAAA,MACT,IAAI,KAAK;AAAA,IACZ;AAAA,EACC;AAAA,EACA,OAAO,WAAW,KAAK;AACtB,WAAO,MAAM,WAAW,GAAG,KAAK,IAAI,SAAS;AAAA,EAC9C;AACD;","x_google_ignoreList":[0]}
@@ -1,13 +1,234 @@
1
- var StreamError = class extends Error {
2
- constructor(data) {
3
- super(data.message);
4
- this.name = data.name ?? data.error ?? "StreamError";
1
+ import { isBaseMessage, _isMessageFieldWithRole } from "./index.es36.js";
2
+ import { ToolMessage } from "./index.es40.js";
3
+ import { addLangChainErrorFields } from "./index.es66.js";
4
+ import { _isToolCall } from "./index.es67.js";
5
+ import { parsePartialJson } from "./index.es68.js";
6
+ import { ChatMessage, ChatMessageChunk } from "./index.es54.js";
7
+ import { FunctionMessage, FunctionMessageChunk } from "./index.es55.js";
8
+ import { HumanMessage, HumanMessageChunk } from "./index.es37.js";
9
+ import { RemoveMessage } from "./index.es41.js";
10
+ import { SystemMessage, SystemMessageChunk } from "./index.es39.js";
11
+ import { AIMessage, AIMessageChunk } from "./index.es38.js";
12
+ const iife = (fn) => fn();
13
+ function _coerceToolCall(toolCall) {
14
+ if (_isToolCall(toolCall)) return toolCall;
15
+ else if (typeof toolCall.id === "string" && toolCall.type === "function" && typeof toolCall.function === "object" && toolCall.function !== null && "arguments" in toolCall.function && typeof toolCall.function.arguments === "string" && "name" in toolCall.function && typeof toolCall.function.name === "string") return {
16
+ id: toolCall.id,
17
+ args: JSON.parse(toolCall.function.arguments),
18
+ name: toolCall.function.name,
19
+ type: "tool_call"
20
+ };
21
+ else return toolCall;
22
+ }
23
+ function isSerializedConstructor(x) {
24
+ return typeof x === "object" && x != null && x.lc === 1 && Array.isArray(x.id) && x.kwargs != null && typeof x.kwargs === "object";
25
+ }
26
+ function _constructMessageFromParams(params) {
27
+ let type;
28
+ let rest;
29
+ if (isSerializedConstructor(params)) {
30
+ const className = params.id.at(-1);
31
+ if (className === "HumanMessage" || className === "HumanMessageChunk") type = "user";
32
+ else if (className === "AIMessage" || className === "AIMessageChunk") type = "assistant";
33
+ else if (className === "SystemMessage" || className === "SystemMessageChunk") type = "system";
34
+ else if (className === "FunctionMessage" || className === "FunctionMessageChunk") type = "function";
35
+ else if (className === "ToolMessage" || className === "ToolMessageChunk") type = "tool";
36
+ else type = "unknown";
37
+ rest = params.kwargs;
38
+ } else {
39
+ const { type: extractedType, ...otherParams } = params;
40
+ type = extractedType;
41
+ rest = otherParams;
5
42
  }
6
- static isStructuredError(error) {
7
- return typeof error === "object" && error != null && "message" in error;
43
+ if (type === "human" || type === "user") return new HumanMessage(rest);
44
+ else if (type === "ai" || type === "assistant") {
45
+ const { tool_calls: rawToolCalls, ...other } = rest;
46
+ if (!Array.isArray(rawToolCalls)) return new AIMessage(rest);
47
+ const tool_calls = rawToolCalls.map(_coerceToolCall);
48
+ return new AIMessage({
49
+ ...other,
50
+ tool_calls
51
+ });
52
+ } else if (type === "system") return new SystemMessage(rest);
53
+ else if (type === "developer") return new SystemMessage({
54
+ ...rest,
55
+ additional_kwargs: {
56
+ ...rest.additional_kwargs,
57
+ __openai_role__: "developer"
58
+ }
59
+ });
60
+ else if (type === "tool" && "tool_call_id" in rest) return new ToolMessage({
61
+ ...rest,
62
+ content: rest.content,
63
+ tool_call_id: rest.tool_call_id,
64
+ name: rest.name
65
+ });
66
+ else if (type === "remove" && "id" in rest && typeof rest.id === "string") return new RemoveMessage({
67
+ ...rest,
68
+ id: rest.id
69
+ });
70
+ else {
71
+ const error = addLangChainErrorFields(/* @__PURE__ */ new Error(`Unable to coerce message from array: only human, AI, system, developer, or tool message coercion is currently supported.
72
+
73
+ Received: ${JSON.stringify(params, null, 2)}`), "MESSAGE_COERCION_FAILURE");
74
+ throw error;
8
75
  }
9
- };
76
+ }
77
+ function coerceMessageLikeToMessage(messageLike) {
78
+ if (typeof messageLike === "string") return new HumanMessage(messageLike);
79
+ else if (isBaseMessage(messageLike)) return messageLike;
80
+ if (Array.isArray(messageLike)) {
81
+ const [type, content] = messageLike;
82
+ return _constructMessageFromParams({
83
+ type,
84
+ content
85
+ });
86
+ } else if (_isMessageFieldWithRole(messageLike)) {
87
+ const { role: type, ...rest } = messageLike;
88
+ return _constructMessageFromParams({
89
+ ...rest,
90
+ type
91
+ });
92
+ } else return _constructMessageFromParams(messageLike);
93
+ }
94
+ function getBufferString(messages, humanPrefix = "Human", aiPrefix = "AI") {
95
+ const string_messages = [];
96
+ for (const m of messages) {
97
+ let role;
98
+ if (m.type === "human") role = humanPrefix;
99
+ else if (m.type === "ai") role = aiPrefix;
100
+ else if (m.type === "system") role = "System";
101
+ else if (m.type === "tool") role = "Tool";
102
+ else if (m.type === "generic") role = m.role;
103
+ else throw new Error(`Got unsupported message type: ${m.type}`);
104
+ const nameStr = m.name ? `${m.name}, ` : "";
105
+ const readableContent = m.text;
106
+ let message = `${role}: ${nameStr}${readableContent}`;
107
+ if (m.type === "ai") {
108
+ const aiMessage = m;
109
+ if (aiMessage.tool_calls && aiMessage.tool_calls.length > 0) message += JSON.stringify(aiMessage.tool_calls);
110
+ else if (aiMessage.additional_kwargs && "function_call" in aiMessage.additional_kwargs) message += JSON.stringify(aiMessage.additional_kwargs.function_call);
111
+ }
112
+ string_messages.push(message);
113
+ }
114
+ return string_messages.join("\n");
115
+ }
116
+ function mapV1MessageToStoredMessage(message) {
117
+ if (message.data !== void 0) return message;
118
+ else {
119
+ const v1Message = message;
120
+ return {
121
+ type: v1Message.type,
122
+ data: {
123
+ content: v1Message.text,
124
+ role: v1Message.role,
125
+ name: void 0,
126
+ tool_call_id: void 0
127
+ }
128
+ };
129
+ }
130
+ }
131
+ function mapStoredMessageToChatMessage(message) {
132
+ const storedMessage = mapV1MessageToStoredMessage(message);
133
+ switch (storedMessage.type) {
134
+ case "human":
135
+ return new HumanMessage(storedMessage.data);
136
+ case "ai":
137
+ return new AIMessage(storedMessage.data);
138
+ case "system":
139
+ return new SystemMessage(storedMessage.data);
140
+ case "function":
141
+ if (storedMessage.data.name === void 0) throw new Error("Name must be defined for function messages");
142
+ return new FunctionMessage(storedMessage.data);
143
+ case "tool":
144
+ if (storedMessage.data.tool_call_id === void 0) throw new Error("Tool call ID must be defined for tool messages");
145
+ return new ToolMessage(storedMessage.data);
146
+ case "generic":
147
+ if (storedMessage.data.role === void 0) throw new Error("Role must be defined for chat messages");
148
+ return new ChatMessage(storedMessage.data);
149
+ default:
150
+ throw new Error(`Got unexpected type: ${storedMessage.type}`);
151
+ }
152
+ }
153
+ function mapStoredMessagesToChatMessages(messages) {
154
+ return messages.map(mapStoredMessageToChatMessage);
155
+ }
156
+ function mapChatMessagesToStoredMessages(messages) {
157
+ return messages.map((message) => message.toDict());
158
+ }
159
+ function convertToChunk(message) {
160
+ const type = message._getType();
161
+ if (type === "human") return new HumanMessageChunk({ ...message });
162
+ else if (type === "ai") {
163
+ let aiChunkFields = { ...message };
164
+ if ("tool_calls" in aiChunkFields) aiChunkFields = {
165
+ ...aiChunkFields,
166
+ tool_call_chunks: aiChunkFields.tool_calls?.map((tc) => ({
167
+ ...tc,
168
+ type: "tool_call_chunk",
169
+ index: void 0,
170
+ args: JSON.stringify(tc.args)
171
+ }))
172
+ };
173
+ return new AIMessageChunk({ ...aiChunkFields });
174
+ } else if (type === "system") return new SystemMessageChunk({ ...message });
175
+ else if (type === "function") return new FunctionMessageChunk({ ...message });
176
+ else if (ChatMessage.isInstance(message)) return new ChatMessageChunk({ ...message });
177
+ else throw new Error("Unknown message type.");
178
+ }
179
+ function collapseToolCallChunks(chunks) {
180
+ const groupedToolCallChunks = chunks.reduce((acc, chunk) => {
181
+ const matchedChunkIndex = acc.findIndex(([match]) => {
182
+ if ("id" in chunk && chunk.id && "index" in chunk && chunk.index !== void 0) return chunk.id === match.id && chunk.index === match.index;
183
+ if ("id" in chunk && chunk.id) return chunk.id === match.id;
184
+ if ("index" in chunk && chunk.index !== void 0) return chunk.index === match.index;
185
+ return false;
186
+ });
187
+ if (matchedChunkIndex !== -1) acc[matchedChunkIndex].push(chunk);
188
+ else acc.push([chunk]);
189
+ return acc;
190
+ }, []);
191
+ const toolCalls = [];
192
+ const invalidToolCalls = [];
193
+ for (const chunks$1 of groupedToolCallChunks) {
194
+ let parsedArgs = null;
195
+ const name = chunks$1[0]?.name ?? "";
196
+ const joinedArgs = chunks$1.map((c) => c.args || "").join("").trim();
197
+ const argsStr = joinedArgs.length ? joinedArgs : "{}";
198
+ const id = chunks$1[0]?.id;
199
+ try {
200
+ parsedArgs = parsePartialJson(argsStr);
201
+ if (!id || parsedArgs === null || typeof parsedArgs !== "object" || Array.isArray(parsedArgs)) throw new Error("Malformed tool call chunk args.");
202
+ toolCalls.push({
203
+ name,
204
+ args: parsedArgs,
205
+ id,
206
+ type: "tool_call"
207
+ });
208
+ } catch {
209
+ invalidToolCalls.push({
210
+ name,
211
+ args: argsStr,
212
+ id,
213
+ error: "Malformed args.",
214
+ type: "invalid_tool_call"
215
+ });
216
+ }
217
+ }
218
+ return {
219
+ tool_call_chunks: chunks,
220
+ tool_calls: toolCalls,
221
+ invalid_tool_calls: invalidToolCalls
222
+ };
223
+ }
10
224
  export {
11
- StreamError
225
+ coerceMessageLikeToMessage,
226
+ collapseToolCallChunks,
227
+ convertToChunk,
228
+ getBufferString,
229
+ iife,
230
+ mapChatMessagesToStoredMessages,
231
+ mapStoredMessageToChatMessage,
232
+ mapStoredMessagesToChatMessages
12
233
  };
13
234
  //# sourceMappingURL=index.es42.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es42.js","sources":["../node_modules/.pnpm/@langchain+langgraph-sdk@1.5.3_@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5___react-d_6e8116ad15c37793c6138fe0d58aa04e/node_modules/@langchain/langgraph-sdk/dist/ui/errors.js"],"sourcesContent":["//#region src/ui/errors.ts\nvar StreamError = class extends Error {\n\tconstructor(data) {\n\t\tsuper(data.message);\n\t\tthis.name = data.name ?? data.error ?? \"StreamError\";\n\t}\n\tstatic isStructuredError(error) {\n\t\treturn typeof error === \"object\" && error != null && \"message\" in error;\n\t}\n};\n\n//#endregion\nexport { StreamError };\n//# sourceMappingURL=errors.js.map"],"names":[],"mappings":"AACG,IAAC,cAAc,cAAc,MAAM;AAAA,EACrC,YAAY,MAAM;AACjB,UAAM,KAAK,OAAO;AAClB,SAAK,OAAO,KAAK,QAAQ,KAAK,SAAS;AAAA,EACxC;AAAA,EACA,OAAO,kBAAkB,OAAO;AAC/B,WAAO,OAAO,UAAU,YAAY,SAAS,QAAQ,aAAa;AAAA,EACnE;AACD;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es42.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/utils.js"],"sourcesContent":["import { _isMessageFieldWithRole, isBaseMessage } from \"./base.js\";\nimport { ToolMessage } from \"./tool.js\";\nimport { addLangChainErrorFields } from \"../errors/index.js\";\nimport { _isToolCall } from \"../tools/utils.js\";\nimport { parsePartialJson } from \"../utils/json.js\";\nimport { ChatMessage, ChatMessageChunk } from \"./chat.js\";\nimport { FunctionMessage, FunctionMessageChunk } from \"./function.js\";\nimport { HumanMessage, HumanMessageChunk } from \"./human.js\";\nimport { RemoveMessage } from \"./modifier.js\";\nimport { SystemMessage, SystemMessageChunk } from \"./system.js\";\nimport { AIMessage, AIMessageChunk } from \"./ai.js\";\n\n//#region src/messages/utils.ts\n/**\n* Immediately-invoked function expression.\n*\n* @param fn - The function to execute\n* @returns The result of the function\n*/\nconst iife = (fn) => fn();\nfunction _coerceToolCall(toolCall) {\n\tif (_isToolCall(toolCall)) return toolCall;\n\telse if (typeof toolCall.id === \"string\" && toolCall.type === \"function\" && typeof toolCall.function === \"object\" && toolCall.function !== null && \"arguments\" in toolCall.function && typeof toolCall.function.arguments === \"string\" && \"name\" in toolCall.function && typeof toolCall.function.name === \"string\") return {\n\t\tid: toolCall.id,\n\t\targs: JSON.parse(toolCall.function.arguments),\n\t\tname: toolCall.function.name,\n\t\ttype: \"tool_call\"\n\t};\n\telse return toolCall;\n}\nfunction isSerializedConstructor(x) {\n\treturn typeof x === \"object\" && x != null && x.lc === 1 && Array.isArray(x.id) && x.kwargs != null && typeof x.kwargs === \"object\";\n}\nfunction _constructMessageFromParams(params) {\n\tlet type;\n\tlet rest;\n\tif (isSerializedConstructor(params)) {\n\t\tconst className = params.id.at(-1);\n\t\tif (className === \"HumanMessage\" || className === \"HumanMessageChunk\") type = \"user\";\n\t\telse if (className === \"AIMessage\" || className === \"AIMessageChunk\") type = \"assistant\";\n\t\telse if (className === \"SystemMessage\" || className === \"SystemMessageChunk\") type = \"system\";\n\t\telse if (className === \"FunctionMessage\" || className === \"FunctionMessageChunk\") type = \"function\";\n\t\telse if (className === \"ToolMessage\" || className === \"ToolMessageChunk\") type = \"tool\";\n\t\telse type = \"unknown\";\n\t\trest = params.kwargs;\n\t} else {\n\t\tconst { type: extractedType,...otherParams } = params;\n\t\ttype = extractedType;\n\t\trest = otherParams;\n\t}\n\tif (type === \"human\" || type === \"user\") return new HumanMessage(rest);\n\telse if (type === \"ai\" || type === \"assistant\") {\n\t\tconst { tool_calls: rawToolCalls,...other } = rest;\n\t\tif (!Array.isArray(rawToolCalls)) return new AIMessage(rest);\n\t\tconst tool_calls = rawToolCalls.map(_coerceToolCall);\n\t\treturn new AIMessage({\n\t\t\t...other,\n\t\t\ttool_calls\n\t\t});\n\t} else if (type === \"system\") return new SystemMessage(rest);\n\telse if (type === \"developer\") return new SystemMessage({\n\t\t...rest,\n\t\tadditional_kwargs: {\n\t\t\t...rest.additional_kwargs,\n\t\t\t__openai_role__: \"developer\"\n\t\t}\n\t});\n\telse if (type === \"tool\" && \"tool_call_id\" in rest) return new ToolMessage({\n\t\t...rest,\n\t\tcontent: rest.content,\n\t\ttool_call_id: rest.tool_call_id,\n\t\tname: rest.name\n\t});\n\telse if (type === \"remove\" && \"id\" in rest && typeof rest.id === \"string\") return new RemoveMessage({\n\t\t...rest,\n\t\tid: rest.id\n\t});\n\telse {\n\t\tconst error = addLangChainErrorFields(/* @__PURE__ */ new Error(`Unable to coerce message from array: only human, AI, system, developer, or tool message coercion is currently supported.\\n\\nReceived: ${JSON.stringify(params, null, 2)}`), \"MESSAGE_COERCION_FAILURE\");\n\t\tthrow error;\n\t}\n}\nfunction coerceMessageLikeToMessage(messageLike) {\n\tif (typeof messageLike === \"string\") return new HumanMessage(messageLike);\n\telse if (isBaseMessage(messageLike)) return messageLike;\n\tif (Array.isArray(messageLike)) {\n\t\tconst [type, content] = messageLike;\n\t\treturn _constructMessageFromParams({\n\t\t\ttype,\n\t\t\tcontent\n\t\t});\n\t} else if (_isMessageFieldWithRole(messageLike)) {\n\t\tconst { role: type,...rest } = messageLike;\n\t\treturn _constructMessageFromParams({\n\t\t\t...rest,\n\t\t\ttype\n\t\t});\n\t} else return _constructMessageFromParams(messageLike);\n}\n/**\n* This function is used by memory classes to get a string representation\n* of the chat message history, based on the message content and role.\n*\n* Produces compact output like:\n* ```\n* Human: What's the weather?\n* AI: Let me check...[tool_calls]\n* Tool: 72°F and sunny\n* ```\n*\n* This avoids token inflation from metadata when stringifying message objects directly.\n*/\nfunction getBufferString(messages, humanPrefix = \"Human\", aiPrefix = \"AI\") {\n\tconst string_messages = [];\n\tfor (const m of messages) {\n\t\tlet role;\n\t\tif (m.type === \"human\") role = humanPrefix;\n\t\telse if (m.type === \"ai\") role = aiPrefix;\n\t\telse if (m.type === \"system\") role = \"System\";\n\t\telse if (m.type === \"tool\") role = \"Tool\";\n\t\telse if (m.type === \"generic\") role = m.role;\n\t\telse throw new Error(`Got unsupported message type: ${m.type}`);\n\t\tconst nameStr = m.name ? `${m.name}, ` : \"\";\n\t\tconst readableContent = m.text;\n\t\tlet message = `${role}: ${nameStr}${readableContent}`;\n\t\tif (m.type === \"ai\") {\n\t\t\tconst aiMessage = m;\n\t\t\tif (aiMessage.tool_calls && aiMessage.tool_calls.length > 0) message += JSON.stringify(aiMessage.tool_calls);\n\t\t\telse if (aiMessage.additional_kwargs && \"function_call\" in aiMessage.additional_kwargs) message += JSON.stringify(aiMessage.additional_kwargs.function_call);\n\t\t}\n\t\tstring_messages.push(message);\n\t}\n\treturn string_messages.join(\"\\n\");\n}\n/**\n* Maps messages from an older format (V1) to the current `StoredMessage`\n* format. If the message is already in the `StoredMessage` format, it is\n* returned as is. Otherwise, it transforms the V1 message into a\n* `StoredMessage`. This function is important for maintaining\n* compatibility with older message formats.\n*/\nfunction mapV1MessageToStoredMessage(message) {\n\tif (message.data !== void 0) return message;\n\telse {\n\t\tconst v1Message = message;\n\t\treturn {\n\t\t\ttype: v1Message.type,\n\t\t\tdata: {\n\t\t\t\tcontent: v1Message.text,\n\t\t\t\trole: v1Message.role,\n\t\t\t\tname: void 0,\n\t\t\t\ttool_call_id: void 0\n\t\t\t}\n\t\t};\n\t}\n}\nfunction mapStoredMessageToChatMessage(message) {\n\tconst storedMessage = mapV1MessageToStoredMessage(message);\n\tswitch (storedMessage.type) {\n\t\tcase \"human\": return new HumanMessage(storedMessage.data);\n\t\tcase \"ai\": return new AIMessage(storedMessage.data);\n\t\tcase \"system\": return new SystemMessage(storedMessage.data);\n\t\tcase \"function\":\n\t\t\tif (storedMessage.data.name === void 0) throw new Error(\"Name must be defined for function messages\");\n\t\t\treturn new FunctionMessage(storedMessage.data);\n\t\tcase \"tool\":\n\t\t\tif (storedMessage.data.tool_call_id === void 0) throw new Error(\"Tool call ID must be defined for tool messages\");\n\t\t\treturn new ToolMessage(storedMessage.data);\n\t\tcase \"generic\":\n\t\t\tif (storedMessage.data.role === void 0) throw new Error(\"Role must be defined for chat messages\");\n\t\t\treturn new ChatMessage(storedMessage.data);\n\t\tdefault: throw new Error(`Got unexpected type: ${storedMessage.type}`);\n\t}\n}\n/**\n* Transforms an array of `StoredMessage` instances into an array of\n* `BaseMessage` instances. It uses the `mapV1MessageToStoredMessage`\n* function to ensure all messages are in the `StoredMessage` format, then\n* creates new instances of the appropriate `BaseMessage` subclass based\n* on the type of each message. This function is used to prepare stored\n* messages for use in a chat context.\n*/\nfunction mapStoredMessagesToChatMessages(messages) {\n\treturn messages.map(mapStoredMessageToChatMessage);\n}\n/**\n* Transforms an array of `BaseMessage` instances into an array of\n* `StoredMessage` instances. It does this by calling the `toDict` method\n* on each `BaseMessage`, which returns a `StoredMessage`. This function\n* is used to prepare chat messages for storage.\n*/\nfunction mapChatMessagesToStoredMessages(messages) {\n\treturn messages.map((message) => message.toDict());\n}\nfunction convertToChunk(message) {\n\tconst type = message._getType();\n\tif (type === \"human\") return new HumanMessageChunk({ ...message });\n\telse if (type === \"ai\") {\n\t\tlet aiChunkFields = { ...message };\n\t\tif (\"tool_calls\" in aiChunkFields) aiChunkFields = {\n\t\t\t...aiChunkFields,\n\t\t\ttool_call_chunks: aiChunkFields.tool_calls?.map((tc) => ({\n\t\t\t\t...tc,\n\t\t\t\ttype: \"tool_call_chunk\",\n\t\t\t\tindex: void 0,\n\t\t\t\targs: JSON.stringify(tc.args)\n\t\t\t}))\n\t\t};\n\t\treturn new AIMessageChunk({ ...aiChunkFields });\n\t} else if (type === \"system\") return new SystemMessageChunk({ ...message });\n\telse if (type === \"function\") return new FunctionMessageChunk({ ...message });\n\telse if (ChatMessage.isInstance(message)) return new ChatMessageChunk({ ...message });\n\telse throw new Error(\"Unknown message type.\");\n}\n/**\n* Collapses an array of tool call chunks into complete tool calls.\n*\n* This function groups tool call chunks by their id and/or index, then attempts to\n* parse and validate the accumulated arguments for each group. Successfully parsed\n* tool calls are returned as valid `ToolCall` objects, while malformed ones are\n* returned as `InvalidToolCall` objects.\n*\n* @param chunks - An array of `ToolCallChunk` objects to collapse\n* @returns An object containing:\n* - `tool_call_chunks`: The original input chunks\n* - `tool_calls`: An array of successfully parsed and validated tool calls\n* - `invalid_tool_calls`: An array of tool calls that failed parsing or validation\n*\n* @remarks\n* Chunks are grouped using the following matching logic:\n* - If a chunk has both an id and index, it matches chunks with the same id and index\n* - If a chunk has only an id, it matches chunks with the same id\n* - If a chunk has only an index, it matches chunks with the same index\n*\n* For each group, the function:\n* 1. Concatenates all `args` strings from the chunks\n* 2. Attempts to parse the concatenated string as JSON\n* 3. Validates that the result is a non-null object with a valid id\n* 4. Creates either a `ToolCall` (if valid) or `InvalidToolCall` (if invalid)\n*/\nfunction collapseToolCallChunks(chunks) {\n\tconst groupedToolCallChunks = chunks.reduce((acc, chunk) => {\n\t\tconst matchedChunkIndex = acc.findIndex(([match]) => {\n\t\t\tif (\"id\" in chunk && chunk.id && \"index\" in chunk && chunk.index !== void 0) return chunk.id === match.id && chunk.index === match.index;\n\t\t\tif (\"id\" in chunk && chunk.id) return chunk.id === match.id;\n\t\t\tif (\"index\" in chunk && chunk.index !== void 0) return chunk.index === match.index;\n\t\t\treturn false;\n\t\t});\n\t\tif (matchedChunkIndex !== -1) acc[matchedChunkIndex].push(chunk);\n\t\telse acc.push([chunk]);\n\t\treturn acc;\n\t}, []);\n\tconst toolCalls = [];\n\tconst invalidToolCalls = [];\n\tfor (const chunks$1 of groupedToolCallChunks) {\n\t\tlet parsedArgs = null;\n\t\tconst name = chunks$1[0]?.name ?? \"\";\n\t\tconst joinedArgs = chunks$1.map((c) => c.args || \"\").join(\"\").trim();\n\t\tconst argsStr = joinedArgs.length ? joinedArgs : \"{}\";\n\t\tconst id = chunks$1[0]?.id;\n\t\ttry {\n\t\t\tparsedArgs = parsePartialJson(argsStr);\n\t\t\tif (!id || parsedArgs === null || typeof parsedArgs !== \"object\" || Array.isArray(parsedArgs)) throw new Error(\"Malformed tool call chunk args.\");\n\t\t\ttoolCalls.push({\n\t\t\t\tname,\n\t\t\t\targs: parsedArgs,\n\t\t\t\tid,\n\t\t\t\ttype: \"tool_call\"\n\t\t\t});\n\t\t} catch {\n\t\t\tinvalidToolCalls.push({\n\t\t\t\tname,\n\t\t\t\targs: argsStr,\n\t\t\t\tid,\n\t\t\t\terror: \"Malformed args.\",\n\t\t\t\ttype: \"invalid_tool_call\"\n\t\t\t});\n\t\t}\n\t}\n\treturn {\n\t\ttool_call_chunks: chunks,\n\t\ttool_calls: toolCalls,\n\t\tinvalid_tool_calls: invalidToolCalls\n\t};\n}\n\n//#endregion\nexport { coerceMessageLikeToMessage, collapseToolCallChunks, convertToChunk, getBufferString, iife, mapChatMessagesToStoredMessages, mapStoredMessageToChatMessage, mapStoredMessagesToChatMessages };\n//# sourceMappingURL=utils.js.map"],"names":[],"mappings":";;;;;;;;;;;AAmBK,MAAC,OAAO,CAAC,OAAO,GAAE;AACvB,SAAS,gBAAgB,UAAU;AAClC,MAAI,YAAY,QAAQ,EAAG,QAAO;AAAA,WACzB,OAAO,SAAS,OAAO,YAAY,SAAS,SAAS,cAAc,OAAO,SAAS,aAAa,YAAY,SAAS,aAAa,QAAQ,eAAe,SAAS,YAAY,OAAO,SAAS,SAAS,cAAc,YAAY,UAAU,SAAS,YAAY,OAAO,SAAS,SAAS,SAAS,SAAU,QAAO;AAAA,IAC3T,IAAI,SAAS;AAAA,IACb,MAAM,KAAK,MAAM,SAAS,SAAS,SAAS;AAAA,IAC5C,MAAM,SAAS,SAAS;AAAA,IACxB,MAAM;AAAA,EACR;AAAA,MACM,QAAO;AACb;AACA,SAAS,wBAAwB,GAAG;AACnC,SAAO,OAAO,MAAM,YAAY,KAAK,QAAQ,EAAE,OAAO,KAAK,MAAM,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,QAAQ,OAAO,EAAE,WAAW;AAC3H;AACA,SAAS,4BAA4B,QAAQ;AAC5C,MAAI;AACJ,MAAI;AACJ,MAAI,wBAAwB,MAAM,GAAG;AACpC,UAAM,YAAY,OAAO,GAAG,GAAG,EAAE;AACjC,QAAI,cAAc,kBAAkB,cAAc,oBAAqB,QAAO;AAAA,aACrE,cAAc,eAAe,cAAc,iBAAkB,QAAO;AAAA,aACpE,cAAc,mBAAmB,cAAc,qBAAsB,QAAO;AAAA,aAC5E,cAAc,qBAAqB,cAAc,uBAAwB,QAAO;AAAA,aAChF,cAAc,iBAAiB,cAAc,mBAAoB,QAAO;AAAA,QAC5E,QAAO;AACZ,WAAO,OAAO;AAAA,EACf,OAAO;AACN,UAAM,EAAE,MAAM,eAAc,GAAG,YAAW,IAAK;AAC/C,WAAO;AACP,WAAO;AAAA,EACR;AACA,MAAI,SAAS,WAAW,SAAS,OAAQ,QAAO,IAAI,aAAa,IAAI;AAAA,WAC5D,SAAS,QAAQ,SAAS,aAAa;AAC/C,UAAM,EAAE,YAAY,cAAa,GAAG,MAAK,IAAK;AAC9C,QAAI,CAAC,MAAM,QAAQ,YAAY,EAAG,QAAO,IAAI,UAAU,IAAI;AAC3D,UAAM,aAAa,aAAa,IAAI,eAAe;AACnD,WAAO,IAAI,UAAU;AAAA,MACpB,GAAG;AAAA,MACH;AAAA,IACH,CAAG;AAAA,EACF,WAAW,SAAS,SAAU,QAAO,IAAI,cAAc,IAAI;AAAA,WAClD,SAAS,YAAa,QAAO,IAAI,cAAc;AAAA,IACvD,GAAG;AAAA,IACH,mBAAmB;AAAA,MAClB,GAAG,KAAK;AAAA,MACR,iBAAiB;AAAA,IACpB;AAAA,EACA,CAAE;AAAA,WACQ,SAAS,UAAU,kBAAkB,KAAM,QAAO,IAAI,YAAY;AAAA,IAC1E,GAAG;AAAA,IACH,SAAS,KAAK;AAAA,IACd,cAAc,KAAK;AAAA,IACnB,MAAM,KAAK;AAAA,EACb,CAAE;AAAA,WACQ,SAAS,YAAY,QAAQ,QAAQ,OAAO,KAAK,OAAO,SAAU,QAAO,IAAI,cAAc;AAAA,IACnG,GAAG;AAAA,IACH,IAAI,KAAK;AAAA,EACX,CAAE;AAAA,OACI;AACJ,UAAM,QAAQ,wBAAwC,oBAAI,MAAM;AAAA;AAAA,YAAyI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC,EAAE,GAAG,0BAA0B;AACvQ,UAAM;AAAA,EACP;AACD;AACA,SAAS,2BAA2B,aAAa;AAChD,MAAI,OAAO,gBAAgB,SAAU,QAAO,IAAI,aAAa,WAAW;AAAA,WAC/D,cAAc,WAAW,EAAG,QAAO;AAC5C,MAAI,MAAM,QAAQ,WAAW,GAAG;AAC/B,UAAM,CAAC,MAAM,OAAO,IAAI;AACxB,WAAO,4BAA4B;AAAA,MAClC;AAAA,MACA;AAAA,IACH,CAAG;AAAA,EACF,WAAW,wBAAwB,WAAW,GAAG;AAChD,UAAM,EAAE,MAAM,MAAK,GAAG,KAAI,IAAK;AAC/B,WAAO,4BAA4B;AAAA,MAClC,GAAG;AAAA,MACH;AAAA,IACH,CAAG;AAAA,EACF,MAAO,QAAO,4BAA4B,WAAW;AACtD;AAcA,SAAS,gBAAgB,UAAU,cAAc,SAAS,WAAW,MAAM;AAC1E,QAAM,kBAAkB,CAAA;AACxB,aAAW,KAAK,UAAU;AACzB,QAAI;AACJ,QAAI,EAAE,SAAS,QAAS,QAAO;AAAA,aACtB,EAAE,SAAS,KAAM,QAAO;AAAA,aACxB,EAAE,SAAS,SAAU,QAAO;AAAA,aAC5B,EAAE,SAAS,OAAQ,QAAO;AAAA,aAC1B,EAAE,SAAS,UAAW,QAAO,EAAE;AAAA,QACnC,OAAM,IAAI,MAAM,iCAAiC,EAAE,IAAI,EAAE;AAC9D,UAAM,UAAU,EAAE,OAAO,GAAG,EAAE,IAAI,OAAO;AACzC,UAAM,kBAAkB,EAAE;AAC1B,QAAI,UAAU,GAAG,IAAI,KAAK,OAAO,GAAG,eAAe;AACnD,QAAI,EAAE,SAAS,MAAM;AACpB,YAAM,YAAY;AAClB,UAAI,UAAU,cAAc,UAAU,WAAW,SAAS,EAAG,YAAW,KAAK,UAAU,UAAU,UAAU;AAAA,eAClG,UAAU,qBAAqB,mBAAmB,UAAU,kBAAmB,YAAW,KAAK,UAAU,UAAU,kBAAkB,aAAa;AAAA,IAC5J;AACA,oBAAgB,KAAK,OAAO;AAAA,EAC7B;AACA,SAAO,gBAAgB,KAAK,IAAI;AACjC;AAQA,SAAS,4BAA4B,SAAS;AAC7C,MAAI,QAAQ,SAAS,OAAQ,QAAO;AAAA,OAC/B;AACJ,UAAM,YAAY;AAClB,WAAO;AAAA,MACN,MAAM,UAAU;AAAA,MAChB,MAAM;AAAA,QACL,SAAS,UAAU;AAAA,QACnB,MAAM,UAAU;AAAA,QAChB,MAAM;AAAA,QACN,cAAc;AAAA,MAClB;AAAA,IACA;AAAA,EACC;AACD;AACA,SAAS,8BAA8B,SAAS;AAC/C,QAAM,gBAAgB,4BAA4B,OAAO;AACzD,UAAQ,cAAc,MAAI;AAAA,IACzB,KAAK;AAAS,aAAO,IAAI,aAAa,cAAc,IAAI;AAAA,IACxD,KAAK;AAAM,aAAO,IAAI,UAAU,cAAc,IAAI;AAAA,IAClD,KAAK;AAAU,aAAO,IAAI,cAAc,cAAc,IAAI;AAAA,IAC1D,KAAK;AACJ,UAAI,cAAc,KAAK,SAAS,OAAQ,OAAM,IAAI,MAAM,4CAA4C;AACpG,aAAO,IAAI,gBAAgB,cAAc,IAAI;AAAA,IAC9C,KAAK;AACJ,UAAI,cAAc,KAAK,iBAAiB,OAAQ,OAAM,IAAI,MAAM,gDAAgD;AAChH,aAAO,IAAI,YAAY,cAAc,IAAI;AAAA,IAC1C,KAAK;AACJ,UAAI,cAAc,KAAK,SAAS,OAAQ,OAAM,IAAI,MAAM,wCAAwC;AAChG,aAAO,IAAI,YAAY,cAAc,IAAI;AAAA,IAC1C;AAAS,YAAM,IAAI,MAAM,wBAAwB,cAAc,IAAI,EAAE;AAAA,EACvE;AACA;AASA,SAAS,gCAAgC,UAAU;AAClD,SAAO,SAAS,IAAI,6BAA6B;AAClD;AAOA,SAAS,gCAAgC,UAAU;AAClD,SAAO,SAAS,IAAI,CAAC,YAAY,QAAQ,OAAM,CAAE;AAClD;AACA,SAAS,eAAe,SAAS;AAChC,QAAM,OAAO,QAAQ,SAAQ;AAC7B,MAAI,SAAS,QAAS,QAAO,IAAI,kBAAkB,EAAE,GAAG,SAAS;AAAA,WACxD,SAAS,MAAM;AACvB,QAAI,gBAAgB,EAAE,GAAG,QAAO;AAChC,QAAI,gBAAgB,cAAe,iBAAgB;AAAA,MAClD,GAAG;AAAA,MACH,kBAAkB,cAAc,YAAY,IAAI,CAAC,QAAQ;AAAA,QACxD,GAAG;AAAA,QACH,MAAM;AAAA,QACN,OAAO;AAAA,QACP,MAAM,KAAK,UAAU,GAAG,IAAI;AAAA,MAChC,EAAK;AAAA,IACL;AACE,WAAO,IAAI,eAAe,EAAE,GAAG,eAAe;AAAA,EAC/C,WAAW,SAAS,SAAU,QAAO,IAAI,mBAAmB,EAAE,GAAG,SAAS;AAAA,WACjE,SAAS,WAAY,QAAO,IAAI,qBAAqB,EAAE,GAAG,SAAS;AAAA,WACnE,YAAY,WAAW,OAAO,EAAG,QAAO,IAAI,iBAAiB,EAAE,GAAG,SAAS;AAAA,MAC/E,OAAM,IAAI,MAAM,uBAAuB;AAC7C;AA2BA,SAAS,uBAAuB,QAAQ;AACvC,QAAM,wBAAwB,OAAO,OAAO,CAAC,KAAK,UAAU;AAC3D,UAAM,oBAAoB,IAAI,UAAU,CAAC,CAAC,KAAK,MAAM;AACpD,UAAI,QAAQ,SAAS,MAAM,MAAM,WAAW,SAAS,MAAM,UAAU,OAAQ,QAAO,MAAM,OAAO,MAAM,MAAM,MAAM,UAAU,MAAM;AACnI,UAAI,QAAQ,SAAS,MAAM,GAAI,QAAO,MAAM,OAAO,MAAM;AACzD,UAAI,WAAW,SAAS,MAAM,UAAU,OAAQ,QAAO,MAAM,UAAU,MAAM;AAC7E,aAAO;AAAA,IACR,CAAC;AACD,QAAI,sBAAsB,GAAI,KAAI,iBAAiB,EAAE,KAAK,KAAK;AAAA,QAC1D,KAAI,KAAK,CAAC,KAAK,CAAC;AACrB,WAAO;AAAA,EACR,GAAG,CAAA,CAAE;AACL,QAAM,YAAY,CAAA;AAClB,QAAM,mBAAmB,CAAA;AACzB,aAAW,YAAY,uBAAuB;AAC7C,QAAI,aAAa;AACjB,UAAM,OAAO,SAAS,CAAC,GAAG,QAAQ;AAClC,UAAM,aAAa,SAAS,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,KAAI;AAClE,UAAM,UAAU,WAAW,SAAS,aAAa;AACjD,UAAM,KAAK,SAAS,CAAC,GAAG;AACxB,QAAI;AACH,mBAAa,iBAAiB,OAAO;AACrC,UAAI,CAAC,MAAM,eAAe,QAAQ,OAAO,eAAe,YAAY,MAAM,QAAQ,UAAU,EAAG,OAAM,IAAI,MAAM,iCAAiC;AAChJ,gBAAU,KAAK;AAAA,QACd;AAAA,QACA,MAAM;AAAA,QACN;AAAA,QACA,MAAM;AAAA,MACV,CAAI;AAAA,IACF,QAAQ;AACP,uBAAiB,KAAK;AAAA,QACrB;AAAA,QACA,MAAM;AAAA,QACN;AAAA,QACA,OAAO;AAAA,QACP,MAAM;AAAA,MACV,CAAI;AAAA,IACF;AAAA,EACD;AACA,SAAO;AAAA,IACN,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,oBAAoB;AAAA,EACtB;AACA;","x_google_ignoreList":[0]}