langgraph-ui-components 0.0.10 → 0.0.11-testing

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/dist/index.es.js +3 -2
  2. package/dist/index.es10.js +25 -6
  3. package/dist/index.es10.js.map +1 -1
  4. package/dist/index.es100.js +131 -64
  5. package/dist/index.es100.js.map +1 -1
  6. package/dist/index.es101.js +65 -32
  7. package/dist/index.es101.js.map +1 -1
  8. package/dist/index.es102.js +34 -34
  9. package/dist/index.es102.js.map +1 -1
  10. package/dist/index.es103.js +35 -164
  11. package/dist/index.es103.js.map +1 -1
  12. package/dist/index.es104.js +156 -193
  13. package/dist/index.es104.js.map +1 -1
  14. package/dist/index.es105.js +202 -13
  15. package/dist/index.es105.js.map +1 -1
  16. package/dist/index.es106.js +13 -29
  17. package/dist/index.es106.js.map +1 -1
  18. package/dist/index.es107.js +25 -29
  19. package/dist/index.es107.js.map +1 -1
  20. package/dist/index.es108.js +24 -3147
  21. package/dist/index.es108.js.map +1 -1
  22. package/dist/index.es109.js +3151 -31
  23. package/dist/index.es109.js.map +1 -1
  24. package/dist/index.es110.js +21 -5
  25. package/dist/index.es110.js.map +1 -1
  26. package/dist/index.es111.js +64 -69
  27. package/dist/index.es111.js.map +1 -1
  28. package/dist/index.es112.js +3 -37
  29. package/dist/index.es112.js.map +1 -1
  30. package/dist/index.es113.js +16 -5
  31. package/dist/index.es113.js.map +1 -1
  32. package/dist/index.es114.js +7 -2
  33. package/dist/index.es114.js.map +1 -1
  34. package/dist/index.es115.js +2 -13
  35. package/dist/index.es115.js.map +1 -1
  36. package/dist/index.es116.js +9 -499
  37. package/dist/index.es116.js.map +1 -1
  38. package/dist/index.es117.js +501 -5
  39. package/dist/index.es117.js.map +1 -1
  40. package/dist/index.es118.js +7 -2
  41. package/dist/index.es118.js.map +1 -1
  42. package/dist/index.es119.js +2 -148
  43. package/dist/index.es119.js.map +1 -1
  44. package/dist/index.es120.js +118 -878
  45. package/dist/index.es120.js.map +1 -1
  46. package/dist/index.es121.js +877 -251
  47. package/dist/index.es121.js.map +1 -1
  48. package/dist/index.es122.js +281 -3
  49. package/dist/index.es122.js.map +1 -1
  50. package/dist/index.es123.js +3 -445
  51. package/dist/index.es123.js.map +1 -1
  52. package/dist/index.es124.js +437 -39
  53. package/dist/index.es124.js.map +1 -1
  54. package/dist/index.es125.js +46 -22
  55. package/dist/index.es125.js.map +1 -1
  56. package/dist/index.es126.js +21 -78
  57. package/dist/index.es126.js.map +1 -1
  58. package/dist/index.es127.js +76 -126
  59. package/dist/index.es127.js.map +1 -1
  60. package/dist/index.es128.js +125 -45
  61. package/dist/index.es128.js.map +1 -1
  62. package/dist/index.es129.js +48 -9
  63. package/dist/index.es129.js.map +1 -1
  64. package/dist/index.es130.js +10 -45
  65. package/dist/index.es130.js.map +1 -1
  66. package/dist/index.es131.js +43 -97
  67. package/dist/index.es131.js.map +1 -1
  68. package/dist/index.es132.js +94 -48
  69. package/dist/index.es132.js.map +1 -1
  70. package/dist/index.es133.js +51 -14
  71. package/dist/index.es133.js.map +1 -1
  72. package/dist/index.es134.js +1 -1
  73. package/dist/index.es135.js +1 -1
  74. package/dist/index.es138.js +1 -1
  75. package/dist/index.es139.js +1 -1
  76. package/dist/index.es140.js +1 -1
  77. package/dist/index.es141.js +1 -1
  78. package/dist/index.es142.js +1 -1
  79. package/dist/index.es143.js +1 -1
  80. package/dist/index.es144.js +1 -1
  81. package/dist/index.es145.js +1 -1
  82. package/dist/index.es146.js +1 -1
  83. package/dist/index.es147.js +1 -1
  84. package/dist/index.es148.js +1 -1
  85. package/dist/index.es149.js +1 -1
  86. package/dist/index.es150.js +1 -1
  87. package/dist/index.es151.js +1 -1
  88. package/dist/index.es152.js +1 -1
  89. package/dist/index.es153.js +1 -1
  90. package/dist/index.es154.js +1 -1
  91. package/dist/index.es155.js +1 -1
  92. package/dist/index.es156.js +1 -1
  93. package/dist/index.es157.js +1 -1
  94. package/dist/index.es158.js +1 -1
  95. package/dist/index.es159.js +1 -1
  96. package/dist/index.es16.js +3 -3
  97. package/dist/index.es16.js.map +1 -1
  98. package/dist/index.es160.js +1 -1
  99. package/dist/index.es161.js +1 -1
  100. package/dist/index.es162.js +1 -1
  101. package/dist/index.es163.js +1 -1
  102. package/dist/index.es164.js +1 -1
  103. package/dist/index.es165.js +1 -1
  104. package/dist/index.es166.js +1 -1
  105. package/dist/index.es167.js +1 -1
  106. package/dist/index.es168.js +1 -1
  107. package/dist/index.es169.js +1 -1
  108. package/dist/index.es170.js +1 -1
  109. package/dist/index.es171.js +1 -1
  110. package/dist/index.es172.js +1 -1
  111. package/dist/index.es173.js +1 -1
  112. package/dist/index.es174.js +1 -1
  113. package/dist/index.es175.js +1 -1
  114. package/dist/index.es176.js +1 -1
  115. package/dist/index.es177.js +1 -1
  116. package/dist/index.es178.js +1 -1
  117. package/dist/index.es179.js +1 -1
  118. package/dist/index.es18.js +15 -15
  119. package/dist/index.es180.js +1 -1
  120. package/dist/index.es181.js +1 -1
  121. package/dist/index.es182.js +1 -1
  122. package/dist/index.es183.js +162 -13
  123. package/dist/index.es183.js.map +1 -1
  124. package/dist/index.es184.js +2 -89
  125. package/dist/index.es184.js.map +1 -1
  126. package/dist/index.es185.js +15 -2
  127. package/dist/index.es185.js.map +1 -1
  128. package/dist/index.es186.js +89 -2
  129. package/dist/index.es186.js.map +1 -1
  130. package/dist/index.es187.js +2 -2
  131. package/dist/index.es188.js +56 -2
  132. package/dist/index.es188.js.map +1 -1
  133. package/dist/index.es189.js +100 -2
  134. package/dist/index.es189.js.map +1 -1
  135. package/dist/index.es190.js +191 -2
  136. package/dist/index.es190.js.map +1 -1
  137. package/dist/index.es191.js +110 -2
  138. package/dist/index.es191.js.map +1 -1
  139. package/dist/index.es192.js +35 -2
  140. package/dist/index.es192.js.map +1 -1
  141. package/dist/index.es193.js +10 -2
  142. package/dist/index.es193.js.map +1 -1
  143. package/dist/index.es194.js +11 -2
  144. package/dist/index.es194.js.map +1 -1
  145. package/dist/index.es195.js +12 -2
  146. package/dist/index.es195.js.map +1 -1
  147. package/dist/index.es196.js +91 -2
  148. package/dist/index.es196.js.map +1 -1
  149. package/dist/index.es197.js +275 -2
  150. package/dist/index.es197.js.map +1 -1
  151. package/dist/index.es198.js +2 -2
  152. package/dist/index.es199.js +164 -2
  153. package/dist/index.es199.js.map +1 -1
  154. package/dist/index.es200.js +51 -2
  155. package/dist/index.es200.js.map +1 -1
  156. package/dist/index.es201.js +40 -2
  157. package/dist/index.es201.js.map +1 -1
  158. package/dist/index.es202.js +35 -2
  159. package/dist/index.es202.js.map +1 -1
  160. package/dist/index.es203.js +40 -2
  161. package/dist/index.es203.js.map +1 -1
  162. package/dist/index.es204.js +24 -2
  163. package/dist/index.es204.js.map +1 -1
  164. package/dist/index.es205.js +591 -2
  165. package/dist/index.es205.js.map +1 -1
  166. package/dist/index.es206.js +125 -2
  167. package/dist/index.es206.js.map +1 -1
  168. package/dist/index.es207.js +2 -2
  169. package/dist/index.es208.js +2 -2
  170. package/dist/index.es209.js +2 -2
  171. package/dist/index.es210.js +2 -2
  172. package/dist/index.es211.js +2 -2
  173. package/dist/index.es212.js +2 -2
  174. package/dist/index.es213.js +2 -2
  175. package/dist/index.es214.js +2 -2
  176. package/dist/index.es215.js +2 -2
  177. package/dist/index.es216.js +2 -2
  178. package/dist/index.es217.js +2 -2
  179. package/dist/index.es218.js +2 -2
  180. package/dist/index.es219.js +2 -2
  181. package/dist/index.es220.js +2 -2
  182. package/dist/index.es221.js +2 -2
  183. package/dist/index.es222.js +2 -2
  184. package/dist/index.es223.js +2 -2
  185. package/dist/index.es224.js +2 -2
  186. package/dist/index.es225.js +2 -2
  187. package/dist/index.es226.js +2 -2
  188. package/dist/index.es227.js +2 -2
  189. package/dist/index.es228.js +2 -2
  190. package/dist/index.es229.js +2 -2
  191. package/dist/index.es230.js +2 -2
  192. package/dist/index.es231.js +2 -56
  193. package/dist/index.es231.js.map +1 -1
  194. package/dist/index.es232.js +2 -100
  195. package/dist/index.es232.js.map +1 -1
  196. package/dist/index.es233.js +2 -191
  197. package/dist/index.es233.js.map +1 -1
  198. package/dist/index.es234.js +2 -110
  199. package/dist/index.es234.js.map +1 -1
  200. package/dist/index.es235.js +2 -35
  201. package/dist/index.es235.js.map +1 -1
  202. package/dist/index.es236.js +2 -10
  203. package/dist/index.es236.js.map +1 -1
  204. package/dist/index.es237.js +2 -11
  205. package/dist/index.es237.js.map +1 -1
  206. package/dist/index.es238.js +2 -12
  207. package/dist/index.es238.js.map +1 -1
  208. package/dist/index.es239.js +2 -91
  209. package/dist/index.es239.js.map +1 -1
  210. package/dist/index.es24.js +1 -1
  211. package/dist/index.es240.js +2 -275
  212. package/dist/index.es240.js.map +1 -1
  213. package/dist/index.es241.js +2 -2
  214. package/dist/index.es242.js +2 -164
  215. package/dist/index.es242.js.map +1 -1
  216. package/dist/index.es243.js +2 -51
  217. package/dist/index.es243.js.map +1 -1
  218. package/dist/index.es244.js +2 -40
  219. package/dist/index.es244.js.map +1 -1
  220. package/dist/index.es245.js +2 -35
  221. package/dist/index.es245.js.map +1 -1
  222. package/dist/index.es246.js +2 -40
  223. package/dist/index.es246.js.map +1 -1
  224. package/dist/index.es247.js +2 -24
  225. package/dist/index.es247.js.map +1 -1
  226. package/dist/index.es248.js +2 -591
  227. package/dist/index.es248.js.map +1 -1
  228. package/dist/index.es249.js +2 -125
  229. package/dist/index.es249.js.map +1 -1
  230. package/dist/index.es25.js +3 -1
  231. package/dist/index.es25.js.map +1 -1
  232. package/dist/index.es250.js +2 -164
  233. package/dist/index.es250.js.map +1 -1
  234. package/dist/index.es251.js +2 -2
  235. package/dist/index.es252.js +2 -2
  236. package/dist/index.es253.js +1 -1
  237. package/dist/index.es258.js +1 -1
  238. package/dist/index.es260.js +2 -2
  239. package/dist/index.es262.js +2 -2
  240. package/dist/index.es265.js +1 -1
  241. package/dist/index.es267.js +1 -1
  242. package/dist/index.es277.js +2 -147
  243. package/dist/index.es277.js.map +1 -1
  244. package/dist/index.es278.js +126 -167
  245. package/dist/index.es278.js.map +1 -1
  246. package/dist/index.es279.js +188 -2
  247. package/dist/index.es279.js.map +1 -1
  248. package/dist/index.es280.js +1 -1
  249. package/dist/index.es283.js +1 -1
  250. package/dist/index.es288.js +1 -1
  251. package/dist/index.es29.js +1 -1
  252. package/dist/index.es3.js +24 -9
  253. package/dist/index.es3.js.map +1 -1
  254. package/dist/index.es300.js +1 -1
  255. package/dist/index.es302.js +1 -1
  256. package/dist/index.es31.js +7 -7
  257. package/dist/index.es314.js +1 -1
  258. package/dist/index.es32.js +1 -1
  259. package/dist/index.es334.js +2 -2
  260. package/dist/index.es35.js +4 -4
  261. package/dist/index.es36.js +1185 -111
  262. package/dist/index.es36.js.map +1 -1
  263. package/dist/index.es37.js +7 -71
  264. package/dist/index.es37.js.map +1 -1
  265. package/dist/index.es38.js +9 -18
  266. package/dist/index.es38.js.map +1 -1
  267. package/dist/index.es39.js +136 -250
  268. package/dist/index.es39.js.map +1 -1
  269. package/dist/index.es4.js +2 -1
  270. package/dist/index.es4.js.map +1 -1
  271. package/dist/index.es40.js +116 -41
  272. package/dist/index.es40.js.map +1 -1
  273. package/dist/index.es41.js +64 -208
  274. package/dist/index.es41.js.map +1 -1
  275. package/dist/index.es42.js +17 -66
  276. package/dist/index.es42.js.map +1 -1
  277. package/dist/index.es43.js +236 -117
  278. package/dist/index.es43.js.map +1 -1
  279. package/dist/index.es44.js +38 -19
  280. package/dist/index.es44.js.map +1 -1
  281. package/dist/index.es45.js +202 -217
  282. package/dist/index.es45.js.map +1 -1
  283. package/dist/index.es46.js +65 -7
  284. package/dist/index.es46.js.map +1 -1
  285. package/dist/index.es47.js +131 -1181
  286. package/dist/index.es47.js.map +1 -1
  287. package/dist/index.es48.js +25 -8
  288. package/dist/index.es48.js.map +1 -1
  289. package/dist/index.es49.js +218 -135
  290. package/dist/index.es49.js.map +1 -1
  291. package/dist/index.es5.js.map +1 -1
  292. package/dist/index.es50.js +5 -208
  293. package/dist/index.es50.js.map +1 -1
  294. package/dist/index.es51.js +208 -5
  295. package/dist/index.es51.js.map +1 -1
  296. package/dist/index.es52.js +90 -7
  297. package/dist/index.es52.js.map +1 -1
  298. package/dist/index.es53.js +6 -92
  299. package/dist/index.es53.js.map +1 -1
  300. package/dist/index.es54.js +14 -3
  301. package/dist/index.es54.js.map +1 -1
  302. package/dist/index.es55.js +8 -36
  303. package/dist/index.es55.js.map +1 -1
  304. package/dist/index.es56.js +83 -61
  305. package/dist/index.es56.js.map +1 -1
  306. package/dist/index.es57.js +3 -37
  307. package/dist/index.es57.js.map +1 -1
  308. package/dist/index.es58.js +34 -304
  309. package/dist/index.es58.js.map +1 -1
  310. package/dist/index.es59.js +72 -9
  311. package/dist/index.es59.js.map +1 -1
  312. package/dist/index.es60.js +32 -85
  313. package/dist/index.es60.js.map +1 -1
  314. package/dist/index.es61.js +304 -6
  315. package/dist/index.es61.js.map +1 -1
  316. package/dist/index.es62.js +9 -15
  317. package/dist/index.es62.js.map +1 -1
  318. package/dist/index.es63.js +3 -3
  319. package/dist/index.es64.js +5 -142
  320. package/dist/index.es64.js.map +1 -1
  321. package/dist/index.es65.js +148 -285
  322. package/dist/index.es65.js.map +1 -1
  323. package/dist/index.es66.js +668 -62
  324. package/dist/index.es66.js.map +1 -1
  325. package/dist/index.es67.js +131 -201
  326. package/dist/index.es67.js.map +1 -1
  327. package/dist/index.es68.js +295 -29
  328. package/dist/index.es68.js.map +1 -1
  329. package/dist/index.es69.js +65 -8
  330. package/dist/index.es69.js.map +1 -1
  331. package/dist/index.es7.js +2 -1
  332. package/dist/index.es7.js.map +1 -1
  333. package/dist/index.es70.js +210 -9
  334. package/dist/index.es70.js.map +1 -1
  335. package/dist/index.es71.js +28 -181
  336. package/dist/index.es71.js.map +1 -1
  337. package/dist/index.es72.js +8 -23
  338. package/dist/index.es72.js.map +1 -1
  339. package/dist/index.es73.js +9 -1397
  340. package/dist/index.es73.js.map +1 -1
  341. package/dist/index.es74.js +187 -9
  342. package/dist/index.es74.js.map +1 -1
  343. package/dist/index.es75.js +24 -8
  344. package/dist/index.es75.js.map +1 -1
  345. package/dist/index.es76.js +1399 -5
  346. package/dist/index.es76.js.map +1 -1
  347. package/dist/index.es77.js +9 -163
  348. package/dist/index.es77.js.map +1 -1
  349. package/dist/index.es78.js +8 -672
  350. package/dist/index.es78.js.map +1 -1
  351. package/dist/index.es79.js +36 -20
  352. package/dist/index.es79.js.map +1 -1
  353. package/dist/index.es80.js +5 -68
  354. package/dist/index.es80.js.map +1 -1
  355. package/dist/index.es81.js +73 -3
  356. package/dist/index.es81.js.map +1 -1
  357. package/dist/index.es82.js +36 -11
  358. package/dist/index.es82.js.map +1 -1
  359. package/dist/index.es83.js +10 -38
  360. package/dist/index.es83.js.map +1 -1
  361. package/dist/index.es84.js +34 -28
  362. package/dist/index.es84.js.map +1 -1
  363. package/dist/index.es85.js +28 -226
  364. package/dist/index.es85.js.map +1 -1
  365. package/dist/index.es86.js +228 -26
  366. package/dist/index.es86.js.map +1 -1
  367. package/dist/index.es87.js +26 -71
  368. package/dist/index.es87.js.map +1 -1
  369. package/dist/index.es88.js +41 -42
  370. package/dist/index.es88.js.map +1 -1
  371. package/dist/index.es89.js +71 -47
  372. package/dist/index.es89.js.map +1 -1
  373. package/dist/index.es90.js +37 -15
  374. package/dist/index.es90.js.map +1 -1
  375. package/dist/index.es91.js +6 -19
  376. package/dist/index.es91.js.map +1 -1
  377. package/dist/index.es92.js +40 -54
  378. package/dist/index.es92.js.map +1 -1
  379. package/dist/index.es93.js +56 -12
  380. package/dist/index.es93.js.map +1 -1
  381. package/dist/index.es94.js +13 -137
  382. package/dist/index.es94.js.map +1 -1
  383. package/dist/index.es95.js +135 -19
  384. package/dist/index.es95.js.map +1 -1
  385. package/dist/index.es96.js +18 -179
  386. package/dist/index.es96.js.map +1 -1
  387. package/dist/index.es97.js +163 -222
  388. package/dist/index.es97.js.map +1 -1
  389. package/dist/index.es98.js +187 -301
  390. package/dist/index.es98.js.map +1 -1
  391. package/dist/index.es99.js +348 -130
  392. package/dist/index.es99.js.map +1 -1
  393. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.es49.js","sources":["../node_modules/.pnpm/@langchain+langgraph-sdk@1.5.3_@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5___react-d_6e8116ad15c37793c6138fe0d58aa04e/node_modules/@langchain/langgraph-sdk/dist/ui/branching.js"],"sourcesContent":["//#region src/ui/branching.ts\nfunction getBranchSequence(history) {\n\tconst nodeIds = /* @__PURE__ */ new Set();\n\tconst childrenMap = {};\n\tif (history.length <= 1) return {\n\t\trootSequence: {\n\t\t\ttype: \"sequence\",\n\t\t\titems: history.map((value) => ({\n\t\t\t\ttype: \"node\",\n\t\t\t\tvalue,\n\t\t\t\tpath: []\n\t\t\t}))\n\t\t},\n\t\tpaths: []\n\t};\n\thistory.forEach((state) => {\n\t\tconst checkpointId = state.parent_checkpoint?.checkpoint_id ?? \"$\";\n\t\tchildrenMap[checkpointId] ??= [];\n\t\tchildrenMap[checkpointId].push(state);\n\t\tif (state.checkpoint?.checkpoint_id != null) nodeIds.add(state.checkpoint.checkpoint_id);\n\t});\n\tconst maxId = (...ids) => ids.filter((i) => i != null).sort((a, b) => a.localeCompare(b)).at(-1);\n\tconst lastOrphanedNode = childrenMap.$ == null ? Object.keys(childrenMap).filter((parentId) => !nodeIds.has(parentId)).map((parentId) => {\n\t\tconst queue$1 = [parentId];\n\t\tconst seen = /* @__PURE__ */ new Set();\n\t\tlet lastId = parentId;\n\t\twhile (queue$1.length > 0) {\n\t\t\tconst current = queue$1.shift();\n\t\t\tif (seen.has(current)) continue;\n\t\t\tseen.add(current);\n\t\t\tconst children = (childrenMap[current] ?? []).flatMap((i) => i.checkpoint?.checkpoint_id ?? []);\n\t\t\tlastId = maxId(lastId, ...children);\n\t\t\tqueue$1.push(...children);\n\t\t}\n\t\treturn {\n\t\t\tparentId,\n\t\t\tlastId\n\t\t};\n\t}).sort((a, b) => a.lastId.localeCompare(b.lastId)).at(-1)?.parentId : void 0;\n\tif (lastOrphanedNode != null) childrenMap.$ = childrenMap[lastOrphanedNode];\n\tconst rootSequence = {\n\t\ttype: \"sequence\",\n\t\titems: []\n\t};\n\tconst queue = [{\n\t\tid: \"$\",\n\t\tsequence: rootSequence,\n\t\tpath: []\n\t}];\n\tconst paths = [];\n\tconst visited = /* @__PURE__ */ new Set();\n\twhile (queue.length > 0) {\n\t\tconst task = queue.shift();\n\t\tif (visited.has(task.id)) continue;\n\t\tvisited.add(task.id);\n\t\tconst children = childrenMap[task.id];\n\t\tif (children == null || children.length === 0) continue;\n\t\tlet fork;\n\t\tif (children.length > 1) {\n\t\t\tfork = {\n\t\t\t\ttype: \"fork\",\n\t\t\t\titems: []\n\t\t\t};\n\t\t\ttask.sequence.items.push(fork);\n\t\t}\n\t\tfor (const value of children) {\n\t\t\tconst id = value.checkpoint?.checkpoint_id;\n\t\t\tif (id == null) continue;\n\t\t\tlet { sequence } = task;\n\t\t\tlet { path } = task;\n\t\t\tif (fork != null) {\n\t\t\t\tsequence = {\n\t\t\t\t\ttype: \"sequence\",\n\t\t\t\t\titems: []\n\t\t\t\t};\n\t\t\t\tfork.items.unshift(sequence);\n\t\t\t\tpath = path.slice();\n\t\t\t\tpath.push(id);\n\t\t\t\tpaths.push(path);\n\t\t\t}\n\t\t\tsequence.items.push({\n\t\t\t\ttype: \"node\",\n\t\t\t\tvalue,\n\t\t\t\tpath\n\t\t\t});\n\t\t\tqueue.push({\n\t\t\t\tid,\n\t\t\t\tsequence,\n\t\t\t\tpath\n\t\t\t});\n\t\t}\n\t}\n\treturn {\n\t\trootSequence,\n\t\tpaths\n\t};\n}\nconst PATH_SEP = \">\";\nconst ROOT_ID = \"$\";\nfunction getBranchView(sequence, paths, branch) {\n\tconst path = branch.split(PATH_SEP);\n\tconst pathMap = {};\n\tfor (const path$1 of paths) {\n\t\tconst parent = path$1.at(-2) ?? ROOT_ID;\n\t\tpathMap[parent] ??= [];\n\t\tpathMap[parent].unshift(path$1);\n\t}\n\tconst history = [];\n\tconst branchByCheckpoint = {};\n\tconst forkStack = path.slice();\n\tconst queue = [...sequence.items];\n\twhile (queue.length > 0) {\n\t\tconst item = queue.shift();\n\t\tif (item.type === \"node\") {\n\t\t\thistory.push(item.value);\n\t\t\tconst checkpointId = item.value.checkpoint?.checkpoint_id;\n\t\t\tif (checkpointId == null) continue;\n\t\t\tbranchByCheckpoint[checkpointId] = {\n\t\t\t\tbranch: item.path.join(PATH_SEP),\n\t\t\t\tbranchOptions: (item.path.length > 0 ? pathMap[item.path.at(-2) ?? ROOT_ID] ?? [] : []).map((p) => p.join(PATH_SEP))\n\t\t\t};\n\t\t}\n\t\tif (item.type === \"fork\") {\n\t\t\tconst forkId = forkStack.shift();\n\t\t\tconst index = forkId != null ? item.items.findIndex((value) => {\n\t\t\t\tconst firstItem = value.items.at(0);\n\t\t\t\tif (!firstItem || firstItem.type !== \"node\") return false;\n\t\t\t\treturn firstItem.value.checkpoint?.checkpoint_id === forkId;\n\t\t\t}) : -1;\n\t\t\tconst nextItems = item.items.at(index)?.items ?? [];\n\t\t\tqueue.push(...nextItems);\n\t\t}\n\t}\n\treturn {\n\t\thistory,\n\t\tbranchByCheckpoint\n\t};\n}\nfunction getBranchContext(branch, history) {\n\tconst { rootSequence: branchTree, paths } = getBranchSequence(history ?? []);\n\tconst { history: flatHistory, branchByCheckpoint } = getBranchView(branchTree, paths, branch);\n\treturn {\n\t\tbranchTree,\n\t\tflatHistory,\n\t\tbranchByCheckpoint,\n\t\tthreadHead: flatHistory.at(-1)\n\t};\n}\n\n//#endregion\nexport { getBranchContext };\n//# sourceMappingURL=branching.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es49.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/utils.js"],"sourcesContent":["import { _isMessageFieldWithRole, isBaseMessage } from \"./base.js\";\nimport { ToolMessage } from \"./tool.js\";\nimport { addLangChainErrorFields } from \"../errors/index.js\";\nimport { _isToolCall } from \"../tools/utils.js\";\nimport { parsePartialJson } from \"../utils/json.js\";\nimport { ChatMessage, ChatMessageChunk } from \"./chat.js\";\nimport { FunctionMessage, FunctionMessageChunk } from \"./function.js\";\nimport { HumanMessage, HumanMessageChunk } from \"./human.js\";\nimport { RemoveMessage } from \"./modifier.js\";\nimport { SystemMessage, SystemMessageChunk } from \"./system.js\";\nimport { AIMessage, AIMessageChunk } from \"./ai.js\";\n\n//#region src/messages/utils.ts\n/**\n* Immediately-invoked function expression.\n*\n* @param fn - The function to execute\n* @returns The result of the function\n*/\nconst iife = (fn) => fn();\nfunction _coerceToolCall(toolCall) {\n\tif (_isToolCall(toolCall)) return toolCall;\n\telse if (typeof toolCall.id === \"string\" && toolCall.type === \"function\" && typeof toolCall.function === \"object\" && toolCall.function !== null && \"arguments\" in toolCall.function && typeof toolCall.function.arguments === \"string\" && \"name\" in toolCall.function && typeof toolCall.function.name === \"string\") return {\n\t\tid: toolCall.id,\n\t\targs: JSON.parse(toolCall.function.arguments),\n\t\tname: toolCall.function.name,\n\t\ttype: \"tool_call\"\n\t};\n\telse return toolCall;\n}\nfunction isSerializedConstructor(x) {\n\treturn typeof x === \"object\" && x != null && x.lc === 1 && Array.isArray(x.id) && x.kwargs != null && typeof x.kwargs === \"object\";\n}\nfunction _constructMessageFromParams(params) {\n\tlet type;\n\tlet rest;\n\tif (isSerializedConstructor(params)) {\n\t\tconst className = params.id.at(-1);\n\t\tif (className === \"HumanMessage\" || className === \"HumanMessageChunk\") type = \"user\";\n\t\telse if (className === \"AIMessage\" || className === \"AIMessageChunk\") type = \"assistant\";\n\t\telse if (className === \"SystemMessage\" || className === \"SystemMessageChunk\") type = \"system\";\n\t\telse if (className === \"FunctionMessage\" || className === \"FunctionMessageChunk\") type = \"function\";\n\t\telse if (className === \"ToolMessage\" || className === \"ToolMessageChunk\") type = \"tool\";\n\t\telse type = \"unknown\";\n\t\trest = params.kwargs;\n\t} else {\n\t\tconst { type: extractedType,...otherParams } = params;\n\t\ttype = extractedType;\n\t\trest = otherParams;\n\t}\n\tif (type === \"human\" || type === \"user\") return new HumanMessage(rest);\n\telse if (type === \"ai\" || type === \"assistant\") {\n\t\tconst { tool_calls: rawToolCalls,...other } = rest;\n\t\tif (!Array.isArray(rawToolCalls)) return new AIMessage(rest);\n\t\tconst tool_calls = rawToolCalls.map(_coerceToolCall);\n\t\treturn new AIMessage({\n\t\t\t...other,\n\t\t\ttool_calls\n\t\t});\n\t} else if (type === \"system\") return new SystemMessage(rest);\n\telse if (type === \"developer\") return new SystemMessage({\n\t\t...rest,\n\t\tadditional_kwargs: {\n\t\t\t...rest.additional_kwargs,\n\t\t\t__openai_role__: \"developer\"\n\t\t}\n\t});\n\telse if (type === \"tool\" && \"tool_call_id\" in rest) return new ToolMessage({\n\t\t...rest,\n\t\tcontent: rest.content,\n\t\ttool_call_id: rest.tool_call_id,\n\t\tname: rest.name\n\t});\n\telse if (type === \"remove\" && \"id\" in rest && typeof rest.id === \"string\") return new RemoveMessage({\n\t\t...rest,\n\t\tid: rest.id\n\t});\n\telse {\n\t\tconst error = addLangChainErrorFields(/* @__PURE__ */ new Error(`Unable to coerce message from array: only human, AI, system, developer, or tool message coercion is currently supported.\\n\\nReceived: ${JSON.stringify(params, null, 2)}`), \"MESSAGE_COERCION_FAILURE\");\n\t\tthrow error;\n\t}\n}\nfunction coerceMessageLikeToMessage(messageLike) {\n\tif (typeof messageLike === \"string\") return new HumanMessage(messageLike);\n\telse if (isBaseMessage(messageLike)) return messageLike;\n\tif (Array.isArray(messageLike)) {\n\t\tconst [type, content] = messageLike;\n\t\treturn _constructMessageFromParams({\n\t\t\ttype,\n\t\t\tcontent\n\t\t});\n\t} else if (_isMessageFieldWithRole(messageLike)) {\n\t\tconst { role: type,...rest } = messageLike;\n\t\treturn _constructMessageFromParams({\n\t\t\t...rest,\n\t\t\ttype\n\t\t});\n\t} else return _constructMessageFromParams(messageLike);\n}\n/**\n* This function is used by memory classes to get a string representation\n* of the chat message history, based on the message content and role.\n*\n* Produces compact output like:\n* ```\n* Human: What's the weather?\n* AI: Let me check...[tool_calls]\n* Tool: 72°F and sunny\n* ```\n*\n* This avoids token inflation from metadata when stringifying message objects directly.\n*/\nfunction getBufferString(messages, humanPrefix = \"Human\", aiPrefix = \"AI\") {\n\tconst string_messages = [];\n\tfor (const m of messages) {\n\t\tlet role;\n\t\tif (m.type === \"human\") role = humanPrefix;\n\t\telse if (m.type === \"ai\") role = aiPrefix;\n\t\telse if (m.type === \"system\") role = \"System\";\n\t\telse if (m.type === \"tool\") role = \"Tool\";\n\t\telse if (m.type === \"generic\") role = m.role;\n\t\telse throw new Error(`Got unsupported message type: ${m.type}`);\n\t\tconst nameStr = m.name ? `${m.name}, ` : \"\";\n\t\tconst readableContent = m.text;\n\t\tlet message = `${role}: ${nameStr}${readableContent}`;\n\t\tif (m.type === \"ai\") {\n\t\t\tconst aiMessage = m;\n\t\t\tif (aiMessage.tool_calls && aiMessage.tool_calls.length > 0) message += JSON.stringify(aiMessage.tool_calls);\n\t\t\telse if (aiMessage.additional_kwargs && \"function_call\" in aiMessage.additional_kwargs) message += JSON.stringify(aiMessage.additional_kwargs.function_call);\n\t\t}\n\t\tstring_messages.push(message);\n\t}\n\treturn string_messages.join(\"\\n\");\n}\n/**\n* Maps messages from an older format (V1) to the current `StoredMessage`\n* format. If the message is already in the `StoredMessage` format, it is\n* returned as is. Otherwise, it transforms the V1 message into a\n* `StoredMessage`. This function is important for maintaining\n* compatibility with older message formats.\n*/\nfunction mapV1MessageToStoredMessage(message) {\n\tif (message.data !== void 0) return message;\n\telse {\n\t\tconst v1Message = message;\n\t\treturn {\n\t\t\ttype: v1Message.type,\n\t\t\tdata: {\n\t\t\t\tcontent: v1Message.text,\n\t\t\t\trole: v1Message.role,\n\t\t\t\tname: void 0,\n\t\t\t\ttool_call_id: void 0\n\t\t\t}\n\t\t};\n\t}\n}\nfunction mapStoredMessageToChatMessage(message) {\n\tconst storedMessage = mapV1MessageToStoredMessage(message);\n\tswitch (storedMessage.type) {\n\t\tcase \"human\": return new HumanMessage(storedMessage.data);\n\t\tcase \"ai\": return new AIMessage(storedMessage.data);\n\t\tcase \"system\": return new SystemMessage(storedMessage.data);\n\t\tcase \"function\":\n\t\t\tif (storedMessage.data.name === void 0) throw new Error(\"Name must be defined for function messages\");\n\t\t\treturn new FunctionMessage(storedMessage.data);\n\t\tcase \"tool\":\n\t\t\tif (storedMessage.data.tool_call_id === void 0) throw new Error(\"Tool call ID must be defined for tool messages\");\n\t\t\treturn new ToolMessage(storedMessage.data);\n\t\tcase \"generic\":\n\t\t\tif (storedMessage.data.role === void 0) throw new Error(\"Role must be defined for chat messages\");\n\t\t\treturn new ChatMessage(storedMessage.data);\n\t\tdefault: throw new Error(`Got unexpected type: ${storedMessage.type}`);\n\t}\n}\n/**\n* Transforms an array of `StoredMessage` instances into an array of\n* `BaseMessage` instances. It uses the `mapV1MessageToStoredMessage`\n* function to ensure all messages are in the `StoredMessage` format, then\n* creates new instances of the appropriate `BaseMessage` subclass based\n* on the type of each message. This function is used to prepare stored\n* messages for use in a chat context.\n*/\nfunction mapStoredMessagesToChatMessages(messages) {\n\treturn messages.map(mapStoredMessageToChatMessage);\n}\n/**\n* Transforms an array of `BaseMessage` instances into an array of\n* `StoredMessage` instances. It does this by calling the `toDict` method\n* on each `BaseMessage`, which returns a `StoredMessage`. This function\n* is used to prepare chat messages for storage.\n*/\nfunction mapChatMessagesToStoredMessages(messages) {\n\treturn messages.map((message) => message.toDict());\n}\nfunction convertToChunk(message) {\n\tconst type = message._getType();\n\tif (type === \"human\") return new HumanMessageChunk({ ...message });\n\telse if (type === \"ai\") {\n\t\tlet aiChunkFields = { ...message };\n\t\tif (\"tool_calls\" in aiChunkFields) aiChunkFields = {\n\t\t\t...aiChunkFields,\n\t\t\ttool_call_chunks: aiChunkFields.tool_calls?.map((tc) => ({\n\t\t\t\t...tc,\n\t\t\t\ttype: \"tool_call_chunk\",\n\t\t\t\tindex: void 0,\n\t\t\t\targs: JSON.stringify(tc.args)\n\t\t\t}))\n\t\t};\n\t\treturn new AIMessageChunk({ ...aiChunkFields });\n\t} else if (type === \"system\") return new SystemMessageChunk({ ...message });\n\telse if (type === \"function\") return new FunctionMessageChunk({ ...message });\n\telse if (ChatMessage.isInstance(message)) return new ChatMessageChunk({ ...message });\n\telse throw new Error(\"Unknown message type.\");\n}\n/**\n* Collapses an array of tool call chunks into complete tool calls.\n*\n* This function groups tool call chunks by their id and/or index, then attempts to\n* parse and validate the accumulated arguments for each group. Successfully parsed\n* tool calls are returned as valid `ToolCall` objects, while malformed ones are\n* returned as `InvalidToolCall` objects.\n*\n* @param chunks - An array of `ToolCallChunk` objects to collapse\n* @returns An object containing:\n* - `tool_call_chunks`: The original input chunks\n* - `tool_calls`: An array of successfully parsed and validated tool calls\n* - `invalid_tool_calls`: An array of tool calls that failed parsing or validation\n*\n* @remarks\n* Chunks are grouped using the following matching logic:\n* - If a chunk has both an id and index, it matches chunks with the same id and index\n* - If a chunk has only an id, it matches chunks with the same id\n* - If a chunk has only an index, it matches chunks with the same index\n*\n* For each group, the function:\n* 1. Concatenates all `args` strings from the chunks\n* 2. Attempts to parse the concatenated string as JSON\n* 3. Validates that the result is a non-null object with a valid id\n* 4. Creates either a `ToolCall` (if valid) or `InvalidToolCall` (if invalid)\n*/\nfunction collapseToolCallChunks(chunks) {\n\tconst groupedToolCallChunks = chunks.reduce((acc, chunk) => {\n\t\tconst matchedChunkIndex = acc.findIndex(([match]) => {\n\t\t\tif (\"id\" in chunk && chunk.id && \"index\" in chunk && chunk.index !== void 0) return chunk.id === match.id && chunk.index === match.index;\n\t\t\tif (\"id\" in chunk && chunk.id) return chunk.id === match.id;\n\t\t\tif (\"index\" in chunk && chunk.index !== void 0) return chunk.index === match.index;\n\t\t\treturn false;\n\t\t});\n\t\tif (matchedChunkIndex !== -1) acc[matchedChunkIndex].push(chunk);\n\t\telse acc.push([chunk]);\n\t\treturn acc;\n\t}, []);\n\tconst toolCalls = [];\n\tconst invalidToolCalls = [];\n\tfor (const chunks$1 of groupedToolCallChunks) {\n\t\tlet parsedArgs = null;\n\t\tconst name = chunks$1[0]?.name ?? \"\";\n\t\tconst joinedArgs = chunks$1.map((c) => c.args || \"\").join(\"\").trim();\n\t\tconst argsStr = joinedArgs.length ? joinedArgs : \"{}\";\n\t\tconst id = chunks$1[0]?.id;\n\t\ttry {\n\t\t\tparsedArgs = parsePartialJson(argsStr);\n\t\t\tif (!id || parsedArgs === null || typeof parsedArgs !== \"object\" || Array.isArray(parsedArgs)) throw new Error(\"Malformed tool call chunk args.\");\n\t\t\ttoolCalls.push({\n\t\t\t\tname,\n\t\t\t\targs: parsedArgs,\n\t\t\t\tid,\n\t\t\t\ttype: \"tool_call\"\n\t\t\t});\n\t\t} catch {\n\t\t\tinvalidToolCalls.push({\n\t\t\t\tname,\n\t\t\t\targs: argsStr,\n\t\t\t\tid,\n\t\t\t\terror: \"Malformed args.\",\n\t\t\t\ttype: \"invalid_tool_call\"\n\t\t\t});\n\t\t}\n\t}\n\treturn {\n\t\ttool_call_chunks: chunks,\n\t\ttool_calls: toolCalls,\n\t\tinvalid_tool_calls: invalidToolCalls\n\t};\n}\n\n//#endregion\nexport { coerceMessageLikeToMessage, collapseToolCallChunks, convertToChunk, getBufferString, iife, mapChatMessagesToStoredMessages, mapStoredMessageToChatMessage, mapStoredMessagesToChatMessages };\n//# sourceMappingURL=utils.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.es5.js","sources":["../src/providers/ChatRuntime.tsx"],"sourcesContent":["/* @refresh reset */\nimport { createContext, useContext, useMemo, useState, type ReactNode } from \"react\";\n\n/**\n * Identity information for the chat runtime.\n * Supports authentication tokens and custom identity fields.\n */\nexport type ChatIdentity = {\n /** Optional bearer token for API authentication */\n authToken?: string | null;\n /** Optional user identifier */\n user_id?: string | null;\n /** Optional organization identifier */\n org_id?: string | null;\n /** Allow additional custom identity fields */\n [key: string]: any;\n};\n\n/**\n * Context value containing core chat runtime configuration.\n * This includes API connection details and user identity.\n */\nexport type ChatRuntimeContextValue = {\n /** Base URL for the LangGraph API */\n apiUrl: string;\n /** Unique identifier for the assistant/agent */\n assistantId: string;\n /** Function to update the assistant ID */\n setAssistantId: (assistantId: string) => void;\n /** Optional user identity and authentication information */\n identity?: ChatIdentity | null;\n};\n\nconst ChatRuntimeContext = createContext<ChatRuntimeContextValue | undefined>(\n undefined\n);\n\ntype ChatRuntimeProviderProps = {\n /** Base URL for the LangGraph API endpoint */\n apiUrl: string;\n /** Unique identifier for the assistant/agent */\n assistantId: string;\n /** Optional user identity and authentication information */\n identity?: ChatIdentity | null;\n /** Child components that will have access to the runtime context */\n children: ReactNode;\n};\n\n/**\n * Provides core runtime configuration for the chat system.\n * This should be one of the outermost providers in your component tree.\n * \n * @example\n * ```tsx\n * <ChatRuntimeProvider\n * apiUrl=\"https://api.example.com\"\n * assistantId=\"my-assistant\"\n * identity={{ user_id: \"user123\" }}\n * >\n * <App />\n * </ChatRuntimeProvider>\n * ```\n */\nexport function ChatRuntimeProvider({\n apiUrl,\n assistantId: initialAssistantId,\n identity,\n children,\n}: ChatRuntimeProviderProps) {\n \n const [assistantId, setAssistantId] = useState(initialAssistantId);\n\n const value: ChatRuntimeContextValue = useMemo(() => ({\n apiUrl,\n assistantId,\n setAssistantId,\n identity,\n }), [apiUrl, assistantId, identity]);\n\n return (\n <ChatRuntimeContext.Provider value={value}>\n {children}\n </ChatRuntimeContext.Provider>\n );\n}\n\n/**\n * Hook to access the chat runtime context.\n * Returns API configuration and user identity information.\n * \n * @throws {Error} If used outside of ChatRuntimeProvider\n * \n * @example\n * ```tsx\n * const { apiUrl, assistantId, identity } = useChatRuntime();\n * ```\n */\nexport function useChatRuntime(): ChatRuntimeContextValue {\n const context = useContext(ChatRuntimeContext);\n if (!context) {\n throw new Error(\"useChatRuntime must be used within a ChatRuntimeProvider\");\n }\n return context;\n}\n"],"names":[],"mappings":";;AAiCA,MAAM,qBAAqB;AAAA,EACzB;AACF;AA4BO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AACF,GAA6B;AAE3B,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,kBAAkB;AAEjE,QAAM,QAAiC,QAAQ,OAAO;AAAA,IACpD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE,CAAC,QAAQ,aAAa,QAAQ,CAAC;AAEnC,SACE,oBAAC,mBAAmB,UAAnB,EAA4B,OAC1B,SAAA,CACH;AAEJ;AAaO,SAAS,iBAA0C;AACxD,QAAM,UAAU,WAAW,kBAAkB;AAC7C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AACA,SAAO;AACT;"}
1
+ {"version":3,"file":"index.es5.js","sources":["../src/providers/ChatRuntime.tsx"],"sourcesContent":["/* @refresh reset */\nimport type { ChatIdentity } from \"@/types/ChatIdentity\";\nimport { createContext, useContext, useMemo, useState, type ReactNode } from \"react\";\n\n/**\n * Context value containing core chat runtime configuration.\n * This includes API connection details and user identity.\n */\nexport type ChatRuntimeContextValue = {\n /** Base URL for the LangGraph API */\n apiUrl: string;\n /** Unique identifier for the assistant/agent */\n assistantId: string;\n /** Function to update the assistant ID */\n setAssistantId: (assistantId: string) => void;\n /** Optional user identity and authentication information */\n identity?: ChatIdentity | null;\n};\n\nconst ChatRuntimeContext = createContext<ChatRuntimeContextValue | undefined>(\n undefined\n);\n\ntype ChatRuntimeProviderProps = {\n /** Base URL for the LangGraph API endpoint */\n apiUrl: string;\n /** Unique identifier for the assistant/agent */\n assistantId: string;\n /** Optional user identity and authentication information */\n identity?: ChatIdentity | null;\n /** Child components that will have access to the runtime context */\n children: ReactNode;\n};\n\n/**\n * Provides core runtime configuration for the chat system.\n * This should be one of the outermost providers in your component tree.\n * \n * @example\n * ```tsx\n * <ChatRuntimeProvider\n * apiUrl=\"https://api.example.com\"\n * assistantId=\"my-assistant\"\n * identity={{ user_id: \"user123\" }}\n * >\n * <App />\n * </ChatRuntimeProvider>\n * ```\n */\nexport function ChatRuntimeProvider({\n apiUrl,\n assistantId: initialAssistantId,\n identity,\n children,\n}: ChatRuntimeProviderProps) {\n \n const [assistantId, setAssistantId] = useState(initialAssistantId);\n\n const value: ChatRuntimeContextValue = useMemo(() => ({\n apiUrl,\n assistantId,\n setAssistantId,\n identity,\n }), [apiUrl, assistantId, identity]);\n\n return (\n <ChatRuntimeContext.Provider value={value}>\n {children}\n </ChatRuntimeContext.Provider>\n );\n}\n\n/**\n * Hook to access the chat runtime context.\n * Returns API configuration and user identity information.\n * \n * @throws {Error} If used outside of ChatRuntimeProvider\n * \n * @example\n * ```tsx\n * const { apiUrl, assistantId, identity } = useChatRuntime();\n * ```\n */\nexport function useChatRuntime(): ChatRuntimeContextValue {\n const context = useContext(ChatRuntimeContext);\n if (!context) {\n throw new Error(\"useChatRuntime must be used within a ChatRuntimeProvider\");\n }\n return context;\n}\n"],"names":[],"mappings":";;AAmBA,MAAM,qBAAqB;AAAA,EACzB;AACF;AA4BO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA;AACF,GAA6B;AAE3B,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,kBAAkB;AAEjE,QAAM,QAAiC,QAAQ,OAAO;AAAA,IACpD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE,CAAC,QAAQ,aAAa,QAAQ,CAAC;AAEnC,SACE,oBAAC,mBAAmB,UAAnB,EAA4B,OAC1B,SAAA,CACH;AAEJ;AAaO,SAAS,iBAA0C;AACxD,QAAM,UAAU,WAAW,kBAAkB;AAC7C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AACA,SAAO;AACT;"}
@@ -1,212 +1,9 @@
1
- import { jsx, Fragment } from "react/jsx-runtime";
2
- import { cn } from "./index.es51.js";
3
- import ReactMarkdown from "react-markdown";
4
- import rehypeAutoLinkHeadings from "rehype-autolink-headings";
5
- import rehypeHighlight from "rehype-highlight";
6
- import remarkBreaks from "remark-breaks";
7
- import remarkGfm from "remark-gfm";
8
- import remarkMath from "remark-math";
9
- import { SyntaxHighlighter } from "./index.es63.js";
10
- const defaultComponents = {
11
- h1: ({ className, ...props }) => /* @__PURE__ */ jsx(
12
- "h1",
13
- {
14
- className: cn(
15
- "mb-8 scroll-m-20 text-4xl font-extrabold tracking-tight last:mb-0",
16
- className
17
- ),
18
- ...props
19
- }
20
- ),
21
- h2: ({ className, ...props }) => /* @__PURE__ */ jsx(
22
- "h2",
23
- {
24
- className: cn(
25
- "mt-8 mb-4 scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0 last:mb-0",
26
- className
27
- ),
28
- ...props
29
- }
30
- ),
31
- h3: ({ className, ...props }) => /* @__PURE__ */ jsx(
32
- "h3",
33
- {
34
- className: cn(
35
- "mt-6 mb-4 scroll-m-20 text-2xl font-semibold tracking-tight first:mt-0 last:mb-0",
36
- className
37
- ),
38
- ...props
39
- }
40
- ),
41
- h4: ({ className, ...props }) => /* @__PURE__ */ jsx(
42
- "h4",
43
- {
44
- className: cn(
45
- "mt-6 mb-4 scroll-m-20 text-xl font-semibold tracking-tight first:mt-0 last:mb-0",
46
- className
47
- ),
48
- ...props
49
- }
50
- ),
51
- h5: ({ className, ...props }) => /* @__PURE__ */ jsx(
52
- "h5",
53
- {
54
- className: cn(
55
- "my-4 text-lg font-semibold first:mt-0 last:mb-0",
56
- className
57
- ),
58
- ...props
59
- }
60
- ),
61
- h6: ({ className, ...props }) => /* @__PURE__ */ jsx(
62
- "h6",
63
- {
64
- className: cn("my-4 font-semibold first:mt-0 last:mb-0", className),
65
- ...props
66
- }
67
- ),
68
- p: ({ className, ...props }) => /* @__PURE__ */ jsx(
69
- "p",
70
- {
71
- className: cn("mt-5 mb-5 leading-7 first:mt-0 last:mb-0", className),
72
- ...props
73
- }
74
- ),
75
- a: ({ className, ...props }) => /* @__PURE__ */ jsx(
76
- "a",
77
- {
78
- className: cn(
79
- "text-primary font-medium underline underline-offset-4",
80
- className
81
- ),
82
- ...props
83
- }
84
- ),
85
- blockquote: ({ className, ...props }) => /* @__PURE__ */ jsx(
86
- "blockquote",
87
- {
88
- className: cn("border-l-2 pl-6 italic", className),
89
- ...props
90
- }
91
- ),
92
- ul: ({ className, ...props }) => /* @__PURE__ */ jsx(
93
- "ul",
94
- {
95
- className: cn("my-5 ml-6 list-disc [&>li]:mt-2", className),
96
- ...props
97
- }
98
- ),
99
- ol: ({ className, ...props }) => /* @__PURE__ */ jsx(
100
- "ol",
101
- {
102
- className: cn("my-5 ml-6 list-decimal [&>li]:mt-2", className),
103
- ...props
104
- }
105
- ),
106
- hr: ({ className, ...props }) => /* @__PURE__ */ jsx(
107
- "hr",
108
- {
109
- className: cn("my-5 border-b", className),
110
- ...props
111
- }
112
- ),
113
- table: ({ className, ...props }) => /* @__PURE__ */ jsx(
114
- "table",
115
- {
116
- className: cn(
117
- "my-5 w-full border-separate border-spacing-0 overflow-y-auto border-zinc-800 rounded-lg",
118
- className
119
- ),
120
- ...props
121
- }
122
- ),
123
- th: ({ className, ...props }) => /* @__PURE__ */ jsx(
124
- "th",
125
- {
126
- className: cn(
127
- "bg-muted px-4 py-2 text-left font-bold [&[align=center]]:text-center [&[align=right]]:text-right",
128
- className
129
- ),
130
- ...props
131
- }
132
- ),
133
- td: ({ className, ...props }) => /* @__PURE__ */ jsx(
134
- "td",
135
- {
136
- className: cn(
137
- "border px-4 py-2 text-left [&[align=center]]:text-center [&[align=right]]:text-right",
138
- className
139
- ),
140
- ...props
141
- }
142
- ),
143
- tr: ({ className, ...props }) => /* @__PURE__ */ jsx(
144
- "tr",
145
- {
146
- className: cn(
147
- "m-0 border p-0 first:border-t [&:first-child>td:first-child]:rounded-tl-lg [&:first-child>td:last-child]:rounded-tr-lg [&:last-child>td:first-child]:rounded-bl-lg [&:last-child>td:last-child]:rounded-br-lg",
148
- className
149
- ),
150
- ...props
151
- }
152
- ),
153
- sup: ({ className, ...props }) => /* @__PURE__ */ jsx(
154
- "sup",
155
- {
156
- className: cn("[&>a]:text-xs [&>a]:no-underline", className),
157
- ...props
158
- }
159
- ),
160
- pre: ({ className, ...props }) => /* @__PURE__ */ jsx(
161
- "pre",
162
- {
163
- className: cn(
164
- "max-w-4xl overflow-x-auto rounded-lg bg-black text-white",
165
- className
166
- ),
167
- ...props
168
- }
169
- ),
170
- code: ({
171
- className,
172
- children,
173
- ...props
174
- }) => {
175
- const match = /language-(\w+)/.exec(className || "");
176
- if (match) {
177
- const language = match[1];
178
- const code = String(children).replace(/\n$/, "");
179
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
180
- SyntaxHighlighter,
181
- {
182
- language,
183
- className,
184
- children: code
185
- }
186
- ) });
187
- }
188
- return /* @__PURE__ */ jsx(
189
- "code",
190
- {
191
- className: cn("rounded font-semibold", className),
192
- ...props,
193
- children
194
- }
195
- );
196
- }
197
- };
198
- function AgentMarkdown({ content }) {
199
- return /* @__PURE__ */ jsx(
200
- ReactMarkdown,
201
- {
202
- remarkPlugins: [remarkGfm, remarkBreaks, remarkMath],
203
- rehypePlugins: [rehypeHighlight, rehypeAutoLinkHeadings],
204
- components: defaultComponents,
205
- children: content
206
- }
207
- );
1
+ import clsx from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ function cn(...inputs) {
4
+ return twMerge(clsx(inputs));
208
5
  }
209
6
  export {
210
- AgentMarkdown
7
+ cn
211
8
  };
212
9
  //# sourceMappingURL=index.es50.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es50.js","sources":["../src/components/ui/AgentMarkdown.tsx"],"sourcesContent":["import { cn } from \"@/utils/tailwindUtil\";\n// import { CheckIcon, CopyIcon } from \"lucide-react\";\n// import { type FC, useState } from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport rehypeAutoLinkHeadings from \"rehype-autolink-headings\";\nimport rehypeHighlight from \"rehype-highlight\";\nimport remarkBreaks from \"remark-breaks\";\nimport remarkGfm from \"remark-gfm\";\nimport remarkMath from \"remark-math\";\nimport { SyntaxHighlighter } from \"./syntax-highlighter\";\n// import { TooltipIconButton } from \"./tooltip-icon-button\";\n// import \"highlight.js/styles/github.css\";\n\n// interface CodeHeaderProps {\n// language?: string;\n// code: string;\n// }\n\n// const useCopyToClipboard = ({\n// copiedDuration = 3000,\n// }: {\n// copiedDuration?: number;\n// } = {}) => {\n// const [isCopied, setIsCopied] = useState<boolean>(false);\n\n// const copyToClipboard = (value: string) => {\n// if (!value) return;\n\n// navigator.clipboard.writeText(value).then(() => {\n// setIsCopied(true);\n// setTimeout(() => setIsCopied(false), copiedDuration);\n// });\n// };\n\n// return { isCopied, copyToClipboard };\n// };\n\n// const CodeHeader: FC<CodeHeaderProps> = ({ language, code }) => {\n// const { isCopied, copyToClipboard } = useCopyToClipboard();\n// const onCopy = () => {\n// if (!code || isCopied) return;\n// copyToClipboard(code);\n// };\n\n// return (\n// <div className=\"flex items-center justify-between gap-4 rounded-t-lg bg-zinc-900 px-4 py-2 text-sm font-semibold text-white\">\n// <span className=\"lowercase [&>span]:text-xs\">{language}</span>\n// <TooltipIconButton\n// tooltip=\"Copy\"\n// onClick={onCopy}\n// >\n// {!isCopied && <CopyIcon />}\n// {isCopied && <CheckIcon />}\n// </TooltipIconButton>\n// </div>\n// );\n// };\n\nconst defaultComponents: any = {\n h1: ({ className, ...props }: { className?: string }) => (\n <h1\n className={cn(\n \"mb-8 scroll-m-20 text-4xl font-extrabold tracking-tight last:mb-0\",\n className,\n )}\n {...props}\n />\n ),\n h2: ({ className, ...props }: { className?: string }) => (\n <h2\n className={cn(\n \"mt-8 mb-4 scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0 last:mb-0\",\n className,\n )}\n {...props}\n />\n ),\n h3: ({ className, ...props }: { className?: string }) => (\n <h3\n className={cn(\n \"mt-6 mb-4 scroll-m-20 text-2xl font-semibold tracking-tight first:mt-0 last:mb-0\",\n className,\n )}\n {...props}\n />\n ),\n h4: ({ className, ...props }: { className?: string }) => (\n <h4\n className={cn(\n \"mt-6 mb-4 scroll-m-20 text-xl font-semibold tracking-tight first:mt-0 last:mb-0\",\n className,\n )}\n {...props}\n />\n ),\n h5: ({ className, ...props }: { className?: string }) => (\n <h5\n className={cn(\n \"my-4 text-lg font-semibold first:mt-0 last:mb-0\",\n className,\n )}\n {...props}\n />\n ),\n h6: ({ className, ...props }: { className?: string }) => (\n <h6\n className={cn(\"my-4 font-semibold first:mt-0 last:mb-0\", className)}\n {...props}\n />\n ),\n p: ({ className, ...props }: { className?: string }) => (\n <p\n className={cn(\"mt-5 mb-5 leading-7 first:mt-0 last:mb-0\", className)}\n {...props}\n />\n ),\n a: ({ className, ...props }: { className?: string }) => (\n <a\n className={cn(\n \"text-primary font-medium underline underline-offset-4\",\n className,\n )}\n {...props}\n />\n ),\n blockquote: ({ className, ...props }: { className?: string }) => (\n <blockquote\n className={cn(\"border-l-2 pl-6 italic\", className)}\n {...props}\n />\n ),\n ul: ({ className, ...props }: { className?: string }) => (\n <ul\n className={cn(\"my-5 ml-6 list-disc [&>li]:mt-2\", className)}\n {...props}\n />\n ),\n ol: ({ className, ...props }: { className?: string }) => (\n <ol\n className={cn(\"my-5 ml-6 list-decimal [&>li]:mt-2\", className)}\n {...props}\n />\n ),\n hr: ({ className, ...props }: { className?: string }) => (\n <hr\n className={cn(\"my-5 border-b\", className)}\n {...props}\n />\n ),\n table: ({ className, ...props }: { className?: string }) => (\n <table\n className={cn(\n \"my-5 w-full border-separate border-spacing-0 overflow-y-auto border-zinc-800 rounded-lg\",\n className,\n )}\n {...props}\n />\n ),\n th: ({ className, ...props }: { className?: string }) => (\n <th\n className={cn(\n \"bg-muted px-4 py-2 text-left font-bold [&[align=center]]:text-center [&[align=right]]:text-right\",\n className,\n )}\n {...props}\n />\n ),\n td: ({ className, ...props }: { className?: string }) => (\n <td\n className={cn(\n \"border px-4 py-2 text-left [&[align=center]]:text-center [&[align=right]]:text-right\",\n className,\n )}\n {...props}\n />\n ),\n tr: ({ className, ...props }: { className?: string }) => (\n <tr\n className={cn(\n \"m-0 border p-0 first:border-t [&:first-child>td:first-child]:rounded-tl-lg [&:first-child>td:last-child]:rounded-tr-lg [&:last-child>td:first-child]:rounded-bl-lg [&:last-child>td:last-child]:rounded-br-lg\",\n className,\n )}\n {...props}\n />\n ),\n sup: ({ className, ...props }: { className?: string }) => (\n <sup\n className={cn(\"[&>a]:text-xs [&>a]:no-underline\", className)}\n {...props}\n />\n ),\n pre: ({ className, ...props }: { className?: string }) => (\n <pre\n className={cn(\n \"max-w-4xl overflow-x-auto rounded-lg bg-black text-white\",\n className,\n )}\n {...props}\n />\n ),\n code: ({\n className,\n children,\n ...props\n }: {\n className?: string;\n children: React.ReactNode;\n }) => {\n const match = /language-(\\w+)/.exec(className || \"\");\n\n if (match) {\n const language = match[1];\n const code = String(children).replace(/\\n$/, \"\");\n\n return (\n <>\n {/* <CodeHeader\n language={language}\n code={code}\n /> */}\n <SyntaxHighlighter\n language={language}\n className={className}\n >\n {code}\n </SyntaxHighlighter>\n </>\n );\n }\n\n return (\n <code\n className={cn(\"rounded font-semibold\", className)}\n {...props}\n >\n {children}\n </code>\n );\n },\n};\n\nexport function AgentMarkdown({ content }: { content: string }) {\n return (\n <ReactMarkdown\n remarkPlugins={[remarkGfm, remarkBreaks, remarkMath]}\n rehypePlugins={[rehypeHighlight, rehypeAutoLinkHeadings]}\n components={defaultComponents}\n >\n {content}\n </ReactMarkdown>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.es50.js","sources":["../src/utils/tailwindUtil.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport type { ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}"],"names":[],"mappings":";;AAIO,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;"}
@@ -1,9 +1,212 @@
1
- import clsx from "clsx";
2
- import { twMerge } from "tailwind-merge";
3
- function cn(...inputs) {
4
- return twMerge(clsx(inputs));
1
+ import { jsx, Fragment } from "react/jsx-runtime";
2
+ import { cn } from "./index.es50.js";
3
+ import ReactMarkdown from "react-markdown";
4
+ import rehypeAutoLinkHeadings from "rehype-autolink-headings";
5
+ import rehypeHighlight from "rehype-highlight";
6
+ import remarkBreaks from "remark-breaks";
7
+ import remarkGfm from "remark-gfm";
8
+ import remarkMath from "remark-math";
9
+ import { SyntaxHighlighter } from "./index.es63.js";
10
+ const defaultComponents = {
11
+ h1: ({ className, ...props }) => /* @__PURE__ */ jsx(
12
+ "h1",
13
+ {
14
+ className: cn(
15
+ "mb-8 scroll-m-20 text-4xl font-extrabold tracking-tight last:mb-0",
16
+ className
17
+ ),
18
+ ...props
19
+ }
20
+ ),
21
+ h2: ({ className, ...props }) => /* @__PURE__ */ jsx(
22
+ "h2",
23
+ {
24
+ className: cn(
25
+ "mt-8 mb-4 scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0 last:mb-0",
26
+ className
27
+ ),
28
+ ...props
29
+ }
30
+ ),
31
+ h3: ({ className, ...props }) => /* @__PURE__ */ jsx(
32
+ "h3",
33
+ {
34
+ className: cn(
35
+ "mt-6 mb-4 scroll-m-20 text-2xl font-semibold tracking-tight first:mt-0 last:mb-0",
36
+ className
37
+ ),
38
+ ...props
39
+ }
40
+ ),
41
+ h4: ({ className, ...props }) => /* @__PURE__ */ jsx(
42
+ "h4",
43
+ {
44
+ className: cn(
45
+ "mt-6 mb-4 scroll-m-20 text-xl font-semibold tracking-tight first:mt-0 last:mb-0",
46
+ className
47
+ ),
48
+ ...props
49
+ }
50
+ ),
51
+ h5: ({ className, ...props }) => /* @__PURE__ */ jsx(
52
+ "h5",
53
+ {
54
+ className: cn(
55
+ "my-4 text-lg font-semibold first:mt-0 last:mb-0",
56
+ className
57
+ ),
58
+ ...props
59
+ }
60
+ ),
61
+ h6: ({ className, ...props }) => /* @__PURE__ */ jsx(
62
+ "h6",
63
+ {
64
+ className: cn("my-4 font-semibold first:mt-0 last:mb-0", className),
65
+ ...props
66
+ }
67
+ ),
68
+ p: ({ className, ...props }) => /* @__PURE__ */ jsx(
69
+ "p",
70
+ {
71
+ className: cn("mt-5 mb-5 leading-7 first:mt-0 last:mb-0", className),
72
+ ...props
73
+ }
74
+ ),
75
+ a: ({ className, ...props }) => /* @__PURE__ */ jsx(
76
+ "a",
77
+ {
78
+ className: cn(
79
+ "text-primary font-medium underline underline-offset-4",
80
+ className
81
+ ),
82
+ ...props
83
+ }
84
+ ),
85
+ blockquote: ({ className, ...props }) => /* @__PURE__ */ jsx(
86
+ "blockquote",
87
+ {
88
+ className: cn("border-l-2 pl-6 italic", className),
89
+ ...props
90
+ }
91
+ ),
92
+ ul: ({ className, ...props }) => /* @__PURE__ */ jsx(
93
+ "ul",
94
+ {
95
+ className: cn("my-5 ml-6 list-disc [&>li]:mt-2", className),
96
+ ...props
97
+ }
98
+ ),
99
+ ol: ({ className, ...props }) => /* @__PURE__ */ jsx(
100
+ "ol",
101
+ {
102
+ className: cn("my-5 ml-6 list-decimal [&>li]:mt-2", className),
103
+ ...props
104
+ }
105
+ ),
106
+ hr: ({ className, ...props }) => /* @__PURE__ */ jsx(
107
+ "hr",
108
+ {
109
+ className: cn("my-5 border-b", className),
110
+ ...props
111
+ }
112
+ ),
113
+ table: ({ className, ...props }) => /* @__PURE__ */ jsx(
114
+ "table",
115
+ {
116
+ className: cn(
117
+ "my-5 w-full border-separate border-spacing-0 overflow-y-auto border-zinc-800 rounded-lg",
118
+ className
119
+ ),
120
+ ...props
121
+ }
122
+ ),
123
+ th: ({ className, ...props }) => /* @__PURE__ */ jsx(
124
+ "th",
125
+ {
126
+ className: cn(
127
+ "bg-muted px-4 py-2 text-left font-bold [&[align=center]]:text-center [&[align=right]]:text-right",
128
+ className
129
+ ),
130
+ ...props
131
+ }
132
+ ),
133
+ td: ({ className, ...props }) => /* @__PURE__ */ jsx(
134
+ "td",
135
+ {
136
+ className: cn(
137
+ "border px-4 py-2 text-left [&[align=center]]:text-center [&[align=right]]:text-right",
138
+ className
139
+ ),
140
+ ...props
141
+ }
142
+ ),
143
+ tr: ({ className, ...props }) => /* @__PURE__ */ jsx(
144
+ "tr",
145
+ {
146
+ className: cn(
147
+ "m-0 border p-0 first:border-t [&:first-child>td:first-child]:rounded-tl-lg [&:first-child>td:last-child]:rounded-tr-lg [&:last-child>td:first-child]:rounded-bl-lg [&:last-child>td:last-child]:rounded-br-lg",
148
+ className
149
+ ),
150
+ ...props
151
+ }
152
+ ),
153
+ sup: ({ className, ...props }) => /* @__PURE__ */ jsx(
154
+ "sup",
155
+ {
156
+ className: cn("[&>a]:text-xs [&>a]:no-underline", className),
157
+ ...props
158
+ }
159
+ ),
160
+ pre: ({ className, ...props }) => /* @__PURE__ */ jsx(
161
+ "pre",
162
+ {
163
+ className: cn(
164
+ "max-w-4xl overflow-x-auto rounded-lg bg-black text-white",
165
+ className
166
+ ),
167
+ ...props
168
+ }
169
+ ),
170
+ code: ({
171
+ className,
172
+ children,
173
+ ...props
174
+ }) => {
175
+ const match = /language-(\w+)/.exec(className || "");
176
+ if (match) {
177
+ const language = match[1];
178
+ const code = String(children).replace(/\n$/, "");
179
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
180
+ SyntaxHighlighter,
181
+ {
182
+ language,
183
+ className,
184
+ children: code
185
+ }
186
+ ) });
187
+ }
188
+ return /* @__PURE__ */ jsx(
189
+ "code",
190
+ {
191
+ className: cn("rounded font-semibold", className),
192
+ ...props,
193
+ children
194
+ }
195
+ );
196
+ }
197
+ };
198
+ function AgentMarkdown({ content }) {
199
+ return /* @__PURE__ */ jsx(
200
+ ReactMarkdown,
201
+ {
202
+ remarkPlugins: [remarkGfm, remarkBreaks, remarkMath],
203
+ rehypePlugins: [rehypeHighlight, rehypeAutoLinkHeadings],
204
+ components: defaultComponents,
205
+ children: content
206
+ }
207
+ );
5
208
  }
6
209
  export {
7
- cn
210
+ AgentMarkdown
8
211
  };
9
212
  //# sourceMappingURL=index.es51.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es51.js","sources":["../src/utils/tailwindUtil.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport type { ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}"],"names":[],"mappings":";;AAIO,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;"}
1
+ {"version":3,"file":"index.es51.js","sources":["../src/components/ui/AgentMarkdown.tsx"],"sourcesContent":["import { cn } from \"@/utils/tailwindUtil\";\n// import { CheckIcon, CopyIcon } from \"lucide-react\";\n// import { type FC, useState } from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport rehypeAutoLinkHeadings from \"rehype-autolink-headings\";\nimport rehypeHighlight from \"rehype-highlight\";\nimport remarkBreaks from \"remark-breaks\";\nimport remarkGfm from \"remark-gfm\";\nimport remarkMath from \"remark-math\";\nimport { SyntaxHighlighter } from \"./syntax-highlighter\";\n// import { TooltipIconButton } from \"./tooltip-icon-button\";\n// import \"highlight.js/styles/github.css\";\n\n// interface CodeHeaderProps {\n// language?: string;\n// code: string;\n// }\n\n// const useCopyToClipboard = ({\n// copiedDuration = 3000,\n// }: {\n// copiedDuration?: number;\n// } = {}) => {\n// const [isCopied, setIsCopied] = useState<boolean>(false);\n\n// const copyToClipboard = (value: string) => {\n// if (!value) return;\n\n// navigator.clipboard.writeText(value).then(() => {\n// setIsCopied(true);\n// setTimeout(() => setIsCopied(false), copiedDuration);\n// });\n// };\n\n// return { isCopied, copyToClipboard };\n// };\n\n// const CodeHeader: FC<CodeHeaderProps> = ({ language, code }) => {\n// const { isCopied, copyToClipboard } = useCopyToClipboard();\n// const onCopy = () => {\n// if (!code || isCopied) return;\n// copyToClipboard(code);\n// };\n\n// return (\n// <div className=\"flex items-center justify-between gap-4 rounded-t-lg bg-zinc-900 px-4 py-2 text-sm font-semibold text-white\">\n// <span className=\"lowercase [&>span]:text-xs\">{language}</span>\n// <TooltipIconButton\n// tooltip=\"Copy\"\n// onClick={onCopy}\n// >\n// {!isCopied && <CopyIcon />}\n// {isCopied && <CheckIcon />}\n// </TooltipIconButton>\n// </div>\n// );\n// };\n\nconst defaultComponents: any = {\n h1: ({ className, ...props }: { className?: string }) => (\n <h1\n className={cn(\n \"mb-8 scroll-m-20 text-4xl font-extrabold tracking-tight last:mb-0\",\n className,\n )}\n {...props}\n />\n ),\n h2: ({ className, ...props }: { className?: string }) => (\n <h2\n className={cn(\n \"mt-8 mb-4 scroll-m-20 text-3xl font-semibold tracking-tight first:mt-0 last:mb-0\",\n className,\n )}\n {...props}\n />\n ),\n h3: ({ className, ...props }: { className?: string }) => (\n <h3\n className={cn(\n \"mt-6 mb-4 scroll-m-20 text-2xl font-semibold tracking-tight first:mt-0 last:mb-0\",\n className,\n )}\n {...props}\n />\n ),\n h4: ({ className, ...props }: { className?: string }) => (\n <h4\n className={cn(\n \"mt-6 mb-4 scroll-m-20 text-xl font-semibold tracking-tight first:mt-0 last:mb-0\",\n className,\n )}\n {...props}\n />\n ),\n h5: ({ className, ...props }: { className?: string }) => (\n <h5\n className={cn(\n \"my-4 text-lg font-semibold first:mt-0 last:mb-0\",\n className,\n )}\n {...props}\n />\n ),\n h6: ({ className, ...props }: { className?: string }) => (\n <h6\n className={cn(\"my-4 font-semibold first:mt-0 last:mb-0\", className)}\n {...props}\n />\n ),\n p: ({ className, ...props }: { className?: string }) => (\n <p\n className={cn(\"mt-5 mb-5 leading-7 first:mt-0 last:mb-0\", className)}\n {...props}\n />\n ),\n a: ({ className, ...props }: { className?: string }) => (\n <a\n className={cn(\n \"text-primary font-medium underline underline-offset-4\",\n className,\n )}\n {...props}\n />\n ),\n blockquote: ({ className, ...props }: { className?: string }) => (\n <blockquote\n className={cn(\"border-l-2 pl-6 italic\", className)}\n {...props}\n />\n ),\n ul: ({ className, ...props }: { className?: string }) => (\n <ul\n className={cn(\"my-5 ml-6 list-disc [&>li]:mt-2\", className)}\n {...props}\n />\n ),\n ol: ({ className, ...props }: { className?: string }) => (\n <ol\n className={cn(\"my-5 ml-6 list-decimal [&>li]:mt-2\", className)}\n {...props}\n />\n ),\n hr: ({ className, ...props }: { className?: string }) => (\n <hr\n className={cn(\"my-5 border-b\", className)}\n {...props}\n />\n ),\n table: ({ className, ...props }: { className?: string }) => (\n <table\n className={cn(\n \"my-5 w-full border-separate border-spacing-0 overflow-y-auto border-zinc-800 rounded-lg\",\n className,\n )}\n {...props}\n />\n ),\n th: ({ className, ...props }: { className?: string }) => (\n <th\n className={cn(\n \"bg-muted px-4 py-2 text-left font-bold [&[align=center]]:text-center [&[align=right]]:text-right\",\n className,\n )}\n {...props}\n />\n ),\n td: ({ className, ...props }: { className?: string }) => (\n <td\n className={cn(\n \"border px-4 py-2 text-left [&[align=center]]:text-center [&[align=right]]:text-right\",\n className,\n )}\n {...props}\n />\n ),\n tr: ({ className, ...props }: { className?: string }) => (\n <tr\n className={cn(\n \"m-0 border p-0 first:border-t [&:first-child>td:first-child]:rounded-tl-lg [&:first-child>td:last-child]:rounded-tr-lg [&:last-child>td:first-child]:rounded-bl-lg [&:last-child>td:last-child]:rounded-br-lg\",\n className,\n )}\n {...props}\n />\n ),\n sup: ({ className, ...props }: { className?: string }) => (\n <sup\n className={cn(\"[&>a]:text-xs [&>a]:no-underline\", className)}\n {...props}\n />\n ),\n pre: ({ className, ...props }: { className?: string }) => (\n <pre\n className={cn(\n \"max-w-4xl overflow-x-auto rounded-lg bg-black text-white\",\n className,\n )}\n {...props}\n />\n ),\n code: ({\n className,\n children,\n ...props\n }: {\n className?: string;\n children: React.ReactNode;\n }) => {\n const match = /language-(\\w+)/.exec(className || \"\");\n\n if (match) {\n const language = match[1];\n const code = String(children).replace(/\\n$/, \"\");\n\n return (\n <>\n {/* <CodeHeader\n language={language}\n code={code}\n /> */}\n <SyntaxHighlighter\n language={language}\n className={className}\n >\n {code}\n </SyntaxHighlighter>\n </>\n );\n }\n\n return (\n <code\n className={cn(\"rounded font-semibold\", className)}\n {...props}\n >\n {children}\n </code>\n );\n },\n};\n\nexport function AgentMarkdown({ content }: { content: string }) {\n return (\n <ReactMarkdown\n remarkPlugins={[remarkGfm, remarkBreaks, remarkMath]}\n rehypePlugins={[rehypeHighlight, rehypeAutoLinkHeadings]}\n components={defaultComponents}\n >\n {content}\n </ReactMarkdown>\n );\n}\n"],"names":[],"mappings":"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"}