@copilotkitnext/react 0.0.22-alpha.1 → 0.0.22-alpha.3

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 (421) hide show
  1. package/dist/chunk-32YJ5VJ4.mjs +157 -0
  2. package/dist/chunk-32YJ5VJ4.mjs.map +1 -0
  3. package/dist/chunk-36HFWACS.mjs +1 -0
  4. package/dist/chunk-36HFWACS.mjs.map +1 -0
  5. package/dist/chunk-3TA5QBSZ.mjs +122 -0
  6. package/dist/chunk-3TA5QBSZ.mjs.map +1 -0
  7. package/dist/chunk-46BZRXWT.mjs +16 -0
  8. package/dist/chunk-46BZRXWT.mjs.map +1 -0
  9. package/dist/chunk-4UDBR75C.mjs +106 -0
  10. package/dist/chunk-4UDBR75C.mjs.map +1 -0
  11. package/dist/chunk-4XJK5IVQ.mjs +83 -0
  12. package/dist/chunk-4XJK5IVQ.mjs.map +1 -0
  13. package/dist/chunk-5AAT4Z3C.mjs +107 -0
  14. package/dist/chunk-5AAT4Z3C.mjs.map +1 -0
  15. package/dist/chunk-5JNWVLQI.mjs +72 -0
  16. package/dist/chunk-5JNWVLQI.mjs.map +1 -0
  17. package/dist/chunk-5SC3CO5Q.mjs +69 -0
  18. package/dist/chunk-5SC3CO5Q.mjs.map +1 -0
  19. package/dist/chunk-6VUKDHOD.mjs +1 -0
  20. package/dist/chunk-6VUKDHOD.mjs.map +1 -0
  21. package/dist/chunk-AEFM73CL.mjs +32 -0
  22. package/dist/chunk-AEFM73CL.mjs.map +1 -0
  23. package/dist/chunk-AI3Z3CHN.mjs +97 -0
  24. package/dist/chunk-AI3Z3CHN.mjs.map +1 -0
  25. package/dist/chunk-AXFRCGH6.mjs +107 -0
  26. package/dist/chunk-AXFRCGH6.mjs.map +1 -0
  27. package/dist/chunk-BT6C5OPU.mjs +278 -0
  28. package/dist/chunk-BT6C5OPU.mjs.map +1 -0
  29. package/dist/chunk-CGLGXQAU.mjs +78 -0
  30. package/dist/chunk-CGLGXQAU.mjs.map +1 -0
  31. package/dist/chunk-CSHBUHRW.mjs +69 -0
  32. package/dist/chunk-CSHBUHRW.mjs.map +1 -0
  33. package/dist/chunk-CZ3GI3IF.mjs +283 -0
  34. package/dist/chunk-CZ3GI3IF.mjs.map +1 -0
  35. package/dist/chunk-DVUQO72Z.mjs +1 -0
  36. package/dist/chunk-DVUQO72Z.mjs.map +1 -0
  37. package/dist/chunk-E4HD4M7R.mjs +76 -0
  38. package/dist/chunk-E4HD4M7R.mjs.map +1 -0
  39. package/dist/chunk-E56GYBP3.mjs +101 -0
  40. package/dist/chunk-E56GYBP3.mjs.map +1 -0
  41. package/dist/chunk-EJ5ZEAAN.mjs +57 -0
  42. package/dist/chunk-EJ5ZEAAN.mjs.map +1 -0
  43. package/dist/chunk-ETWJDCGE.mjs +1 -0
  44. package/dist/chunk-ETWJDCGE.mjs.map +1 -0
  45. package/dist/chunk-F43IPGPA.mjs +311 -0
  46. package/dist/chunk-F43IPGPA.mjs.map +1 -0
  47. package/dist/chunk-FIBK3DYE.mjs +26 -0
  48. package/dist/chunk-FIBK3DYE.mjs.map +1 -0
  49. package/dist/chunk-FVURPXQK.mjs +45 -0
  50. package/dist/chunk-FVURPXQK.mjs.map +1 -0
  51. package/dist/chunk-FZR2XQKR.mjs +44 -0
  52. package/dist/chunk-FZR2XQKR.mjs.map +1 -0
  53. package/dist/chunk-IA4CLXDM.mjs +76 -0
  54. package/dist/chunk-IA4CLXDM.mjs.map +1 -0
  55. package/dist/chunk-IH5VFJ4L.mjs +60 -0
  56. package/dist/chunk-IH5VFJ4L.mjs.map +1 -0
  57. package/dist/chunk-IICUCI5S.mjs +43 -0
  58. package/dist/chunk-IICUCI5S.mjs.map +1 -0
  59. package/dist/chunk-JLVGSNAO.mjs +311 -0
  60. package/dist/chunk-JLVGSNAO.mjs.map +1 -0
  61. package/dist/chunk-JWOIINVV.mjs +237 -0
  62. package/dist/chunk-JWOIINVV.mjs.map +1 -0
  63. package/dist/chunk-KCVDFZJX.mjs +873 -0
  64. package/dist/chunk-KCVDFZJX.mjs.map +1 -0
  65. package/dist/chunk-KPRUSQ3K.mjs +1 -0
  66. package/dist/chunk-KPRUSQ3K.mjs.map +1 -0
  67. package/dist/chunk-MWC5OV7Z.mjs +1 -0
  68. package/dist/chunk-MWC5OV7Z.mjs.map +1 -0
  69. package/dist/chunk-N5EP5OD5.mjs +1 -0
  70. package/dist/chunk-N5EP5OD5.mjs.map +1 -0
  71. package/dist/chunk-NASFZS3N.mjs +43 -0
  72. package/dist/chunk-NASFZS3N.mjs.map +1 -0
  73. package/dist/chunk-NB2GZAKG.mjs +131 -0
  74. package/dist/chunk-NB2GZAKG.mjs.map +1 -0
  75. package/dist/chunk-NB4DFAZH.mjs +185 -0
  76. package/dist/chunk-NB4DFAZH.mjs.map +1 -0
  77. package/dist/chunk-NNAYEAP2.mjs +49 -0
  78. package/dist/chunk-NNAYEAP2.mjs.map +1 -0
  79. package/dist/chunk-NNPKBGD6.mjs +37 -0
  80. package/dist/chunk-NNPKBGD6.mjs.map +1 -0
  81. package/dist/chunk-OMPVTGXH.mjs +122 -0
  82. package/dist/chunk-OMPVTGXH.mjs.map +1 -0
  83. package/dist/chunk-QFBM3ZT2.mjs +45 -0
  84. package/dist/chunk-QFBM3ZT2.mjs.map +1 -0
  85. package/dist/chunk-QJ6DZ645.mjs +78 -0
  86. package/dist/chunk-QJ6DZ645.mjs.map +1 -0
  87. package/dist/chunk-R5OLAA3L.mjs +135 -0
  88. package/dist/chunk-R5OLAA3L.mjs.map +1 -0
  89. package/dist/chunk-RF2CGPHQ.mjs +215 -0
  90. package/dist/chunk-RF2CGPHQ.mjs.map +1 -0
  91. package/dist/chunk-RGD2L3Z4.mjs +96 -0
  92. package/dist/chunk-RGD2L3Z4.mjs.map +1 -0
  93. package/dist/chunk-RK5P2LG6.mjs +57 -0
  94. package/dist/chunk-RK5P2LG6.mjs.map +1 -0
  95. package/dist/chunk-RRXDJCXI.mjs +60 -0
  96. package/dist/chunk-RRXDJCXI.mjs.map +1 -0
  97. package/dist/chunk-SPDE34WC.mjs +283 -0
  98. package/dist/chunk-SPDE34WC.mjs.map +1 -0
  99. package/dist/chunk-TAUOEJH2.mjs +120 -0
  100. package/dist/chunk-TAUOEJH2.mjs.map +1 -0
  101. package/dist/chunk-TKFOXPXF.mjs +157 -0
  102. package/dist/chunk-TKFOXPXF.mjs.map +1 -0
  103. package/dist/chunk-UOX5D73C.mjs +22 -0
  104. package/dist/chunk-UOX5D73C.mjs.map +1 -0
  105. package/dist/chunk-US4KNAAV.mjs +1 -0
  106. package/dist/chunk-US4KNAAV.mjs.map +1 -0
  107. package/dist/chunk-UZB3CTOY.mjs +873 -0
  108. package/dist/chunk-UZB3CTOY.mjs.map +1 -0
  109. package/dist/chunk-VBI6JXPC.mjs +1 -0
  110. package/dist/chunk-VBI6JXPC.mjs.map +1 -0
  111. package/dist/chunk-VE3SBLU7.mjs +215 -0
  112. package/dist/chunk-VE3SBLU7.mjs.map +1 -0
  113. package/dist/chunk-VUHFLJWI.mjs +185 -0
  114. package/dist/chunk-VUHFLJWI.mjs.map +1 -0
  115. package/dist/chunk-VVAXSF3M.mjs +61 -0
  116. package/dist/chunk-VVAXSF3M.mjs.map +1 -0
  117. package/dist/chunk-W5DUKRCI.mjs +97 -0
  118. package/dist/chunk-W5DUKRCI.mjs.map +1 -0
  119. package/dist/chunk-WNRDFAZ5.mjs +22 -0
  120. package/dist/chunk-WNRDFAZ5.mjs.map +1 -0
  121. package/dist/chunk-XO4IRKSC.mjs +11 -0
  122. package/dist/chunk-XO4IRKSC.mjs.map +1 -0
  123. package/dist/chunk-XU5CEPYQ.mjs +75 -0
  124. package/dist/chunk-XU5CEPYQ.mjs.map +1 -0
  125. package/dist/chunk-YPH4BHOY.mjs +39 -0
  126. package/dist/chunk-YPH4BHOY.mjs.map +1 -0
  127. package/dist/chunk-YVPPF62K.mjs +32 -0
  128. package/dist/chunk-YVPPF62K.mjs.map +1 -0
  129. package/dist/chunk-YZUPVMHC.mjs +1 -0
  130. package/dist/chunk-YZUPVMHC.mjs.map +1 -0
  131. package/dist/chunk-Z3OIGQCZ.mjs +75 -0
  132. package/dist/chunk-Z3OIGQCZ.mjs.map +1 -0
  133. package/dist/chunk-ZIDT52TM.mjs +131 -0
  134. package/dist/chunk-ZIDT52TM.mjs.map +1 -0
  135. package/dist/components/CopilotKitInspector.d.mts +13 -0
  136. package/dist/components/CopilotKitInspector.d.ts +13 -0
  137. package/dist/components/CopilotKitInspector.js +69 -0
  138. package/dist/components/CopilotKitInspector.js.map +1 -0
  139. package/dist/components/CopilotKitInspector.mjs +7 -0
  140. package/dist/components/CopilotKitInspector.mjs.map +1 -0
  141. package/dist/components/WildcardToolCallRender.d.mts +7 -0
  142. package/dist/components/WildcardToolCallRender.d.ts +7 -0
  143. package/dist/components/WildcardToolCallRender.js +106 -0
  144. package/dist/components/WildcardToolCallRender.js.map +1 -0
  145. package/dist/components/WildcardToolCallRender.mjs +8 -0
  146. package/dist/components/WildcardToolCallRender.mjs.map +1 -0
  147. package/dist/components/chat/CopilotChat.d.mts +30 -0
  148. package/dist/components/chat/CopilotChat.d.ts +30 -0
  149. package/dist/components/chat/CopilotChat.js +2934 -0
  150. package/dist/components/chat/CopilotChat.js.map +1 -0
  151. package/dist/components/chat/CopilotChat.mjs +37 -0
  152. package/dist/components/chat/CopilotChat.mjs.map +1 -0
  153. package/dist/components/chat/CopilotChatAssistantMessage.d.mts +45 -0
  154. package/dist/components/chat/CopilotChatAssistantMessage.d.ts +45 -0
  155. package/dist/components/chat/CopilotChatAssistantMessage.js +735 -0
  156. package/dist/components/chat/CopilotChatAssistantMessage.js.map +1 -0
  157. package/dist/components/chat/CopilotChatAssistantMessage.mjs +29 -0
  158. package/dist/components/chat/CopilotChatAssistantMessage.mjs.map +1 -0
  159. package/dist/components/chat/CopilotChatAudioRecorder.d.mts +11 -0
  160. package/dist/components/chat/CopilotChatAudioRecorder.d.ts +11 -0
  161. package/dist/components/chat/CopilotChatAudioRecorder.js +131 -0
  162. package/dist/components/chat/CopilotChatAudioRecorder.js.map +1 -0
  163. package/dist/components/chat/CopilotChatAudioRecorder.mjs +9 -0
  164. package/dist/components/chat/CopilotChatAudioRecorder.mjs.map +1 -0
  165. package/dist/components/chat/CopilotChatInput.d.mts +67 -0
  166. package/dist/components/chat/CopilotChatInput.d.ts +67 -0
  167. package/dist/components/chat/CopilotChatInput.js +1305 -0
  168. package/dist/components/chat/CopilotChatInput.js.map +1 -0
  169. package/dist/components/chat/CopilotChatInput.mjs +16 -0
  170. package/dist/components/chat/CopilotChatInput.mjs.map +1 -0
  171. package/dist/components/chat/CopilotChatMessageView.d.mts +29 -0
  172. package/dist/components/chat/CopilotChatMessageView.d.ts +29 -0
  173. package/dist/components/chat/CopilotChatMessageView.js +1164 -0
  174. package/dist/components/chat/CopilotChatMessageView.js.map +1 -0
  175. package/dist/components/chat/CopilotChatMessageView.mjs +31 -0
  176. package/dist/components/chat/CopilotChatMessageView.mjs.map +1 -0
  177. package/dist/components/chat/CopilotChatSuggestionPill.d.mts +11 -0
  178. package/dist/components/chat/CopilotChatSuggestionPill.d.ts +11 -0
  179. package/dist/components/chat/CopilotChatSuggestionPill.js +76 -0
  180. package/dist/components/chat/CopilotChatSuggestionPill.js.map +1 -0
  181. package/dist/components/chat/CopilotChatSuggestionPill.mjs +10 -0
  182. package/dist/components/chat/CopilotChatSuggestionPill.mjs.map +1 -0
  183. package/dist/components/chat/CopilotChatSuggestionView.d.mts +33 -0
  184. package/dist/components/chat/CopilotChatSuggestionView.d.ts +33 -0
  185. package/dist/components/chat/CopilotChatSuggestionView.js +179 -0
  186. package/dist/components/chat/CopilotChatSuggestionView.js.map +1 -0
  187. package/dist/components/chat/CopilotChatSuggestionView.mjs +12 -0
  188. package/dist/components/chat/CopilotChatSuggestionView.mjs.map +1 -0
  189. package/dist/components/chat/CopilotChatToggleButton.d.mts +14 -0
  190. package/dist/components/chat/CopilotChatToggleButton.d.ts +14 -0
  191. package/dist/components/chat/CopilotChatToggleButton.js +222 -0
  192. package/dist/components/chat/CopilotChatToggleButton.js.map +1 -0
  193. package/dist/components/chat/CopilotChatToggleButton.mjs +16 -0
  194. package/dist/components/chat/CopilotChatToggleButton.mjs.map +1 -0
  195. package/dist/components/chat/CopilotChatToolCallsView.d.mts +10 -0
  196. package/dist/components/chat/CopilotChatToolCallsView.d.ts +10 -0
  197. package/dist/components/chat/CopilotChatToolCallsView.js +264 -0
  198. package/dist/components/chat/CopilotChatToolCallsView.js.map +1 -0
  199. package/dist/components/chat/CopilotChatToolCallsView.mjs +24 -0
  200. package/dist/components/chat/CopilotChatToolCallsView.mjs.map +1 -0
  201. package/dist/components/chat/CopilotChatUserMessage.d.mts +52 -0
  202. package/dist/components/chat/CopilotChatUserMessage.d.ts +52 -0
  203. package/dist/components/chat/CopilotChatUserMessage.js +523 -0
  204. package/dist/components/chat/CopilotChatUserMessage.js.map +1 -0
  205. package/dist/components/chat/CopilotChatUserMessage.mjs +14 -0
  206. package/dist/components/chat/CopilotChatUserMessage.mjs.map +1 -0
  207. package/dist/components/chat/CopilotChatView.d.mts +54 -0
  208. package/dist/components/chat/CopilotChatView.d.ts +54 -0
  209. package/dist/components/chat/CopilotChatView.js +2640 -0
  210. package/dist/components/chat/CopilotChatView.js.map +1 -0
  211. package/dist/components/chat/CopilotChatView.mjs +38 -0
  212. package/dist/components/chat/CopilotChatView.mjs.map +1 -0
  213. package/dist/components/chat/CopilotModalHeader.d.mts +22 -0
  214. package/dist/components/chat/CopilotModalHeader.d.ts +22 -0
  215. package/dist/components/chat/CopilotModalHeader.js +186 -0
  216. package/dist/components/chat/CopilotModalHeader.js.map +1 -0
  217. package/dist/components/chat/CopilotModalHeader.mjs +12 -0
  218. package/dist/components/chat/CopilotModalHeader.mjs.map +1 -0
  219. package/dist/components/chat/CopilotPopup.d.mts +33 -0
  220. package/dist/components/chat/CopilotPopup.d.ts +33 -0
  221. package/dist/components/chat/CopilotPopup.js +3343 -0
  222. package/dist/components/chat/CopilotPopup.js.map +1 -0
  223. package/dist/components/chat/CopilotPopup.mjs +43 -0
  224. package/dist/components/chat/CopilotPopup.mjs.map +1 -0
  225. package/dist/components/chat/CopilotPopupView.d.mts +30 -0
  226. package/dist/components/chat/CopilotPopupView.d.ts +30 -0
  227. package/dist/components/chat/CopilotPopupView.js +3003 -0
  228. package/dist/components/chat/CopilotPopupView.js.map +1 -0
  229. package/dist/components/chat/CopilotPopupView.mjs +41 -0
  230. package/dist/components/chat/CopilotPopupView.mjs.map +1 -0
  231. package/dist/components/chat/CopilotSidebar.d.mts +31 -0
  232. package/dist/components/chat/CopilotSidebar.d.ts +31 -0
  233. package/dist/components/chat/CopilotSidebar.js +3266 -0
  234. package/dist/components/chat/CopilotSidebar.js.map +1 -0
  235. package/dist/components/chat/CopilotSidebar.mjs +43 -0
  236. package/dist/components/chat/CopilotSidebar.mjs.map +1 -0
  237. package/dist/components/chat/CopilotSidebarView.d.mts +28 -0
  238. package/dist/components/chat/CopilotSidebarView.d.ts +28 -0
  239. package/dist/components/chat/CopilotSidebarView.js +2941 -0
  240. package/dist/components/chat/CopilotSidebarView.js.map +1 -0
  241. package/dist/components/chat/CopilotSidebarView.mjs +41 -0
  242. package/dist/components/chat/CopilotSidebarView.mjs.map +1 -0
  243. package/dist/components/chat/index.d.mts +23 -0
  244. package/dist/components/chat/index.d.ts +23 -0
  245. package/dist/components/chat/index.js +3503 -0
  246. package/dist/components/chat/index.js.map +1 -0
  247. package/dist/components/chat/index.mjs +95 -0
  248. package/dist/components/chat/index.mjs.map +1 -0
  249. package/dist/components/index.d.mts +29 -0
  250. package/dist/components/index.d.ts +29 -0
  251. package/dist/components/index.js +3583 -0
  252. package/dist/components/index.js.map +1 -0
  253. package/dist/components/index.mjs +104 -0
  254. package/dist/components/index.mjs.map +1 -0
  255. package/dist/components/ui/button.d.mts +14 -0
  256. package/dist/components/ui/button.d.ts +14 -0
  257. package/dist/components/ui/button.js +150 -0
  258. package/dist/components/ui/button.js.map +1 -0
  259. package/dist/components/ui/button.mjs +10 -0
  260. package/dist/components/ui/button.mjs.map +1 -0
  261. package/dist/components/ui/dropdown-menu.d.mts +28 -0
  262. package/dist/components/ui/dropdown-menu.d.ts +28 -0
  263. package/dist/components/ui/dropdown-menu.js +291 -0
  264. package/dist/components/ui/dropdown-menu.js.map +1 -0
  265. package/dist/components/ui/dropdown-menu.mjs +37 -0
  266. package/dist/components/ui/dropdown-menu.mjs.map +1 -0
  267. package/dist/components/ui/tooltip.d.mts +10 -0
  268. package/dist/components/ui/tooltip.d.ts +10 -0
  269. package/dist/components/ui/tooltip.js +103 -0
  270. package/dist/components/ui/tooltip.js.map +1 -0
  271. package/dist/components/ui/tooltip.mjs +14 -0
  272. package/dist/components/ui/tooltip.mjs.map +1 -0
  273. package/dist/hooks/index.d.mts +19 -0
  274. package/dist/hooks/index.d.ts +19 -0
  275. package/dist/hooks/index.js +691 -0
  276. package/dist/hooks/index.js.map +1 -0
  277. package/dist/hooks/index.mjs +45 -0
  278. package/dist/hooks/index.mjs.map +1 -0
  279. package/dist/hooks/use-agent-context.d.mts +5 -0
  280. package/dist/hooks/use-agent-context.d.ts +5 -0
  281. package/dist/hooks/use-agent-context.js +116 -0
  282. package/dist/hooks/use-agent-context.js.map +1 -0
  283. package/dist/hooks/use-agent-context.mjs +10 -0
  284. package/dist/hooks/use-agent-context.mjs.map +1 -0
  285. package/dist/hooks/use-agent.d.mts +16 -0
  286. package/dist/hooks/use-agent.d.ts +16 -0
  287. package/dist/hooks/use-agent.js +171 -0
  288. package/dist/hooks/use-agent.js.map +1 -0
  289. package/dist/hooks/use-agent.mjs +12 -0
  290. package/dist/hooks/use-agent.mjs.map +1 -0
  291. package/dist/hooks/use-configure-suggestions.d.mts +13 -0
  292. package/dist/hooks/use-configure-suggestions.d.ts +13 -0
  293. package/dist/hooks/use-configure-suggestions.js +232 -0
  294. package/dist/hooks/use-configure-suggestions.js.map +1 -0
  295. package/dist/hooks/use-configure-suggestions.mjs +11 -0
  296. package/dist/hooks/use-configure-suggestions.mjs.map +1 -0
  297. package/dist/hooks/use-frontend-tool.d.mts +8 -0
  298. package/dist/hooks/use-frontend-tool.d.ts +8 -0
  299. package/dist/hooks/use-frontend-tool.js +137 -0
  300. package/dist/hooks/use-frontend-tool.js.map +1 -0
  301. package/dist/hooks/use-frontend-tool.mjs +10 -0
  302. package/dist/hooks/use-frontend-tool.mjs.map +1 -0
  303. package/dist/hooks/use-human-in-the-loop.d.mts +7 -0
  304. package/dist/hooks/use-human-in-the-loop.d.ts +7 -0
  305. package/dist/hooks/use-human-in-the-loop.js +206 -0
  306. package/dist/hooks/use-human-in-the-loop.js.map +1 -0
  307. package/dist/hooks/use-human-in-the-loop.mjs +11 -0
  308. package/dist/hooks/use-human-in-the-loop.mjs.map +1 -0
  309. package/dist/hooks/use-keyboard-height.d.mts +15 -0
  310. package/dist/hooks/use-keyboard-height.d.ts +15 -0
  311. package/dist/hooks/use-keyboard-height.js +68 -0
  312. package/dist/hooks/use-keyboard-height.js.map +1 -0
  313. package/dist/hooks/use-keyboard-height.mjs +7 -0
  314. package/dist/hooks/use-keyboard-height.mjs.map +1 -0
  315. package/dist/hooks/use-render-activity-message.d.mts +5 -0
  316. package/dist/hooks/use-render-activity-message.d.ts +5 -0
  317. package/dist/hooks/use-render-activity-message.js +158 -0
  318. package/dist/hooks/use-render-activity-message.js.map +1 -0
  319. package/dist/hooks/use-render-activity-message.mjs +12 -0
  320. package/dist/hooks/use-render-activity-message.mjs.map +1 -0
  321. package/dist/hooks/use-render-custom-messages.d.mts +11 -0
  322. package/dist/hooks/use-render-custom-messages.d.ts +11 -0
  323. package/dist/hooks/use-render-custom-messages.js +170 -0
  324. package/dist/hooks/use-render-custom-messages.js.map +1 -0
  325. package/dist/hooks/use-render-custom-messages.mjs +12 -0
  326. package/dist/hooks/use-render-custom-messages.mjs.map +1 -0
  327. package/dist/hooks/use-render-tool-call.d.mts +16 -0
  328. package/dist/hooks/use-render-tool-call.d.ts +16 -0
  329. package/dist/hooks/use-render-tool-call.js +208 -0
  330. package/dist/hooks/use-render-tool-call.js.map +1 -0
  331. package/dist/hooks/use-render-tool-call.mjs +11 -0
  332. package/dist/hooks/use-render-tool-call.mjs.map +1 -0
  333. package/dist/hooks/use-suggestions.d.mts +14 -0
  334. package/dist/hooks/use-suggestions.d.ts +14 -0
  335. package/dist/hooks/use-suggestions.js +176 -0
  336. package/dist/hooks/use-suggestions.js.map +1 -0
  337. package/dist/hooks/use-suggestions.mjs +11 -0
  338. package/dist/hooks/use-suggestions.mjs.map +1 -0
  339. package/dist/index.d.mts +46 -635
  340. package/dist/index.d.ts +46 -635
  341. package/dist/index.mjs +110 -3960
  342. package/dist/index.mjs.map +1 -1
  343. package/dist/lib/react-core.d.mts +33 -0
  344. package/dist/lib/react-core.d.ts +33 -0
  345. package/dist/lib/react-core.js +73 -0
  346. package/dist/lib/react-core.js.map +1 -0
  347. package/dist/lib/react-core.mjs +7 -0
  348. package/dist/lib/react-core.mjs.map +1 -0
  349. package/dist/lib/slots.d.mts +16 -0
  350. package/dist/lib/slots.d.ts +16 -0
  351. package/dist/lib/slots.js +60 -0
  352. package/dist/lib/slots.js.map +1 -0
  353. package/dist/lib/slots.mjs +7 -0
  354. package/dist/lib/slots.mjs.map +1 -0
  355. package/dist/lib/utils.d.mts +5 -0
  356. package/dist/lib/utils.d.ts +5 -0
  357. package/dist/lib/utils.js +35 -0
  358. package/dist/lib/utils.js.map +1 -0
  359. package/dist/lib/utils.mjs +7 -0
  360. package/dist/lib/utils.mjs.map +1 -0
  361. package/dist/providers/CopilotChatConfigurationProvider.d.mts +43 -0
  362. package/dist/providers/CopilotChatConfigurationProvider.d.ts +43 -0
  363. package/dist/providers/CopilotChatConfigurationProvider.js +109 -0
  364. package/dist/providers/CopilotChatConfigurationProvider.js.map +1 -0
  365. package/dist/providers/CopilotChatConfigurationProvider.mjs +11 -0
  366. package/dist/providers/CopilotChatConfigurationProvider.mjs.map +1 -0
  367. package/dist/providers/CopilotKitProvider.d.mts +33 -0
  368. package/dist/providers/CopilotKitProvider.d.ts +33 -0
  369. package/dist/providers/CopilotKitProvider.js +314 -0
  370. package/dist/providers/CopilotKitProvider.js.map +1 -0
  371. package/dist/providers/CopilotKitProvider.mjs +12 -0
  372. package/dist/providers/CopilotKitProvider.mjs.map +1 -0
  373. package/dist/providers/index.d.mts +13 -0
  374. package/dist/providers/index.d.ts +13 -0
  375. package/dist/providers/index.js +396 -0
  376. package/dist/providers/index.js.map +1 -0
  377. package/dist/providers/index.mjs +18 -0
  378. package/dist/providers/index.mjs.map +1 -0
  379. package/dist/types/defineToolCallRenderer.d.mts +41 -0
  380. package/dist/types/defineToolCallRenderer.d.ts +41 -0
  381. package/dist/types/defineToolCallRenderer.js +40 -0
  382. package/dist/types/defineToolCallRenderer.js.map +1 -0
  383. package/dist/types/defineToolCallRenderer.mjs +7 -0
  384. package/dist/types/defineToolCallRenderer.mjs.map +1 -0
  385. package/dist/types/frontend-tool.d.mts +9 -0
  386. package/dist/types/frontend-tool.d.ts +9 -0
  387. package/dist/types/frontend-tool.js +19 -0
  388. package/dist/types/frontend-tool.js.map +1 -0
  389. package/dist/types/frontend-tool.mjs +2 -0
  390. package/dist/types/frontend-tool.mjs.map +1 -0
  391. package/dist/types/human-in-the-loop.d.mts +29 -0
  392. package/dist/types/human-in-the-loop.d.ts +29 -0
  393. package/dist/types/human-in-the-loop.js +19 -0
  394. package/dist/types/human-in-the-loop.js.map +1 -0
  395. package/dist/types/human-in-the-loop.mjs +2 -0
  396. package/dist/types/human-in-the-loop.mjs.map +1 -0
  397. package/dist/types/index.d.mts +11 -0
  398. package/dist/types/index.d.ts +11 -0
  399. package/dist/types/index.js +42 -0
  400. package/dist/types/index.js.map +1 -0
  401. package/dist/types/index.mjs +13 -0
  402. package/dist/types/index.mjs.map +1 -0
  403. package/dist/types/react-activity-message-renderer.d.mts +29 -0
  404. package/dist/types/react-activity-message-renderer.d.ts +29 -0
  405. package/dist/types/react-activity-message-renderer.js +19 -0
  406. package/dist/types/react-activity-message-renderer.js.map +1 -0
  407. package/dist/types/react-activity-message-renderer.mjs +2 -0
  408. package/dist/types/react-activity-message-renderer.mjs.map +1 -0
  409. package/dist/types/react-custom-message-renderer.d.mts +18 -0
  410. package/dist/types/react-custom-message-renderer.d.ts +18 -0
  411. package/dist/types/react-custom-message-renderer.js +19 -0
  412. package/dist/types/react-custom-message-renderer.js.map +1 -0
  413. package/dist/types/react-custom-message-renderer.mjs +2 -0
  414. package/dist/types/react-custom-message-renderer.mjs.map +1 -0
  415. package/dist/types/react-tool-call-renderer.d.mts +30 -0
  416. package/dist/types/react-tool-call-renderer.d.ts +30 -0
  417. package/dist/types/react-tool-call-renderer.js +19 -0
  418. package/dist/types/react-tool-call-renderer.js.map +1 -0
  419. package/dist/types/react-tool-call-renderer.mjs +2 -0
  420. package/dist/types/react-tool-call-renderer.mjs.map +1 -0
  421. package/package.json +8 -7
@@ -0,0 +1,278 @@
1
+ import {
2
+ Button
3
+ } from "./chunk-TAUOEJH2.mjs";
4
+ import {
5
+ Tooltip,
6
+ TooltipContent,
7
+ TooltipTrigger
8
+ } from "./chunk-VVAXSF3M.mjs";
9
+ import {
10
+ renderSlot
11
+ } from "./chunk-FIBK3DYE.mjs";
12
+ import {
13
+ CopilotChatDefaultLabels,
14
+ useCopilotChatConfiguration
15
+ } from "./chunk-4XJK5IVQ.mjs";
16
+
17
+ // src/components/chat/CopilotChatUserMessage.tsx
18
+ import { useMemo, useState } from "react";
19
+ import { Copy, Check, Edit, ChevronLeft, ChevronRight } from "lucide-react";
20
+ import { twMerge } from "tailwind-merge";
21
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
22
+ function flattenUserMessageContent(content) {
23
+ if (!content) {
24
+ return "";
25
+ }
26
+ if (typeof content === "string") {
27
+ return content;
28
+ }
29
+ return content.map((part) => {
30
+ if (part && typeof part === "object" && "type" in part && part.type === "text" && typeof part.text === "string") {
31
+ return part.text;
32
+ }
33
+ return "";
34
+ }).filter((text) => text.length > 0).join("\n");
35
+ }
36
+ function CopilotChatUserMessage({
37
+ message,
38
+ onEditMessage,
39
+ branchIndex,
40
+ numberOfBranches,
41
+ onSwitchToBranch,
42
+ additionalToolbarItems,
43
+ messageRenderer,
44
+ toolbar,
45
+ copyButton,
46
+ editButton,
47
+ branchNavigation,
48
+ children,
49
+ className,
50
+ ...props
51
+ }) {
52
+ const flattenedContent = useMemo(
53
+ () => flattenUserMessageContent(message.content),
54
+ [message.content]
55
+ );
56
+ const BoundMessageRenderer = renderSlot(
57
+ messageRenderer,
58
+ CopilotChatUserMessage.MessageRenderer,
59
+ {
60
+ content: flattenedContent
61
+ }
62
+ );
63
+ const BoundCopyButton = renderSlot(
64
+ copyButton,
65
+ CopilotChatUserMessage.CopyButton,
66
+ {
67
+ onClick: async () => {
68
+ if (flattenedContent) {
69
+ try {
70
+ await navigator.clipboard.writeText(flattenedContent);
71
+ } catch (err) {
72
+ console.error("Failed to copy message:", err);
73
+ }
74
+ }
75
+ }
76
+ }
77
+ );
78
+ const BoundEditButton = renderSlot(
79
+ editButton,
80
+ CopilotChatUserMessage.EditButton,
81
+ {
82
+ onClick: () => onEditMessage?.({ message })
83
+ }
84
+ );
85
+ const BoundBranchNavigation = renderSlot(
86
+ branchNavigation,
87
+ CopilotChatUserMessage.BranchNavigation,
88
+ {
89
+ currentBranch: branchIndex,
90
+ numberOfBranches,
91
+ onSwitchToBranch,
92
+ message
93
+ }
94
+ );
95
+ const showBranchNavigation = numberOfBranches && numberOfBranches > 1 && onSwitchToBranch;
96
+ const BoundToolbar = renderSlot(toolbar, CopilotChatUserMessage.Toolbar, {
97
+ children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 justify-end", children: [
98
+ additionalToolbarItems,
99
+ BoundCopyButton,
100
+ onEditMessage && BoundEditButton,
101
+ showBranchNavigation && BoundBranchNavigation
102
+ ] })
103
+ });
104
+ if (children) {
105
+ return /* @__PURE__ */ jsx(Fragment, { children: children({
106
+ messageRenderer: BoundMessageRenderer,
107
+ toolbar: BoundToolbar,
108
+ copyButton: BoundCopyButton,
109
+ editButton: BoundEditButton,
110
+ branchNavigation: BoundBranchNavigation,
111
+ message,
112
+ branchIndex,
113
+ numberOfBranches,
114
+ additionalToolbarItems
115
+ }) });
116
+ }
117
+ return /* @__PURE__ */ jsxs(
118
+ "div",
119
+ {
120
+ className: twMerge("flex flex-col items-end group pt-10", className),
121
+ "data-message-id": message.id,
122
+ ...props,
123
+ children: [
124
+ BoundMessageRenderer,
125
+ BoundToolbar
126
+ ]
127
+ }
128
+ );
129
+ }
130
+ ((CopilotChatUserMessage2) => {
131
+ CopilotChatUserMessage2.Container = ({ children, className, ...props }) => /* @__PURE__ */ jsx(
132
+ "div",
133
+ {
134
+ className: twMerge("flex flex-col items-end group", className),
135
+ ...props,
136
+ children
137
+ }
138
+ );
139
+ CopilotChatUserMessage2.MessageRenderer = ({ content, className }) => /* @__PURE__ */ jsx(
140
+ "div",
141
+ {
142
+ className: twMerge(
143
+ "prose dark:prose-invert bg-muted relative max-w-[80%] rounded-[18px] px-4 py-1.5 data-[multiline]:py-3 inline-block whitespace-pre-wrap",
144
+ className
145
+ ),
146
+ children: content
147
+ }
148
+ );
149
+ CopilotChatUserMessage2.Toolbar = ({
150
+ className,
151
+ ...props
152
+ }) => /* @__PURE__ */ jsx(
153
+ "div",
154
+ {
155
+ className: twMerge(
156
+ "w-full bg-transparent flex items-center justify-end -mr-[5px] mt-[4px] invisible group-hover:visible",
157
+ className
158
+ ),
159
+ ...props
160
+ }
161
+ );
162
+ CopilotChatUserMessage2.ToolbarButton = ({ title, children, className, ...props }) => {
163
+ return /* @__PURE__ */ jsxs(Tooltip, { children: [
164
+ /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
165
+ Button,
166
+ {
167
+ type: "button",
168
+ variant: "assistantMessageToolbarButton",
169
+ "aria-label": title,
170
+ className: twMerge(className),
171
+ ...props,
172
+ children
173
+ }
174
+ ) }),
175
+ /* @__PURE__ */ jsx(TooltipContent, { side: "bottom", children: /* @__PURE__ */ jsx("p", { children: title }) })
176
+ ] });
177
+ };
178
+ CopilotChatUserMessage2.CopyButton = ({ className, title, onClick, ...props }) => {
179
+ const config = useCopilotChatConfiguration();
180
+ const labels = config?.labels ?? CopilotChatDefaultLabels;
181
+ const [copied, setCopied] = useState(false);
182
+ const handleClick = (event) => {
183
+ setCopied(true);
184
+ setTimeout(() => setCopied(false), 2e3);
185
+ if (onClick) {
186
+ onClick(event);
187
+ }
188
+ };
189
+ return /* @__PURE__ */ jsx(
190
+ CopilotChatUserMessage2.ToolbarButton,
191
+ {
192
+ title: title || labels.userMessageToolbarCopyMessageLabel,
193
+ onClick: handleClick,
194
+ className,
195
+ ...props,
196
+ children: copied ? /* @__PURE__ */ jsx(Check, { className: "size-[18px]" }) : /* @__PURE__ */ jsx(Copy, { className: "size-[18px]" })
197
+ }
198
+ );
199
+ };
200
+ CopilotChatUserMessage2.EditButton = ({ className, title, ...props }) => {
201
+ const config = useCopilotChatConfiguration();
202
+ const labels = config?.labels ?? CopilotChatDefaultLabels;
203
+ return /* @__PURE__ */ jsx(
204
+ CopilotChatUserMessage2.ToolbarButton,
205
+ {
206
+ title: title || labels.userMessageToolbarEditMessageLabel,
207
+ className,
208
+ ...props,
209
+ children: /* @__PURE__ */ jsx(Edit, { className: "size-[18px]" })
210
+ }
211
+ );
212
+ };
213
+ CopilotChatUserMessage2.BranchNavigation = ({
214
+ className,
215
+ currentBranch = 0,
216
+ numberOfBranches = 1,
217
+ onSwitchToBranch,
218
+ message,
219
+ ...props
220
+ }) => {
221
+ if (!numberOfBranches || numberOfBranches <= 1 || !onSwitchToBranch) {
222
+ return null;
223
+ }
224
+ const canGoPrev = currentBranch > 0;
225
+ const canGoNext = currentBranch < numberOfBranches - 1;
226
+ return /* @__PURE__ */ jsxs("div", { className: twMerge("flex items-center gap-1", className), ...props, children: [
227
+ /* @__PURE__ */ jsx(
228
+ Button,
229
+ {
230
+ type: "button",
231
+ variant: "assistantMessageToolbarButton",
232
+ onClick: () => onSwitchToBranch?.({
233
+ branchIndex: currentBranch - 1,
234
+ numberOfBranches,
235
+ message
236
+ }),
237
+ disabled: !canGoPrev,
238
+ className: "h-6 w-6 p-0",
239
+ children: /* @__PURE__ */ jsx(ChevronLeft, { className: "size-[20px]" })
240
+ }
241
+ ),
242
+ /* @__PURE__ */ jsxs("span", { className: "text-sm text-muted-foreground px-0 font-medium", children: [
243
+ currentBranch + 1,
244
+ "/",
245
+ numberOfBranches
246
+ ] }),
247
+ /* @__PURE__ */ jsx(
248
+ Button,
249
+ {
250
+ type: "button",
251
+ variant: "assistantMessageToolbarButton",
252
+ onClick: () => onSwitchToBranch?.({
253
+ branchIndex: currentBranch + 1,
254
+ numberOfBranches,
255
+ message
256
+ }),
257
+ disabled: !canGoNext,
258
+ className: "h-6 w-6 p-0",
259
+ children: /* @__PURE__ */ jsx(ChevronRight, { className: "size-[20px]" })
260
+ }
261
+ )
262
+ ] });
263
+ };
264
+ })(CopilotChatUserMessage || (CopilotChatUserMessage = {}));
265
+ CopilotChatUserMessage.Container.displayName = "CopilotChatUserMessage.Container";
266
+ CopilotChatUserMessage.MessageRenderer.displayName = "CopilotChatUserMessage.MessageRenderer";
267
+ CopilotChatUserMessage.Toolbar.displayName = "CopilotChatUserMessage.Toolbar";
268
+ CopilotChatUserMessage.ToolbarButton.displayName = "CopilotChatUserMessage.ToolbarButton";
269
+ CopilotChatUserMessage.CopyButton.displayName = "CopilotChatUserMessage.CopyButton";
270
+ CopilotChatUserMessage.EditButton.displayName = "CopilotChatUserMessage.EditButton";
271
+ CopilotChatUserMessage.BranchNavigation.displayName = "CopilotChatUserMessage.BranchNavigation";
272
+ var CopilotChatUserMessage_default = CopilotChatUserMessage;
273
+
274
+ export {
275
+ CopilotChatUserMessage,
276
+ CopilotChatUserMessage_default
277
+ };
278
+ //# sourceMappingURL=chunk-BT6C5OPU.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/chat/CopilotChatUserMessage.tsx"],"sourcesContent":["import { useMemo, useState } from \"react\";\nimport { Copy, Check, Edit, ChevronLeft, ChevronRight } from \"lucide-react\";\nimport {\n useCopilotChatConfiguration,\n CopilotChatDefaultLabels,\n} from \"@/providers/CopilotChatConfigurationProvider\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Button } from \"@/components/ui/button\";\nimport { UserMessage } from \"@ag-ui/core\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { renderSlot, WithSlots } from \"@/lib/slots\";\n\nfunction flattenUserMessageContent(content?: UserMessage[\"content\"]): string {\n if (!content) {\n return \"\";\n }\n\n if (typeof content === \"string\") {\n return content;\n }\n\n return content\n .map((part) => {\n if (\n part &&\n typeof part === \"object\" &&\n \"type\" in part &&\n (part as { type?: unknown }).type === \"text\" &&\n typeof (part as { text?: unknown }).text === \"string\"\n ) {\n return (part as { text: string }).text;\n }\n return \"\";\n })\n .filter((text) => text.length > 0)\n .join(\"\\n\");\n}\n\nexport interface CopilotChatUserMessageOnEditMessageProps {\n message: UserMessage;\n}\n\nexport interface CopilotChatUserMessageOnSwitchToBranchProps {\n message: UserMessage;\n branchIndex: number;\n numberOfBranches: number;\n}\n\nexport type CopilotChatUserMessageProps = WithSlots<\n {\n messageRenderer: typeof CopilotChatUserMessage.MessageRenderer;\n toolbar: typeof CopilotChatUserMessage.Toolbar;\n copyButton: typeof CopilotChatUserMessage.CopyButton;\n editButton: typeof CopilotChatUserMessage.EditButton;\n branchNavigation: typeof CopilotChatUserMessage.BranchNavigation;\n },\n {\n onEditMessage?: (props: CopilotChatUserMessageOnEditMessageProps) => void;\n onSwitchToBranch?: (\n props: CopilotChatUserMessageOnSwitchToBranchProps\n ) => void;\n message: UserMessage;\n branchIndex?: number;\n numberOfBranches?: number;\n additionalToolbarItems?: React.ReactNode;\n } & React.HTMLAttributes<HTMLDivElement>\n>;\n\nexport function CopilotChatUserMessage({\n message,\n onEditMessage,\n branchIndex,\n numberOfBranches,\n onSwitchToBranch,\n additionalToolbarItems,\n messageRenderer,\n toolbar,\n copyButton,\n editButton,\n branchNavigation,\n children,\n className,\n ...props\n}: CopilotChatUserMessageProps) {\n const flattenedContent = useMemo(\n () => flattenUserMessageContent(message.content),\n [message.content]\n );\n\n const BoundMessageRenderer = renderSlot(\n messageRenderer,\n CopilotChatUserMessage.MessageRenderer,\n {\n content: flattenedContent,\n }\n );\n\n const BoundCopyButton = renderSlot(\n copyButton,\n CopilotChatUserMessage.CopyButton,\n {\n onClick: async () => {\n if (flattenedContent) {\n try {\n await navigator.clipboard.writeText(flattenedContent);\n } catch (err) {\n console.error(\"Failed to copy message:\", err);\n }\n }\n },\n }\n );\n\n const BoundEditButton = renderSlot(\n editButton,\n CopilotChatUserMessage.EditButton,\n {\n onClick: () => onEditMessage?.({ message }),\n }\n );\n\n const BoundBranchNavigation = renderSlot(\n branchNavigation,\n CopilotChatUserMessage.BranchNavigation,\n {\n currentBranch: branchIndex,\n numberOfBranches,\n onSwitchToBranch,\n message,\n }\n );\n\n const showBranchNavigation =\n numberOfBranches && numberOfBranches > 1 && onSwitchToBranch;\n\n const BoundToolbar = renderSlot(toolbar, CopilotChatUserMessage.Toolbar, {\n children: (\n <div className=\"flex items-center gap-1 justify-end\">\n {additionalToolbarItems}\n {BoundCopyButton}\n {onEditMessage && BoundEditButton}\n {showBranchNavigation && BoundBranchNavigation}\n </div>\n ),\n });\n\n if (children) {\n return (\n <>\n {children({\n messageRenderer: BoundMessageRenderer,\n toolbar: BoundToolbar,\n copyButton: BoundCopyButton,\n editButton: BoundEditButton,\n branchNavigation: BoundBranchNavigation,\n message,\n branchIndex,\n numberOfBranches,\n additionalToolbarItems,\n })}\n </>\n );\n }\n\n return (\n <div\n className={twMerge(\"flex flex-col items-end group pt-10\", className)}\n data-message-id={message.id}\n {...props}\n >\n {BoundMessageRenderer}\n {BoundToolbar}\n </div>\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace CopilotChatUserMessage {\n export const Container: React.FC<\n React.PropsWithChildren<React.HTMLAttributes<HTMLDivElement>>\n > = ({ children, className, ...props }) => (\n <div\n className={twMerge(\"flex flex-col items-end group\", className)}\n {...props}\n >\n {children}\n </div>\n );\n\n export const MessageRenderer: React.FC<{\n content: string;\n className?: string;\n }> = ({ content, className }) => (\n <div\n className={twMerge(\n \"prose dark:prose-invert bg-muted relative max-w-[80%] rounded-[18px] px-4 py-1.5 data-[multiline]:py-3 inline-block whitespace-pre-wrap\",\n className\n )}\n >\n {content}\n </div>\n );\n\n export const Toolbar: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n }) => (\n <div\n className={twMerge(\n \"w-full bg-transparent flex items-center justify-end -mr-[5px] mt-[4px] invisible group-hover:visible\",\n className\n )}\n {...props}\n />\n );\n\n export const ToolbarButton: React.FC<\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n title: string;\n children: React.ReactNode;\n }\n > = ({ title, children, className, ...props }) => {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n type=\"button\"\n variant=\"assistantMessageToolbarButton\"\n aria-label={title}\n className={twMerge(className)}\n {...props}\n >\n {children}\n </Button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n <p>{title}</p>\n </TooltipContent>\n </Tooltip>\n );\n };\n\n export const CopyButton: React.FC<\n React.ButtonHTMLAttributes<HTMLButtonElement> & { copied?: boolean }\n > = ({ className, title, onClick, ...props }) => {\n const config = useCopilotChatConfiguration();\n const labels = config?.labels ?? CopilotChatDefaultLabels;\n const [copied, setCopied] = useState(false);\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n\n if (onClick) {\n onClick(event);\n }\n };\n\n return (\n <ToolbarButton\n title={title || labels.userMessageToolbarCopyMessageLabel}\n onClick={handleClick}\n className={className}\n {...props}\n >\n {copied ? (\n <Check className=\"size-[18px]\" />\n ) : (\n <Copy className=\"size-[18px]\" />\n )}\n </ToolbarButton>\n );\n };\n\n export const EditButton: React.FC<\n React.ButtonHTMLAttributes<HTMLButtonElement>\n > = ({ className, title, ...props }) => {\n const config = useCopilotChatConfiguration();\n const labels = config?.labels ?? CopilotChatDefaultLabels;\n return (\n <ToolbarButton\n title={title || labels.userMessageToolbarEditMessageLabel}\n className={className}\n {...props}\n >\n <Edit className=\"size-[18px]\" />\n </ToolbarButton>\n );\n };\n\n export const BranchNavigation: React.FC<\n React.HTMLAttributes<HTMLDivElement> & {\n currentBranch?: number;\n numberOfBranches?: number;\n onSwitchToBranch?: (\n props: CopilotChatUserMessageOnSwitchToBranchProps\n ) => void;\n message: UserMessage;\n }\n > = ({\n className,\n currentBranch = 0,\n numberOfBranches = 1,\n onSwitchToBranch,\n message,\n ...props\n }) => {\n if (!numberOfBranches || numberOfBranches <= 1 || !onSwitchToBranch) {\n return null;\n }\n\n const canGoPrev = currentBranch > 0;\n const canGoNext = currentBranch < numberOfBranches - 1;\n\n return (\n <div className={twMerge(\"flex items-center gap-1\", className)} {...props}>\n <Button\n type=\"button\"\n variant=\"assistantMessageToolbarButton\"\n onClick={() =>\n onSwitchToBranch?.({\n branchIndex: currentBranch - 1,\n numberOfBranches,\n message,\n })\n }\n disabled={!canGoPrev}\n className=\"h-6 w-6 p-0\"\n >\n <ChevronLeft className=\"size-[20px]\" />\n </Button>\n <span className=\"text-sm text-muted-foreground px-0 font-medium\">\n {currentBranch + 1}/{numberOfBranches}\n </span>\n <Button\n type=\"button\"\n variant=\"assistantMessageToolbarButton\"\n onClick={() =>\n onSwitchToBranch?.({\n branchIndex: currentBranch + 1,\n numberOfBranches,\n message,\n })\n }\n disabled={!canGoNext}\n className=\"h-6 w-6 p-0\"\n >\n <ChevronRight className=\"size-[20px]\" />\n </Button>\n </div>\n );\n };\n}\n\nCopilotChatUserMessage.Container.displayName =\n \"CopilotChatUserMessage.Container\";\nCopilotChatUserMessage.MessageRenderer.displayName =\n \"CopilotChatUserMessage.MessageRenderer\";\nCopilotChatUserMessage.Toolbar.displayName = \"CopilotChatUserMessage.Toolbar\";\nCopilotChatUserMessage.ToolbarButton.displayName =\n \"CopilotChatUserMessage.ToolbarButton\";\nCopilotChatUserMessage.CopyButton.displayName =\n \"CopilotChatUserMessage.CopyButton\";\nCopilotChatUserMessage.EditButton.displayName =\n \"CopilotChatUserMessage.EditButton\";\nCopilotChatUserMessage.BranchNavigation.displayName =\n \"CopilotChatUserMessage.BranchNavigation\";\n\nexport default CopilotChatUserMessage;\n"],"mappings":"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","names":["CopilotChatUserMessage"]}
@@ -0,0 +1,78 @@
1
+ import {
2
+ useFrontendTool
3
+ } from "./chunk-IICUCI5S.mjs";
4
+ import {
5
+ useCopilotKit
6
+ } from "./chunk-RF2CGPHQ.mjs";
7
+
8
+ // src/hooks/use-human-in-the-loop.tsx
9
+ import { useCallback, useRef, useEffect } from "react";
10
+ import React from "react";
11
+ function useHumanInTheLoop(tool) {
12
+ const { copilotkit } = useCopilotKit();
13
+ const resolvePromiseRef = useRef(null);
14
+ const respond = useCallback(async (result) => {
15
+ if (resolvePromiseRef.current) {
16
+ resolvePromiseRef.current(result);
17
+ resolvePromiseRef.current = null;
18
+ }
19
+ }, []);
20
+ const handler = useCallback(async () => {
21
+ return new Promise((resolve) => {
22
+ resolvePromiseRef.current = resolve;
23
+ });
24
+ }, []);
25
+ const RenderComponent = useCallback(
26
+ (props) => {
27
+ const ToolComponent = tool.render;
28
+ if (props.status === "inProgress") {
29
+ const enhancedProps = {
30
+ ...props,
31
+ name: tool.name,
32
+ description: tool.description || "",
33
+ respond: void 0
34
+ };
35
+ return React.createElement(ToolComponent, enhancedProps);
36
+ } else if (props.status === "executing") {
37
+ const enhancedProps = {
38
+ ...props,
39
+ name: tool.name,
40
+ description: tool.description || "",
41
+ respond
42
+ };
43
+ return React.createElement(ToolComponent, enhancedProps);
44
+ } else if (props.status === "complete") {
45
+ const enhancedProps = {
46
+ ...props,
47
+ name: tool.name,
48
+ description: tool.description || "",
49
+ respond: void 0
50
+ };
51
+ return React.createElement(ToolComponent, enhancedProps);
52
+ }
53
+ return React.createElement(ToolComponent, props);
54
+ },
55
+ [tool.render, tool.name, tool.description, respond]
56
+ );
57
+ const frontendTool = {
58
+ ...tool,
59
+ handler,
60
+ render: RenderComponent
61
+ };
62
+ useFrontendTool(frontendTool);
63
+ useEffect(() => {
64
+ return () => {
65
+ const keyOf = (rc) => `${rc.agentId ?? ""}:${rc.name}`;
66
+ const currentRenderToolCalls = copilotkit.renderToolCalls;
67
+ const filtered = currentRenderToolCalls.filter(
68
+ (rc) => keyOf(rc) !== keyOf({ name: tool.name, agentId: tool.agentId })
69
+ );
70
+ copilotkit.setRenderToolCalls(filtered);
71
+ };
72
+ }, [copilotkit, tool.name, tool.agentId]);
73
+ }
74
+
75
+ export {
76
+ useHumanInTheLoop
77
+ };
78
+ //# sourceMappingURL=chunk-CGLGXQAU.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/use-human-in-the-loop.tsx"],"sourcesContent":["import { ReactToolCallRenderer } from \"@/types/react-tool-call-renderer\";\nimport { useFrontendTool } from \"./use-frontend-tool\";\nimport { ReactFrontendTool } from \"@/types/frontend-tool\";\nimport { ReactHumanInTheLoop } from \"@/types/human-in-the-loop\";\nimport { useCallback, useRef, useEffect } from \"react\";\nimport React from \"react\";\nimport { useCopilotKit } from \"@/providers/CopilotKitProvider\";\n\nexport function useHumanInTheLoop<T extends Record<string, unknown> = Record<string, unknown>>(\n tool: ReactHumanInTheLoop<T>,\n) {\n const { copilotkit } = useCopilotKit();\n const resolvePromiseRef = useRef<((result: unknown) => void) | null>(null);\n\n const respond = useCallback(async (result: unknown) => {\n if (resolvePromiseRef.current) {\n resolvePromiseRef.current(result);\n resolvePromiseRef.current = null;\n }\n }, []);\n\n const handler = useCallback(async () => {\n return new Promise((resolve) => {\n resolvePromiseRef.current = resolve;\n });\n }, []);\n\n const RenderComponent: ReactToolCallRenderer<T>[\"render\"] = useCallback(\n (props) => {\n const ToolComponent = tool.render;\n\n // Enhance props based on current status\n if (props.status === \"inProgress\") {\n const enhancedProps = {\n ...props,\n name: tool.name,\n description: tool.description || \"\",\n respond: undefined,\n };\n return React.createElement(ToolComponent, enhancedProps);\n } else if (props.status === \"executing\") {\n const enhancedProps = {\n ...props,\n name: tool.name,\n description: tool.description || \"\",\n respond,\n };\n return React.createElement(ToolComponent, enhancedProps);\n } else if (props.status === \"complete\") {\n const enhancedProps = {\n ...props,\n name: tool.name,\n description: tool.description || \"\",\n respond: undefined,\n };\n return React.createElement(ToolComponent, enhancedProps);\n }\n\n // Fallback - just render with original props\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return React.createElement(ToolComponent, props as any);\n },\n [tool.render, tool.name, tool.description, respond],\n );\n\n const frontendTool: ReactFrontendTool<T> = {\n ...tool,\n handler,\n render: RenderComponent,\n };\n\n useFrontendTool(frontendTool);\n\n // Human-in-the-loop tools should remove their renderer on unmount\n // since they can't respond to user interactions anymore\n useEffect(() => {\n return () => {\n const keyOf = (rc: ReactToolCallRenderer<any>) => `${rc.agentId ?? \"\"}:${rc.name}`;\n const currentRenderToolCalls = copilotkit.renderToolCalls as ReactToolCallRenderer<any>[];\n const filtered = currentRenderToolCalls.filter(\n (rc) => keyOf(rc) !== keyOf({ name: tool.name, agentId: tool.agentId } as any),\n );\n copilotkit.setRenderToolCalls(filtered);\n };\n }, [copilotkit, tool.name, tool.agentId]);\n}\n"],"mappings":";;;;;;;;AAIA,SAAS,aAAa,QAAQ,iBAAiB;AAC/C,OAAO,WAAW;AAGX,SAAS,kBACd,MACA;AACA,QAAM,EAAE,WAAW,IAAI,cAAc;AACrC,QAAM,oBAAoB,OAA2C,IAAI;AAEzE,QAAM,UAAU,YAAY,OAAO,WAAoB;AACrD,QAAI,kBAAkB,SAAS;AAC7B,wBAAkB,QAAQ,MAAM;AAChC,wBAAkB,UAAU;AAAA,IAC9B;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,UAAU,YAAY,YAAY;AACtC,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,wBAAkB,UAAU;AAAA,IAC9B,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,QAAM,kBAAsD;AAAA,IAC1D,CAAC,UAAU;AACT,YAAM,gBAAgB,KAAK;AAG3B,UAAI,MAAM,WAAW,cAAc;AACjC,cAAM,gBAAgB;AAAA,UACpB,GAAG;AAAA,UACH,MAAM,KAAK;AAAA,UACX,aAAa,KAAK,eAAe;AAAA,UACjC,SAAS;AAAA,QACX;AACA,eAAO,MAAM,cAAc,eAAe,aAAa;AAAA,MACzD,WAAW,MAAM,WAAW,aAAa;AACvC,cAAM,gBAAgB;AAAA,UACpB,GAAG;AAAA,UACH,MAAM,KAAK;AAAA,UACX,aAAa,KAAK,eAAe;AAAA,UACjC;AAAA,QACF;AACA,eAAO,MAAM,cAAc,eAAe,aAAa;AAAA,MACzD,WAAW,MAAM,WAAW,YAAY;AACtC,cAAM,gBAAgB;AAAA,UACpB,GAAG;AAAA,UACH,MAAM,KAAK;AAAA,UACX,aAAa,KAAK,eAAe;AAAA,UACjC,SAAS;AAAA,QACX;AACA,eAAO,MAAM,cAAc,eAAe,aAAa;AAAA,MACzD;AAIA,aAAO,MAAM,cAAc,eAAe,KAAY;AAAA,IACxD;AAAA,IACA,CAAC,KAAK,QAAQ,KAAK,MAAM,KAAK,aAAa,OAAO;AAAA,EACpD;AAEA,QAAM,eAAqC;AAAA,IACzC,GAAG;AAAA,IACH;AAAA,IACA,QAAQ;AAAA,EACV;AAEA,kBAAgB,YAAY;AAI5B,YAAU,MAAM;AACd,WAAO,MAAM;AACX,YAAM,QAAQ,CAAC,OAAmC,GAAG,GAAG,WAAW,EAAE,IAAI,GAAG,IAAI;AAChF,YAAM,yBAAyB,WAAW;AAC1C,YAAM,WAAW,uBAAuB;AAAA,QACtC,CAAC,OAAO,MAAM,EAAE,MAAM,MAAM,EAAE,MAAM,KAAK,MAAM,SAAS,KAAK,QAAQ,CAAQ;AAAA,MAC/E;AACA,iBAAW,mBAAmB,QAAQ;AAAA,IACxC;AAAA,EACF,GAAG,CAAC,YAAY,KAAK,MAAM,KAAK,OAAO,CAAC;AAC1C;","names":[]}
@@ -0,0 +1,69 @@
1
+ import {
2
+ useCopilotChatConfiguration
3
+ } from "./chunk-4XJK5IVQ.mjs";
4
+ import {
5
+ useCopilotKit
6
+ } from "./chunk-VE3SBLU7.mjs";
7
+
8
+ // src/hooks/use-render-custom-messages.tsx
9
+ import { jsx } from "react/jsx-runtime";
10
+ function useRenderCustomMessages() {
11
+ const { copilotkit } = useCopilotKit();
12
+ const config = useCopilotChatConfiguration();
13
+ if (!config) {
14
+ return null;
15
+ }
16
+ const { agentId, threadId } = config;
17
+ const customMessageRenderers = copilotkit.renderCustomMessages.filter((renderer) => renderer.agentId === void 0 || renderer.agentId === agentId).sort((a, b) => {
18
+ const aHasAgent = a.agentId !== void 0;
19
+ const bHasAgent = b.agentId !== void 0;
20
+ if (aHasAgent === bHasAgent) return 0;
21
+ return aHasAgent ? -1 : 1;
22
+ });
23
+ return function(params) {
24
+ if (!customMessageRenderers.length) {
25
+ return null;
26
+ }
27
+ const { message, position } = params;
28
+ const runId = copilotkit.getRunIdForMessage(agentId, threadId, message.id);
29
+ const agent = copilotkit.getAgent(agentId);
30
+ if (!agent) {
31
+ throw new Error("Agent not found");
32
+ }
33
+ const messagesIdsInRun = agent.messages.filter((msg) => copilotkit.getRunIdForMessage(agentId, threadId, msg.id) === runId).map((msg) => msg.id);
34
+ const messageIndex = agent.messages.findIndex((msg) => msg.id === message.id) ?? 0;
35
+ const messageIndexInRun = Math.min(messagesIdsInRun.indexOf(message.id), 0);
36
+ const numberOfMessagesInRun = messagesIdsInRun.length;
37
+ const stateSnapshot = copilotkit.getStateByRun(agentId, threadId, runId);
38
+ let result = null;
39
+ for (const renderer of customMessageRenderers) {
40
+ if (!renderer.render) {
41
+ continue;
42
+ }
43
+ const Component = renderer.render;
44
+ result = /* @__PURE__ */ jsx(
45
+ Component,
46
+ {
47
+ message,
48
+ position,
49
+ runId,
50
+ messageIndex,
51
+ messageIndexInRun,
52
+ numberOfMessagesInRun,
53
+ agentId,
54
+ stateSnapshot
55
+ },
56
+ `${runId}-${message.id}-${position}`
57
+ );
58
+ if (result) {
59
+ break;
60
+ }
61
+ }
62
+ return result;
63
+ };
64
+ }
65
+
66
+ export {
67
+ useRenderCustomMessages
68
+ };
69
+ //# sourceMappingURL=chunk-CSHBUHRW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/use-render-custom-messages.tsx"],"sourcesContent":["import { useCopilotChatConfiguration, useCopilotKit } from \"@/providers\";\nimport { ReactCustomMessageRendererPosition } from \"@/types/react-custom-message-renderer\";\nimport { Message } from \"@ag-ui/core\";\n\ninterface UseRenderCustomMessagesParams {\n message: Message;\n position: ReactCustomMessageRendererPosition;\n}\n\nexport function useRenderCustomMessages() {\n const { copilotkit } = useCopilotKit();\n const config = useCopilotChatConfiguration();\n\n if (!config) {\n return null;\n }\n\n const { agentId, threadId } = config;\n\n const customMessageRenderers = copilotkit.renderCustomMessages\n .filter((renderer) => renderer.agentId === undefined || renderer.agentId === agentId)\n .sort((a, b) => {\n const aHasAgent = a.agentId !== undefined;\n const bHasAgent = b.agentId !== undefined;\n if (aHasAgent === bHasAgent) return 0;\n return aHasAgent ? -1 : 1;\n });\n\n return function (params: UseRenderCustomMessagesParams) {\n if (!customMessageRenderers.length) {\n return null;\n }\n const { message, position } = params;\n const runId = copilotkit.getRunIdForMessage(agentId, threadId, message.id)!;\n const agent = copilotkit.getAgent(agentId);\n if (!agent) {\n throw new Error(\"Agent not found\");\n }\n\n const messagesIdsInRun = agent.messages\n .filter((msg) => copilotkit.getRunIdForMessage(agentId, threadId, msg.id) === runId)\n .map((msg) => msg.id);\n\n const messageIndex = agent.messages.findIndex((msg) => msg.id === message.id) ?? 0;\n const messageIndexInRun = Math.min(messagesIdsInRun.indexOf(message.id), 0);\n const numberOfMessagesInRun = messagesIdsInRun.length;\n const stateSnapshot = copilotkit.getStateByRun(agentId, threadId, runId);\n\n let result = null;\n for (const renderer of customMessageRenderers) {\n if (!renderer.render) {\n continue;\n }\n const Component = renderer.render;\n result = (\n <Component\n key={`${runId}-${message.id}-${position}`}\n message={message}\n position={position}\n runId={runId}\n messageIndex={messageIndex}\n messageIndexInRun={messageIndexInRun}\n numberOfMessagesInRun={numberOfMessagesInRun}\n agentId={agentId}\n stateSnapshot={stateSnapshot}\n />\n );\n if (result) {\n break;\n }\n }\n return result;\n };\n}\n"],"mappings":";;;;;;;;AAuDQ;AA9CD,SAAS,0BAA0B;AACxC,QAAM,EAAE,WAAW,IAAI,cAAc;AACrC,QAAM,SAAS,4BAA4B;AAE3C,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,SAAS,SAAS,IAAI;AAE9B,QAAM,yBAAyB,WAAW,qBACvC,OAAO,CAAC,aAAa,SAAS,YAAY,UAAa,SAAS,YAAY,OAAO,EACnF,KAAK,CAAC,GAAG,MAAM;AACd,UAAM,YAAY,EAAE,YAAY;AAChC,UAAM,YAAY,EAAE,YAAY;AAChC,QAAI,cAAc,UAAW,QAAO;AACpC,WAAO,YAAY,KAAK;AAAA,EAC1B,CAAC;AAEH,SAAO,SAAU,QAAuC;AACtD,QAAI,CAAC,uBAAuB,QAAQ;AAClC,aAAO;AAAA,IACT;AACA,UAAM,EAAE,SAAS,SAAS,IAAI;AAC9B,UAAM,QAAQ,WAAW,mBAAmB,SAAS,UAAU,QAAQ,EAAE;AACzE,UAAM,QAAQ,WAAW,SAAS,OAAO;AACzC,QAAI,CAAC,OAAO;AACV,YAAM,IAAI,MAAM,iBAAiB;AAAA,IACnC;AAEA,UAAM,mBAAmB,MAAM,SAC5B,OAAO,CAAC,QAAQ,WAAW,mBAAmB,SAAS,UAAU,IAAI,EAAE,MAAM,KAAK,EAClF,IAAI,CAAC,QAAQ,IAAI,EAAE;AAEtB,UAAM,eAAe,MAAM,SAAS,UAAU,CAAC,QAAQ,IAAI,OAAO,QAAQ,EAAE,KAAK;AACjF,UAAM,oBAAoB,KAAK,IAAI,iBAAiB,QAAQ,QAAQ,EAAE,GAAG,CAAC;AAC1E,UAAM,wBAAwB,iBAAiB;AAC/C,UAAM,gBAAgB,WAAW,cAAc,SAAS,UAAU,KAAK;AAEvE,QAAI,SAAS;AACb,eAAW,YAAY,wBAAwB;AAC7C,UAAI,CAAC,SAAS,QAAQ;AACpB;AAAA,MACF;AACA,YAAM,YAAY,SAAS;AAC3B,eACE;AAAA,QAAC;AAAA;AAAA,UAEC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,QARK,GAAG,KAAK,IAAI,QAAQ,EAAE,IAAI,QAAQ;AAAA,MASzC;AAEF,UAAI,QAAQ;AACV;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;","names":[]}