@copilotkit/react-core 1.10.0-next.1 → 1.10.0-next.10

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 (204) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/dist/{chunk-KV25ZRMH.mjs → chunk-2TSNHEIS.mjs} +6 -6
  3. package/dist/chunk-2TSNHEIS.mjs.map +1 -0
  4. package/dist/{chunk-DF4YG4PF.mjs → chunk-3RHHNUVV.mjs} +2 -2
  5. package/dist/{chunk-LNAQ7JG3.mjs → chunk-6EKLRL7B.mjs} +2 -2
  6. package/dist/{chunk-JZQOCH4A.mjs → chunk-ADZDXHVC.mjs} +4 -4
  7. package/dist/{chunk-4CFY3CON.mjs → chunk-CLMDRYEN.mjs} +2 -2
  8. package/dist/{chunk-VM7CVIET.mjs → chunk-COEUPDRL.mjs} +20 -21
  9. package/dist/chunk-COEUPDRL.mjs.map +1 -0
  10. package/dist/{chunk-RGKZCCPA.mjs → chunk-DLEXVOQE.mjs} +5 -5
  11. package/dist/{chunk-YAF2LATQ.mjs → chunk-EFL5OBKN.mjs} +1 -1
  12. package/dist/chunk-EFL5OBKN.mjs.map +1 -0
  13. package/dist/{chunk-JWAXDYOW.mjs → chunk-FAUNHSQU.mjs} +3 -3
  14. package/dist/chunk-ICIK2BSB.mjs +17 -0
  15. package/dist/chunk-ICIK2BSB.mjs.map +1 -0
  16. package/dist/chunk-IHAZJF3V.mjs +34 -0
  17. package/dist/chunk-IHAZJF3V.mjs.map +1 -0
  18. package/dist/{chunk-Q6FZZJ5A.mjs → chunk-IN7GE4NO.mjs} +2 -2
  19. package/dist/{chunk-4XVBXDCX.mjs → chunk-JBLMXZ3O.mjs} +8 -8
  20. package/dist/{chunk-NXCJELW7.mjs → chunk-JJDXTTEN.mjs} +3 -3
  21. package/dist/chunk-KDAZGZ24.mjs +1 -0
  22. package/dist/{chunk-VOMGRGWT.mjs → chunk-L6HQIJ74.mjs} +33 -17
  23. package/dist/chunk-L6HQIJ74.mjs.map +1 -0
  24. package/dist/{chunk-OMVNJ7S3.mjs → chunk-LVWV62JZ.mjs} +37 -24
  25. package/dist/chunk-LVWV62JZ.mjs.map +1 -0
  26. package/dist/{chunk-3OQM3NEK.mjs → chunk-N4WEHORG.mjs} +2 -2
  27. package/dist/chunk-OKRZF3DD.mjs +225 -0
  28. package/dist/chunk-OKRZF3DD.mjs.map +1 -0
  29. package/dist/{chunk-SGF6C7I6.mjs → chunk-Q42NJFXR.mjs} +11 -16
  30. package/dist/chunk-Q42NJFXR.mjs.map +1 -0
  31. package/dist/chunk-QGE7U4NV.mjs +85 -0
  32. package/dist/chunk-QGE7U4NV.mjs.map +1 -0
  33. package/dist/{chunk-XGRBCWK6.mjs → chunk-TEMLWRRT.mjs} +3 -3
  34. package/dist/chunk-TEMLWRRT.mjs.map +1 -0
  35. package/dist/{chunk-PYULBXCD.mjs → chunk-TWYUYC4F.mjs} +44 -10
  36. package/dist/chunk-TWYUYC4F.mjs.map +1 -0
  37. package/dist/{chunk-WUORFPJ7.mjs → chunk-X2DNXTME.mjs} +6 -6
  38. package/dist/{chunk-DCTJZ742.mjs → chunk-ZLQVRPDS.mjs} +5 -2
  39. package/dist/chunk-ZLQVRPDS.mjs.map +1 -0
  40. package/dist/components/copilot-provider/copilot-messages.d.ts +17 -1
  41. package/dist/components/copilot-provider/copilot-messages.js +46 -7
  42. package/dist/components/copilot-provider/copilot-messages.js.map +1 -1
  43. package/dist/components/copilot-provider/copilot-messages.mjs +11 -7
  44. package/dist/components/copilot-provider/copilotkit-props.d.ts +5 -3
  45. package/dist/components/copilot-provider/copilotkit-props.js.map +1 -1
  46. package/dist/components/copilot-provider/copilotkit.d.ts +1 -2
  47. package/dist/components/copilot-provider/copilotkit.js +337 -555
  48. package/dist/components/copilot-provider/copilotkit.js.map +1 -1
  49. package/dist/components/copilot-provider/copilotkit.mjs +10 -10
  50. package/dist/components/copilot-provider/index.d.ts +1 -2
  51. package/dist/components/copilot-provider/index.js +337 -555
  52. package/dist/components/copilot-provider/index.js.map +1 -1
  53. package/dist/components/copilot-provider/index.mjs +10 -10
  54. package/dist/components/error-boundary/error-boundary.js +176 -323
  55. package/dist/components/error-boundary/error-boundary.js.map +1 -1
  56. package/dist/components/error-boundary/error-boundary.mjs +4 -4
  57. package/dist/components/error-boundary/error-utils.js.map +1 -1
  58. package/dist/components/error-boundary/error-utils.mjs +2 -2
  59. package/dist/components/index.d.ts +1 -2
  60. package/dist/components/index.js +337 -555
  61. package/dist/components/index.js.map +1 -1
  62. package/dist/components/index.mjs +10 -10
  63. package/dist/components/toast/toast-provider.js.map +1 -1
  64. package/dist/components/toast/toast-provider.mjs +1 -1
  65. package/dist/components/usage-banner.d.ts +10 -4
  66. package/dist/components/usage-banner.js +176 -302
  67. package/dist/components/usage-banner.js.map +1 -1
  68. package/dist/components/usage-banner.mjs +3 -1
  69. package/dist/context/copilot-context.d.ts +1 -2
  70. package/dist/context/copilot-context.js +2 -2
  71. package/dist/context/copilot-context.js.map +1 -1
  72. package/dist/context/copilot-context.mjs +1 -1
  73. package/dist/context/copilot-messages-context.d.ts +11 -15
  74. package/dist/context/copilot-messages-context.js +4 -1
  75. package/dist/context/copilot-messages-context.js.map +1 -1
  76. package/dist/context/copilot-messages-context.mjs +1 -1
  77. package/dist/context/index.d.ts +2 -2
  78. package/dist/context/index.js +6 -3
  79. package/dist/context/index.js.map +1 -1
  80. package/dist/context/index.mjs +5 -5
  81. package/dist/{copilot-context-bd88d30d.d.ts → copilot-context-256f9020.d.ts} +4 -22
  82. package/dist/hooks/index.d.ts +7 -5
  83. package/dist/hooks/index.js +250 -122
  84. package/dist/hooks/index.js.map +1 -1
  85. package/dist/hooks/index.mjs +42 -34
  86. package/dist/hooks/use-chat.d.ts +1 -2
  87. package/dist/hooks/use-chat.js +11 -3
  88. package/dist/hooks/use-chat.js.map +1 -1
  89. package/dist/hooks/use-chat.mjs +6 -6
  90. package/dist/hooks/use-coagent-state-render.js +2 -2
  91. package/dist/hooks/use-coagent-state-render.js.map +1 -1
  92. package/dist/hooks/use-coagent-state-render.mjs +3 -3
  93. package/dist/hooks/use-coagent.d.ts +3 -4
  94. package/dist/hooks/use-coagent.js +114 -81
  95. package/dist/hooks/use-coagent.js.map +1 -1
  96. package/dist/hooks/use-coagent.mjs +16 -16
  97. package/dist/hooks/use-copilot-action.js +2 -2
  98. package/dist/hooks/use-copilot-action.js.map +1 -1
  99. package/dist/hooks/use-copilot-action.mjs +4 -4
  100. package/dist/hooks/use-copilot-additional-instructions.js +2 -2
  101. package/dist/hooks/use-copilot-additional-instructions.js.map +1 -1
  102. package/dist/hooks/use-copilot-additional-instructions.mjs +2 -2
  103. package/dist/hooks/use-copilot-authenticated-action.js +2 -2
  104. package/dist/hooks/use-copilot-authenticated-action.js.map +1 -1
  105. package/dist/hooks/use-copilot-authenticated-action.mjs +5 -5
  106. package/dist/hooks/use-copilot-chat-headless_c.d.ts +33 -0
  107. package/dist/hooks/use-copilot-chat-headless_c.js +1837 -0
  108. package/dist/hooks/use-copilot-chat-headless_c.js.map +1 -0
  109. package/dist/hooks/use-copilot-chat-headless_c.mjs +31 -0
  110. package/dist/hooks/use-copilot-chat-headless_c.mjs.map +1 -0
  111. package/dist/hooks/use-copilot-chat.d.ts +52 -82
  112. package/dist/hooks/use-copilot-chat.js +60 -13
  113. package/dist/hooks/use-copilot-chat.js.map +1 -1
  114. package/dist/hooks/use-copilot-chat.mjs +16 -17
  115. package/dist/hooks/use-copilot-chat_internal.d.ts +177 -0
  116. package/dist/hooks/use-copilot-chat_internal.js +1770 -0
  117. package/dist/hooks/use-copilot-chat_internal.js.map +1 -0
  118. package/dist/hooks/use-copilot-chat_internal.mjs +29 -0
  119. package/dist/hooks/use-copilot-chat_internal.mjs.map +1 -0
  120. package/dist/hooks/use-copilot-readable.js +2 -2
  121. package/dist/hooks/use-copilot-readable.js.map +1 -1
  122. package/dist/hooks/use-copilot-readable.mjs +2 -2
  123. package/dist/hooks/use-copilot-runtime-client.js +9 -1
  124. package/dist/hooks/use-copilot-runtime-client.js.map +1 -1
  125. package/dist/hooks/use-copilot-runtime-client.mjs +3 -3
  126. package/dist/hooks/use-langgraph-interrupt-render.js +2 -2
  127. package/dist/hooks/use-langgraph-interrupt-render.js.map +1 -1
  128. package/dist/hooks/use-langgraph-interrupt-render.mjs +3 -3
  129. package/dist/hooks/use-langgraph-interrupt.d.ts +3 -4
  130. package/dist/hooks/use-langgraph-interrupt.js +32 -11
  131. package/dist/hooks/use-langgraph-interrupt.js.map +1 -1
  132. package/dist/hooks/use-langgraph-interrupt.mjs +16 -16
  133. package/dist/hooks/use-make-copilot-document-readable.js +2 -2
  134. package/dist/hooks/use-make-copilot-document-readable.js.map +1 -1
  135. package/dist/hooks/use-make-copilot-document-readable.mjs +2 -2
  136. package/dist/index-08c43df1.d.ts +36 -0
  137. package/dist/index.d.ts +5 -3
  138. package/dist/index.js +460 -471
  139. package/dist/index.js.map +1 -1
  140. package/dist/index.mjs +47 -39
  141. package/dist/lib/copilot-task.d.ts +1 -2
  142. package/dist/lib/copilot-task.js.map +1 -1
  143. package/dist/lib/copilot-task.mjs +12 -12
  144. package/dist/lib/index.d.ts +1 -2
  145. package/dist/lib/index.js.map +1 -1
  146. package/dist/lib/index.mjs +12 -12
  147. package/dist/types/interrupt-action.d.ts +2 -3
  148. package/dist/utils/dev-console.d.ts +1 -1
  149. package/dist/utils/dev-console.js +9 -1
  150. package/dist/utils/dev-console.js.map +1 -1
  151. package/dist/utils/dev-console.mjs +1 -1
  152. package/dist/utils/extract.d.ts +2 -2
  153. package/dist/utils/extract.js.map +1 -1
  154. package/dist/utils/extract.mjs +10 -10
  155. package/dist/utils/index.d.ts +3 -3
  156. package/dist/utils/index.js +9 -1
  157. package/dist/utils/index.js.map +1 -1
  158. package/dist/utils/index.mjs +11 -11
  159. package/dist/utils/suggestions.d.ts +2 -2
  160. package/dist/utils/suggestions.js.map +1 -1
  161. package/dist/utils/suggestions.mjs +10 -10
  162. package/package.json +3 -3
  163. package/src/components/copilot-provider/copilot-messages.tsx +57 -1
  164. package/src/components/copilot-provider/copilotkit-props.tsx +4 -1
  165. package/src/components/copilot-provider/copilotkit.tsx +20 -10
  166. package/src/components/error-boundary/error-boundary.tsx +5 -15
  167. package/src/components/toast/toast-provider.tsx +1 -3
  168. package/src/components/usage-banner.tsx +193 -316
  169. package/src/context/copilot-context.tsx +12 -6
  170. package/src/context/copilot-messages-context.tsx +7 -1
  171. package/src/hooks/__tests__/use-coagent-config.test.ts +8 -1
  172. package/src/hooks/index.ts +7 -2
  173. package/src/hooks/use-coagent.ts +17 -19
  174. package/src/hooks/use-copilot-chat-headless_c.ts +187 -0
  175. package/src/hooks/use-copilot-chat.ts +64 -495
  176. package/src/hooks/use-copilot-chat_internal.ts +543 -0
  177. package/src/hooks/use-langgraph-interrupt.ts +1 -1
  178. package/src/utils/dev-console.ts +18 -2
  179. package/dist/chunk-57K2ZJ5F.mjs +0 -348
  180. package/dist/chunk-57K2ZJ5F.mjs.map +0 -1
  181. package/dist/chunk-CQPYJIBH.mjs +0 -1
  182. package/dist/chunk-DCTJZ742.mjs.map +0 -1
  183. package/dist/chunk-GFJW4RIM.mjs +0 -9
  184. package/dist/chunk-GFJW4RIM.mjs.map +0 -1
  185. package/dist/chunk-KV25ZRMH.mjs.map +0 -1
  186. package/dist/chunk-OMVNJ7S3.mjs.map +0 -1
  187. package/dist/chunk-PYULBXCD.mjs.map +0 -1
  188. package/dist/chunk-SGF6C7I6.mjs.map +0 -1
  189. package/dist/chunk-VM7CVIET.mjs.map +0 -1
  190. package/dist/chunk-VOMGRGWT.mjs.map +0 -1
  191. package/dist/chunk-XGRBCWK6.mjs.map +0 -1
  192. package/dist/chunk-YAF2LATQ.mjs.map +0 -1
  193. /package/dist/{chunk-DF4YG4PF.mjs.map → chunk-3RHHNUVV.mjs.map} +0 -0
  194. /package/dist/{chunk-LNAQ7JG3.mjs.map → chunk-6EKLRL7B.mjs.map} +0 -0
  195. /package/dist/{chunk-JZQOCH4A.mjs.map → chunk-ADZDXHVC.mjs.map} +0 -0
  196. /package/dist/{chunk-4CFY3CON.mjs.map → chunk-CLMDRYEN.mjs.map} +0 -0
  197. /package/dist/{chunk-RGKZCCPA.mjs.map → chunk-DLEXVOQE.mjs.map} +0 -0
  198. /package/dist/{chunk-JWAXDYOW.mjs.map → chunk-FAUNHSQU.mjs.map} +0 -0
  199. /package/dist/{chunk-Q6FZZJ5A.mjs.map → chunk-IN7GE4NO.mjs.map} +0 -0
  200. /package/dist/{chunk-4XVBXDCX.mjs.map → chunk-JBLMXZ3O.mjs.map} +0 -0
  201. /package/dist/{chunk-NXCJELW7.mjs.map → chunk-JJDXTTEN.mjs.map} +0 -0
  202. /package/dist/{chunk-CQPYJIBH.mjs.map → chunk-KDAZGZ24.mjs.map} +0 -0
  203. /package/dist/{chunk-3OQM3NEK.mjs.map → chunk-N4WEHORG.mjs.map} +0 -0
  204. /package/dist/{chunk-WUORFPJ7.mjs.map → chunk-X2DNXTME.mjs.map} +0 -0
@@ -85,7 +85,7 @@ __export(use_coagent_exports, {
85
85
  useCoAgent: () => useCoAgent
86
86
  });
87
87
  module.exports = __toCommonJS(use_coagent_exports);
88
- var import_react10 = require("react");
88
+ var import_react11 = require("react");
89
89
 
90
90
  // src/context/copilot-context.tsx
91
91
  var import_react = __toESM(require("react"));
@@ -162,8 +162,8 @@ var emptyCopilotContext = {
162
162
  setLangGraphInterruptAction: () => null,
163
163
  removeLangGraphInterruptAction: () => null,
164
164
  onError: void 0,
165
- suggestions: [],
166
- setSuggestions: () => {
165
+ bannerError: null,
166
+ setBannerError: () => {
167
167
  }
168
168
  };
169
169
  var CopilotContext = import_react.default.createContext(emptyCopilotContext);
@@ -182,7 +182,10 @@ function returnAndThrowInDebug(_value) {
182
182
  var import_react2 = __toESM(require("react"));
183
183
  var emptyCopilotContext2 = {
184
184
  messages: [],
185
- setMessages: () => []
185
+ setMessages: () => [],
186
+ // suggestions state
187
+ suggestions: [],
188
+ setSuggestions: () => []
186
189
  };
187
190
  var CopilotMessagesContext = import_react2.default.createContext(emptyCopilotContext2);
188
191
  function useCopilotMessagesContext() {
@@ -195,8 +198,8 @@ function useCopilotMessagesContext() {
195
198
  return context;
196
199
  }
197
200
 
198
- // src/hooks/use-copilot-chat.ts
199
- var import_react9 = require("react");
201
+ // src/hooks/use-copilot-chat_internal.ts
202
+ var import_react10 = require("react");
200
203
 
201
204
  // src/hooks/use-chat.ts
202
205
  var import_react6 = require("react");
@@ -250,8 +253,16 @@ var import_react4 = require("react");
250
253
  var import_shared3 = require("@copilotkit/shared");
251
254
 
252
255
  // src/utils/dev-console.ts
256
+ function isLocalhost() {
257
+ if (typeof window === "undefined")
258
+ return false;
259
+ return window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1" || window.location.hostname === "0.0.0.0";
260
+ }
253
261
  function shouldShowDevConsole(showDevConsole) {
254
- return showDevConsole;
262
+ if (showDevConsole !== void 0) {
263
+ return showDevConsole;
264
+ }
265
+ return isLocalhost();
255
266
  }
256
267
 
257
268
  // src/hooks/use-copilot-runtime-client.ts
@@ -1147,14 +1158,27 @@ function getPairedFeAction(actions, message) {
1147
1158
  }
1148
1159
 
1149
1160
  // src/components/copilot-provider/copilotkit.tsx
1150
- var import_react7 = require("react");
1161
+ var import_react8 = require("react");
1151
1162
  var import_react_dom2 = require("react-dom");
1152
- var import_shared7 = require("@copilotkit/shared");
1163
+ var import_shared8 = require("@copilotkit/shared");
1153
1164
 
1154
- // src/utils/extract.ts
1155
- var import_shared5 = require("@copilotkit/shared");
1165
+ // src/components/copilot-provider/copilot-messages.tsx
1166
+ var import_react7 = require("react");
1156
1167
  var import_runtime_client_gql4 = require("@copilotkit/runtime-client-gql");
1168
+ var import_shared5 = require("@copilotkit/shared");
1169
+ var import_jsx_runtime4 = require("react/jsx-runtime");
1170
+ var MessagesTapContext = (0, import_react7.createContext)(null);
1171
+ function useMessagesTap() {
1172
+ const tap = (0, import_react7.useContext)(MessagesTapContext);
1173
+ if (!tap)
1174
+ throw new Error("useMessagesTap must be used inside <MessagesTapProvider>");
1175
+ return tap;
1176
+ }
1177
+
1178
+ // src/utils/extract.ts
1179
+ var import_shared6 = require("@copilotkit/shared");
1157
1180
  var import_runtime_client_gql5 = require("@copilotkit/runtime-client-gql");
1181
+ var import_runtime_client_gql6 = require("@copilotkit/runtime-client-gql");
1158
1182
  function extract(_0) {
1159
1183
  return __async(this, arguments, function* ({
1160
1184
  context,
@@ -1164,7 +1188,7 @@ function extract(_0) {
1164
1188
  data,
1165
1189
  abortSignal,
1166
1190
  stream,
1167
- requestType = import_runtime_client_gql4.CopilotRequestType.Task,
1191
+ requestType = import_runtime_client_gql5.CopilotRequestType.Task,
1168
1192
  forwardedParameters
1169
1193
  }) {
1170
1194
  var _a, _b;
@@ -1185,13 +1209,13 @@ function extract(_0) {
1185
1209
  if (includeReadable) {
1186
1210
  contextString += context.getContextString([], defaultCopilotContextCategories);
1187
1211
  }
1188
- const systemMessage = new import_runtime_client_gql4.TextMessage({
1212
+ const systemMessage = new import_runtime_client_gql5.TextMessage({
1189
1213
  content: makeSystemMessage(contextString, instructions),
1190
- role: import_runtime_client_gql4.Role.System
1214
+ role: import_runtime_client_gql5.Role.System
1191
1215
  });
1192
- const instructionsMessage = new import_runtime_client_gql4.TextMessage({
1216
+ const instructionsMessage = new import_runtime_client_gql5.TextMessage({
1193
1217
  content: makeInstructionsMessage(instructions),
1194
- role: import_runtime_client_gql4.Role.User
1218
+ role: import_runtime_client_gql5.Role.User
1195
1219
  });
1196
1220
  const response = context.runtimeClient.asStream(
1197
1221
  context.runtimeClient.generateCopilotResponse({
@@ -1201,13 +1225,13 @@ function extract(_0) {
1201
1225
  {
1202
1226
  name: action.name,
1203
1227
  description: action.description || "",
1204
- jsonSchema: JSON.stringify((0, import_shared5.actionParametersToJsonSchema)(action.parameters || []))
1228
+ jsonSchema: JSON.stringify((0, import_shared6.actionParametersToJsonSchema)(action.parameters || []))
1205
1229
  }
1206
1230
  ],
1207
1231
  url: window.location.href
1208
1232
  },
1209
- messages: (0, import_runtime_client_gql5.convertMessagesToGqlInput)(
1210
- includeMessages ? [systemMessage, instructionsMessage, ...(0, import_runtime_client_gql5.filterAgentStateMessages)(messages)] : [systemMessage, instructionsMessage]
1233
+ messages: (0, import_runtime_client_gql6.convertMessagesToGqlInput)(
1234
+ includeMessages ? [systemMessage, instructionsMessage, ...(0, import_runtime_client_gql6.filterAgentStateMessages)(messages)] : [systemMessage, instructionsMessage]
1211
1235
  ),
1212
1236
  metadata: {
1213
1237
  requestType
@@ -1232,7 +1256,7 @@ function extract(_0) {
1232
1256
  if (abortSignal == null ? void 0 : abortSignal.aborted) {
1233
1257
  throw new Error("Aborted");
1234
1258
  }
1235
- actionExecutionMessage = (0, import_runtime_client_gql4.convertGqlOutputToMessages)(
1259
+ actionExecutionMessage = (0, import_runtime_client_gql5.convertGqlOutputToMessages)(
1236
1260
  value.generateCopilotResponse.messages
1237
1261
  ).find((msg) => msg.isActionExecutionMessage());
1238
1262
  if (!actionExecutionMessage) {
@@ -1286,8 +1310,8 @@ This is not a conversation, so please do not ask questions. Just call the functi
1286
1310
  }
1287
1311
 
1288
1312
  // src/utils/suggestions.ts
1289
- var import_shared6 = require("@copilotkit/shared");
1290
- var import_runtime_client_gql6 = require("@copilotkit/runtime-client-gql");
1313
+ var import_shared7 = require("@copilotkit/shared");
1314
+ var import_runtime_client_gql7 = require("@copilotkit/runtime-client-gql");
1291
1315
  var reloadSuggestions = (context, chatSuggestionConfiguration, setCurrentSuggestions, abortControllerRef) => __async(void 0, null, function* () {
1292
1316
  const abortController = abortControllerRef.current;
1293
1317
  if (abortController == null ? void 0 : abortController.signal.aborted) {
@@ -1303,7 +1327,7 @@ var reloadSuggestions = (context, chatSuggestionConfiguration, setCurrentSuggest
1303
1327
  Object.values(context.actions).map((action) => ({
1304
1328
  name: action.name,
1305
1329
  description: action.description,
1306
- jsonSchema: JSON.stringify((0, import_shared6.actionParametersToJsonSchema)(action.parameters))
1330
+ jsonSchema: JSON.stringify((0, import_shared7.actionParametersToJsonSchema)(action.parameters))
1307
1331
  }))
1308
1332
  );
1309
1333
  const allSuggestions = [];
@@ -1331,7 +1355,7 @@ var reloadSuggestions = (context, chatSuggestionConfiguration, setCurrentSuggest
1331
1355
  Available tools: ${tools}
1332
1356
 
1333
1357
  `,
1334
- requestType: import_runtime_client_gql6.CopilotRequestType.Task,
1358
+ requestType: import_runtime_client_gql7.CopilotRequestType.Task,
1335
1359
  parameters: [
1336
1360
  {
1337
1361
  name: "suggestions",
@@ -1419,21 +1443,21 @@ Available tools: ${tools}
1419
1443
  });
1420
1444
 
1421
1445
  // src/components/copilot-provider/copilotkit.tsx
1422
- var import_jsx_runtime4 = require("react/jsx-runtime");
1446
+ var import_jsx_runtime5 = require("react/jsx-runtime");
1423
1447
  var defaultCopilotContextCategories = ["global"];
1424
1448
 
1425
- // src/hooks/use-copilot-chat.ts
1426
- var import_runtime_client_gql7 = require("@copilotkit/runtime-client-gql");
1449
+ // src/hooks/use-copilot-chat_internal.ts
1450
+ var import_runtime_client_gql8 = require("@copilotkit/runtime-client-gql");
1427
1451
 
1428
1452
  // src/hooks/use-langgraph-interrupt-render.ts
1429
- var import_react8 = __toESM(require("react"));
1453
+ var import_react9 = __toESM(require("react"));
1430
1454
  var InterruptRenderer = ({ event, result, render, resolve }) => {
1431
1455
  return render({ event, result, resolve });
1432
1456
  };
1433
1457
  function useLangGraphInterruptRender() {
1434
1458
  const { langGraphInterruptAction, setLangGraphInterruptAction, agentSession } = useCopilotContext();
1435
- const responseRef = import_react8.default.useRef();
1436
- const resolveInterrupt = (0, import_react8.useCallback)(
1459
+ const responseRef = import_react9.default.useRef();
1460
+ const resolveInterrupt = (0, import_react9.useCallback)(
1437
1461
  (response) => {
1438
1462
  responseRef.current = response;
1439
1463
  setTimeout(() => {
@@ -1456,7 +1480,7 @@ function useLangGraphInterruptRender() {
1456
1480
  resolve: resolveInterrupt
1457
1481
  });
1458
1482
  }
1459
- return import_react8.default.createElement(InterruptRenderer, {
1483
+ return import_react9.default.createElement(InterruptRenderer, {
1460
1484
  event,
1461
1485
  result,
1462
1486
  render,
@@ -1464,7 +1488,7 @@ function useLangGraphInterruptRender() {
1464
1488
  });
1465
1489
  }
1466
1490
 
1467
- // src/hooks/use-copilot-chat.ts
1491
+ // src/hooks/use-copilot-chat_internal.ts
1468
1492
  var globalSuggestionPromise = null;
1469
1493
  function useCopilotChat(options = {}) {
1470
1494
  var _a;
@@ -1494,15 +1518,13 @@ function useCopilotChat(options = {}) {
1494
1518
  langGraphInterruptAction,
1495
1519
  setLangGraphInterruptAction,
1496
1520
  chatSuggestionConfiguration,
1497
- suggestions,
1498
- setSuggestions,
1499
1521
  runtimeClient
1500
1522
  } = useCopilotContext();
1501
- const { messages, setMessages } = useCopilotMessagesContext();
1502
- const [mcpServers, setLocalMcpServers] = (0, import_react9.useState)([]);
1503
- const suggestionsAbortControllerRef = (0, import_react9.useRef)(null);
1504
- const isLoadingSuggestionsRef = (0, import_react9.useRef)(false);
1505
- const abortSuggestions = (0, import_react9.useCallback)(
1523
+ const { messages, setMessages, suggestions, setSuggestions } = useCopilotMessagesContext();
1524
+ const [mcpServers, setLocalMcpServers] = (0, import_react10.useState)([]);
1525
+ const suggestionsAbortControllerRef = (0, import_react10.useRef)(null);
1526
+ const isLoadingSuggestionsRef = (0, import_react10.useRef)(false);
1527
+ const abortSuggestions = (0, import_react10.useCallback)(
1506
1528
  (clear = true) => {
1507
1529
  var _a2;
1508
1530
  (_a2 = suggestionsAbortControllerRef.current) == null ? void 0 : _a2.abort("suggestions aborted by user");
@@ -1513,7 +1535,7 @@ function useCopilotChat(options = {}) {
1513
1535
  },
1514
1536
  [setSuggestions]
1515
1537
  );
1516
- const stableContext = (0, import_react9.useMemo)(() => {
1538
+ const stableContext = (0, import_react10.useMemo)(() => {
1517
1539
  return {
1518
1540
  actions,
1519
1541
  copilotApiConfig,
@@ -1529,7 +1551,7 @@ function useCopilotChat(options = {}) {
1529
1551
  messages.length,
1530
1552
  Object.keys(chatSuggestionConfiguration).length
1531
1553
  ]);
1532
- const generateSuggestionsFunc = (0, import_react9.useCallback)(() => __async(this, null, function* () {
1554
+ const generateSuggestionsFunc = (0, import_react10.useCallback)(() => __async(this, null, function* () {
1533
1555
  if (globalSuggestionPromise) {
1534
1556
  return globalSuggestionPromise;
1535
1557
  }
@@ -1554,10 +1576,10 @@ function useCopilotChat(options = {}) {
1554
1576
  }))();
1555
1577
  return globalSuggestionPromise;
1556
1578
  }), [stableContext, chatSuggestionConfiguration, setSuggestions, abortSuggestions]);
1557
- const resetSuggestions = (0, import_react9.useCallback)(() => {
1579
+ const resetSuggestions = (0, import_react10.useCallback)(() => {
1558
1580
  setSuggestions([]);
1559
1581
  }, [setSuggestions]);
1560
- (0, import_react9.useEffect)(() => {
1582
+ (0, import_react10.useEffect)(() => {
1561
1583
  if (mcpServers.length > 0) {
1562
1584
  const serversCopy = [...mcpServers];
1563
1585
  copilotApiConfig.mcpServers = serversCopy;
@@ -1567,7 +1589,7 @@ function useCopilotChat(options = {}) {
1567
1589
  copilotApiConfig.properties.mcpServers = serversCopy;
1568
1590
  }
1569
1591
  }, [mcpServers, copilotApiConfig]);
1570
- const setMcpServers = (0, import_react9.useCallback)((servers) => {
1592
+ const setMcpServers = (0, import_react10.useCallback)((servers) => {
1571
1593
  setLocalMcpServers(servers);
1572
1594
  }, []);
1573
1595
  const onCoAgentStateRender = useAsyncCallback(
@@ -1588,15 +1610,15 @@ function useCopilotChat(options = {}) {
1588
1610
  }),
1589
1611
  [coAgentStateRenders]
1590
1612
  );
1591
- const makeSystemMessageCallback = (0, import_react9.useCallback)(() => {
1613
+ const makeSystemMessageCallback = (0, import_react10.useCallback)(() => {
1592
1614
  const systemMessageMaker = makeSystemMessage2 || defaultSystemMessage;
1593
1615
  const contextString = getContextString([], defaultCopilotContextCategories);
1594
- return new import_runtime_client_gql7.TextMessage({
1616
+ return new import_runtime_client_gql8.TextMessage({
1595
1617
  content: systemMessageMaker(contextString, chatInstructions),
1596
- role: import_runtime_client_gql7.Role.System
1618
+ role: import_runtime_client_gql8.Role.System
1597
1619
  });
1598
1620
  }, [getContextString, makeSystemMessage2, chatInstructions]);
1599
- const deleteMessage = (0, import_react9.useCallback)(
1621
+ const deleteMessage = (0, import_react10.useCallback)(
1600
1622
  (messageId) => {
1601
1623
  setMessages((prev) => prev.filter((message) => message.id !== messageId));
1602
1624
  },
@@ -1605,7 +1627,7 @@ function useCopilotChat(options = {}) {
1605
1627
  const { append, reload, stop, runChatCompletion } = useChat(__spreadProps(__spreadValues({}, options), {
1606
1628
  actions: Object.values(actions),
1607
1629
  copilotConfig: copilotApiConfig,
1608
- initialMessages: (0, import_runtime_client_gql7.aguiToGQL)(options.initialMessages || []),
1630
+ initialMessages: (0, import_runtime_client_gql8.aguiToGQL)(options.initialMessages || []),
1609
1631
  onFunctionCall: getFunctionCallHandler(),
1610
1632
  onCoAgentStateRender,
1611
1633
  messages,
@@ -1633,7 +1655,14 @@ function useCopilotChat(options = {}) {
1633
1655
  const latestAppendFunc = useAsyncCallback(
1634
1656
  (message, options2) => __async(this, null, function* () {
1635
1657
  abortSuggestions(options2 == null ? void 0 : options2.clearSuggestions);
1636
- return yield latestAppend.current((0, import_runtime_client_gql7.aguiToGQL)([message])[0], options2);
1658
+ return yield latestAppend.current(message, options2);
1659
+ }),
1660
+ [latestAppend]
1661
+ );
1662
+ const latestSendMessageFunc = useAsyncCallback(
1663
+ (message, options2) => __async(this, null, function* () {
1664
+ abortSuggestions(options2 == null ? void 0 : options2.clearSuggestions);
1665
+ return yield latestAppend.current((0, import_runtime_client_gql8.aguiToGQL)([message])[0], options2);
1637
1666
  }),
1638
1667
  [latestAppend]
1639
1668
  );
@@ -1645,20 +1674,23 @@ function useCopilotChat(options = {}) {
1645
1674
  [latestReload]
1646
1675
  );
1647
1676
  const latestStop = useUpdatedRef(stop);
1648
- const latestStopFunc = (0, import_react9.useCallback)(() => {
1677
+ const latestStopFunc = (0, import_react10.useCallback)(() => {
1649
1678
  return latestStop.current();
1650
1679
  }, [latestStop]);
1651
1680
  const latestDelete = useUpdatedRef(deleteMessage);
1652
- const latestDeleteFunc = (0, import_react9.useCallback)(
1681
+ const latestDeleteFunc = (0, import_react10.useCallback)(
1653
1682
  (messageId) => {
1654
1683
  return latestDelete.current(messageId);
1655
1684
  },
1656
1685
  [latestDelete]
1657
1686
  );
1658
1687
  const latestSetMessages = useUpdatedRef(setMessages);
1659
- const latestSetMessagesFunc = (0, import_react9.useCallback)(
1688
+ const latestSetMessagesFunc = (0, import_react10.useCallback)(
1660
1689
  (messages2) => {
1661
- return latestSetMessages.current((0, import_runtime_client_gql7.aguiToGQL)(messages2));
1690
+ if (messages2.every((message) => message instanceof import_runtime_client_gql8.Message)) {
1691
+ return latestSetMessages.current(messages2);
1692
+ }
1693
+ return latestSetMessages.current((0, import_runtime_client_gql8.aguiToGQL)(messages2));
1662
1694
  },
1663
1695
  [latestSetMessages]
1664
1696
  );
@@ -1666,7 +1698,7 @@ function useCopilotChat(options = {}) {
1666
1698
  const latestRunChatCompletionFunc = useAsyncCallback(() => __async(this, null, function* () {
1667
1699
  return yield latestRunChatCompletion.current();
1668
1700
  }), [latestRunChatCompletion]);
1669
- const reset = (0, import_react9.useCallback)(() => {
1701
+ const reset = (0, import_react10.useCallback)(() => {
1670
1702
  latestStopFunc();
1671
1703
  setMessages([]);
1672
1704
  setRunId(null);
@@ -1689,12 +1721,14 @@ function useCopilotChat(options = {}) {
1689
1721
  resetSuggestions
1690
1722
  ]);
1691
1723
  const latestReset = useUpdatedRef(reset);
1692
- const latestResetFunc = (0, import_react9.useCallback)(() => {
1724
+ const latestResetFunc = (0, import_react10.useCallback)(() => {
1693
1725
  return latestReset.current();
1694
1726
  }, [latestReset]);
1695
1727
  const interrupt = useLangGraphInterruptRender();
1696
1728
  return {
1697
- visibleMessages: (0, import_runtime_client_gql7.gqlToAGUI)(messages, actions, coAgentStateRenders),
1729
+ visibleMessages: messages,
1730
+ messages: (0, import_runtime_client_gql8.gqlToAGUI)(messages, actions, coAgentStateRenders),
1731
+ sendMessage: latestSendMessageFunc,
1698
1732
  appendMessage: latestAppendFunc,
1699
1733
  setMessages: latestSetMessagesFunc,
1700
1734
  reloadMessages: latestReloadFunc,
@@ -1714,8 +1748,8 @@ function useCopilotChat(options = {}) {
1714
1748
  };
1715
1749
  }
1716
1750
  function useUpdatedRef(value) {
1717
- const ref = (0, import_react9.useRef)(value);
1718
- (0, import_react9.useEffect)(() => {
1751
+ const ref = (0, import_react10.useRef)(value);
1752
+ (0, import_react10.useEffect)(() => {
1719
1753
  ref.current = value;
1720
1754
  }, [value]);
1721
1755
  return ref;
@@ -1748,29 +1782,28 @@ ${additionalInstructions}` : "");
1748
1782
  }
1749
1783
 
1750
1784
  // src/hooks/use-coagent.ts
1751
- var import_shared8 = require("@copilotkit/shared");
1785
+ var import_shared9 = require("@copilotkit/shared");
1752
1786
  function useCoAgent(options) {
1753
- const generalContext = useCopilotContext();
1754
- const { availableAgents } = generalContext;
1787
+ const context = useCopilotContext();
1788
+ const { availableAgents } = context;
1755
1789
  const { setBannerError } = useToast();
1756
- const lastLoadedThreadId = (0, import_react10.useRef)();
1757
- const lastLoadedState = (0, import_react10.useRef)();
1790
+ const lastLoadedThreadId = (0, import_react11.useRef)();
1791
+ const lastLoadedState = (0, import_react11.useRef)();
1758
1792
  const { name } = options;
1759
- (0, import_react10.useEffect)(() => {
1793
+ (0, import_react11.useEffect)(() => {
1760
1794
  if ((availableAgents == null ? void 0 : availableAgents.length) && !availableAgents.some((a) => a.name === name)) {
1761
1795
  const message = `(useCoAgent): Agent "${name}" not found. Make sure the agent exists and is properly configured.`;
1762
1796
  console.warn(message);
1763
- const agentError = new import_shared8.CopilotKitAgentDiscoveryError({
1797
+ const agentError = new import_shared9.CopilotKitAgentDiscoveryError({
1764
1798
  agentName: name,
1765
1799
  availableAgents: availableAgents.map((a) => ({ name: a.name, id: a.id }))
1766
1800
  });
1767
1801
  setBannerError(agentError);
1768
1802
  }
1769
1803
  }, [availableAgents]);
1770
- const messagesContext = useCopilotMessagesContext();
1771
- const context = __spreadValues(__spreadValues({}, generalContext), messagesContext);
1804
+ const { getMessagesFromTap } = useMessagesTap();
1772
1805
  const { coagentStates, coagentStatesRef, setCoagentStatesWithRef, threadId, copilotApiConfig } = context;
1773
- const { appendMessage, runChatCompletion } = useCopilotChat();
1806
+ const { sendMessage, runChatCompletion } = useCopilotChat();
1774
1807
  const headers = __spreadValues({}, copilotApiConfig.headers || {});
1775
1808
  const runtimeClient = useCopilotRuntimeClient({
1776
1809
  url: copilotApiConfig.chatApiEndpoint,
@@ -1779,7 +1812,7 @@ function useCoAgent(options) {
1779
1812
  credentials: copilotApiConfig.credentials,
1780
1813
  showDevConsole: context.showDevConsole
1781
1814
  });
1782
- const setState = (0, import_react10.useCallback)(
1815
+ const setState = (0, import_react11.useCallback)(
1783
1816
  (newState) => {
1784
1817
  let coagentState = getCoagentState({ coagentStates, name, options });
1785
1818
  const updatedState = typeof newState === "function" ? newState(coagentState.state) : newState;
@@ -1791,7 +1824,7 @@ function useCoAgent(options) {
1791
1824
  },
1792
1825
  [coagentStates, name]
1793
1826
  );
1794
- (0, import_react10.useEffect)(() => {
1827
+ (0, import_react11.useEffect)(() => {
1795
1828
  const fetchAgentState = () => __async(this, null, function* () {
1796
1829
  var _a, _b, _c, _d;
1797
1830
  if (!threadId || threadId === lastLoadedThreadId.current)
@@ -1809,13 +1842,13 @@ function useCoAgent(options) {
1809
1842
  if (((_d = (_c = result.data) == null ? void 0 : _c.loadAgentState) == null ? void 0 : _d.threadExists) && newState && newState != "{}") {
1810
1843
  lastLoadedState.current = newState;
1811
1844
  lastLoadedThreadId.current = threadId;
1812
- const fetchedState = (0, import_shared8.parseJson)(newState, {});
1845
+ const fetchedState = (0, import_shared9.parseJson)(newState, {});
1813
1846
  isExternalStateManagement(options) ? options.setState(fetchedState) : setState(fetchedState);
1814
1847
  }
1815
1848
  });
1816
1849
  void fetchAgentState();
1817
1850
  }, [threadId]);
1818
- (0, import_react10.useEffect)(() => {
1851
+ (0, import_react11.useEffect)(() => {
1819
1852
  if (isExternalStateManagement(options)) {
1820
1853
  setState(options.state);
1821
1854
  } else if (coagentStates[name] === void 0) {
@@ -1826,7 +1859,7 @@ function useCoAgent(options) {
1826
1859
  // reset initialstate on reset
1827
1860
  coagentStates[name] === void 0
1828
1861
  ]);
1829
- (0, import_react10.useEffect)(() => {
1862
+ (0, import_react11.useEffect)(() => {
1830
1863
  const newConfig = options.config ? options.config : options.configurable ? { configurable: options.configurable } : void 0;
1831
1864
  if (newConfig === void 0)
1832
1865
  return;
@@ -1854,11 +1887,11 @@ function useCoAgent(options) {
1854
1887
  }, [JSON.stringify(options.config), JSON.stringify(options.configurable)]);
1855
1888
  const runAgentCallback = useAsyncCallback(
1856
1889
  (hint) => __async(this, null, function* () {
1857
- yield runAgent(name, context, appendMessage, runChatCompletion, hint);
1890
+ yield runAgent(name, context, getMessagesFromTap(), sendMessage, runChatCompletion, hint);
1858
1891
  }),
1859
- [name, context, appendMessage, runChatCompletion]
1892
+ [name, context, sendMessage, runChatCompletion]
1860
1893
  );
1861
- return (0, import_react10.useMemo)(() => {
1894
+ return (0, import_react11.useMemo)(() => {
1862
1895
  const coagentState = getCoagentState({ coagentStates, name, options });
1863
1896
  return {
1864
1897
  name,
@@ -1898,7 +1931,7 @@ function stopAgent(name, context) {
1898
1931
  console.warn(`No agent session found for ${name}`);
1899
1932
  }
1900
1933
  }
1901
- function runAgent(name, context, appendMessage, runChatCompletion, hint) {
1934
+ function runAgent(name, context, messages, sendMessage, runChatCompletion, hint) {
1902
1935
  return __async(this, null, function* () {
1903
1936
  var _a, _b;
1904
1937
  const { agentSession, setAgentSession } = context;
@@ -1908,8 +1941,8 @@ function runAgent(name, context, appendMessage, runChatCompletion, hint) {
1908
1941
  });
1909
1942
  }
1910
1943
  let previousState = null;
1911
- for (let i = context.messages.length - 1; i >= 0; i--) {
1912
- const message = context.messages[i];
1944
+ for (let i = messages.length - 1; i >= 0; i--) {
1945
+ const message = messages[i];
1913
1946
  if (message.isAgentStateMessage() && message.agentName === name) {
1914
1947
  previousState = message.state;
1915
1948
  }
@@ -1918,7 +1951,7 @@ function runAgent(name, context, appendMessage, runChatCompletion, hint) {
1918
1951
  if (hint) {
1919
1952
  const hintMessage = hint({ previousState, currentState: state });
1920
1953
  if (hintMessage) {
1921
- yield appendMessage(hintMessage);
1954
+ yield sendMessage(hintMessage);
1922
1955
  } else {
1923
1956
  yield runChatCompletion();
1924
1957
  }