langgraph-ui-components 0.0.10 → 0.0.11-testing

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 (393) hide show
  1. package/dist/index.es.js +3 -2
  2. package/dist/index.es10.js +25 -6
  3. package/dist/index.es10.js.map +1 -1
  4. package/dist/index.es100.js +131 -64
  5. package/dist/index.es100.js.map +1 -1
  6. package/dist/index.es101.js +65 -32
  7. package/dist/index.es101.js.map +1 -1
  8. package/dist/index.es102.js +34 -34
  9. package/dist/index.es102.js.map +1 -1
  10. package/dist/index.es103.js +35 -164
  11. package/dist/index.es103.js.map +1 -1
  12. package/dist/index.es104.js +156 -193
  13. package/dist/index.es104.js.map +1 -1
  14. package/dist/index.es105.js +202 -13
  15. package/dist/index.es105.js.map +1 -1
  16. package/dist/index.es106.js +13 -29
  17. package/dist/index.es106.js.map +1 -1
  18. package/dist/index.es107.js +25 -29
  19. package/dist/index.es107.js.map +1 -1
  20. package/dist/index.es108.js +24 -3147
  21. package/dist/index.es108.js.map +1 -1
  22. package/dist/index.es109.js +3151 -31
  23. package/dist/index.es109.js.map +1 -1
  24. package/dist/index.es110.js +21 -5
  25. package/dist/index.es110.js.map +1 -1
  26. package/dist/index.es111.js +64 -69
  27. package/dist/index.es111.js.map +1 -1
  28. package/dist/index.es112.js +3 -37
  29. package/dist/index.es112.js.map +1 -1
  30. package/dist/index.es113.js +16 -5
  31. package/dist/index.es113.js.map +1 -1
  32. package/dist/index.es114.js +7 -2
  33. package/dist/index.es114.js.map +1 -1
  34. package/dist/index.es115.js +2 -13
  35. package/dist/index.es115.js.map +1 -1
  36. package/dist/index.es116.js +9 -499
  37. package/dist/index.es116.js.map +1 -1
  38. package/dist/index.es117.js +501 -5
  39. package/dist/index.es117.js.map +1 -1
  40. package/dist/index.es118.js +7 -2
  41. package/dist/index.es118.js.map +1 -1
  42. package/dist/index.es119.js +2 -148
  43. package/dist/index.es119.js.map +1 -1
  44. package/dist/index.es120.js +118 -878
  45. package/dist/index.es120.js.map +1 -1
  46. package/dist/index.es121.js +877 -251
  47. package/dist/index.es121.js.map +1 -1
  48. package/dist/index.es122.js +281 -3
  49. package/dist/index.es122.js.map +1 -1
  50. package/dist/index.es123.js +3 -445
  51. package/dist/index.es123.js.map +1 -1
  52. package/dist/index.es124.js +437 -39
  53. package/dist/index.es124.js.map +1 -1
  54. package/dist/index.es125.js +46 -22
  55. package/dist/index.es125.js.map +1 -1
  56. package/dist/index.es126.js +21 -78
  57. package/dist/index.es126.js.map +1 -1
  58. package/dist/index.es127.js +76 -126
  59. package/dist/index.es127.js.map +1 -1
  60. package/dist/index.es128.js +125 -45
  61. package/dist/index.es128.js.map +1 -1
  62. package/dist/index.es129.js +48 -9
  63. package/dist/index.es129.js.map +1 -1
  64. package/dist/index.es130.js +10 -45
  65. package/dist/index.es130.js.map +1 -1
  66. package/dist/index.es131.js +43 -97
  67. package/dist/index.es131.js.map +1 -1
  68. package/dist/index.es132.js +94 -48
  69. package/dist/index.es132.js.map +1 -1
  70. package/dist/index.es133.js +51 -14
  71. package/dist/index.es133.js.map +1 -1
  72. package/dist/index.es134.js +1 -1
  73. package/dist/index.es135.js +1 -1
  74. package/dist/index.es138.js +1 -1
  75. package/dist/index.es139.js +1 -1
  76. package/dist/index.es140.js +1 -1
  77. package/dist/index.es141.js +1 -1
  78. package/dist/index.es142.js +1 -1
  79. package/dist/index.es143.js +1 -1
  80. package/dist/index.es144.js +1 -1
  81. package/dist/index.es145.js +1 -1
  82. package/dist/index.es146.js +1 -1
  83. package/dist/index.es147.js +1 -1
  84. package/dist/index.es148.js +1 -1
  85. package/dist/index.es149.js +1 -1
  86. package/dist/index.es150.js +1 -1
  87. package/dist/index.es151.js +1 -1
  88. package/dist/index.es152.js +1 -1
  89. package/dist/index.es153.js +1 -1
  90. package/dist/index.es154.js +1 -1
  91. package/dist/index.es155.js +1 -1
  92. package/dist/index.es156.js +1 -1
  93. package/dist/index.es157.js +1 -1
  94. package/dist/index.es158.js +1 -1
  95. package/dist/index.es159.js +1 -1
  96. package/dist/index.es16.js +3 -3
  97. package/dist/index.es16.js.map +1 -1
  98. package/dist/index.es160.js +1 -1
  99. package/dist/index.es161.js +1 -1
  100. package/dist/index.es162.js +1 -1
  101. package/dist/index.es163.js +1 -1
  102. package/dist/index.es164.js +1 -1
  103. package/dist/index.es165.js +1 -1
  104. package/dist/index.es166.js +1 -1
  105. package/dist/index.es167.js +1 -1
  106. package/dist/index.es168.js +1 -1
  107. package/dist/index.es169.js +1 -1
  108. package/dist/index.es170.js +1 -1
  109. package/dist/index.es171.js +1 -1
  110. package/dist/index.es172.js +1 -1
  111. package/dist/index.es173.js +1 -1
  112. package/dist/index.es174.js +1 -1
  113. package/dist/index.es175.js +1 -1
  114. package/dist/index.es176.js +1 -1
  115. package/dist/index.es177.js +1 -1
  116. package/dist/index.es178.js +1 -1
  117. package/dist/index.es179.js +1 -1
  118. package/dist/index.es18.js +15 -15
  119. package/dist/index.es180.js +1 -1
  120. package/dist/index.es181.js +1 -1
  121. package/dist/index.es182.js +1 -1
  122. package/dist/index.es183.js +162 -13
  123. package/dist/index.es183.js.map +1 -1
  124. package/dist/index.es184.js +2 -89
  125. package/dist/index.es184.js.map +1 -1
  126. package/dist/index.es185.js +15 -2
  127. package/dist/index.es185.js.map +1 -1
  128. package/dist/index.es186.js +89 -2
  129. package/dist/index.es186.js.map +1 -1
  130. package/dist/index.es187.js +2 -2
  131. package/dist/index.es188.js +56 -2
  132. package/dist/index.es188.js.map +1 -1
  133. package/dist/index.es189.js +100 -2
  134. package/dist/index.es189.js.map +1 -1
  135. package/dist/index.es190.js +191 -2
  136. package/dist/index.es190.js.map +1 -1
  137. package/dist/index.es191.js +110 -2
  138. package/dist/index.es191.js.map +1 -1
  139. package/dist/index.es192.js +35 -2
  140. package/dist/index.es192.js.map +1 -1
  141. package/dist/index.es193.js +10 -2
  142. package/dist/index.es193.js.map +1 -1
  143. package/dist/index.es194.js +11 -2
  144. package/dist/index.es194.js.map +1 -1
  145. package/dist/index.es195.js +12 -2
  146. package/dist/index.es195.js.map +1 -1
  147. package/dist/index.es196.js +91 -2
  148. package/dist/index.es196.js.map +1 -1
  149. package/dist/index.es197.js +275 -2
  150. package/dist/index.es197.js.map +1 -1
  151. package/dist/index.es198.js +2 -2
  152. package/dist/index.es199.js +164 -2
  153. package/dist/index.es199.js.map +1 -1
  154. package/dist/index.es200.js +51 -2
  155. package/dist/index.es200.js.map +1 -1
  156. package/dist/index.es201.js +40 -2
  157. package/dist/index.es201.js.map +1 -1
  158. package/dist/index.es202.js +35 -2
  159. package/dist/index.es202.js.map +1 -1
  160. package/dist/index.es203.js +40 -2
  161. package/dist/index.es203.js.map +1 -1
  162. package/dist/index.es204.js +24 -2
  163. package/dist/index.es204.js.map +1 -1
  164. package/dist/index.es205.js +591 -2
  165. package/dist/index.es205.js.map +1 -1
  166. package/dist/index.es206.js +125 -2
  167. package/dist/index.es206.js.map +1 -1
  168. package/dist/index.es207.js +2 -2
  169. package/dist/index.es208.js +2 -2
  170. package/dist/index.es209.js +2 -2
  171. package/dist/index.es210.js +2 -2
  172. package/dist/index.es211.js +2 -2
  173. package/dist/index.es212.js +2 -2
  174. package/dist/index.es213.js +2 -2
  175. package/dist/index.es214.js +2 -2
  176. package/dist/index.es215.js +2 -2
  177. package/dist/index.es216.js +2 -2
  178. package/dist/index.es217.js +2 -2
  179. package/dist/index.es218.js +2 -2
  180. package/dist/index.es219.js +2 -2
  181. package/dist/index.es220.js +2 -2
  182. package/dist/index.es221.js +2 -2
  183. package/dist/index.es222.js +2 -2
  184. package/dist/index.es223.js +2 -2
  185. package/dist/index.es224.js +2 -2
  186. package/dist/index.es225.js +2 -2
  187. package/dist/index.es226.js +2 -2
  188. package/dist/index.es227.js +2 -2
  189. package/dist/index.es228.js +2 -2
  190. package/dist/index.es229.js +2 -2
  191. package/dist/index.es230.js +2 -2
  192. package/dist/index.es231.js +2 -56
  193. package/dist/index.es231.js.map +1 -1
  194. package/dist/index.es232.js +2 -100
  195. package/dist/index.es232.js.map +1 -1
  196. package/dist/index.es233.js +2 -191
  197. package/dist/index.es233.js.map +1 -1
  198. package/dist/index.es234.js +2 -110
  199. package/dist/index.es234.js.map +1 -1
  200. package/dist/index.es235.js +2 -35
  201. package/dist/index.es235.js.map +1 -1
  202. package/dist/index.es236.js +2 -10
  203. package/dist/index.es236.js.map +1 -1
  204. package/dist/index.es237.js +2 -11
  205. package/dist/index.es237.js.map +1 -1
  206. package/dist/index.es238.js +2 -12
  207. package/dist/index.es238.js.map +1 -1
  208. package/dist/index.es239.js +2 -91
  209. package/dist/index.es239.js.map +1 -1
  210. package/dist/index.es24.js +1 -1
  211. package/dist/index.es240.js +2 -275
  212. package/dist/index.es240.js.map +1 -1
  213. package/dist/index.es241.js +2 -2
  214. package/dist/index.es242.js +2 -164
  215. package/dist/index.es242.js.map +1 -1
  216. package/dist/index.es243.js +2 -51
  217. package/dist/index.es243.js.map +1 -1
  218. package/dist/index.es244.js +2 -40
  219. package/dist/index.es244.js.map +1 -1
  220. package/dist/index.es245.js +2 -35
  221. package/dist/index.es245.js.map +1 -1
  222. package/dist/index.es246.js +2 -40
  223. package/dist/index.es246.js.map +1 -1
  224. package/dist/index.es247.js +2 -24
  225. package/dist/index.es247.js.map +1 -1
  226. package/dist/index.es248.js +2 -591
  227. package/dist/index.es248.js.map +1 -1
  228. package/dist/index.es249.js +2 -125
  229. package/dist/index.es249.js.map +1 -1
  230. package/dist/index.es25.js +3 -1
  231. package/dist/index.es25.js.map +1 -1
  232. package/dist/index.es250.js +2 -164
  233. package/dist/index.es250.js.map +1 -1
  234. package/dist/index.es251.js +2 -2
  235. package/dist/index.es252.js +2 -2
  236. package/dist/index.es253.js +1 -1
  237. package/dist/index.es258.js +1 -1
  238. package/dist/index.es260.js +2 -2
  239. package/dist/index.es262.js +2 -2
  240. package/dist/index.es265.js +1 -1
  241. package/dist/index.es267.js +1 -1
  242. package/dist/index.es277.js +2 -147
  243. package/dist/index.es277.js.map +1 -1
  244. package/dist/index.es278.js +126 -167
  245. package/dist/index.es278.js.map +1 -1
  246. package/dist/index.es279.js +188 -2
  247. package/dist/index.es279.js.map +1 -1
  248. package/dist/index.es280.js +1 -1
  249. package/dist/index.es283.js +1 -1
  250. package/dist/index.es288.js +1 -1
  251. package/dist/index.es29.js +1 -1
  252. package/dist/index.es3.js +24 -9
  253. package/dist/index.es3.js.map +1 -1
  254. package/dist/index.es300.js +1 -1
  255. package/dist/index.es302.js +1 -1
  256. package/dist/index.es31.js +7 -7
  257. package/dist/index.es314.js +1 -1
  258. package/dist/index.es32.js +1 -1
  259. package/dist/index.es334.js +2 -2
  260. package/dist/index.es35.js +4 -4
  261. package/dist/index.es36.js +1185 -111
  262. package/dist/index.es36.js.map +1 -1
  263. package/dist/index.es37.js +7 -71
  264. package/dist/index.es37.js.map +1 -1
  265. package/dist/index.es38.js +9 -18
  266. package/dist/index.es38.js.map +1 -1
  267. package/dist/index.es39.js +136 -250
  268. package/dist/index.es39.js.map +1 -1
  269. package/dist/index.es4.js +2 -1
  270. package/dist/index.es4.js.map +1 -1
  271. package/dist/index.es40.js +116 -41
  272. package/dist/index.es40.js.map +1 -1
  273. package/dist/index.es41.js +64 -208
  274. package/dist/index.es41.js.map +1 -1
  275. package/dist/index.es42.js +17 -66
  276. package/dist/index.es42.js.map +1 -1
  277. package/dist/index.es43.js +236 -117
  278. package/dist/index.es43.js.map +1 -1
  279. package/dist/index.es44.js +38 -19
  280. package/dist/index.es44.js.map +1 -1
  281. package/dist/index.es45.js +202 -217
  282. package/dist/index.es45.js.map +1 -1
  283. package/dist/index.es46.js +65 -7
  284. package/dist/index.es46.js.map +1 -1
  285. package/dist/index.es47.js +131 -1181
  286. package/dist/index.es47.js.map +1 -1
  287. package/dist/index.es48.js +25 -8
  288. package/dist/index.es48.js.map +1 -1
  289. package/dist/index.es49.js +218 -135
  290. package/dist/index.es49.js.map +1 -1
  291. package/dist/index.es5.js.map +1 -1
  292. package/dist/index.es50.js +5 -208
  293. package/dist/index.es50.js.map +1 -1
  294. package/dist/index.es51.js +208 -5
  295. package/dist/index.es51.js.map +1 -1
  296. package/dist/index.es52.js +90 -7
  297. package/dist/index.es52.js.map +1 -1
  298. package/dist/index.es53.js +6 -92
  299. package/dist/index.es53.js.map +1 -1
  300. package/dist/index.es54.js +14 -3
  301. package/dist/index.es54.js.map +1 -1
  302. package/dist/index.es55.js +8 -36
  303. package/dist/index.es55.js.map +1 -1
  304. package/dist/index.es56.js +83 -61
  305. package/dist/index.es56.js.map +1 -1
  306. package/dist/index.es57.js +3 -37
  307. package/dist/index.es57.js.map +1 -1
  308. package/dist/index.es58.js +34 -304
  309. package/dist/index.es58.js.map +1 -1
  310. package/dist/index.es59.js +72 -9
  311. package/dist/index.es59.js.map +1 -1
  312. package/dist/index.es60.js +32 -85
  313. package/dist/index.es60.js.map +1 -1
  314. package/dist/index.es61.js +304 -6
  315. package/dist/index.es61.js.map +1 -1
  316. package/dist/index.es62.js +9 -15
  317. package/dist/index.es62.js.map +1 -1
  318. package/dist/index.es63.js +3 -3
  319. package/dist/index.es64.js +5 -142
  320. package/dist/index.es64.js.map +1 -1
  321. package/dist/index.es65.js +148 -285
  322. package/dist/index.es65.js.map +1 -1
  323. package/dist/index.es66.js +668 -62
  324. package/dist/index.es66.js.map +1 -1
  325. package/dist/index.es67.js +131 -201
  326. package/dist/index.es67.js.map +1 -1
  327. package/dist/index.es68.js +295 -29
  328. package/dist/index.es68.js.map +1 -1
  329. package/dist/index.es69.js +65 -8
  330. package/dist/index.es69.js.map +1 -1
  331. package/dist/index.es7.js +2 -1
  332. package/dist/index.es7.js.map +1 -1
  333. package/dist/index.es70.js +210 -9
  334. package/dist/index.es70.js.map +1 -1
  335. package/dist/index.es71.js +28 -181
  336. package/dist/index.es71.js.map +1 -1
  337. package/dist/index.es72.js +8 -23
  338. package/dist/index.es72.js.map +1 -1
  339. package/dist/index.es73.js +9 -1397
  340. package/dist/index.es73.js.map +1 -1
  341. package/dist/index.es74.js +187 -9
  342. package/dist/index.es74.js.map +1 -1
  343. package/dist/index.es75.js +24 -8
  344. package/dist/index.es75.js.map +1 -1
  345. package/dist/index.es76.js +1399 -5
  346. package/dist/index.es76.js.map +1 -1
  347. package/dist/index.es77.js +9 -163
  348. package/dist/index.es77.js.map +1 -1
  349. package/dist/index.es78.js +8 -672
  350. package/dist/index.es78.js.map +1 -1
  351. package/dist/index.es79.js +36 -20
  352. package/dist/index.es79.js.map +1 -1
  353. package/dist/index.es80.js +5 -68
  354. package/dist/index.es80.js.map +1 -1
  355. package/dist/index.es81.js +73 -3
  356. package/dist/index.es81.js.map +1 -1
  357. package/dist/index.es82.js +36 -11
  358. package/dist/index.es82.js.map +1 -1
  359. package/dist/index.es83.js +10 -38
  360. package/dist/index.es83.js.map +1 -1
  361. package/dist/index.es84.js +34 -28
  362. package/dist/index.es84.js.map +1 -1
  363. package/dist/index.es85.js +28 -226
  364. package/dist/index.es85.js.map +1 -1
  365. package/dist/index.es86.js +228 -26
  366. package/dist/index.es86.js.map +1 -1
  367. package/dist/index.es87.js +26 -71
  368. package/dist/index.es87.js.map +1 -1
  369. package/dist/index.es88.js +41 -42
  370. package/dist/index.es88.js.map +1 -1
  371. package/dist/index.es89.js +71 -47
  372. package/dist/index.es89.js.map +1 -1
  373. package/dist/index.es90.js +37 -15
  374. package/dist/index.es90.js.map +1 -1
  375. package/dist/index.es91.js +6 -19
  376. package/dist/index.es91.js.map +1 -1
  377. package/dist/index.es92.js +40 -54
  378. package/dist/index.es92.js.map +1 -1
  379. package/dist/index.es93.js +56 -12
  380. package/dist/index.es93.js.map +1 -1
  381. package/dist/index.es94.js +13 -137
  382. package/dist/index.es94.js.map +1 -1
  383. package/dist/index.es95.js +135 -19
  384. package/dist/index.es95.js.map +1 -1
  385. package/dist/index.es96.js +18 -179
  386. package/dist/index.es96.js.map +1 -1
  387. package/dist/index.es97.js +163 -222
  388. package/dist/index.es97.js.map +1 -1
  389. package/dist/index.es98.js +187 -301
  390. package/dist/index.es98.js.map +1 -1
  391. package/dist/index.es99.js +348 -130
  392. package/dist/index.es99.js.map +1 -1
  393. package/package.json +1 -1
@@ -1,265 +1,151 @@
1
- import { Serializable } from "./index.es64.js";
2
- import { isDataContentBlock } from "./index.es53.js";
3
- import { convertToV1FromAnthropicInput } from "./index.es65.js";
4
- import { convertToV1FromDataContent } from "./index.es66.js";
5
- import { convertToV1FromChatCompletionsInput } from "./index.es67.js";
6
- import { isMessage } from "./index.es54.js";
7
- import { convertToFormattedString } from "./index.es68.js";
8
- const MESSAGE_SYMBOL = /* @__PURE__ */ Symbol.for("langchain.message");
9
- function mergeContent(firstContent, secondContent) {
10
- if (typeof firstContent === "string") {
11
- if (firstContent === "") return secondContent;
12
- if (typeof secondContent === "string") return firstContent + secondContent;
13
- else if (Array.isArray(secondContent) && secondContent.length === 0) return firstContent;
14
- else if (Array.isArray(secondContent) && secondContent.some((c) => isDataContentBlock(c))) return [{
15
- type: "text",
16
- source_type: "text",
17
- text: firstContent
18
- }, ...secondContent];
19
- else return [{
20
- type: "text",
21
- text: firstContent
22
- }, ...secondContent];
23
- } else if (Array.isArray(secondContent)) return _mergeLists(firstContent, secondContent) ?? [...firstContent, ...secondContent];
24
- else if (secondContent === "") return firstContent;
25
- else if (Array.isArray(firstContent) && firstContent.some((c) => isDataContentBlock(c))) return [...firstContent, {
26
- type: "file",
27
- source_type: "text",
28
- text: secondContent
29
- }];
30
- else return [...firstContent, {
31
- type: "text",
32
- text: secondContent
33
- }];
34
- }
35
- function _mergeStatus(left, right) {
36
- if (left === "error" || right === "error") return "error";
37
- return "success";
38
- }
39
- function stringifyWithDepthLimit(obj, depthLimit) {
40
- function helper(obj$1, currentDepth) {
41
- if (typeof obj$1 !== "object" || obj$1 === null || obj$1 === void 0) return obj$1;
42
- if (currentDepth >= depthLimit) {
43
- if (Array.isArray(obj$1)) return "[Array]";
44
- return "[Object]";
1
+ function getBranchSequence(history) {
2
+ const nodeIds = /* @__PURE__ */ new Set();
3
+ const childrenMap = {};
4
+ if (history.length <= 1) return {
5
+ rootSequence: {
6
+ type: "sequence",
7
+ items: history.map((value) => ({
8
+ type: "node",
9
+ value,
10
+ path: []
11
+ }))
12
+ },
13
+ paths: []
14
+ };
15
+ history.forEach((state) => {
16
+ const checkpointId = state.parent_checkpoint?.checkpoint_id ?? "$";
17
+ childrenMap[checkpointId] ??= [];
18
+ childrenMap[checkpointId].push(state);
19
+ if (state.checkpoint?.checkpoint_id != null) nodeIds.add(state.checkpoint.checkpoint_id);
20
+ });
21
+ const maxId = (...ids) => ids.filter((i) => i != null).sort((a, b) => a.localeCompare(b)).at(-1);
22
+ const lastOrphanedNode = childrenMap.$ == null ? Object.keys(childrenMap).filter((parentId) => !nodeIds.has(parentId)).map((parentId) => {
23
+ const queue$1 = [parentId];
24
+ const seen = /* @__PURE__ */ new Set();
25
+ let lastId = parentId;
26
+ while (queue$1.length > 0) {
27
+ const current = queue$1.shift();
28
+ if (seen.has(current)) continue;
29
+ seen.add(current);
30
+ const children = (childrenMap[current] ?? []).flatMap((i) => i.checkpoint?.checkpoint_id ?? []);
31
+ lastId = maxId(lastId, ...children);
32
+ queue$1.push(...children);
45
33
  }
46
- if (Array.isArray(obj$1)) return obj$1.map((item) => helper(item, currentDepth + 1));
47
- const result = {};
48
- for (const key of Object.keys(obj$1)) result[key] = helper(obj$1[key], currentDepth + 1);
49
- return result;
50
- }
51
- return JSON.stringify(helper(obj, 0), null, 2);
52
- }
53
- var BaseMessage = class extends Serializable {
54
- lc_namespace = ["langchain_core", "messages"];
55
- lc_serializable = true;
56
- get lc_aliases() {
57
34
  return {
58
- additional_kwargs: "additional_kwargs",
59
- response_metadata: "response_metadata"
35
+ parentId,
36
+ lastId
60
37
  };
61
- }
62
- [MESSAGE_SYMBOL] = true;
63
- id;
64
- /** @inheritdoc */
65
- name;
66
- content;
67
- additional_kwargs;
68
- response_metadata;
69
- /**
70
- * @deprecated Use .getType() instead or import the proper typeguard.
71
- * For example:
72
- *
73
- * ```ts
74
- * import { isAIMessage } from "@langchain/core/messages";
75
- *
76
- * const message = new AIMessage("Hello!");
77
- * isAIMessage(message); // true
78
- * ```
79
- */
80
- _getType() {
81
- return this.type;
82
- }
83
- /**
84
- * @deprecated Use .type instead
85
- * The type of the message.
86
- */
87
- getType() {
88
- return this._getType();
89
- }
90
- constructor(arg) {
91
- const fields = typeof arg === "string" || Array.isArray(arg) ? { content: arg } : arg;
92
- if (!fields.additional_kwargs) fields.additional_kwargs = {};
93
- if (!fields.response_metadata) fields.response_metadata = {};
94
- super(fields);
95
- this.name = fields.name;
96
- if (fields.content === void 0 && fields.contentBlocks !== void 0) {
97
- this.content = fields.contentBlocks;
98
- this.response_metadata = {
99
- output_version: "v1",
100
- ...fields.response_metadata
38
+ }).sort((a, b) => a.lastId.localeCompare(b.lastId)).at(-1)?.parentId : void 0;
39
+ if (lastOrphanedNode != null) childrenMap.$ = childrenMap[lastOrphanedNode];
40
+ const rootSequence = {
41
+ type: "sequence",
42
+ items: []
43
+ };
44
+ const queue = [{
45
+ id: "$",
46
+ sequence: rootSequence,
47
+ path: []
48
+ }];
49
+ const paths = [];
50
+ const visited = /* @__PURE__ */ new Set();
51
+ while (queue.length > 0) {
52
+ const task = queue.shift();
53
+ if (visited.has(task.id)) continue;
54
+ visited.add(task.id);
55
+ const children = childrenMap[task.id];
56
+ if (children == null || children.length === 0) continue;
57
+ let fork;
58
+ if (children.length > 1) {
59
+ fork = {
60
+ type: "fork",
61
+ items: []
101
62
  };
102
- } else if (fields.content !== void 0) {
103
- this.content = fields.content ?? [];
104
- this.response_metadata = fields.response_metadata;
105
- } else {
106
- this.content = [];
107
- this.response_metadata = fields.response_metadata;
63
+ task.sequence.items.push(fork);
108
64
  }
109
- this.additional_kwargs = fields.additional_kwargs;
110
- this.id = fields.id;
111
- }
112
- /** Get text content of the message. */
113
- get text() {
114
- if (typeof this.content === "string") return this.content;
115
- if (!Array.isArray(this.content)) return "";
116
- return this.content.map((c) => {
117
- if (typeof c === "string") return c;
118
- if (c.type === "text") return c.text;
119
- return "";
120
- }).join("");
121
- }
122
- get contentBlocks() {
123
- const blocks = typeof this.content === "string" ? [{
124
- type: "text",
125
- text: this.content
126
- }] : this.content;
127
- const parsingSteps = [
128
- convertToV1FromDataContent,
129
- convertToV1FromChatCompletionsInput,
130
- convertToV1FromAnthropicInput
131
- ];
132
- const parsedBlocks = parsingSteps.reduce((blocks$1, step) => step(blocks$1), blocks);
133
- return parsedBlocks;
134
- }
135
- toDict() {
136
- return {
137
- type: this.getType(),
138
- data: this.toJSON().kwargs
139
- };
140
- }
141
- static lc_name() {
142
- return "BaseMessage";
143
- }
144
- get _printableFields() {
145
- return {
146
- id: this.id,
147
- content: this.content,
148
- name: this.name,
149
- additional_kwargs: this.additional_kwargs,
150
- response_metadata: this.response_metadata
151
- };
152
- }
153
- static isInstance(obj) {
154
- return typeof obj === "object" && obj !== null && MESSAGE_SYMBOL in obj && obj[MESSAGE_SYMBOL] === true && isMessage(obj);
155
- }
156
- _updateId(value) {
157
- this.id = value;
158
- this.lc_kwargs.id = value;
159
- }
160
- get [Symbol.toStringTag]() {
161
- return this.constructor.lc_name();
162
- }
163
- [/* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom")](depth) {
164
- if (depth === null) return this;
165
- const printable = stringifyWithDepthLimit(this._printableFields, Math.max(4, depth));
166
- return `${this.constructor.lc_name()} ${printable}`;
167
- }
168
- toFormattedString(format = "pretty") {
169
- return convertToFormattedString(this, format);
170
- }
171
- };
172
- function isOpenAIToolCallArray(value) {
173
- return Array.isArray(value) && value.every((v) => typeof v.index === "number");
174
- }
175
- function _mergeDicts(left, right) {
176
- if (left === void 0 && right === void 0) return void 0;
177
- if (left === void 0 || right === void 0) return left ?? right;
178
- const merged = { ...left };
179
- for (const [key, value] of Object.entries(right)) if (merged[key] == null) merged[key] = value;
180
- else if (value == null) continue;
181
- else if (typeof merged[key] !== typeof value || Array.isArray(merged[key]) !== Array.isArray(value)) throw new Error(`field[${key}] already exists in the message chunk, but with a different type.`);
182
- else if (typeof merged[key] === "string") if (key === "type") continue;
183
- else if ([
184
- "id",
185
- "name",
186
- "output_version",
187
- "model_provider"
188
- ].includes(key)) {
189
- if (value) merged[key] = value;
190
- } else merged[key] += value;
191
- else if (typeof merged[key] === "number") merged[key] = merged[key] + value;
192
- else if (typeof merged[key] === "object" && !Array.isArray(merged[key])) merged[key] = _mergeDicts(merged[key], value);
193
- else if (Array.isArray(merged[key])) merged[key] = _mergeLists(merged[key], value);
194
- else if (merged[key] === value) continue;
195
- else console.warn(`field[${key}] already exists in this message chunk and value has unsupported type.`);
196
- return merged;
197
- }
198
- function _mergeLists(left, right) {
199
- if (left === void 0 && right === void 0) return void 0;
200
- else if (left === void 0 || right === void 0) return left || right;
201
- else {
202
- const merged = [...left];
203
- for (const item of right) if (typeof item === "object" && item !== null && "index" in item && typeof item.index === "number") {
204
- const toMerge = merged.findIndex((leftItem) => {
205
- const isObject = typeof leftItem === "object";
206
- const indiciesMatch = "index" in leftItem && leftItem.index === item.index;
207
- const idsMatch = "id" in leftItem && "id" in item && leftItem?.id === item?.id;
208
- const eitherItemMissingID = !("id" in leftItem) || !leftItem?.id || !("id" in item) || !item?.id;
209
- return isObject && indiciesMatch && (idsMatch || eitherItemMissingID);
65
+ for (const value of children) {
66
+ const id = value.checkpoint?.checkpoint_id;
67
+ if (id == null) continue;
68
+ let { sequence } = task;
69
+ let { path } = task;
70
+ if (fork != null) {
71
+ sequence = {
72
+ type: "sequence",
73
+ items: []
74
+ };
75
+ fork.items.unshift(sequence);
76
+ path = path.slice();
77
+ path.push(id);
78
+ paths.push(path);
79
+ }
80
+ sequence.items.push({
81
+ type: "node",
82
+ value,
83
+ path
84
+ });
85
+ queue.push({
86
+ id,
87
+ sequence,
88
+ path
210
89
  });
211
- if (toMerge !== -1 && typeof merged[toMerge] === "object" && merged[toMerge] !== null) merged[toMerge] = _mergeDicts(merged[toMerge], item);
212
- else merged.push(item);
213
- } else if (typeof item === "object" && item !== null && "text" in item && item.text === "") continue;
214
- else merged.push(item);
215
- return merged;
90
+ }
216
91
  }
92
+ return {
93
+ rootSequence,
94
+ paths
95
+ };
217
96
  }
218
- function _mergeObj(left, right) {
219
- if (left === void 0 && right === void 0) return void 0;
220
- if (left === void 0 || right === void 0) return left ?? right;
221
- else if (typeof left !== typeof right) throw new Error(`Cannot merge objects of different types.
222
- Left ${typeof left}
223
- Right ${typeof right}`);
224
- else if (typeof left === "string" && typeof right === "string") return left + right;
225
- else if (Array.isArray(left) && Array.isArray(right)) return _mergeLists(left, right);
226
- else if (typeof left === "object" && typeof right === "object") return _mergeDicts(left, right);
227
- else if (left === right) return left;
228
- else throw new Error(`Can not merge objects of different types.
229
- Left ${left}
230
- Right ${right}`);
231
- }
232
- var BaseMessageChunk = class BaseMessageChunk2 extends BaseMessage {
233
- static isInstance(obj) {
234
- if (!super.isInstance(obj)) return false;
235
- let proto = Object.getPrototypeOf(obj);
236
- while (proto !== null) {
237
- if (proto === BaseMessageChunk2.prototype) return true;
238
- proto = Object.getPrototypeOf(proto);
97
+ const PATH_SEP = ">";
98
+ const ROOT_ID = "$";
99
+ function getBranchView(sequence, paths, branch) {
100
+ const path = branch.split(PATH_SEP);
101
+ const pathMap = {};
102
+ for (const path$1 of paths) {
103
+ const parent = path$1.at(-2) ?? ROOT_ID;
104
+ pathMap[parent] ??= [];
105
+ pathMap[parent].unshift(path$1);
106
+ }
107
+ const history = [];
108
+ const branchByCheckpoint = {};
109
+ const forkStack = path.slice();
110
+ const queue = [...sequence.items];
111
+ while (queue.length > 0) {
112
+ const item = queue.shift();
113
+ if (item.type === "node") {
114
+ history.push(item.value);
115
+ const checkpointId = item.value.checkpoint?.checkpoint_id;
116
+ if (checkpointId == null) continue;
117
+ branchByCheckpoint[checkpointId] = {
118
+ branch: item.path.join(PATH_SEP),
119
+ branchOptions: (item.path.length > 0 ? pathMap[item.path.at(-2) ?? ROOT_ID] ?? [] : []).map((p) => p.join(PATH_SEP))
120
+ };
121
+ }
122
+ if (item.type === "fork") {
123
+ const forkId = forkStack.shift();
124
+ const index = forkId != null ? item.items.findIndex((value) => {
125
+ const firstItem = value.items.at(0);
126
+ if (!firstItem || firstItem.type !== "node") return false;
127
+ return firstItem.value.checkpoint?.checkpoint_id === forkId;
128
+ }) : -1;
129
+ const nextItems = item.items.at(index)?.items ?? [];
130
+ queue.push(...nextItems);
239
131
  }
240
- return false;
241
132
  }
242
- };
243
- function _isMessageFieldWithRole(x) {
244
- return typeof x.role === "string";
245
- }
246
- function isBaseMessage(messageLike) {
247
- return typeof messageLike?._getType === "function";
133
+ return {
134
+ history,
135
+ branchByCheckpoint
136
+ };
248
137
  }
249
- function isBaseMessageChunk(messageLike) {
250
- return BaseMessageChunk.isInstance(messageLike);
138
+ function getBranchContext(branch, history) {
139
+ const { rootSequence: branchTree, paths } = getBranchSequence(history ?? []);
140
+ const { history: flatHistory, branchByCheckpoint } = getBranchView(branchTree, paths, branch);
141
+ return {
142
+ branchTree,
143
+ flatHistory,
144
+ branchByCheckpoint,
145
+ threadHead: flatHistory.at(-1)
146
+ };
251
147
  }
252
148
  export {
253
- BaseMessage,
254
- BaseMessageChunk,
255
- _isMessageFieldWithRole,
256
- _mergeDicts,
257
- _mergeLists,
258
- _mergeObj,
259
- _mergeStatus,
260
- isBaseMessage,
261
- isBaseMessageChunk,
262
- isOpenAIToolCallArray,
263
- mergeContent
149
+ getBranchContext
264
150
  };
265
151
  //# sourceMappingURL=index.es39.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es39.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/base.js"],"sourcesContent":["import { Serializable } from \"../load/serializable.js\";\nimport { isDataContentBlock } from \"./content/data.js\";\nimport { convertToV1FromAnthropicInput } from \"./block_translators/anthropic.js\";\nimport { convertToV1FromDataContent } from \"./block_translators/data.js\";\nimport { convertToV1FromChatCompletionsInput } from \"./block_translators/openai.js\";\nimport { isMessage } from \"./message.js\";\nimport { convertToFormattedString } from \"./format.js\";\n\n//#region src/messages/base.ts\n/** @internal */\nconst MESSAGE_SYMBOL = Symbol.for(\"langchain.message\");\nfunction mergeContent(firstContent, secondContent) {\n\tif (typeof firstContent === \"string\") {\n\t\tif (firstContent === \"\") return secondContent;\n\t\tif (typeof secondContent === \"string\") return firstContent + secondContent;\n\t\telse if (Array.isArray(secondContent) && secondContent.length === 0) return firstContent;\n\t\telse if (Array.isArray(secondContent) && secondContent.some((c) => isDataContentBlock(c))) return [{\n\t\t\ttype: \"text\",\n\t\t\tsource_type: \"text\",\n\t\t\ttext: firstContent\n\t\t}, ...secondContent];\n\t\telse return [{\n\t\t\ttype: \"text\",\n\t\t\ttext: firstContent\n\t\t}, ...secondContent];\n\t} else if (Array.isArray(secondContent)) return _mergeLists(firstContent, secondContent) ?? [...firstContent, ...secondContent];\n\telse if (secondContent === \"\") return firstContent;\n\telse if (Array.isArray(firstContent) && firstContent.some((c) => isDataContentBlock(c))) return [...firstContent, {\n\t\ttype: \"file\",\n\t\tsource_type: \"text\",\n\t\ttext: secondContent\n\t}];\n\telse return [...firstContent, {\n\t\ttype: \"text\",\n\t\ttext: secondContent\n\t}];\n}\n/**\n* 'Merge' two statuses. If either value passed is 'error', it will return 'error'. Else\n* it will return 'success'.\n*\n* @param {\"success\" | \"error\" | undefined} left The existing value to 'merge' with the new value.\n* @param {\"success\" | \"error\" | undefined} right The new value to 'merge' with the existing value\n* @returns {\"success\" | \"error\"} The 'merged' value.\n*/\nfunction _mergeStatus(left, right) {\n\tif (left === \"error\" || right === \"error\") return \"error\";\n\treturn \"success\";\n}\nfunction stringifyWithDepthLimit(obj, depthLimit) {\n\tfunction helper(obj$1, currentDepth) {\n\t\tif (typeof obj$1 !== \"object\" || obj$1 === null || obj$1 === void 0) return obj$1;\n\t\tif (currentDepth >= depthLimit) {\n\t\t\tif (Array.isArray(obj$1)) return \"[Array]\";\n\t\t\treturn \"[Object]\";\n\t\t}\n\t\tif (Array.isArray(obj$1)) return obj$1.map((item) => helper(item, currentDepth + 1));\n\t\tconst result = {};\n\t\tfor (const key of Object.keys(obj$1)) result[key] = helper(obj$1[key], currentDepth + 1);\n\t\treturn result;\n\t}\n\treturn JSON.stringify(helper(obj, 0), null, 2);\n}\n/**\n* Base class for all types of messages in a conversation. It includes\n* properties like `content`, `name`, and `additional_kwargs`. It also\n* includes methods like `toDict()` and `_getType()`.\n*/\nvar BaseMessage = class extends Serializable {\n\tlc_namespace = [\"langchain_core\", \"messages\"];\n\tlc_serializable = true;\n\tget lc_aliases() {\n\t\treturn {\n\t\t\tadditional_kwargs: \"additional_kwargs\",\n\t\t\tresponse_metadata: \"response_metadata\"\n\t\t};\n\t}\n\t[MESSAGE_SYMBOL] = true;\n\tid;\n\t/** @inheritdoc */\n\tname;\n\tcontent;\n\tadditional_kwargs;\n\tresponse_metadata;\n\t/**\n\t* @deprecated Use .getType() instead or import the proper typeguard.\n\t* For example:\n\t*\n\t* ```ts\n\t* import { isAIMessage } from \"@langchain/core/messages\";\n\t*\n\t* const message = new AIMessage(\"Hello!\");\n\t* isAIMessage(message); // true\n\t* ```\n\t*/\n\t_getType() {\n\t\treturn this.type;\n\t}\n\t/**\n\t* @deprecated Use .type instead\n\t* The type of the message.\n\t*/\n\tgetType() {\n\t\treturn this._getType();\n\t}\n\tconstructor(arg) {\n\t\tconst fields = typeof arg === \"string\" || Array.isArray(arg) ? { content: arg } : arg;\n\t\tif (!fields.additional_kwargs) fields.additional_kwargs = {};\n\t\tif (!fields.response_metadata) fields.response_metadata = {};\n\t\tsuper(fields);\n\t\tthis.name = fields.name;\n\t\tif (fields.content === void 0 && fields.contentBlocks !== void 0) {\n\t\t\tthis.content = fields.contentBlocks;\n\t\t\tthis.response_metadata = {\n\t\t\t\toutput_version: \"v1\",\n\t\t\t\t...fields.response_metadata\n\t\t\t};\n\t\t} else if (fields.content !== void 0) {\n\t\t\tthis.content = fields.content ?? [];\n\t\t\tthis.response_metadata = fields.response_metadata;\n\t\t} else {\n\t\t\tthis.content = [];\n\t\t\tthis.response_metadata = fields.response_metadata;\n\t\t}\n\t\tthis.additional_kwargs = fields.additional_kwargs;\n\t\tthis.id = fields.id;\n\t}\n\t/** Get text content of the message. */\n\tget text() {\n\t\tif (typeof this.content === \"string\") return this.content;\n\t\tif (!Array.isArray(this.content)) return \"\";\n\t\treturn this.content.map((c) => {\n\t\t\tif (typeof c === \"string\") return c;\n\t\t\tif (c.type === \"text\") return c.text;\n\t\t\treturn \"\";\n\t\t}).join(\"\");\n\t}\n\tget contentBlocks() {\n\t\tconst blocks = typeof this.content === \"string\" ? [{\n\t\t\ttype: \"text\",\n\t\t\ttext: this.content\n\t\t}] : this.content;\n\t\tconst parsingSteps = [\n\t\t\tconvertToV1FromDataContent,\n\t\t\tconvertToV1FromChatCompletionsInput,\n\t\t\tconvertToV1FromAnthropicInput\n\t\t];\n\t\tconst parsedBlocks = parsingSteps.reduce((blocks$1, step) => step(blocks$1), blocks);\n\t\treturn parsedBlocks;\n\t}\n\ttoDict() {\n\t\treturn {\n\t\t\ttype: this.getType(),\n\t\t\tdata: this.toJSON().kwargs\n\t\t};\n\t}\n\tstatic lc_name() {\n\t\treturn \"BaseMessage\";\n\t}\n\tget _printableFields() {\n\t\treturn {\n\t\t\tid: this.id,\n\t\t\tcontent: this.content,\n\t\t\tname: this.name,\n\t\t\tadditional_kwargs: this.additional_kwargs,\n\t\t\tresponse_metadata: this.response_metadata\n\t\t};\n\t}\n\tstatic isInstance(obj) {\n\t\treturn typeof obj === \"object\" && obj !== null && MESSAGE_SYMBOL in obj && obj[MESSAGE_SYMBOL] === true && isMessage(obj);\n\t}\n\t_updateId(value) {\n\t\tthis.id = value;\n\t\tthis.lc_kwargs.id = value;\n\t}\n\tget [Symbol.toStringTag]() {\n\t\treturn this.constructor.lc_name();\n\t}\n\t[Symbol.for(\"nodejs.util.inspect.custom\")](depth) {\n\t\tif (depth === null) return this;\n\t\tconst printable = stringifyWithDepthLimit(this._printableFields, Math.max(4, depth));\n\t\treturn `${this.constructor.lc_name()} ${printable}`;\n\t}\n\ttoFormattedString(format = \"pretty\") {\n\t\treturn convertToFormattedString(this, format);\n\t}\n};\nfunction isOpenAIToolCallArray(value) {\n\treturn Array.isArray(value) && value.every((v) => typeof v.index === \"number\");\n}\nfunction _mergeDicts(left, right) {\n\tif (left === void 0 && right === void 0) return void 0;\n\tif (left === void 0 || right === void 0) return left ?? right;\n\tconst merged = { ...left };\n\tfor (const [key, value] of Object.entries(right)) if (merged[key] == null) merged[key] = value;\n\telse if (value == null) continue;\n\telse if (typeof merged[key] !== typeof value || Array.isArray(merged[key]) !== Array.isArray(value)) throw new Error(`field[${key}] already exists in the message chunk, but with a different type.`);\n\telse if (typeof merged[key] === \"string\") if (key === \"type\") continue;\n\telse if ([\n\t\t\"id\",\n\t\t\"name\",\n\t\t\"output_version\",\n\t\t\"model_provider\"\n\t].includes(key)) {\n\t\tif (value) merged[key] = value;\n\t} else merged[key] += value;\n\telse if (typeof merged[key] === \"number\") merged[key] = merged[key] + value;\n\telse if (typeof merged[key] === \"object\" && !Array.isArray(merged[key])) merged[key] = _mergeDicts(merged[key], value);\n\telse if (Array.isArray(merged[key])) merged[key] = _mergeLists(merged[key], value);\n\telse if (merged[key] === value) continue;\n\telse console.warn(`field[${key}] already exists in this message chunk and value has unsupported type.`);\n\treturn merged;\n}\nfunction _mergeLists(left, right) {\n\tif (left === void 0 && right === void 0) return void 0;\n\telse if (left === void 0 || right === void 0) return left || right;\n\telse {\n\t\tconst merged = [...left];\n\t\tfor (const item of right) if (typeof item === \"object\" && item !== null && \"index\" in item && typeof item.index === \"number\") {\n\t\t\tconst toMerge = merged.findIndex((leftItem) => {\n\t\t\t\tconst isObject = typeof leftItem === \"object\";\n\t\t\t\tconst indiciesMatch = \"index\" in leftItem && leftItem.index === item.index;\n\t\t\t\tconst idsMatch = \"id\" in leftItem && \"id\" in item && leftItem?.id === item?.id;\n\t\t\t\tconst eitherItemMissingID = !(\"id\" in leftItem) || !leftItem?.id || !(\"id\" in item) || !item?.id;\n\t\t\t\treturn isObject && indiciesMatch && (idsMatch || eitherItemMissingID);\n\t\t\t});\n\t\t\tif (toMerge !== -1 && typeof merged[toMerge] === \"object\" && merged[toMerge] !== null) merged[toMerge] = _mergeDicts(merged[toMerge], item);\n\t\t\telse merged.push(item);\n\t\t} else if (typeof item === \"object\" && item !== null && \"text\" in item && item.text === \"\") continue;\n\t\telse merged.push(item);\n\t\treturn merged;\n\t}\n}\nfunction _mergeObj(left, right) {\n\tif (left === void 0 && right === void 0) return void 0;\n\tif (left === void 0 || right === void 0) return left ?? right;\n\telse if (typeof left !== typeof right) throw new Error(`Cannot merge objects of different types.\\nLeft ${typeof left}\\nRight ${typeof right}`);\n\telse if (typeof left === \"string\" && typeof right === \"string\") return left + right;\n\telse if (Array.isArray(left) && Array.isArray(right)) return _mergeLists(left, right);\n\telse if (typeof left === \"object\" && typeof right === \"object\") return _mergeDicts(left, right);\n\telse if (left === right) return left;\n\telse throw new Error(`Can not merge objects of different types.\\nLeft ${left}\\nRight ${right}`);\n}\n/**\n* Represents a chunk of a message, which can be concatenated with other\n* message chunks. It includes a method `_merge_kwargs_dict()` for merging\n* additional keyword arguments from another `BaseMessageChunk` into this\n* one. It also overrides the `__add__()` method to support concatenation\n* of `BaseMessageChunk` instances.\n*/\nvar BaseMessageChunk = class BaseMessageChunk extends BaseMessage {\n\tstatic isInstance(obj) {\n\t\tif (!super.isInstance(obj)) return false;\n\t\tlet proto = Object.getPrototypeOf(obj);\n\t\twhile (proto !== null) {\n\t\t\tif (proto === BaseMessageChunk.prototype) return true;\n\t\t\tproto = Object.getPrototypeOf(proto);\n\t\t}\n\t\treturn false;\n\t}\n};\nfunction _isMessageFieldWithRole(x) {\n\treturn typeof x.role === \"string\";\n}\n/**\n* @deprecated Use {@link BaseMessage.isInstance} instead\n*/\nfunction isBaseMessage(messageLike) {\n\treturn typeof messageLike?._getType === \"function\";\n}\n/**\n* @deprecated Use {@link BaseMessageChunk.isInstance} instead\n*/\nfunction isBaseMessageChunk(messageLike) {\n\treturn BaseMessageChunk.isInstance(messageLike);\n}\n\n//#endregion\nexport { BaseMessage, BaseMessageChunk, _isMessageFieldWithRole, _mergeDicts, _mergeLists, _mergeObj, _mergeStatus, isBaseMessage, isBaseMessageChunk, isOpenAIToolCallArray, mergeContent };\n//# sourceMappingURL=base.js.map"],"names":["BaseMessageChunk"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es39.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/branching.js"],"sourcesContent":["//#region src/ui/branching.ts\nfunction getBranchSequence(history) {\n\tconst nodeIds = /* @__PURE__ */ new Set();\n\tconst childrenMap = {};\n\tif (history.length <= 1) return {\n\t\trootSequence: {\n\t\t\ttype: \"sequence\",\n\t\t\titems: history.map((value) => ({\n\t\t\t\ttype: \"node\",\n\t\t\t\tvalue,\n\t\t\t\tpath: []\n\t\t\t}))\n\t\t},\n\t\tpaths: []\n\t};\n\thistory.forEach((state) => {\n\t\tconst checkpointId = state.parent_checkpoint?.checkpoint_id ?? \"$\";\n\t\tchildrenMap[checkpointId] ??= [];\n\t\tchildrenMap[checkpointId].push(state);\n\t\tif (state.checkpoint?.checkpoint_id != null) nodeIds.add(state.checkpoint.checkpoint_id);\n\t});\n\tconst maxId = (...ids) => ids.filter((i) => i != null).sort((a, b) => a.localeCompare(b)).at(-1);\n\tconst lastOrphanedNode = childrenMap.$ == null ? Object.keys(childrenMap).filter((parentId) => !nodeIds.has(parentId)).map((parentId) => {\n\t\tconst queue$1 = [parentId];\n\t\tconst seen = /* @__PURE__ */ new Set();\n\t\tlet lastId = parentId;\n\t\twhile (queue$1.length > 0) {\n\t\t\tconst current = queue$1.shift();\n\t\t\tif (seen.has(current)) continue;\n\t\t\tseen.add(current);\n\t\t\tconst children = (childrenMap[current] ?? []).flatMap((i) => i.checkpoint?.checkpoint_id ?? []);\n\t\t\tlastId = maxId(lastId, ...children);\n\t\t\tqueue$1.push(...children);\n\t\t}\n\t\treturn {\n\t\t\tparentId,\n\t\t\tlastId\n\t\t};\n\t}).sort((a, b) => a.lastId.localeCompare(b.lastId)).at(-1)?.parentId : void 0;\n\tif (lastOrphanedNode != null) childrenMap.$ = childrenMap[lastOrphanedNode];\n\tconst rootSequence = {\n\t\ttype: \"sequence\",\n\t\titems: []\n\t};\n\tconst queue = [{\n\t\tid: \"$\",\n\t\tsequence: rootSequence,\n\t\tpath: []\n\t}];\n\tconst paths = [];\n\tconst visited = /* @__PURE__ */ new Set();\n\twhile (queue.length > 0) {\n\t\tconst task = queue.shift();\n\t\tif (visited.has(task.id)) continue;\n\t\tvisited.add(task.id);\n\t\tconst children = childrenMap[task.id];\n\t\tif (children == null || children.length === 0) continue;\n\t\tlet fork;\n\t\tif (children.length > 1) {\n\t\t\tfork = {\n\t\t\t\ttype: \"fork\",\n\t\t\t\titems: []\n\t\t\t};\n\t\t\ttask.sequence.items.push(fork);\n\t\t}\n\t\tfor (const value of children) {\n\t\t\tconst id = value.checkpoint?.checkpoint_id;\n\t\t\tif (id == null) continue;\n\t\t\tlet { sequence } = task;\n\t\t\tlet { path } = task;\n\t\t\tif (fork != null) {\n\t\t\t\tsequence = {\n\t\t\t\t\ttype: \"sequence\",\n\t\t\t\t\titems: []\n\t\t\t\t};\n\t\t\t\tfork.items.unshift(sequence);\n\t\t\t\tpath = path.slice();\n\t\t\t\tpath.push(id);\n\t\t\t\tpaths.push(path);\n\t\t\t}\n\t\t\tsequence.items.push({\n\t\t\t\ttype: \"node\",\n\t\t\t\tvalue,\n\t\t\t\tpath\n\t\t\t});\n\t\t\tqueue.push({\n\t\t\t\tid,\n\t\t\t\tsequence,\n\t\t\t\tpath\n\t\t\t});\n\t\t}\n\t}\n\treturn {\n\t\trootSequence,\n\t\tpaths\n\t};\n}\nconst PATH_SEP = \">\";\nconst ROOT_ID = \"$\";\nfunction getBranchView(sequence, paths, branch) {\n\tconst path = branch.split(PATH_SEP);\n\tconst pathMap = {};\n\tfor (const path$1 of paths) {\n\t\tconst parent = path$1.at(-2) ?? ROOT_ID;\n\t\tpathMap[parent] ??= [];\n\t\tpathMap[parent].unshift(path$1);\n\t}\n\tconst history = [];\n\tconst branchByCheckpoint = {};\n\tconst forkStack = path.slice();\n\tconst queue = [...sequence.items];\n\twhile (queue.length > 0) {\n\t\tconst item = queue.shift();\n\t\tif (item.type === \"node\") {\n\t\t\thistory.push(item.value);\n\t\t\tconst checkpointId = item.value.checkpoint?.checkpoint_id;\n\t\t\tif (checkpointId == null) continue;\n\t\t\tbranchByCheckpoint[checkpointId] = {\n\t\t\t\tbranch: item.path.join(PATH_SEP),\n\t\t\t\tbranchOptions: (item.path.length > 0 ? pathMap[item.path.at(-2) ?? ROOT_ID] ?? [] : []).map((p) => p.join(PATH_SEP))\n\t\t\t};\n\t\t}\n\t\tif (item.type === \"fork\") {\n\t\t\tconst forkId = forkStack.shift();\n\t\t\tconst index = forkId != null ? item.items.findIndex((value) => {\n\t\t\t\tconst firstItem = value.items.at(0);\n\t\t\t\tif (!firstItem || firstItem.type !== \"node\") return false;\n\t\t\t\treturn firstItem.value.checkpoint?.checkpoint_id === forkId;\n\t\t\t}) : -1;\n\t\t\tconst nextItems = item.items.at(index)?.items ?? [];\n\t\t\tqueue.push(...nextItems);\n\t\t}\n\t}\n\treturn {\n\t\thistory,\n\t\tbranchByCheckpoint\n\t};\n}\nfunction getBranchContext(branch, history) {\n\tconst { rootSequence: branchTree, paths } = getBranchSequence(history ?? []);\n\tconst { history: flatHistory, branchByCheckpoint } = getBranchView(branchTree, paths, branch);\n\treturn {\n\t\tbranchTree,\n\t\tflatHistory,\n\t\tbranchByCheckpoint,\n\t\tthreadHead: flatHistory.at(-1)\n\t};\n}\n\n//#endregion\nexport { getBranchContext };\n//# sourceMappingURL=branching.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
package/dist/index.es4.js CHANGED
@@ -6,6 +6,7 @@ import { FileProvider } from "./index.es8.js";
6
6
  import { StreamProvider } from "./index.es7.js";
7
7
  import { ThreadProvider } from "./index.es6.js";
8
8
  import { SuggestionProvider } from "./index.es11.js";
9
+ import { ToolsProvider } from "./index.es10.js";
9
10
  function ChatProvider({
10
11
  apiUrl,
11
12
  assistantId,
@@ -19,7 +20,7 @@ function ChatProvider({
19
20
  apiUrl,
20
21
  assistantId,
21
22
  identity,
22
- children: /* @__PURE__ */ jsx(ThreadProvider, { children: /* @__PURE__ */ jsx(StreamProvider, { children: /* @__PURE__ */ jsx(SuggestionProvider, { children: /* @__PURE__ */ jsx(CustomComponentProvider, { initialComponents: customComponents, children: /* @__PURE__ */ jsx(FileProvider, { children }) }) }) }) })
23
+ children: /* @__PURE__ */ jsx(ThreadProvider, { children: /* @__PURE__ */ jsx(StreamProvider, { children: /* @__PURE__ */ jsx(SuggestionProvider, { children: /* @__PURE__ */ jsx(ToolsProvider, { children: /* @__PURE__ */ jsx(CustomComponentProvider, { initialComponents: customComponents, children: /* @__PURE__ */ jsx(FileProvider, { children }) }) }) }) }) })
23
24
  }
24
25
  ) });
25
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.es4.js","sources":["../src/providers/ChatProvider.tsx"],"sourcesContent":["import React from \"react\";\nimport { ChatRuntimeProvider } from \"./ChatRuntime\";\nimport { CustomComponentProvider } from \"./CustomComponentProvider\";\nimport { FileProvider } from \"./FileProvider\";\nimport { StreamProvider } from \"./Stream\";\nimport { ThreadProvider } from \"./Thread\";\nimport { SuggestionProvider } from \"./useChatSuggestions\";\n\n/**\n * Identity information for authenticating and identifying the chat user.\n * Used for routing messages and maintaining user context in the chat system.\n */\nexport interface ChatIdentity {\n /** Unique identifier for the user */\n user_id: string;\n /** Organization identifier for multi-tenant applications */\n org_id: string;\n}\n\ninterface ChatProviderProps {\n /** Base URL for the LangGraph API endpoint */\n apiUrl: string;\n /** Unique identifier for the assistant/agent to communicate with */\n assistantId: string;\n /** User and organization identity information */\n identity?: ChatIdentity | null;\n /** Child components that will have access to chat context */\n children: React.ReactNode;\n /** Optional custom React components to render in chat messages */\n customComponents?: Record<string, React.FunctionComponent | React.ComponentClass>;\n}\n\n/**\n * Main provider component that wraps all chat-related contexts.\n * This is the recommended way to set up the chat system as it includes all necessary providers\n * in the correct order: Runtime, Thread, Stream, Suggestions, Custom Components, and File handling.\n * \n * @example\n * ```tsx\n * <ChatProvider\n * apiUrl=\"https://api.example.com\"\n * assistantId=\"my-assistant\"\n * identity={{ user_id: \"user123\", org_id: \"org456\" }}\n * >\n * <YourChatUI />\n * </ChatProvider>\n * ```\n */\nexport function ChatProvider({\n apiUrl,\n assistantId,\n identity,\n children,\n customComponents,\n}: ChatProviderProps) {\n return (\n <React.Suspense fallback={<div>Loading chat...</div>}>\n <ChatRuntimeProvider\n apiUrl={apiUrl}\n assistantId={assistantId}\n identity={identity}\n >\n <ThreadProvider>\n <StreamProvider>\n <SuggestionProvider>\n <CustomComponentProvider initialComponents={customComponents}>\n <FileProvider>{children}</FileProvider>\n </CustomComponentProvider>\n </SuggestionProvider>\n </StreamProvider>\n </ThreadProvider>\n </ChatRuntimeProvider>\n </React.Suspense>\n );\n}"],"names":["React"],"mappings":";;;;;;;;AAgDO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsB;AACpB,SACE,oBAACA,eAAM,UAAN,EAAe,UAAU,oBAAC,OAAA,EAAI,6BAAe,GAC5C,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MAEA,8BAAC,gBAAA,EACC,UAAA,oBAAC,gBAAA,EACC,UAAA,oBAAC,sBACC,UAAA,oBAAC,yBAAA,EAAwB,mBAAmB,kBAC1C,8BAAC,cAAA,EAAc,UAAS,EAAA,CAC1B,EAAA,CACF,GACF,EAAA,CACF;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"index.es4.js","sources":["../src/providers/ChatProvider.tsx"],"sourcesContent":["import React from \"react\";\nimport { ChatRuntimeProvider } from \"./ChatRuntime\";\nimport { CustomComponentProvider } from \"./CustomComponentProvider\";\nimport { FileProvider } from \"./FileProvider\";\nimport { StreamProvider } from \"./Stream\";\nimport { ThreadProvider } from \"./Thread\";\nimport { SuggestionProvider } from \"./useChatSuggestions\";\nimport type { ChatIdentity } from \"@/types/ChatIdentity\";\nimport { ToolsProvider } from \"./ToolsProvider\";\n\n\ninterface ChatProviderProps {\n /** Base URL for the LangGraph API endpoint */\n apiUrl: string;\n /** Unique identifier for the assistant/agent to communicate with */\n assistantId: string;\n /** User and organization identity information */\n identity?: ChatIdentity | null;\n /** Child components that will have access to chat context */\n children: React.ReactNode;\n /** Optional custom React components to render in chat messages */\n customComponents?: Record<string, React.FunctionComponent | React.ComponentClass>;\n}\n\n/**\n * Main provider component that wraps all chat-related contexts.\n * This is the recommended way to set up the chat system as it includes all necessary providers\n * in the correct order: Runtime, Thread, Stream, Suggestions, Custom Components, and File handling.\n * \n * @example\n * ```tsx\n * <ChatProvider\n * apiUrl=\"https://api.example.com\"\n * assistantId=\"my-assistant\"\n * identity={{ user_id: \"user123\", org_id: \"org456\" }}\n * >\n * <YourChatUI />\n * </ChatProvider>\n * ```\n */\nexport function ChatProvider({\n apiUrl,\n assistantId,\n identity,\n children,\n customComponents,\n}: ChatProviderProps) {\n return (\n <React.Suspense fallback={<div>Loading chat...</div>}>\n <ChatRuntimeProvider\n apiUrl={apiUrl}\n assistantId={assistantId}\n identity={identity}\n >\n <ThreadProvider>\n <StreamProvider>\n <SuggestionProvider>\n <ToolsProvider>\n <CustomComponentProvider initialComponents={customComponents}>\n <FileProvider>{children}</FileProvider>\n </CustomComponentProvider>\n </ToolsProvider>\n </SuggestionProvider>\n </StreamProvider>\n </ThreadProvider>\n </ChatRuntimeProvider>\n </React.Suspense>\n );\n}"],"names":["React"],"mappings":";;;;;;;;;AAwCO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsB;AACpB,SACE,oBAACA,eAAM,UAAN,EAAe,UAAU,oBAAC,OAAA,EAAI,6BAAe,GAC5C,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MAEA,8BAAC,gBAAA,EACC,UAAA,oBAAC,kBACC,UAAA,oBAAC,oBAAA,EACC,8BAAC,eAAA,EACC,UAAA,oBAAC,2BAAwB,mBAAmB,kBAC1C,8BAAC,cAAA,EAAc,SAAA,CAAS,GAC1B,EAAA,CACF,EAAA,CACF,GACF,EAAA,CACF;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;"}