langgraph-ui-components 0.0.2 → 0.0.4

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 (545) hide show
  1. package/README.md +32 -0
  2. package/dist/index.es100.js +3149 -32
  3. package/dist/index.es100.js.map +1 -1
  4. package/dist/index.es101.js +36 -90
  5. package/dist/index.es101.js.map +1 -1
  6. package/dist/index.es102.js +5 -2
  7. package/dist/index.es102.js.map +1 -1
  8. package/dist/index.es103.js +73 -2
  9. package/dist/index.es103.js.map +1 -1
  10. package/dist/index.es104.js +36 -21
  11. package/dist/index.es104.js.map +1 -1
  12. package/dist/index.es105.js +5 -2
  13. package/dist/index.es105.js.map +1 -1
  14. package/dist/index.es106.js +2 -27
  15. package/dist/index.es106.js.map +1 -1
  16. package/dist/index.es107.js +11 -5
  17. package/dist/index.es107.js.map +1 -1
  18. package/dist/index.es108.js +503 -2
  19. package/dist/index.es108.js.map +1 -1
  20. package/dist/index.es109.js +5 -11
  21. package/dist/index.es109.js.map +1 -1
  22. package/dist/index.es11.js +13 -8
  23. package/dist/index.es11.js.map +1 -1
  24. package/dist/index.es110.js +2 -503
  25. package/dist/index.es110.js.map +1 -1
  26. package/dist/index.es111.js +148 -2
  27. package/dist/index.es111.js.map +1 -1
  28. package/dist/index.es112.js +878 -118
  29. package/dist/index.es112.js.map +1 -1
  30. package/dist/index.es113.js +251 -857
  31. package/dist/index.es113.js.map +1 -1
  32. package/dist/index.es114.js +3 -281
  33. package/dist/index.es114.js.map +1 -1
  34. package/dist/index.es115.js +445 -3
  35. package/dist/index.es115.js.map +1 -1
  36. package/dist/index.es116.js +39 -437
  37. package/dist/index.es116.js.map +1 -1
  38. package/dist/index.es117.js +22 -46
  39. package/dist/index.es117.js.map +1 -1
  40. package/dist/index.es118.js +78 -21
  41. package/dist/index.es118.js.map +1 -1
  42. package/dist/index.es119.js +126 -76
  43. package/dist/index.es119.js.map +1 -1
  44. package/dist/index.es12.js +47 -40
  45. package/dist/index.es12.js.map +1 -1
  46. package/dist/index.es120.js +45 -125
  47. package/dist/index.es120.js.map +1 -1
  48. package/dist/index.es121.js +9 -48
  49. package/dist/index.es121.js.map +1 -1
  50. package/dist/index.es122.js +45 -10
  51. package/dist/index.es122.js.map +1 -1
  52. package/dist/index.es123.js +97 -43
  53. package/dist/index.es123.js.map +1 -1
  54. package/dist/index.es124.js +48 -94
  55. package/dist/index.es124.js.map +1 -1
  56. package/dist/index.es125.js +14 -51
  57. package/dist/index.es125.js.map +1 -1
  58. package/dist/index.es126.js +15 -2
  59. package/dist/index.es126.js.map +1 -1
  60. package/dist/index.es127.js +77 -125
  61. package/dist/index.es127.js.map +1 -1
  62. package/dist/index.es128.js +2 -2
  63. package/dist/index.es129.js +55 -14
  64. package/dist/index.es129.js.map +1 -1
  65. package/dist/index.es13.js +6 -7
  66. package/dist/index.es13.js.map +1 -1
  67. package/dist/index.es130.js +98 -87
  68. package/dist/index.es130.js.map +1 -1
  69. package/dist/index.es131.js +191 -2
  70. package/dist/index.es131.js.map +1 -1
  71. package/dist/index.es132.js +108 -54
  72. package/dist/index.es132.js.map +1 -1
  73. package/dist/index.es133.js +33 -98
  74. package/dist/index.es133.js.map +1 -1
  75. package/dist/index.es134.js +10 -191
  76. package/dist/index.es134.js.map +1 -1
  77. package/dist/index.es135.js +10 -109
  78. package/dist/index.es135.js.map +1 -1
  79. package/dist/index.es136.js +12 -35
  80. package/dist/index.es136.js.map +1 -1
  81. package/dist/index.es137.js +91 -10
  82. package/dist/index.es137.js.map +1 -1
  83. package/dist/index.es138.js +275 -11
  84. package/dist/index.es138.js.map +1 -1
  85. package/dist/index.es139.js +2 -12
  86. package/dist/index.es139.js.map +1 -1
  87. package/dist/index.es14.js +8 -145
  88. package/dist/index.es14.js.map +1 -1
  89. package/dist/index.es140.js +161 -88
  90. package/dist/index.es140.js.map +1 -1
  91. package/dist/index.es141.js +50 -34
  92. package/dist/index.es141.js.map +1 -1
  93. package/dist/index.es142.js +32 -32
  94. package/dist/index.es142.js.map +1 -1
  95. package/dist/index.es143.js +34 -23
  96. package/dist/index.es143.js.map +1 -1
  97. package/dist/index.es144.js +32 -583
  98. package/dist/index.es144.js.map +1 -1
  99. package/dist/index.es145.js +20 -121
  100. package/dist/index.es145.js.map +1 -1
  101. package/dist/index.es146.js +590 -3
  102. package/dist/index.es146.js.map +1 -1
  103. package/dist/index.es147.js +125 -5
  104. package/dist/index.es147.js.map +1 -1
  105. package/dist/index.es148.js +164 -13
  106. package/dist/index.es148.js.map +1 -1
  107. package/dist/index.es149.js +2 -6
  108. package/dist/index.es149.js.map +1 -1
  109. package/dist/index.es15.js +145 -12
  110. package/dist/index.es15.js.map +1 -1
  111. package/dist/index.es150.js +2 -8
  112. package/dist/index.es150.js.map +1 -1
  113. package/dist/index.es151.js +2 -25
  114. package/dist/index.es151.js.map +1 -1
  115. package/dist/index.es152.js +21 -11
  116. package/dist/index.es152.js.map +1 -1
  117. package/dist/index.es153.js +2 -54
  118. package/dist/index.es153.js.map +1 -1
  119. package/dist/index.es154.js +21 -60
  120. package/dist/index.es154.js.map +1 -1
  121. package/dist/index.es155.js +8 -22
  122. package/dist/index.es155.js.map +1 -1
  123. package/dist/index.es156.js +5 -6
  124. package/dist/index.es156.js.map +1 -1
  125. package/dist/index.es157.js +12 -348
  126. package/dist/index.es157.js.map +1 -1
  127. package/dist/index.es158.js +6 -7
  128. package/dist/index.es158.js.map +1 -1
  129. package/dist/index.es159.js +62 -101
  130. package/dist/index.es159.js.map +1 -1
  131. package/dist/index.es16.js +12 -5
  132. package/dist/index.es16.js.map +1 -1
  133. package/dist/index.es160.js +21 -118
  134. package/dist/index.es160.js.map +1 -1
  135. package/dist/index.es161.js +5 -135
  136. package/dist/index.es161.js.map +1 -1
  137. package/dist/index.es162.js +330 -96
  138. package/dist/index.es162.js.map +1 -1
  139. package/dist/index.es163.js +25 -6
  140. package/dist/index.es163.js.map +1 -1
  141. package/dist/index.es164.js +11 -141
  142. package/dist/index.es164.js.map +1 -1
  143. package/dist/index.es165.js +54 -2
  144. package/dist/index.es165.js.map +1 -1
  145. package/dist/index.es166.js +6 -3681
  146. package/dist/index.es166.js.map +1 -1
  147. package/dist/index.es167.js +98 -337
  148. package/dist/index.es167.js.map +1 -1
  149. package/dist/index.es168.js +113 -103
  150. package/dist/index.es168.js.map +1 -1
  151. package/dist/index.es169.js +128 -125
  152. package/dist/index.es169.js.map +1 -1
  153. package/dist/index.es17.js +5 -33
  154. package/dist/index.es17.js.map +1 -1
  155. package/dist/index.es170.js +114 -14
  156. package/dist/index.es170.js.map +1 -1
  157. package/dist/index.es171.js +6 -152
  158. package/dist/index.es171.js.map +1 -1
  159. package/dist/index.es172.js +3 -14
  160. package/dist/index.es172.js.map +1 -1
  161. package/dist/index.es173.js +2 -8
  162. package/dist/index.es173.js.map +1 -1
  163. package/dist/index.es174.js +3732 -16
  164. package/dist/index.es174.js.map +1 -1
  165. package/dist/index.es175.js +322 -70
  166. package/dist/index.es175.js.map +1 -1
  167. package/dist/index.es176.js +106 -21
  168. package/dist/index.es176.js.map +1 -1
  169. package/dist/index.es177.js +133 -6
  170. package/dist/index.es177.js.map +1 -1
  171. package/dist/index.es178.js +15 -4
  172. package/dist/index.es178.js.map +1 -1
  173. package/dist/index.es179.js +149 -15
  174. package/dist/index.es179.js.map +1 -1
  175. package/dist/index.es18.js +29 -119
  176. package/dist/index.es18.js.map +1 -1
  177. package/dist/index.es180.js +15 -32
  178. package/dist/index.es180.js.map +1 -1
  179. package/dist/index.es181.js +8 -6
  180. package/dist/index.es181.js.map +1 -1
  181. package/dist/index.es182.js +20 -105
  182. package/dist/index.es182.js.map +1 -1
  183. package/dist/index.es183.js +88 -11
  184. package/dist/index.es183.js.map +1 -1
  185. package/dist/index.es184.js +242 -17
  186. package/dist/index.es184.js.map +1 -1
  187. package/dist/index.es185.js +23 -30
  188. package/dist/index.es185.js.map +1 -1
  189. package/dist/index.es186.js +6 -4
  190. package/dist/index.es186.js.map +1 -1
  191. package/dist/index.es187.js +4 -5
  192. package/dist/index.es187.js.map +1 -1
  193. package/dist/index.es188.js +18 -5
  194. package/dist/index.es188.js.map +1 -1
  195. package/dist/index.es189.js +7 -36
  196. package/dist/index.es189.js.map +1 -1
  197. package/dist/index.es19.js +17 -37
  198. package/dist/index.es19.js.map +1 -1
  199. package/dist/index.es190.js +141 -7
  200. package/dist/index.es190.js.map +1 -1
  201. package/dist/index.es191.js +2 -6
  202. package/dist/index.es191.js.map +1 -1
  203. package/dist/index.es192.js +32 -7
  204. package/dist/index.es192.js.map +1 -1
  205. package/dist/index.es193.js +5 -41
  206. package/dist/index.es193.js.map +1 -1
  207. package/dist/index.es194.js +106 -13
  208. package/dist/index.es194.js.map +1 -1
  209. package/dist/index.es195.js +11 -240
  210. package/dist/index.es195.js.map +1 -1
  211. package/dist/index.es196.js +16 -49
  212. package/dist/index.es196.js.map +1 -1
  213. package/dist/index.es197.js +29 -33
  214. package/dist/index.es197.js.map +1 -1
  215. package/dist/index.es198.js +3 -12
  216. package/dist/index.es198.js.map +1 -1
  217. package/dist/index.es199.js +4 -7
  218. package/dist/index.es199.js.map +1 -1
  219. package/dist/index.es2.js +10 -16
  220. package/dist/index.es2.js.map +1 -1
  221. package/dist/index.es20.js +66 -40
  222. package/dist/index.es20.js.map +1 -1
  223. package/dist/index.es200.js +5 -7
  224. package/dist/index.es200.js.map +1 -1
  225. package/dist/index.es201.js +33 -61
  226. package/dist/index.es201.js.map +1 -1
  227. package/dist/index.es202.js +7 -40
  228. package/dist/index.es202.js.map +1 -1
  229. package/dist/index.es203.js +5 -31
  230. package/dist/index.es203.js.map +1 -1
  231. package/dist/index.es204.js +5 -60
  232. package/dist/index.es204.js.map +1 -1
  233. package/dist/index.es205.js +36 -9
  234. package/dist/index.es205.js.map +1 -1
  235. package/dist/index.es206.js +13 -23
  236. package/dist/index.es206.js.map +1 -1
  237. package/dist/index.es207.js +241 -4
  238. package/dist/index.es207.js.map +1 -1
  239. package/dist/index.es208.js +47 -13
  240. package/dist/index.es208.js.map +1 -1
  241. package/dist/index.es209.js +32 -30
  242. package/dist/index.es209.js.map +1 -1
  243. package/dist/index.es21.js +37 -17
  244. package/dist/index.es21.js.map +1 -1
  245. package/dist/index.es210.js +12 -4
  246. package/dist/index.es210.js.map +1 -1
  247. package/dist/index.es211.js +7 -4
  248. package/dist/index.es211.js.map +1 -1
  249. package/dist/index.es212.js +7 -5
  250. package/dist/index.es212.js.map +1 -1
  251. package/dist/index.es213.js +64 -7
  252. package/dist/index.es213.js.map +1 -1
  253. package/dist/index.es214.js +39 -90
  254. package/dist/index.es214.js.map +1 -1
  255. package/dist/index.es215.js +29 -15
  256. package/dist/index.es215.js.map +1 -1
  257. package/dist/index.es216.js +57 -757
  258. package/dist/index.es216.js.map +1 -1
  259. package/dist/index.es217.js +15 -66
  260. package/dist/index.es217.js.map +1 -1
  261. package/dist/index.es218.js +21 -172
  262. package/dist/index.es218.js.map +1 -1
  263. package/dist/index.es219.js +4 -37
  264. package/dist/index.es219.js.map +1 -1
  265. package/dist/index.es22.js +27 -71
  266. package/dist/index.es22.js.map +1 -1
  267. package/dist/index.es220.js +15 -135
  268. package/dist/index.es220.js.map +1 -1
  269. package/dist/index.es221.js +32 -92
  270. package/dist/index.es221.js.map +1 -1
  271. package/dist/index.es222.js +4 -32
  272. package/dist/index.es222.js.map +1 -1
  273. package/dist/index.es223.js +4 -284
  274. package/dist/index.es223.js.map +1 -1
  275. package/dist/index.es224.js +5 -26
  276. package/dist/index.es224.js.map +1 -1
  277. package/dist/index.es225.js +7 -23
  278. package/dist/index.es225.js.map +1 -1
  279. package/dist/index.es226.js +91 -14
  280. package/dist/index.es226.js.map +1 -1
  281. package/dist/index.es227.js +17 -14
  282. package/dist/index.es227.js.map +1 -1
  283. package/dist/index.es228.js +761 -25
  284. package/dist/index.es228.js.map +1 -1
  285. package/dist/index.es229.js +66 -46
  286. package/dist/index.es229.js.map +1 -1
  287. package/dist/index.es23.js +144 -27
  288. package/dist/index.es23.js.map +1 -1
  289. package/dist/index.es230.js +173 -11
  290. package/dist/index.es230.js.map +1 -1
  291. package/dist/index.es231.js +37 -11
  292. package/dist/index.es231.js.map +1 -1
  293. package/dist/index.es232.js +136 -11
  294. package/dist/index.es232.js.map +1 -1
  295. package/dist/index.es233.js +92 -14
  296. package/dist/index.es233.js.map +1 -1
  297. package/dist/index.es234.js +32 -11
  298. package/dist/index.es234.js.map +1 -1
  299. package/dist/index.es235.js +284 -11
  300. package/dist/index.es235.js.map +1 -1
  301. package/dist/index.es236.js +25 -11
  302. package/dist/index.es236.js.map +1 -1
  303. package/dist/index.es237.js +21 -13
  304. package/dist/index.es237.js.map +1 -1
  305. package/dist/index.es238.js +14 -11
  306. package/dist/index.es238.js.map +1 -1
  307. package/dist/index.es239.js +14 -11
  308. package/dist/index.es239.js.map +1 -1
  309. package/dist/index.es24.js +298 -86
  310. package/dist/index.es24.js.map +1 -1
  311. package/dist/index.es240.js +25 -11
  312. package/dist/index.es240.js.map +1 -1
  313. package/dist/index.es241.js +45 -11
  314. package/dist/index.es241.js.map +1 -1
  315. package/dist/index.es242.js +11 -11
  316. package/dist/index.es242.js.map +1 -1
  317. package/dist/index.es243.js +11 -11
  318. package/dist/index.es243.js.map +1 -1
  319. package/dist/index.es244.js +11 -11
  320. package/dist/index.es244.js.map +1 -1
  321. package/dist/index.es245.js +14 -11
  322. package/dist/index.es245.js.map +1 -1
  323. package/dist/index.es246.js +11 -56
  324. package/dist/index.es246.js.map +1 -1
  325. package/dist/index.es247.js +11 -49
  326. package/dist/index.es247.js.map +1 -1
  327. package/dist/index.es248.js +11 -119
  328. package/dist/index.es248.js.map +1 -1
  329. package/dist/index.es249.js +13 -382
  330. package/dist/index.es249.js.map +1 -1
  331. package/dist/index.es25.js +117 -66
  332. package/dist/index.es25.js.map +1 -1
  333. package/dist/index.es250.js +11 -18
  334. package/dist/index.es250.js.map +1 -1
  335. package/dist/index.es251.js +11 -11
  336. package/dist/index.es251.js.map +1 -1
  337. package/dist/index.es252.js +11 -31
  338. package/dist/index.es252.js.map +1 -1
  339. package/dist/index.es253.js +11 -31
  340. package/dist/index.es253.js.map +1 -1
  341. package/dist/index.es254.js +11 -62
  342. package/dist/index.es254.js.map +1 -1
  343. package/dist/index.es255.js +11 -17
  344. package/dist/index.es255.js.map +1 -1
  345. package/dist/index.es256.js +11 -77
  346. package/dist/index.es256.js.map +1 -1
  347. package/dist/index.es257.js +11 -11
  348. package/dist/index.es257.js.map +1 -1
  349. package/dist/index.es258.js +56 -11
  350. package/dist/index.es258.js.map +1 -1
  351. package/dist/index.es259.js +48 -14
  352. package/dist/index.es259.js.map +1 -1
  353. package/dist/index.es26.js +6 -177
  354. package/dist/index.es26.js.map +1 -1
  355. package/dist/index.es260.js +112 -45
  356. package/dist/index.es260.js.map +1 -1
  357. package/dist/index.es261.js +350 -132
  358. package/dist/index.es261.js.map +1 -1
  359. package/dist/index.es262.js +19 -2
  360. package/dist/index.es262.js.map +1 -1
  361. package/dist/index.es263.js +11 -10
  362. package/dist/index.es263.js.map +1 -1
  363. package/dist/index.es264.js +29 -17
  364. package/dist/index.es264.js.map +1 -1
  365. package/dist/index.es265.js +28 -35
  366. package/dist/index.es265.js.map +1 -1
  367. package/dist/index.es266.js +66 -0
  368. package/dist/index.es266.js.map +1 -0
  369. package/dist/index.es267.js +21 -0
  370. package/dist/index.es267.js.map +1 -0
  371. package/dist/index.es268.js +81 -0
  372. package/dist/index.es268.js.map +1 -0
  373. package/dist/index.es269.js +15 -0
  374. package/dist/index.es269.js.map +1 -0
  375. package/dist/index.es27.js +102 -13
  376. package/dist/index.es27.js.map +1 -1
  377. package/dist/index.es270.js +15 -0
  378. package/dist/index.es270.js.map +1 -0
  379. package/dist/index.es271.js +19 -0
  380. package/dist/index.es271.js.map +1 -0
  381. package/dist/index.es272.js +56 -0
  382. package/dist/index.es272.js.map +1 -0
  383. package/dist/index.es273.js +170 -0
  384. package/dist/index.es273.js.map +1 -0
  385. package/dist/index.es274.js +5 -0
  386. package/dist/index.es274.js.map +1 -0
  387. package/dist/index.es275.js +14 -0
  388. package/dist/index.es275.js.map +1 -0
  389. package/dist/index.es276.js +23 -0
  390. package/dist/index.es276.js.map +1 -0
  391. package/dist/index.es277.js +42 -0
  392. package/dist/index.es277.js.map +1 -0
  393. package/dist/index.es28.js +65 -432
  394. package/dist/index.es28.js.map +1 -1
  395. package/dist/index.es29.js +175 -115
  396. package/dist/index.es29.js.map +1 -1
  397. package/dist/index.es3.js +2 -3
  398. package/dist/index.es3.js.map +1 -1
  399. package/dist/index.es30.js +23 -70
  400. package/dist/index.es30.js.map +1 -1
  401. package/dist/index.es31.js +12 -11
  402. package/dist/index.es31.js.map +1 -1
  403. package/dist/index.es32.js +428 -246
  404. package/dist/index.es32.js.map +1 -1
  405. package/dist/index.es33.js +14 -43
  406. package/dist/index.es33.js.map +1 -1
  407. package/dist/index.es34.js +110 -203
  408. package/dist/index.es34.js.map +1 -1
  409. package/dist/index.es35.js +68 -64
  410. package/dist/index.es35.js.map +1 -1
  411. package/dist/index.es36.js +17 -141
  412. package/dist/index.es36.js.map +1 -1
  413. package/dist/index.es37.js +251 -14
  414. package/dist/index.es37.js.map +1 -1
  415. package/dist/index.es38.js +36 -217
  416. package/dist/index.es38.js.map +1 -1
  417. package/dist/index.es39.js +213 -7
  418. package/dist/index.es39.js.map +1 -1
  419. package/dist/index.es40.js +55 -1187
  420. package/dist/index.es40.js.map +1 -1
  421. package/dist/index.es41.js +141 -7
  422. package/dist/index.es41.js.map +1 -1
  423. package/dist/index.es42.js +21 -144
  424. package/dist/index.es42.js.map +1 -1
  425. package/dist/index.es43.js +229 -13
  426. package/dist/index.es43.js.map +1 -1
  427. package/dist/index.es44.js +9 -7
  428. package/dist/index.es44.js.map +1 -1
  429. package/dist/index.es45.js +1176 -77
  430. package/dist/index.es45.js.map +1 -1
  431. package/dist/index.es46.js +7 -3
  432. package/dist/index.es46.js.map +1 -1
  433. package/dist/index.es47.js +143 -31
  434. package/dist/index.es47.js.map +1 -1
  435. package/dist/index.es48.js +7 -71
  436. package/dist/index.es48.js.map +1 -1
  437. package/dist/index.es49.js +89 -33
  438. package/dist/index.es49.js.map +1 -1
  439. package/dist/index.es5.js +44 -2
  440. package/dist/index.es5.js.map +1 -1
  441. package/dist/index.es50.js +3 -305
  442. package/dist/index.es50.js.map +1 -1
  443. package/dist/index.es51.js +36 -9
  444. package/dist/index.es51.js.map +1 -1
  445. package/dist/index.es52.js +64 -77
  446. package/dist/index.es52.js.map +1 -1
  447. package/dist/index.es53.js +36 -6
  448. package/dist/index.es53.js.map +1 -1
  449. package/dist/index.es54.js +303 -12
  450. package/dist/index.es54.js.map +1 -1
  451. package/dist/index.es55.js +9 -141
  452. package/dist/index.es55.js.map +1 -1
  453. package/dist/index.es56.js +83 -292
  454. package/dist/index.es56.js.map +1 -1
  455. package/dist/index.es57.js +6 -64
  456. package/dist/index.es57.js.map +1 -1
  457. package/dist/index.es58.js +12 -210
  458. package/dist/index.es58.js.map +1 -1
  459. package/dist/index.es59.js +138 -29
  460. package/dist/index.es59.js.map +1 -1
  461. package/dist/index.es6.js +121 -41
  462. package/dist/index.es6.js.map +1 -1
  463. package/dist/index.es60.js +299 -8
  464. package/dist/index.es60.js.map +1 -1
  465. package/dist/index.es61.js +65 -11
  466. package/dist/index.es61.js.map +1 -1
  467. package/dist/index.es62.js +201 -175
  468. package/dist/index.es62.js.map +1 -1
  469. package/dist/index.es63.js +33 -15
  470. package/dist/index.es63.js.map +1 -1
  471. package/dist/index.es64.js +8 -1399
  472. package/dist/index.es64.js.map +1 -1
  473. package/dist/index.es65.js +12 -9
  474. package/dist/index.es65.js.map +1 -1
  475. package/dist/index.es66.js +187 -8
  476. package/dist/index.es66.js.map +1 -1
  477. package/dist/index.es67.js +24 -6
  478. package/dist/index.es67.js.map +1 -1
  479. package/dist/index.es68.js +1400 -5
  480. package/dist/index.es68.js.map +1 -1
  481. package/dist/index.es69.js +9 -5
  482. package/dist/index.es69.js.map +1 -1
  483. package/dist/index.es70.js +8 -12
  484. package/dist/index.es70.js.map +1 -1
  485. package/dist/index.es71.js +6 -23
  486. package/dist/index.es71.js.map +1 -1
  487. package/dist/index.es72.js +155 -26
  488. package/dist/index.es72.js.map +1 -1
  489. package/dist/index.es73.js +657 -217
  490. package/dist/index.es73.js.map +1 -1
  491. package/dist/index.es74.js +11 -67
  492. package/dist/index.es74.js.map +1 -1
  493. package/dist/index.es75.js +37 -66
  494. package/dist/index.es75.js.map +1 -1
  495. package/dist/index.es76.js +32 -55
  496. package/dist/index.es76.js.map +1 -1
  497. package/dist/index.es77.js +232 -13
  498. package/dist/index.es77.js.map +1 -1
  499. package/dist/index.es78.js +28 -135
  500. package/dist/index.es78.js.map +1 -1
  501. package/dist/index.es79.js +74 -20
  502. package/dist/index.es79.js.map +1 -1
  503. package/dist/index.es80.js +70 -176
  504. package/dist/index.es80.js.map +1 -1
  505. package/dist/index.es81.js +46 -235
  506. package/dist/index.es81.js.map +1 -1
  507. package/dist/index.es82.js +28 -353
  508. package/dist/index.es82.js.map +1 -1
  509. package/dist/index.es83.js +37 -131
  510. package/dist/index.es83.js.map +1 -1
  511. package/dist/index.es84.js +49 -62
  512. package/dist/index.es84.js.map +1 -1
  513. package/dist/index.es85.js +13 -37
  514. package/dist/index.es85.js.map +1 -1
  515. package/dist/index.es86.js +134 -34
  516. package/dist/index.es86.js.map +1 -1
  517. package/dist/index.es87.js +20 -165
  518. package/dist/index.es87.js.map +1 -1
  519. package/dist/index.es88.js +162 -183
  520. package/dist/index.es88.js.map +1 -1
  521. package/dist/index.es89.js +240 -13
  522. package/dist/index.es89.js.map +1 -1
  523. package/dist/index.es90.js +352 -27
  524. package/dist/index.es90.js.map +1 -1
  525. package/dist/index.es91.js +130 -27
  526. package/dist/index.es91.js.map +1 -1
  527. package/dist/index.es92.js +64 -3151
  528. package/dist/index.es92.js.map +1 -1
  529. package/dist/index.es93.js +36 -80
  530. package/dist/index.es93.js.map +1 -1
  531. package/dist/index.es94.js +37 -2
  532. package/dist/index.es94.js.map +1 -1
  533. package/dist/index.es95.js +165 -9
  534. package/dist/index.es95.js.map +1 -1
  535. package/dist/index.es96.js +198 -270
  536. package/dist/index.es96.js.map +1 -1
  537. package/dist/index.es97.js +14 -2
  538. package/dist/index.es97.js.map +1 -1
  539. package/dist/index.es98.js +29 -163
  540. package/dist/index.es98.js.map +1 -1
  541. package/dist/index.es99.js +31 -48
  542. package/dist/index.es99.js.map +1 -1
  543. package/dist/styles.css +1 -1
  544. package/package.json +10 -7
  545. package/src/App.tsx +4 -1
@@ -1,38 +1,34 @@
1
- import { parseAnyDef } from "./index.es152.js";
2
- import { parseRecordDef } from "./index.es196.js";
3
- import { parseDef } from "./index.es153.js";
4
- function parseMapDef(def, refs) {
5
- if (refs.mapStrategy === "record") return parseRecordDef(def, refs);
6
- const keys = parseDef(def.keyType._def, {
7
- ...refs,
8
- currentPath: [
9
- ...refs.currentPath,
10
- "items",
11
- "items",
12
- "0"
13
- ]
14
- }) || parseAnyDef(refs);
15
- const values = parseDef(def.valueType._def, {
16
- ...refs,
17
- currentPath: [
18
- ...refs.currentPath,
19
- "items",
20
- "items",
21
- "1"
22
- ]
23
- }) || parseAnyDef(refs);
24
- return {
25
- type: "array",
26
- maxItems: 125,
27
- items: {
28
- type: "array",
29
- items: [keys, values],
30
- minItems: 2,
31
- maxItems: 2
32
- }
1
+ import { setResponseValueAndErrors } from "./index.es195.js";
2
+ function parseBigintDef(def, refs) {
3
+ const res = {
4
+ type: "integer",
5
+ format: "int64"
33
6
  };
7
+ if (!def.checks) return res;
8
+ for (const check of def.checks) switch (check.kind) {
9
+ case "min":
10
+ if (refs.target === "jsonSchema7") if (check.inclusive) setResponseValueAndErrors(res, "minimum", check.value, check.message, refs);
11
+ else setResponseValueAndErrors(res, "exclusiveMinimum", check.value, check.message, refs);
12
+ else {
13
+ if (!check.inclusive) res.exclusiveMinimum = true;
14
+ setResponseValueAndErrors(res, "minimum", check.value, check.message, refs);
15
+ }
16
+ break;
17
+ case "max":
18
+ if (refs.target === "jsonSchema7") if (check.inclusive) setResponseValueAndErrors(res, "maximum", check.value, check.message, refs);
19
+ else setResponseValueAndErrors(res, "exclusiveMaximum", check.value, check.message, refs);
20
+ else {
21
+ if (!check.inclusive) res.exclusiveMaximum = true;
22
+ setResponseValueAndErrors(res, "maximum", check.value, check.message, refs);
23
+ }
24
+ break;
25
+ case "multipleOf":
26
+ setResponseValueAndErrors(res, "multipleOf", check.value, check.message, refs);
27
+ break;
28
+ }
29
+ return res;
34
30
  }
35
31
  export {
36
- parseMapDef
32
+ parseBigintDef
37
33
  };
38
34
  //# sourceMappingURL=index.es197.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es197.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.8_openai@6.15.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/map.js"],"sourcesContent":["import { parseAnyDef } from \"./any.js\";\nimport { parseRecordDef } from \"./record.js\";\nimport { parseDef } from \"../parseDef.js\";\n\n//#region src/utils/zod-to-json-schema/parsers/map.ts\nfunction parseMapDef(def, refs) {\n\tif (refs.mapStrategy === \"record\") return parseRecordDef(def, refs);\n\tconst keys = parseDef(def.keyType._def, {\n\t\t...refs,\n\t\tcurrentPath: [\n\t\t\t...refs.currentPath,\n\t\t\t\"items\",\n\t\t\t\"items\",\n\t\t\t\"0\"\n\t\t]\n\t}) || parseAnyDef(refs);\n\tconst values = parseDef(def.valueType._def, {\n\t\t...refs,\n\t\tcurrentPath: [\n\t\t\t...refs.currentPath,\n\t\t\t\"items\",\n\t\t\t\"items\",\n\t\t\t\"1\"\n\t\t]\n\t}) || parseAnyDef(refs);\n\treturn {\n\t\ttype: \"array\",\n\t\tmaxItems: 125,\n\t\titems: {\n\t\t\ttype: \"array\",\n\t\t\titems: [keys, values],\n\t\t\tminItems: 2,\n\t\t\tmaxItems: 2\n\t\t}\n\t};\n}\n\n//#endregion\nexport { parseMapDef };\n//# sourceMappingURL=map.js.map"],"names":[],"mappings":";;;AAKA,SAAS,YAAY,KAAK,MAAM;AAC/B,MAAI,KAAK,gBAAgB,SAAU,QAAO,eAAe,KAAK,IAAI;AAClE,QAAM,OAAO,SAAS,IAAI,QAAQ,MAAM;AAAA,IACvC,GAAG;AAAA,IACH,aAAa;AAAA,MACZ,GAAG,KAAK;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACH;AAAA,EACA,CAAE,KAAK,YAAY,IAAI;AACtB,QAAM,SAAS,SAAS,IAAI,UAAU,MAAM;AAAA,IAC3C,GAAG;AAAA,IACH,aAAa;AAAA,MACZ,GAAG,KAAK;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,IACH;AAAA,EACA,CAAE,KAAK,YAAY,IAAI;AACtB,SAAO;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,MACN,MAAM;AAAA,MACN,OAAO,CAAC,MAAM,MAAM;AAAA,MACpB,UAAU;AAAA,MACV,UAAU;AAAA,IACb;AAAA,EACA;AACA;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es197.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/bigint.js"],"sourcesContent":["import { setResponseValueAndErrors } from \"../errorMessages.js\";\n\n//#region src/utils/zod-to-json-schema/parsers/bigint.ts\nfunction parseBigintDef(def, refs) {\n\tconst res = {\n\t\ttype: \"integer\",\n\t\tformat: \"int64\"\n\t};\n\tif (!def.checks) return res;\n\tfor (const check of def.checks) switch (check.kind) {\n\t\tcase \"min\":\n\t\t\tif (refs.target === \"jsonSchema7\") if (check.inclusive) setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n\t\t\telse setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n\t\t\telse {\n\t\t\t\tif (!check.inclusive) res.exclusiveMinimum = true;\n\t\t\t\tsetResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"max\":\n\t\t\tif (refs.target === \"jsonSchema7\") if (check.inclusive) setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n\t\t\telse setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n\t\t\telse {\n\t\t\t\tif (!check.inclusive) res.exclusiveMaximum = true;\n\t\t\t\tsetResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"multipleOf\":\n\t\t\tsetResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n\t\t\tbreak;\n\t}\n\treturn res;\n}\n\n//#endregion\nexport { parseBigintDef };\n//# sourceMappingURL=bigint.js.map"],"names":[],"mappings":";AAGA,SAAS,eAAe,KAAK,MAAM;AAClC,QAAM,MAAM;AAAA,IACX,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AACC,MAAI,CAAC,IAAI,OAAQ,QAAO;AACxB,aAAW,SAAS,IAAI,OAAQ,SAAQ,MAAM,MAAI;AAAA,IACjD,KAAK;AACJ,UAAI,KAAK,WAAW,cAAe,KAAI,MAAM,UAAW,2BAA0B,KAAK,WAAW,MAAM,OAAO,MAAM,SAAS,IAAI;AAAA,UAC7H,2BAA0B,KAAK,oBAAoB,MAAM,OAAO,MAAM,SAAS,IAAI;AAAA,WACnF;AACJ,YAAI,CAAC,MAAM,UAAW,KAAI,mBAAmB;AAC7C,kCAA0B,KAAK,WAAW,MAAM,OAAO,MAAM,SAAS,IAAI;AAAA,MAC3E;AACA;AAAA,IACD,KAAK;AACJ,UAAI,KAAK,WAAW,cAAe,KAAI,MAAM,UAAW,2BAA0B,KAAK,WAAW,MAAM,OAAO,MAAM,SAAS,IAAI;AAAA,UAC7H,2BAA0B,KAAK,oBAAoB,MAAM,OAAO,MAAM,SAAS,IAAI;AAAA,WACnF;AACJ,YAAI,CAAC,MAAM,UAAW,KAAI,mBAAmB;AAC7C,kCAA0B,KAAK,WAAW,MAAM,OAAO,MAAM,SAAS,IAAI;AAAA,MAC3E;AACA;AAAA,IACD,KAAK;AACJ,gCAA0B,KAAK,cAAc,MAAM,OAAO,MAAM,SAAS,IAAI;AAC7E;AAAA,EACH;AACC,SAAO;AACR;","x_google_ignoreList":[0]}
@@ -1,16 +1,7 @@
1
- function parseNativeEnumDef(def) {
2
- const object = def.values;
3
- const actualKeys = Object.keys(def.values).filter((key) => {
4
- return typeof object[object[key]] !== "number";
5
- });
6
- const actualValues = actualKeys.map((key) => object[key]);
7
- const parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values)));
8
- return {
9
- type: parsedTypes.length === 1 ? parsedTypes[0] === "string" ? "string" : "number" : ["string", "number"],
10
- enum: actualValues
11
- };
1
+ function parseBooleanDef() {
2
+ return { type: "boolean" };
12
3
  }
13
4
  export {
14
- parseNativeEnumDef
5
+ parseBooleanDef
15
6
  };
16
7
  //# sourceMappingURL=index.es198.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es198.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.8_openai@6.15.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/nativeEnum.js"],"sourcesContent":["//#region src/utils/zod-to-json-schema/parsers/nativeEnum.ts\nfunction parseNativeEnumDef(def) {\n\tconst object = def.values;\n\tconst actualKeys = Object.keys(def.values).filter((key) => {\n\t\treturn typeof object[object[key]] !== \"number\";\n\t});\n\tconst actualValues = actualKeys.map((key) => object[key]);\n\tconst parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values)));\n\treturn {\n\t\ttype: parsedTypes.length === 1 ? parsedTypes[0] === \"string\" ? \"string\" : \"number\" : [\"string\", \"number\"],\n\t\tenum: actualValues\n\t};\n}\n\n//#endregion\nexport { parseNativeEnumDef };\n//# sourceMappingURL=nativeEnum.js.map"],"names":[],"mappings":"AACA,SAAS,mBAAmB,KAAK;AAChC,QAAM,SAAS,IAAI;AACnB,QAAM,aAAa,OAAO,KAAK,IAAI,MAAM,EAAE,OAAO,CAAC,QAAQ;AAC1D,WAAO,OAAO,OAAO,OAAO,GAAG,CAAC,MAAM;AAAA,EACvC,CAAC;AACD,QAAM,eAAe,WAAW,IAAI,CAAC,QAAQ,OAAO,GAAG,CAAC;AACxD,QAAM,cAAc,MAAM,KAAK,IAAI,IAAI,aAAa,IAAI,CAAC,WAAW,OAAO,MAAM,CAAC,CAAC;AACnF,SAAO;AAAA,IACN,MAAM,YAAY,WAAW,IAAI,YAAY,CAAC,MAAM,WAAW,WAAW,WAAW,CAAC,UAAU,QAAQ;AAAA,IACxG,MAAM;AAAA,EACR;AACA;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es198.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/boolean.js"],"sourcesContent":["//#region src/utils/zod-to-json-schema/parsers/boolean.ts\nfunction parseBooleanDef() {\n\treturn { type: \"boolean\" };\n}\n\n//#endregion\nexport { parseBooleanDef };\n//# sourceMappingURL=boolean.js.map"],"names":[],"mappings":"AACA,SAAS,kBAAkB;AAC1B,SAAO,EAAE,MAAM,UAAS;AACzB;","x_google_ignoreList":[0]}
@@ -1,11 +1,8 @@
1
- import { parseAnyDef } from "./index.es152.js";
2
- function parseNeverDef(refs) {
3
- return refs.target === "openAi" ? void 0 : { not: parseAnyDef({
4
- ...refs,
5
- currentPath: [...refs.currentPath, "not"]
6
- }) };
1
+ import { parseDef } from "./index.es165.js";
2
+ function parseBrandedDef(_def, refs) {
3
+ return parseDef(_def.type._def, refs);
7
4
  }
8
5
  export {
9
- parseNeverDef
6
+ parseBrandedDef
10
7
  };
11
8
  //# sourceMappingURL=index.es199.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es199.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.8_openai@6.15.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/never.js"],"sourcesContent":["import { parseAnyDef } from \"./any.js\";\n\n//#region src/utils/zod-to-json-schema/parsers/never.ts\nfunction parseNeverDef(refs) {\n\treturn refs.target === \"openAi\" ? void 0 : { not: parseAnyDef({\n\t\t...refs,\n\t\tcurrentPath: [...refs.currentPath, \"not\"]\n\t}) };\n}\n\n//#endregion\nexport { parseNeverDef };\n//# sourceMappingURL=never.js.map"],"names":[],"mappings":";AAGA,SAAS,cAAc,MAAM;AAC5B,SAAO,KAAK,WAAW,WAAW,SAAS,EAAE,KAAK,YAAY;AAAA,IAC7D,GAAG;AAAA,IACH,aAAa,CAAC,GAAG,KAAK,aAAa,KAAK;AAAA,EAC1C,CAAE,EAAC;AACH;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es199.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/branded.js"],"sourcesContent":["import { parseDef } from \"../parseDef.js\";\n\n//#region src/utils/zod-to-json-schema/parsers/branded.ts\nfunction parseBrandedDef(_def, refs) {\n\treturn parseDef(_def.type._def, refs);\n}\n\n//#endregion\nexport { parseBrandedDef };\n//# sourceMappingURL=branded.js.map"],"names":[],"mappings":";AAGA,SAAS,gBAAgB,MAAM,MAAM;AACpC,SAAO,SAAS,KAAK,KAAK,MAAM,IAAI;AACrC;","x_google_ignoreList":[0]}
package/dist/index.es2.js CHANGED
@@ -1,24 +1,29 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { v4 } from "uuid";
3
- import { useState } from "react";
3
+ import { useState, useEffect } from "react";
4
4
  import ChatButton from "./index.es10.js";
5
5
  import { AnimatePresence, motion } from "framer-motion";
6
6
  import ChatInput from "./index.es11.js";
7
- import ChatBodyComponent from "./index.es12.js";
7
+ import ChatBody from "./index.es12.js";
8
8
  import { useStreamContext } from "./index.es6.js";
9
9
  import { X } from "lucide-react";
10
10
  import { useFileProvider } from "./index.es7.js";
11
11
  import Suggestion from "./index.es13.js";
12
+ import { useThread } from "./index.es5.js";
12
13
  function Sidebar({
13
14
  header = "AI Assistant",
14
15
  chatProps
15
16
  }) {
16
- const { handleFileSelect, callThisOnSubmit } = chatProps ?? {};
17
+ const { handleFileSelect, callThisOnSubmit, enableToolCallIndicator } = chatProps ?? {};
17
18
  const [open, setOpen] = useState(false);
18
19
  const [input, setInput] = useState("");
19
20
  const { fileInput, setFileInput } = useFileProvider();
20
21
  const stream = useStreamContext();
21
22
  const isLoading = stream.isLoading;
23
+ const { setMode } = useThread();
24
+ useEffect(() => {
25
+ setMode("single");
26
+ }, [setMode]);
22
27
  const defaultHandleSubmit = async (e) => {
23
28
  e.preventDefault();
24
29
  if (input.trim().length === 0 && fileInput.length === 0 || isLoading)
@@ -41,18 +46,7 @@ function Sidebar({
41
46
  type: "human",
42
47
  content: contentBlocks
43
48
  };
44
- stream.submit(
45
- { messages: [newHumanMessage] },
46
- {
47
- streamMode: ["values"],
48
- streamSubgraphs: true,
49
- streamResumable: true,
50
- optimisticValues: (prev) => ({
51
- ...prev,
52
- messages: [...prev.messages ?? [], newHumanMessage]
53
- })
54
- }
55
- );
49
+ await stream.submitMessage(newHumanMessage);
56
50
  setInput("");
57
51
  setFileInput([]);
58
52
  };
@@ -113,7 +107,7 @@ function Sidebar({
113
107
  }
114
108
  )
115
109
  ] }),
116
- /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-auto scrollbar-none", children: /* @__PURE__ */ jsx("div", { className: "p-4", children: /* @__PURE__ */ jsx(ChatBodyComponent, {}) }) }),
110
+ /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-auto scrollbar-none", children: /* @__PURE__ */ jsx("div", { className: "p-4", children: /* @__PURE__ */ jsx(ChatBody, { enableToolCallIndicator }) }) }),
117
111
  /* @__PURE__ */ jsx(Suggestion, {}),
118
112
  /* @__PURE__ */ jsx("div", { className: "sticky bottom-0 border-t border-zinc-800 m-2", children: /* @__PURE__ */ jsx(
119
113
  ChatInput,
@@ -1 +1 @@
1
- {"version":3,"file":"index.es2.js","sources":["../src/pages/Sidebar/sidebar.tsx"],"sourcesContent":["import { v4 as uuidv4 } from \"uuid\";\nimport { useState, type FormEvent } from \"react\";\nimport ChatButton from \"../../components/ChatButton\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport ChatInput from \"../../components/sidebar/ChatInput\";\nimport ChatBody from \"../../components/ChatBody\";\nimport { useStreamContext } from \"@/providers/Stream\";\nimport type { Message } from \"@langchain/langgraph-sdk\";\nimport { X } from \"lucide-react\";\nimport type { FileInfo } from \"@/types/fileInput\";\nimport type { ChatSidebarProps } from \"@/types/ChatProps\";\nimport { useFileProvider } from \"@/providers/FileProvider\";\nimport Suggestion from \"@/components/Suggestion\";\n\n/**\n * Main sidebar chat interface component.\n * Displays a chat button that opens a sliding sidebar with full chat functionality.\n * \n * @param header - Custom header text for the chat sidebar (default: \"AI Assistant\")\n * @param handleFileSelect - Optional custom file selection handler\n * @param callThisOnSubmit - Optional callback invoked before message submission, can return updated file list\n * \n * @example\n * ```tsx\n * <Sidebar \n * header=\"My Custom AI\"\n * callThisOnSubmit={async () => {\n * // Upload files to your backend\n * return updatedFiles;\n * }}\n * />\n * ```\n */\nexport default function Sidebar({\n header = \"AI Assistant\",\n chatProps,\n}: ChatSidebarProps) {\n\n const { handleFileSelect, callThisOnSubmit } = chatProps ?? {};\n\n const [open, setOpen] = useState(false);\n const [input, setInput] = useState(\"\");\n const { fileInput, setFileInput } = useFileProvider();\n\n const stream = useStreamContext();\n const isLoading = stream.isLoading;\n\n const defaultHandleSubmit = async (e: FormEvent) => {\n e.preventDefault();\n\n if ((input.trim().length === 0 && fileInput.length === 0) || isLoading)\n return;\n\n // console.log(\"Submitting with input:\", input);\n\n // Call the custom upload and get the latest files\n let latestFiles: FileInfo[] = fileInput;\n if (callThisOnSubmit) {\n const result = await callThisOnSubmit();\n if (result && result.length > 0) latestFiles = result;\n }\n\n // console.log(\"Using files for submission:\", latestFiles);\n\n const contentBlocks = [\n ...(input.trim().length > 0 ? [{ type: \"text\", text: input }] : []),\n ...latestFiles.map((file) => ({\n type: \"document\" as const,\n ...file,\n cache_control: { type: \"ephemeral\" as const },\n })),\n ] as unknown as Message[\"content\"];\n\n const newHumanMessage: Message = {\n id: uuidv4(),\n type: \"human\",\n content: contentBlocks,\n };\n\n stream.submit(\n { messages: [newHumanMessage] },\n {\n streamMode: [\"values\"],\n streamSubgraphs: true,\n streamResumable: true,\n optimisticValues: (prev) => ({\n ...prev,\n messages: [...(prev.messages ?? []), newHumanMessage],\n }),\n }\n );\n\n setInput(\"\");\n setFileInput([]);\n };\n\n const defaultHandleFileSelect = async (\n event: React.ChangeEvent<HTMLInputElement>\n ) => {\n const files = event.target.files;\n if (!files) return;\n\n // Convert files to base64 for sending\n const fileDetails: FileInfo[] = await Promise.all(\n Array.from(files).map(async (file) => {\n const base64Data = await new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const result = reader.result as string;\n resolve(result.split(\",\")[1]); // Remove data:...;base64, prefix\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n\n return {\n fileName: file.name,\n fileType: file.type,\n file: file,\n fileData: base64Data, // Add this to your FileInfo type\n };\n })\n );\n\n setFileInput((prevFile) => [...prevFile, ...fileDetails]);\n };\n\n const onFileSelect = handleFileSelect || defaultHandleFileSelect;\n\n return (\n <>\n <AnimatePresence>\n {open && (\n <>\n {/* Overlay */}\n <motion.div\n className=\"fixed inset-0 z-40 bg-black/30\"\n onClick={() => setOpen(false)}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n />\n\n {/* Sidebar */}\n <motion.aside\n className=\"fixed right-0 top-0 z-50 h-screen w-[520px] bg-black flex flex-col text-white\"\n initial={{ x: \"100%\" }}\n animate={{ x: 0 }}\n exit={{ x: \"100%\" }}\n transition={{ type: \"spring\", stiffness: 260, damping: 30 }}\n >\n <div className=\"flex h-full flex-col\">\n <div className=\"flex border-b border-zinc-800 py-4 px-6 justify-between items-center\">\n <div className=\"text-start text-2xl font-bold\">{header}</div>\n <X\n className=\"text-zinc-400 cursor-pointer\"\n onClick={() => setOpen(false)}\n />\n </div>\n\n <div className=\"flex-1 overflow-auto scrollbar-none\">\n <div className=\"p-4\">\n <ChatBody />\n </div>\n </div>\n <Suggestion />\n <div className=\"sticky bottom-0 border-t border-zinc-800 m-2\">\n <ChatInput\n input={input}\n inputFileAccept={chatProps?.inputFileAccept}\n setInput={setInput}\n handleSubmit={defaultHandleSubmit}\n isLoading={isLoading}\n fileInput={fileInput}\n handleFileSelect={onFileSelect}\n setFileInput={setFileInput}\n onCancel={() => stream.stop?.()}\n />\n </div>\n </div>\n </motion.aside>\n </>\n )}\n </AnimatePresence>\n\n <ChatButton isVisible={!open} setOpen={setOpen} />\n </>\n );\n}\n"],"names":["uuidv4","ChatBody"],"mappings":"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"}
1
+ {"version":3,"file":"index.es2.js","sources":["../src/pages/Sidebar/sidebar.tsx"],"sourcesContent":["import { v4 as uuidv4 } from \"uuid\";\nimport { useEffect, useState, type FormEvent } from \"react\";\nimport ChatButton from \"../../components/ChatButton\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport ChatInput from \"../../components/sidebar/ChatInput\";\nimport ChatBody from \"../../components/ChatBody\";\nimport { useStreamContext } from \"@/providers/Stream\";\nimport type { Message } from \"@langchain/langgraph-sdk\";\nimport { X } from \"lucide-react\";\nimport type { FileInfo } from \"@/types/fileInput\";\nimport type { ChatSidebarProps } from \"@/types/ChatProps\";\nimport { useFileProvider } from \"@/providers/FileProvider\";\nimport Suggestion from \"@/components/Suggestion\";\nimport { useThread } from \"@/providers/Thread\";\n\n/**\n * Main sidebar chat interface component.\n * Displays a chat button that opens a sliding sidebar with full chat functionality.\n * \n * @param header - Custom header text for the chat sidebar (default: \"AI Assistant\")\n * @param handleFileSelect - Optional custom file selection handler\n * @param callThisOnSubmit - Optional callback invoked before message submission, can return updated file list\n * \n * @example\n * ```tsx\n * <Sidebar \n * header=\"My Custom AI\"\n * callThisOnSubmit={async () => {\n * // Upload files to your backend\n * return updatedFiles;\n * }}\n * />\n * ```\n */\nexport default function Sidebar({\n header = \"AI Assistant\",\n chatProps,\n}: ChatSidebarProps) {\n\n const { handleFileSelect, callThisOnSubmit, enableToolCallIndicator } = chatProps ?? {};\n const [open, setOpen] = useState(false);\n const [input, setInput] = useState(\"\");\n const { fileInput, setFileInput } = useFileProvider();\n\n const stream = useStreamContext();\n const isLoading = stream.isLoading;\n const { setMode } = useThread();\n\n // Set thread mode to single when using Sidebar\n useEffect(() => {\n setMode(\"single\");\n }, [setMode]);\n\n const defaultHandleSubmit = async (e: FormEvent) => {\n e.preventDefault();\n\n if ((input.trim().length === 0 && fileInput.length === 0) || isLoading)\n return;\n\n // Call the custom upload and get the latest files\n let latestFiles: FileInfo[] = fileInput;\n if (callThisOnSubmit) {\n const result = await callThisOnSubmit();\n if (result && result.length > 0) latestFiles = result;\n }\n\n const contentBlocks = [\n ...(input.trim().length > 0 ? [{ type: \"text\", text: input }] : []),\n ...latestFiles.map((file) => ({\n type: \"document\" as const,\n ...file,\n cache_control: { type: \"ephemeral\" as const },\n })),\n ] as unknown as Message[\"content\"];\n\n const newHumanMessage: Message = {\n id: uuidv4(),\n type: \"human\",\n content: contentBlocks,\n };\n\n // Use the unified submitMessage function\n await stream.submitMessage(newHumanMessage);\n\n setInput(\"\");\n setFileInput([]);\n };\n\n const defaultHandleFileSelect = async (\n event: React.ChangeEvent<HTMLInputElement>\n ) => {\n const files = event.target.files;\n if (!files) return;\n\n // Convert files to base64 for sending\n const fileDetails: FileInfo[] = await Promise.all(\n Array.from(files).map(async (file) => {\n const base64Data = await new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const result = reader.result as string;\n resolve(result.split(\",\")[1]); // Remove data:...;base64, prefix\n };\n reader.onerror = reject;\n reader.readAsDataURL(file);\n });\n\n return {\n fileName: file.name,\n fileType: file.type,\n file: file,\n fileData: base64Data, // Add this to your FileInfo type\n };\n })\n );\n\n setFileInput((prevFile) => [...prevFile, ...fileDetails]);\n };\n\n const onFileSelect = handleFileSelect || defaultHandleFileSelect;\n\n return (\n <>\n <AnimatePresence>\n {open && (\n <>\n {/* Overlay */}\n <motion.div\n className=\"fixed inset-0 z-40 bg-black/30\"\n onClick={() => setOpen(false)}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n />\n\n {/* Sidebar */}\n <motion.aside\n className=\"fixed right-0 top-0 z-50 h-screen w-[520px] bg-black flex flex-col text-white\"\n initial={{ x: \"100%\" }}\n animate={{ x: 0 }}\n exit={{ x: \"100%\" }}\n transition={{ type: \"spring\", stiffness: 260, damping: 30 }}\n >\n <div className=\"flex h-full flex-col\">\n <div className=\"flex border-b border-zinc-800 py-4 px-6 justify-between items-center\">\n <div className=\"text-start text-2xl font-bold\">{header}</div>\n <X\n className=\"text-zinc-400 cursor-pointer\"\n onClick={() => setOpen(false)}\n />\n </div>\n\n <div className=\"flex-1 overflow-auto scrollbar-none\">\n <div className=\"p-4\">\n <ChatBody enableToolCallIndicator={enableToolCallIndicator} />\n </div>\n </div>\n <Suggestion />\n <div className=\"sticky bottom-0 border-t border-zinc-800 m-2\">\n <ChatInput\n input={input}\n inputFileAccept={chatProps?.inputFileAccept}\n setInput={setInput}\n handleSubmit={defaultHandleSubmit}\n isLoading={isLoading}\n fileInput={fileInput}\n handleFileSelect={onFileSelect}\n setFileInput={setFileInput}\n onCancel={() => stream.stop?.()}\n />\n </div>\n </div>\n </motion.aside>\n </>\n )}\n </AnimatePresence>\n\n <ChatButton isVisible={!open} setOpen={setOpen} />\n </>\n );\n}\n"],"names":["uuidv4"],"mappings":"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"}
@@ -1,46 +1,72 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
- import { FileIcon, CircleUser } from "lucide-react";
3
- import React__default from "react";
4
- function HumanMessage({ message }) {
5
- const content = message.content;
6
- let textContent = "";
7
- let documents = [];
8
- if (typeof content === "string") {
9
- textContent = content;
10
- } else if (Array.isArray(content)) {
11
- textContent = content.filter((c) => c.type === "text").map((c) => c.type === "text" ? c.text : "").join("");
12
- documents = content.filter((c) => c.type === "document") ?? [];
13
- }
14
- return /* @__PURE__ */ jsxs("div", { className: "flex items-end gap-3 justify-end w-full group", children: [
15
- /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-col gap-2 items-end min-w-0", children: [
16
- /* @__PURE__ */ jsx("span", { className: "text-zinc-400 text-xs font-medium mr-1 opacity-80", children: "You" }),
17
- textContent && /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsx("div", { className: "text-[15px] font-normal leading-relaxed rounded-2xl rounded-tr-sm px-5 py-3.5 bg-gradient-to-br from-blue-600 to-blue-500 text-white shadow-lg shadow-blue-500/25 max-w-full break-words overflow-wrap-anywhere transition-all duration-200 hover:shadow-xl hover:shadow-blue-500/30 hover:scale-[1.01]", children: textContent }) }),
18
- documents.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 max-w-[90%]", children: documents.map((doc, idx) => /* @__PURE__ */ jsxs(
19
- "div",
20
- {
21
- className: "flex items-center gap-3 bg-gradient-to-br from-zinc-800/90 to-zinc-900/90 backdrop-blur-sm px-4 py-2.5 rounded-xl border border-zinc-700/50 shadow-md hover:border-blue-500/40 hover:shadow-lg hover:shadow-blue-500/10 transition-all duration-200 cursor-pointer group/file",
22
- children: [
23
- /* @__PURE__ */ jsx("div", { className: "p-1.5 bg-blue-500/10 rounded-lg border border-blue-500/20 group-hover/file:bg-blue-500/20 transition-colors", children: /* @__PURE__ */ jsx(FileIcon, { size: 16, className: "text-blue-400 shrink-0" }) }),
24
- /* @__PURE__ */ jsx("span", { className: "text-sm text-zinc-200 truncate font-medium", children: doc.source?.filename || `Document ${idx + 1}` })
25
- ]
26
- },
27
- idx
28
- )) })
29
- ] }),
30
- /* @__PURE__ */ jsx(
31
- "div",
32
- {
33
- className: "size-9 shrink-0 flex items-center justify-center rounded-full bg-gradient-to-br from-blue-500 to-blue-600 shadow-lg shadow-blue-500/30 ring-2 ring-blue-400/20 group-hover:shadow-xl group-hover:shadow-blue-500/40 transition-all duration-200",
34
- "data-alt": "User Avatar",
35
- children: /* @__PURE__ */ jsx(CircleUser, { className: "text-white", size: 20 })
36
- }
37
- )
38
- ] });
2
+ import { getContentString } from "./index.es19.js";
3
+ import React__default, { useState } from "react";
4
+ function Thinking({ title, toolMessages }) {
5
+ const [open, setOpen] = useState(false);
6
+ if (!toolMessages || toolMessages.length === 0) return null;
7
+ return /* @__PURE__ */ jsxs(
8
+ "div",
9
+ {
10
+ id: "accordion-collapse",
11
+ "data-accordion": "collapse",
12
+ className: "w-full rounded-base overflow-hidden shadow-xs border rounded-xl border-zinc-800 max-w-[90%] min-w-25",
13
+ children: [
14
+ /* @__PURE__ */ jsx("h2", { id: "accordion-collapse-heading-1", children: /* @__PURE__ */ jsxs(
15
+ "button",
16
+ {
17
+ type: "button",
18
+ className: "flex items-center justify-between w-full p-2 font-medium gap-3 text-body border-0 outline-none ring-0 appearance-none bg-transparent",
19
+ onClick: () => setOpen((v) => !v),
20
+ "aria-expanded": open,
21
+ "aria-controls": "accordion-collapse-body-1",
22
+ children: [
23
+ /* @__PURE__ */ jsxs("span", { children: [
24
+ "🔷 ",
25
+ title
26
+ ] }),
27
+ /* @__PURE__ */ jsx(
28
+ "svg",
29
+ {
30
+ "data-accordion-icon": true,
31
+ className: `w-5 h-5 shrink-0 transition-transform ${open ? "rotate-0" : "rotate-180"}`,
32
+ "aria-hidden": "true",
33
+ xmlns: "http://www.w3.org/2000/svg",
34
+ width: "24",
35
+ height: "24",
36
+ fill: "none",
37
+ viewBox: "0 0 24 24",
38
+ children: /* @__PURE__ */ jsx(
39
+ "path",
40
+ {
41
+ stroke: "currentColor",
42
+ strokeLinecap: "round",
43
+ strokeLinejoin: "round",
44
+ strokeWidth: "2",
45
+ d: "m5 15 7-7 7 7"
46
+ }
47
+ )
48
+ }
49
+ )
50
+ ]
51
+ }
52
+ ) }),
53
+ /* @__PURE__ */ jsx(
54
+ "div",
55
+ {
56
+ id: "accordion-collapse-body-1",
57
+ className: `${open ? "" : "hidden"}`,
58
+ "aria-labelledby": "accordion-collapse-heading-1",
59
+ children: /* @__PURE__ */ jsx("div", { className: "md:p-5 text-left space-y-3", children: toolMessages.map((toolMsg) => /* @__PURE__ */ jsx("div", { className: "border-zinc-700", children: /* @__PURE__ */ jsx("p", { className: "text-body text-sm", children: toolMsg.content ? getContentString(toolMsg.content) : "" }) }, toolMsg.id)) })
60
+ }
61
+ )
62
+ ]
63
+ }
64
+ );
39
65
  }
40
- const HumanMessage$1 = React__default.memo(HumanMessage, (prevProps, nextProps) => {
41
- return prevProps.message.id === nextProps.message.id;
66
+ const Thinking$1 = React__default.memo(Thinking, (prevProps, nextProps) => {
67
+ return prevProps.toolMessages?.length === nextProps.toolMessages?.length;
42
68
  });
43
69
  export {
44
- HumanMessage$1 as default
70
+ Thinking$1 as default
45
71
  };
46
72
  //# sourceMappingURL=index.es20.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es20.js","sources":["../src/components/messages/HumanMessage.tsx"],"sourcesContent":["import type { Message } from \"@langchain/langgraph-sdk\";\nimport { CircleUser, FileIcon } from \"lucide-react\";\nimport React from \"react\";\n\nfunction HumanMessage({ message }: { message: Message }) {\n // Extract text and documents from content\n const content = message.content;\n let textContent = \"\";\n let documents: any[] = [];\n\n if (typeof content === \"string\") {\n textContent = content;\n } else if (Array.isArray(content)) {\n textContent = content\n .filter((c: any) => c.type === \"text\")\n .map((c: any) => (c.type === \"text\" ? c.text : \"\"))\n .join(\"\");\n documents = content.filter((c: any) => c.type === \"document\") ?? [];\n }\n\n return (\n <div className=\"flex items-end gap-3 justify-end w-full group\">\n <div className=\"flex flex-1 flex-col gap-2 items-end min-w-0\">\n <span className=\"text-zinc-400 text-xs font-medium mr-1 opacity-80\">\n You\n </span>\n\n {textContent && (\n <div className=\"relative\">\n <div className=\"text-[15px] font-normal leading-relaxed rounded-2xl rounded-tr-sm px-5 py-3.5 bg-gradient-to-br from-blue-600 to-blue-500 text-white shadow-lg shadow-blue-500/25 max-w-full break-words overflow-wrap-anywhere transition-all duration-200 hover:shadow-xl hover:shadow-blue-500/30 hover:scale-[1.01]\">\n {textContent}\n </div>\n </div>\n )}\n\n {documents.length > 0 && (\n <div className=\"flex flex-col gap-2 max-w-[90%]\">\n {documents.map((doc, idx) => (\n <div\n key={idx}\n className=\"flex items-center gap-3 bg-gradient-to-br from-zinc-800/90 to-zinc-900/90 backdrop-blur-sm px-4 py-2.5 rounded-xl border border-zinc-700/50 shadow-md hover:border-blue-500/40 hover:shadow-lg hover:shadow-blue-500/10 transition-all duration-200 cursor-pointer group/file\"\n >\n <div className=\"p-1.5 bg-blue-500/10 rounded-lg border border-blue-500/20 group-hover/file:bg-blue-500/20 transition-colors\">\n <FileIcon size={16} className=\"text-blue-400 shrink-0\" />\n </div>\n <span className=\"text-sm text-zinc-200 truncate font-medium\">\n {doc.source?.filename || `Document ${idx + 1}`}\n </span>\n </div>\n ))}\n </div>\n )}\n </div>\n\n <div\n className=\"size-9 shrink-0 flex items-center justify-center rounded-full bg-gradient-to-br from-blue-500 to-blue-600 shadow-lg shadow-blue-500/30 ring-2 ring-blue-400/20 group-hover:shadow-xl group-hover:shadow-blue-500/40 transition-all duration-200\"\n data-alt=\"User Avatar\"\n >\n <CircleUser className=\"text-white\" size={20} />\n </div>\n </div>\n );\n}\n\n// Memoize with deep comparison on message ID\nexport default React.memo(HumanMessage, (prevProps, nextProps) => {\n return prevProps.message.id === nextProps.message.id;\n});\n"],"names":["React"],"mappings":";;;AAIA,SAAS,aAAa,EAAE,WAAiC;AAEvD,QAAM,UAAU,QAAQ;AACxB,MAAI,cAAc;AAClB,MAAI,YAAmB,CAAA;AAEvB,MAAI,OAAO,YAAY,UAAU;AAC/B,kBAAc;AAAA,EAChB,WAAW,MAAM,QAAQ,OAAO,GAAG;AACjC,kBAAc,QACX,OAAO,CAAC,MAAW,EAAE,SAAS,MAAM,EACpC,IAAI,CAAC,MAAY,EAAE,SAAS,SAAS,EAAE,OAAO,EAAG,EACjD,KAAK,EAAE;AACV,gBAAY,QAAQ,OAAO,CAAC,MAAW,EAAE,SAAS,UAAU,KAAK,CAAA;AAAA,EACnE;AAEA,SACE,qBAAC,OAAA,EAAI,WAAU,iDACb,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAI,WAAU,gDACb,UAAA;AAAA,MAAA,oBAAC,QAAA,EAAK,WAAU,qDAAoD,UAAA,OAEpE;AAAA,MAEC,eACC,oBAAC,OAAA,EAAI,WAAU,YACb,8BAAC,OAAA,EAAI,WAAU,2SACZ,UAAA,YAAA,CACH,EAAA,CACF;AAAA,MAGD,UAAU,SAAS,KAClB,oBAAC,OAAA,EAAI,WAAU,mCACZ,UAAA,UAAU,IAAI,CAAC,KAAK,QACnB;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAU;AAAA,UAEV,UAAA;AAAA,YAAA,oBAAC,OAAA,EAAI,WAAU,+GACb,UAAA,oBAAC,YAAS,MAAM,IAAI,WAAU,yBAAA,CAAyB,EAAA,CACzD;AAAA,YACA,oBAAC,QAAA,EAAK,WAAU,8CACb,UAAA,IAAI,QAAQ,YAAY,YAAY,MAAM,CAAC,GAAA,CAC9C;AAAA,UAAA;AAAA,QAAA;AAAA,QARK;AAAA,MAAA,CAUR,EAAA,CACH;AAAA,IAAA,GAEJ;AAAA,IAEA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,YAAS;AAAA,QAET,UAAA,oBAAC,YAAA,EAAW,WAAU,cAAa,MAAM,GAAA,CAAI;AAAA,MAAA;AAAA,IAAA;AAAA,EAC/C,GACF;AAEJ;AAGA,MAAA,iBAAeA,eAAM,KAAK,cAAc,CAAC,WAAW,cAAc;AAChE,SAAO,UAAU,QAAQ,OAAO,UAAU,QAAQ;AACpD,CAAC;"}
1
+ {"version":3,"file":"index.es20.js","sources":["../src/components/Thinking.tsx"],"sourcesContent":["import { getContentString } from \"@/utils/utils\";\nimport type { Message } from \"@langchain/langgraph-sdk\";\nimport React, { useState } from \"react\";\n\nfunction Thinking({ title, toolMessages }: {\n title?: string;\n toolMessages: Message[];\n}) {\n const [open, setOpen] = useState(false);\n\n // Only render if there are tool messages\n if (!toolMessages || toolMessages.length === 0) return null;\n\n return (\n <div\n id=\"accordion-collapse\"\n data-accordion=\"collapse\"\n className=\"w-full rounded-base overflow-hidden shadow-xs border rounded-xl border-zinc-800 max-w-[90%] min-w-25\"\n >\n <h2 id=\"accordion-collapse-heading-1\">\n <button\n type=\"button\"\n className=\"flex items-center justify-between w-full p-2 font-medium gap-3 text-body border-0 outline-none ring-0 appearance-none bg-transparent\"\n onClick={() => setOpen((v) => !v)}\n aria-expanded={open}\n aria-controls=\"accordion-collapse-body-1\"\n >\n <span>🔷 {title}</span>\n <svg\n data-accordion-icon\n className={`w-5 h-5 shrink-0 transition-transform ${open ? \"rotate-0\" : \"rotate-180\"\n }`}\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n d=\"m5 15 7-7 7 7\"\n />\n </svg>\n </button>\n </h2>\n <div\n id=\"accordion-collapse-body-1\"\n className={`${open ? \"\" : \"hidden\"}`}\n aria-labelledby=\"accordion-collapse-heading-1\"\n >\n <div className=\"md:p-5 text-left space-y-3\">\n {toolMessages.map((toolMsg) => (\n <div key={toolMsg.id} className=\"border-zinc-700\">\n <p className=\"text-body text-sm\">{toolMsg.content ? getContentString(toolMsg.content) : \"\"}</p>\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n}\n\nexport default React.memo(Thinking, (prevProps, nextProps) => {\n return prevProps.toolMessages?.length === nextProps.toolMessages?.length;\n});"],"names":["React"],"mappings":";;;AAIA,SAAS,SAAS,EAAE,OAAO,gBAGxB;AACD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AAGtC,MAAI,CAAC,gBAAgB,aAAa,WAAW,EAAG,QAAO;AAEvD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAG;AAAA,MACH,kBAAe;AAAA,MACf,WAAU;AAAA,MAEV,UAAA;AAAA,QAAA,oBAAC,MAAA,EAAG,IAAG,gCACL,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YACV,SAAS,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;AAAA,YAChC,iBAAe;AAAA,YACf,iBAAc;AAAA,YAEd,UAAA;AAAA,cAAA,qBAAC,QAAA,EAAK,UAAA;AAAA,gBAAA;AAAA,gBAAI;AAAA,cAAA,GAAM;AAAA,cAChB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,uBAAmB;AAAA,kBACnB,WAAW,yCAAyC,OAAO,aAAa,YACtE;AAAA,kBACF,eAAY;AAAA,kBACZ,OAAM;AAAA,kBACN,OAAM;AAAA,kBACN,QAAO;AAAA,kBACP,MAAK;AAAA,kBACL,SAAQ;AAAA,kBAER,UAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,QAAO;AAAA,sBACP,eAAc;AAAA,sBACd,gBAAe;AAAA,sBACf,aAAY;AAAA,sBACZ,GAAE;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACJ;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA,GAEJ;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAG;AAAA,YACH,WAAW,GAAG,OAAO,KAAK,QAAQ;AAAA,YAClC,mBAAgB;AAAA,YAEhB,UAAA,oBAAC,OAAA,EAAI,WAAU,8BACZ,UAAA,aAAa,IAAI,CAAC,YACjB,oBAAC,OAAA,EAAqB,WAAU,mBAC9B,UAAA,oBAAC,KAAA,EAAE,WAAU,qBAAqB,UAAA,QAAQ,UAAU,iBAAiB,QAAQ,OAAO,IAAI,GAAA,CAAG,EAAA,GADnF,QAAQ,EAElB,CACD,EAAA,CACH;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,MAAA,aAAeA,eAAM,KAAK,UAAU,CAAC,WAAW,cAAc;AAC5D,SAAO,UAAU,cAAc,WAAW,UAAU,cAAc;AACpE,CAAC;"}
@@ -1,10 +1,8 @@
1
- function parseNullDef(refs) {
2
- return refs.target === "openApi3" ? {
3
- enum: ["null"],
4
- nullable: true
5
- } : { type: "null" };
6
- }
1
+ import { parseDef } from "./index.es165.js";
2
+ const parseCatchDef = (def, refs) => {
3
+ return parseDef(def.innerType._def, refs);
4
+ };
7
5
  export {
8
- parseNullDef
6
+ parseCatchDef
9
7
  };
10
8
  //# sourceMappingURL=index.es200.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es200.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.8_openai@6.15.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/null.js"],"sourcesContent":["//#region src/utils/zod-to-json-schema/parsers/null.ts\nfunction parseNullDef(refs) {\n\treturn refs.target === \"openApi3\" ? {\n\t\tenum: [\"null\"],\n\t\tnullable: true\n\t} : { type: \"null\" };\n}\n\n//#endregion\nexport { parseNullDef };\n//# sourceMappingURL=null.js.map"],"names":[],"mappings":"AACA,SAAS,aAAa,MAAM;AAC3B,SAAO,KAAK,WAAW,aAAa;AAAA,IACnC,MAAM,CAAC,MAAM;AAAA,IACb,UAAU;AAAA,EACZ,IAAK,EAAE,MAAM,OAAM;AACnB;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es200.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/catch.js"],"sourcesContent":["import { parseDef } from \"../parseDef.js\";\n\n//#region src/utils/zod-to-json-schema/parsers/catch.ts\nconst parseCatchDef = (def, refs) => {\n\treturn parseDef(def.innerType._def, refs);\n};\n\n//#endregion\nexport { parseCatchDef };\n//# sourceMappingURL=catch.js.map"],"names":[],"mappings":";AAGK,MAAC,gBAAgB,CAAC,KAAK,SAAS;AACpC,SAAO,SAAS,IAAI,UAAU,MAAM,IAAI;AACzC;","x_google_ignoreList":[0]}
@@ -1,68 +1,40 @@
1
- import { parseDef } from "./index.es153.js";
2
- const primitiveMappings = {
3
- ZodString: "string",
4
- ZodNumber: "number",
5
- ZodBigInt: "integer",
6
- ZodBoolean: "boolean",
7
- ZodNull: "null"
8
- };
9
- function parseUnionDef(def, refs) {
10
- if (refs.target === "openApi3") return asAnyOf(def, refs);
11
- const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;
12
- if (options.every((x) => x._def.typeName in primitiveMappings && (!x._def.checks || !x._def.checks.length))) {
13
- const types = options.reduce((types$1, x) => {
14
- const type = primitiveMappings[x._def.typeName];
15
- return type && !types$1.includes(type) ? [...types$1, type] : types$1;
16
- }, []);
17
- return { type: types.length > 1 ? types : types[0] };
18
- } else if (options.every((x) => x._def.typeName === "ZodLiteral" && !x.description)) {
19
- const types = options.reduce((acc, x) => {
20
- const type = typeof x._def.value;
21
- switch (type) {
22
- case "string":
23
- case "number":
24
- case "boolean":
25
- return [...acc, type];
26
- case "bigint":
27
- return [...acc, "integer"];
28
- case "object":
29
- if (x._def.value === null) return [...acc, "null"];
30
- return acc;
31
- case "symbol":
32
- case "undefined":
33
- case "function":
34
- default:
35
- return acc;
36
- }
37
- }, []);
38
- if (types.length === options.length) {
39
- const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);
1
+ import { setResponseValueAndErrors } from "./index.es195.js";
2
+ function parseDateDef(def, refs, overrideDateStrategy) {
3
+ const strategy = overrideDateStrategy ?? refs.dateStrategy;
4
+ if (Array.isArray(strategy)) return { anyOf: strategy.map((item) => parseDateDef(def, refs, item)) };
5
+ switch (strategy) {
6
+ case "string":
7
+ case "format:date-time":
40
8
  return {
41
- type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],
42
- enum: options.reduce((acc, x) => {
43
- return acc.includes(x._def.value) ? acc : [...acc, x._def.value];
44
- }, [])
9
+ type: "string",
10
+ format: "date-time"
45
11
  };
46
- }
47
- } else if (options.every((x) => x._def.typeName === "ZodEnum")) return {
48
- type: "string",
49
- enum: options.reduce((acc, x) => [...acc, ...x._def.values.filter((x$1) => !acc.includes(x$1))], [])
50
- };
51
- return asAnyOf(def, refs);
12
+ case "format:date":
13
+ return {
14
+ type: "string",
15
+ format: "date"
16
+ };
17
+ case "integer":
18
+ return integerDateParser(def, refs);
19
+ }
52
20
  }
53
- const asAnyOf = (def, refs) => {
54
- const anyOf = (def.options instanceof Map ? Array.from(def.options.values()) : def.options).map((x, i) => parseDef(x._def, {
55
- ...refs,
56
- currentPath: [
57
- ...refs.currentPath,
58
- "anyOf",
59
- `${i}`
60
- ]
61
- })).filter((x) => !!x && (!refs.strictUnions || typeof x === "object" && Object.keys(x).length > 0));
62
- return anyOf.length ? { anyOf } : void 0;
21
+ const integerDateParser = (def, refs) => {
22
+ const res = {
23
+ type: "integer",
24
+ format: "unix-time"
25
+ };
26
+ if (refs.target === "openApi3") return res;
27
+ for (const check of def.checks) switch (check.kind) {
28
+ case "min":
29
+ setResponseValueAndErrors(res, "minimum", check.value, check.message, refs);
30
+ break;
31
+ case "max":
32
+ setResponseValueAndErrors(res, "maximum", check.value, check.message, refs);
33
+ break;
34
+ }
35
+ return res;
63
36
  };
64
37
  export {
65
- parseUnionDef,
66
- primitiveMappings
38
+ parseDateDef
67
39
  };
68
40
  //# sourceMappingURL=index.es201.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es201.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.8_openai@6.15.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/union.js"],"sourcesContent":["import { parseDef } from \"../parseDef.js\";\n\n//#region src/utils/zod-to-json-schema/parsers/union.ts\nconst primitiveMappings = {\n\tZodString: \"string\",\n\tZodNumber: \"number\",\n\tZodBigInt: \"integer\",\n\tZodBoolean: \"boolean\",\n\tZodNull: \"null\"\n};\nfunction parseUnionDef(def, refs) {\n\tif (refs.target === \"openApi3\") return asAnyOf(def, refs);\n\tconst options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n\tif (options.every((x) => x._def.typeName in primitiveMappings && (!x._def.checks || !x._def.checks.length))) {\n\t\tconst types = options.reduce((types$1, x) => {\n\t\t\tconst type = primitiveMappings[x._def.typeName];\n\t\t\treturn type && !types$1.includes(type) ? [...types$1, type] : types$1;\n\t\t}, []);\n\t\treturn { type: types.length > 1 ? types : types[0] };\n\t} else if (options.every((x) => x._def.typeName === \"ZodLiteral\" && !x.description)) {\n\t\tconst types = options.reduce((acc, x) => {\n\t\t\tconst type = typeof x._def.value;\n\t\t\tswitch (type) {\n\t\t\t\tcase \"string\":\n\t\t\t\tcase \"number\":\n\t\t\t\tcase \"boolean\": return [...acc, type];\n\t\t\t\tcase \"bigint\": return [...acc, \"integer\"];\n\t\t\t\tcase \"object\":\n\t\t\t\t\tif (x._def.value === null) return [...acc, \"null\"];\n\t\t\t\t\treturn acc;\n\t\t\t\tcase \"symbol\":\n\t\t\t\tcase \"undefined\":\n\t\t\t\tcase \"function\":\n\t\t\t\tdefault: return acc;\n\t\t\t}\n\t\t}, []);\n\t\tif (types.length === options.length) {\n\t\t\tconst uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);\n\t\t\treturn {\n\t\t\t\ttype: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n\t\t\t\tenum: options.reduce((acc, x) => {\n\t\t\t\t\treturn acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n\t\t\t\t}, [])\n\t\t\t};\n\t\t}\n\t} else if (options.every((x) => x._def.typeName === \"ZodEnum\")) return {\n\t\ttype: \"string\",\n\t\tenum: options.reduce((acc, x) => [...acc, ...x._def.values.filter((x$1) => !acc.includes(x$1))], [])\n\t};\n\treturn asAnyOf(def, refs);\n}\nconst asAnyOf = (def, refs) => {\n\tconst anyOf = (def.options instanceof Map ? Array.from(def.options.values()) : def.options).map((x, i) => parseDef(x._def, {\n\t\t...refs,\n\t\tcurrentPath: [\n\t\t\t...refs.currentPath,\n\t\t\t\"anyOf\",\n\t\t\t`${i}`\n\t\t]\n\t})).filter((x) => !!x && (!refs.strictUnions || typeof x === \"object\" && Object.keys(x).length > 0));\n\treturn anyOf.length ? { anyOf } : void 0;\n};\n\n//#endregion\nexport { parseUnionDef, primitiveMappings };\n//# sourceMappingURL=union.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es201.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/zod-to-json-schema/parsers/date.js"],"sourcesContent":["import { setResponseValueAndErrors } from \"../errorMessages.js\";\n\n//#region src/utils/zod-to-json-schema/parsers/date.ts\nfunction parseDateDef(def, refs, overrideDateStrategy) {\n\tconst strategy = overrideDateStrategy ?? refs.dateStrategy;\n\tif (Array.isArray(strategy)) return { anyOf: strategy.map((item) => parseDateDef(def, refs, item)) };\n\tswitch (strategy) {\n\t\tcase \"string\":\n\t\tcase \"format:date-time\": return {\n\t\t\ttype: \"string\",\n\t\t\tformat: \"date-time\"\n\t\t};\n\t\tcase \"format:date\": return {\n\t\t\ttype: \"string\",\n\t\t\tformat: \"date\"\n\t\t};\n\t\tcase \"integer\": return integerDateParser(def, refs);\n\t}\n}\nconst integerDateParser = (def, refs) => {\n\tconst res = {\n\t\ttype: \"integer\",\n\t\tformat: \"unix-time\"\n\t};\n\tif (refs.target === \"openApi3\") return res;\n\tfor (const check of def.checks) switch (check.kind) {\n\t\tcase \"min\":\n\t\t\tsetResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n\t\t\tbreak;\n\t\tcase \"max\":\n\t\t\tsetResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n\t\t\tbreak;\n\t}\n\treturn res;\n};\n\n//#endregion\nexport { parseDateDef };\n//# sourceMappingURL=date.js.map"],"names":[],"mappings":";AAGA,SAAS,aAAa,KAAK,MAAM,sBAAsB;AACtD,QAAM,WAAW,wBAAwB,KAAK;AAC9C,MAAI,MAAM,QAAQ,QAAQ,EAAG,QAAO,EAAE,OAAO,SAAS,IAAI,CAAC,SAAS,aAAa,KAAK,MAAM,IAAI,CAAC,EAAC;AAClG,UAAQ,UAAQ;AAAA,IACf,KAAK;AAAA,IACL,KAAK;AAAoB,aAAO;AAAA,QAC/B,MAAM;AAAA,QACN,QAAQ;AAAA,MACX;AAAA,IACE,KAAK;AAAe,aAAO;AAAA,QAC1B,MAAM;AAAA,QACN,QAAQ;AAAA,MACX;AAAA,IACE,KAAK;AAAW,aAAO,kBAAkB,KAAK,IAAI;AAAA,EACpD;AACA;AACA,MAAM,oBAAoB,CAAC,KAAK,SAAS;AACxC,QAAM,MAAM;AAAA,IACX,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AACC,MAAI,KAAK,WAAW,WAAY,QAAO;AACvC,aAAW,SAAS,IAAI,OAAQ,SAAQ,MAAM,MAAI;AAAA,IACjD,KAAK;AACJ,gCAA0B,KAAK,WAAW,MAAM,OAAO,MAAM,SAAS,IAAI;AAC1E;AAAA,IACD,KAAK;AACJ,gCAA0B,KAAK,WAAW,MAAM,OAAO,MAAM,SAAS,IAAI;AAC1E;AAAA,EACH;AACC,SAAO;AACR;","x_google_ignoreList":[0]}
@@ -1,44 +1,11 @@
1
- import { primitiveMappings } from "./index.es201.js";
2
- import { parseDef } from "./index.es153.js";
3
- function parseNullableDef(def, refs) {
4
- if ([
5
- "ZodString",
6
- "ZodNumber",
7
- "ZodBigInt",
8
- "ZodBoolean",
9
- "ZodNull"
10
- ].includes(def.innerType._def.typeName) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {
11
- if (refs.target === "openApi3") return {
12
- type: primitiveMappings[def.innerType._def.typeName],
13
- nullable: true
14
- };
15
- return { type: [primitiveMappings[def.innerType._def.typeName], "null"] };
16
- }
17
- if (refs.target === "openApi3") {
18
- const base$1 = parseDef(def.innerType._def, {
19
- ...refs,
20
- currentPath: [...refs.currentPath]
21
- });
22
- if (base$1 && "$ref" in base$1) return {
23
- allOf: [base$1],
24
- nullable: true
25
- };
26
- return base$1 && {
27
- ...base$1,
28
- nullable: true
29
- };
30
- }
31
- const base = parseDef(def.innerType._def, {
32
- ...refs,
33
- currentPath: [
34
- ...refs.currentPath,
35
- "anyOf",
36
- "0"
37
- ]
38
- });
39
- return base && { anyOf: [base, { type: "null" }] };
1
+ import { parseDef } from "./index.es165.js";
2
+ function parseDefaultDef(_def, refs) {
3
+ return {
4
+ ...parseDef(_def.innerType._def, refs),
5
+ default: _def.defaultValue()
6
+ };
40
7
  }
41
8
  export {
42
- parseNullableDef
9
+ parseDefaultDef
43
10
  };
44
11
  //# sourceMappingURL=index.es202.js.map