@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
@@ -88,17 +88,11 @@
88
88
  * </PropertyReference>
89
89
  */
90
90
 
91
- import { useCallback, useEffect, useMemo, useRef } from "react";
92
- import { CopilotContextParams, useCopilotContext } from "../context";
93
- import { CoagentState } from "../types/coagent-state";
94
- import { useCopilotChat } from "./use-copilot-chat_internal";
91
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
95
92
  import { Message } from "@copilotkit/shared";
96
- import { useAsyncCallback } from "../components/error-boundary/error-utils";
97
- import { useToast } from "../components/toast/toast-provider";
98
- import { useCopilotRuntimeClient } from "./use-copilot-runtime-client";
99
- import { parseJson, CopilotKitAgentDiscoveryError } from "@copilotkit/shared";
100
- import { useMessagesTap } from "../components/copilot-provider/copilot-messages";
101
- import { Message as GqlMessage } from "@copilotkit/runtime-client-gql";
93
+ import { useAgent, useCopilotKit } from "@copilotkitnext/react";
94
+ import { type AgentSubscriber } from "@ag-ui/client";
95
+ import { useAgentNodeName } from "./use-agent-nodename";
102
96
 
103
97
  interface UseCoagentOptionsBase {
104
98
  /**
@@ -186,7 +180,7 @@ export interface UseCoagentReturnType<T> {
186
180
  * A function to re-run the agent. The hint function can be used to provide a hint to the agent
187
181
  * about why it is being re-run again.
188
182
  */
189
- run: (hint?: HintFunction) => Promise<void>;
183
+ run: (...args: any[]) => Promise<any>;
190
184
  }
191
185
 
192
186
  export interface HintFunctionParams {
@@ -209,230 +203,160 @@ export type HintFunction = (params: HintFunctionParams) => Message | undefined;
209
203
  * we refer to as CoAgents, checkout the documentation at https://docs.copilotkit.ai/coagents/quickstart/langgraph.
210
204
  */
211
205
  export function useCoAgent<T = any>(options: UseCoagentOptions<T>): UseCoagentReturnType<T> {
212
- const context = useCopilotContext();
213
- const { availableAgents, onError } = context;
214
- const { setBannerError } = useToast();
215
- const lastLoadedThreadId = useRef<string>();
216
- const lastLoadedState = useRef<any>();
206
+ const { agent } = useAgent({ agentId: options.name });
207
+ const { copilotkit } = useCopilotKit();
208
+ const nodeName = useAgentNodeName(options.name);
217
209
 
218
- const { name } = options;
219
- useEffect(() => {
220
- if (availableAgents?.length && !availableAgents.some((a) => a.name === name)) {
221
- const message = `(useCoAgent): Agent "${name}" not found. Make sure the agent exists and is properly configured.`;
222
- console.warn(message);
223
-
224
- // Route to banner instead of toast for consistency
225
- const agentError = new CopilotKitAgentDiscoveryError({
226
- agentName: name,
227
- availableAgents: availableAgents.map((a) => ({ name: a.name, id: a.id })),
228
- });
229
- setBannerError(agentError);
230
- }
231
- }, [availableAgents]);
232
-
233
- const { getMessagesFromTap } = useMessagesTap();
234
-
235
- const { coagentStates, coagentStatesRef, setCoagentStatesWithRef, threadId, copilotApiConfig } =
236
- context;
237
- const { sendMessage, runChatCompletion } = useCopilotChat();
238
- const headers = {
239
- ...(copilotApiConfig.headers || {}),
240
- };
241
-
242
- const runtimeClient = useCopilotRuntimeClient({
243
- url: copilotApiConfig.chatApiEndpoint,
244
- publicApiKey: copilotApiConfig.publicApiKey,
245
- headers,
246
- credentials: copilotApiConfig.credentials,
247
- showDevConsole: context.showDevConsole,
248
- onError,
249
- });
250
-
251
- // if we manage state internally, we need to provide a function to set the state
252
- const setState = useCallback(
210
+ const handleStateUpdate = useCallback(
253
211
  (newState: T | ((prevState: T | undefined) => T)) => {
254
- // coagentStatesRef.current || {}
255
- let coagentState: CoagentState = getCoagentState({ coagentStates, name, options });
256
- const updatedState =
257
- typeof newState === "function" ? (newState as Function)(coagentState.state) : newState;
212
+ if (!agent) return;
258
213
 
259
- setCoagentStatesWithRef({
260
- ...coagentStatesRef.current,
261
- [name]: {
262
- ...coagentState,
263
- state: updatedState,
264
- },
265
- });
214
+ if (typeof newState === "function") {
215
+ const updater = newState as (prevState: T | undefined) => T;
216
+ agent.setState(updater(agent.state));
217
+ } else {
218
+ agent.setState({ ...agent.state, ...newState });
219
+ }
266
220
  },
267
- [coagentStates, name],
221
+ [agent?.state, agent?.setState],
268
222
  );
269
223
 
270
224
  useEffect(() => {
271
- const fetchAgentState = async () => {
272
- if (!threadId || threadId === lastLoadedThreadId.current) return;
273
-
274
- const result = await runtimeClient.loadAgentState({
275
- threadId,
276
- agentName: name,
277
- });
278
-
279
- // Runtime client handles errors automatically via handleGQLErrors
280
- if (result.error) {
281
- return; // Don't process data on error
282
- }
283
-
284
- const newState = result.data?.loadAgentState?.state;
285
- if (newState === lastLoadedState.current) return;
225
+ if (!options.config && !options.configurable) return;
226
+
227
+ let config = options.config ?? {};
228
+ if (options.configurable) {
229
+ config = {
230
+ ...config,
231
+ configurable: {
232
+ ...options.configurable,
233
+ ...config.configurable,
234
+ },
235
+ };
236
+ }
237
+ copilotkit.setProperties(config);
238
+ }, [options.config, options.configurable]);
286
239
 
287
- if (result.data?.loadAgentState?.threadExists && newState && newState != "{}") {
288
- lastLoadedState.current = newState;
289
- lastLoadedThreadId.current = threadId;
290
- const fetchedState = parseJson(newState, {});
291
- isExternalStateManagement(options)
292
- ? options.setState(fetchedState)
293
- : setState(fetchedState);
294
- }
295
- };
296
- void fetchAgentState();
297
- }, [threadId]);
240
+ const externalStateStr = useMemo(
241
+ () => (isExternalStateManagement(options) ? JSON.stringify(options.state) : undefined),
242
+ [isExternalStateManagement(options) ? JSON.stringify(options.state) : undefined],
243
+ );
298
244
 
299
245
  // Sync internal state with external state if state management is external
246
+ useEffect(() => {
247
+ if (
248
+ agent?.state &&
249
+ isExternalStateManagement(options) &&
250
+ JSON.stringify(options.state) !== JSON.stringify(agent.state)
251
+ ) {
252
+ handleStateUpdate(options.state);
253
+ }
254
+ }, [agent, externalStateStr, handleStateUpdate]);
255
+
256
+ const hasStateValues = useCallback((value?: Record<string, any>) => {
257
+ return Boolean(value && Object.keys(value).length);
258
+ }, []);
259
+
260
+ const initialStateRef = useRef<any>(
261
+ isExternalStateManagement(options)
262
+ ? options.state
263
+ : "initialState" in options
264
+ ? options.initialState
265
+ : undefined,
266
+ );
267
+
300
268
  useEffect(() => {
301
269
  if (isExternalStateManagement(options)) {
302
- setState(options.state);
303
- } else if (coagentStates[name] === undefined) {
304
- setState(options.initialState === undefined ? {} : options.initialState);
270
+ initialStateRef.current = options.state;
271
+ } else if ("initialState" in options) {
272
+ initialStateRef.current = options.initialState;
305
273
  }
306
274
  }, [
307
- isExternalStateManagement(options) ? JSON.stringify(options.state) : undefined,
308
- // reset initialstate on reset
309
- coagentStates[name] === undefined,
275
+ isExternalStateManagement(options)
276
+ ? JSON.stringify(options.state)
277
+ : "initialState" in options
278
+ ? JSON.stringify(options.initialState)
279
+ : undefined,
310
280
  ]);
311
281
 
312
- // Sync config when runtime configuration changes
313
282
  useEffect(() => {
314
- const newConfig = options.config
315
- ? options.config
316
- : options.configurable
317
- ? { configurable: options.configurable }
318
- : undefined;
319
-
320
- if (newConfig === undefined) return;
321
-
322
- setCoagentStatesWithRef((prev) => {
323
- const existing = prev[name] ?? {
324
- name,
325
- state: isInternalStateManagementWithInitial(options) ? options.initialState : {},
326
- config: {},
327
- running: false,
328
- active: false,
329
- threadId: undefined,
330
- nodeName: undefined,
331
- runId: undefined,
332
- };
333
-
334
- if (JSON.stringify(existing.config) === JSON.stringify(newConfig)) {
335
- return prev;
336
- }
337
-
338
- return {
339
- ...prev,
340
- [name]: {
341
- ...existing,
342
- config: newConfig,
343
- },
344
- };
345
- });
346
- }, [JSON.stringify(options.config), JSON.stringify(options.configurable)]);
347
-
348
- const runAgentCallback = useAsyncCallback(
349
- async (hint?: HintFunction) => {
350
- await runAgent(name, context, getMessagesFromTap(), sendMessage, runChatCompletion, hint);
351
- },
352
- [name, context, sendMessage, runChatCompletion],
353
- );
354
-
355
- // Return the state and setState function
356
- return useMemo(() => {
357
- const coagentState = getCoagentState({ coagentStates, name, options });
358
- return {
359
- name,
360
- nodeName: coagentState.nodeName,
361
- threadId: coagentState.threadId,
362
- running: coagentState.running,
363
- state: coagentState.state,
364
- setState: isExternalStateManagement(options) ? options.setState : setState,
365
- start: () => startAgent(name, context),
366
- stop: () => stopAgent(name, context),
367
- run: runAgentCallback,
283
+ if (!agent) return;
284
+ const subscriber: AgentSubscriber = {
285
+ onStateChanged: (args: any) => {
286
+ if (isExternalStateManagement(options)) {
287
+ options.setState(args.state);
288
+ }
289
+ },
290
+ onRunInitialized: (args: any) => {
291
+ const runHasState = hasStateValues(args.state);
292
+ if (runHasState) {
293
+ handleStateUpdate(args.state);
294
+ return;
295
+ }
296
+
297
+ if (hasStateValues(agent.state)) {
298
+ return;
299
+ }
300
+
301
+ if (initialStateRef.current !== undefined) {
302
+ handleStateUpdate(initialStateRef.current);
303
+ }
304
+ },
368
305
  };
369
- }, [name, coagentStates, options, setState, runAgentCallback]);
370
- }
371
-
372
- export function startAgent(name: string, context: CopilotContextParams) {
373
- const { setAgentSession } = context;
374
- setAgentSession({
375
- agentName: name,
376
- });
377
- }
378
306
 
379
- export function stopAgent(name: string, context: CopilotContextParams) {
380
- const { agentSession, setAgentSession } = context;
381
- if (agentSession && agentSession.agentName === name) {
382
- setAgentSession(null);
383
- context.setCoagentStates((prevAgentStates) => {
307
+ const subscription = agent.subscribe(subscriber);
308
+ return () => {
309
+ subscription.unsubscribe();
310
+ };
311
+ }, [agent, handleStateUpdate, hasStateValues]);
312
+
313
+ // Return a consistent shape whether or not the agent is available
314
+ return useMemo<UseCoagentReturnType<T>>(() => {
315
+ if (!agent) {
316
+ const noop = () => {};
317
+ const noopAsync = async () => {};
318
+ const initialState =
319
+ // prefer externally provided state if available
320
+ ("state" in options && (options as any).state) ??
321
+ // then initialState if provided
322
+ ("initialState" in options && (options as any).initialState) ??
323
+ ({} as T);
384
324
  return {
385
- ...prevAgentStates,
386
- [name]: {
387
- ...prevAgentStates[name],
388
- running: false,
389
- active: false,
390
- threadId: undefined,
391
- nodeName: undefined,
392
- runId: undefined,
393
- },
325
+ name: options.name,
326
+ nodeName,
327
+ threadId: undefined,
328
+ running: false,
329
+ state: initialState as T,
330
+ setState: noop,
331
+ start: noop,
332
+ stop: noop,
333
+ run: noopAsync,
394
334
  };
395
- });
396
- } else {
397
- console.warn(`No agent session found for ${name}`);
398
- }
399
- }
400
-
401
- export async function runAgent(
402
- name: string,
403
- context: CopilotContextParams,
404
- messages: GqlMessage[],
405
- sendMessage: (message: Message) => Promise<void>,
406
- runChatCompletion: () => Promise<Message[]>,
407
- hint?: HintFunction,
408
- ) {
409
- const { agentSession, setAgentSession } = context;
410
- if (!agentSession || agentSession.agentName !== name) {
411
- setAgentSession({
412
- agentName: name,
413
- });
414
- }
415
-
416
- let previousState: any = null;
417
- for (let i = messages.length - 1; i >= 0; i--) {
418
- const message = messages[i];
419
- if (message.isAgentStateMessage() && message.agentName === name) {
420
- previousState = message.state;
421
335
  }
422
- }
423
336
 
424
- let state = context.coagentStatesRef.current?.[name]?.state || {};
425
-
426
- if (hint) {
427
- const hintMessage = hint({ previousState, currentState: state });
428
- if (hintMessage) {
429
- await sendMessage(hintMessage);
430
- } else {
431
- await runChatCompletion();
432
- }
433
- } else {
434
- await runChatCompletion();
435
- }
337
+ return {
338
+ name: agent?.agentId ?? options.name,
339
+ nodeName,
340
+ threadId: agent.threadId,
341
+ running: agent.isRunning,
342
+ state: agent.state,
343
+ setState: handleStateUpdate,
344
+ // TODO: start and run both have same thing. need to figure out
345
+ start: agent.runAgent,
346
+ stop: agent.abortRun,
347
+ run: agent.runAgent,
348
+ };
349
+ }, [
350
+ agent?.state,
351
+ agent?.runAgent,
352
+ agent?.abortRun,
353
+ agent?.runAgent,
354
+ agent?.threadId,
355
+ agent?.isRunning,
356
+ agent?.agentId,
357
+ handleStateUpdate,
358
+ options.name,
359
+ ]);
436
360
  }
437
361
 
438
362
  const isExternalStateManagement = <T>(
@@ -440,38 +364,3 @@ const isExternalStateManagement = <T>(
440
364
  ): options is WithExternalStateManagement<T> => {
441
365
  return "state" in options && "setState" in options;
442
366
  };
443
-
444
- const isInternalStateManagementWithInitial = <T>(
445
- options: UseCoagentOptions<T>,
446
- ): options is WithInternalStateManagementAndInitial<T> => {
447
- return "initialState" in options;
448
- };
449
-
450
- const getCoagentState = <T>({
451
- coagentStates,
452
- name,
453
- options,
454
- }: {
455
- coagentStates: Record<string, CoagentState>;
456
- name: string;
457
- options: UseCoagentOptions<T>;
458
- }) => {
459
- if (coagentStates[name]) {
460
- return coagentStates[name];
461
- } else {
462
- return {
463
- name,
464
- state: isInternalStateManagementWithInitial<T>(options) ? options.initialState : {},
465
- config: options.config
466
- ? options.config
467
- : options.configurable
468
- ? { configurable: options.configurable }
469
- : {},
470
- running: false,
471
- active: false,
472
- threadId: undefined,
473
- nodeName: undefined,
474
- runId: undefined,
475
- };
476
- }
477
- };
@@ -0,0 +1,86 @@
1
+ import {
2
+ useConfigureSuggestions,
3
+ useCopilotChatConfiguration,
4
+ useCopilotKit,
5
+ useSuggestions,
6
+ } from "@copilotkitnext/react";
7
+ import { StaticSuggestionsConfig, Suggestion } from "@copilotkitnext/core";
8
+ import { useCopilotContext } from "../context";
9
+ import { useEffect, useMemo } from "react";
10
+
11
+ type StaticSuggestionInput = Omit<Suggestion, "isLoading"> & Partial<Pick<Suggestion, "isLoading">>;
12
+
13
+ type StaticSuggestionsConfigInput = Omit<StaticSuggestionsConfig, "suggestions"> & {
14
+ suggestions: StaticSuggestionInput[];
15
+ };
16
+
17
+ type DynamicSuggestionsConfigInput = {
18
+ /**
19
+ * A prompt or instructions for the GPT to generate suggestions.
20
+ */
21
+ instructions: string;
22
+ /**
23
+ * The minimum number of suggestions to generate. Defaults to `1`.
24
+ * @default 1
25
+ */
26
+ minSuggestions?: number;
27
+ /**
28
+ * The maximum number of suggestions to generate. Defaults to `3`.
29
+ * @default 1
30
+ */
31
+ maxSuggestions?: number;
32
+
33
+ /**
34
+ * Whether the suggestions are available. Defaults to `enabled`.
35
+ * @default enabled
36
+ */
37
+ available?: "enabled" | "disabled" | "always" | "before-first-message" | "after-first-message";
38
+
39
+ /**
40
+ * An optional class name to apply to the suggestions.
41
+ */
42
+ className?: string;
43
+ };
44
+
45
+ export type UseCopilotChatSuggestionsConfiguration =
46
+ | DynamicSuggestionsConfigInput
47
+ | StaticSuggestionsConfigInput;
48
+
49
+ export function useConfigureChatSuggestions(
50
+ config: UseCopilotChatSuggestionsConfiguration,
51
+ dependencies: any[] = [],
52
+ ): ReturnType<typeof useSuggestions> {
53
+ const existingConfig = useCopilotChatConfiguration();
54
+ const resolvedAgentId = existingConfig?.agentId ?? "default";
55
+ const { copilotkit } = useCopilotKit();
56
+
57
+ const available = config.available === "enabled" ? "always" : config.available;
58
+
59
+ const finalSuggestionConfig = {
60
+ ...config,
61
+ available,
62
+ consumerAgentId: resolvedAgentId, // Use chatConfig.agentId here
63
+ };
64
+ useConfigureSuggestions(finalSuggestionConfig, dependencies);
65
+
66
+ const result = useSuggestions({ agentId: resolvedAgentId });
67
+
68
+ useEffect(() => {
69
+ if (finalSuggestionConfig.available === "disabled") return;
70
+ const subscription = copilotkit.subscribe({
71
+ onAgentsChanged: () => {
72
+ // When agents change, check if our target agent now exists and reload
73
+ const agent = copilotkit.getAgent(resolvedAgentId);
74
+ if (agent && !agent.isRunning && !result.suggestions.length) {
75
+ copilotkit.reloadSuggestions(resolvedAgentId);
76
+ }
77
+ },
78
+ });
79
+
80
+ return () => {
81
+ subscription.unsubscribe();
82
+ };
83
+ }, [resolvedAgentId]);
84
+
85
+ return result;
86
+ }