langgraph-ui-components 0.0.1 → 0.0.2

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 (532) hide show
  1. package/dist/index.es.js +9 -27085
  2. package/dist/index.es.js.map +1 -1
  3. package/dist/index.es10.js +21 -0
  4. package/dist/index.es10.js.map +1 -0
  5. package/dist/index.es100.js +43 -0
  6. package/dist/index.es100.js.map +1 -0
  7. package/dist/index.es101.js +94 -0
  8. package/dist/index.es101.js.map +1 -0
  9. package/dist/index.es102.js +5 -0
  10. package/dist/index.es102.js.map +1 -0
  11. package/dist/index.es103.js +5 -0
  12. package/dist/index.es103.js.map +1 -0
  13. package/dist/index.es104.js +25 -0
  14. package/dist/index.es104.js.map +1 -0
  15. package/dist/index.es105.js +5 -0
  16. package/dist/index.es105.js.map +1 -0
  17. package/dist/index.es106.js +28 -0
  18. package/dist/index.es106.js.map +1 -0
  19. package/dist/index.es107.js +8 -0
  20. package/dist/index.es107.js.map +1 -0
  21. package/dist/index.es108.js +3 -0
  22. package/dist/index.es108.js.map +1 -0
  23. package/dist/index.es109.js +14 -0
  24. package/dist/index.es109.js.map +1 -0
  25. package/dist/index.es11.js +125 -0
  26. package/dist/index.es11.js.map +1 -0
  27. package/dist/index.es110.js +504 -0
  28. package/dist/index.es110.js.map +1 -0
  29. package/dist/index.es111.js +3 -0
  30. package/dist/index.es111.js.map +1 -0
  31. package/dist/index.es112.js +149 -0
  32. package/dist/index.es112.js.map +1 -0
  33. package/dist/index.es113.js +889 -0
  34. package/dist/index.es113.js.map +1 -0
  35. package/dist/index.es114.js +283 -0
  36. package/dist/index.es114.js.map +1 -0
  37. package/dist/index.es115.js +5 -0
  38. package/dist/index.es115.js.map +1 -0
  39. package/dist/index.es116.js +447 -0
  40. package/dist/index.es116.js.map +1 -0
  41. package/dist/index.es117.js +49 -0
  42. package/dist/index.es117.js.map +1 -0
  43. package/dist/index.es118.js +25 -0
  44. package/dist/index.es118.js.map +1 -0
  45. package/dist/index.es119.js +82 -0
  46. package/dist/index.es119.js.map +1 -0
  47. package/dist/index.es12.js +104 -0
  48. package/dist/index.es12.js.map +1 -0
  49. package/dist/index.es120.js +132 -0
  50. package/dist/index.es120.js.map +1 -0
  51. package/dist/index.es121.js +52 -0
  52. package/dist/index.es121.js.map +1 -0
  53. package/dist/index.es122.js +13 -0
  54. package/dist/index.es122.js.map +1 -0
  55. package/dist/index.es123.js +48 -0
  56. package/dist/index.es123.js.map +1 -0
  57. package/dist/index.es124.js +102 -0
  58. package/dist/index.es124.js.map +1 -0
  59. package/dist/index.es125.js +56 -0
  60. package/dist/index.es125.js.map +1 -0
  61. package/dist/index.es126.js +5 -0
  62. package/dist/index.es126.js.map +1 -0
  63. package/dist/index.es127.js +140 -0
  64. package/dist/index.es127.js.map +1 -0
  65. package/dist/index.es128.js +5 -0
  66. package/dist/index.es128.js.map +1 -0
  67. package/dist/index.es129.js +18 -0
  68. package/dist/index.es129.js.map +1 -0
  69. package/dist/index.es13.js +37 -0
  70. package/dist/index.es13.js.map +1 -0
  71. package/dist/index.es130.js +92 -0
  72. package/dist/index.es130.js.map +1 -0
  73. package/dist/index.es131.js +5 -0
  74. package/dist/index.es131.js.map +1 -0
  75. package/dist/index.es132.js +59 -0
  76. package/dist/index.es132.js.map +1 -0
  77. package/dist/index.es133.js +103 -0
  78. package/dist/index.es133.js.map +1 -0
  79. package/dist/index.es134.js +194 -0
  80. package/dist/index.es134.js.map +1 -0
  81. package/dist/index.es135.js +113 -0
  82. package/dist/index.es135.js.map +1 -0
  83. package/dist/index.es136.js +38 -0
  84. package/dist/index.es136.js.map +1 -0
  85. package/dist/index.es137.js +13 -0
  86. package/dist/index.es137.js.map +1 -0
  87. package/dist/index.es138.js +14 -0
  88. package/dist/index.es138.js.map +1 -0
  89. package/dist/index.es139.js +15 -0
  90. package/dist/index.es139.js.map +1 -0
  91. package/dist/index.es14.js +148 -0
  92. package/dist/index.es14.js.map +1 -0
  93. package/dist/index.es140.js +94 -0
  94. package/dist/index.es140.js.map +1 -0
  95. package/dist/index.es141.js +38 -0
  96. package/dist/index.es141.js.map +1 -0
  97. package/dist/index.es142.js +43 -0
  98. package/dist/index.es142.js.map +1 -0
  99. package/dist/index.es143.js +27 -0
  100. package/dist/index.es143.js.map +1 -0
  101. package/dist/index.es144.js +594 -0
  102. package/dist/index.es144.js.map +1 -0
  103. package/dist/index.es145.js +128 -0
  104. package/dist/index.es145.js.map +1 -0
  105. package/dist/index.es146.js +7 -0
  106. package/dist/index.es146.js.map +1 -0
  107. package/dist/index.es147.js +8 -0
  108. package/dist/index.es147.js.map +1 -0
  109. package/dist/index.es148.js +16 -0
  110. package/dist/index.es148.js.map +1 -0
  111. package/dist/index.es149.js +9 -0
  112. package/dist/index.es149.js.map +1 -0
  113. package/dist/index.es15.js +15 -0
  114. package/dist/index.es15.js.map +1 -0
  115. package/dist/index.es150.js +11 -0
  116. package/dist/index.es150.js.map +1 -0
  117. package/dist/index.es151.js +28 -0
  118. package/dist/index.es151.js.map +1 -0
  119. package/dist/index.es152.js +15 -0
  120. package/dist/index.es152.js.map +1 -0
  121. package/dist/index.es153.js +57 -0
  122. package/dist/index.es153.js.map +1 -0
  123. package/dist/index.es154.js +67 -0
  124. package/dist/index.es154.js.map +1 -0
  125. package/dist/index.es155.js +25 -0
  126. package/dist/index.es155.js.map +1 -0
  127. package/dist/index.es156.js +9 -0
  128. package/dist/index.es156.js.map +1 -0
  129. package/dist/index.es157.js +352 -0
  130. package/dist/index.es157.js.map +1 -0
  131. package/dist/index.es158.js +10 -0
  132. package/dist/index.es158.js.map +1 -0
  133. package/dist/index.es159.js +106 -0
  134. package/dist/index.es159.js.map +1 -0
  135. package/dist/index.es16.js +8 -0
  136. package/dist/index.es16.js.map +1 -0
  137. package/dist/index.es160.js +122 -0
  138. package/dist/index.es160.js.map +1 -0
  139. package/dist/index.es161.js +139 -0
  140. package/dist/index.es161.js.map +1 -0
  141. package/dist/index.es162.js +118 -0
  142. package/dist/index.es162.js.map +1 -0
  143. package/dist/index.es163.js +9 -0
  144. package/dist/index.es163.js.map +1 -0
  145. package/dist/index.es164.js +145 -0
  146. package/dist/index.es164.js.map +1 -0
  147. package/dist/index.es165.js +5 -0
  148. package/dist/index.es165.js.map +1 -0
  149. package/dist/index.es166.js +3685 -0
  150. package/dist/index.es166.js.map +1 -0
  151. package/dist/index.es167.js +345 -0
  152. package/dist/index.es167.js.map +1 -0
  153. package/dist/index.es168.js +112 -0
  154. package/dist/index.es168.js.map +1 -0
  155. package/dist/index.es169.js +136 -0
  156. package/dist/index.es169.js.map +1 -0
  157. package/dist/index.es17.js +36 -0
  158. package/dist/index.es17.js.map +1 -0
  159. package/dist/index.es170.js +18 -0
  160. package/dist/index.es170.js.map +1 -0
  161. package/dist/index.es171.js +155 -0
  162. package/dist/index.es171.js.map +1 -0
  163. package/dist/index.es172.js +18 -0
  164. package/dist/index.es172.js.map +1 -0
  165. package/dist/index.es173.js +11 -0
  166. package/dist/index.es173.js.map +1 -0
  167. package/dist/index.es174.js +24 -0
  168. package/dist/index.es174.js.map +1 -0
  169. package/dist/index.es175.js +93 -0
  170. package/dist/index.es175.js.map +1 -0
  171. package/dist/index.es176.js +27 -0
  172. package/dist/index.es176.js.map +1 -0
  173. package/dist/index.es177.js +9 -0
  174. package/dist/index.es177.js.map +1 -0
  175. package/dist/index.es178.js +7 -0
  176. package/dist/index.es178.js.map +1 -0
  177. package/dist/index.es179.js +21 -0
  178. package/dist/index.es179.js.map +1 -0
  179. package/dist/index.es18.js +126 -0
  180. package/dist/index.es18.js.map +1 -0
  181. package/dist/index.es180.js +35 -0
  182. package/dist/index.es180.js.map +1 -0
  183. package/dist/index.es181.js +9 -0
  184. package/dist/index.es181.js.map +1 -0
  185. package/dist/index.es182.js +109 -0
  186. package/dist/index.es182.js.map +1 -0
  187. package/dist/index.es183.js +16 -0
  188. package/dist/index.es183.js.map +1 -0
  189. package/dist/index.es184.js +21 -0
  190. package/dist/index.es184.js.map +1 -0
  191. package/dist/index.es185.js +34 -0
  192. package/dist/index.es185.js.map +1 -0
  193. package/dist/index.es186.js +7 -0
  194. package/dist/index.es186.js.map +1 -0
  195. package/dist/index.es187.js +8 -0
  196. package/dist/index.es187.js.map +1 -0
  197. package/dist/index.es188.js +8 -0
  198. package/dist/index.es188.js.map +1 -0
  199. package/dist/index.es189.js +40 -0
  200. package/dist/index.es189.js.map +1 -0
  201. package/dist/index.es19.js +41 -0
  202. package/dist/index.es19.js.map +1 -0
  203. package/dist/index.es190.js +11 -0
  204. package/dist/index.es190.js.map +1 -0
  205. package/dist/index.es191.js +9 -0
  206. package/dist/index.es191.js.map +1 -0
  207. package/dist/index.es192.js +10 -0
  208. package/dist/index.es192.js.map +1 -0
  209. package/dist/index.es193.js +45 -0
  210. package/dist/index.es193.js.map +1 -0
  211. package/dist/index.es194.js +16 -0
  212. package/dist/index.es194.js.map +1 -0
  213. package/dist/index.es195.js +245 -0
  214. package/dist/index.es195.js.map +1 -0
  215. package/dist/index.es196.js +54 -0
  216. package/dist/index.es196.js.map +1 -0
  217. package/dist/index.es197.js +38 -0
  218. package/dist/index.es197.js.map +1 -0
  219. package/dist/index.es198.js +16 -0
  220. package/dist/index.es198.js.map +1 -0
  221. package/dist/index.es199.js +11 -0
  222. package/dist/index.es199.js.map +1 -0
  223. package/dist/index.es2.js +142 -0
  224. package/dist/index.es2.js.map +1 -0
  225. package/dist/index.es20.js +46 -0
  226. package/dist/index.es20.js.map +1 -0
  227. package/dist/index.es200.js +10 -0
  228. package/dist/index.es200.js.map +1 -0
  229. package/dist/index.es201.js +68 -0
  230. package/dist/index.es201.js.map +1 -0
  231. package/dist/index.es202.js +44 -0
  232. package/dist/index.es202.js.map +1 -0
  233. package/dist/index.es203.js +35 -0
  234. package/dist/index.es203.js.map +1 -0
  235. package/dist/index.es204.js +65 -0
  236. package/dist/index.es204.js.map +1 -0
  237. package/dist/index.es205.js +18 -0
  238. package/dist/index.es205.js.map +1 -0
  239. package/dist/index.es206.js +26 -0
  240. package/dist/index.es206.js.map +1 -0
  241. package/dist/index.es207.js +8 -0
  242. package/dist/index.es207.js.map +1 -0
  243. package/dist/index.es208.js +20 -0
  244. package/dist/index.es208.js.map +1 -0
  245. package/dist/index.es209.js +36 -0
  246. package/dist/index.es209.js.map +1 -0
  247. package/dist/index.es21.js +21 -0
  248. package/dist/index.es21.js.map +1 -0
  249. package/dist/index.es210.js +8 -0
  250. package/dist/index.es210.js.map +1 -0
  251. package/dist/index.es211.js +8 -0
  252. package/dist/index.es211.js.map +1 -0
  253. package/dist/index.es212.js +8 -0
  254. package/dist/index.es212.js.map +1 -0
  255. package/dist/index.es213.js +11 -0
  256. package/dist/index.es213.js.map +1 -0
  257. package/dist/index.es214.js +95 -0
  258. package/dist/index.es214.js.map +1 -0
  259. package/dist/index.es215.js +21 -0
  260. package/dist/index.es215.js.map +1 -0
  261. package/dist/index.es216.js +765 -0
  262. package/dist/index.es216.js.map +1 -0
  263. package/dist/index.es217.js +69 -0
  264. package/dist/index.es217.js.map +1 -0
  265. package/dist/index.es218.js +177 -0
  266. package/dist/index.es218.js.map +1 -0
  267. package/dist/index.es219.js +41 -0
  268. package/dist/index.es219.js.map +1 -0
  269. package/dist/index.es22.js +76 -0
  270. package/dist/index.es22.js.map +1 -0
  271. package/dist/index.es220.js +140 -0
  272. package/dist/index.es220.js.map +1 -0
  273. package/dist/index.es221.js +96 -0
  274. package/dist/index.es221.js.map +1 -0
  275. package/dist/index.es222.js +36 -0
  276. package/dist/index.es222.js.map +1 -0
  277. package/dist/index.es223.js +288 -0
  278. package/dist/index.es223.js.map +1 -0
  279. package/dist/index.es224.js +29 -0
  280. package/dist/index.es224.js.map +1 -0
  281. package/dist/index.es225.js +27 -0
  282. package/dist/index.es225.js.map +1 -0
  283. package/dist/index.es226.js +18 -0
  284. package/dist/index.es226.js.map +1 -0
  285. package/dist/index.es227.js +18 -0
  286. package/dist/index.es227.js.map +1 -0
  287. package/dist/index.es228.js +29 -0
  288. package/dist/index.es228.js.map +1 -0
  289. package/dist/index.es229.js +49 -0
  290. package/dist/index.es229.js.map +1 -0
  291. package/dist/index.es23.js +34 -0
  292. package/dist/index.es23.js.map +1 -0
  293. package/dist/index.es230.js +15 -0
  294. package/dist/index.es230.js.map +1 -0
  295. package/dist/index.es231.js +15 -0
  296. package/dist/index.es231.js.map +1 -0
  297. package/dist/index.es232.js +15 -0
  298. package/dist/index.es232.js.map +1 -0
  299. package/dist/index.es233.js +18 -0
  300. package/dist/index.es233.js.map +1 -0
  301. package/dist/index.es234.js +15 -0
  302. package/dist/index.es234.js.map +1 -0
  303. package/dist/index.es235.js +15 -0
  304. package/dist/index.es235.js.map +1 -0
  305. package/dist/index.es236.js +15 -0
  306. package/dist/index.es236.js.map +1 -0
  307. package/dist/index.es237.js +19 -0
  308. package/dist/index.es237.js.map +1 -0
  309. package/dist/index.es238.js +15 -0
  310. package/dist/index.es238.js.map +1 -0
  311. package/dist/index.es239.js +15 -0
  312. package/dist/index.es239.js.map +1 -0
  313. package/dist/index.es24.js +97 -0
  314. package/dist/index.es24.js.map +1 -0
  315. package/dist/index.es240.js +15 -0
  316. package/dist/index.es240.js.map +1 -0
  317. package/dist/index.es241.js +15 -0
  318. package/dist/index.es241.js.map +1 -0
  319. package/dist/index.es242.js +15 -0
  320. package/dist/index.es242.js.map +1 -0
  321. package/dist/index.es243.js +15 -0
  322. package/dist/index.es243.js.map +1 -0
  323. package/dist/index.es244.js +15 -0
  324. package/dist/index.es244.js.map +1 -0
  325. package/dist/index.es245.js +15 -0
  326. package/dist/index.es245.js.map +1 -0
  327. package/dist/index.es246.js +60 -0
  328. package/dist/index.es246.js.map +1 -0
  329. package/dist/index.es247.js +53 -0
  330. package/dist/index.es247.js.map +1 -0
  331. package/dist/index.es248.js +123 -0
  332. package/dist/index.es248.js.map +1 -0
  333. package/dist/index.es249.js +388 -0
  334. package/dist/index.es249.js.map +1 -0
  335. package/dist/index.es25.js +74 -0
  336. package/dist/index.es25.js.map +1 -0
  337. package/dist/index.es250.js +22 -0
  338. package/dist/index.es250.js.map +1 -0
  339. package/dist/index.es251.js +15 -0
  340. package/dist/index.es251.js.map +1 -0
  341. package/dist/index.es252.js +35 -0
  342. package/dist/index.es252.js.map +1 -0
  343. package/dist/index.es253.js +35 -0
  344. package/dist/index.es253.js.map +1 -0
  345. package/dist/index.es254.js +66 -0
  346. package/dist/index.es254.js.map +1 -0
  347. package/dist/index.es255.js +21 -0
  348. package/dist/index.es255.js.map +1 -0
  349. package/dist/index.es256.js +81 -0
  350. package/dist/index.es256.js.map +1 -0
  351. package/dist/index.es257.js +15 -0
  352. package/dist/index.es257.js.map +1 -0
  353. package/dist/index.es258.js +15 -0
  354. package/dist/index.es258.js.map +1 -0
  355. package/dist/index.es259.js +19 -0
  356. package/dist/index.es259.js.map +1 -0
  357. package/dist/index.es26.js +180 -0
  358. package/dist/index.es26.js.map +1 -0
  359. package/dist/index.es260.js +56 -0
  360. package/dist/index.es260.js.map +1 -0
  361. package/dist/index.es261.js +170 -0
  362. package/dist/index.es261.js.map +1 -0
  363. package/dist/index.es262.js +5 -0
  364. package/dist/index.es262.js.map +1 -0
  365. package/dist/index.es263.js +14 -0
  366. package/dist/index.es263.js.map +1 -0
  367. package/dist/index.es264.js +23 -0
  368. package/dist/index.es264.js.map +1 -0
  369. package/dist/index.es265.js +42 -0
  370. package/dist/index.es265.js.map +1 -0
  371. package/dist/index.es27.js +16 -0
  372. package/dist/index.es27.js.map +1 -0
  373. package/dist/index.es28.js +441 -0
  374. package/dist/index.es28.js.map +1 -0
  375. package/dist/index.es29.js +122 -0
  376. package/dist/index.es29.js.map +1 -0
  377. package/dist/index.es3.js +30 -0
  378. package/dist/index.es3.js.map +1 -0
  379. package/dist/index.es30.js +77 -0
  380. package/dist/index.es30.js.map +1 -0
  381. package/dist/index.es31.js +15 -0
  382. package/dist/index.es31.js.map +1 -0
  383. package/dist/index.es32.js +262 -0
  384. package/dist/index.es32.js.map +1 -0
  385. package/dist/index.es33.js +47 -0
  386. package/dist/index.es33.js.map +1 -0
  387. package/dist/index.es34.js +215 -0
  388. package/dist/index.es34.js.map +1 -0
  389. package/dist/index.es35.js +71 -0
  390. package/dist/index.es35.js.map +1 -0
  391. package/dist/index.es36.js +146 -0
  392. package/dist/index.es36.js.map +1 -0
  393. package/dist/index.es37.js +28 -0
  394. package/dist/index.es37.js.map +1 -0
  395. package/dist/index.es38.js +228 -0
  396. package/dist/index.es38.js.map +1 -0
  397. package/dist/index.es39.js +13 -0
  398. package/dist/index.es39.js.map +1 -0
  399. package/dist/index.es4.js +30 -0
  400. package/dist/index.es4.js.map +1 -0
  401. package/dist/index.es40.js +1203 -0
  402. package/dist/index.es40.js.map +1 -0
  403. package/dist/index.es41.js +12 -0
  404. package/dist/index.es41.js.map +1 -0
  405. package/dist/index.es42.js +151 -0
  406. package/dist/index.es42.js.map +1 -0
  407. package/dist/index.es43.js +18 -0
  408. package/dist/index.es43.js.map +1 -0
  409. package/dist/index.es44.js +11 -0
  410. package/dist/index.es44.js.map +1 -0
  411. package/dist/index.es45.js +97 -0
  412. package/dist/index.es45.js.map +1 -0
  413. package/dist/index.es46.js +7 -0
  414. package/dist/index.es46.js.map +1 -0
  415. package/dist/index.es47.js +39 -0
  416. package/dist/index.es47.js.map +1 -0
  417. package/dist/index.es48.js +75 -0
  418. package/dist/index.es48.js.map +1 -0
  419. package/dist/index.es49.js +41 -0
  420. package/dist/index.es49.js.map +1 -0
  421. package/dist/index.es5.js +26 -0
  422. package/dist/index.es5.js.map +1 -0
  423. package/dist/index.es50.js +309 -0
  424. package/dist/index.es50.js.map +1 -0
  425. package/dist/index.es51.js +12 -0
  426. package/dist/index.es51.js.map +1 -0
  427. package/dist/index.es52.js +88 -0
  428. package/dist/index.es52.js.map +1 -0
  429. package/dist/index.es53.js +11 -0
  430. package/dist/index.es53.js.map +1 -0
  431. package/dist/index.es54.js +18 -0
  432. package/dist/index.es54.js.map +1 -0
  433. package/dist/index.es55.js +144 -0
  434. package/dist/index.es55.js.map +1 -0
  435. package/dist/index.es56.js +303 -0
  436. package/dist/index.es56.js.map +1 -0
  437. package/dist/index.es57.js +69 -0
  438. package/dist/index.es57.js.map +1 -0
  439. package/dist/index.es58.js +216 -0
  440. package/dist/index.es58.js.map +1 -0
  441. package/dist/index.es59.js +37 -0
  442. package/dist/index.es59.js.map +1 -0
  443. package/dist/index.es6.js +122 -0
  444. package/dist/index.es6.js.map +1 -0
  445. package/dist/index.es60.js +12 -0
  446. package/dist/index.es60.js.map +1 -0
  447. package/dist/index.es61.js +15 -0
  448. package/dist/index.es61.js.map +1 -0
  449. package/dist/index.es62.js +190 -0
  450. package/dist/index.es62.js.map +1 -0
  451. package/dist/index.es63.js +19 -0
  452. package/dist/index.es63.js.map +1 -0
  453. package/dist/index.es64.js +1403 -0
  454. package/dist/index.es64.js.map +1 -0
  455. package/dist/index.es65.js +12 -0
  456. package/dist/index.es65.js.map +1 -0
  457. package/dist/index.es66.js +11 -0
  458. package/dist/index.es66.js.map +1 -0
  459. package/dist/index.es67.js +9 -0
  460. package/dist/index.es67.js.map +1 -0
  461. package/dist/index.es68.js +8 -0
  462. package/dist/index.es68.js.map +1 -0
  463. package/dist/index.es69.js +8 -0
  464. package/dist/index.es69.js.map +1 -0
  465. package/dist/index.es7.js +19 -0
  466. package/dist/index.es7.js.map +1 -0
  467. package/dist/index.es70.js +15 -0
  468. package/dist/index.es70.js.map +1 -0
  469. package/dist/index.es71.js +26 -0
  470. package/dist/index.es71.js.map +1 -0
  471. package/dist/index.es72.js +37 -0
  472. package/dist/index.es72.js.map +1 -0
  473. package/dist/index.es73.js +235 -0
  474. package/dist/index.es73.js.map +1 -0
  475. package/dist/index.es74.js +71 -0
  476. package/dist/index.es74.js.map +1 -0
  477. package/dist/index.es75.js +72 -0
  478. package/dist/index.es75.js.map +1 -0
  479. package/dist/index.es76.js +60 -0
  480. package/dist/index.es76.js.map +1 -0
  481. package/dist/index.es77.js +16 -0
  482. package/dist/index.es77.js.map +1 -0
  483. package/dist/index.es78.js +140 -0
  484. package/dist/index.es78.js.map +1 -0
  485. package/dist/index.es79.js +24 -0
  486. package/dist/index.es79.js.map +1 -0
  487. package/dist/index.es8.js +61 -0
  488. package/dist/index.es8.js.map +1 -0
  489. package/dist/index.es80.js +185 -0
  490. package/dist/index.es80.js.map +1 -0
  491. package/dist/index.es81.js +244 -0
  492. package/dist/index.es81.js.map +1 -0
  493. package/dist/index.es82.js +358 -0
  494. package/dist/index.es82.js.map +1 -0
  495. package/dist/index.es83.js +140 -0
  496. package/dist/index.es83.js.map +1 -0
  497. package/dist/index.es84.js +73 -0
  498. package/dist/index.es84.js.map +1 -0
  499. package/dist/index.es85.js +40 -0
  500. package/dist/index.es85.js.map +1 -0
  501. package/dist/index.es86.js +40 -0
  502. package/dist/index.es86.js.map +1 -0
  503. package/dist/index.es87.js +169 -0
  504. package/dist/index.es87.js.map +1 -0
  505. package/dist/index.es88.js +206 -0
  506. package/dist/index.es88.js.map +1 -0
  507. package/dist/index.es89.js +17 -0
  508. package/dist/index.es89.js.map +1 -0
  509. package/dist/index.es9.js +109 -0
  510. package/dist/index.es9.js.map +1 -0
  511. package/dist/index.es90.js +33 -0
  512. package/dist/index.es90.js.map +1 -0
  513. package/dist/index.es91.js +37 -0
  514. package/dist/index.es91.js.map +1 -0
  515. package/dist/index.es92.js +3160 -0
  516. package/dist/index.es92.js.map +1 -0
  517. package/dist/index.es93.js +84 -0
  518. package/dist/index.es93.js.map +1 -0
  519. package/dist/index.es94.js +5 -0
  520. package/dist/index.es94.js.map +1 -0
  521. package/dist/index.es95.js +13 -0
  522. package/dist/index.es95.js.map +1 -0
  523. package/dist/index.es96.js +278 -0
  524. package/dist/index.es96.js.map +1 -0
  525. package/dist/index.es97.js +5 -0
  526. package/dist/index.es97.js.map +1 -0
  527. package/dist/index.es98.js +167 -0
  528. package/dist/index.es98.js.map +1 -0
  529. package/dist/index.es99.js +54 -0
  530. package/dist/index.es99.js.map +1 -0
  531. package/dist/styles.css +1 -1
  532. package/package.json +12 -10
@@ -0,0 +1,216 @@
1
+ import { _isObject, _isArray, _isString, _isContentBlock, iife } from "./index.es72.js";
2
+ import { isOpenAIDataBlock, convertToV1FromOpenAIDataBlock } from "./index.es57.js";
3
+ function convertToV1FromChatCompletions(message) {
4
+ const blocks = [];
5
+ if (typeof message.content === "string") blocks.push({
6
+ type: "text",
7
+ text: message.content
8
+ });
9
+ else blocks.push(...convertToV1FromChatCompletionsInput(message.content));
10
+ for (const toolCall of message.tool_calls ?? []) blocks.push({
11
+ type: "tool_call",
12
+ id: toolCall.id,
13
+ name: toolCall.name,
14
+ args: toolCall.args
15
+ });
16
+ return blocks;
17
+ }
18
+ function convertToV1FromChatCompletionsChunk(message) {
19
+ const blocks = [];
20
+ if (typeof message.content === "string") blocks.push({
21
+ type: "text",
22
+ text: message.content
23
+ });
24
+ else blocks.push(...convertToV1FromChatCompletionsInput(message.content));
25
+ for (const toolCall of message.tool_calls ?? []) blocks.push({
26
+ type: "tool_call",
27
+ id: toolCall.id,
28
+ name: toolCall.name,
29
+ args: toolCall.args
30
+ });
31
+ return blocks;
32
+ }
33
+ function convertToV1FromChatCompletionsInput(blocks) {
34
+ const convertedBlocks = [];
35
+ for (const block of blocks) if (isOpenAIDataBlock(block)) convertedBlocks.push(convertToV1FromOpenAIDataBlock(block));
36
+ else convertedBlocks.push(block);
37
+ return convertedBlocks;
38
+ }
39
+ function convertResponsesAnnotation(annotation) {
40
+ if (annotation.type === "url_citation") {
41
+ const { url, title, start_index, end_index } = annotation;
42
+ return {
43
+ type: "citation",
44
+ url,
45
+ title,
46
+ startIndex: start_index,
47
+ endIndex: end_index
48
+ };
49
+ }
50
+ if (annotation.type === "file_citation") {
51
+ const { file_id, filename, index } = annotation;
52
+ return {
53
+ type: "citation",
54
+ title: filename,
55
+ startIndex: index,
56
+ endIndex: index,
57
+ fileId: file_id
58
+ };
59
+ }
60
+ return annotation;
61
+ }
62
+ function convertToV1FromResponses(message) {
63
+ function* iterateContent() {
64
+ if (_isObject(message.additional_kwargs?.reasoning) && _isArray(message.additional_kwargs.reasoning.summary)) {
65
+ const summary = message.additional_kwargs.reasoning.summary.reduce((acc, item) => {
66
+ if (_isObject(item) && _isString(item.text)) return `${acc}${item.text}`;
67
+ return acc;
68
+ }, "");
69
+ yield {
70
+ type: "reasoning",
71
+ reasoning: summary
72
+ };
73
+ }
74
+ const content = typeof message.content === "string" ? [{
75
+ type: "text",
76
+ text: message.content
77
+ }] : message.content;
78
+ for (const block of content) if (_isContentBlock(block, "text")) {
79
+ const { text, annotations, ...rest } = block;
80
+ if (Array.isArray(annotations)) yield {
81
+ ...rest,
82
+ type: "text",
83
+ text: String(text),
84
+ annotations: annotations.map(convertResponsesAnnotation)
85
+ };
86
+ else yield {
87
+ ...rest,
88
+ type: "text",
89
+ text: String(text)
90
+ };
91
+ }
92
+ for (const toolCall of message.tool_calls ?? []) yield {
93
+ type: "tool_call",
94
+ id: toolCall.id,
95
+ name: toolCall.name,
96
+ args: toolCall.args
97
+ };
98
+ if (_isObject(message.additional_kwargs) && _isArray(message.additional_kwargs.tool_outputs)) for (const toolOutput of message.additional_kwargs.tool_outputs) {
99
+ if (_isContentBlock(toolOutput, "web_search_call")) {
100
+ yield {
101
+ id: toolOutput.id,
102
+ type: "server_tool_call",
103
+ name: "web_search",
104
+ args: { query: toolOutput.query }
105
+ };
106
+ continue;
107
+ } else if (_isContentBlock(toolOutput, "file_search_call")) {
108
+ yield {
109
+ id: toolOutput.id,
110
+ type: "server_tool_call",
111
+ name: "file_search",
112
+ args: { query: toolOutput.query }
113
+ };
114
+ continue;
115
+ } else if (_isContentBlock(toolOutput, "computer_call")) {
116
+ yield {
117
+ type: "non_standard",
118
+ value: toolOutput
119
+ };
120
+ continue;
121
+ } else if (_isContentBlock(toolOutput, "code_interpreter_call")) {
122
+ if (_isString(toolOutput.code)) yield {
123
+ id: toolOutput.id,
124
+ type: "server_tool_call",
125
+ name: "code_interpreter",
126
+ args: { code: toolOutput.code }
127
+ };
128
+ if (_isArray(toolOutput.outputs)) {
129
+ const returnCode = iife(() => {
130
+ if (toolOutput.status === "in_progress") return void 0;
131
+ if (toolOutput.status === "completed") return 0;
132
+ if (toolOutput.status === "incomplete") return 127;
133
+ if (toolOutput.status === "interpreting") return void 0;
134
+ if (toolOutput.status === "failed") return 1;
135
+ return void 0;
136
+ });
137
+ for (const output of toolOutput.outputs) if (_isContentBlock(output, "logs")) {
138
+ yield {
139
+ type: "server_tool_call_result",
140
+ toolCallId: toolOutput.id ?? "",
141
+ status: "success",
142
+ output: {
143
+ type: "code_interpreter_output",
144
+ returnCode: returnCode ?? 0,
145
+ stderr: [0, void 0].includes(returnCode) ? void 0 : String(output.logs),
146
+ stdout: [0, void 0].includes(returnCode) ? String(output.logs) : void 0
147
+ }
148
+ };
149
+ continue;
150
+ }
151
+ }
152
+ continue;
153
+ } else if (_isContentBlock(toolOutput, "mcp_call")) {
154
+ yield {
155
+ id: toolOutput.id,
156
+ type: "server_tool_call",
157
+ name: "mcp_call",
158
+ args: toolOutput.input
159
+ };
160
+ continue;
161
+ } else if (_isContentBlock(toolOutput, "mcp_list_tools")) {
162
+ yield {
163
+ id: toolOutput.id,
164
+ type: "server_tool_call",
165
+ name: "mcp_list_tools",
166
+ args: toolOutput.input
167
+ };
168
+ continue;
169
+ } else if (_isContentBlock(toolOutput, "mcp_approval_request")) {
170
+ yield {
171
+ type: "non_standard",
172
+ value: toolOutput
173
+ };
174
+ continue;
175
+ } else if (_isContentBlock(toolOutput, "image_generation_call")) {
176
+ yield {
177
+ type: "non_standard",
178
+ value: toolOutput
179
+ };
180
+ continue;
181
+ }
182
+ if (_isObject(toolOutput)) yield {
183
+ type: "non_standard",
184
+ value: toolOutput
185
+ };
186
+ }
187
+ }
188
+ return Array.from(iterateContent());
189
+ }
190
+ function convertToV1FromResponsesChunk(message) {
191
+ function* iterateContent() {
192
+ yield* convertToV1FromResponses(message);
193
+ for (const toolCallChunk of message.tool_call_chunks ?? []) yield {
194
+ type: "tool_call_chunk",
195
+ id: toolCallChunk.id,
196
+ name: toolCallChunk.name,
197
+ args: toolCallChunk.args
198
+ };
199
+ }
200
+ return Array.from(iterateContent());
201
+ }
202
+ const ChatOpenAITranslator = {
203
+ translateContent: (message) => {
204
+ if (typeof message.content === "string") return convertToV1FromChatCompletions(message);
205
+ return convertToV1FromResponses(message);
206
+ },
207
+ translateContentChunk: (message) => {
208
+ if (typeof message.content === "string") return convertToV1FromChatCompletionsChunk(message);
209
+ return convertToV1FromResponsesChunk(message);
210
+ }
211
+ };
212
+ export {
213
+ ChatOpenAITranslator,
214
+ convertToV1FromChatCompletionsInput
215
+ };
216
+ //# sourceMappingURL=index.es58.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es58.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.8_openai@6.15.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/openai.js"],"sourcesContent":["import { _isArray, _isContentBlock, _isObject, _isString, iife } from \"./utils.js\";\nimport { convertToV1FromOpenAIDataBlock, isOpenAIDataBlock } from \"./data.js\";\n\n//#region src/messages/block_translators/openai.ts\n/**\n* Converts a ChatOpenAICompletions message to an array of v1 standard content blocks.\n*\n* This function processes an AI message from ChatOpenAICompletions API format\n* and converts it to the standardized v1 content block format. It handles both\n* string content and structured content blocks, as well as tool calls.\n*\n* @param message - The AI message containing ChatOpenAICompletions formatted content\n* @returns Array of content blocks in v1 standard format\n*\n* @example\n* ```typescript\n* const message = new AIMessage(\"Hello world\");\n* const standardBlocks = convertToV1FromChatCompletions(message);\n* // Returns: [{ type: \"text\", text: \"Hello world\" }]\n* ```\n*\n* @example\n* ```typescript\n* const message = new AIMessage([\n* { type: \"text\", text: \"Hello\" },\n* { type: \"image_url\", image_url: { url: \"https://example.com/image.png\" } }\n* ]);\n* message.tool_calls = [\n* { id: \"call_123\", name: \"calculator\", args: { a: 1, b: 2 } }\n* ];\n*\n* const standardBlocks = convertToV1FromChatCompletions(message);\n* // Returns:\n* // [\n* // { type: \"text\", text: \"Hello\" },\n* // { type: \"image\", url: \"https://example.com/image.png\" },\n* // { type: \"tool_call\", id: \"call_123\", name: \"calculator\", args: { a: 1, b: 2 } }\n* // ]\n* ```\n*/\nfunction convertToV1FromChatCompletions(message) {\n\tconst blocks = [];\n\tif (typeof message.content === \"string\") blocks.push({\n\t\ttype: \"text\",\n\t\ttext: message.content\n\t});\n\telse blocks.push(...convertToV1FromChatCompletionsInput(message.content));\n\tfor (const toolCall of message.tool_calls ?? []) blocks.push({\n\t\ttype: \"tool_call\",\n\t\tid: toolCall.id,\n\t\tname: toolCall.name,\n\t\targs: toolCall.args\n\t});\n\treturn blocks;\n}\n/**\n* Converts a ChatOpenAICompletions message chunk to an array of v1 standard content blocks.\n*\n* This function processes an AI message chunk from OpenAI's chat completions API and converts\n* it to the standardized v1 content block format. It handles both string and array content,\n* as well as tool calls that may be present in the chunk.\n*\n* @param message - The AI message chunk containing OpenAI-formatted content blocks\n* @returns Array of content blocks in v1 standard format\n*\n* @example\n* ```typescript\n* const chunk = new AIMessage(\"Hello\");\n* const standardBlocks = convertToV1FromChatCompletionsChunk(chunk);\n* // Returns: [{ type: \"text\", text: \"Hello\" }]\n* ```\n*\n* @example\n* ```typescript\n* const chunk = new AIMessage([\n* { type: \"text\", text: \"Processing...\" }\n* ]);\n* chunk.tool_calls = [\n* { id: \"call_456\", name: \"search\", args: { query: \"test\" } }\n* ];\n*\n* const standardBlocks = convertToV1FromChatCompletionsChunk(chunk);\n* // Returns:\n* // [\n* // { type: \"text\", text: \"Processing...\" },\n* // { type: \"tool_call\", id: \"call_456\", name: \"search\", args: { query: \"test\" } }\n* // ]\n* ```\n*/\nfunction convertToV1FromChatCompletionsChunk(message) {\n\tconst blocks = [];\n\tif (typeof message.content === \"string\") blocks.push({\n\t\ttype: \"text\",\n\t\ttext: message.content\n\t});\n\telse blocks.push(...convertToV1FromChatCompletionsInput(message.content));\n\tfor (const toolCall of message.tool_calls ?? []) blocks.push({\n\t\ttype: \"tool_call\",\n\t\tid: toolCall.id,\n\t\tname: toolCall.name,\n\t\targs: toolCall.args\n\t});\n\treturn blocks;\n}\n/**\n* Converts an array of ChatOpenAICompletions content blocks to v1 standard content blocks.\n*\n* This function processes content blocks from OpenAI's Chat Completions API format\n* and converts them to the standardized v1 content block format. It handles both\n* OpenAI-specific data blocks (which require conversion) and standard blocks\n* (which are passed through with type assertion).\n*\n* @param blocks - Array of content blocks in ChatOpenAICompletions format\n* @returns Array of content blocks in v1 standard format\n*\n* @example\n* ```typescript\n* const openaiBlocks = [\n* { type: \"text\", text: \"Hello world\" },\n* { type: \"image_url\", image_url: { url: \"https://example.com/image.png\" } }\n* ];\n*\n* const standardBlocks = convertToV1FromChatCompletionsInput(openaiBlocks);\n* // Returns:\n* // [\n* // { type: \"text\", text: \"Hello world\" },\n* // { type: \"image\", url: \"https://example.com/image.png\" }\n* // ]\n* ```\n*/\nfunction convertToV1FromChatCompletionsInput(blocks) {\n\tconst convertedBlocks = [];\n\tfor (const block of blocks) if (isOpenAIDataBlock(block)) convertedBlocks.push(convertToV1FromOpenAIDataBlock(block));\n\telse convertedBlocks.push(block);\n\treturn convertedBlocks;\n}\nfunction convertResponsesAnnotation(annotation) {\n\tif (annotation.type === \"url_citation\") {\n\t\tconst { url, title, start_index, end_index } = annotation;\n\t\treturn {\n\t\t\ttype: \"citation\",\n\t\t\turl,\n\t\t\ttitle,\n\t\t\tstartIndex: start_index,\n\t\t\tendIndex: end_index\n\t\t};\n\t}\n\tif (annotation.type === \"file_citation\") {\n\t\tconst { file_id, filename, index } = annotation;\n\t\treturn {\n\t\t\ttype: \"citation\",\n\t\t\ttitle: filename,\n\t\t\tstartIndex: index,\n\t\t\tendIndex: index,\n\t\t\tfileId: file_id\n\t\t};\n\t}\n\treturn annotation;\n}\n/**\n* Converts a ChatOpenAIResponses message to an array of v1 standard content blocks.\n*\n* This function processes an AI message containing OpenAI Responses-specific content blocks\n* and converts them to the standardized v1 content block format. It handles reasoning summaries,\n* text content with annotations, tool calls, and various tool outputs including code interpreter,\n* web search, file search, computer calls, and MCP-related blocks.\n*\n* @param message - The AI message containing OpenAI Responses-formatted content blocks\n* @returns Array of content blocks in v1 standard format\n*\n* @example\n* ```typescript\n* const message = new AIMessage({\n* content: [{ type: \"text\", text: \"Hello world\", annotations: [] }],\n* tool_calls: [{ id: \"123\", name: \"calculator\", args: { a: 1, b: 2 } }],\n* additional_kwargs: {\n* reasoning: { summary: [{ text: \"Let me calculate this...\" }] },\n* tool_outputs: [\n* {\n* type: \"code_interpreter_call\",\n* code: \"print('hello')\",\n* outputs: [{ type: \"logs\", logs: \"hello\" }]\n* }\n* ]\n* }\n* });\n*\n* const standardBlocks = convertToV1FromResponses(message);\n* // Returns:\n* // [\n* // { type: \"reasoning\", reasoning: \"Let me calculate this...\" },\n* // { type: \"text\", text: \"Hello world\", annotations: [] },\n* // { type: \"tool_call\", id: \"123\", name: \"calculator\", args: { a: 1, b: 2 } },\n* // { type: \"code_interpreter_call\", code: \"print('hello')\" },\n* // { type: \"code_interpreter_result\", output: [{ type: \"code_interpreter_output\", returnCode: 0, stdout: \"hello\" }] }\n* // ]\n* ```\n*/\nfunction convertToV1FromResponses(message) {\n\tfunction* iterateContent() {\n\t\tif (_isObject(message.additional_kwargs?.reasoning) && _isArray(message.additional_kwargs.reasoning.summary)) {\n\t\t\tconst summary = message.additional_kwargs.reasoning.summary.reduce((acc, item) => {\n\t\t\t\tif (_isObject(item) && _isString(item.text)) return `${acc}${item.text}`;\n\t\t\t\treturn acc;\n\t\t\t}, \"\");\n\t\t\tyield {\n\t\t\t\ttype: \"reasoning\",\n\t\t\t\treasoning: summary\n\t\t\t};\n\t\t}\n\t\tconst content = typeof message.content === \"string\" ? [{\n\t\t\ttype: \"text\",\n\t\t\ttext: message.content\n\t\t}] : message.content;\n\t\tfor (const block of content) if (_isContentBlock(block, \"text\")) {\n\t\t\tconst { text, annotations,...rest } = block;\n\t\t\tif (Array.isArray(annotations)) yield {\n\t\t\t\t...rest,\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: String(text),\n\t\t\t\tannotations: annotations.map(convertResponsesAnnotation)\n\t\t\t};\n\t\t\telse yield {\n\t\t\t\t...rest,\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: String(text)\n\t\t\t};\n\t\t}\n\t\tfor (const toolCall of message.tool_calls ?? []) yield {\n\t\t\ttype: \"tool_call\",\n\t\t\tid: toolCall.id,\n\t\t\tname: toolCall.name,\n\t\t\targs: toolCall.args\n\t\t};\n\t\tif (_isObject(message.additional_kwargs) && _isArray(message.additional_kwargs.tool_outputs)) for (const toolOutput of message.additional_kwargs.tool_outputs) {\n\t\t\tif (_isContentBlock(toolOutput, \"web_search_call\")) {\n\t\t\t\tyield {\n\t\t\t\t\tid: toolOutput.id,\n\t\t\t\t\ttype: \"server_tool_call\",\n\t\t\t\t\tname: \"web_search\",\n\t\t\t\t\targs: { query: toolOutput.query }\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t} else if (_isContentBlock(toolOutput, \"file_search_call\")) {\n\t\t\t\tyield {\n\t\t\t\t\tid: toolOutput.id,\n\t\t\t\t\ttype: \"server_tool_call\",\n\t\t\t\t\tname: \"file_search\",\n\t\t\t\t\targs: { query: toolOutput.query }\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t} else if (_isContentBlock(toolOutput, \"computer_call\")) {\n\t\t\t\tyield {\n\t\t\t\t\ttype: \"non_standard\",\n\t\t\t\t\tvalue: toolOutput\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t} else if (_isContentBlock(toolOutput, \"code_interpreter_call\")) {\n\t\t\t\tif (_isString(toolOutput.code)) yield {\n\t\t\t\t\tid: toolOutput.id,\n\t\t\t\t\ttype: \"server_tool_call\",\n\t\t\t\t\tname: \"code_interpreter\",\n\t\t\t\t\targs: { code: toolOutput.code }\n\t\t\t\t};\n\t\t\t\tif (_isArray(toolOutput.outputs)) {\n\t\t\t\t\tconst returnCode = iife(() => {\n\t\t\t\t\t\tif (toolOutput.status === \"in_progress\") return void 0;\n\t\t\t\t\t\tif (toolOutput.status === \"completed\") return 0;\n\t\t\t\t\t\tif (toolOutput.status === \"incomplete\") return 127;\n\t\t\t\t\t\tif (toolOutput.status === \"interpreting\") return void 0;\n\t\t\t\t\t\tif (toolOutput.status === \"failed\") return 1;\n\t\t\t\t\t\treturn void 0;\n\t\t\t\t\t});\n\t\t\t\t\tfor (const output of toolOutput.outputs) if (_isContentBlock(output, \"logs\")) {\n\t\t\t\t\t\tyield {\n\t\t\t\t\t\t\ttype: \"server_tool_call_result\",\n\t\t\t\t\t\t\ttoolCallId: toolOutput.id ?? \"\",\n\t\t\t\t\t\t\tstatus: \"success\",\n\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\ttype: \"code_interpreter_output\",\n\t\t\t\t\t\t\t\treturnCode: returnCode ?? 0,\n\t\t\t\t\t\t\t\tstderr: [0, void 0].includes(returnCode) ? void 0 : String(output.logs),\n\t\t\t\t\t\t\t\tstdout: [0, void 0].includes(returnCode) ? String(output.logs) : void 0\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t} else if (_isContentBlock(toolOutput, \"mcp_call\")) {\n\t\t\t\tyield {\n\t\t\t\t\tid: toolOutput.id,\n\t\t\t\t\ttype: \"server_tool_call\",\n\t\t\t\t\tname: \"mcp_call\",\n\t\t\t\t\targs: toolOutput.input\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t} else if (_isContentBlock(toolOutput, \"mcp_list_tools\")) {\n\t\t\t\tyield {\n\t\t\t\t\tid: toolOutput.id,\n\t\t\t\t\ttype: \"server_tool_call\",\n\t\t\t\t\tname: \"mcp_list_tools\",\n\t\t\t\t\targs: toolOutput.input\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t} else if (_isContentBlock(toolOutput, \"mcp_approval_request\")) {\n\t\t\t\tyield {\n\t\t\t\t\ttype: \"non_standard\",\n\t\t\t\t\tvalue: toolOutput\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t} else if (_isContentBlock(toolOutput, \"image_generation_call\")) {\n\t\t\t\tyield {\n\t\t\t\t\ttype: \"non_standard\",\n\t\t\t\t\tvalue: toolOutput\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (_isObject(toolOutput)) yield {\n\t\t\t\ttype: \"non_standard\",\n\t\t\t\tvalue: toolOutput\n\t\t\t};\n\t\t}\n\t}\n\treturn Array.from(iterateContent());\n}\n/**\n* Converts a ChatOpenAIResponses message chunk to an array of v1 standard content blocks.\n*\n* This function processes an AI message chunk containing OpenAI-specific content blocks\n* and converts them to the standardized v1 content block format. It handles both the\n* regular message content and tool call chunks that are specific to streaming responses.\n*\n* @param message - The AI message chunk containing OpenAI-formatted content blocks\n* @returns Array of content blocks in v1 standard format\n*\n* @example\n* ```typescript\n* const messageChunk = new AIMessageChunk({\n* content: [{ type: \"text\", text: \"Hello\" }],\n* tool_call_chunks: [\n* { id: \"call_123\", name: \"calculator\", args: '{\"a\": 1' }\n* ]\n* });\n*\n* const standardBlocks = convertToV1FromResponsesChunk(messageChunk);\n* // Returns:\n* // [\n* // { type: \"text\", text: \"Hello\" },\n* // { type: \"tool_call_chunk\", id: \"call_123\", name: \"calculator\", args: '{\"a\": 1' }\n* // ]\n* ```\n*/\nfunction convertToV1FromResponsesChunk(message) {\n\tfunction* iterateContent() {\n\t\tyield* convertToV1FromResponses(message);\n\t\tfor (const toolCallChunk of message.tool_call_chunks ?? []) yield {\n\t\t\ttype: \"tool_call_chunk\",\n\t\t\tid: toolCallChunk.id,\n\t\t\tname: toolCallChunk.name,\n\t\t\targs: toolCallChunk.args\n\t\t};\n\t}\n\treturn Array.from(iterateContent());\n}\nconst ChatOpenAITranslator = {\n\ttranslateContent: (message) => {\n\t\tif (typeof message.content === \"string\") return convertToV1FromChatCompletions(message);\n\t\treturn convertToV1FromResponses(message);\n\t},\n\ttranslateContentChunk: (message) => {\n\t\tif (typeof message.content === \"string\") return convertToV1FromChatCompletionsChunk(message);\n\t\treturn convertToV1FromResponsesChunk(message);\n\t}\n};\n\n//#endregion\nexport { ChatOpenAITranslator, convertToV1FromChatCompletionsInput };\n//# sourceMappingURL=openai.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,37 @@
1
+ function convertToFormattedString(message, format = "pretty") {
2
+ if (format === "pretty") return convertToPrettyString(message);
3
+ return JSON.stringify(message);
4
+ }
5
+ function convertToPrettyString(message) {
6
+ const lines = [];
7
+ const title = ` ${message.type.charAt(0).toUpperCase() + message.type.slice(1)} Message `;
8
+ const sepLen = Math.floor((80 - title.length) / 2);
9
+ const sep = "=".repeat(sepLen);
10
+ const secondSep = title.length % 2 === 0 ? sep : `${sep}=`;
11
+ lines.push(`${sep}${title}${secondSep}`);
12
+ if (message.type === "ai") {
13
+ const aiMessage = message;
14
+ if (aiMessage.tool_calls && aiMessage.tool_calls.length > 0) {
15
+ lines.push("Tool Calls:");
16
+ for (const tc of aiMessage.tool_calls) {
17
+ lines.push(` ${tc.name} (${tc.id})`);
18
+ lines.push(` Call ID: ${tc.id}`);
19
+ lines.push(" Args:");
20
+ for (const [key, value] of Object.entries(tc.args)) lines.push(` ${key}: ${typeof value === "object" ? JSON.stringify(value) : value}`);
21
+ }
22
+ }
23
+ }
24
+ if (message.type === "tool") {
25
+ const toolMessage = message;
26
+ if (toolMessage.name) lines.push(`Name: ${toolMessage.name}`);
27
+ }
28
+ if (typeof message.content === "string" && message.content.trim()) {
29
+ if (lines.length > 1) lines.push("");
30
+ lines.push(message.content);
31
+ }
32
+ return lines.join("\n");
33
+ }
34
+ export {
35
+ convertToFormattedString
36
+ };
37
+ //# sourceMappingURL=index.es59.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es59.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.8_openai@6.15.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/format.js"],"sourcesContent":["//#region src/messages/format.ts\nfunction convertToFormattedString(message, format = \"pretty\") {\n\tif (format === \"pretty\") return convertToPrettyString(message);\n\treturn JSON.stringify(message);\n}\nfunction convertToPrettyString(message) {\n\tconst lines = [];\n\tconst title = ` ${message.type.charAt(0).toUpperCase() + message.type.slice(1)} Message `;\n\tconst sepLen = Math.floor((80 - title.length) / 2);\n\tconst sep = \"=\".repeat(sepLen);\n\tconst secondSep = title.length % 2 === 0 ? sep : `${sep}=`;\n\tlines.push(`${sep}${title}${secondSep}`);\n\tif (message.type === \"ai\") {\n\t\tconst aiMessage = message;\n\t\tif (aiMessage.tool_calls && aiMessage.tool_calls.length > 0) {\n\t\t\tlines.push(\"Tool Calls:\");\n\t\t\tfor (const tc of aiMessage.tool_calls) {\n\t\t\t\tlines.push(` ${tc.name} (${tc.id})`);\n\t\t\t\tlines.push(` Call ID: ${tc.id}`);\n\t\t\t\tlines.push(\" Args:\");\n\t\t\t\tfor (const [key, value] of Object.entries(tc.args)) lines.push(` ${key}: ${typeof value === \"object\" ? JSON.stringify(value) : value}`);\n\t\t\t}\n\t\t}\n\t}\n\tif (message.type === \"tool\") {\n\t\tconst toolMessage = message;\n\t\tif (toolMessage.name) lines.push(`Name: ${toolMessage.name}`);\n\t}\n\tif (typeof message.content === \"string\" && message.content.trim()) {\n\t\tif (lines.length > 1) lines.push(\"\");\n\t\tlines.push(message.content);\n\t}\n\treturn lines.join(\"\\n\");\n}\n\n//#endregion\nexport { convertToFormattedString };\n//# sourceMappingURL=format.js.map"],"names":[],"mappings":"AACA,SAAS,yBAAyB,SAAS,SAAS,UAAU;AAC7D,MAAI,WAAW,SAAU,QAAO,sBAAsB,OAAO;AAC7D,SAAO,KAAK,UAAU,OAAO;AAC9B;AACA,SAAS,sBAAsB,SAAS;AACvC,QAAM,QAAQ,CAAA;AACd,QAAM,QAAQ,IAAI,QAAQ,KAAK,OAAO,CAAC,EAAE,YAAW,IAAK,QAAQ,KAAK,MAAM,CAAC,CAAC;AAC9E,QAAM,SAAS,KAAK,OAAO,KAAK,MAAM,UAAU,CAAC;AACjD,QAAM,MAAM,IAAI,OAAO,MAAM;AAC7B,QAAM,YAAY,MAAM,SAAS,MAAM,IAAI,MAAM,GAAG,GAAG;AACvD,QAAM,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,SAAS,EAAE;AACvC,MAAI,QAAQ,SAAS,MAAM;AAC1B,UAAM,YAAY;AAClB,QAAI,UAAU,cAAc,UAAU,WAAW,SAAS,GAAG;AAC5D,YAAM,KAAK,aAAa;AACxB,iBAAW,MAAM,UAAU,YAAY;AACtC,cAAM,KAAK,KAAK,GAAG,IAAI,KAAK,GAAG,EAAE,GAAG;AACpC,cAAM,KAAK,aAAa,GAAG,EAAE,EAAE;AAC/B,cAAM,KAAK,SAAS;AACpB,mBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,IAAI,EAAG,OAAM,KAAK,OAAO,GAAG,KAAK,OAAO,UAAU,WAAW,KAAK,UAAU,KAAK,IAAI,KAAK,EAAE;AAAA,MAC1I;AAAA,IACD;AAAA,EACD;AACA,MAAI,QAAQ,SAAS,QAAQ;AAC5B,UAAM,cAAc;AACpB,QAAI,YAAY,KAAM,OAAM,KAAK,SAAS,YAAY,IAAI,EAAE;AAAA,EAC7D;AACA,MAAI,OAAO,QAAQ,YAAY,YAAY,QAAQ,QAAQ,QAAQ;AAClE,QAAI,MAAM,SAAS,EAAG,OAAM,KAAK,EAAE;AACnC,UAAM,KAAK,QAAQ,OAAO;AAAA,EAC3B;AACA,SAAO,MAAM,KAAK,IAAI;AACvB;","x_google_ignoreList":[0]}
@@ -0,0 +1,122 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useChatRuntime } from "./index.es4.js";
3
+ import "@langchain/langgraph-sdk";
4
+ import "./index.es14.js";
5
+ import { createContext, useContext, useCallback, useEffect, useMemo } from "react";
6
+ import { useStream } from "./index.es15.js";
7
+ import { v4 } from "uuid";
8
+ import "./index.es16.js";
9
+ import { toast } from "sonner";
10
+ import { useThread } from "./index.es5.js";
11
+ import { isUIMessage, isRemoveUIMessage, uiMessageReducer } from "./index.es17.js";
12
+ const useTypedStream = useStream;
13
+ const StreamContext = createContext(void 0);
14
+ async function checkGraphStatus(apiUrl, authToken) {
15
+ try {
16
+ const res = await fetch(`${apiUrl}/info`, {
17
+ headers: authToken ? { Authorization: `Bearer ${authToken}` } : void 0
18
+ });
19
+ return res.ok;
20
+ } catch {
21
+ console.error("Failed to intialize LangGraph Agent");
22
+ }
23
+ }
24
+ const StreamSession = ({ fallbackMessage, children }) => {
25
+ const { apiUrl, assistantId, identity } = useChatRuntime();
26
+ const { threadId, setThreadId, configuration } = useThread();
27
+ const streamValue = useTypedStream({
28
+ apiUrl,
29
+ assistantId,
30
+ threadId,
31
+ // null initially → LangGraph creates it
32
+ defaultHeaders: identity?.authToken ? { Authorization: `Bearer ${identity?.authToken}` } : void 0,
33
+ fetchStateHistory: true,
34
+ onCustomEvent: (event, options) => {
35
+ if (isUIMessage(event) || isRemoveUIMessage(event)) {
36
+ options.mutate((prev) => {
37
+ const ui = uiMessageReducer(prev.ui ?? [], event);
38
+ return { ...prev, ui };
39
+ });
40
+ }
41
+ },
42
+ onThreadId: (id) => {
43
+ if (id && id !== threadId) {
44
+ setThreadId(id);
45
+ }
46
+ }
47
+ });
48
+ const submit = useCallback(
49
+ async (input, options) => {
50
+ try {
51
+ return await streamValue.submit(input, {
52
+ ...options,
53
+ config: {
54
+ ...options?.config ?? {},
55
+ configurable: {
56
+ ...identity,
57
+ ...configuration,
58
+ ...options?.config?.configurable ?? {}
59
+ }
60
+ }
61
+ });
62
+ } catch (error) {
63
+ console.error("Agent API failed:", error);
64
+ const errorMessage = fallbackMessage || "Agent is down. Will get back to you soon! Try again later.";
65
+ sendMessage(errorMessage, { type: "system" });
66
+ }
67
+ },
68
+ [streamValue, identity, configuration, fallbackMessage]
69
+ );
70
+ const sendMessage = useCallback(
71
+ async (message, options) => {
72
+ const messageObj = typeof message === "string" ? {
73
+ id: v4(),
74
+ type: options?.type ?? "human",
75
+ content: message
76
+ } : {
77
+ ...message
78
+ };
79
+ await submit(
80
+ { messages: [messageObj] },
81
+ {
82
+ config: options?.config
83
+ }
84
+ );
85
+ },
86
+ [submit]
87
+ );
88
+ useEffect(() => {
89
+ checkGraphStatus(apiUrl, identity?.authToken).then((ok) => {
90
+ if (!ok) {
91
+ toast.error("Failed to connect to LangGraph server", {
92
+ description: `Unable to reach ${apiUrl}`,
93
+ duration: 1e4
94
+ });
95
+ }
96
+ });
97
+ }, [apiUrl, identity?.authToken]);
98
+ const value = useMemo(
99
+ () => ({
100
+ ...streamValue,
101
+ submit,
102
+ sendMessage
103
+ }),
104
+ [streamValue, submit, sendMessage]
105
+ );
106
+ return /* @__PURE__ */ jsx(StreamContext.Provider, { value, children });
107
+ };
108
+ function StreamProvider({ fallbackMessage, children }) {
109
+ return /* @__PURE__ */ jsx(StreamSession, { fallbackMessage, children });
110
+ }
111
+ function useStreamContext() {
112
+ const ctx = useContext(StreamContext);
113
+ if (!ctx) {
114
+ throw new Error("useStreamContext must be used within StreamProvider");
115
+ }
116
+ return ctx;
117
+ }
118
+ export {
119
+ StreamProvider,
120
+ useStreamContext
121
+ };
122
+ //# sourceMappingURL=index.es6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es6.js","sources":["../src/providers/Stream.tsx"],"sourcesContent":["/* @refresh reset */\nimport { useChatRuntime } from \"@/providers/ChatRuntime\";\nimport { type Message } from \"@langchain/langgraph-sdk\";\nimport { useStream } from \"@langchain/langgraph-sdk/react\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport {\n isRemoveUIMessage,\n isUIMessage,\n type RemoveUIMessage,\n type UIMessage,\n uiMessageReducer,\n} from \"@langchain/langgraph-sdk/react-ui\";\nimport {\n createContext,\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n} from \"react\";\nimport { toast } from \"sonner\";\nimport { useThread } from \"./Thread\";\n\nexport type StateType = {\n messages: Message[];\n ui?: UIMessage[];\n suggestions?: string[];\n};\n\nconst useTypedStream = useStream<\n StateType,\n {\n UpdateType: {\n messages?: Message[] | Message | string;\n ui?: (UIMessage | RemoveUIMessage)[] | UIMessage | RemoveUIMessage;\n };\n CustomEventType: UIMessage | RemoveUIMessage;\n }\n>;\n\ntype StreamContextType = ReturnType<typeof useTypedStream> & {\n submit: ReturnType<typeof useTypedStream>[\"submit\"];\n sendMessage: (\n message: Message | string,\n options?: {\n /** If true, message is meant for agent only (not user-visible) */\n type?: Message[\"type\"];\n /** Additional config to pass to the agent */\n config?: any;\n }\n ) => Promise<void>;\n};\n\nconst StreamContext = createContext<StreamContextType | undefined>(undefined);\n\nasync function checkGraphStatus(apiUrl: string, authToken: string | null | undefined) {\n try {\n const res = await fetch(`${apiUrl}/info`, {\n headers: authToken ? { Authorization: `Bearer ${authToken}` } : undefined,\n });\n return res.ok;\n } catch {\n console.error(\"Failed to intialize LangGraph Agent\");\n }\n}\n\nconst StreamSession = ({ fallbackMessage, children }: { fallbackMessage?: string; children: ReactNode }) => {\n const { apiUrl, assistantId, identity } = useChatRuntime();\n const { threadId, setThreadId, configuration } = useThread();\n\n const streamValue = useTypedStream({\n apiUrl,\n assistantId,\n threadId, // null initially → LangGraph creates it\n defaultHeaders: identity?.authToken\n ? { Authorization: `Bearer ${identity?.authToken}` }\n : undefined,\n fetchStateHistory: true,\n onCustomEvent: (event, options) => {\n if (isUIMessage(event) || isRemoveUIMessage(event)) {\n options.mutate((prev) => {\n // console.log(\"UI Event received in StreamProvider:\", event);\n const ui = uiMessageReducer(prev.ui ?? [], event);\n return { ...prev, ui };\n });\n }\n },\n\n onThreadId: (id) => {\n if (id && id !== threadId) {\n setThreadId(id); // store once\n }\n },\n });\n\n /**\n * SINGLE THREAD submit\n * user_id + org_id ALWAYS passed\n */\n const submit = useCallback(\n async (\n input: Parameters<typeof streamValue.submit>[0],\n options?: Parameters<typeof streamValue.submit>[1]\n ) => {\n try {\n return await streamValue.submit(input, {\n ...options,\n config: {\n ...(options?.config ?? {}),\n configurable: {\n ...identity,\n ...configuration,\n ...(options?.config?.configurable ?? {}),\n },\n },\n });\n } catch (error) {\n console.error(\"Agent API failed:\", error);\n\n // Add fallback message as an AI response\n const errorMessage = fallbackMessage || \"Agent is down. Will get back to you soon! Try again later.\";\n\n sendMessage(errorMessage, { type: \"system\" });\n }\n },\n [streamValue, identity, configuration, fallbackMessage]\n );\n\n /**\n * Send a message to the agent programmatically\n * Useful for triggering agent actions without user-visible messages\n * e.g., \"login completed\", \"card clicked: {id}\"\n */\n const sendMessage = useCallback(\n async (\n message: Message | string,\n options?: {\n type?: Message[\"type\"];\n config?: any;\n }\n ) => {\n const messageObj: Message =\n typeof message === \"string\"\n ? ({\n id: uuidv4(),\n type: options?.type ?? \"human\",\n content: message,\n } as Message)\n : {\n ...message,\n };\n\n await submit(\n { messages: [messageObj] },\n {\n config: options?.config,\n }\n );\n },\n [submit]\n );\n\n useEffect(() => {\n checkGraphStatus(apiUrl, identity?.authToken).then((ok) => {\n if (!ok) {\n toast.error(\"Failed to connect to LangGraph server\", {\n description: `Unable to reach ${apiUrl}`,\n duration: 10000,\n });\n }\n });\n }, [apiUrl, identity?.authToken]);\n\n const value = useMemo(\n () => ({\n ...streamValue,\n submit,\n sendMessage,\n }),\n [streamValue, submit, sendMessage]\n );\n\n return (\n <StreamContext.Provider value={value}>{children}</StreamContext.Provider>\n );\n};\n\n/**\n * Provides streaming message functionality for real-time AI responses.\n * Manages message state, handles streaming updates, and provides submit/sendMessage functions.\n * \n * @param fallbackMessage - Optional custom message to display when agent API fails (default: \"Agent is down. Will get back to you soon! Try again later.\")\n * \n * @example\n * ```tsx\n * <StreamProvider fallbackMessage=\"Our AI is currently offline. Please try again soon.\">\n * <ChatInterface />\n * </StreamProvider>\n * ```\n */\nexport function StreamProvider({ fallbackMessage, children }: { fallbackMessage?: string; children: ReactNode }) {\n return <StreamSession fallbackMessage={fallbackMessage}>{children}</StreamSession>;\n}\n\n/**\n * Hook to access the streaming context.\n * Provides access to messages, loading state, and functions to submit messages.\n * \n * @throws {Error} If used outside of StreamProvider\n * \n * @example\n * ```tsx\n * const { messages, isLoading, submit, sendMessage } = useStreamContext();\n * ```\n */\nexport function useStreamContext(): StreamContextType {\n const ctx = useContext(StreamContext);\n if (!ctx) {\n throw new Error(\"useStreamContext must be used within StreamProvider\");\n }\n return ctx;\n}\n"],"names":["uuidv4"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ function addLangChainErrorFields(error, lc_error_code) {
2
+ error.lc_error_code = lc_error_code;
3
+ error.message = `${error.message}
4
+
5
+ Troubleshooting URL: https://docs.langchain.com/oss/javascript/langchain/errors/${lc_error_code}/
6
+ `;
7
+ return error;
8
+ }
9
+ export {
10
+ addLangChainErrorFields
11
+ };
12
+ //# sourceMappingURL=index.es60.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es60.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.8_openai@6.15.0_zod@4.3.5_/node_modules/@langchain/core/dist/errors/index.js"],"sourcesContent":["//#region src/errors/index.ts\nfunction addLangChainErrorFields(error, lc_error_code) {\n\terror.lc_error_code = lc_error_code;\n\terror.message = `${error.message}\\n\\nTroubleshooting URL: https://docs.langchain.com/oss/javascript/langchain/errors/${lc_error_code}/\\n`;\n\treturn error;\n}\n\n//#endregion\nexport { addLangChainErrorFields };\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"AACA,SAAS,wBAAwB,OAAO,eAAe;AACtD,QAAM,gBAAgB;AACtB,QAAM,UAAU,GAAG,MAAM,OAAO;AAAA;AAAA,kFAAuF,aAAa;AAAA;AACpI,SAAO;AACR;","x_google_ignoreList":[0]}
@@ -0,0 +1,15 @@
1
+ function _isToolCall(toolCall) {
2
+ return !!(toolCall && typeof toolCall === "object" && "type" in toolCall && toolCall.type === "tool_call");
3
+ }
4
+ var ToolInputParsingException = class extends Error {
5
+ output;
6
+ constructor(message, output) {
7
+ super(message);
8
+ this.output = output;
9
+ }
10
+ };
11
+ export {
12
+ ToolInputParsingException,
13
+ _isToolCall
14
+ };
15
+ //# sourceMappingURL=index.es61.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es61.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.8_openai@6.15.0_zod@4.3.5_/node_modules/@langchain/core/dist/tools/utils.js"],"sourcesContent":["//#region src/tools/utils.ts\nfunction _isToolCall(toolCall) {\n\treturn !!(toolCall && typeof toolCall === \"object\" && \"type\" in toolCall && toolCall.type === \"tool_call\");\n}\nfunction _configHasToolCallId(config) {\n\treturn !!(config && typeof config === \"object\" && \"toolCall\" in config && config.toolCall != null && typeof config.toolCall === \"object\" && \"id\" in config.toolCall && typeof config.toolCall.id === \"string\");\n}\n/**\n* Custom error class used to handle exceptions related to tool input parsing.\n* It extends the built-in `Error` class and adds an optional `output`\n* property that can hold the output that caused the exception.\n*/\nvar ToolInputParsingException = class extends Error {\n\toutput;\n\tconstructor(message, output) {\n\t\tsuper(message);\n\t\tthis.output = output;\n\t}\n};\n\n//#endregion\nexport { ToolInputParsingException, _configHasToolCallId, _isToolCall };\n//# sourceMappingURL=utils.js.map"],"names":[],"mappings":"AACA,SAAS,YAAY,UAAU;AAC9B,SAAO,CAAC,EAAE,YAAY,OAAO,aAAa,YAAY,UAAU,YAAY,SAAS,SAAS;AAC/F;AASG,IAAC,4BAA4B,cAAc,MAAM;AAAA,EACnD;AAAA,EACA,YAAY,SAAS,QAAQ;AAC5B,UAAM,OAAO;AACb,SAAK,SAAS;AAAA,EACf;AACD;","x_google_ignoreList":[0]}