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,122 +1,444 @@
1
- const CR = "\r".charCodeAt(0);
2
- const LF = "\n".charCodeAt(0);
3
- const NULL = "\0".charCodeAt(0);
4
- const COLON = ":".charCodeAt(0);
5
- const SPACE = " ".charCodeAt(0);
6
- const TRAILING_NEWLINE = [CR, LF];
7
- function BytesLineDecoder() {
8
- let buffer = [];
9
- let trailingCr = false;
10
- return new TransformStream({
11
- start() {
12
- buffer = [];
13
- trailingCr = false;
14
- },
15
- transform(chunk, controller) {
16
- let text = chunk;
17
- if (trailingCr) {
18
- text = joinArrays([[CR], text]);
19
- trailingCr = false;
1
+ import { Client, getClientConfigHash } from "./index.es44.js";
2
+ import { findLast, unique } from "./index.es45.js";
3
+ import { StreamError } from "./index.es43.js";
4
+ import { getBranchContext } from "./index.es46.js";
5
+ import { MessageTupleManager } from "./index.es28.js";
6
+ import { StreamManager } from "./index.es29.js";
7
+ import { getToolCallsWithResults } from "./index.es30.js";
8
+ import { useControllableThreadId } from "./index.es31.js";
9
+ import { useRef, useMemo, useState, useSyncExternalStore, useCallback, useEffect } from "react";
10
+ function getFetchHistoryKey(client, threadId, limit) {
11
+ return [
12
+ getClientConfigHash(client),
13
+ threadId,
14
+ limit
15
+ ].join(":");
16
+ }
17
+ function fetchHistory(client, threadId, options) {
18
+ if (options?.limit === false) return client.threads.getState(threadId).then((state) => {
19
+ if (state.checkpoint == null) return [];
20
+ return [state];
21
+ });
22
+ const limit = typeof options?.limit === "number" ? options.limit : 10;
23
+ return client.threads.getHistory(threadId, { limit });
24
+ }
25
+ function useThreadHistory(client, threadId, limit, options) {
26
+ const key = getFetchHistoryKey(client, threadId, limit);
27
+ const [state, setState] = useState(() => ({
28
+ key: void 0,
29
+ data: void 0,
30
+ error: void 0,
31
+ isLoading: threadId != null
32
+ }));
33
+ const clientRef = useRef(client);
34
+ clientRef.current = client;
35
+ const onErrorRef = useRef(options?.onError);
36
+ onErrorRef.current = options?.onError;
37
+ const fetcher = useCallback((threadId$1, limit$1) => {
38
+ if (options.passthrough) return Promise.resolve([]);
39
+ const client$1 = clientRef.current;
40
+ const key$1 = getFetchHistoryKey(client$1, threadId$1, limit$1);
41
+ if (threadId$1 != null) {
42
+ setState((state$1) => {
43
+ if (state$1.key === key$1) return {
44
+ ...state$1,
45
+ isLoading: true
46
+ };
47
+ return {
48
+ key: key$1,
49
+ data: void 0,
50
+ error: void 0,
51
+ isLoading: true
52
+ };
53
+ });
54
+ return fetchHistory(client$1, threadId$1, { limit: limit$1 }).then((data) => {
55
+ setState((state$1) => {
56
+ if (state$1.key !== key$1) return state$1;
57
+ return {
58
+ key: key$1,
59
+ data,
60
+ error: void 0,
61
+ isLoading: false
62
+ };
63
+ });
64
+ return data;
65
+ }, (error) => {
66
+ setState((state$1) => {
67
+ if (state$1.key !== key$1) return state$1;
68
+ return {
69
+ key: key$1,
70
+ data: state$1.data,
71
+ error,
72
+ isLoading: false
73
+ };
74
+ });
75
+ onErrorRef.current?.(error);
76
+ return Promise.reject(error);
77
+ });
78
+ }
79
+ setState({
80
+ key: key$1,
81
+ data: void 0,
82
+ error: void 0,
83
+ isLoading: false
84
+ });
85
+ return Promise.resolve([]);
86
+ }, [options.passthrough]);
87
+ useEffect(() => {
88
+ if (options.submittingRef.current != null && options.submittingRef.current === threadId) return;
89
+ fetcher(threadId, limit);
90
+ }, [fetcher, key]);
91
+ return {
92
+ data: state.data,
93
+ error: state.error,
94
+ isLoading: state.isLoading,
95
+ mutate: (mutateId) => fetcher(mutateId ?? threadId, limit)
96
+ };
97
+ }
98
+ function useStreamLGP(options) {
99
+ const reconnectOnMountRef = useRef(options.reconnectOnMount);
100
+ const runMetadataStorage = useMemo(() => {
101
+ if (typeof window === "undefined") return null;
102
+ const storage = reconnectOnMountRef.current;
103
+ if (storage === true) return window.sessionStorage;
104
+ if (typeof storage === "function") return storage();
105
+ return null;
106
+ }, []);
107
+ const client = useMemo(() => options.client ?? new Client({
108
+ apiUrl: options.apiUrl,
109
+ apiKey: options.apiKey,
110
+ callerOptions: options.callerOptions,
111
+ defaultHeaders: options.defaultHeaders
112
+ }), [
113
+ options.client,
114
+ options.apiKey,
115
+ options.apiUrl,
116
+ options.callerOptions,
117
+ options.defaultHeaders
118
+ ]);
119
+ const [messageManager] = useState(() => new MessageTupleManager());
120
+ const [stream] = useState(() => new StreamManager(messageManager, { throttle: options.throttle ?? false }));
121
+ useSyncExternalStore(stream.subscribe, stream.getSnapshot, stream.getSnapshot);
122
+ const [threadId, onThreadId] = useControllableThreadId(options);
123
+ const trackStreamModeRef = useRef([]);
124
+ const trackStreamMode = useCallback((...mode) => {
125
+ const ref = trackStreamModeRef.current;
126
+ for (const m of mode) if (!ref.includes(m)) ref.push(m);
127
+ }, []);
128
+ const hasUpdateListener = options.onUpdateEvent != null;
129
+ const hasCustomListener = options.onCustomEvent != null;
130
+ const hasLangChainListener = options.onLangChainEvent != null;
131
+ const hasDebugListener = options.onDebugEvent != null;
132
+ const hasCheckpointListener = options.onCheckpointEvent != null;
133
+ const hasTaskListener = options.onTaskEvent != null;
134
+ const callbackStreamMode = useMemo(() => {
135
+ const modes = [];
136
+ if (hasUpdateListener) modes.push("updates");
137
+ if (hasCustomListener) modes.push("custom");
138
+ if (hasLangChainListener) modes.push("events");
139
+ if (hasDebugListener) modes.push("debug");
140
+ if (hasCheckpointListener) modes.push("checkpoints");
141
+ if (hasTaskListener) modes.push("tasks");
142
+ return modes;
143
+ }, [
144
+ hasUpdateListener,
145
+ hasCustomListener,
146
+ hasLangChainListener,
147
+ hasDebugListener,
148
+ hasCheckpointListener,
149
+ hasTaskListener
150
+ ]);
151
+ const threadIdRef = useRef(threadId);
152
+ const threadIdStreamingRef = useRef(null);
153
+ useEffect(() => {
154
+ if (threadIdRef.current !== threadId) {
155
+ threadIdRef.current = threadId;
156
+ stream.clear();
157
+ }
158
+ }, [threadId, stream]);
159
+ const historyLimit = typeof options.fetchStateHistory === "object" && options.fetchStateHistory != null ? options.fetchStateHistory.limit ?? false : options.fetchStateHistory ?? false;
160
+ const builtInHistory = useThreadHistory(client, threadId, historyLimit, {
161
+ passthrough: options.thread != null,
162
+ submittingRef: threadIdStreamingRef,
163
+ onError: options.onError
164
+ });
165
+ const history = options.thread ?? builtInHistory;
166
+ const getMessages = (value) => {
167
+ const messagesKey = options.messagesKey ?? "messages";
168
+ return Array.isArray(value[messagesKey]) ? value[messagesKey] : [];
169
+ };
170
+ const setMessages = (current, messages) => {
171
+ const messagesKey = options.messagesKey ?? "messages";
172
+ return {
173
+ ...current,
174
+ [messagesKey]: messages
175
+ };
176
+ };
177
+ const [branch, setBranch] = useState("");
178
+ const branchContext = getBranchContext(branch, history.data ?? void 0);
179
+ const historyValues = branchContext.threadHead?.values ?? options.initialValues ?? {};
180
+ const historyError = (() => {
181
+ const error$1 = branchContext.threadHead?.tasks?.at(-1)?.error;
182
+ if (error$1 == null) return void 0;
183
+ try {
184
+ const parsed = JSON.parse(error$1);
185
+ if (StreamError.isStructuredError(parsed)) return new StreamError(parsed);
186
+ return parsed;
187
+ } catch {
188
+ }
189
+ return error$1;
190
+ })();
191
+ const messageMetadata = (() => {
192
+ const alreadyShown = /* @__PURE__ */ new Set();
193
+ return getMessages(historyValues).map((message, idx) => {
194
+ const messageId = message.id ?? idx;
195
+ const firstSeenState = findLast(history.data ?? [], (state) => getMessages(state.values).map((m, idx$1) => m.id ?? idx$1).includes(messageId));
196
+ const checkpointId = firstSeenState?.checkpoint?.checkpoint_id;
197
+ let branch$1 = checkpointId != null ? branchContext.branchByCheckpoint[checkpointId] : void 0;
198
+ if (!branch$1?.branch?.length) branch$1 = void 0;
199
+ const optionsShown = branch$1?.branchOptions?.flat(2).join(",");
200
+ if (optionsShown) {
201
+ if (alreadyShown.has(optionsShown)) branch$1 = void 0;
202
+ alreadyShown.add(optionsShown);
20
203
  }
21
- if (text.length > 0 && text.at(-1) === CR) {
22
- trailingCr = true;
23
- text = text.subarray(0, -1);
204
+ return {
205
+ messageId: messageId.toString(),
206
+ firstSeenState,
207
+ branch: branch$1?.branch,
208
+ branchOptions: branch$1?.branchOptions
209
+ };
210
+ });
211
+ })();
212
+ const stop = () => stream.stop(historyValues, { onStop: (args) => {
213
+ if (runMetadataStorage && threadId) {
214
+ const runId = runMetadataStorage.getItem(`lg:stream:${threadId}`);
215
+ if (runId) client.runs.cancel(threadId, runId);
216
+ runMetadataStorage.removeItem(`lg:stream:${threadId}`);
217
+ }
218
+ options.onStop?.(args);
219
+ } });
220
+ const submit = async (values$1, submitOptions) => {
221
+ const checkpointId = submitOptions?.checkpoint?.checkpoint_id;
222
+ setBranch(checkpointId != null ? branchContext.branchByCheckpoint[checkpointId]?.branch ?? "" : "");
223
+ const includeImplicitBranch = historyLimit === true || typeof historyLimit === "number";
224
+ const shouldRefetch = options.onFinish != null || includeImplicitBranch;
225
+ let callbackMeta;
226
+ let rejoinKey;
227
+ let usableThreadId = threadId;
228
+ await stream.start(async (signal) => {
229
+ stream.setStreamValues((values$2) => {
230
+ const prev = {
231
+ ...historyValues,
232
+ ...values$2 ?? {}
233
+ };
234
+ if (submitOptions?.optimisticValues != null) return {
235
+ ...prev,
236
+ ...typeof submitOptions.optimisticValues === "function" ? submitOptions.optimisticValues(prev) : submitOptions.optimisticValues
237
+ };
238
+ return { ...prev };
239
+ });
240
+ if (!usableThreadId) {
241
+ usableThreadId = (await client.threads.create({
242
+ threadId: submitOptions?.threadId,
243
+ metadata: submitOptions?.metadata,
244
+ signal
245
+ })).thread_id;
246
+ threadIdRef.current = usableThreadId;
247
+ threadIdStreamingRef.current = usableThreadId;
248
+ onThreadId(usableThreadId);
24
249
  }
25
- if (!text.length) return;
26
- const trailingNewline = TRAILING_NEWLINE.includes(text.at(-1));
27
- const lastIdx = text.length - 1;
28
- const { lines } = text.reduce((acc, cur, idx) => {
29
- if (acc.from > idx) return acc;
30
- if (cur === CR || cur === LF) {
31
- acc.lines.push(text.subarray(acc.from, idx));
32
- if (cur === CR && text[idx + 1] === LF) acc.from = idx + 2;
33
- else acc.from = idx + 1;
250
+ if (!usableThreadId) throw new Error("Failed to obtain valid thread ID.");
251
+ threadIdStreamingRef.current = usableThreadId;
252
+ const streamMode = unique([
253
+ ...submitOptions?.streamMode ?? [],
254
+ ...trackStreamModeRef.current,
255
+ ...callbackStreamMode
256
+ ]);
257
+ let checkpoint = submitOptions?.checkpoint ?? (includeImplicitBranch ? branchContext.threadHead?.checkpoint : void 0) ?? void 0;
258
+ if (submitOptions?.checkpoint === null) checkpoint = void 0;
259
+ if (checkpoint != null) delete checkpoint.thread_id;
260
+ const streamResumable = submitOptions?.streamResumable ?? !!runMetadataStorage;
261
+ return client.runs.stream(usableThreadId, options.assistantId, {
262
+ input: values$1,
263
+ config: submitOptions?.config,
264
+ context: submitOptions?.context,
265
+ command: submitOptions?.command,
266
+ interruptBefore: submitOptions?.interruptBefore,
267
+ interruptAfter: submitOptions?.interruptAfter,
268
+ metadata: submitOptions?.metadata,
269
+ multitaskStrategy: submitOptions?.multitaskStrategy,
270
+ onCompletion: submitOptions?.onCompletion,
271
+ onDisconnect: submitOptions?.onDisconnect ?? (streamResumable ? "continue" : "cancel"),
272
+ signal,
273
+ checkpoint,
274
+ streamMode,
275
+ streamSubgraphs: submitOptions?.streamSubgraphs,
276
+ streamResumable,
277
+ durability: submitOptions?.durability,
278
+ onRunCreated(params) {
279
+ callbackMeta = {
280
+ run_id: params.run_id,
281
+ thread_id: params.thread_id ?? usableThreadId
282
+ };
283
+ if (runMetadataStorage) {
284
+ rejoinKey = `lg:stream:${usableThreadId}`;
285
+ runMetadataStorage.setItem(rejoinKey, callbackMeta.run_id);
286
+ }
287
+ options.onCreated?.(callbackMeta);
34
288
  }
35
- if (idx === lastIdx && acc.from <= lastIdx) acc.lines.push(text.subarray(acc.from));
36
- return acc;
37
- }, {
38
- lines: [],
39
- from: 0
40
289
  });
41
- if (lines.length === 1 && !trailingNewline) {
42
- buffer.push(lines[0]);
43
- return;
44
- }
45
- if (buffer.length) {
46
- buffer.push(lines[0]);
47
- lines[0] = joinArrays(buffer);
48
- buffer = [];
290
+ }, {
291
+ getMessages,
292
+ setMessages,
293
+ initialValues: historyValues,
294
+ callbacks: options,
295
+ async onSuccess() {
296
+ if (rejoinKey) runMetadataStorage?.removeItem(rejoinKey);
297
+ if (shouldRefetch) {
298
+ const lastHead = (await history.mutate(usableThreadId))?.at(0);
299
+ if (lastHead) {
300
+ options.onFinish?.(lastHead, callbackMeta);
301
+ return null;
302
+ }
303
+ }
304
+ },
305
+ onError(error$1) {
306
+ options.onError?.(error$1, callbackMeta);
307
+ },
308
+ onFinish() {
309
+ threadIdStreamingRef.current = null;
49
310
  }
50
- if (!trailingNewline) {
51
- if (lines.length) buffer = [lines.pop()];
311
+ });
312
+ };
313
+ const joinStream = async (runId, lastEventId, joinOptions) => {
314
+ lastEventId ??= "-1";
315
+ if (!threadId) return;
316
+ const callbackMeta = {
317
+ thread_id: threadId,
318
+ run_id: runId
319
+ };
320
+ await stream.start(async (signal) => {
321
+ threadIdStreamingRef.current = threadId;
322
+ return client.runs.joinStream(threadId, runId, {
323
+ signal,
324
+ lastEventId,
325
+ streamMode: joinOptions?.streamMode
326
+ });
327
+ }, {
328
+ getMessages,
329
+ setMessages,
330
+ initialValues: historyValues,
331
+ callbacks: options,
332
+ async onSuccess() {
333
+ runMetadataStorage?.removeItem(`lg:stream:${threadId}`);
334
+ const lastHead = (await history.mutate(threadId))?.at(0);
335
+ if (lastHead) options.onFinish?.(lastHead, callbackMeta);
336
+ },
337
+ onError(error$1) {
338
+ options.onError?.(error$1, callbackMeta);
339
+ },
340
+ onFinish() {
341
+ threadIdStreamingRef.current = null;
52
342
  }
53
- for (const line of lines) controller.enqueue(line);
54
- },
55
- flush(controller) {
56
- if (buffer.length) controller.enqueue(joinArrays(buffer));
57
- }
343
+ });
344
+ };
345
+ const reconnectKey = useMemo(() => {
346
+ if (!runMetadataStorage || stream.isLoading) return void 0;
347
+ if (typeof window === "undefined") return void 0;
348
+ const runId = runMetadataStorage?.getItem(`lg:stream:${threadId}`);
349
+ if (!runId) return void 0;
350
+ return {
351
+ runId,
352
+ threadId
353
+ };
354
+ }, [
355
+ runMetadataStorage,
356
+ stream.isLoading,
357
+ threadId
358
+ ]);
359
+ const shouldReconnect = !!runMetadataStorage;
360
+ const reconnectRef = useRef({
361
+ threadId,
362
+ shouldReconnect
58
363
  });
59
- }
60
- function SSEDecoder() {
61
- let event = "";
62
- let data = [];
63
- let lastEventId = "";
64
- let retry = null;
65
- const decoder = new TextDecoder();
66
- return new TransformStream({
67
- transform(chunk, controller) {
68
- if (!chunk.length) {
69
- if (!event && !data.length && !lastEventId && retry == null) return;
70
- const sse = {
71
- id: lastEventId || void 0,
72
- event,
73
- data: data.length ? decodeArraysToJson(decoder, data) : null
74
- };
75
- event = "";
76
- data = [];
77
- retry = null;
78
- controller.enqueue(sse);
79
- return;
364
+ const joinStreamRef = useRef(joinStream);
365
+ joinStreamRef.current = joinStream;
366
+ useEffect(() => {
367
+ if (reconnectRef.current.threadId !== threadId) reconnectRef.current = {
368
+ threadId,
369
+ shouldReconnect
370
+ };
371
+ }, [threadId, shouldReconnect]);
372
+ useEffect(() => {
373
+ if (reconnectKey && reconnectRef.current.shouldReconnect) {
374
+ reconnectRef.current.shouldReconnect = false;
375
+ joinStreamRef.current?.(reconnectKey.runId);
376
+ }
377
+ }, [reconnectKey]);
378
+ const error = stream.error ?? historyError ?? history.error;
379
+ const values = stream.values ?? historyValues;
380
+ return {
381
+ get values() {
382
+ trackStreamMode("values");
383
+ return values;
384
+ },
385
+ client,
386
+ assistantId: options.assistantId,
387
+ error,
388
+ isLoading: stream.isLoading,
389
+ stop,
390
+ submit,
391
+ joinStream,
392
+ branch,
393
+ setBranch,
394
+ get history() {
395
+ if (historyLimit === false) throw new Error("`fetchStateHistory` must be set to `true` to use `history`");
396
+ return branchContext.flatHistory;
397
+ },
398
+ isThreadLoading: history.isLoading && history.data == null,
399
+ get experimental_branchTree() {
400
+ if (historyLimit === false) throw new Error("`fetchStateHistory` must be set to `true` to use `experimental_branchTree`");
401
+ return branchContext.branchTree;
402
+ },
403
+ get interrupt() {
404
+ if (values != null && "__interrupt__" in values && Array.isArray(values.__interrupt__)) {
405
+ const valueInterrupts = values.__interrupt__;
406
+ if (valueInterrupts.length === 0) return { when: "breakpoint" };
407
+ if (valueInterrupts.length === 1) return valueInterrupts[0];
408
+ return valueInterrupts;
80
409
  }
81
- if (chunk[0] === COLON) return;
82
- const sepIdx = chunk.indexOf(COLON);
83
- if (sepIdx === -1) return;
84
- const fieldName = decoder.decode(chunk.subarray(0, sepIdx));
85
- let value = chunk.subarray(sepIdx + 1);
86
- if (value[0] === SPACE) value = value.subarray(1);
87
- if (fieldName === "event") event = decoder.decode(value);
88
- else if (fieldName === "data") data.push(value);
89
- else if (fieldName === "id") {
90
- if (value.indexOf(NULL) === -1) lastEventId = decoder.decode(value);
91
- } else if (fieldName === "retry") {
92
- const retryNum = Number.parseInt(decoder.decode(value), 10);
93
- if (!Number.isNaN(retryNum)) retry = retryNum;
410
+ if (stream.isLoading) return void 0;
411
+ const interrupts = branchContext.threadHead?.tasks?.at(-1)?.interrupts;
412
+ if (interrupts == null || interrupts.length === 0) {
413
+ if (!(branchContext.threadHead?.next ?? []).length || error != null) return void 0;
414
+ return { when: "breakpoint" };
94
415
  }
416
+ return interrupts.at(-1);
95
417
  },
96
- flush(controller) {
97
- if (event) controller.enqueue({
98
- id: lastEventId || void 0,
99
- event,
100
- data: data.length ? decodeArraysToJson(decoder, data) : null
101
- });
418
+ get messages() {
419
+ trackStreamMode("messages-tuple", "values");
420
+ return getMessages(values);
421
+ },
422
+ get toolCalls() {
423
+ trackStreamMode("messages-tuple", "values");
424
+ return getToolCallsWithResults(getMessages(values));
425
+ },
426
+ getToolCalls(message) {
427
+ trackStreamMode("messages-tuple", "values");
428
+ return getToolCallsWithResults(getMessages(values)).filter((tc) => tc.aiMessage.id === message.id);
429
+ },
430
+ getMessagesMetadata(message, index) {
431
+ trackStreamMode("values");
432
+ const streamMetadata = messageManager.get(message.id)?.metadata;
433
+ const historyMetadata = messageMetadata?.find((m) => m.messageId === (message.id ?? index));
434
+ if (streamMetadata != null || historyMetadata != null) return {
435
+ ...historyMetadata,
436
+ streamMetadata
437
+ };
102
438
  }
103
- });
104
- }
105
- function joinArrays(data) {
106
- const totalLength = data.reduce((acc, curr) => acc + curr.length, 0);
107
- const merged = new Uint8Array(totalLength);
108
- let offset = 0;
109
- for (const c of data) {
110
- merged.set(c, offset);
111
- offset += c.length;
112
- }
113
- return merged;
114
- }
115
- function decodeArraysToJson(decoder, data) {
116
- return JSON.parse(decoder.decode(joinArrays(data)));
439
+ };
117
440
  }
118
441
  export {
119
- BytesLineDecoder,
120
- SSEDecoder
442
+ useStreamLGP
121
443
  };
122
444
  //# sourceMappingURL=index.es32.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es32.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/utils/sse.js"],"sourcesContent":["//#region src/utils/sse.ts\nconst CR = \"\\r\".charCodeAt(0);\nconst LF = \"\\n\".charCodeAt(0);\nconst NULL = \"\\0\".charCodeAt(0);\nconst COLON = \":\".charCodeAt(0);\nconst SPACE = \" \".charCodeAt(0);\nconst TRAILING_NEWLINE = [CR, LF];\nfunction BytesLineDecoder() {\n\tlet buffer = [];\n\tlet trailingCr = false;\n\treturn new TransformStream({\n\t\tstart() {\n\t\t\tbuffer = [];\n\t\t\ttrailingCr = false;\n\t\t},\n\t\ttransform(chunk, controller) {\n\t\t\tlet text = chunk;\n\t\t\tif (trailingCr) {\n\t\t\t\ttext = joinArrays([[CR], text]);\n\t\t\t\ttrailingCr = false;\n\t\t\t}\n\t\t\tif (text.length > 0 && text.at(-1) === CR) {\n\t\t\t\ttrailingCr = true;\n\t\t\t\ttext = text.subarray(0, -1);\n\t\t\t}\n\t\t\tif (!text.length) return;\n\t\t\tconst trailingNewline = TRAILING_NEWLINE.includes(text.at(-1));\n\t\t\tconst lastIdx = text.length - 1;\n\t\t\tconst { lines } = text.reduce((acc, cur, idx) => {\n\t\t\t\tif (acc.from > idx) return acc;\n\t\t\t\tif (cur === CR || cur === LF) {\n\t\t\t\t\tacc.lines.push(text.subarray(acc.from, idx));\n\t\t\t\t\tif (cur === CR && text[idx + 1] === LF) acc.from = idx + 2;\n\t\t\t\t\telse acc.from = idx + 1;\n\t\t\t\t}\n\t\t\t\tif (idx === lastIdx && acc.from <= lastIdx) acc.lines.push(text.subarray(acc.from));\n\t\t\t\treturn acc;\n\t\t\t}, {\n\t\t\t\tlines: [],\n\t\t\t\tfrom: 0\n\t\t\t});\n\t\t\tif (lines.length === 1 && !trailingNewline) {\n\t\t\t\tbuffer.push(lines[0]);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (buffer.length) {\n\t\t\t\tbuffer.push(lines[0]);\n\t\t\t\tlines[0] = joinArrays(buffer);\n\t\t\t\tbuffer = [];\n\t\t\t}\n\t\t\tif (!trailingNewline) {\n\t\t\t\tif (lines.length) buffer = [lines.pop()];\n\t\t\t}\n\t\t\tfor (const line of lines) controller.enqueue(line);\n\t\t},\n\t\tflush(controller) {\n\t\t\tif (buffer.length) controller.enqueue(joinArrays(buffer));\n\t\t}\n\t});\n}\nfunction SSEDecoder() {\n\tlet event = \"\";\n\tlet data = [];\n\tlet lastEventId = \"\";\n\tlet retry = null;\n\tconst decoder = new TextDecoder();\n\treturn new TransformStream({\n\t\ttransform(chunk, controller) {\n\t\t\tif (!chunk.length) {\n\t\t\t\tif (!event && !data.length && !lastEventId && retry == null) return;\n\t\t\t\tconst sse = {\n\t\t\t\t\tid: lastEventId || void 0,\n\t\t\t\t\tevent,\n\t\t\t\t\tdata: data.length ? decodeArraysToJson(decoder, data) : null\n\t\t\t\t};\n\t\t\t\tevent = \"\";\n\t\t\t\tdata = [];\n\t\t\t\tretry = null;\n\t\t\t\tcontroller.enqueue(sse);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (chunk[0] === COLON) return;\n\t\t\tconst sepIdx = chunk.indexOf(COLON);\n\t\t\tif (sepIdx === -1) return;\n\t\t\tconst fieldName = decoder.decode(chunk.subarray(0, sepIdx));\n\t\t\tlet value = chunk.subarray(sepIdx + 1);\n\t\t\tif (value[0] === SPACE) value = value.subarray(1);\n\t\t\tif (fieldName === \"event\") event = decoder.decode(value);\n\t\t\telse if (fieldName === \"data\") data.push(value);\n\t\t\telse if (fieldName === \"id\") {\n\t\t\t\tif (value.indexOf(NULL) === -1) lastEventId = decoder.decode(value);\n\t\t\t} else if (fieldName === \"retry\") {\n\t\t\t\tconst retryNum = Number.parseInt(decoder.decode(value), 10);\n\t\t\t\tif (!Number.isNaN(retryNum)) retry = retryNum;\n\t\t\t}\n\t\t},\n\t\tflush(controller) {\n\t\t\tif (event) controller.enqueue({\n\t\t\t\tid: lastEventId || void 0,\n\t\t\t\tevent,\n\t\t\t\tdata: data.length ? decodeArraysToJson(decoder, data) : null\n\t\t\t});\n\t\t}\n\t});\n}\nfunction joinArrays(data) {\n\tconst totalLength = data.reduce((acc, curr) => acc + curr.length, 0);\n\tconst merged = new Uint8Array(totalLength);\n\tlet offset = 0;\n\tfor (const c of data) {\n\t\tmerged.set(c, offset);\n\t\toffset += c.length;\n\t}\n\treturn merged;\n}\nfunction decodeArraysToJson(decoder, data) {\n\treturn JSON.parse(decoder.decode(joinArrays(data)));\n}\n\n//#endregion\nexport { BytesLineDecoder, SSEDecoder };\n//# sourceMappingURL=sse.js.map"],"names":[],"mappings":"AACA,MAAM,KAAK,KAAK,WAAW,CAAC;AAC5B,MAAM,KAAK,KAAK,WAAW,CAAC;AAC5B,MAAM,OAAO,KAAK,WAAW,CAAC;AAC9B,MAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,MAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,MAAM,mBAAmB,CAAC,IAAI,EAAE;AAChC,SAAS,mBAAmB;AAC3B,MAAI,SAAS,CAAA;AACb,MAAI,aAAa;AACjB,SAAO,IAAI,gBAAgB;AAAA,IAC1B,QAAQ;AACP,eAAS,CAAA;AACT,mBAAa;AAAA,IACd;AAAA,IACA,UAAU,OAAO,YAAY;AAC5B,UAAI,OAAO;AACX,UAAI,YAAY;AACf,eAAO,WAAW,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;AAC9B,qBAAa;AAAA,MACd;AACA,UAAI,KAAK,SAAS,KAAK,KAAK,GAAG,EAAE,MAAM,IAAI;AAC1C,qBAAa;AACb,eAAO,KAAK,SAAS,GAAG,EAAE;AAAA,MAC3B;AACA,UAAI,CAAC,KAAK,OAAQ;AAClB,YAAM,kBAAkB,iBAAiB,SAAS,KAAK,GAAG,EAAE,CAAC;AAC7D,YAAM,UAAU,KAAK,SAAS;AAC9B,YAAM,EAAE,MAAK,IAAK,KAAK,OAAO,CAAC,KAAK,KAAK,QAAQ;AAChD,YAAI,IAAI,OAAO,IAAK,QAAO;AAC3B,YAAI,QAAQ,MAAM,QAAQ,IAAI;AAC7B,cAAI,MAAM,KAAK,KAAK,SAAS,IAAI,MAAM,GAAG,CAAC;AAC3C,cAAI,QAAQ,MAAM,KAAK,MAAM,CAAC,MAAM,GAAI,KAAI,OAAO,MAAM;AAAA,cACpD,KAAI,OAAO,MAAM;AAAA,QACvB;AACA,YAAI,QAAQ,WAAW,IAAI,QAAQ,QAAS,KAAI,MAAM,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC;AAClF,eAAO;AAAA,MACR,GAAG;AAAA,QACF,OAAO,CAAA;AAAA,QACP,MAAM;AAAA,MACV,CAAI;AACD,UAAI,MAAM,WAAW,KAAK,CAAC,iBAAiB;AAC3C,eAAO,KAAK,MAAM,CAAC,CAAC;AACpB;AAAA,MACD;AACA,UAAI,OAAO,QAAQ;AAClB,eAAO,KAAK,MAAM,CAAC,CAAC;AACpB,cAAM,CAAC,IAAI,WAAW,MAAM;AAC5B,iBAAS,CAAA;AAAA,MACV;AACA,UAAI,CAAC,iBAAiB;AACrB,YAAI,MAAM,OAAQ,UAAS,CAAC,MAAM,IAAG,CAAE;AAAA,MACxC;AACA,iBAAW,QAAQ,MAAO,YAAW,QAAQ,IAAI;AAAA,IAClD;AAAA,IACA,MAAM,YAAY;AACjB,UAAI,OAAO,OAAQ,YAAW,QAAQ,WAAW,MAAM,CAAC;AAAA,IACzD;AAAA,EACF,CAAE;AACF;AACA,SAAS,aAAa;AACrB,MAAI,QAAQ;AACZ,MAAI,OAAO,CAAA;AACX,MAAI,cAAc;AAClB,MAAI,QAAQ;AACZ,QAAM,UAAU,IAAI,YAAW;AAC/B,SAAO,IAAI,gBAAgB;AAAA,IAC1B,UAAU,OAAO,YAAY;AAC5B,UAAI,CAAC,MAAM,QAAQ;AAClB,YAAI,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC,eAAe,SAAS,KAAM;AAC7D,cAAM,MAAM;AAAA,UACX,IAAI,eAAe;AAAA,UACnB;AAAA,UACA,MAAM,KAAK,SAAS,mBAAmB,SAAS,IAAI,IAAI;AAAA,QAC7D;AACI,gBAAQ;AACR,eAAO,CAAA;AACP,gBAAQ;AACR,mBAAW,QAAQ,GAAG;AACtB;AAAA,MACD;AACA,UAAI,MAAM,CAAC,MAAM,MAAO;AACxB,YAAM,SAAS,MAAM,QAAQ,KAAK;AAClC,UAAI,WAAW,GAAI;AACnB,YAAM,YAAY,QAAQ,OAAO,MAAM,SAAS,GAAG,MAAM,CAAC;AAC1D,UAAI,QAAQ,MAAM,SAAS,SAAS,CAAC;AACrC,UAAI,MAAM,CAAC,MAAM,MAAO,SAAQ,MAAM,SAAS,CAAC;AAChD,UAAI,cAAc,QAAS,SAAQ,QAAQ,OAAO,KAAK;AAAA,eAC9C,cAAc,OAAQ,MAAK,KAAK,KAAK;AAAA,eACrC,cAAc,MAAM;AAC5B,YAAI,MAAM,QAAQ,IAAI,MAAM,GAAI,eAAc,QAAQ,OAAO,KAAK;AAAA,MACnE,WAAW,cAAc,SAAS;AACjC,cAAM,WAAW,OAAO,SAAS,QAAQ,OAAO,KAAK,GAAG,EAAE;AAC1D,YAAI,CAAC,OAAO,MAAM,QAAQ,EAAG,SAAQ;AAAA,MACtC;AAAA,IACD;AAAA,IACA,MAAM,YAAY;AACjB,UAAI,MAAO,YAAW,QAAQ;AAAA,QAC7B,IAAI,eAAe;AAAA,QACnB;AAAA,QACA,MAAM,KAAK,SAAS,mBAAmB,SAAS,IAAI,IAAI;AAAA,MAC5D,CAAI;AAAA,IACF;AAAA,EACF,CAAE;AACF;AACA,SAAS,WAAW,MAAM;AACzB,QAAM,cAAc,KAAK,OAAO,CAAC,KAAK,SAAS,MAAM,KAAK,QAAQ,CAAC;AACnE,QAAM,SAAS,IAAI,WAAW,WAAW;AACzC,MAAI,SAAS;AACb,aAAW,KAAK,MAAM;AACrB,WAAO,IAAI,GAAG,MAAM;AACpB,cAAU,EAAE;AAAA,EACb;AACA,SAAO;AACR;AACA,SAAS,mBAAmB,SAAS,MAAM;AAC1C,SAAO,KAAK,MAAM,QAAQ,OAAO,WAAW,IAAI,CAAC,CAAC;AACnD;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es32.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/react/stream.lgp.js"],"sourcesContent":["\"use client\";\n\nimport { Client, getClientConfigHash } from \"../client.js\";\nimport { findLast, unique } from \"../ui/utils.js\";\nimport { StreamError } from \"../ui/errors.js\";\nimport { getBranchContext } from \"../ui/branching.js\";\nimport { MessageTupleManager } from \"../ui/messages.js\";\nimport { StreamManager } from \"../ui/manager.js\";\nimport { getToolCallsWithResults } from \"../utils/tools.js\";\nimport { useControllableThreadId } from \"./thread.js\";\nimport { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from \"react\";\n\n//#region src/react/stream.lgp.tsx\nfunction getFetchHistoryKey(client, threadId, limit) {\n\treturn [\n\t\tgetClientConfigHash(client),\n\t\tthreadId,\n\t\tlimit\n\t].join(\":\");\n}\nfunction fetchHistory(client, threadId, options) {\n\tif (options?.limit === false) return client.threads.getState(threadId).then((state) => {\n\t\tif (state.checkpoint == null) return [];\n\t\treturn [state];\n\t});\n\tconst limit = typeof options?.limit === \"number\" ? options.limit : 10;\n\treturn client.threads.getHistory(threadId, { limit });\n}\nfunction useThreadHistory(client, threadId, limit, options) {\n\tconst key = getFetchHistoryKey(client, threadId, limit);\n\tconst [state, setState] = useState(() => ({\n\t\tkey: void 0,\n\t\tdata: void 0,\n\t\terror: void 0,\n\t\tisLoading: threadId != null\n\t}));\n\tconst clientRef = useRef(client);\n\tclientRef.current = client;\n\tconst onErrorRef = useRef(options?.onError);\n\tonErrorRef.current = options?.onError;\n\tconst fetcher = useCallback((threadId$1, limit$1) => {\n\t\tif (options.passthrough) return Promise.resolve([]);\n\t\tconst client$1 = clientRef.current;\n\t\tconst key$1 = getFetchHistoryKey(client$1, threadId$1, limit$1);\n\t\tif (threadId$1 != null) {\n\t\t\tsetState((state$1) => {\n\t\t\t\tif (state$1.key === key$1) return {\n\t\t\t\t\t...state$1,\n\t\t\t\t\tisLoading: true\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tkey: key$1,\n\t\t\t\t\tdata: void 0,\n\t\t\t\t\terror: void 0,\n\t\t\t\t\tisLoading: true\n\t\t\t\t};\n\t\t\t});\n\t\t\treturn fetchHistory(client$1, threadId$1, { limit: limit$1 }).then((data) => {\n\t\t\t\tsetState((state$1) => {\n\t\t\t\t\tif (state$1.key !== key$1) return state$1;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkey: key$1,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\terror: void 0,\n\t\t\t\t\t\tisLoading: false\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\treturn data;\n\t\t\t}, (error) => {\n\t\t\t\tsetState((state$1) => {\n\t\t\t\t\tif (state$1.key !== key$1) return state$1;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkey: key$1,\n\t\t\t\t\t\tdata: state$1.data,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tisLoading: false\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tonErrorRef.current?.(error);\n\t\t\t\treturn Promise.reject(error);\n\t\t\t});\n\t\t}\n\t\tsetState({\n\t\t\tkey: key$1,\n\t\t\tdata: void 0,\n\t\t\terror: void 0,\n\t\t\tisLoading: false\n\t\t});\n\t\treturn Promise.resolve([]);\n\t}, [options.passthrough]);\n\tuseEffect(() => {\n\t\tif (options.submittingRef.current != null && options.submittingRef.current === threadId) return;\n\t\tfetcher(threadId, limit);\n\t}, [fetcher, key]);\n\treturn {\n\t\tdata: state.data,\n\t\terror: state.error,\n\t\tisLoading: state.isLoading,\n\t\tmutate: (mutateId) => fetcher(mutateId ?? threadId, limit)\n\t};\n}\nfunction useStreamLGP(options) {\n\tconst reconnectOnMountRef = useRef(options.reconnectOnMount);\n\tconst runMetadataStorage = useMemo(() => {\n\t\tif (typeof window === \"undefined\") return null;\n\t\tconst storage = reconnectOnMountRef.current;\n\t\tif (storage === true) return window.sessionStorage;\n\t\tif (typeof storage === \"function\") return storage();\n\t\treturn null;\n\t}, []);\n\tconst client = useMemo(() => options.client ?? new Client({\n\t\tapiUrl: options.apiUrl,\n\t\tapiKey: options.apiKey,\n\t\tcallerOptions: options.callerOptions,\n\t\tdefaultHeaders: options.defaultHeaders\n\t}), [\n\t\toptions.client,\n\t\toptions.apiKey,\n\t\toptions.apiUrl,\n\t\toptions.callerOptions,\n\t\toptions.defaultHeaders\n\t]);\n\tconst [messageManager] = useState(() => new MessageTupleManager());\n\tconst [stream] = useState(() => new StreamManager(messageManager, { throttle: options.throttle ?? false }));\n\tuseSyncExternalStore(stream.subscribe, stream.getSnapshot, stream.getSnapshot);\n\tconst [threadId, onThreadId] = useControllableThreadId(options);\n\tconst trackStreamModeRef = useRef([]);\n\tconst trackStreamMode = useCallback((...mode) => {\n\t\tconst ref = trackStreamModeRef.current;\n\t\tfor (const m of mode) if (!ref.includes(m)) ref.push(m);\n\t}, []);\n\tconst hasUpdateListener = options.onUpdateEvent != null;\n\tconst hasCustomListener = options.onCustomEvent != null;\n\tconst hasLangChainListener = options.onLangChainEvent != null;\n\tconst hasDebugListener = options.onDebugEvent != null;\n\tconst hasCheckpointListener = options.onCheckpointEvent != null;\n\tconst hasTaskListener = options.onTaskEvent != null;\n\tconst callbackStreamMode = useMemo(() => {\n\t\tconst modes = [];\n\t\tif (hasUpdateListener) modes.push(\"updates\");\n\t\tif (hasCustomListener) modes.push(\"custom\");\n\t\tif (hasLangChainListener) modes.push(\"events\");\n\t\tif (hasDebugListener) modes.push(\"debug\");\n\t\tif (hasCheckpointListener) modes.push(\"checkpoints\");\n\t\tif (hasTaskListener) modes.push(\"tasks\");\n\t\treturn modes;\n\t}, [\n\t\thasUpdateListener,\n\t\thasCustomListener,\n\t\thasLangChainListener,\n\t\thasDebugListener,\n\t\thasCheckpointListener,\n\t\thasTaskListener\n\t]);\n\tconst threadIdRef = useRef(threadId);\n\tconst threadIdStreamingRef = useRef(null);\n\tuseEffect(() => {\n\t\tif (threadIdRef.current !== threadId) {\n\t\t\tthreadIdRef.current = threadId;\n\t\t\tstream.clear();\n\t\t}\n\t}, [threadId, stream]);\n\tconst historyLimit = typeof options.fetchStateHistory === \"object\" && options.fetchStateHistory != null ? options.fetchStateHistory.limit ?? false : options.fetchStateHistory ?? false;\n\tconst builtInHistory = useThreadHistory(client, threadId, historyLimit, {\n\t\tpassthrough: options.thread != null,\n\t\tsubmittingRef: threadIdStreamingRef,\n\t\tonError: options.onError\n\t});\n\tconst history = options.thread ?? builtInHistory;\n\tconst getMessages = (value) => {\n\t\tconst messagesKey = options.messagesKey ?? \"messages\";\n\t\treturn Array.isArray(value[messagesKey]) ? value[messagesKey] : [];\n\t};\n\tconst setMessages = (current, messages) => {\n\t\tconst messagesKey = options.messagesKey ?? \"messages\";\n\t\treturn {\n\t\t\t...current,\n\t\t\t[messagesKey]: messages\n\t\t};\n\t};\n\tconst [branch, setBranch] = useState(\"\");\n\tconst branchContext = getBranchContext(branch, history.data ?? void 0);\n\tconst historyValues = branchContext.threadHead?.values ?? options.initialValues ?? {};\n\tconst historyError = (() => {\n\t\tconst error$1 = branchContext.threadHead?.tasks?.at(-1)?.error;\n\t\tif (error$1 == null) return void 0;\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(error$1);\n\t\t\tif (StreamError.isStructuredError(parsed)) return new StreamError(parsed);\n\t\t\treturn parsed;\n\t\t} catch {}\n\t\treturn error$1;\n\t})();\n\tconst messageMetadata = (() => {\n\t\tconst alreadyShown = /* @__PURE__ */ new Set();\n\t\treturn getMessages(historyValues).map((message, idx) => {\n\t\t\tconst messageId = message.id ?? idx;\n\t\t\tconst firstSeenState = findLast(history.data ?? [], (state) => getMessages(state.values).map((m, idx$1) => m.id ?? idx$1).includes(messageId));\n\t\t\tconst checkpointId = firstSeenState?.checkpoint?.checkpoint_id;\n\t\t\tlet branch$1 = checkpointId != null ? branchContext.branchByCheckpoint[checkpointId] : void 0;\n\t\t\tif (!branch$1?.branch?.length) branch$1 = void 0;\n\t\t\tconst optionsShown = branch$1?.branchOptions?.flat(2).join(\",\");\n\t\t\tif (optionsShown) {\n\t\t\t\tif (alreadyShown.has(optionsShown)) branch$1 = void 0;\n\t\t\t\talreadyShown.add(optionsShown);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tmessageId: messageId.toString(),\n\t\t\t\tfirstSeenState,\n\t\t\t\tbranch: branch$1?.branch,\n\t\t\t\tbranchOptions: branch$1?.branchOptions\n\t\t\t};\n\t\t});\n\t})();\n\tconst stop = () => stream.stop(historyValues, { onStop: (args) => {\n\t\tif (runMetadataStorage && threadId) {\n\t\t\tconst runId = runMetadataStorage.getItem(`lg:stream:${threadId}`);\n\t\t\tif (runId) client.runs.cancel(threadId, runId);\n\t\t\trunMetadataStorage.removeItem(`lg:stream:${threadId}`);\n\t\t}\n\t\toptions.onStop?.(args);\n\t} });\n\tconst submit = async (values$1, submitOptions) => {\n\t\tconst checkpointId = submitOptions?.checkpoint?.checkpoint_id;\n\t\tsetBranch(checkpointId != null ? branchContext.branchByCheckpoint[checkpointId]?.branch ?? \"\" : \"\");\n\t\tconst includeImplicitBranch = historyLimit === true || typeof historyLimit === \"number\";\n\t\tconst shouldRefetch = options.onFinish != null || includeImplicitBranch;\n\t\tlet callbackMeta;\n\t\tlet rejoinKey;\n\t\tlet usableThreadId = threadId;\n\t\tawait stream.start(async (signal) => {\n\t\t\tstream.setStreamValues((values$2) => {\n\t\t\t\tconst prev = {\n\t\t\t\t\t...historyValues,\n\t\t\t\t\t...values$2 ?? {}\n\t\t\t\t};\n\t\t\t\tif (submitOptions?.optimisticValues != null) return {\n\t\t\t\t\t...prev,\n\t\t\t\t\t...typeof submitOptions.optimisticValues === \"function\" ? submitOptions.optimisticValues(prev) : submitOptions.optimisticValues\n\t\t\t\t};\n\t\t\t\treturn { ...prev };\n\t\t\t});\n\t\t\tif (!usableThreadId) {\n\t\t\t\tusableThreadId = (await client.threads.create({\n\t\t\t\t\tthreadId: submitOptions?.threadId,\n\t\t\t\t\tmetadata: submitOptions?.metadata,\n\t\t\t\t\tsignal\n\t\t\t\t})).thread_id;\n\t\t\t\tthreadIdRef.current = usableThreadId;\n\t\t\t\tthreadIdStreamingRef.current = usableThreadId;\n\t\t\t\tonThreadId(usableThreadId);\n\t\t\t}\n\t\t\tif (!usableThreadId) throw new Error(\"Failed to obtain valid thread ID.\");\n\t\t\tthreadIdStreamingRef.current = usableThreadId;\n\t\t\tconst streamMode = unique([\n\t\t\t\t...submitOptions?.streamMode ?? [],\n\t\t\t\t...trackStreamModeRef.current,\n\t\t\t\t...callbackStreamMode\n\t\t\t]);\n\t\t\tlet checkpoint = submitOptions?.checkpoint ?? (includeImplicitBranch ? branchContext.threadHead?.checkpoint : void 0) ?? void 0;\n\t\t\tif (submitOptions?.checkpoint === null) checkpoint = void 0;\n\t\t\tif (checkpoint != null) delete checkpoint.thread_id;\n\t\t\tconst streamResumable = submitOptions?.streamResumable ?? !!runMetadataStorage;\n\t\t\treturn client.runs.stream(usableThreadId, options.assistantId, {\n\t\t\t\tinput: values$1,\n\t\t\t\tconfig: submitOptions?.config,\n\t\t\t\tcontext: submitOptions?.context,\n\t\t\t\tcommand: submitOptions?.command,\n\t\t\t\tinterruptBefore: submitOptions?.interruptBefore,\n\t\t\t\tinterruptAfter: submitOptions?.interruptAfter,\n\t\t\t\tmetadata: submitOptions?.metadata,\n\t\t\t\tmultitaskStrategy: submitOptions?.multitaskStrategy,\n\t\t\t\tonCompletion: submitOptions?.onCompletion,\n\t\t\t\tonDisconnect: submitOptions?.onDisconnect ?? (streamResumable ? \"continue\" : \"cancel\"),\n\t\t\t\tsignal,\n\t\t\t\tcheckpoint,\n\t\t\t\tstreamMode,\n\t\t\t\tstreamSubgraphs: submitOptions?.streamSubgraphs,\n\t\t\t\tstreamResumable,\n\t\t\t\tdurability: submitOptions?.durability,\n\t\t\t\tonRunCreated(params) {\n\t\t\t\t\tcallbackMeta = {\n\t\t\t\t\t\trun_id: params.run_id,\n\t\t\t\t\t\tthread_id: params.thread_id ?? usableThreadId\n\t\t\t\t\t};\n\t\t\t\t\tif (runMetadataStorage) {\n\t\t\t\t\t\trejoinKey = `lg:stream:${usableThreadId}`;\n\t\t\t\t\t\trunMetadataStorage.setItem(rejoinKey, callbackMeta.run_id);\n\t\t\t\t\t}\n\t\t\t\t\toptions.onCreated?.(callbackMeta);\n\t\t\t\t}\n\t\t\t});\n\t\t}, {\n\t\t\tgetMessages,\n\t\t\tsetMessages,\n\t\t\tinitialValues: historyValues,\n\t\t\tcallbacks: options,\n\t\t\tasync onSuccess() {\n\t\t\t\tif (rejoinKey) runMetadataStorage?.removeItem(rejoinKey);\n\t\t\t\tif (shouldRefetch) {\n\t\t\t\t\tconst lastHead = (await history.mutate(usableThreadId))?.at(0);\n\t\t\t\t\tif (lastHead) {\n\t\t\t\t\t\toptions.onFinish?.(lastHead, callbackMeta);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonError(error$1) {\n\t\t\t\toptions.onError?.(error$1, callbackMeta);\n\t\t\t},\n\t\t\tonFinish() {\n\t\t\t\tthreadIdStreamingRef.current = null;\n\t\t\t}\n\t\t});\n\t};\n\tconst joinStream = async (runId, lastEventId, joinOptions) => {\n\t\tlastEventId ??= \"-1\";\n\t\tif (!threadId) return;\n\t\tconst callbackMeta = {\n\t\t\tthread_id: threadId,\n\t\t\trun_id: runId\n\t\t};\n\t\tawait stream.start(async (signal) => {\n\t\t\tthreadIdStreamingRef.current = threadId;\n\t\t\treturn client.runs.joinStream(threadId, runId, {\n\t\t\t\tsignal,\n\t\t\t\tlastEventId,\n\t\t\t\tstreamMode: joinOptions?.streamMode\n\t\t\t});\n\t\t}, {\n\t\t\tgetMessages,\n\t\t\tsetMessages,\n\t\t\tinitialValues: historyValues,\n\t\t\tcallbacks: options,\n\t\t\tasync onSuccess() {\n\t\t\t\trunMetadataStorage?.removeItem(`lg:stream:${threadId}`);\n\t\t\t\tconst lastHead = (await history.mutate(threadId))?.at(0);\n\t\t\t\tif (lastHead) options.onFinish?.(lastHead, callbackMeta);\n\t\t\t},\n\t\t\tonError(error$1) {\n\t\t\t\toptions.onError?.(error$1, callbackMeta);\n\t\t\t},\n\t\t\tonFinish() {\n\t\t\t\tthreadIdStreamingRef.current = null;\n\t\t\t}\n\t\t});\n\t};\n\tconst reconnectKey = useMemo(() => {\n\t\tif (!runMetadataStorage || stream.isLoading) return void 0;\n\t\tif (typeof window === \"undefined\") return void 0;\n\t\tconst runId = runMetadataStorage?.getItem(`lg:stream:${threadId}`);\n\t\tif (!runId) return void 0;\n\t\treturn {\n\t\t\trunId,\n\t\t\tthreadId\n\t\t};\n\t}, [\n\t\trunMetadataStorage,\n\t\tstream.isLoading,\n\t\tthreadId\n\t]);\n\tconst shouldReconnect = !!runMetadataStorage;\n\tconst reconnectRef = useRef({\n\t\tthreadId,\n\t\tshouldReconnect\n\t});\n\tconst joinStreamRef = useRef(joinStream);\n\tjoinStreamRef.current = joinStream;\n\tuseEffect(() => {\n\t\tif (reconnectRef.current.threadId !== threadId) reconnectRef.current = {\n\t\t\tthreadId,\n\t\t\tshouldReconnect\n\t\t};\n\t}, [threadId, shouldReconnect]);\n\tuseEffect(() => {\n\t\tif (reconnectKey && reconnectRef.current.shouldReconnect) {\n\t\t\treconnectRef.current.shouldReconnect = false;\n\t\t\tjoinStreamRef.current?.(reconnectKey.runId);\n\t\t}\n\t}, [reconnectKey]);\n\tconst error = stream.error ?? historyError ?? history.error;\n\tconst values = stream.values ?? historyValues;\n\treturn {\n\t\tget values() {\n\t\t\ttrackStreamMode(\"values\");\n\t\t\treturn values;\n\t\t},\n\t\tclient,\n\t\tassistantId: options.assistantId,\n\t\terror,\n\t\tisLoading: stream.isLoading,\n\t\tstop,\n\t\tsubmit,\n\t\tjoinStream,\n\t\tbranch,\n\t\tsetBranch,\n\t\tget history() {\n\t\t\tif (historyLimit === false) throw new Error(\"`fetchStateHistory` must be set to `true` to use `history`\");\n\t\t\treturn branchContext.flatHistory;\n\t\t},\n\t\tisThreadLoading: history.isLoading && history.data == null,\n\t\tget experimental_branchTree() {\n\t\t\tif (historyLimit === false) throw new Error(\"`fetchStateHistory` must be set to `true` to use `experimental_branchTree`\");\n\t\t\treturn branchContext.branchTree;\n\t\t},\n\t\tget interrupt() {\n\t\t\tif (values != null && \"__interrupt__\" in values && Array.isArray(values.__interrupt__)) {\n\t\t\t\tconst valueInterrupts = values.__interrupt__;\n\t\t\t\tif (valueInterrupts.length === 0) return { when: \"breakpoint\" };\n\t\t\t\tif (valueInterrupts.length === 1) return valueInterrupts[0];\n\t\t\t\treturn valueInterrupts;\n\t\t\t}\n\t\t\tif (stream.isLoading) return void 0;\n\t\t\tconst interrupts = branchContext.threadHead?.tasks?.at(-1)?.interrupts;\n\t\t\tif (interrupts == null || interrupts.length === 0) {\n\t\t\t\tif (!(branchContext.threadHead?.next ?? []).length || error != null) return void 0;\n\t\t\t\treturn { when: \"breakpoint\" };\n\t\t\t}\n\t\t\treturn interrupts.at(-1);\n\t\t},\n\t\tget messages() {\n\t\t\ttrackStreamMode(\"messages-tuple\", \"values\");\n\t\t\treturn getMessages(values);\n\t\t},\n\t\tget toolCalls() {\n\t\t\ttrackStreamMode(\"messages-tuple\", \"values\");\n\t\t\treturn getToolCallsWithResults(getMessages(values));\n\t\t},\n\t\tgetToolCalls(message) {\n\t\t\ttrackStreamMode(\"messages-tuple\", \"values\");\n\t\t\treturn getToolCallsWithResults(getMessages(values)).filter((tc) => tc.aiMessage.id === message.id);\n\t\t},\n\t\tgetMessagesMetadata(message, index) {\n\t\t\ttrackStreamMode(\"values\");\n\t\t\tconst streamMetadata = messageManager.get(message.id)?.metadata;\n\t\t\tconst historyMetadata = messageMetadata?.find((m) => m.messageId === (message.id ?? index));\n\t\t\tif (streamMetadata != null || historyMetadata != null) return {\n\t\t\t\t...historyMetadata,\n\t\t\t\tstreamMetadata\n\t\t\t};\n\t\t}\n\t};\n}\n\n//#endregion\nexport { useStreamLGP };\n//# sourceMappingURL=stream.lgp.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}