@copilotkit/react-core 1.51.4 → 1.51.5-next.1

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 (474) hide show
  1. package/.attw.json +3 -0
  2. package/CHANGELOG.md +21 -0
  3. package/dist/index.cjs +4010 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +1327 -0
  6. package/dist/index.d.cts.map +1 -0
  7. package/dist/index.d.mts +1327 -0
  8. package/dist/index.d.mts.map +1 -0
  9. package/dist/index.mjs +3944 -148
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/index.umd.js +4075 -39
  12. package/dist/index.umd.js.map +1 -1
  13. package/dist/v2/index.cjs +17 -0
  14. package/dist/v2/index.css +2 -3
  15. package/dist/v2/index.css.map +1 -1
  16. package/dist/v2/index.d.cts +2 -0
  17. package/dist/v2/index.d.mts +2 -0
  18. package/dist/v2/index.mjs +4 -5
  19. package/dist/v2/index.umd.js +24 -2
  20. package/package.json +22 -22
  21. package/src/components/copilot-provider/__tests__/copilotkit-error.test.tsx +3 -3
  22. package/src/hooks/__tests__/use-coagent-config.test.ts +23 -22
  23. package/src/hooks/__tests__/use-coagent-state-render.e2e.test.tsx +33 -35
  24. package/src/hooks/__tests__/use-coagent-state-render.test.tsx +19 -18
  25. package/src/hooks/__tests__/use-frontend-tool-available.test.tsx +72 -0
  26. package/src/hooks/__tests__/use-frontend-tool-remount.e2e.test.tsx +9 -7
  27. package/src/hooks/use-copilot-chat.ts +1 -1
  28. package/src/hooks/use-frontend-tool.ts +2 -1
  29. package/src/lib/copilot-task.ts +1 -1
  30. package/src/setupTests.ts +17 -16
  31. package/tsconfig.json +1 -1
  32. package/tsdown.config.ts +94 -0
  33. package/vitest.config.mjs +30 -0
  34. package/dist/chunk-2IDV5OHF.mjs +0 -11
  35. package/dist/chunk-2IDV5OHF.mjs.map +0 -1
  36. package/dist/chunk-2RSAYTXH.mjs +0 -137
  37. package/dist/chunk-2RSAYTXH.mjs.map +0 -1
  38. package/dist/chunk-36KQV2NA.mjs +0 -1
  39. package/dist/chunk-36KQV2NA.mjs.map +0 -1
  40. package/dist/chunk-3LZZ4RVM.mjs +0 -37
  41. package/dist/chunk-3LZZ4RVM.mjs.map +0 -1
  42. package/dist/chunk-4ZQYMC5F.mjs +0 -36
  43. package/dist/chunk-4ZQYMC5F.mjs.map +0 -1
  44. package/dist/chunk-6ABVYB2U.mjs +0 -95
  45. package/dist/chunk-6ABVYB2U.mjs.map +0 -1
  46. package/dist/chunk-6AWG5FWL.mjs +0 -102
  47. package/dist/chunk-6AWG5FWL.mjs.map +0 -1
  48. package/dist/chunk-6YOKPWQ7.mjs +0 -1
  49. package/dist/chunk-6YOKPWQ7.mjs.map +0 -1
  50. package/dist/chunk-7GIBHX6X.mjs +0 -195
  51. package/dist/chunk-7GIBHX6X.mjs.map +0 -1
  52. package/dist/chunk-7PJKPWMD.mjs +0 -112
  53. package/dist/chunk-7PJKPWMD.mjs.map +0 -1
  54. package/dist/chunk-7U3DNFBF.mjs +0 -20
  55. package/dist/chunk-7U3DNFBF.mjs.map +0 -1
  56. package/dist/chunk-A6NKSGH3.mjs +0 -1
  57. package/dist/chunk-A6NKSGH3.mjs.map +0 -1
  58. package/dist/chunk-AAGMWZCN.mjs +0 -439
  59. package/dist/chunk-AAGMWZCN.mjs.map +0 -1
  60. package/dist/chunk-C7HSVDHD.mjs +0 -116
  61. package/dist/chunk-C7HSVDHD.mjs.map +0 -1
  62. package/dist/chunk-CYDWEPFL.mjs +0 -1
  63. package/dist/chunk-CYDWEPFL.mjs.map +0 -1
  64. package/dist/chunk-CZT7JUIM.mjs +0 -153
  65. package/dist/chunk-CZT7JUIM.mjs.map +0 -1
  66. package/dist/chunk-DMLQZG75.mjs +0 -25
  67. package/dist/chunk-DMLQZG75.mjs.map +0 -1
  68. package/dist/chunk-FD6FGKYY.mjs +0 -1
  69. package/dist/chunk-FD6FGKYY.mjs.map +0 -1
  70. package/dist/chunk-G7SUZGGB.mjs +0 -126
  71. package/dist/chunk-G7SUZGGB.mjs.map +0 -1
  72. package/dist/chunk-GY3FQICF.mjs +0 -23
  73. package/dist/chunk-GY3FQICF.mjs.map +0 -1
  74. package/dist/chunk-I76HKHPJ.mjs +0 -32
  75. package/dist/chunk-I76HKHPJ.mjs.map +0 -1
  76. package/dist/chunk-ICIK2BSB.mjs +0 -17
  77. package/dist/chunk-ICIK2BSB.mjs.map +0 -1
  78. package/dist/chunk-IHMMKEFG.mjs +0 -64
  79. package/dist/chunk-IHMMKEFG.mjs.map +0 -1
  80. package/dist/chunk-JD7BAH7U.mjs +0 -1
  81. package/dist/chunk-JD7BAH7U.mjs.map +0 -1
  82. package/dist/chunk-K5OXUXCG.mjs +0 -76
  83. package/dist/chunk-K5OXUXCG.mjs.map +0 -1
  84. package/dist/chunk-L7GPCF2V.mjs +0 -229
  85. package/dist/chunk-L7GPCF2V.mjs.map +0 -1
  86. package/dist/chunk-LD34IXVT.mjs +0 -86
  87. package/dist/chunk-LD34IXVT.mjs.map +0 -1
  88. package/dist/chunk-LNGBARXE.mjs +0 -86
  89. package/dist/chunk-LNGBARXE.mjs.map +0 -1
  90. package/dist/chunk-LRPWSPXG.mjs +0 -628
  91. package/dist/chunk-LRPWSPXG.mjs.map +0 -1
  92. package/dist/chunk-LUGEI4YQ.mjs +0 -1
  93. package/dist/chunk-LUGEI4YQ.mjs.map +0 -1
  94. package/dist/chunk-MBJ7OLYI.mjs +0 -58
  95. package/dist/chunk-MBJ7OLYI.mjs.map +0 -1
  96. package/dist/chunk-NB2FKV2V.mjs +0 -1
  97. package/dist/chunk-NB2FKV2V.mjs.map +0 -1
  98. package/dist/chunk-O7ARI5CV.mjs +0 -31
  99. package/dist/chunk-O7ARI5CV.mjs.map +0 -1
  100. package/dist/chunk-P6ZPE4XJ.mjs +0 -86
  101. package/dist/chunk-P6ZPE4XJ.mjs.map +0 -1
  102. package/dist/chunk-QXZTCGF4.mjs +0 -163
  103. package/dist/chunk-QXZTCGF4.mjs.map +0 -1
  104. package/dist/chunk-R2DP4APC.mjs +0 -125
  105. package/dist/chunk-R2DP4APC.mjs.map +0 -1
  106. package/dist/chunk-R7BV32X4.mjs +0 -146
  107. package/dist/chunk-R7BV32X4.mjs.map +0 -1
  108. package/dist/chunk-SBRCWA4S.mjs +0 -913
  109. package/dist/chunk-SBRCWA4S.mjs.map +0 -1
  110. package/dist/chunk-SK2XMJUD.mjs +0 -42
  111. package/dist/chunk-SK2XMJUD.mjs.map +0 -1
  112. package/dist/chunk-SKC7AJIV.mjs +0 -61
  113. package/dist/chunk-SKC7AJIV.mjs.map +0 -1
  114. package/dist/chunk-SLM6CLAH.mjs +0 -195
  115. package/dist/chunk-SLM6CLAH.mjs.map +0 -1
  116. package/dist/chunk-SPCZTZCY.mjs +0 -1
  117. package/dist/chunk-SPCZTZCY.mjs.map +0 -1
  118. package/dist/chunk-SYGQHN3H.mjs +0 -27
  119. package/dist/chunk-SYGQHN3H.mjs.map +0 -1
  120. package/dist/chunk-SYMT73HM.mjs +0 -43
  121. package/dist/chunk-SYMT73HM.mjs.map +0 -1
  122. package/dist/chunk-TFZXOEY4.mjs +0 -61
  123. package/dist/chunk-TFZXOEY4.mjs.map +0 -1
  124. package/dist/chunk-TPN7WC53.mjs +0 -33
  125. package/dist/chunk-TPN7WC53.mjs.map +0 -1
  126. package/dist/chunk-UA23VX5J.mjs +0 -65
  127. package/dist/chunk-UA23VX5J.mjs.map +0 -1
  128. package/dist/chunk-V42VL2JR.mjs +0 -136
  129. package/dist/chunk-V42VL2JR.mjs.map +0 -1
  130. package/dist/chunk-VZ4NSOFQ.mjs +0 -80
  131. package/dist/chunk-VZ4NSOFQ.mjs.map +0 -1
  132. package/dist/chunk-WRALJIW5.mjs +0 -79
  133. package/dist/chunk-WRALJIW5.mjs.map +0 -1
  134. package/dist/chunk-WV2EA7SX.mjs +0 -65
  135. package/dist/chunk-WV2EA7SX.mjs.map +0 -1
  136. package/dist/chunk-Z6JV2LRY.mjs +0 -37
  137. package/dist/chunk-Z6JV2LRY.mjs.map +0 -1
  138. package/dist/chunk-ZP2IMXFY.mjs +0 -316
  139. package/dist/chunk-ZP2IMXFY.mjs.map +0 -1
  140. package/dist/chunk-ZVF5Q6IH.mjs +0 -29
  141. package/dist/chunk-ZVF5Q6IH.mjs.map +0 -1
  142. package/dist/components/CopilotListeners.d.ts +0 -3
  143. package/dist/components/CopilotListeners.js +0 -110
  144. package/dist/components/CopilotListeners.js.map +0 -1
  145. package/dist/components/CopilotListeners.mjs +0 -9
  146. package/dist/components/CopilotListeners.mjs.map +0 -1
  147. package/dist/components/copilot-provider/copilot-messages.d.ts +0 -24
  148. package/dist/components/copilot-provider/copilot-messages.js +0 -366
  149. package/dist/components/copilot-provider/copilot-messages.js.map +0 -1
  150. package/dist/components/copilot-provider/copilot-messages.mjs +0 -16
  151. package/dist/components/copilot-provider/copilot-messages.mjs.map +0 -1
  152. package/dist/components/copilot-provider/copilotkit-props.d.ts +0 -180
  153. package/dist/components/copilot-provider/copilotkit-props.js +0 -19
  154. package/dist/components/copilot-provider/copilotkit-props.js.map +0 -1
  155. package/dist/components/copilot-provider/copilotkit-props.mjs +0 -1
  156. package/dist/components/copilot-provider/copilotkit-props.mjs.map +0 -1
  157. package/dist/components/copilot-provider/copilotkit.d.ts +0 -19
  158. package/dist/components/copilot-provider/copilotkit.js +0 -2348
  159. package/dist/components/copilot-provider/copilotkit.js.map +0 -1
  160. package/dist/components/copilot-provider/copilotkit.mjs +0 -33
  161. package/dist/components/copilot-provider/copilotkit.mjs.map +0 -1
  162. package/dist/components/copilot-provider/index.d.ts +0 -14
  163. package/dist/components/copilot-provider/index.js +0 -2348
  164. package/dist/components/copilot-provider/index.js.map +0 -1
  165. package/dist/components/copilot-provider/index.mjs +0 -32
  166. package/dist/components/copilot-provider/index.mjs.map +0 -1
  167. package/dist/components/dev-console/console-trigger.d.ts +0 -8
  168. package/dist/components/dev-console/console-trigger.js +0 -1387
  169. package/dist/components/dev-console/console-trigger.js.map +0 -1
  170. package/dist/components/dev-console/console-trigger.mjs +0 -249
  171. package/dist/components/dev-console/console-trigger.mjs.map +0 -1
  172. package/dist/components/dev-console/developer-console-modal.d.ts +0 -10
  173. package/dist/components/dev-console/developer-console-modal.js +0 -1156
  174. package/dist/components/dev-console/developer-console-modal.js.map +0 -1
  175. package/dist/components/dev-console/developer-console-modal.mjs +0 -12
  176. package/dist/components/dev-console/developer-console-modal.mjs.map +0 -1
  177. package/dist/components/dev-console/icons.d.ts +0 -9
  178. package/dist/components/dev-console/icons.js +0 -140
  179. package/dist/components/dev-console/icons.js.map +0 -1
  180. package/dist/components/dev-console/icons.mjs +0 -16
  181. package/dist/components/dev-console/icons.mjs.map +0 -1
  182. package/dist/components/error-boundary/error-boundary.d.ts +0 -31
  183. package/dist/components/error-boundary/error-boundary.js +0 -507
  184. package/dist/components/error-boundary/error-boundary.js.map +0 -1
  185. package/dist/components/error-boundary/error-boundary.mjs +0 -15
  186. package/dist/components/error-boundary/error-boundary.mjs.map +0 -1
  187. package/dist/components/error-boundary/error-utils.d.ts +0 -11
  188. package/dist/components/error-boundary/error-utils.js +0 -190
  189. package/dist/components/error-boundary/error-utils.js.map +0 -1
  190. package/dist/components/error-boundary/error-utils.mjs +0 -14
  191. package/dist/components/error-boundary/error-utils.mjs.map +0 -1
  192. package/dist/components/index.d.ts +0 -14
  193. package/dist/components/index.js +0 -2348
  194. package/dist/components/index.js.map +0 -1
  195. package/dist/components/index.mjs +0 -33
  196. package/dist/components/index.mjs.map +0 -1
  197. package/dist/components/toast/exclamation-mark-icon.d.ts +0 -9
  198. package/dist/components/toast/exclamation-mark-icon.js +0 -55
  199. package/dist/components/toast/exclamation-mark-icon.js.map +0 -1
  200. package/dist/components/toast/exclamation-mark-icon.mjs +0 -8
  201. package/dist/components/toast/exclamation-mark-icon.mjs.map +0 -1
  202. package/dist/components/toast/toast-provider.d.ts +0 -27
  203. package/dist/components/toast/toast-provider.js +0 -353
  204. package/dist/components/toast/toast-provider.js.map +0 -1
  205. package/dist/components/toast/toast-provider.mjs +0 -10
  206. package/dist/components/toast/toast-provider.mjs.map +0 -1
  207. package/dist/components/usage-banner.d.ts +0 -29
  208. package/dist/components/usage-banner.js +0 -251
  209. package/dist/components/usage-banner.js.map +0 -1
  210. package/dist/components/usage-banner.mjs +0 -12
  211. package/dist/components/usage-banner.mjs.map +0 -1
  212. package/dist/context/coagent-state-renders-context.d.ts +0 -25
  213. package/dist/context/coagent-state-renders-context.js +0 -96
  214. package/dist/context/coagent-state-renders-context.js.map +0 -1
  215. package/dist/context/coagent-state-renders-context.mjs +0 -12
  216. package/dist/context/coagent-state-renders-context.mjs.map +0 -1
  217. package/dist/context/copilot-context.d.ts +0 -10
  218. package/dist/context/copilot-context.js +0 -167
  219. package/dist/context/copilot-context.js.map +0 -1
  220. package/dist/context/copilot-context.mjs +0 -10
  221. package/dist/context/copilot-context.mjs.map +0 -1
  222. package/dist/context/copilot-messages-context.d.ts +0 -18
  223. package/dist/context/copilot-messages-context.js +0 -60
  224. package/dist/context/copilot-messages-context.js.map +0 -1
  225. package/dist/context/copilot-messages-context.mjs +0 -10
  226. package/dist/context/copilot-messages-context.mjs.map +0 -1
  227. package/dist/context/index.d.ts +0 -15
  228. package/dist/context/index.js +0 -301
  229. package/dist/context/index.js.map +0 -1
  230. package/dist/context/index.mjs +0 -33
  231. package/dist/context/index.mjs.map +0 -1
  232. package/dist/context/threads-context.d.ts +0 -16
  233. package/dist/context/threads-context.js +0 -64
  234. package/dist/context/threads-context.js.map +0 -1
  235. package/dist/context/threads-context.mjs +0 -12
  236. package/dist/context/threads-context.mjs.map +0 -1
  237. package/dist/copilot-context-ec77e921.d.ts +0 -209
  238. package/dist/hooks/index.d.ts +0 -33
  239. package/dist/hooks/index.js +0 -2190
  240. package/dist/hooks/index.js.map +0 -1
  241. package/dist/hooks/index.mjs +0 -93
  242. package/dist/hooks/index.mjs.map +0 -1
  243. package/dist/hooks/use-agent-nodename.d.ts +0 -3
  244. package/dist/hooks/use-agent-nodename.js +0 -56
  245. package/dist/hooks/use-agent-nodename.js.map +0 -1
  246. package/dist/hooks/use-agent-nodename.mjs +0 -8
  247. package/dist/hooks/use-agent-nodename.mjs.map +0 -1
  248. package/dist/hooks/use-coagent-state-render-bridge.d.ts +0 -100
  249. package/dist/hooks/use-coagent-state-render-bridge.helpers.d.ts +0 -92
  250. package/dist/hooks/use-coagent-state-render-bridge.helpers.js +0 -237
  251. package/dist/hooks/use-coagent-state-render-bridge.helpers.js.map +0 -1
  252. package/dist/hooks/use-coagent-state-render-bridge.helpers.mjs +0 -24
  253. package/dist/hooks/use-coagent-state-render-bridge.helpers.mjs.map +0 -1
  254. package/dist/hooks/use-coagent-state-render-bridge.js +0 -498
  255. package/dist/hooks/use-coagent-state-render-bridge.js.map +0 -1
  256. package/dist/hooks/use-coagent-state-render-bridge.mjs +0 -17
  257. package/dist/hooks/use-coagent-state-render-bridge.mjs.map +0 -1
  258. package/dist/hooks/use-coagent-state-render-registry.d.ts +0 -25
  259. package/dist/hooks/use-coagent-state-render-registry.js +0 -369
  260. package/dist/hooks/use-coagent-state-render-registry.js.map +0 -1
  261. package/dist/hooks/use-coagent-state-render-registry.mjs +0 -9
  262. package/dist/hooks/use-coagent-state-render-registry.mjs.map +0 -1
  263. package/dist/hooks/use-coagent-state-render.d.ts +0 -55
  264. package/dist/hooks/use-coagent-state-render.js +0 -268
  265. package/dist/hooks/use-coagent-state-render.js.map +0 -1
  266. package/dist/hooks/use-coagent-state-render.mjs +0 -11
  267. package/dist/hooks/use-coagent-state-render.mjs.map +0 -1
  268. package/dist/hooks/use-coagent.d.ts +0 -192
  269. package/dist/hooks/use-coagent.js +0 -235
  270. package/dist/hooks/use-coagent.js.map +0 -1
  271. package/dist/hooks/use-coagent.mjs +0 -9
  272. package/dist/hooks/use-coagent.mjs.map +0 -1
  273. package/dist/hooks/use-configure-chat-suggestions.d.ts +0 -36
  274. package/dist/hooks/use-configure-chat-suggestions.js +0 -79
  275. package/dist/hooks/use-configure-chat-suggestions.js.map +0 -1
  276. package/dist/hooks/use-configure-chat-suggestions.mjs +0 -47
  277. package/dist/hooks/use-configure-chat-suggestions.mjs.map +0 -1
  278. package/dist/hooks/use-copilot-action.d.ts +0 -103
  279. package/dist/hooks/use-copilot-action.js +0 -302
  280. package/dist/hooks/use-copilot-action.js.map +0 -1
  281. package/dist/hooks/use-copilot-action.mjs +0 -11
  282. package/dist/hooks/use-copilot-action.mjs.map +0 -1
  283. package/dist/hooks/use-copilot-additional-instructions.d.ts +0 -26
  284. package/dist/hooks/use-copilot-additional-instructions.js +0 -196
  285. package/dist/hooks/use-copilot-additional-instructions.js.map +0 -1
  286. package/dist/hooks/use-copilot-additional-instructions.mjs +0 -9
  287. package/dist/hooks/use-copilot-additional-instructions.mjs.map +0 -1
  288. package/dist/hooks/use-copilot-authenticated-action.d.ts +0 -18
  289. package/dist/hooks/use-copilot-authenticated-action.js +0 -477
  290. package/dist/hooks/use-copilot-authenticated-action.js.map +0 -1
  291. package/dist/hooks/use-copilot-authenticated-action.mjs +0 -13
  292. package/dist/hooks/use-copilot-authenticated-action.mjs.map +0 -1
  293. package/dist/hooks/use-copilot-chat-headless_c.d.ts +0 -25
  294. package/dist/hooks/use-copilot-chat-headless_c.js +0 -1410
  295. package/dist/hooks/use-copilot-chat-headless_c.js.map +0 -1
  296. package/dist/hooks/use-copilot-chat-headless_c.mjs +0 -26
  297. package/dist/hooks/use-copilot-chat-headless_c.mjs.map +0 -1
  298. package/dist/hooks/use-copilot-chat-suggestions.d.ts +0 -35
  299. package/dist/hooks/use-copilot-chat-suggestions.js +0 -60
  300. package/dist/hooks/use-copilot-chat-suggestions.js.map +0 -1
  301. package/dist/hooks/use-copilot-chat-suggestions.mjs +0 -8
  302. package/dist/hooks/use-copilot-chat-suggestions.mjs.map +0 -1
  303. package/dist/hooks/use-copilot-chat.d.ts +0 -92
  304. package/dist/hooks/use-copilot-chat.js +0 -1344
  305. package/dist/hooks/use-copilot-chat.js.map +0 -1
  306. package/dist/hooks/use-copilot-chat.mjs +0 -23
  307. package/dist/hooks/use-copilot-chat.mjs.map +0 -1
  308. package/dist/hooks/use-copilot-chat_internal.d.ts +0 -244
  309. package/dist/hooks/use-copilot-chat_internal.js +0 -1342
  310. package/dist/hooks/use-copilot-chat_internal.js.map +0 -1
  311. package/dist/hooks/use-copilot-chat_internal.mjs +0 -24
  312. package/dist/hooks/use-copilot-chat_internal.mjs.map +0 -1
  313. package/dist/hooks/use-copilot-readable.d.ts +0 -37
  314. package/dist/hooks/use-copilot-readable.js +0 -61
  315. package/dist/hooks/use-copilot-readable.js.map +0 -1
  316. package/dist/hooks/use-copilot-readable.mjs +0 -8
  317. package/dist/hooks/use-copilot-readable.mjs.map +0 -1
  318. package/dist/hooks/use-copilot-runtime-client.d.ts +0 -10
  319. package/dist/hooks/use-copilot-runtime-client.js +0 -206
  320. package/dist/hooks/use-copilot-runtime-client.js.map +0 -1
  321. package/dist/hooks/use-copilot-runtime-client.mjs +0 -9
  322. package/dist/hooks/use-copilot-runtime-client.mjs.map +0 -1
  323. package/dist/hooks/use-default-tool.d.ts +0 -8
  324. package/dist/hooks/use-default-tool.js +0 -312
  325. package/dist/hooks/use-default-tool.js.map +0 -1
  326. package/dist/hooks/use-default-tool.mjs +0 -12
  327. package/dist/hooks/use-default-tool.mjs.map +0 -1
  328. package/dist/hooks/use-flat-category-store.d.ts +0 -9
  329. package/dist/hooks/use-flat-category-store.js +0 -96
  330. package/dist/hooks/use-flat-category-store.js.map +0 -1
  331. package/dist/hooks/use-flat-category-store.mjs +0 -8
  332. package/dist/hooks/use-flat-category-store.mjs.map +0 -1
  333. package/dist/hooks/use-frontend-tool.d.ts +0 -11
  334. package/dist/hooks/use-frontend-tool.js +0 -107
  335. package/dist/hooks/use-frontend-tool.js.map +0 -1
  336. package/dist/hooks/use-frontend-tool.mjs +0 -8
  337. package/dist/hooks/use-frontend-tool.mjs.map +0 -1
  338. package/dist/hooks/use-human-in-the-loop.d.ts +0 -13
  339. package/dist/hooks/use-human-in-the-loop.js +0 -122
  340. package/dist/hooks/use-human-in-the-loop.js.map +0 -1
  341. package/dist/hooks/use-human-in-the-loop.mjs +0 -8
  342. package/dist/hooks/use-human-in-the-loop.mjs.map +0 -1
  343. package/dist/hooks/use-langgraph-interrupt-render.d.ts +0 -6
  344. package/dist/hooks/use-langgraph-interrupt-render.js +0 -335
  345. package/dist/hooks/use-langgraph-interrupt-render.js.map +0 -1
  346. package/dist/hooks/use-langgraph-interrupt-render.mjs +0 -14
  347. package/dist/hooks/use-langgraph-interrupt-render.mjs.map +0 -1
  348. package/dist/hooks/use-langgraph-interrupt.d.ts +0 -14
  349. package/dist/hooks/use-langgraph-interrupt.js +0 -216
  350. package/dist/hooks/use-langgraph-interrupt.js.map +0 -1
  351. package/dist/hooks/use-langgraph-interrupt.mjs +0 -10
  352. package/dist/hooks/use-langgraph-interrupt.mjs.map +0 -1
  353. package/dist/hooks/use-lazy-tool-renderer.d.ts +0 -6
  354. package/dist/hooks/use-lazy-tool-renderer.js +0 -53
  355. package/dist/hooks/use-lazy-tool-renderer.js.map +0 -1
  356. package/dist/hooks/use-lazy-tool-renderer.mjs +0 -8
  357. package/dist/hooks/use-lazy-tool-renderer.mjs.map +0 -1
  358. package/dist/hooks/use-make-copilot-document-readable.d.ts +0 -12
  359. package/dist/hooks/use-make-copilot-document-readable.js +0 -182
  360. package/dist/hooks/use-make-copilot-document-readable.js.map +0 -1
  361. package/dist/hooks/use-make-copilot-document-readable.mjs +0 -9
  362. package/dist/hooks/use-make-copilot-document-readable.mjs.map +0 -1
  363. package/dist/hooks/use-render-tool-call.d.ts +0 -12
  364. package/dist/hooks/use-render-tool-call.js +0 -94
  365. package/dist/hooks/use-render-tool-call.js.map +0 -1
  366. package/dist/hooks/use-render-tool-call.mjs +0 -8
  367. package/dist/hooks/use-render-tool-call.mjs.map +0 -1
  368. package/dist/hooks/use-tree.d.ts +0 -19
  369. package/dist/hooks/use-tree.js +0 -178
  370. package/dist/hooks/use-tree.js.map +0 -1
  371. package/dist/hooks/use-tree.mjs +0 -8
  372. package/dist/hooks/use-tree.mjs.map +0 -1
  373. package/dist/index.d.ts +0 -43
  374. package/dist/index.js +0 -4064
  375. package/dist/index.js.map +0 -1
  376. package/dist/lib/copilot-task.d.ts +0 -97
  377. package/dist/lib/copilot-task.js +0 -201
  378. package/dist/lib/copilot-task.js.map +0 -1
  379. package/dist/lib/copilot-task.mjs +0 -33
  380. package/dist/lib/copilot-task.mjs.map +0 -1
  381. package/dist/lib/index.d.ts +0 -11
  382. package/dist/lib/index.js +0 -203
  383. package/dist/lib/index.js.map +0 -1
  384. package/dist/lib/index.mjs +0 -34
  385. package/dist/lib/index.mjs.map +0 -1
  386. package/dist/lib/status-checker.d.ts +0 -17
  387. package/dist/lib/status-checker.js +0 -102
  388. package/dist/lib/status-checker.js.map +0 -1
  389. package/dist/lib/status-checker.mjs +0 -8
  390. package/dist/lib/status-checker.mjs.map +0 -1
  391. package/dist/setupTests.d.ts +0 -2
  392. package/dist/setupTests.js +0 -31
  393. package/dist/setupTests.js.map +0 -1
  394. package/dist/setupTests.mjs +0 -29
  395. package/dist/setupTests.mjs.map +0 -1
  396. package/dist/test-helpers/copilot-context.d.ts +0 -14
  397. package/dist/test-helpers/copilot-context.js +0 -128
  398. package/dist/test-helpers/copilot-context.js.map +0 -1
  399. package/dist/test-helpers/copilot-context.mjs +0 -74
  400. package/dist/test-helpers/copilot-context.mjs.map +0 -1
  401. package/dist/types/chat-suggestion-configuration.d.ts +0 -22
  402. package/dist/types/chat-suggestion-configuration.js +0 -19
  403. package/dist/types/chat-suggestion-configuration.js.map +0 -1
  404. package/dist/types/chat-suggestion-configuration.mjs +0 -1
  405. package/dist/types/chat-suggestion-configuration.mjs.map +0 -1
  406. package/dist/types/coagent-action.d.ts +0 -29
  407. package/dist/types/coagent-action.js +0 -19
  408. package/dist/types/coagent-action.js.map +0 -1
  409. package/dist/types/coagent-action.mjs +0 -1
  410. package/dist/types/coagent-action.mjs.map +0 -1
  411. package/dist/types/coagent-state.d.ts +0 -15
  412. package/dist/types/coagent-state.js +0 -19
  413. package/dist/types/coagent-state.js.map +0 -1
  414. package/dist/types/coagent-state.mjs +0 -1
  415. package/dist/types/coagent-state.mjs.map +0 -1
  416. package/dist/types/crew.d.ts +0 -79
  417. package/dist/types/crew.js +0 -19
  418. package/dist/types/crew.js.map +0 -1
  419. package/dist/types/crew.mjs +0 -2
  420. package/dist/types/crew.mjs.map +0 -1
  421. package/dist/types/document-pointer.d.ts +0 -9
  422. package/dist/types/document-pointer.js +0 -19
  423. package/dist/types/document-pointer.js.map +0 -1
  424. package/dist/types/document-pointer.mjs +0 -1
  425. package/dist/types/document-pointer.mjs.map +0 -1
  426. package/dist/types/frontend-action.d.ts +0 -127
  427. package/dist/types/frontend-action.js +0 -55
  428. package/dist/types/frontend-action.js.map +0 -1
  429. package/dist/types/frontend-action.mjs +0 -8
  430. package/dist/types/frontend-action.mjs.map +0 -1
  431. package/dist/types/index.d.ts +0 -12
  432. package/dist/types/index.js +0 -19
  433. package/dist/types/index.js.map +0 -1
  434. package/dist/types/index.mjs +0 -4
  435. package/dist/types/index.mjs.map +0 -1
  436. package/dist/types/interrupt-action.d.ts +0 -10
  437. package/dist/types/interrupt-action.js +0 -19
  438. package/dist/types/interrupt-action.js.map +0 -1
  439. package/dist/types/interrupt-action.mjs +0 -2
  440. package/dist/types/interrupt-action.mjs.map +0 -1
  441. package/dist/types/system-message.d.ts +0 -3
  442. package/dist/types/system-message.js +0 -19
  443. package/dist/types/system-message.js.map +0 -1
  444. package/dist/types/system-message.mjs +0 -1
  445. package/dist/types/system-message.mjs.map +0 -1
  446. package/dist/utils/dev-console.d.ts +0 -3
  447. package/dist/utils/dev-console.js +0 -41
  448. package/dist/utils/dev-console.js.map +0 -1
  449. package/dist/utils/dev-console.mjs +0 -8
  450. package/dist/utils/dev-console.mjs.map +0 -1
  451. package/dist/utils/index.d.ts +0 -2
  452. package/dist/utils/index.js +0 -52
  453. package/dist/utils/index.js.map +0 -1
  454. package/dist/utils/index.mjs +0 -13
  455. package/dist/utils/index.mjs.map +0 -1
  456. package/dist/utils/suggestions-constants.d.ts +0 -9
  457. package/dist/utils/suggestions-constants.js +0 -35
  458. package/dist/utils/suggestions-constants.js.map +0 -1
  459. package/dist/utils/suggestions-constants.mjs +0 -8
  460. package/dist/utils/suggestions-constants.mjs.map +0 -1
  461. package/dist/utils/utils.d.ts +0 -2
  462. package/dist/utils/utils.js +0 -19
  463. package/dist/utils/utils.js.map +0 -1
  464. package/dist/utils/utils.mjs +0 -1
  465. package/dist/utils/utils.mjs.map +0 -1
  466. package/dist/v2/index.d.ts +0 -2
  467. package/dist/v2/index.js +0 -27
  468. package/dist/v2/index.js.map +0 -1
  469. package/dist/v2/index.mjs.map +0 -1
  470. package/dist/v2/index.umd.js.map +0 -1
  471. package/jest.config.js +0 -26
  472. package/rollup.config.mjs +0 -92
  473. package/src/__mocks__/analytics-node.js +0 -9
  474. package/tsup.config.ts +0 -16
@@ -0,0 +1,17 @@
1
+
2
+
3
+ var _copilotkitnext_core = require("@copilotkitnext/core");
4
+ Object.keys(_copilotkitnext_core).forEach(function (k) {
5
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
6
+ enumerable: true,
7
+ get: function () { return _copilotkitnext_core[k]; }
8
+ });
9
+ });
10
+
11
+ var _copilotkitnext_react = require("@copilotkitnext/react");
12
+ Object.keys(_copilotkitnext_react).forEach(function (k) {
13
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
14
+ enumerable: true,
15
+ get: function () { return _copilotkitnext_react[k]; }
16
+ });
17
+ });
package/dist/v2/index.css CHANGED
@@ -1,4 +1,3 @@
1
- @import "@copilotkitnext/react/styles.css";
2
1
 
3
- /* src/v2/index.css */
4
- /*# sourceMappingURL=index.css.map */
2
+
3
+ /*# sourceMappingURL=index.css.map*/
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"index.css","names":[],"sources":["../../src/v2/index.css"],"sourcesContent":["@import \"@copilotkitnext/react/styles.css\";"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from "@copilotkitnext/react";
2
+ export * from "@copilotkitnext/core";
@@ -0,0 +1,2 @@
1
+ export * from "@copilotkitnext/react";
2
+ export * from "@copilotkitnext/core";
package/dist/v2/index.mjs CHANGED
@@ -1,6 +1,5 @@
1
- import "../chunk-SKC7AJIV.mjs";
1
+ export * from "@copilotkitnext/react"
2
2
 
3
- // src/v2/index.ts
4
- export * from "@copilotkitnext/core";
5
- export * from "@copilotkitnext/react";
6
- //# sourceMappingURL=index.mjs.map
3
+ export * from "@copilotkitnext/core"
4
+
5
+ export { };
@@ -1,2 +1,24 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@copilotkitnext/core"),require("@copilotkitnext/react")):"function"==typeof define&&define.amd?define(["exports","@copilotkitnext/core","@copilotkitnext/react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).CopilotKitReactCoreV2={},e.CopilotKitNextCore,e.CopilotKitNextReact)}(this,function(e,t,o){"use strict";!function(e,t){void 0===t&&(t={});var o=t.insertAt;if("undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===o&&i.firstChild?i.insertBefore(n,i.firstChild):i.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}('@import "@copilotkitnext/react/styles.css";'),Object.keys(t).forEach(function(o){"default"===o||Object.prototype.hasOwnProperty.call(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[o]}})}),Object.keys(o).forEach(function(t){"default"===t||Object.prototype.hasOwnProperty.call(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})})});
2
- //# sourceMappingURL=index.umd.js.map
1
+ (function(factory) {
2
+
3
+ typeof define === 'function' && define.amd ? define([], factory) :
4
+ factory();
5
+ })(function() {
6
+
7
+
8
+ var _copilotkitnext_core = require("@copilotkitnext/core");
9
+ Object.keys(_copilotkitnext_core).forEach(function (k) {
10
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
11
+ enumerable: true,
12
+ get: function () { return _copilotkitnext_core[k]; }
13
+ });
14
+ });
15
+
16
+ var _copilotkitnext_react = require("@copilotkitnext/react");
17
+ Object.keys(_copilotkitnext_react).forEach(function (k) {
18
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
19
+ enumerable: true,
20
+ get: function () { return _copilotkitnext_react[k]; }
21
+ });
22
+ });
23
+
24
+ });
package/package.json CHANGED
@@ -6,31 +6,31 @@
6
6
  "type": "git",
7
7
  "url": "https://github.com/CopilotKit/CopilotKit.git"
8
8
  },
9
+ "type": "module",
9
10
  "publishConfig": {
10
11
  "access": "public"
11
12
  },
12
- "version": "1.51.4",
13
+ "version": "1.51.5-next.1",
13
14
  "sideEffects": [
14
15
  "**/*.css"
15
16
  ],
16
- "main": "./dist/index.js",
17
+ "main": "./dist/index.cjs",
17
18
  "module": "./dist/index.mjs",
18
19
  "exports": {
19
20
  ".": {
20
21
  "import": "./dist/index.mjs",
21
- "require": "./dist/index.js",
22
- "types": "./dist/index.d.ts"
22
+ "require": "./dist/index.cjs"
23
23
  },
24
24
  "./v2": {
25
25
  "import": "./dist/v2/index.mjs",
26
- "require": "./dist/v2/index.js",
27
- "types": "./dist/v2/index.d.ts"
26
+ "require": "./dist/v2/index.cjs"
28
27
  },
28
+ "./package.json": "./package.json",
29
29
  "./v2/styles.css": "./dist/v2/index.css"
30
30
  },
31
31
  "unpkg": "./dist/index.umd.js",
32
32
  "jsdelivr": "./dist/index.umd.js",
33
- "types": "./dist/index.d.ts",
33
+ "types": "./dist/index.d.cts",
34
34
  "license": "MIT",
35
35
  "peerDependencies": {
36
36
  "react": "^18 || ^19 || ^19.0.0-rc",
@@ -40,31 +40,28 @@
40
40
  "devDependencies": {
41
41
  "@testing-library/react": "^16.3.0",
42
42
  "@testing-library/react-hooks": "^8.0.1",
43
- "@types/jest": "^29.5.4",
44
43
  "@types/react": "^19.1.0",
45
44
  "@types/react-dom": "^19.0.2",
46
45
  "eslint": "^8.56.0",
47
- "identity-obj-proxy": "^3.0.0",
48
- "jest": "^29.6.4",
49
- "jest-environment-jsdom": "^30.0.2",
46
+ "jsdom": "^26.1.0",
50
47
  "react": "^19.1.0",
51
48
  "react-dom": "^19.2.0",
52
- "ts-jest": "^29.1.1",
53
- "tsup": "^6.7.0",
49
+ "vitest": "^3.2.4",
50
+ "tsdown": "^0.20.3",
54
51
  "typescript": "^5.2.3",
55
52
  "zod": ">=3.0.0",
56
53
  "eslint-config-custom": "1.4.8",
57
54
  "tsconfig": "1.4.8"
58
55
  },
59
56
  "dependencies": {
60
- "@ag-ui/client": "^0.0.43",
57
+ "@ag-ui/client": "^0.0.45",
61
58
  "@scarf/scarf": "^1.3.0",
62
59
  "react-markdown": "^8.0.7",
63
60
  "untruncate-json": "^0.0.1",
64
- "@copilotkit/runtime-client-gql": "1.51.4",
65
- "@copilotkit/shared": "1.51.4",
66
- "@copilotkitnext/core": "1.51.4",
67
- "@copilotkitnext/react": "1.51.4"
61
+ "@copilotkit/runtime-client-gql": "1.51.5-next.1",
62
+ "@copilotkit/shared": "1.51.5-next.1",
63
+ "@copilotkitnext/core": "1.51.5-next.1",
64
+ "@copilotkitnext/react": "1.51.5-next.1"
68
65
  },
69
66
  "keywords": [
70
67
  "copilotkit",
@@ -79,11 +76,14 @@
79
76
  "textarea"
80
77
  ],
81
78
  "scripts": {
82
- "build": "tsup --clean && rollup -c rollup.config.mjs",
83
- "dev": "tsup --watch",
84
- "test": "jest",
79
+ "build": "tsdown",
80
+ "dev": "tsdown --watch",
81
+ "test": "vitest run",
82
+ "test:watch": "vitest",
85
83
  "check-types": "tsc --noEmit",
86
84
  "link:global": "pnpm link --global",
87
- "unlink:global": "pnpm unlink --global"
85
+ "unlink:global": "pnpm unlink --global",
86
+ "publint": "publint .",
87
+ "attw": "attw --pack . --profile node16"
88
88
  }
89
89
  }
@@ -1,11 +1,11 @@
1
- /// <reference types="jest" />
1
+ import { vi, type Mock } from "vitest";
2
2
  import { CopilotErrorEvent, CopilotErrorHandler } from "@copilotkit/shared";
3
3
 
4
4
  describe("CopilotKit onError types", () => {
5
- let mockError: jest.Mock;
5
+ let mockError: Mock;
6
6
 
7
7
  beforeEach(() => {
8
- mockError = jest.fn();
8
+ mockError = vi.fn();
9
9
  });
10
10
 
11
11
  describe("onError type checking", () => {
@@ -1,13 +1,14 @@
1
+ import { vi } from "vitest";
1
2
  import { renderHook, waitFor } from "@testing-library/react";
2
3
  import { useCoAgent } from "../use-coagent";
3
4
  import type { AgentSubscriber } from "@ag-ui/client";
4
5
 
5
6
  // Mock functions for @copilotkitnext/react
6
- const mockSetState = jest.fn();
7
- const mockRunAgent = jest.fn();
8
- const mockAbortRun = jest.fn();
9
- const mockSubscribe = jest.fn();
10
- const mockSetProperties = jest.fn();
7
+ const mockSetState = vi.fn();
8
+ const mockRunAgent = vi.fn();
9
+ const mockAbortRun = vi.fn();
10
+ const mockSubscribe = vi.fn();
11
+ const mockSetProperties = vi.fn();
11
12
 
12
13
  // Store the last subscriber for triggering events
13
14
  let lastSubscriber: AgentSubscriber | null = null;
@@ -23,14 +24,14 @@ const mockAgent = {
23
24
  subscribe: mockSubscribe.mockImplementation((subscriber: AgentSubscriber) => {
24
25
  lastSubscriber = subscriber;
25
26
  return {
26
- unsubscribe: jest.fn(),
27
+ unsubscribe: vi.fn(),
27
28
  };
28
29
  }),
29
30
  };
30
31
 
31
- jest.mock("@copilotkitnext/react", () => ({
32
- useAgent: jest.fn(() => ({ agent: mockAgent })),
33
- useCopilotKit: jest.fn(() => ({
32
+ vi.mock("@copilotkitnext/react", () => ({
33
+ useAgent: vi.fn(() => ({ agent: mockAgent })),
34
+ useCopilotKit: vi.fn(() => ({
34
35
  copilotkit: {
35
36
  setProperties: mockSetProperties,
36
37
  },
@@ -38,26 +39,26 @@ jest.mock("@copilotkitnext/react", () => ({
38
39
  }));
39
40
 
40
41
  // Mock other dependencies
41
- const mockAppendMessage = jest.fn();
42
- const mockRunChatCompletion = jest.fn();
42
+ const mockAppendMessage = vi.fn();
43
+ const mockRunChatCompletion = vi.fn();
43
44
 
44
- jest.mock("../use-copilot-chat_internal", () => ({
45
+ vi.mock("../use-copilot-chat_internal", () => ({
45
46
  useCopilotChat: () => ({
46
47
  appendMessage: mockAppendMessage,
47
48
  runChatCompletion: mockRunChatCompletion,
48
49
  }),
49
50
  }));
50
51
 
51
- jest.mock("../use-copilot-runtime-client", () => ({
52
+ vi.mock("../use-copilot-runtime-client", () => ({
52
53
  useCopilotRuntimeClient: () => ({
53
- loadAgentState: jest.fn().mockResolvedValue({
54
+ loadAgentState: vi.fn().mockResolvedValue({
54
55
  data: { loadAgentState: { state: "{}", threadExists: false } },
55
56
  error: null,
56
57
  }),
57
58
  }),
58
59
  }));
59
60
 
60
- jest.mock("../../context", () => ({
61
+ vi.mock("../../context", () => ({
61
62
  useCopilotContext: () => ({
62
63
  availableAgents: [],
63
64
  coagentStates: {},
@@ -75,26 +76,26 @@ jest.mock("../../context", () => ({
75
76
  }),
76
77
  }));
77
78
 
78
- jest.mock("../../components/toast/toast-provider", () => ({
79
+ vi.mock("../../components/toast/toast-provider", () => ({
79
80
  useToast: () => ({
80
- setBannerError: jest.fn(),
81
+ setBannerError: vi.fn(),
81
82
  }),
82
83
  }));
83
84
 
84
- jest.mock("../../components/error-boundary/error-utils", () => ({
85
+ vi.mock("../../components/error-boundary/error-utils", () => ({
85
86
  useAsyncCallback: (fn: any) => fn,
86
87
  }));
87
88
 
88
- jest.mock("../../components/copilot-provider/copilot-messages", () => ({
89
+ vi.mock("../../components/copilot-provider/copilot-messages", () => ({
89
90
  useMessagesTap: () => ({
90
- getMessagesFromTap: jest.fn(() => []),
91
- updateTapMessages: jest.fn(),
91
+ getMessagesFromTap: vi.fn(() => []),
92
+ updateTapMessages: vi.fn(),
92
93
  }),
93
94
  }));
94
95
 
95
96
  describe("useCoAgent config synchronization", () => {
96
97
  beforeEach(() => {
97
- jest.clearAllMocks();
98
+ vi.clearAllMocks();
98
99
  lastSubscriber = null;
99
100
  });
100
101
 
@@ -1,3 +1,4 @@
1
+ import { vi } from "vitest";
1
2
  import React from "react";
2
3
  import { act, render, screen, waitFor, within } from "@testing-library/react";
3
4
  import { useCoAgentStateRender } from "../use-coagent-state-render";
@@ -10,6 +11,7 @@ import {
10
11
  } from "../../context";
11
12
  import type { Claim } from "../use-coagent-state-render-bridge.helpers";
12
13
  import { createTestCopilotContext } from "../../test-helpers/copilot-context";
14
+ import { useRenderCustomMessages } from "@copilotkitnext/react";
13
15
 
14
16
  type TestMessage = {
15
17
  id: string;
@@ -27,50 +29,50 @@ const mockAgent = {
27
29
  messages: [] as TestMessage[],
28
30
  state: {},
29
31
  isRunning: true,
30
- subscribe: jest.fn(),
31
- setMessages: jest.fn(),
32
- setState: jest.fn(),
33
- addMessage: jest.fn(),
34
- abortRun: jest.fn(),
35
- runAgent: jest.fn(),
32
+ subscribe: vi.fn(),
33
+ setMessages: vi.fn(),
34
+ setState: vi.fn(),
35
+ addMessage: vi.fn(),
36
+ abortRun: vi.fn(),
37
+ runAgent: vi.fn(),
36
38
  };
37
39
 
38
40
  let lastSubscriber: TestAgentSubscriber | null = null;
39
41
 
40
- jest.mock("@copilotkitnext/react", () => ({
41
- useAgent: jest.fn(() => ({ agent: mockAgent })),
42
- useCopilotKit: jest.fn(() => ({
42
+ vi.mock("@copilotkitnext/react", () => ({
43
+ useAgent: vi.fn(() => ({ agent: mockAgent })),
44
+ useCopilotKit: vi.fn(() => ({
43
45
  copilotkit: {
44
- connectAgent: jest.fn(),
45
- getRunIdForMessage: jest.fn(),
46
- runAgent: jest.fn(),
47
- clearSuggestions: jest.fn(),
48
- addSuggestionsConfig: jest.fn(),
49
- reloadSuggestions: jest.fn(),
46
+ connectAgent: vi.fn(),
47
+ getRunIdForMessage: vi.fn(),
48
+ runAgent: vi.fn(),
49
+ clearSuggestions: vi.fn(),
50
+ addSuggestionsConfig: vi.fn(),
51
+ reloadSuggestions: vi.fn(),
50
52
  },
51
53
  })),
52
- useCopilotChatConfiguration: jest.fn(() => ({ agentId: "test-agent" })),
53
- useRenderCustomMessages: jest.fn(() => undefined),
54
- useSuggestions: jest.fn(() => ({ suggestions: [], isLoading: false })),
54
+ useCopilotChatConfiguration: vi.fn(() => ({ agentId: "test-agent" })),
55
+ useRenderCustomMessages: vi.fn(() => undefined),
56
+ useSuggestions: vi.fn(() => ({ suggestions: [], isLoading: false })),
55
57
  }));
56
58
 
57
- jest.mock("../../components/toast/toast-provider", () => ({
59
+ vi.mock("../../components/toast/toast-provider", () => ({
58
60
  useToast: () => ({
59
- setBannerError: jest.fn(),
60
- addToast: jest.fn(),
61
+ setBannerError: vi.fn(),
62
+ addToast: vi.fn(),
61
63
  }),
62
64
  }));
63
65
 
64
- jest.mock("../../components/error-boundary/error-utils", () => ({
66
+ vi.mock("../../components/error-boundary/error-utils", () => ({
65
67
  useAsyncCallback: <T extends (...args: unknown[]) => unknown>(fn: T) => fn,
66
68
  }));
67
69
 
68
- jest.mock("../use-langgraph-interrupt-render", () => ({
69
- useLangGraphInterruptRender: jest.fn(() => null),
70
+ vi.mock("../use-langgraph-interrupt-render", () => ({
71
+ useLangGraphInterruptRender: vi.fn(() => null),
70
72
  }));
71
73
 
72
- jest.mock("../use-lazy-tool-renderer", () => ({
73
- useLazyToolRenderer: jest.fn(() => () => null),
74
+ vi.mock("../use-lazy-tool-renderer", () => ({
75
+ useLazyToolRenderer: vi.fn(() => () => null),
74
76
  }));
75
77
 
76
78
  function TestHarness({ snapshot }: { snapshot: string }) {
@@ -247,7 +249,7 @@ describe("useCoAgentStateRender", () => {
247
249
  mockAgent.subscribe.mockImplementation(
248
250
  (subscriber: TestAgentSubscriber) => {
249
251
  lastSubscriber = subscriber;
250
- return { unsubscribe: jest.fn() };
252
+ return { unsubscribe: vi.fn() };
251
253
  },
252
254
  );
253
255
  });
@@ -474,10 +476,7 @@ describe("useCoAgentStateRender", () => {
474
476
  });
475
477
 
476
478
  it("falls back to legacy renderer when renderCustomMessages throws", async () => {
477
- const { useRenderCustomMessages } = jest.requireMock(
478
- "@copilotkitnext/react",
479
- );
480
- useRenderCustomMessages.mockImplementationOnce(() => () => {
479
+ vi.mocked(useRenderCustomMessages).mockImplementationOnce(() => () => {
481
480
  throw new Error("boom");
482
481
  });
483
482
 
@@ -507,11 +506,10 @@ describe("useCoAgentStateRender", () => {
507
506
  });
508
507
 
509
508
  it("prefers legacy renderer over renderCustomMessages when both exist", async () => {
510
- const { useRenderCustomMessages } = jest.requireMock(
511
- "@copilotkitnext/react",
509
+ const renderCustomSpy = vi.fn(() => null);
510
+ vi.mocked(useRenderCustomMessages).mockImplementationOnce(
511
+ () => renderCustomSpy,
512
512
  );
513
- const renderCustomSpy = jest.fn(() => null);
514
- useRenderCustomMessages.mockImplementationOnce(() => renderCustomSpy);
515
513
 
516
514
  const copilotContextValue = createTestCopilotContext({
517
515
  threadId: "thread-1",
@@ -1,3 +1,4 @@
1
+ import { vi, type Mock } from "vitest";
1
2
  import React, { type ReactNode } from "react";
2
3
  import { render, renderHook, waitFor } from "@testing-library/react";
3
4
  import { useCoAgentStateRender } from "../use-coagent-state-render";
@@ -10,10 +11,10 @@ import {
10
11
  import { CopilotKitAgentDiscoveryError, randomId } from "@copilotkit/shared";
11
12
  import { createTestCopilotContext } from "../../test-helpers/copilot-context";
12
13
 
13
- const addToast = jest.fn();
14
- const setBannerError = jest.fn();
14
+ const addToast = vi.fn();
15
+ const setBannerError = vi.fn();
15
16
 
16
- jest.mock("../../components/toast/toast-provider", () => ({
17
+ vi.mock("../../components/toast/toast-provider", () => ({
17
18
  useToast: () => ({
18
19
  addToast,
19
20
  setBannerError,
@@ -61,9 +62,9 @@ describe("useCoAgentStateRender (hook behaviors)", () => {
61
62
  let idCounter = 0;
62
63
 
63
64
  beforeEach(() => {
64
- jest.clearAllMocks();
65
+ vi.clearAllMocks();
65
66
  idCounter = 0;
66
- (randomId as jest.Mock).mockImplementation(
67
+ (randomId as Mock).mockImplementation(
67
68
  () => `test-random-id-${++idCounter}`,
68
69
  );
69
70
  });
@@ -78,7 +79,7 @@ describe("useCoAgentStateRender (hook behaviors)", () => {
78
79
  }),
79
80
  );
80
81
 
81
- const renderFn = jest.fn(() => null);
82
+ const renderFn = vi.fn(() => null);
82
83
 
83
84
  const { result } = renderHook(
84
85
  () =>
@@ -109,10 +110,10 @@ describe("useCoAgentStateRender (hook behaviors)", () => {
109
110
  }),
110
111
  );
111
112
 
112
- const handlerOne = jest.fn();
113
- const handlerTwo = jest.fn();
114
- const renderOne = jest.fn(() => null);
115
- const renderTwo = jest.fn(() => null);
113
+ const handlerOne = vi.fn();
114
+ const handlerTwo = vi.fn();
115
+ const renderOne = vi.fn(() => null);
116
+ const renderTwo = vi.fn(() => null);
116
117
 
117
118
  const { result, rerender } = renderHook(
118
119
  ({ handler, renderFn }) =>
@@ -151,8 +152,8 @@ describe("useCoAgentStateRender (hook behaviors)", () => {
151
152
  it("re-registers when dependencies change", async () => {
152
153
  const wrapper = createWrapper(createTestCopilotContext());
153
154
 
154
- const handlerOne = jest.fn();
155
- const handlerTwo = jest.fn();
155
+ const handlerOne = vi.fn();
156
+ const handlerTwo = vi.fn();
156
157
 
157
158
  const { result, rerender } = renderHook(
158
159
  ({ deps, handler }) =>
@@ -233,14 +234,14 @@ describe("useCoAgentStateRender (hook behaviors)", () => {
233
234
  action={{
234
235
  name: "agent-dup",
235
236
  nodeName: "node-x",
236
- handler: jest.fn(),
237
+ handler: vi.fn(),
237
238
  }}
238
239
  />
239
240
  <HookUser
240
241
  action={{
241
242
  name: "agent-dup",
242
243
  nodeName: "node-x",
243
- handler: jest.fn(),
244
+ handler: vi.fn(),
244
245
  }}
245
246
  />
246
247
  </>
@@ -278,14 +279,14 @@ describe("useCoAgentStateRender (hook behaviors)", () => {
278
279
  action={{
279
280
  name: "agent-ok",
280
281
  nodeName: "node-a",
281
- handler: jest.fn(),
282
+ handler: vi.fn(),
282
283
  }}
283
284
  />
284
285
  <HookUser
285
286
  action={{
286
287
  name: "agent-ok",
287
288
  nodeName: "node-b",
288
- handler: jest.fn(),
289
+ handler: vi.fn(),
289
290
  }}
290
291
  />
291
292
  </>
@@ -317,7 +318,7 @@ describe("useCoAgentStateRender (hook behaviors)", () => {
317
318
  () =>
318
319
  useHarness({
319
320
  name: "missing-agent",
320
- handler: jest.fn(),
321
+ handler: vi.fn(),
321
322
  }),
322
323
  { wrapper },
323
324
  );
@@ -343,7 +344,7 @@ describe("useCoAgentStateRender (hook behaviors)", () => {
343
344
  () =>
344
345
  useHarness({
345
346
  name: "agent-present",
346
- handler: jest.fn(),
347
+ handler: vi.fn(),
347
348
  }),
348
349
  { wrapper },
349
350
  );
@@ -0,0 +1,72 @@
1
+ import { vi } from "vitest";
2
+ import React from "react";
3
+ import { render, waitFor } from "@testing-library/react";
4
+ import { useFrontendTool } from "../use-frontend-tool";
5
+
6
+ // Track what gets passed to the v2 hook
7
+ let lastV2ToolCall: any = null;
8
+
9
+ vi.mock("@copilotkitnext/react", () => ({
10
+ useFrontendTool: vi.fn((tool: any) => {
11
+ lastV2ToolCall = tool;
12
+ }),
13
+ }));
14
+
15
+ describe("useFrontendTool available passthrough (v1 → v2)", () => {
16
+ beforeEach(() => {
17
+ lastV2ToolCall = null;
18
+ });
19
+
20
+ it("converts available: 'disabled' to false for v2", () => {
21
+ const Component: React.FC = () => {
22
+ useFrontendTool({
23
+ name: "testTool",
24
+ description: "Test tool",
25
+ available: "disabled",
26
+ parameters: [],
27
+ handler: async () => "done",
28
+ });
29
+ return null;
30
+ };
31
+
32
+ render(<Component />);
33
+
34
+ expect(lastV2ToolCall).toBeDefined();
35
+ expect(lastV2ToolCall.available).toBe(false);
36
+ });
37
+
38
+ it("converts available: 'enabled' to true for v2", () => {
39
+ const Component: React.FC = () => {
40
+ useFrontendTool({
41
+ name: "testTool",
42
+ description: "Test tool",
43
+ available: "enabled",
44
+ parameters: [],
45
+ handler: async () => "done",
46
+ });
47
+ return null;
48
+ };
49
+
50
+ render(<Component />);
51
+
52
+ expect(lastV2ToolCall).toBeDefined();
53
+ expect(lastV2ToolCall.available).toBe(true);
54
+ });
55
+
56
+ it("does not include available when not specified", () => {
57
+ const Component: React.FC = () => {
58
+ useFrontendTool({
59
+ name: "testTool",
60
+ description: "Test tool",
61
+ parameters: [],
62
+ handler: async () => "done",
63
+ });
64
+ return null;
65
+ };
66
+
67
+ render(<Component />);
68
+
69
+ expect(lastV2ToolCall).toBeDefined();
70
+ expect(lastV2ToolCall.available).toBeUndefined();
71
+ });
72
+ });
@@ -1,14 +1,16 @@
1
+ import { vi } from "vitest";
1
2
  import React, { useEffect } from "react";
2
3
  import { render, waitFor } from "@testing-library/react";
3
4
  import { ToolCallStatus } from "@copilotkitnext/core";
4
5
  import { useFrontendTool } from "../use-frontend-tool";
6
+ import * as copilotkitNextReact from "@copilotkitnext/react";
5
7
 
6
- jest.mock("@copilotkitnext/react", () => {
8
+ vi.mock("@copilotkitnext/react", () => {
7
9
  let currentRender: any = null;
8
10
  const listeners = new Set<() => void>();
9
11
 
10
12
  return {
11
- useFrontendTool: jest.fn((tool: { render?: any }) => {
13
+ useFrontendTool: vi.fn((tool: { render?: any }) => {
12
14
  React.useEffect(() => {
13
15
  currentRender = tool.render ?? null;
14
16
  listeners.forEach((listener) => listener());
@@ -22,7 +24,7 @@ jest.mock("@copilotkitnext/react", () => {
22
24
  };
23
25
  });
24
26
 
25
- const toolRenderModule = jest.requireMock("@copilotkitnext/react") as {
27
+ const toolRenderModule = copilotkitNextReact as unknown as {
26
28
  __getCurrentRender: () => any;
27
29
  __subscribeRender: (listener: () => void) => () => void;
28
30
  };
@@ -53,8 +55,8 @@ function RunActionButton({
53
55
  onMount,
54
56
  onUnmount,
55
57
  }: {
56
- onMount: jest.Mock;
57
- onUnmount: jest.Mock;
58
+ onMount: () => void;
59
+ onUnmount: () => void;
58
60
  }) {
59
61
  useEffect(() => {
60
62
  onMount();
@@ -66,8 +68,8 @@ function RunActionButton({
66
68
 
67
69
  describe("useFrontendTool dependency changes", () => {
68
70
  it("should not remount rendered tool UI when deps change", async () => {
69
- const mounted = jest.fn();
70
- const unmounted = jest.fn();
71
+ const mounted = vi.fn();
72
+ const unmounted = vi.fn();
71
73
 
72
74
  const ToolUser = ({ version }: { version: number }) => {
73
75
  useFrontendTool(