@copilotkit/react-core 1.5.1-next.2 → 1.5.1-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/{chunk-LNI2Z45S.mjs → chunk-2KCEHGSI.mjs} +50 -100
  3. package/dist/chunk-2KCEHGSI.mjs.map +1 -0
  4. package/dist/{chunk-2KT73RVG.mjs → chunk-6OR25P32.mjs} +19 -75
  5. package/dist/chunk-6OR25P32.mjs.map +1 -0
  6. package/dist/{chunk-3GQPEN4M.mjs → chunk-DDVXFNYA.mjs} +32 -66
  7. package/dist/chunk-DDVXFNYA.mjs.map +1 -0
  8. package/dist/{chunk-XOQMISG3.mjs → chunk-FXHKK52V.mjs} +13 -14
  9. package/dist/chunk-FXHKK52V.mjs.map +1 -0
  10. package/dist/{chunk-HIUT2NLX.mjs → chunk-H4VZMKR6.mjs} +2 -2
  11. package/dist/{chunk-X36DNILG.mjs → chunk-H7LSKIDK.mjs} +23 -71
  12. package/dist/chunk-H7LSKIDK.mjs.map +1 -0
  13. package/dist/chunk-JDQCJCAQ.mjs +295 -0
  14. package/dist/chunk-JDQCJCAQ.mjs.map +1 -0
  15. package/dist/chunk-L34MHAXR.mjs +1 -0
  16. package/dist/{chunk-WXREY7UP.mjs → chunk-LODRWFMB.mjs} +4 -16
  17. package/dist/chunk-LODRWFMB.mjs.map +1 -0
  18. package/dist/{chunk-EWKJMQOF.mjs → chunk-MWZO6TUR.mjs} +13 -29
  19. package/dist/chunk-MWZO6TUR.mjs.map +1 -0
  20. package/dist/{chunk-6BQVZFNO.mjs → chunk-ODN4H66E.mjs} +2 -6
  21. package/dist/chunk-ODN4H66E.mjs.map +1 -0
  22. package/dist/{chunk-FQ53HQYZ.mjs → chunk-QDGDXRRJ.mjs} +2 -2
  23. package/dist/{chunk-22XKTBPF.mjs → chunk-XINZBP3J.mjs} +3 -15
  24. package/dist/chunk-XINZBP3J.mjs.map +1 -0
  25. package/dist/components/copilot-provider/copilot-messages.d.ts +0 -9
  26. package/dist/components/copilot-provider/copilotkit-props.d.ts +0 -21
  27. package/dist/components/copilot-provider/copilotkit-props.js.map +1 -1
  28. package/dist/components/copilot-provider/copilotkit.d.ts +0 -9
  29. package/dist/components/copilot-provider/copilotkit.js +95 -224
  30. package/dist/components/copilot-provider/copilotkit.js.map +1 -1
  31. package/dist/components/copilot-provider/copilotkit.mjs +8 -9
  32. package/dist/components/copilot-provider/index.d.ts +0 -9
  33. package/dist/components/copilot-provider/index.js +95 -224
  34. package/dist/components/copilot-provider/index.js.map +1 -1
  35. package/dist/components/copilot-provider/index.mjs +8 -9
  36. package/dist/components/index.d.ts +0 -9
  37. package/dist/components/index.js +95 -224
  38. package/dist/components/index.js.map +1 -1
  39. package/dist/components/index.mjs +8 -9
  40. package/dist/components/toast/toast-provider.d.ts +1 -2
  41. package/dist/components/toast/toast-provider.js +63 -77
  42. package/dist/components/toast/toast-provider.js.map +1 -1
  43. package/dist/components/toast/toast-provider.mjs +1 -1
  44. package/dist/context/copilot-context.d.ts +4 -37
  45. package/dist/context/copilot-context.js +3 -15
  46. package/dist/context/copilot-context.js.map +1 -1
  47. package/dist/context/copilot-context.mjs +1 -1
  48. package/dist/context/index.d.ts +1 -1
  49. package/dist/context/index.js +3 -15
  50. package/dist/context/index.js.map +1 -1
  51. package/dist/context/index.mjs +4 -4
  52. package/dist/hooks/index.d.ts +1 -3
  53. package/dist/hooks/index.js +297 -703
  54. package/dist/hooks/index.js.map +1 -1
  55. package/dist/hooks/index.mjs +23 -35
  56. package/dist/hooks/use-chat.d.ts +3 -35
  57. package/dist/hooks/use-chat.js +205 -453
  58. package/dist/hooks/use-chat.js.map +1 -1
  59. package/dist/hooks/use-chat.mjs +3 -4
  60. package/dist/hooks/use-coagent-state-render.d.ts +2 -2
  61. package/dist/hooks/use-coagent-state-render.js +8 -43
  62. package/dist/hooks/use-coagent-state-render.js.map +1 -1
  63. package/dist/hooks/use-coagent-state-render.mjs +2 -4
  64. package/dist/hooks/use-coagent.d.ts +1 -14
  65. package/dist/hooks/use-coagent.js +265 -603
  66. package/dist/hooks/use-coagent.js.map +1 -1
  67. package/dist/hooks/use-coagent.mjs +12 -20
  68. package/dist/hooks/use-copilot-action.d.ts +2 -12
  69. package/dist/hooks/use-copilot-action.js +19 -169
  70. package/dist/hooks/use-copilot-action.js.map +1 -1
  71. package/dist/hooks/use-copilot-action.mjs +2 -4
  72. package/dist/hooks/use-copilot-chat.d.ts +0 -2
  73. package/dist/hooks/use-copilot-chat.js +240 -545
  74. package/dist/hooks/use-copilot-chat.js.map +1 -1
  75. package/dist/hooks/use-copilot-chat.mjs +11 -13
  76. package/dist/hooks/use-copilot-readable.js +3 -15
  77. package/dist/hooks/use-copilot-readable.js.map +1 -1
  78. package/dist/hooks/use-copilot-readable.mjs +2 -2
  79. package/dist/hooks/use-copilot-runtime-client.js +4 -110
  80. package/dist/hooks/use-copilot-runtime-client.js.map +1 -1
  81. package/dist/hooks/use-copilot-runtime-client.mjs +2 -2
  82. package/dist/hooks/use-make-copilot-document-readable.js +3 -15
  83. package/dist/hooks/use-make-copilot-document-readable.js.map +1 -1
  84. package/dist/hooks/use-make-copilot-document-readable.mjs +2 -2
  85. package/dist/index.d.ts +3 -4
  86. package/dist/index.js +398 -812
  87. package/dist/index.js.map +1 -1
  88. package/dist/index.mjs +31 -43
  89. package/dist/lib/copilot-task.d.ts +1 -6
  90. package/dist/lib/copilot-task.js +17 -55
  91. package/dist/lib/copilot-task.js.map +1 -1
  92. package/dist/lib/copilot-task.mjs +9 -11
  93. package/dist/lib/index.d.ts +1 -1
  94. package/dist/lib/index.js +17 -55
  95. package/dist/lib/index.js.map +1 -1
  96. package/dist/lib/index.mjs +9 -11
  97. package/dist/types/frontend-action.d.ts +2 -21
  98. package/dist/types/frontend-action.js +0 -34
  99. package/dist/types/frontend-action.js.map +1 -1
  100. package/dist/types/frontend-action.mjs +0 -7
  101. package/dist/types/index.d.ts +1 -2
  102. package/dist/types/index.js.map +1 -1
  103. package/dist/utils/extract.d.ts +2 -3
  104. package/dist/utils/extract.js +3 -21
  105. package/dist/utils/extract.js.map +1 -1
  106. package/dist/utils/extract.mjs +8 -9
  107. package/dist/utils/index.js +3 -21
  108. package/dist/utils/index.js.map +1 -1
  109. package/dist/utils/index.mjs +9 -10
  110. package/package.json +5 -5
  111. package/dist/chunk-22XKTBPF.mjs.map +0 -1
  112. package/dist/chunk-2KT73RVG.mjs.map +0 -1
  113. package/dist/chunk-3GQPEN4M.mjs.map +0 -1
  114. package/dist/chunk-6BQVZFNO.mjs.map +0 -1
  115. package/dist/chunk-EWKJMQOF.mjs.map +0 -1
  116. package/dist/chunk-LHKIIAUQ.mjs +0 -59
  117. package/dist/chunk-LHKIIAUQ.mjs.map +0 -1
  118. package/dist/chunk-LNI2Z45S.mjs.map +0 -1
  119. package/dist/chunk-NR2BTA6Z.mjs +0 -1
  120. package/dist/chunk-VGOFRULA.mjs +0 -401
  121. package/dist/chunk-VGOFRULA.mjs.map +0 -1
  122. package/dist/chunk-VNTDIJSG.mjs +0 -37
  123. package/dist/chunk-VNTDIJSG.mjs.map +0 -1
  124. package/dist/chunk-WXREY7UP.mjs.map +0 -1
  125. package/dist/chunk-X36DNILG.mjs.map +0 -1
  126. package/dist/chunk-XERJQUHA.mjs +0 -31
  127. package/dist/chunk-XERJQUHA.mjs.map +0 -1
  128. package/dist/chunk-XOQMISG3.mjs.map +0 -1
  129. package/dist/components/error-boundary/error-boundary.d.ts +0 -22
  130. package/dist/components/error-boundary/error-boundary.js +0 -183
  131. package/dist/components/error-boundary/error-boundary.js.map +0 -1
  132. package/dist/components/error-boundary/error-boundary.mjs +0 -12
  133. package/dist/components/error-boundary/error-boundary.mjs.map +0 -1
  134. package/dist/components/error-boundary/error-utils.d.ts +0 -11
  135. package/dist/components/error-boundary/error-utils.js +0 -177
  136. package/dist/components/error-boundary/error-utils.js.map +0 -1
  137. package/dist/components/error-boundary/error-utils.mjs +0 -13
  138. package/dist/components/error-boundary/error-utils.mjs.map +0 -1
  139. package/dist/hooks/use-copilot-authenticated-action.d.ts +0 -8
  140. package/dist/hooks/use-copilot-authenticated-action.js +0 -418
  141. package/dist/hooks/use-copilot-authenticated-action.js.map +0 -1
  142. package/dist/hooks/use-copilot-authenticated-action.mjs +0 -12
  143. package/dist/hooks/use-copilot-authenticated-action.mjs.map +0 -1
  144. /package/dist/{chunk-HIUT2NLX.mjs.map → chunk-H4VZMKR6.mjs.map} +0 -0
  145. /package/dist/{chunk-NR2BTA6Z.mjs.map → chunk-L34MHAXR.mjs.map} +0 -0
  146. /package/dist/{chunk-FQ53HQYZ.mjs.map → chunk-QDGDXRRJ.mjs.map} +0 -0
@@ -83,7 +83,7 @@ __export(use_copilot_chat_exports, {
83
83
  useCopilotChat: () => useCopilotChat
84
84
  });
85
85
  module.exports = __toCommonJS(use_copilot_chat_exports);
86
- var import_react8 = require("react");
86
+ var import_react7 = require("react");
87
87
 
88
88
  // src/context/copilot-context.tsx
89
89
  var import_react = __toESM(require("react"));
@@ -134,22 +134,9 @@ var emptyCopilotContext = {
134
134
  coagentStates: {},
135
135
  setCoagentStates: () => {
136
136
  },
137
- coagentStatesRef: { current: {} },
138
- setCoagentStatesWithRef: () => {
139
- },
140
137
  agentSession: null,
141
138
  setAgentSession: () => {
142
- },
143
- forwardedParameters: {},
144
- agentLock: null,
145
- threadId: null,
146
- setThreadId: () => {
147
- },
148
- runId: null,
149
- setRunId: () => {
150
- },
151
- chatAbortControllerRef: { current: null },
152
- availableAgents: []
139
+ }
153
140
  };
154
141
  var CopilotContext = import_react.default.createContext(emptyCopilotContext);
155
142
  function useCopilotContext() {
@@ -159,167 +146,25 @@ function useCopilotContext() {
159
146
  }
160
147
  return context;
161
148
  }
162
- function returnAndThrowInDebug(_value) {
149
+ function returnAndThrowInDebug(value) {
163
150
  throw new Error("Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!");
151
+ return value;
164
152
  }
165
153
 
166
154
  // src/hooks/use-copilot-chat.ts
167
- var import_runtime_client_gql4 = require("@copilotkit/runtime-client-gql");
168
-
169
- // src/hooks/use-chat.ts
170
- var import_react5 = require("react");
171
- var import_shared2 = require("@copilotkit/shared");
172
155
  var import_runtime_client_gql3 = require("@copilotkit/runtime-client-gql");
173
156
 
174
- // src/types/frontend-action.ts
175
- var import_runtime_client_gql = require("@copilotkit/runtime-client-gql");
157
+ // src/hooks/use-chat.ts
158
+ var import_react4 = require("react");
176
159
  var import_shared = require("@copilotkit/shared");
177
- function processActionsForRuntimeRequest(actions) {
178
- const filteredActions = actions.filter(
179
- (action) => action.available !== import_runtime_client_gql.ActionInputAvailability.Disabled && action.disabled !== true && action.name !== "*"
180
- ).map((action) => {
181
- let available = import_runtime_client_gql.ActionInputAvailability.Enabled;
182
- if (action.disabled) {
183
- available = import_runtime_client_gql.ActionInputAvailability.Disabled;
184
- } else if (action.available === "disabled") {
185
- available = import_runtime_client_gql.ActionInputAvailability.Disabled;
186
- } else if (action.available === "remote") {
187
- available = import_runtime_client_gql.ActionInputAvailability.Remote;
188
- }
189
- return {
190
- name: action.name,
191
- description: action.description || "",
192
- jsonSchema: JSON.stringify((0, import_shared.actionParametersToJsonSchema)(action.parameters || [])),
193
- available
194
- };
195
- });
196
- return filteredActions;
197
- }
198
-
199
- // src/hooks/use-copilot-runtime-client.ts
200
160
  var import_runtime_client_gql2 = require("@copilotkit/runtime-client-gql");
201
161
 
202
162
  // src/components/toast/toast-provider.tsx
203
- var import_react3 = require("react");
204
-
205
- // src/components/error-boundary/error-utils.tsx
206
163
  var import_react2 = require("react");
207
-
208
- // src/components/toast/exclamation-mark-icon.tsx
209
164
  var import_jsx_runtime = require("react/jsx-runtime");
210
- var ExclamationMarkIcon = ({
211
- className,
212
- style
213
- }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
214
- "svg",
215
- {
216
- xmlns: "http://www.w3.org/2000/svg",
217
- width: "24",
218
- height: "24",
219
- viewBox: "0 0 24 24",
220
- fill: "none",
221
- stroke: "currentColor",
222
- strokeWidth: "2",
223
- strokeLinecap: "round",
224
- strokeLinejoin: "round",
225
- className: `lucide lucide-circle-alert ${className ? className : ""}`,
226
- style,
227
- children: [
228
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "12", cy: "12", r: "10" }),
229
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("line", { x1: "12", x2: "12", y1: "8", y2: "12" }),
230
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("line", { x1: "12", x2: "12.01", y1: "16", y2: "16" })
231
- ]
232
- }
233
- );
234
-
235
- // src/components/error-boundary/error-utils.tsx
236
- var import_jsx_runtime2 = require("react/jsx-runtime");
237
- function ErrorToast({ errors }) {
238
- const errorsToRender = errors.map((error, idx) => {
239
- var _a, _b, _c;
240
- const message = "extensions" in error ? (_b = (_a = error.extensions) == null ? void 0 : _a.originalError) == null ? void 0 : _b.message : error.message;
241
- const code = "extensions" in error ? (_c = error.extensions) == null ? void 0 : _c.code : null;
242
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
243
- "div",
244
- {
245
- style: {
246
- marginTop: idx === 0 ? 0 : 10,
247
- marginBottom: 14
248
- },
249
- children: [
250
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ExclamationMarkIcon, { style: { marginBottom: 4 } }),
251
- code && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
252
- "div",
253
- {
254
- style: {
255
- fontWeight: "600",
256
- marginBottom: 4
257
- },
258
- children: [
259
- "Copilot Cloud Error:",
260
- " ",
261
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { fontFamily: "monospace", fontWeight: "normal" }, children: code })
262
- ]
263
- }
264
- ),
265
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { children: message })
266
- ]
267
- },
268
- idx
269
- );
270
- });
271
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
272
- "div",
273
- {
274
- style: {
275
- fontSize: "13px",
276
- maxWidth: "600px"
277
- },
278
- children: [
279
- errorsToRender,
280
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { fontSize: "11px", opacity: 0.75 }, children: "NOTE: This error only displays during local development." })
281
- ]
282
- }
283
- );
284
- }
285
- function useErrorToast() {
286
- const { addToast } = useToast();
287
- return (0, import_react2.useCallback)(
288
- (error) => {
289
- const errorId = error.map((err) => {
290
- var _a, _b;
291
- const message = "extensions" in err ? ((_b = (_a = err.extensions) == null ? void 0 : _a.originalError) == null ? void 0 : _b.message) || err.message : err.message;
292
- const stack = err.stack || "";
293
- return btoa(message + stack).slice(0, 32);
294
- }).join("|");
295
- addToast({
296
- type: "error",
297
- id: errorId,
298
- // Toast libraries typically dedupe by id
299
- message: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ErrorToast, { errors: error })
300
- });
301
- },
302
- [addToast]
303
- );
304
- }
305
- function useAsyncCallback(callback, deps) {
306
- const addErrorToast = useErrorToast();
307
- return (0, import_react2.useCallback)((...args) => __async(this, null, function* () {
308
- try {
309
- return yield callback(...args);
310
- } catch (error) {
311
- console.error("Error in async callback:", error);
312
- addErrorToast([error]);
313
- throw error;
314
- }
315
- }), deps);
316
- }
317
-
318
- // src/components/toast/toast-provider.tsx
319
- var import_jsx_runtime3 = require("react/jsx-runtime");
320
- var ToastContext = (0, import_react3.createContext)(void 0);
165
+ var ToastContext = (0, import_react2.createContext)(void 0);
321
166
  function useToast() {
322
- const context = (0, import_react3.useContext)(ToastContext);
167
+ const context = (0, import_react2.useContext)(ToastContext);
323
168
  if (!context) {
324
169
  throw new Error("useToast must be used within a ToastProvider");
325
170
  }
@@ -327,17 +172,15 @@ function useToast() {
327
172
  }
328
173
 
329
174
  // src/hooks/use-copilot-runtime-client.ts
330
- var import_react4 = require("react");
175
+ var import_runtime_client_gql = require("@copilotkit/runtime-client-gql");
176
+ var import_react3 = require("react");
331
177
  var useCopilotRuntimeClient = (options) => {
332
178
  const { addGraphQLErrorsToast } = useToast();
333
- const addErrorToast = useErrorToast();
334
- const runtimeClient = (0, import_react4.useMemo)(() => {
335
- return new import_runtime_client_gql2.CopilotRuntimeClient(__spreadProps(__spreadValues({}, options), {
179
+ const runtimeClient = (0, import_react3.useMemo)(() => {
180
+ return new import_runtime_client_gql.CopilotRuntimeClient(__spreadProps(__spreadValues({}, options), {
336
181
  handleGQLErrors: (error) => {
337
182
  if (error.graphQLErrors.length) {
338
183
  addGraphQLErrorsToast(error.graphQLErrors);
339
- } else {
340
- addErrorToast([error]);
341
184
  }
342
185
  }
343
186
  }));
@@ -358,317 +201,232 @@ function useChat(options) {
358
201
  actions,
359
202
  onFunctionCall,
360
203
  onCoAgentStateRender,
361
- setCoagentStatesWithRef,
362
- coagentStatesRef,
204
+ setCoagentStates,
205
+ coagentStates,
363
206
  agentSession,
364
- setAgentSession,
365
- threadId,
366
- setThreadId,
367
- runId,
368
- setRunId,
369
- chatAbortControllerRef,
370
- agentLock
207
+ setAgentSession
371
208
  } = options;
372
- const runChatCompletionRef = (0, import_react5.useRef)();
373
- const agentSessionRef = (0, import_react5.useRef)(agentSession);
209
+ const abortControllerRef = (0, import_react4.useRef)();
210
+ const threadIdRef = (0, import_react4.useRef)(null);
211
+ const runIdRef = (0, import_react4.useRef)(null);
212
+ const { addGraphQLErrorsToast } = useToast();
213
+ const runChatCompletionRef = (0, import_react4.useRef)();
214
+ const coagentStatesRef = (0, import_react4.useRef)(coagentStates);
215
+ coagentStatesRef.current = coagentStates;
216
+ const agentSessionRef = (0, import_react4.useRef)(agentSession);
374
217
  agentSessionRef.current = agentSession;
375
- const threadIdRef = (0, import_react5.useRef)(threadId);
376
- threadIdRef.current = threadId;
377
- const runIdRef = (0, import_react5.useRef)(runId);
378
- runIdRef.current = runId;
379
218
  const publicApiKey = copilotConfig.publicApiKey;
380
- const headers = __spreadValues(__spreadValues({}, copilotConfig.headers || {}), publicApiKey ? { [import_shared2.COPILOT_CLOUD_PUBLIC_API_KEY_HEADER]: publicApiKey } : {});
219
+ const headers = __spreadValues(__spreadValues({}, copilotConfig.headers || {}), publicApiKey ? { [import_shared.COPILOT_CLOUD_PUBLIC_API_KEY_HEADER]: publicApiKey } : {});
381
220
  const runtimeClient = useCopilotRuntimeClient({
382
221
  url: copilotConfig.chatApiEndpoint,
383
222
  publicApiKey: copilotConfig.publicApiKey,
384
223
  headers,
385
224
  credentials: copilotConfig.credentials
386
225
  });
387
- const runChatCompletion = useAsyncCallback(
388
- (previousMessages) => __async(this, null, function* () {
389
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
390
- setIsLoading(true);
391
- let newMessages = [
392
- new import_runtime_client_gql3.TextMessage({
393
- content: "",
394
- role: import_runtime_client_gql3.Role.Assistant
395
- })
396
- ];
397
- chatAbortControllerRef.current = new AbortController();
398
- setMessages([...previousMessages, ...newMessages]);
399
- const systemMessage = makeSystemMessageCallback();
400
- const messagesWithContext = [systemMessage, ...initialMessages || [], ...previousMessages];
401
- const isAgentRun = agentSessionRef.current !== null;
402
- const stream = runtimeClient.asStream(
403
- runtimeClient.generateCopilotResponse({
404
- data: __spreadProps(__spreadValues(__spreadProps(__spreadValues({
405
- frontend: {
406
- actions: processActionsForRuntimeRequest(actions),
407
- url: window.location.href
408
- },
409
- threadId: threadIdRef.current,
410
- runId: runIdRef.current,
411
- messages: (0, import_runtime_client_gql3.convertMessagesToGqlInput)((0, import_runtime_client_gql3.filterAgentStateMessages)(messagesWithContext))
412
- }, copilotConfig.cloud ? {
413
- cloud: __spreadValues({}, ((_c = (_b = (_a = copilotConfig.cloud.guardrails) == null ? void 0 : _a.input) == null ? void 0 : _b.restrictToTopic) == null ? void 0 : _c.enabled) ? {
414
- guardrails: {
415
- inputValidationRules: {
416
- allowList: copilotConfig.cloud.guardrails.input.restrictToTopic.validTopics,
417
- denyList: copilotConfig.cloud.guardrails.input.restrictToTopic.invalidTopics
418
- }
226
+ const runChatCompletion = (previousMessages) => __async(this, null, function* () {
227
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
228
+ setIsLoading(true);
229
+ let newMessages = [
230
+ new import_runtime_client_gql2.TextMessage({
231
+ content: "",
232
+ role: import_runtime_client_gql2.Role.Assistant
233
+ })
234
+ ];
235
+ const abortController = new AbortController();
236
+ abortControllerRef.current = abortController;
237
+ setMessages([...previousMessages, ...newMessages]);
238
+ const systemMessage = makeSystemMessageCallback();
239
+ const messagesWithContext = [systemMessage, ...initialMessages || [], ...previousMessages];
240
+ const stream = runtimeClient.asStream(
241
+ runtimeClient.generateCopilotResponse({
242
+ data: __spreadProps(__spreadValues(__spreadProps(__spreadValues({
243
+ frontend: {
244
+ actions: actions.filter(
245
+ (action) => action.available !== import_runtime_client_gql2.ActionInputAvailability.Disabled || !action.disabled
246
+ ).map((action) => {
247
+ let available = import_runtime_client_gql2.ActionInputAvailability.Enabled;
248
+ if (action.disabled) {
249
+ available = import_runtime_client_gql2.ActionInputAvailability.Disabled;
250
+ } else if (action.available === "disabled") {
251
+ available = import_runtime_client_gql2.ActionInputAvailability.Disabled;
252
+ } else if (action.available === "remote") {
253
+ available = import_runtime_client_gql2.ActionInputAvailability.Remote;
254
+ }
255
+ return {
256
+ name: action.name,
257
+ description: action.description || "",
258
+ jsonSchema: JSON.stringify((0, import_shared.actionParametersToJsonSchema)(action.parameters || [])),
259
+ available
260
+ };
261
+ }),
262
+ url: window.location.href
263
+ },
264
+ threadId: threadIdRef.current,
265
+ runId: runIdRef.current,
266
+ messages: (0, import_runtime_client_gql2.convertMessagesToGqlInput)((0, import_runtime_client_gql2.filterAgentStateMessages)(messagesWithContext))
267
+ }, copilotConfig.cloud ? {
268
+ cloud: __spreadValues({}, ((_c = (_b = (_a = copilotConfig.cloud.guardrails) == null ? void 0 : _a.input) == null ? void 0 : _b.restrictToTopic) == null ? void 0 : _c.enabled) ? {
269
+ guardrails: {
270
+ inputValidationRules: {
271
+ allowList: copilotConfig.cloud.guardrails.input.restrictToTopic.validTopics,
272
+ denyList: copilotConfig.cloud.guardrails.input.restrictToTopic.invalidTopics
419
273
  }
420
- } : {})
421
- } : {}), {
422
- metadata: {
423
- requestType: import_runtime_client_gql3.CopilotRequestType.Chat
424
- }
425
- }), agentSessionRef.current ? {
426
- agentSession: agentSessionRef.current
427
- } : {}), {
428
- agentStates: Object.values(coagentStatesRef.current).map((state) => ({
429
- agentName: state.name,
430
- state: JSON.stringify(state.state)
431
- })),
432
- forwardedParameters: options.forwardedParameters || {}
433
- }),
434
- properties: copilotConfig.properties,
435
- signal: (_d = chatAbortControllerRef.current) == null ? void 0 : _d.signal
436
- })
437
- );
438
- const guardrailsEnabled = ((_g = (_f = (_e = copilotConfig.cloud) == null ? void 0 : _e.guardrails) == null ? void 0 : _f.input) == null ? void 0 : _g.restrictToTopic.enabled) || false;
439
- const reader = stream.getReader();
440
- let executedCoAgentStateRenders = [];
441
- let followUp = void 0;
442
- let messages2 = [];
443
- let syncedMessages = [];
444
- try {
445
- while (true) {
446
- let done, value;
447
- try {
448
- const readResult = yield reader.read();
449
- done = readResult.done;
450
- value = readResult.value;
451
- } catch (readError) {
452
- break;
453
- }
454
- if (done) {
455
- if (chatAbortControllerRef.current.signal.aborted) {
456
- return [];
457
274
  }
458
- break;
459
- }
460
- if (!(value == null ? void 0 : value.generateCopilotResponse)) {
461
- continue;
275
+ } : {})
276
+ } : {}), {
277
+ metadata: {
278
+ requestType: import_runtime_client_gql2.CopilotRequestType.Chat
462
279
  }
463
- threadIdRef.current = value.generateCopilotResponse.threadId || null;
464
- runIdRef.current = value.generateCopilotResponse.runId || null;
465
- setThreadId(threadIdRef.current);
466
- setRunId(runIdRef.current);
467
- messages2 = (0, import_runtime_client_gql3.convertGqlOutputToMessages)(
468
- (0, import_runtime_client_gql3.filterAdjacentAgentStateMessages)(value.generateCopilotResponse.messages)
469
- );
470
- if (messages2.length === 0) {
471
- continue;
472
- }
473
- newMessages = [];
474
- if (((_h = value.generateCopilotResponse.status) == null ? void 0 : _h.__typename) === "FailedResponseStatus" && value.generateCopilotResponse.status.reason === "GUARDRAILS_VALIDATION_FAILED") {
475
- newMessages = [
476
- new import_runtime_client_gql3.TextMessage({
477
- role: import_runtime_client_gql3.MessageRole.Assistant,
478
- content: ((_i = value.generateCopilotResponse.status.details) == null ? void 0 : _i.guardrailsReason) || ""
479
- })
480
- ];
481
- setMessages([...previousMessages, ...newMessages]);
482
- break;
483
- } else {
484
- newMessages = [...messages2];
485
- for (const message of messages2) {
486
- if (message.isAgentStateMessage() && !message.active && !executedCoAgentStateRenders.includes(message.id) && onCoAgentStateRender) {
280
+ }), agentSessionRef.current ? {
281
+ agentSession: agentSessionRef.current
282
+ } : {}), {
283
+ agentStates: Object.values(coagentStatesRef.current).map((state) => ({
284
+ agentName: state.name,
285
+ state: JSON.stringify(state.state)
286
+ }))
287
+ }),
288
+ properties: copilotConfig.properties,
289
+ signal: (_d = abortControllerRef.current) == null ? void 0 : _d.signal
290
+ })
291
+ );
292
+ const guardrailsEnabled = ((_g = (_f = (_e = copilotConfig.cloud) == null ? void 0 : _e.guardrails) == null ? void 0 : _f.input) == null ? void 0 : _g.restrictToTopic.enabled) || false;
293
+ const reader = stream.getReader();
294
+ let actionResults = {};
295
+ let executedCoAgentStateRenders = [];
296
+ let followUp = void 0;
297
+ try {
298
+ while (true) {
299
+ let done, value;
300
+ try {
301
+ const readResult = yield reader.read();
302
+ done = readResult.done;
303
+ value = readResult.value;
304
+ } catch (readError) {
305
+ break;
306
+ }
307
+ if (done) {
308
+ break;
309
+ }
310
+ if (!(value == null ? void 0 : value.generateCopilotResponse)) {
311
+ continue;
312
+ }
313
+ threadIdRef.current = value.generateCopilotResponse.threadId || null;
314
+ runIdRef.current = value.generateCopilotResponse.runId || null;
315
+ const messages2 = (0, import_runtime_client_gql2.convertGqlOutputToMessages)(
316
+ (0, import_runtime_client_gql2.filterAdjacentAgentStateMessages)(value.generateCopilotResponse.messages)
317
+ );
318
+ if (messages2.length === 0) {
319
+ continue;
320
+ }
321
+ newMessages = [];
322
+ if (((_h = value.generateCopilotResponse.status) == null ? void 0 : _h.__typename) === "FailedResponseStatus" && value.generateCopilotResponse.status.reason === "GUARDRAILS_VALIDATION_FAILED") {
323
+ newMessages = [
324
+ new import_runtime_client_gql2.TextMessage({
325
+ role: import_runtime_client_gql2.MessageRole.Assistant,
326
+ content: ((_i = value.generateCopilotResponse.status.details) == null ? void 0 : _i.guardrailsReason) || ""
327
+ })
328
+ ];
329
+ } else {
330
+ for (const message of messages2) {
331
+ newMessages.push(message);
332
+ if (message.isActionExecutionMessage() && message.status.code !== import_runtime_client_gql2.MessageStatusCode.Pending && message.scope === "client" && onFunctionCall) {
333
+ if (!(message.id in actionResults)) {
487
334
  if (guardrailsEnabled && value.generateCopilotResponse.status === void 0) {
488
335
  break;
489
336
  }
490
- yield onCoAgentStateRender({
491
- name: message.agentName,
492
- nodeName: message.nodeName,
493
- state: message.state
494
- });
495
- executedCoAgentStateRenders.push(message.id);
496
- }
497
- }
498
- const lastAgentStateMessage = [...messages2].reverse().find((message) => message.isAgentStateMessage());
499
- if (lastAgentStateMessage) {
500
- if (lastAgentStateMessage.state.messages && lastAgentStateMessage.state.messages.length > 0) {
501
- syncedMessages = (0, import_runtime_client_gql3.loadMessagesFromJsonRepresentation)(
502
- lastAgentStateMessage.state.messages
503
- );
504
- }
505
- setCoagentStatesWithRef((prevAgentStates) => __spreadProps(__spreadValues({}, prevAgentStates), {
506
- [lastAgentStateMessage.agentName]: {
507
- name: lastAgentStateMessage.agentName,
508
- state: lastAgentStateMessage.state,
509
- running: lastAgentStateMessage.running,
510
- active: lastAgentStateMessage.active,
511
- threadId: lastAgentStateMessage.threadId,
512
- nodeName: lastAgentStateMessage.nodeName,
513
- runId: lastAgentStateMessage.runId
514
- }
515
- }));
516
- if (lastAgentStateMessage.running) {
517
- setAgentSession({
518
- threadId: lastAgentStateMessage.threadId,
519
- agentName: lastAgentStateMessage.agentName,
520
- nodeName: lastAgentStateMessage.nodeName
521
- });
522
- } else {
523
- if (agentLock) {
524
- setAgentSession({
525
- threadId: (0, import_shared2.randomId)(),
526
- agentName: agentLock,
527
- nodeName: void 0
528
- });
529
- } else {
530
- setAgentSession(null);
531
- }
532
- }
533
- }
534
- }
535
- if (newMessages.length > 0) {
536
- setMessages([...previousMessages, ...newMessages]);
537
- }
538
- }
539
- const finalMessages = constructFinalMessages(syncedMessages, previousMessages, newMessages);
540
- let didExecuteAction = false;
541
- if (onFunctionCall) {
542
- const lastMessages = [];
543
- for (let i = finalMessages.length - 1; i >= 0; i--) {
544
- const message = finalMessages[i];
545
- if (message.isActionExecutionMessage() && message.status.code !== import_runtime_client_gql3.MessageStatusCode.Pending) {
546
- lastMessages.unshift(message);
547
- } else {
548
- break;
549
- }
550
- }
551
- for (const message of lastMessages) {
552
- setMessages(finalMessages);
553
- const action = actions.find((action2) => action2.name === message.name);
554
- if (action) {
555
- followUp = action.followUp;
556
- let result;
557
- try {
558
- result = yield Promise.race([
559
- onFunctionCall({
337
+ try {
338
+ setMessages([...previousMessages, ...newMessages]);
339
+ const action = actions.find((action2) => action2.name === message.name);
340
+ if (action) {
341
+ followUp = action.followUp;
342
+ }
343
+ const result = yield onFunctionCall({
560
344
  messages: previousMessages,
561
345
  name: message.name,
562
346
  args: message.arguments
563
- }),
564
- new Promise(
565
- (resolve) => {
566
- var _a2;
567
- return (_a2 = chatAbortControllerRef.current) == null ? void 0 : _a2.signal.addEventListener(
568
- "abort",
569
- () => resolve("Operation was aborted by the user")
570
- );
571
- }
572
- ),
573
- // if the user stopped generation, we also abort consecutive actions
574
- new Promise((resolve) => {
575
- var _a2;
576
- if ((_a2 = chatAbortControllerRef.current) == null ? void 0 : _a2.signal.aborted) {
577
- resolve("Operation was aborted by the user");
578
- }
579
- })
580
- ]);
581
- } catch (e) {
582
- result = `Failed to execute action ${message.name}`;
583
- console.error(`Failed to execute action ${message.name}: ${e}`);
347
+ });
348
+ actionResults[message.id] = result;
349
+ } catch (e) {
350
+ actionResults[message.id] = `Failed to execute action ${message.name}`;
351
+ console.error(`Failed to execute action ${message.name}: ${e}`);
352
+ }
584
353
  }
585
- didExecuteAction = true;
586
- const messageIndex = finalMessages.findIndex((msg) => msg.id === message.id);
587
- finalMessages.splice(
588
- messageIndex + 1,
589
- 0,
590
- new import_runtime_client_gql3.ResultMessage({
591
- id: "result-" + message.id,
592
- result: import_runtime_client_gql3.ResultMessage.encodeResult(result),
354
+ newMessages.push(
355
+ new import_runtime_client_gql2.ResultMessage({
356
+ result: import_runtime_client_gql2.ResultMessage.encodeResult(actionResults[message.id]),
593
357
  actionExecutionId: message.id,
594
358
  actionName: message.name
595
359
  })
596
360
  );
597
361
  }
362
+ if (message.isAgentStateMessage() && !message.active && !executedCoAgentStateRenders.includes(message.id) && onCoAgentStateRender) {
363
+ if (guardrailsEnabled && value.generateCopilotResponse.status === void 0) {
364
+ break;
365
+ }
366
+ yield onCoAgentStateRender({
367
+ name: message.agentName,
368
+ nodeName: message.nodeName,
369
+ state: message.state
370
+ });
371
+ executedCoAgentStateRenders.push(message.id);
372
+ }
598
373
  }
599
- setMessages(finalMessages);
600
- }
601
- if (
602
- // if followUp is not explicitly false
603
- followUp !== false && // and we executed an action
604
- (didExecuteAction || // the last message is a server side result
605
- !isAgentRun && finalMessages.length && finalMessages[finalMessages.length - 1].isResultMessage()) && // the user did not stop generation
606
- !((_j = chatAbortControllerRef.current) == null ? void 0 : _j.signal.aborted)
607
- ) {
608
- yield new Promise((resolve) => setTimeout(resolve, 10));
609
- return yield runChatCompletionRef.current(finalMessages);
610
- } else if ((_k = chatAbortControllerRef.current) == null ? void 0 : _k.signal.aborted) {
611
- const repairedMessages = finalMessages.filter((message, actionExecutionIndex) => {
612
- if (message.isActionExecutionMessage()) {
613
- return finalMessages.find(
614
- (msg, resultIndex) => msg.isResultMessage() && msg.actionExecutionId === message.id && resultIndex === actionExecutionIndex + 1
615
- );
374
+ const lastAgentStateMessage = [...messages2].reverse().find((message) => message.isAgentStateMessage());
375
+ if (lastAgentStateMessage) {
376
+ setCoagentStates((prevAgentStates) => __spreadProps(__spreadValues({}, prevAgentStates), {
377
+ [lastAgentStateMessage.agentName]: {
378
+ name: lastAgentStateMessage.agentName,
379
+ state: lastAgentStateMessage.state,
380
+ running: lastAgentStateMessage.running,
381
+ active: lastAgentStateMessage.active,
382
+ threadId: lastAgentStateMessage.threadId,
383
+ nodeName: lastAgentStateMessage.nodeName,
384
+ runId: lastAgentStateMessage.runId
385
+ }
386
+ }));
387
+ if (lastAgentStateMessage.running) {
388
+ setAgentSession({
389
+ threadId: lastAgentStateMessage.threadId,
390
+ agentName: lastAgentStateMessage.agentName,
391
+ nodeName: lastAgentStateMessage.nodeName
392
+ });
393
+ } else {
394
+ setAgentSession(null);
616
395
  }
617
- return true;
618
- });
619
- const repairedMessageIds = repairedMessages.map((message) => message.id);
620
- setMessages(repairedMessages);
621
- if ((_l = agentSessionRef.current) == null ? void 0 : _l.nodeName) {
622
- setAgentSession({
623
- threadId: agentSessionRef.current.threadId,
624
- agentName: agentSessionRef.current.agentName,
625
- nodeName: "__end__"
626
- });
627
396
  }
628
- return newMessages.filter((message) => repairedMessageIds.includes(message.id));
629
- } else {
630
- return newMessages.slice();
631
397
  }
632
- } finally {
633
- setIsLoading(false);
398
+ if (newMessages.length > 0) {
399
+ setMessages([...previousMessages, ...newMessages]);
400
+ }
634
401
  }
635
- }),
636
- [
637
- messages,
638
- setMessages,
639
- makeSystemMessageCallback,
640
- copilotConfig,
641
- setIsLoading,
642
- initialMessages,
643
- isLoading,
644
- actions,
645
- onFunctionCall,
646
- onCoAgentStateRender,
647
- setCoagentStatesWithRef,
648
- coagentStatesRef,
649
- agentSession,
650
- setAgentSession
651
- ]
652
- );
653
- runChatCompletionRef.current = runChatCompletion;
654
- const runChatCompletionAndHandleFunctionCall = useAsyncCallback(
655
- (messages2) => __async(this, null, function* () {
656
- yield runChatCompletionRef.current(messages2);
657
- }),
658
- [messages]
659
- );
660
- const append = useAsyncCallback(
661
- (message) => __async(this, null, function* () {
662
- if (isLoading) {
663
- return;
402
+ if (
403
+ // if followUp is not explicitly false
404
+ followUp !== false && // if we have client side results
405
+ (Object.values(actionResults).length || // or the last message we received is a result
406
+ newMessages.length && newMessages[newMessages.length - 1].isResultMessage())
407
+ ) {
408
+ yield new Promise((resolve) => setTimeout(resolve, 10));
409
+ return yield runChatCompletionRef.current([...previousMessages, ...newMessages]);
410
+ } else {
411
+ return newMessages.slice();
664
412
  }
665
- const newMessages = [...messages, message];
666
- setMessages(newMessages);
667
- return runChatCompletionAndHandleFunctionCall(newMessages);
668
- }),
669
- [isLoading, messages, setMessages, runChatCompletionAndHandleFunctionCall]
670
- );
671
- const reload = useAsyncCallback(() => __async(this, null, function* () {
413
+ } finally {
414
+ setIsLoading(false);
415
+ }
416
+ });
417
+ runChatCompletionRef.current = runChatCompletion;
418
+ const runChatCompletionAndHandleFunctionCall = (messages2) => __async(this, null, function* () {
419
+ yield runChatCompletionRef.current(messages2);
420
+ });
421
+ const append = (message) => __async(this, null, function* () {
422
+ if (isLoading) {
423
+ return;
424
+ }
425
+ const newMessages = [...messages, message];
426
+ setMessages(newMessages);
427
+ return runChatCompletionAndHandleFunctionCall(newMessages);
428
+ });
429
+ const reload = () => __async(this, null, function* () {
672
430
  if (isLoading || messages.length === 0) {
673
431
  return;
674
432
  }
@@ -679,50 +437,32 @@ function useChat(options) {
679
437
  }
680
438
  setMessages(newMessages);
681
439
  return runChatCompletionAndHandleFunctionCall(newMessages);
682
- }), [isLoading, messages, setMessages, runChatCompletionAndHandleFunctionCall]);
440
+ });
683
441
  const stop = () => {
684
442
  var _a;
685
- (_a = chatAbortControllerRef.current) == null ? void 0 : _a.abort("Stop was called");
443
+ (_a = abortControllerRef.current) == null ? void 0 : _a.abort();
686
444
  };
687
445
  return {
688
446
  append,
689
447
  reload,
690
- stop,
691
- runChatCompletion: () => runChatCompletionRef.current(messages)
448
+ stop
692
449
  };
693
450
  }
694
- function constructFinalMessages(syncedMessages, previousMessages, newMessages) {
695
- const finalMessages = syncedMessages.length > 0 ? [...syncedMessages] : [...previousMessages, ...newMessages];
696
- if (syncedMessages.length > 0) {
697
- const messagesWithAgentState = [...previousMessages, ...newMessages];
698
- let previousMessageId = void 0;
699
- for (const message of messagesWithAgentState) {
700
- if (message.isAgentStateMessage()) {
701
- const index = finalMessages.findIndex((msg) => msg.id === previousMessageId);
702
- if (index !== -1) {
703
- finalMessages.splice(index + 1, 0, message);
704
- }
705
- }
706
- previousMessageId = message.id;
707
- }
708
- }
709
- return finalMessages;
710
- }
711
451
 
712
452
  // src/components/copilot-provider/copilotkit.tsx
713
- var import_react7 = require("react");
453
+ var import_react6 = require("react");
714
454
  var import_react_dom = require("react-dom");
715
- var import_shared3 = require("@copilotkit/shared");
455
+ var import_shared2 = require("@copilotkit/shared");
716
456
 
717
457
  // src/context/copilot-messages-context.tsx
718
- var import_react6 = __toESM(require("react"));
458
+ var import_react5 = __toESM(require("react"));
719
459
  var emptyCopilotContext2 = {
720
460
  messages: [],
721
461
  setMessages: () => []
722
462
  };
723
- var CopilotMessagesContext = import_react6.default.createContext(emptyCopilotContext2);
463
+ var CopilotMessagesContext = import_react5.default.createContext(emptyCopilotContext2);
724
464
  function useCopilotMessagesContext() {
725
- const context = import_react6.default.useContext(CopilotMessagesContext);
465
+ const context = import_react5.default.useContext(CopilotMessagesContext);
726
466
  if (context === emptyCopilotContext2) {
727
467
  throw new Error(
728
468
  "A messages consuming component was not wrapped with `<CopilotMessages> {...} </CopilotMessages>`"
@@ -732,7 +472,7 @@ function useCopilotMessagesContext() {
732
472
  }
733
473
 
734
474
  // src/components/copilot-provider/copilotkit.tsx
735
- var import_jsx_runtime4 = require("react/jsx-runtime");
475
+ var import_jsx_runtime2 = require("react/jsx-runtime");
736
476
  var defaultCopilotContextCategories = ["global"];
737
477
 
738
478
  // src/hooks/use-copilot-chat.ts
@@ -750,36 +490,29 @@ function useCopilotChat(_a = {}) {
750
490
  setIsLoading,
751
491
  chatInstructions,
752
492
  actions,
753
- coagentStatesRef,
754
- setCoagentStatesWithRef,
493
+ coagentStates,
494
+ setCoagentStates,
755
495
  coAgentStateRenders,
756
496
  agentSession,
757
- setAgentSession,
758
- forwardedParameters,
759
- agentLock,
760
- threadId,
761
- setThreadId,
762
- runId,
763
- setRunId,
764
- chatAbortControllerRef
497
+ setAgentSession
765
498
  } = useCopilotContext();
766
499
  const { messages, setMessages } = useCopilotMessagesContext();
767
500
  const latestGetContextString = useUpdatedRef(getContextString);
768
- const deleteMessage = (0, import_react8.useCallback)(
501
+ const deleteMessage = (0, import_react7.useCallback)(
769
502
  (messageId) => {
770
503
  setMessages((prev) => prev.filter((message) => message.id !== messageId));
771
504
  },
772
505
  [setMessages]
773
506
  );
774
- const makeSystemMessageCallback = (0, import_react8.useCallback)(() => {
507
+ const makeSystemMessageCallback = (0, import_react7.useCallback)(() => {
775
508
  const systemMessageMaker = makeSystemMessage || defaultSystemMessage;
776
509
  const contextString = latestGetContextString.current([], defaultCopilotContextCategories);
777
- return new import_runtime_client_gql4.TextMessage({
510
+ return new import_runtime_client_gql3.TextMessage({
778
511
  content: systemMessageMaker(contextString, chatInstructions),
779
- role: import_runtime_client_gql4.Role.System
512
+ role: import_runtime_client_gql3.Role.System
780
513
  });
781
514
  }, [getContextString, makeSystemMessage, chatInstructions]);
782
- const onCoAgentStateRender = useAsyncCallback(
515
+ const onCoAgentStateRender = (0, import_react7.useCallback)(
783
516
  (args) => __async(this, null, function* () {
784
517
  var _a2;
785
518
  const { name, nodeName, state } = args;
@@ -797,7 +530,7 @@ function useCopilotChat(_a = {}) {
797
530
  }),
798
531
  [coAgentStateRenders]
799
532
  );
800
- const { append, reload, stop, runChatCompletion } = useChat(__spreadProps(__spreadValues({}, options), {
533
+ const { append, reload, stop } = useChat(__spreadProps(__spreadValues({}, options), {
801
534
  actions: Object.values(actions),
802
535
  copilotConfig: copilotApiConfig,
803
536
  initialMessages: options.initialMessages || [],
@@ -808,91 +541,53 @@ function useCopilotChat(_a = {}) {
808
541
  makeSystemMessageCallback,
809
542
  isLoading,
810
543
  setIsLoading,
811
- coagentStatesRef,
812
- setCoagentStatesWithRef,
544
+ coagentStates,
545
+ setCoagentStates,
813
546
  agentSession,
814
- setAgentSession,
815
- forwardedParameters,
816
- threadId,
817
- setThreadId,
818
- runId,
819
- setRunId,
820
- chatAbortControllerRef,
821
- agentLock
547
+ setAgentSession
822
548
  }));
823
549
  const latestAppend = useUpdatedRef(append);
824
- const latestAppendFunc = useAsyncCallback(
825
- (message) => __async(this, null, function* () {
826
- return yield latestAppend.current(message);
827
- }),
550
+ const latestAppendFunc = (0, import_react7.useCallback)(
551
+ (message) => {
552
+ return latestAppend.current(message);
553
+ },
828
554
  [latestAppend]
829
555
  );
830
556
  const latestReload = useUpdatedRef(reload);
831
- const latestReloadFunc = useAsyncCallback(() => __async(this, null, function* () {
832
- return yield latestReload.current();
833
- }), [latestReload]);
557
+ const latestReloadFunc = (0, import_react7.useCallback)(() => {
558
+ return latestReload.current();
559
+ }, [latestReload]);
834
560
  const latestStop = useUpdatedRef(stop);
835
- const latestStopFunc = (0, import_react8.useCallback)(() => {
561
+ const latestStopFunc = (0, import_react7.useCallback)(() => {
836
562
  return latestStop.current();
837
563
  }, [latestStop]);
838
564
  const latestDelete = useUpdatedRef(deleteMessage);
839
- const latestDeleteFunc = (0, import_react8.useCallback)(
565
+ const latestDeleteFunc = (0, import_react7.useCallback)(
840
566
  (messageId) => {
841
567
  return latestDelete.current(messageId);
842
568
  },
843
569
  [latestDelete]
844
570
  );
845
571
  const latestSetMessages = useUpdatedRef(setMessages);
846
- const latestSetMessagesFunc = (0, import_react8.useCallback)(
572
+ const latestSetMessagesFunc = (0, import_react7.useCallback)(
847
573
  (messages2) => {
848
574
  return latestSetMessages.current(messages2);
849
575
  },
850
576
  [latestSetMessages]
851
577
  );
852
- const latestRunChatCompletion = useUpdatedRef(runChatCompletion);
853
- const latestRunChatCompletionFunc = useAsyncCallback(() => __async(this, null, function* () {
854
- return yield latestRunChatCompletion.current();
855
- }), [latestRunChatCompletion]);
856
- const reset = (0, import_react8.useCallback)(() => {
857
- latestStopFunc();
858
- setMessages([]);
859
- setThreadId(null);
860
- setRunId(null);
861
- setCoagentStatesWithRef({});
862
- let initialAgentSession = null;
863
- if (agentLock) {
864
- initialAgentSession = {
865
- agentName: agentLock
866
- };
867
- }
868
- setAgentSession(initialAgentSession);
869
- }, [
870
- latestStopFunc,
871
- setMessages,
872
- setThreadId,
873
- setCoagentStatesWithRef,
874
- setAgentSession,
875
- agentLock
876
- ]);
877
- const latestReset = useUpdatedRef(reset);
878
- const latestResetFunc = (0, import_react8.useCallback)(() => {
879
- return latestReset.current();
880
- }, [latestReset]);
881
578
  return {
882
579
  visibleMessages: messages,
883
580
  appendMessage: latestAppendFunc,
884
581
  setMessages: latestSetMessagesFunc,
885
582
  reloadMessages: latestReloadFunc,
886
583
  stopGeneration: latestStopFunc,
887
- reset: latestResetFunc,
888
584
  deleteMessage: latestDeleteFunc,
889
- runChatCompletion: latestRunChatCompletionFunc,
890
585
  isLoading
891
586
  };
892
587
  }
893
588
  function useUpdatedRef(value) {
894
- const ref = (0, import_react8.useRef)(value);
895
- (0, import_react8.useEffect)(() => {
589
+ const ref = (0, import_react7.useRef)(value);
590
+ (0, import_react7.useEffect)(() => {
896
591
  ref.current = value;
897
592
  }, [value]);
898
593
  return ref;