@copilotkit/react-core 0.0.0-fix-debug-infosys-20251107162427 → 0.0.0-fix-restore-handle-method-node-http-20260105204107

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 (355) hide show
  1. package/CHANGELOG.md +309 -4
  2. package/dist/chunk-36KQV2NA.mjs +1 -0
  3. package/dist/{chunk-OKCYPO4I.mjs → chunk-3MHWEKFN.mjs} +5 -5
  4. package/dist/chunk-4RRMC7L2.mjs +32 -0
  5. package/dist/chunk-4RRMC7L2.mjs.map +1 -0
  6. package/dist/{chunk-E3624YDU.mjs → chunk-53K6WNJG.mjs} +8 -6
  7. package/dist/{chunk-E3624YDU.mjs.map → chunk-53K6WNJG.mjs.map} +1 -1
  8. package/dist/{chunk-N4WEHORG.mjs → chunk-6PUNP7CD.mjs} +4 -4
  9. package/dist/chunk-6PUNP7CD.mjs.map +1 -0
  10. package/dist/chunk-7DTB7S5V.mjs +83 -0
  11. package/dist/chunk-7DTB7S5V.mjs.map +1 -0
  12. package/dist/{chunk-BBUQMG45.mjs → chunk-7IBF6RBW.mjs} +3 -3
  13. package/dist/{chunk-BBUQMG45.mjs.map → chunk-7IBF6RBW.mjs.map} +1 -1
  14. package/dist/chunk-A6NKSGH3.mjs +1 -0
  15. package/dist/{chunk-MGWRDFBE.mjs → chunk-ABWT4DRT.mjs} +2 -2
  16. package/dist/{chunk-EUX2P2E7.mjs → chunk-AFNWX62Q.mjs} +11 -9
  17. package/dist/chunk-AFNWX62Q.mjs.map +1 -0
  18. package/dist/{chunk-MQYWH4E6.mjs → chunk-BUSWSDYO.mjs} +2 -2
  19. package/dist/chunk-CDUIA2WM.mjs +60 -0
  20. package/dist/chunk-CDUIA2WM.mjs.map +1 -0
  21. package/dist/chunk-CYDWEPFL.mjs +1 -0
  22. package/dist/{chunk-ZLQVRPDS.mjs → chunk-DMLQZG75.mjs} +1 -1
  23. package/dist/chunk-DMLQZG75.mjs.map +1 -0
  24. package/dist/{chunk-U7QULEVO.mjs → chunk-E7SE25ZU.mjs} +3 -3
  25. package/dist/chunk-F555TVE4.mjs +33 -0
  26. package/dist/chunk-F555TVE4.mjs.map +1 -0
  27. package/dist/chunk-FD6FGKYY.mjs +1 -0
  28. package/dist/chunk-FDOMAPJY.mjs +59 -0
  29. package/dist/chunk-FDOMAPJY.mjs.map +1 -0
  30. package/dist/{chunk-OAGAFMUM.mjs → chunk-FQFXYAV7.mjs} +6 -5
  31. package/dist/{chunk-OAGAFMUM.mjs.map → chunk-FQFXYAV7.mjs.map} +1 -1
  32. package/dist/chunk-GPEJNVE5.mjs +80 -0
  33. package/dist/chunk-GPEJNVE5.mjs.map +1 -0
  34. package/dist/chunk-I76HKHPJ.mjs +32 -0
  35. package/dist/chunk-I76HKHPJ.mjs.map +1 -0
  36. package/dist/{chunk-C6IANC2R.mjs → chunk-INPM7YKW.mjs} +9 -45
  37. package/dist/chunk-INPM7YKW.mjs.map +1 -0
  38. package/dist/chunk-JD7BAH7U.mjs +1 -0
  39. package/dist/chunk-LSHFN2Y5.mjs +349 -0
  40. package/dist/chunk-LSHFN2Y5.mjs.map +1 -0
  41. package/dist/chunk-NB2FKV2V.mjs +1 -0
  42. package/dist/chunk-NBK4KBLX.mjs +54 -0
  43. package/dist/chunk-NBK4KBLX.mjs.map +1 -0
  44. package/dist/chunk-QNUAXSDP.mjs +166 -0
  45. package/dist/chunk-QNUAXSDP.mjs.map +1 -0
  46. package/dist/chunk-RB2TXKFP.mjs +551 -0
  47. package/dist/chunk-RB2TXKFP.mjs.map +1 -0
  48. package/dist/{chunk-EDBI5PCJ.mjs → chunk-RW2Y52HO.mjs} +2 -2
  49. package/dist/chunk-RW2Y52HO.mjs.map +1 -0
  50. package/dist/{chunk-N4VN2B5S.mjs → chunk-SNON4QA6.mjs} +4 -4
  51. package/dist/chunk-SPCZTZCY.mjs +1 -0
  52. package/dist/chunk-SPCZTZCY.mjs.map +1 -0
  53. package/dist/chunk-VV56AVPB.mjs +125 -0
  54. package/dist/chunk-VV56AVPB.mjs.map +1 -0
  55. package/dist/chunk-WF65O6HX.mjs +66 -0
  56. package/dist/chunk-WF65O6HX.mjs.map +1 -0
  57. package/dist/chunk-XDFVCQD3.mjs +27 -0
  58. package/dist/chunk-XDFVCQD3.mjs.map +1 -0
  59. package/dist/{chunk-GT5WI3AF.mjs → chunk-YTQHRJUA.mjs} +7 -9
  60. package/dist/chunk-YTQHRJUA.mjs.map +1 -0
  61. package/dist/{chunk-5FHSUKQL.mjs → chunk-YYN33GSG.mjs} +5 -2
  62. package/dist/chunk-YYN33GSG.mjs.map +1 -0
  63. package/dist/chunk-Z6JV2LRY.mjs +37 -0
  64. package/dist/chunk-Z6JV2LRY.mjs.map +1 -0
  65. package/dist/chunk-ZVF5Q6IH.mjs +29 -0
  66. package/dist/chunk-ZVF5Q6IH.mjs.map +1 -0
  67. package/dist/chunk-ZYTXB6HH.mjs +151 -0
  68. package/dist/chunk-ZYTXB6HH.mjs.map +1 -0
  69. package/dist/components/CopilotListeners.d.ts +3 -0
  70. package/dist/components/CopilotListeners.js +101 -0
  71. package/dist/components/CopilotListeners.js.map +1 -0
  72. package/dist/components/CopilotListeners.mjs +9 -0
  73. package/dist/components/CopilotListeners.mjs.map +1 -0
  74. package/dist/components/copilot-provider/copilot-messages.js +14 -48
  75. package/dist/components/copilot-provider/copilot-messages.js.map +1 -1
  76. package/dist/components/copilot-provider/copilot-messages.mjs +3 -3
  77. package/dist/components/copilot-provider/copilotkit-props.d.ts +15 -2
  78. package/dist/components/copilot-provider/copilotkit-props.js.map +1 -1
  79. package/dist/components/copilot-provider/copilotkit.d.ts +2 -1
  80. package/dist/components/copilot-provider/copilotkit.js +491 -1361
  81. package/dist/components/copilot-provider/copilotkit.js.map +1 -1
  82. package/dist/components/copilot-provider/copilotkit.mjs +15 -13
  83. package/dist/components/copilot-provider/index.d.ts +2 -1
  84. package/dist/components/copilot-provider/index.js +491 -1361
  85. package/dist/components/copilot-provider/index.js.map +1 -1
  86. package/dist/components/copilot-provider/index.mjs +16 -13
  87. package/dist/components/dev-console/console-trigger.js +10 -8
  88. package/dist/components/dev-console/console-trigger.js.map +1 -1
  89. package/dist/components/dev-console/console-trigger.mjs +226 -6
  90. package/dist/components/dev-console/console-trigger.mjs.map +1 -1
  91. package/dist/components/dev-console/developer-console-modal.js +10 -8
  92. package/dist/components/dev-console/developer-console-modal.js.map +1 -1
  93. package/dist/components/dev-console/developer-console-modal.mjs +3 -3
  94. package/dist/components/error-boundary/error-boundary.d.ts +7 -7
  95. package/dist/components/error-boundary/error-boundary.js +3 -3
  96. package/dist/components/error-boundary/error-boundary.js.map +1 -1
  97. package/dist/components/error-boundary/error-boundary.mjs +3 -3
  98. package/dist/components/error-boundary/error-utils.d.ts +1 -1
  99. package/dist/components/error-boundary/error-utils.js +3 -3
  100. package/dist/components/error-boundary/error-utils.js.map +1 -1
  101. package/dist/components/error-boundary/error-utils.mjs +1 -1
  102. package/dist/components/index.d.ts +2 -1
  103. package/dist/components/index.js +491 -1361
  104. package/dist/components/index.js.map +1 -1
  105. package/dist/components/index.mjs +17 -13
  106. package/dist/components/toast/exclamation-mark-icon.d.ts +2 -2
  107. package/dist/components/toast/toast-provider.d.ts +3 -3
  108. package/dist/components/usage-banner.d.ts +2 -2
  109. package/dist/context/coagent-state-renders-context.d.ts +24 -0
  110. package/dist/context/coagent-state-renders-context.js +91 -0
  111. package/dist/context/coagent-state-renders-context.js.map +1 -0
  112. package/dist/context/coagent-state-renders-context.mjs +12 -0
  113. package/dist/context/coagent-state-renders-context.mjs.map +1 -0
  114. package/dist/context/copilot-context.d.ts +1 -1
  115. package/dist/context/copilot-context.js +10 -8
  116. package/dist/context/copilot-context.js.map +1 -1
  117. package/dist/context/copilot-context.mjs +1 -1
  118. package/dist/context/copilot-messages-context.d.ts +18 -11
  119. package/dist/context/copilot-messages-context.js.map +1 -1
  120. package/dist/context/copilot-messages-context.mjs +1 -1
  121. package/dist/context/index.d.ts +6 -2
  122. package/dist/context/index.js +110 -10
  123. package/dist/context/index.js.map +1 -1
  124. package/dist/context/index.mjs +23 -7
  125. package/dist/context/threads-context.d.ts +16 -0
  126. package/dist/context/threads-context.js +59 -0
  127. package/dist/context/threads-context.js.map +1 -0
  128. package/dist/context/threads-context.mjs +12 -0
  129. package/dist/context/threads-context.mjs.map +1 -0
  130. package/dist/{copilot-context-cf9de848.d.ts → copilot-context-ec77e921.d.ts} +36 -32
  131. package/dist/hooks/index.d.ts +9 -6
  132. package/dist/hooks/index.js +1109 -1841
  133. package/dist/hooks/index.js.map +1 -1
  134. package/dist/hooks/index.mjs +45 -53
  135. package/dist/hooks/use-agent-nodename.d.ts +3 -0
  136. package/dist/hooks/use-agent-nodename.js +56 -0
  137. package/dist/hooks/use-agent-nodename.js.map +1 -0
  138. package/dist/hooks/use-agent-nodename.mjs +8 -0
  139. package/dist/hooks/use-agent-nodename.mjs.map +1 -0
  140. package/dist/hooks/use-coagent-state-render-bridge.d.ts +100 -0
  141. package/dist/hooks/use-coagent-state-render-bridge.js +214 -0
  142. package/dist/hooks/use-coagent-state-render-bridge.js.map +1 -0
  143. package/dist/hooks/use-coagent-state-render-bridge.mjs +15 -0
  144. package/dist/hooks/use-coagent-state-render-bridge.mjs.map +1 -0
  145. package/dist/hooks/use-coagent-state-render.js +31 -20
  146. package/dist/hooks/use-coagent-state-render.js.map +1 -1
  147. package/dist/hooks/use-coagent-state-render.mjs +3 -2
  148. package/dist/hooks/use-coagent.d.ts +2 -14
  149. package/dist/hooks/use-coagent.js +138 -1898
  150. package/dist/hooks/use-coagent.js.map +1 -1
  151. package/dist/hooks/use-coagent.mjs +2 -30
  152. package/dist/hooks/use-configure-chat-suggestions.d.ts +36 -0
  153. package/dist/hooks/use-configure-chat-suggestions.js +79 -0
  154. package/dist/hooks/use-configure-chat-suggestions.js.map +1 -0
  155. package/dist/hooks/use-configure-chat-suggestions.mjs +47 -0
  156. package/dist/hooks/use-configure-chat-suggestions.mjs.map +1 -0
  157. package/dist/hooks/use-copilot-action.d.ts +8 -45
  158. package/dist/hooks/use-copilot-action.js +219 -349
  159. package/dist/hooks/use-copilot-action.js.map +1 -1
  160. package/dist/hooks/use-copilot-action.mjs +4 -5
  161. package/dist/hooks/use-copilot-additional-instructions.js +10 -8
  162. package/dist/hooks/use-copilot-additional-instructions.js.map +1 -1
  163. package/dist/hooks/use-copilot-additional-instructions.mjs +2 -2
  164. package/dist/hooks/use-copilot-authenticated-action.js +236 -248
  165. package/dist/hooks/use-copilot-authenticated-action.js.map +1 -1
  166. package/dist/hooks/use-copilot-authenticated-action.mjs +6 -6
  167. package/dist/hooks/use-copilot-chat-headless_c.d.ts +2 -10
  168. package/dist/hooks/use-copilot-chat-headless_c.js +585 -1374
  169. package/dist/hooks/use-copilot-chat-headless_c.js.map +1 -1
  170. package/dist/hooks/use-copilot-chat-headless_c.mjs +12 -22
  171. package/dist/hooks/use-copilot-chat-suggestions.d.ts +35 -0
  172. package/dist/hooks/use-copilot-chat-suggestions.js +60 -0
  173. package/dist/hooks/use-copilot-chat-suggestions.js.map +1 -0
  174. package/dist/hooks/use-copilot-chat-suggestions.mjs +8 -0
  175. package/dist/hooks/use-copilot-chat-suggestions.mjs.map +1 -0
  176. package/dist/hooks/use-copilot-chat.d.ts +2 -10
  177. package/dist/hooks/use-copilot-chat.js +579 -1393
  178. package/dist/hooks/use-copilot-chat.js.map +1 -1
  179. package/dist/hooks/use-copilot-chat.mjs +12 -22
  180. package/dist/hooks/use-copilot-chat_internal.d.ts +77 -14
  181. package/dist/hooks/use-copilot-chat_internal.js +577 -1367
  182. package/dist/hooks/use-copilot-chat_internal.js.map +1 -1
  183. package/dist/hooks/use-copilot-chat_internal.mjs +13 -23
  184. package/dist/hooks/use-copilot-readable.d.ts +1 -1
  185. package/dist/hooks/use-copilot-readable.js +25 -152
  186. package/dist/hooks/use-copilot-readable.js.map +1 -1
  187. package/dist/hooks/use-copilot-readable.mjs +1 -2
  188. package/dist/hooks/use-default-tool.js +216 -349
  189. package/dist/hooks/use-default-tool.js.map +1 -1
  190. package/dist/hooks/use-default-tool.mjs +5 -6
  191. package/dist/hooks/use-flat-category-store.js +4 -1
  192. package/dist/hooks/use-flat-category-store.js.map +1 -1
  193. package/dist/hooks/use-flat-category-store.mjs +1 -1
  194. package/dist/hooks/use-frontend-tool.d.ts +3 -3
  195. package/dist/hooks/use-frontend-tool.js +42 -370
  196. package/dist/hooks/use-frontend-tool.js.map +1 -1
  197. package/dist/hooks/use-frontend-tool.mjs +1 -6
  198. package/dist/hooks/use-human-in-the-loop.d.ts +4 -3
  199. package/dist/hooks/use-human-in-the-loop.js +61 -393
  200. package/dist/hooks/use-human-in-the-loop.js.map +1 -1
  201. package/dist/hooks/use-human-in-the-loop.mjs +1 -6
  202. package/dist/hooks/use-langgraph-interrupt-render.d.ts +3 -2
  203. package/dist/hooks/use-langgraph-interrupt-render.js +157 -37
  204. package/dist/hooks/use-langgraph-interrupt-render.js.map +1 -1
  205. package/dist/hooks/use-langgraph-interrupt-render.mjs +7 -4
  206. package/dist/hooks/use-langgraph-interrupt.d.ts +1 -1
  207. package/dist/hooks/use-langgraph-interrupt.js +24 -1642
  208. package/dist/hooks/use-langgraph-interrupt.js.map +1 -1
  209. package/dist/hooks/use-langgraph-interrupt.mjs +2 -23
  210. package/dist/hooks/use-lazy-tool-renderer.d.ts +6 -0
  211. package/dist/hooks/use-lazy-tool-renderer.js +53 -0
  212. package/dist/hooks/use-lazy-tool-renderer.js.map +1 -0
  213. package/dist/hooks/use-lazy-tool-renderer.mjs +8 -0
  214. package/dist/hooks/use-lazy-tool-renderer.mjs.map +1 -0
  215. package/dist/hooks/use-make-copilot-document-readable.js +11 -9
  216. package/dist/hooks/use-make-copilot-document-readable.js.map +1 -1
  217. package/dist/hooks/use-make-copilot-document-readable.mjs +2 -2
  218. package/dist/hooks/use-render-tool-call.d.ts +7 -6
  219. package/dist/hooks/use-render-tool-call.js +36 -386
  220. package/dist/hooks/use-render-tool-call.js.map +1 -1
  221. package/dist/hooks/use-render-tool-call.mjs +1 -6
  222. package/dist/index.d.ts +11 -6
  223. package/dist/index.js +1456 -3033
  224. package/dist/index.js.map +1 -1
  225. package/dist/index.mjs +85 -68
  226. package/dist/lib/copilot-task.d.ts +2 -2
  227. package/dist/lib/copilot-task.js +1 -0
  228. package/dist/lib/copilot-task.js.map +1 -1
  229. package/dist/lib/copilot-task.mjs +18 -14
  230. package/dist/lib/index.d.ts +1 -1
  231. package/dist/lib/index.js +1 -0
  232. package/dist/lib/index.js.map +1 -1
  233. package/dist/lib/index.mjs +18 -14
  234. package/dist/setupTests.d.ts +2 -2
  235. package/dist/types/frontend-action.d.ts +5 -5
  236. package/dist/types/index.d.ts +4 -0
  237. package/dist/types/index.js.map +1 -1
  238. package/dist/types/index.mjs +2 -1
  239. package/dist/types/interrupt-action.d.ts +1 -1
  240. package/dist/types/interrupt-action.js.map +1 -1
  241. package/dist/types/interrupt-action.mjs +1 -0
  242. package/dist/utils/index.d.ts +0 -12
  243. package/dist/utils/index.js +6 -325
  244. package/dist/utils/index.js.map +1 -1
  245. package/dist/utils/index.mjs +1 -21
  246. package/dist/utils/utils.js.map +1 -1
  247. package/dist/v2/index.css +4 -0
  248. package/dist/v2/index.css.map +1 -0
  249. package/dist/v2/index.d.ts +2 -0
  250. package/dist/v2/index.js +27 -0
  251. package/dist/v2/index.js.map +1 -0
  252. package/dist/v2/index.mjs +6 -0
  253. package/dist/v2/index.mjs.map +1 -0
  254. package/jest.config.js +12 -0
  255. package/package.json +24 -10
  256. package/src/components/CopilotListeners.tsx +81 -0
  257. package/src/components/copilot-provider/copilot-messages.tsx +6 -48
  258. package/src/components/copilot-provider/copilotkit-props.tsx +15 -1
  259. package/src/components/copilot-provider/copilotkit.tsx +189 -148
  260. package/src/components/error-boundary/error-utils.tsx +3 -3
  261. package/src/context/coagent-state-renders-context.tsx +76 -0
  262. package/src/context/copilot-context.tsx +21 -21
  263. package/src/context/copilot-messages-context.tsx +3 -3
  264. package/src/context/index.ts +8 -0
  265. package/src/context/threads-context.tsx +41 -0
  266. package/src/hooks/__tests__/use-coagent-config.test.ts +189 -129
  267. package/src/hooks/index.ts +12 -3
  268. package/src/hooks/use-agent-nodename.ts +30 -0
  269. package/src/hooks/use-coagent-state-render-bridge.tsx +293 -0
  270. package/src/hooks/use-coagent-state-render.ts +4 -7
  271. package/src/hooks/use-coagent.ts +136 -247
  272. package/src/hooks/use-configure-chat-suggestions.tsx +86 -0
  273. package/src/hooks/use-copilot-action.ts +88 -199
  274. package/src/hooks/use-copilot-chat-headless_c.ts +2 -1
  275. package/src/hooks/use-copilot-chat-suggestions.tsx +124 -0
  276. package/src/hooks/use-copilot-chat.ts +4 -1
  277. package/src/hooks/use-copilot-chat_internal.ts +410 -263
  278. package/src/hooks/use-copilot-readable.ts +23 -25
  279. package/src/hooks/use-flat-category-store.ts +4 -3
  280. package/src/hooks/use-frontend-tool.ts +86 -8
  281. package/src/hooks/use-human-in-the-loop.ts +111 -13
  282. package/src/hooks/use-langgraph-interrupt-render.ts +108 -40
  283. package/src/hooks/use-langgraph-interrupt.ts +18 -48
  284. package/src/hooks/use-lazy-tool-renderer.tsx +30 -0
  285. package/src/hooks/use-make-copilot-document-readable.ts +1 -1
  286. package/src/hooks/use-render-tool-call.ts +73 -13
  287. package/src/lib/copilot-task.ts +1 -1
  288. package/src/types/index.ts +1 -0
  289. package/src/types/interrupt-action.ts +8 -7
  290. package/src/utils/index.ts +0 -3
  291. package/src/utils/utils.ts +7 -0
  292. package/src/v2/index.css +1 -0
  293. package/src/v2/index.ts +4 -0
  294. package/tsup.config.ts +1 -1
  295. package/dist/chunk-5FHSUKQL.mjs.map +0 -1
  296. package/dist/chunk-6GPVUMBU.mjs +0 -13
  297. package/dist/chunk-6GPVUMBU.mjs.map +0 -1
  298. package/dist/chunk-AKR2SSUJ.mjs +0 -22
  299. package/dist/chunk-AKR2SSUJ.mjs.map +0 -1
  300. package/dist/chunk-BXXJQ2BL.mjs +0 -239
  301. package/dist/chunk-BXXJQ2BL.mjs.map +0 -1
  302. package/dist/chunk-C6IANC2R.mjs.map +0 -1
  303. package/dist/chunk-DXEQPN43.mjs +0 -231
  304. package/dist/chunk-DXEQPN43.mjs.map +0 -1
  305. package/dist/chunk-DZTU6PGS.mjs +0 -1
  306. package/dist/chunk-EDBI5PCJ.mjs.map +0 -1
  307. package/dist/chunk-EUX2P2E7.mjs.map +0 -1
  308. package/dist/chunk-EVVO67QO.mjs +0 -25
  309. package/dist/chunk-EVVO67QO.mjs.map +0 -1
  310. package/dist/chunk-GGLAHG3I.mjs +0 -804
  311. package/dist/chunk-GGLAHG3I.mjs.map +0 -1
  312. package/dist/chunk-GT5WI3AF.mjs.map +0 -1
  313. package/dist/chunk-HDOG2RTM.mjs +0 -37
  314. package/dist/chunk-HDOG2RTM.mjs.map +0 -1
  315. package/dist/chunk-MIXSWZSB.mjs +0 -71
  316. package/dist/chunk-MIXSWZSB.mjs.map +0 -1
  317. package/dist/chunk-N4WEHORG.mjs.map +0 -1
  318. package/dist/chunk-NSBAWITG.mjs +0 -332
  319. package/dist/chunk-NSBAWITG.mjs.map +0 -1
  320. package/dist/chunk-OT5NHMEC.mjs +0 -723
  321. package/dist/chunk-OT5NHMEC.mjs.map +0 -1
  322. package/dist/chunk-T3376SZS.mjs +0 -142
  323. package/dist/chunk-T3376SZS.mjs.map +0 -1
  324. package/dist/chunk-YPBKY4KY.mjs +0 -1
  325. package/dist/chunk-YPSGKPDA.mjs +0 -1
  326. package/dist/chunk-ZLQVRPDS.mjs.map +0 -1
  327. package/dist/chunk-ZVOLWJCY.mjs +0 -47
  328. package/dist/chunk-ZVOLWJCY.mjs.map +0 -1
  329. package/dist/hooks/use-chat.d.ts +0 -145
  330. package/dist/hooks/use-chat.js +0 -1129
  331. package/dist/hooks/use-chat.js.map +0 -1
  332. package/dist/hooks/use-chat.mjs +0 -14
  333. package/dist/index-1f5b66ac.d.ts +0 -36
  334. package/dist/utils/extract.d.ts +0 -43
  335. package/dist/utils/extract.js +0 -208
  336. package/dist/utils/extract.js.map +0 -1
  337. package/dist/utils/extract.mjs +0 -25
  338. package/dist/utils/suggestions.d.ts +0 -11
  339. package/dist/utils/suggestions.js +0 -343
  340. package/dist/utils/suggestions.js.map +0 -1
  341. package/dist/utils/suggestions.mjs +0 -25
  342. package/src/hooks/use-chat.ts +0 -1142
  343. package/src/utils/extract.ts +0 -215
  344. package/src/utils/suggestions.ts +0 -208
  345. /package/dist/{chunk-DZTU6PGS.mjs.map → chunk-36KQV2NA.mjs.map} +0 -0
  346. /package/dist/{chunk-OKCYPO4I.mjs.map → chunk-3MHWEKFN.mjs.map} +0 -0
  347. /package/dist/{chunk-YPBKY4KY.mjs.map → chunk-A6NKSGH3.mjs.map} +0 -0
  348. /package/dist/{chunk-MGWRDFBE.mjs.map → chunk-ABWT4DRT.mjs.map} +0 -0
  349. /package/dist/{chunk-MQYWH4E6.mjs.map → chunk-BUSWSDYO.mjs.map} +0 -0
  350. /package/dist/{chunk-YPSGKPDA.mjs.map → chunk-CYDWEPFL.mjs.map} +0 -0
  351. /package/dist/{chunk-U7QULEVO.mjs.map → chunk-E7SE25ZU.mjs.map} +0 -0
  352. /package/dist/{hooks/use-chat.mjs.map → chunk-FD6FGKYY.mjs.map} +0 -0
  353. /package/dist/{utils/extract.mjs.map → chunk-JD7BAH7U.mjs.map} +0 -0
  354. /package/dist/{utils/suggestions.mjs.map → chunk-NB2FKV2V.mjs.map} +0 -0
  355. /package/dist/{chunk-N4VN2B5S.mjs.map → chunk-SNON4QA6.mjs.map} +0 -0
@@ -1,723 +0,0 @@
1
- import {
2
- processActionsForRuntimeRequest
3
- } from "./chunk-4CEQJ2X6.mjs";
4
- import {
5
- useCopilotRuntimeClient
6
- } from "./chunk-6ESSSQ7Q.mjs";
7
- import {
8
- useAsyncCallback,
9
- useErrorToast
10
- } from "./chunk-N4WEHORG.mjs";
11
- import {
12
- useToast
13
- } from "./chunk-EFL5OBKN.mjs";
14
- import {
15
- useCopilotContext
16
- } from "./chunk-EUX2P2E7.mjs";
17
- import {
18
- __async,
19
- __spreadProps,
20
- __spreadValues
21
- } from "./chunk-SKC7AJIV.mjs";
22
-
23
- // src/hooks/use-chat.ts
24
- import { useCallback, useEffect, useMemo, useRef } from "react";
25
- import { flushSync } from "react-dom";
26
- import {
27
- COPILOT_CLOUD_PUBLIC_API_KEY_HEADER,
28
- randomId,
29
- parseJson,
30
- CopilotKitError,
31
- CopilotKitErrorCode
32
- } from "@copilotkit/shared";
33
- import {
34
- TextMessage,
35
- ResultMessage,
36
- convertMessagesToGqlInput,
37
- filterAdjacentAgentStateMessages,
38
- filterAgentStateMessages,
39
- convertGqlOutputToMessages,
40
- MessageStatusCode,
41
- MessageRole,
42
- Role,
43
- CopilotRequestType,
44
- loadMessagesFromJsonRepresentation,
45
- CopilotRuntimeClient,
46
- langGraphInterruptEvent,
47
- MetaEventName,
48
- ActionExecutionMessage
49
- } from "@copilotkit/runtime-client-gql";
50
- function useChat(options) {
51
- const {
52
- messages,
53
- setMessages,
54
- makeSystemMessageCallback,
55
- copilotConfig,
56
- setIsLoading,
57
- initialMessages,
58
- isLoading,
59
- actions,
60
- onFunctionCall,
61
- onCoAgentStateRender,
62
- setCoagentStatesWithRef,
63
- coagentStatesRef,
64
- agentSession,
65
- setAgentSession,
66
- threadId,
67
- setThreadId,
68
- runId,
69
- setRunId,
70
- chatAbortControllerRef,
71
- agentLock,
72
- extensions,
73
- setExtensions,
74
- langGraphInterruptAction,
75
- setLangGraphInterruptAction,
76
- disableSystemMessage = false
77
- } = options;
78
- const runChatCompletionRef = useRef();
79
- const addErrorToast = useErrorToast();
80
- const { setBannerError } = useToast();
81
- const { onError, showDevConsole, getAllContext } = useCopilotContext();
82
- const copilotReadableContext = getAllContext();
83
- const context = useMemo(
84
- () => copilotReadableContext.map((contextItem) => {
85
- const [description, ...valueParts] = contextItem.value.split(":");
86
- return {
87
- description: description.trim(),
88
- value: valueParts.join(":").trim()
89
- };
90
- }),
91
- [copilotReadableContext]
92
- );
93
- const traceUIError = (error, originalError) => __async(this, null, function* () {
94
- try {
95
- const traceEvent = {
96
- type: "error",
97
- timestamp: Date.now(),
98
- context: {
99
- source: "ui",
100
- request: {
101
- operation: "useChatCompletion",
102
- url: copilotConfig.chatApiEndpoint,
103
- startTime: Date.now()
104
- },
105
- technical: {
106
- environment: "browser",
107
- userAgent: typeof navigator !== "undefined" ? navigator.userAgent : void 0,
108
- stackTrace: originalError instanceof Error ? originalError.stack : void 0
109
- }
110
- },
111
- error
112
- };
113
- yield onError(traceEvent);
114
- } catch (traceError) {
115
- console.error("Error in use-chat onError handler:", traceError);
116
- }
117
- });
118
- const agentSessionRef = useRef(agentSession);
119
- agentSessionRef.current = agentSession;
120
- const runIdRef = useRef(runId);
121
- runIdRef.current = runId;
122
- const extensionsRef = useRef(extensions);
123
- extensionsRef.current = extensions;
124
- const publicApiKey = copilotConfig.publicApiKey;
125
- const headers = __spreadValues(__spreadValues({}, copilotConfig.headers || {}), publicApiKey ? { [COPILOT_CLOUD_PUBLIC_API_KEY_HEADER]: publicApiKey } : {});
126
- const runtimeClient = useCopilotRuntimeClient({
127
- url: copilotConfig.chatApiEndpoint,
128
- publicApiKey: copilotConfig.publicApiKey,
129
- headers,
130
- credentials: copilotConfig.credentials,
131
- showDevConsole,
132
- onError
133
- });
134
- const pendingAppendsRef = useRef([]);
135
- const runChatCompletion = useAsyncCallback(
136
- (previousMessages) => __async(this, null, function* () {
137
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
138
- setIsLoading(true);
139
- const interruptEvent = langGraphInterruptAction == null ? void 0 : langGraphInterruptAction.event;
140
- if ((interruptEvent == null ? void 0 : interruptEvent.name) === MetaEventName.LangGraphInterruptEvent && (interruptEvent == null ? void 0 : interruptEvent.value) && !(interruptEvent == null ? void 0 : interruptEvent.response) && agentSessionRef.current) {
141
- addErrorToast([
142
- new Error(
143
- "A message was sent while interrupt is active. This will cause failure on the agent side"
144
- )
145
- ]);
146
- }
147
- let newMessages = [
148
- new TextMessage({
149
- content: "",
150
- role: Role.Assistant
151
- })
152
- ];
153
- chatAbortControllerRef.current = new AbortController();
154
- setMessages([...previousMessages, ...newMessages]);
155
- const messagesWithContext = disableSystemMessage ? [...initialMessages || [], ...previousMessages] : [makeSystemMessageCallback(), ...initialMessages || [], ...previousMessages];
156
- const finalProperties = __spreadValues({}, copilotConfig.properties || {});
157
- let mcpServersToUse = null;
158
- if (copilotConfig.mcpServers && Array.isArray(copilotConfig.mcpServers) && copilotConfig.mcpServers.length > 0) {
159
- mcpServersToUse = copilotConfig.mcpServers;
160
- } else if (((_a = copilotConfig.properties) == null ? void 0 : _a.mcpServers) && Array.isArray(copilotConfig.properties.mcpServers) && copilotConfig.properties.mcpServers.length > 0) {
161
- mcpServersToUse = copilotConfig.properties.mcpServers;
162
- }
163
- if (mcpServersToUse) {
164
- finalProperties.mcpServers = mcpServersToUse;
165
- copilotConfig.mcpServers = mcpServersToUse;
166
- }
167
- const isAgentRun = agentSessionRef.current !== null;
168
- const stream = runtimeClient.asStream(
169
- runtimeClient.generateCopilotResponse({
170
- data: __spreadProps(__spreadValues(__spreadProps(__spreadValues({
171
- frontend: {
172
- actions: processActionsForRuntimeRequest(actions),
173
- url: window.location.href
174
- },
175
- threadId,
176
- runId: runIdRef.current,
177
- extensions: extensionsRef.current,
178
- metaEvents: composeAndFlushMetaEventsInput([langGraphInterruptAction == null ? void 0 : langGraphInterruptAction.event]),
179
- messages: convertMessagesToGqlInput(filterAgentStateMessages(messagesWithContext))
180
- }, copilotConfig.cloud ? {
181
- cloud: __spreadValues({}, ((_d = (_c = (_b = copilotConfig.cloud.guardrails) == null ? void 0 : _b.input) == null ? void 0 : _c.restrictToTopic) == null ? void 0 : _d.enabled) ? {
182
- guardrails: {
183
- inputValidationRules: {
184
- allowList: copilotConfig.cloud.guardrails.input.restrictToTopic.validTopics,
185
- denyList: copilotConfig.cloud.guardrails.input.restrictToTopic.invalidTopics
186
- }
187
- }
188
- } : {})
189
- } : {}), {
190
- metadata: {
191
- requestType: CopilotRequestType.Chat
192
- }
193
- }), agentSessionRef.current ? {
194
- agentSession: agentSessionRef.current
195
- } : {}), {
196
- agentStates: Object.values(coagentStatesRef.current).map((state) => {
197
- const stateObject = {
198
- agentName: state.name,
199
- state: JSON.stringify(state.state)
200
- };
201
- if (state.config !== void 0) {
202
- stateObject.config = JSON.stringify(state.config);
203
- }
204
- return stateObject;
205
- }),
206
- forwardedParameters: options.forwardedParameters || {},
207
- context
208
- }),
209
- properties: finalProperties,
210
- signal: (_e = chatAbortControllerRef.current) == null ? void 0 : _e.signal
211
- })
212
- );
213
- const guardrailsEnabled = ((_h = (_g = (_f = copilotConfig.cloud) == null ? void 0 : _f.guardrails) == null ? void 0 : _g.input) == null ? void 0 : _h.restrictToTopic.enabled) || false;
214
- const reader = stream.getReader();
215
- let executedCoAgentStateRenders = [];
216
- let followUp = void 0;
217
- let messages2 = [];
218
- let syncedMessages = [];
219
- let interruptMessages = [];
220
- try {
221
- while (true) {
222
- let done, value;
223
- try {
224
- const readResult = yield reader.read();
225
- done = readResult.done;
226
- value = readResult.value;
227
- } catch (readError) {
228
- break;
229
- }
230
- if (done) {
231
- if (chatAbortControllerRef.current.signal.aborted) {
232
- return [];
233
- }
234
- break;
235
- }
236
- if (!(value == null ? void 0 : value.generateCopilotResponse)) {
237
- continue;
238
- }
239
- runIdRef.current = value.generateCopilotResponse.runId || null;
240
- extensionsRef.current = CopilotRuntimeClient.removeGraphQLTypename(
241
- value.generateCopilotResponse.extensions || {}
242
- );
243
- setRunId(runIdRef.current);
244
- setExtensions(extensionsRef.current);
245
- let rawMessagesResponse = value.generateCopilotResponse.messages;
246
- const metaEvents = (_j = (_i = value.generateCopilotResponse) == null ? void 0 : _i.metaEvents) != null ? _j : [];
247
- (metaEvents != null ? metaEvents : []).forEach((ev) => {
248
- if (ev.name === MetaEventName.LangGraphInterruptEvent) {
249
- let eventValue = langGraphInterruptEvent(ev).value;
250
- eventValue = parseJson(eventValue, eventValue);
251
- setLangGraphInterruptAction(threadId, {
252
- event: __spreadProps(__spreadValues({}, langGraphInterruptEvent(ev)), {
253
- value: eventValue
254
- })
255
- });
256
- }
257
- if (ev.name === MetaEventName.CopilotKitLangGraphInterruptEvent) {
258
- const data = ev.data;
259
- rawMessagesResponse = [...rawMessagesResponse, ...data.messages];
260
- interruptMessages = convertGqlOutputToMessages(
261
- // @ts-ignore
262
- filterAdjacentAgentStateMessages(data.messages)
263
- );
264
- }
265
- });
266
- messages2 = convertGqlOutputToMessages(
267
- filterAdjacentAgentStateMessages(rawMessagesResponse)
268
- );
269
- newMessages = [];
270
- if (((_k = value.generateCopilotResponse.status) == null ? void 0 : _k.__typename) === "FailedResponseStatus" && value.generateCopilotResponse.status.reason === "GUARDRAILS_VALIDATION_FAILED") {
271
- const guardrailsReason = ((_l = value.generateCopilotResponse.status.details) == null ? void 0 : _l.guardrailsReason) || "";
272
- newMessages = [
273
- new TextMessage({
274
- role: MessageRole.Assistant,
275
- content: guardrailsReason
276
- })
277
- ];
278
- const guardrailsError = new CopilotKitError({
279
- message: `Guardrails validation failed: ${guardrailsReason}`,
280
- code: CopilotKitErrorCode.MISUSE
281
- });
282
- yield traceUIError(guardrailsError, {
283
- statusReason: value.generateCopilotResponse.status.reason,
284
- statusDetails: value.generateCopilotResponse.status.details
285
- });
286
- setMessages([...previousMessages, ...newMessages]);
287
- break;
288
- }
289
- if (((_m = value.generateCopilotResponse.status) == null ? void 0 : _m.__typename) === "FailedResponseStatus" && value.generateCopilotResponse.status.reason === "UNKNOWN_ERROR") {
290
- const errorMessage = ((_n = value.generateCopilotResponse.status.details) == null ? void 0 : _n.description) || "An unknown error occurred";
291
- const statusDetails = value.generateCopilotResponse.status.details;
292
- const originalError = (statusDetails == null ? void 0 : statusDetails.originalError) || (statusDetails == null ? void 0 : statusDetails.error);
293
- const originalCode = (originalError == null ? void 0 : originalError.code) || ((_o = originalError == null ? void 0 : originalError.extensions) == null ? void 0 : _o.code);
294
- const originalSeverity = (originalError == null ? void 0 : originalError.severity) || ((_p = originalError == null ? void 0 : originalError.extensions) == null ? void 0 : _p.severity);
295
- const originalVisibility = (originalError == null ? void 0 : originalError.visibility) || ((_q = originalError == null ? void 0 : originalError.extensions) == null ? void 0 : _q.visibility);
296
- let errorCode = CopilotKitErrorCode.NETWORK_ERROR;
297
- if (originalCode && Object.values(CopilotKitErrorCode).includes(originalCode)) {
298
- errorCode = originalCode;
299
- }
300
- const structuredError = new CopilotKitError({
301
- message: errorMessage,
302
- code: errorCode,
303
- severity: originalSeverity,
304
- visibility: originalVisibility
305
- });
306
- setBannerError(structuredError);
307
- yield traceUIError(structuredError, {
308
- statusReason: value.generateCopilotResponse.status.reason,
309
- statusDetails: value.generateCopilotResponse.status.details,
310
- originalErrorCode: originalCode,
311
- preservedStructure: !!originalCode
312
- });
313
- setIsLoading(false);
314
- throw new Error(structuredError.message);
315
- } else if (messages2.length > 0) {
316
- newMessages = [...messages2];
317
- for (const message of messages2) {
318
- if (message.isAgentStateMessage() && !message.active && !executedCoAgentStateRenders.includes(message.id) && onCoAgentStateRender) {
319
- if (guardrailsEnabled && value.generateCopilotResponse.status === void 0) {
320
- break;
321
- }
322
- yield onCoAgentStateRender({
323
- name: message.agentName,
324
- nodeName: message.nodeName,
325
- state: message.state
326
- });
327
- executedCoAgentStateRenders.push(message.id);
328
- }
329
- }
330
- const lastAgentStateMessage = [...messages2].reverse().find((message) => message.isAgentStateMessage());
331
- if (lastAgentStateMessage) {
332
- if (lastAgentStateMessage.state.messages && lastAgentStateMessage.state.messages.length > 0) {
333
- syncedMessages = loadMessagesFromJsonRepresentation(
334
- lastAgentStateMessage.state.messages
335
- );
336
- }
337
- setCoagentStatesWithRef((prevAgentStates) => {
338
- var _a2;
339
- return __spreadProps(__spreadValues({}, prevAgentStates), {
340
- [lastAgentStateMessage.agentName]: {
341
- name: lastAgentStateMessage.agentName,
342
- state: lastAgentStateMessage.state,
343
- running: lastAgentStateMessage.running,
344
- active: lastAgentStateMessage.active,
345
- threadId: lastAgentStateMessage.threadId,
346
- nodeName: lastAgentStateMessage.nodeName,
347
- runId: lastAgentStateMessage.runId,
348
- // Preserve existing config from previous state
349
- config: (_a2 = prevAgentStates[lastAgentStateMessage.agentName]) == null ? void 0 : _a2.config
350
- }
351
- });
352
- });
353
- if (lastAgentStateMessage.running) {
354
- setAgentSession({
355
- threadId: lastAgentStateMessage.threadId,
356
- agentName: lastAgentStateMessage.agentName,
357
- nodeName: lastAgentStateMessage.nodeName
358
- });
359
- } else {
360
- if (agentLock) {
361
- setAgentSession({
362
- threadId: randomId(),
363
- agentName: agentLock,
364
- nodeName: void 0
365
- });
366
- } else {
367
- setAgentSession(null);
368
- }
369
- }
370
- }
371
- }
372
- if (newMessages.length > 0) {
373
- setMessages([...previousMessages, ...newMessages]);
374
- }
375
- }
376
- let finalMessages = constructFinalMessages(
377
- [...syncedMessages, ...interruptMessages],
378
- previousMessages,
379
- newMessages
380
- );
381
- let didExecuteAction = false;
382
- const executeActionFromMessage = (currentAction, actionMessage) => __async(this, null, function* () {
383
- var _a2;
384
- const isInterruptAction = interruptMessages.find((m) => m.id === actionMessage.id);
385
- followUp = (_a2 = currentAction == null ? void 0 : currentAction.followUp) != null ? _a2 : !isInterruptAction;
386
- if (currentAction == null ? void 0 : currentAction._setActivatingMessageId) {
387
- currentAction._setActivatingMessageId(actionMessage.id);
388
- }
389
- const resultMessage = yield executeAction({
390
- onFunctionCall,
391
- message: actionMessage,
392
- chatAbortControllerRef,
393
- onError: (error) => {
394
- addErrorToast([error]);
395
- console.error(`Failed to execute action ${actionMessage.name}: ${error}`);
396
- },
397
- setMessages,
398
- getFinalMessages: () => finalMessages,
399
- isRenderAndWait: (currentAction == null ? void 0 : currentAction._isRenderAndWait) || false
400
- });
401
- didExecuteAction = true;
402
- const messageIndex = finalMessages.findIndex((msg) => msg.id === actionMessage.id);
403
- finalMessages.splice(messageIndex + 1, 0, resultMessage);
404
- if (currentAction == null ? void 0 : currentAction._isRenderAndWait) {
405
- const messagesForImmediateUpdate = [...finalMessages];
406
- flushSync(() => {
407
- setMessages(messagesForImmediateUpdate);
408
- });
409
- }
410
- if (currentAction == null ? void 0 : currentAction._setActivatingMessageId) {
411
- currentAction._setActivatingMessageId(null);
412
- }
413
- return resultMessage;
414
- });
415
- if (onFunctionCall) {
416
- const lastMessages = [];
417
- for (let i = finalMessages.length - 1; i >= 0; i--) {
418
- const message = finalMessages[i];
419
- if ((message.isActionExecutionMessage() || message.isResultMessage()) && message.status.code !== MessageStatusCode.Pending) {
420
- lastMessages.unshift(message);
421
- } else if (!message.isAgentStateMessage()) {
422
- break;
423
- }
424
- }
425
- for (const message of lastMessages) {
426
- setMessages(finalMessages);
427
- const action = actions.find(
428
- (action2) => action2.name === message.name
429
- );
430
- if (action && action.available === "frontend") {
431
- continue;
432
- }
433
- const currentResultMessagePairedFeAction = message.isResultMessage() ? getPairedFeAction(actions, message) : null;
434
- if (action && message.isActionExecutionMessage()) {
435
- const isRenderAndWaitAction = (action == null ? void 0 : action._isRenderAndWait) || false;
436
- const alreadyProcessed = isRenderAndWaitAction && finalMessages.some(
437
- (fm) => fm.isResultMessage() && fm.actionExecutionId === message.id
438
- );
439
- if (alreadyProcessed) {
440
- } else {
441
- const resultMessage = yield executeActionFromMessage(
442
- action,
443
- message
444
- );
445
- const pairedFeAction = getPairedFeAction(actions, resultMessage);
446
- if (pairedFeAction) {
447
- const newExecutionMessage = new ActionExecutionMessage({
448
- name: pairedFeAction.name,
449
- arguments: parseJson(resultMessage.result, resultMessage.result),
450
- status: message.status,
451
- createdAt: message.createdAt,
452
- parentMessageId: message.parentMessageId
453
- });
454
- yield executeActionFromMessage(pairedFeAction, newExecutionMessage);
455
- }
456
- }
457
- } else if (message.isResultMessage() && currentResultMessagePairedFeAction) {
458
- const newExecutionMessage = new ActionExecutionMessage({
459
- name: currentResultMessagePairedFeAction.name,
460
- arguments: parseJson(message.result, message.result),
461
- status: message.status,
462
- createdAt: message.createdAt
463
- });
464
- finalMessages.push(newExecutionMessage);
465
- yield executeActionFromMessage(
466
- currentResultMessagePairedFeAction,
467
- newExecutionMessage
468
- );
469
- }
470
- }
471
- setMessages(finalMessages);
472
- }
473
- if (followUp !== false && (didExecuteAction || // the last message is a server side result
474
- !isAgentRun && finalMessages.length && finalMessages[finalMessages.length - 1].isResultMessage()) && // the user did not stop generation
475
- !((_r = chatAbortControllerRef.current) == null ? void 0 : _r.signal.aborted)) {
476
- yield new Promise((resolve) => setTimeout(resolve, 10));
477
- return yield runChatCompletionRef.current(finalMessages);
478
- } else if ((_s = chatAbortControllerRef.current) == null ? void 0 : _s.signal.aborted) {
479
- const repairedMessages = finalMessages.filter((message, actionExecutionIndex) => {
480
- if (message.isActionExecutionMessage()) {
481
- return finalMessages.find(
482
- (msg, resultIndex) => msg.isResultMessage() && msg.actionExecutionId === message.id && resultIndex === actionExecutionIndex + 1
483
- );
484
- }
485
- return true;
486
- });
487
- const repairedMessageIds = repairedMessages.map((message) => message.id);
488
- setMessages(repairedMessages);
489
- if ((_t = agentSessionRef.current) == null ? void 0 : _t.nodeName) {
490
- setAgentSession({
491
- threadId: agentSessionRef.current.threadId,
492
- agentName: agentSessionRef.current.agentName,
493
- nodeName: "__end__"
494
- });
495
- }
496
- return newMessages.filter((message) => repairedMessageIds.includes(message.id));
497
- } else {
498
- return newMessages.slice();
499
- }
500
- } finally {
501
- setIsLoading(false);
502
- }
503
- }),
504
- [
505
- messages,
506
- setMessages,
507
- makeSystemMessageCallback,
508
- copilotConfig,
509
- setIsLoading,
510
- initialMessages,
511
- isLoading,
512
- actions,
513
- onFunctionCall,
514
- onCoAgentStateRender,
515
- setCoagentStatesWithRef,
516
- coagentStatesRef,
517
- agentSession,
518
- setAgentSession,
519
- disableSystemMessage,
520
- context
521
- ]
522
- );
523
- runChatCompletionRef.current = runChatCompletion;
524
- const runChatCompletionAndHandleFunctionCall = useAsyncCallback(
525
- (messages2) => __async(this, null, function* () {
526
- yield runChatCompletionRef.current(messages2);
527
- }),
528
- [messages]
529
- );
530
- useEffect(() => {
531
- if (!isLoading && pendingAppendsRef.current.length > 0) {
532
- const pending = pendingAppendsRef.current.splice(0);
533
- const followUp = pending.some((p) => p.followUp);
534
- const newMessages = [...messages, ...pending.map((p) => p.message)];
535
- setMessages(newMessages);
536
- if (followUp) {
537
- runChatCompletionAndHandleFunctionCall(newMessages);
538
- }
539
- }
540
- }, [isLoading, messages, setMessages, runChatCompletionAndHandleFunctionCall]);
541
- const composeAndFlushMetaEventsInput = useCallback(
542
- (metaEvents) => {
543
- return metaEvents.reduce((acc, event) => {
544
- if (!event)
545
- return acc;
546
- switch (event.name) {
547
- case MetaEventName.LangGraphInterruptEvent:
548
- if (event.response) {
549
- setLangGraphInterruptAction(threadId, null);
550
- const value = event.value;
551
- return [
552
- ...acc,
553
- {
554
- name: event.name,
555
- value: typeof value === "string" ? value : JSON.stringify(value),
556
- response: typeof event.response === "string" ? event.response : JSON.stringify(event.response)
557
- }
558
- ];
559
- }
560
- return acc;
561
- default:
562
- return acc;
563
- }
564
- }, []);
565
- },
566
- [setLangGraphInterruptAction]
567
- );
568
- const append = useAsyncCallback(
569
- (message, options2) => __async(this, null, function* () {
570
- var _a;
571
- const followUp = (_a = options2 == null ? void 0 : options2.followUp) != null ? _a : true;
572
- if (isLoading) {
573
- pendingAppendsRef.current.push({ message, followUp });
574
- return;
575
- }
576
- const newMessages = [...messages, message];
577
- setMessages(newMessages);
578
- if (followUp) {
579
- return runChatCompletionAndHandleFunctionCall(newMessages);
580
- }
581
- }),
582
- [isLoading, messages, setMessages, runChatCompletionAndHandleFunctionCall]
583
- );
584
- const reload = useAsyncCallback(
585
- (reloadMessageId) => __async(this, null, function* () {
586
- if (isLoading || messages.length === 0) {
587
- return;
588
- }
589
- const reloadMessageIndex = messages.findIndex((msg) => msg.id === reloadMessageId);
590
- if (reloadMessageIndex === -1) {
591
- console.warn(`Message with id ${reloadMessageId} not found`);
592
- return;
593
- }
594
- const reloadMessageRole = messages[reloadMessageIndex].role;
595
- if (reloadMessageRole !== MessageRole.Assistant) {
596
- console.warn(`Regenerate cannot be performed on ${reloadMessageRole} role`);
597
- return;
598
- }
599
- let historyCutoff = [messages[0]];
600
- if (messages.length > 2 && reloadMessageIndex !== 0) {
601
- const lastUserMessageBeforeRegenerate = messages.slice(0, reloadMessageIndex).reverse().find(
602
- (msg) => (
603
- // @ts-expect-error -- message has role
604
- msg.role === MessageRole.User
605
- )
606
- );
607
- const indexOfLastUserMessageBeforeRegenerate = messages.findIndex(
608
- (msg) => msg.id === lastUserMessageBeforeRegenerate.id
609
- );
610
- historyCutoff = messages.slice(0, indexOfLastUserMessageBeforeRegenerate + 1);
611
- } else if (messages.length > 2 && reloadMessageIndex === 0) {
612
- historyCutoff = [messages[0], messages[1]];
613
- }
614
- setMessages(historyCutoff);
615
- return runChatCompletionAndHandleFunctionCall(historyCutoff);
616
- }),
617
- [isLoading, messages, setMessages, runChatCompletionAndHandleFunctionCall]
618
- );
619
- const stop = () => {
620
- var _a;
621
- (_a = chatAbortControllerRef.current) == null ? void 0 : _a.abort("Stop was called");
622
- };
623
- return {
624
- append,
625
- reload,
626
- stop,
627
- runChatCompletion: () => runChatCompletionRef.current(messages)
628
- };
629
- }
630
- function constructFinalMessages(syncedMessages, previousMessages, newMessages) {
631
- const finalMessages = syncedMessages.length > 0 ? [...syncedMessages] : [...previousMessages, ...newMessages];
632
- if (syncedMessages.length > 0) {
633
- const messagesWithAgentState = [...previousMessages, ...newMessages];
634
- let previousMessageId = void 0;
635
- for (const message of messagesWithAgentState) {
636
- if (message.isAgentStateMessage()) {
637
- const index = finalMessages.findIndex((msg) => msg.id === previousMessageId);
638
- if (index !== -1) {
639
- finalMessages.splice(index + 1, 0, message);
640
- }
641
- }
642
- previousMessageId = message.id;
643
- }
644
- }
645
- return finalMessages;
646
- }
647
- function executeAction(_0) {
648
- return __async(this, arguments, function* ({
649
- onFunctionCall,
650
- message,
651
- chatAbortControllerRef,
652
- onError,
653
- setMessages,
654
- getFinalMessages,
655
- isRenderAndWait
656
- }) {
657
- let result;
658
- let error = null;
659
- const currentMessagesForHandler = getFinalMessages();
660
- const handlerReturnedPromise = onFunctionCall({
661
- messages: currentMessagesForHandler,
662
- name: message.name,
663
- args: message.arguments
664
- });
665
- if (isRenderAndWait) {
666
- const currentMessagesForRender = getFinalMessages();
667
- flushSync(() => {
668
- setMessages([...currentMessagesForRender]);
669
- });
670
- }
671
- try {
672
- result = yield Promise.race([
673
- handlerReturnedPromise,
674
- // Await the promise returned by the handler
675
- new Promise(
676
- (resolve) => {
677
- var _a;
678
- return (_a = chatAbortControllerRef.current) == null ? void 0 : _a.signal.addEventListener(
679
- "abort",
680
- () => resolve("Operation was aborted by the user")
681
- );
682
- }
683
- ),
684
- // if the user stopped generation, we also abort consecutive actions
685
- new Promise((resolve) => {
686
- var _a;
687
- if ((_a = chatAbortControllerRef.current) == null ? void 0 : _a.signal.aborted) {
688
- resolve("Operation was aborted by the user");
689
- }
690
- })
691
- ]);
692
- } catch (e) {
693
- onError(e);
694
- }
695
- return new ResultMessage({
696
- id: "result-" + message.id,
697
- result: ResultMessage.encodeResult(
698
- error ? {
699
- content: result,
700
- error: JSON.parse(JSON.stringify(error, Object.getOwnPropertyNames(error)))
701
- } : result
702
- ),
703
- actionExecutionId: message.id,
704
- actionName: message.name
705
- });
706
- });
707
- }
708
- function getPairedFeAction(actions, message) {
709
- let actionName = null;
710
- if (message.isActionExecutionMessage()) {
711
- actionName = message.name;
712
- } else if (message.isResultMessage()) {
713
- actionName = message.actionName;
714
- }
715
- return actions.find(
716
- (action) => action.name === actionName && action.available === "frontend" || action.pairedAction === actionName
717
- );
718
- }
719
-
720
- export {
721
- useChat
722
- };
723
- //# sourceMappingURL=chunk-OT5NHMEC.mjs.map