@copilotkit/react-ui 1.3.16-mme-reset-chat.11 → 1.3.16-pre.11

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 (37) hide show
  1. package/CHANGELOG.md +5 -11
  2. package/dist/{chunk-OG2XHQQM.mjs → chunk-H5CXJBR5.mjs} +2 -6
  3. package/dist/chunk-H5CXJBR5.mjs.map +1 -0
  4. package/dist/{chunk-5XQEL3WQ.mjs → chunk-M2NVAJQA.mjs} +2 -2
  5. package/dist/{chunk-2BAND4IT.mjs → chunk-ORHE7FYT.mjs} +7 -103
  6. package/dist/chunk-ORHE7FYT.mjs.map +1 -0
  7. package/dist/{chunk-DXMPY4SG.mjs → chunk-PY7YBFPA.mjs} +2 -2
  8. package/dist/components/chat/Chat.d.ts +5 -50
  9. package/dist/components/chat/Chat.js +6 -101
  10. package/dist/components/chat/Chat.js.map +1 -1
  11. package/dist/components/chat/Chat.mjs +1 -1
  12. package/dist/components/chat/Modal.d.ts +1 -1
  13. package/dist/components/chat/Modal.js +6 -105
  14. package/dist/components/chat/Modal.js.map +1 -1
  15. package/dist/components/chat/Modal.mjs +2 -2
  16. package/dist/components/chat/Popup.js +6 -105
  17. package/dist/components/chat/Popup.js.map +1 -1
  18. package/dist/components/chat/Popup.mjs +3 -3
  19. package/dist/components/chat/Sidebar.js +6 -105
  20. package/dist/components/chat/Sidebar.js.map +1 -1
  21. package/dist/components/chat/Sidebar.mjs +3 -3
  22. package/dist/components/chat/index.js +6 -105
  23. package/dist/components/chat/index.js.map +1 -1
  24. package/dist/components/chat/index.mjs +4 -4
  25. package/dist/components/index.js +6 -105
  26. package/dist/components/index.js.map +1 -1
  27. package/dist/components/index.mjs +4 -4
  28. package/dist/index.js +8 -107
  29. package/dist/index.js.map +1 -1
  30. package/dist/index.mjs +4 -4
  31. package/package.json +7 -7
  32. package/src/components/chat/Chat.tsx +7 -166
  33. package/src/components/chat/Modal.tsx +0 -4
  34. package/dist/chunk-2BAND4IT.mjs.map +0 -1
  35. package/dist/chunk-OG2XHQQM.mjs.map +0 -1
  36. /package/dist/{chunk-5XQEL3WQ.mjs.map → chunk-M2NVAJQA.mjs.map} +0 -0
  37. /package/dist/{chunk-DXMPY4SG.mjs.map → chunk-PY7YBFPA.mjs.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,20 +1,14 @@
1
1
  # ui
2
2
 
3
- ## 1.3.16-mme-reset-chat.11
3
+ ## 1.3.16-pre.11
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - 164ce73: Add reset and threadId to useCopilotChat
8
- - f3ce10a: Add custom stop/reload
9
- - Merge main
10
- - c7df09a: Move threadId to context
11
- - Updated dependencies [164ce73]
12
- - Updated dependencies [f3ce10a]
7
+ - Test prerelease
13
8
  - Updated dependencies
14
- - Updated dependencies [c7df09a]
15
- - @copilotkit/runtime-client-gql@1.3.16-mme-reset-chat.11
16
- - @copilotkit/react-core@1.3.16-mme-reset-chat.11
17
- - @copilotkit/shared@1.3.16-mme-reset-chat.11
9
+ - @copilotkit/react-core@1.3.16-pre.11
10
+ - @copilotkit/runtime-client-gql@1.3.16-pre.11
11
+ - @copilotkit/shared@1.3.16-pre.11
18
12
 
19
13
  ## 1.3.16-mme-revert-rxjs-changes.10
20
14
 
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-RQNJNK2W.mjs";
10
10
  import {
11
11
  CopilotChat
12
- } from "./chunk-2BAND4IT.mjs";
12
+ } from "./chunk-ORHE7FYT.mjs";
13
13
  import {
14
14
  Input
15
15
  } from "./chunk-4LUMV4YO.mjs";
@@ -33,8 +33,6 @@ var CopilotModal = ({
33
33
  hitEscapeToClose = true,
34
34
  onSetOpen,
35
35
  onSubmitMessage,
36
- onStopGeneration,
37
- onReloadMessages,
38
36
  shortcut = "/",
39
37
  icons,
40
38
  labels,
@@ -72,8 +70,6 @@ var CopilotModal = ({
72
70
  {
73
71
  instructions,
74
72
  onSubmitMessage,
75
- onStopGeneration,
76
- onReloadMessages,
77
73
  makeSystemMessage,
78
74
  showResponseButton,
79
75
  onInProgress,
@@ -92,4 +88,4 @@ var CopilotModal = ({
92
88
  export {
93
89
  CopilotModal
94
90
  };
95
- //# sourceMappingURL=chunk-OG2XHQQM.mjs.map
91
+ //# sourceMappingURL=chunk-H5CXJBR5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/chat/Modal.tsx"],"sourcesContent":["import React from \"react\";\nimport { ChatContextProvider } from \"./ChatContext\";\nimport { ButtonProps, HeaderProps, WindowProps } from \"./props\";\nimport { Window as DefaultWindow } from \"./Window\";\nimport { Button as DefaultButton } from \"./Button\";\nimport { Header as DefaultHeader } from \"./Header\";\nimport { Messages as DefaultMessages } from \"./Messages\";\nimport { Input as DefaultInput } from \"./Input\";\nimport { ResponseButton as DefaultResponseButton } from \"./Response\";\nimport { CopilotChat, CopilotChatProps } from \"./Chat\";\n\nexport interface CopilotModalProps extends CopilotChatProps {\n /**\n * Whether the chat window should be open by default.\n * @default false\n */\n defaultOpen?: boolean;\n\n /**\n * If the chat window should close when the user clicks outside of it.\n * @default true\n */\n clickOutsideToClose?: boolean;\n\n /**\n * If the chat window should close when the user hits the Escape key.\n * @default true\n */\n hitEscapeToClose?: boolean;\n\n /**\n * The shortcut key to open the chat window.\n * Uses Command-[shortcut] on a Mac and Ctrl-[shortcut] on Windows.\n * @default '/'\n */\n shortcut?: string;\n\n /**\n * A callback that gets called when the chat window opens or closes.\n */\n onSetOpen?: (open: boolean) => void;\n\n /**\n * A custom Window component to use instead of the default.\n */\n Window?: React.ComponentType<WindowProps>;\n\n /**\n * A custom Button component to use instead of the default.\n */\n Button?: React.ComponentType<ButtonProps>;\n\n /**\n * A custom Header component to use instead of the default.\n */\n Header?: React.ComponentType<HeaderProps>;\n}\n\nexport const CopilotModal = ({\n instructions,\n defaultOpen = false,\n clickOutsideToClose = true,\n hitEscapeToClose = true,\n onSetOpen,\n onSubmitMessage,\n shortcut = \"/\",\n icons,\n labels,\n makeSystemMessage,\n showResponseButton = true,\n onInProgress,\n Window = DefaultWindow,\n Button = DefaultButton,\n Header = DefaultHeader,\n Messages = DefaultMessages,\n Input = DefaultInput,\n ResponseButton = DefaultResponseButton,\n className,\n children,\n}: CopilotModalProps) => {\n const [openState, setOpenState] = React.useState(defaultOpen);\n\n const setOpen = (open: boolean) => {\n onSetOpen?.(open);\n setOpenState(open);\n };\n\n return (\n <ChatContextProvider icons={icons} labels={labels} open={openState} setOpen={setOpen}>\n {children}\n <div className={className}>\n <Button></Button>\n <Window\n clickOutsideToClose={clickOutsideToClose}\n shortcut={shortcut}\n hitEscapeToClose={hitEscapeToClose}\n >\n <Header />\n <CopilotChat\n instructions={instructions}\n onSubmitMessage={onSubmitMessage}\n makeSystemMessage={makeSystemMessage}\n showResponseButton={showResponseButton}\n onInProgress={onInProgress}\n Messages={Messages}\n Input={Input}\n ResponseButton={ResponseButton}\n />\n </Window>\n </div>\n </ChatContextProvider>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAW;AA2FV,cACA,YADA;AAjCD,IAAM,eAAe,CAAC;AAAA,EAC3B;AAAA,EACA,cAAc;AAAA,EACd,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,qBAAqB;AAAA,EACrB;AAAA,EACA,QAAAA,UAAS;AAAA,EACT,QAAAC,UAAS;AAAA,EACT,QAAAC,UAAS;AAAA,EACT,UAAAC,YAAW;AAAA,EACX,OAAAC,SAAQ;AAAA,EACR,gBAAAC,kBAAiB;AAAA,EACjB;AAAA,EACA;AACF,MAAyB;AACvB,QAAM,CAAC,WAAW,YAAY,IAAI,MAAM,SAAS,WAAW;AAE5D,QAAM,UAAU,CAAC,SAAkB;AACjC,2CAAY;AACZ,iBAAa,IAAI;AAAA,EACnB;AAEA,SACE,qBAAC,uBAAoB,OAAc,QAAgB,MAAM,WAAW,SACjE;AAAA;AAAA,IACD,qBAAC,SAAI,WACH;AAAA,0BAACJ,SAAA,EAAO;AAAA,MACR;AAAA,QAACD;AAAA,QAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UAEA;AAAA,gCAACE,SAAA,EAAO;AAAA,YACR;AAAA,cAAC;AAAA;AAAA,gBACC;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,UAAUC;AAAA,gBACV,OAAOC;AAAA,gBACP,gBAAgBC;AAAA;AAAA,YAClB;AAAA;AAAA;AAAA,MACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":["Window","Button","Header","Messages","Input","ResponseButton"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CopilotModal
3
- } from "./chunk-OG2XHQQM.mjs";
3
+ } from "./chunk-H5CXJBR5.mjs";
4
4
  import {
5
5
  __spreadProps,
6
6
  __spreadValues
@@ -27,4 +27,4 @@ function CopilotSidebar(props) {
27
27
  export {
28
28
  CopilotSidebar
29
29
  };
30
- //# sourceMappingURL=chunk-5XQEL3WQ.mjs.map
30
+ //# sourceMappingURL=chunk-M2NVAJQA.mjs.map
@@ -32,7 +32,6 @@ import {
32
32
  } from "./chunk-CBBFRI3Q.mjs";
33
33
  import {
34
34
  __async,
35
- __spreadProps,
36
35
  __spreadValues
37
36
  } from "./chunk-MRXNTQOX.mjs";
38
37
 
@@ -45,7 +44,6 @@ import {
45
44
  } from "@copilotkit/react-core";
46
45
  import { Role, TextMessage } from "@copilotkit/runtime-client-gql";
47
46
  import { randomId } from "@copilotkit/shared";
48
- import { runAgent, stopAgent } from "@copilotkit/react-core";
49
47
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
50
48
  function CopilotChat({
51
49
  instructions,
@@ -53,8 +51,6 @@ function CopilotChat({
53
51
  makeSystemMessage,
54
52
  showResponseButton = true,
55
53
  onInProgress,
56
- onStopGeneration,
57
- onReloadMessages,
58
54
  Messages: Messages2 = Messages,
59
55
  RenderTextMessage: RenderTextMessage2 = RenderTextMessage,
60
56
  RenderActionExecutionMessage: RenderActionExecutionMessage2 = RenderActionExecutionMessage,
@@ -77,13 +73,7 @@ function CopilotChat({
77
73
  sendMessage,
78
74
  stopGeneration,
79
75
  reloadMessages
80
- } = useCopilotChatLogic(
81
- makeSystemMessage,
82
- onInProgress,
83
- onSubmitMessage,
84
- onStopGeneration,
85
- onReloadMessages
86
- );
76
+ } = useCopilotChatLogic(makeSystemMessage, onInProgress, onSubmitMessage);
87
77
  const chatContext = React.useContext(ChatContext);
88
78
  const isVisible = chatContext ? chatContext.open : true;
89
79
  return /* @__PURE__ */ jsxs(WrappedCopilotChat, { icons, labels, className, children: [
@@ -139,15 +129,8 @@ function WrappedCopilotChat({
139
129
  return /* @__PURE__ */ jsx(Fragment, { children });
140
130
  }
141
131
  var SUGGESTIONS_DEBOUNCE_TIMEOUT = 1e3;
142
- var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onStopGeneration, onReloadMessages) => {
143
- var _a;
144
- const {
145
- visibleMessages,
146
- appendMessage,
147
- reloadMessages: defaultReloadMessages,
148
- stopGeneration: defaultStopGeneration,
149
- isLoading
150
- } = useCopilotChat({
132
+ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) => {
133
+ const { visibleMessages, appendMessage, reloadMessages, stopGeneration, isLoading } = useCopilotChat({
151
134
  id: randomId(),
152
135
  makeSystemMessage
153
136
  });
@@ -155,8 +138,8 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onS
155
138
  const suggestionsAbortControllerRef = useRef(null);
156
139
  const debounceTimerRef = useRef();
157
140
  const abortSuggestions = () => {
158
- var _a2;
159
- (_a2 = suggestionsAbortControllerRef.current) == null ? void 0 : _a2.abort();
141
+ var _a;
142
+ (_a = suggestionsAbortControllerRef.current) == null ? void 0 : _a.abort();
160
143
  suggestionsAbortControllerRef.current = null;
161
144
  };
162
145
  const generalContext = useCopilotContext();
@@ -182,13 +165,7 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onS
182
165
  return () => {
183
166
  clearTimeout(debounceTimerRef.current);
184
167
  };
185
- }, [
186
- isLoading,
187
- context.chatSuggestionConfiguration,
188
- // hackish way to trigger suggestions reload on reset, but better than moving suggestions to the
189
- // global context
190
- visibleMessages.length == 0
191
- ]);
168
+ }, [isLoading, context.chatSuggestionConfiguration]);
192
169
  const sendMessage = (messageContent) => __async(void 0, null, function* () {
193
170
  abortSuggestions();
194
171
  setCurrentSuggestions([]);
@@ -206,79 +183,6 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onS
206
183
  appendMessage(message);
207
184
  return message;
208
185
  });
209
- const messages = visibleMessages;
210
- const { setMessages } = messagesContext;
211
- const currentAgentName = (_a = generalContext.agentSession) == null ? void 0 : _a.agentName;
212
- const restartCurrentAgent = (hint) => __async(void 0, null, function* () {
213
- if (generalContext.agentSession) {
214
- generalContext.setAgentSession(__spreadProps(__spreadValues({}, generalContext.agentSession), {
215
- nodeName: void 0,
216
- threadId: void 0
217
- }));
218
- generalContext.setCoagentStates((prevAgentStates) => {
219
- return __spreadProps(__spreadValues({}, prevAgentStates), {
220
- [generalContext.agentSession.agentName]: __spreadProps(__spreadValues({}, prevAgentStates[generalContext.agentSession.agentName]), {
221
- threadId: void 0,
222
- nodeName: void 0,
223
- runId: void 0
224
- })
225
- });
226
- });
227
- }
228
- });
229
- const runCurrentAgent = (hint) => __async(void 0, null, function* () {
230
- if (generalContext.agentSession) {
231
- yield runAgent(generalContext.agentSession.agentName, context, appendMessage, hint);
232
- }
233
- });
234
- const stopCurrentAgent = () => {
235
- if (generalContext.agentSession) {
236
- stopAgent(generalContext.agentSession.agentName, context);
237
- }
238
- };
239
- const setCurrentAgentState = (state) => {
240
- if (generalContext.agentSession) {
241
- generalContext.setCoagentStates((prevAgentStates) => {
242
- return __spreadProps(__spreadValues({}, prevAgentStates), {
243
- [generalContext.agentSession.agentName]: {
244
- state
245
- }
246
- });
247
- });
248
- }
249
- };
250
- function stopGeneration() {
251
- if (onStopGeneration) {
252
- onStopGeneration({
253
- messages,
254
- setMessages,
255
- stopGeneration: defaultStopGeneration,
256
- currentAgentName,
257
- restartCurrentAgent,
258
- stopCurrentAgent,
259
- runCurrentAgent,
260
- setCurrentAgentState
261
- });
262
- } else {
263
- defaultStopGeneration();
264
- }
265
- }
266
- function reloadMessages() {
267
- if (onReloadMessages) {
268
- onReloadMessages({
269
- messages,
270
- setMessages,
271
- stopGeneration: defaultStopGeneration,
272
- currentAgentName,
273
- restartCurrentAgent,
274
- stopCurrentAgent,
275
- runCurrentAgent,
276
- setCurrentAgentState
277
- });
278
- } else {
279
- defaultReloadMessages();
280
- }
281
- }
282
186
  return {
283
187
  visibleMessages,
284
188
  isLoading,
@@ -294,4 +198,4 @@ export {
294
198
  WrappedCopilotChat,
295
199
  useCopilotChatLogic
296
200
  };
297
- //# sourceMappingURL=chunk-2BAND4IT.mjs.map
201
+ //# sourceMappingURL=chunk-ORHE7FYT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/chat/Chat.tsx"],"sourcesContent":["/**\n * <br/>\n * <img src=\"/images/CopilotChat.gif\" width=\"500\" />\n *\n * A chatbot panel component for the CopilotKit framework. The component allows for a high degree\n * of customization through various props and custom CSS.\n *\n * ## Install Dependencies\n *\n * This component is part of the [@copilotkit/react-ui](https://npmjs.com/package/@copilotkit/react-ui) package.\n *\n * ```shell npm2yarn \\\"@copilotkit/react-ui\"\\\n * npm install @copilotkit/react-core @copilotkit/react-ui\n * ```\n *\n * ## Usage\n *\n * ```tsx\n * import { CopilotChat } from \"@copilotkit/react-ui\";\n * import \"@copilotkit/react-ui/styles.css\";\n *\n * <CopilotChat\n * labels={{\n * title: \"Your Assistant\",\n * initial: \"Hi! 👋 How can I assist you today?\",\n * }}\n * />\n * ```\n *\n * ### Look & Feel\n *\n * By default, CopilotKit components do not have any styles. You can import CopilotKit's stylesheet at the root of your project:\n * ```tsx title=\"YourRootComponent.tsx\"\n * ...\n * import \"@copilotkit/react-ui/styles.css\"; // [!code highlight]\n *\n * export function YourRootComponent() {\n * return (\n * <CopilotKit>\n * ...\n * </CopilotKit>\n * );\n * }\n * ```\n * For more information about how to customize the styles, check out the [Customize Look & Feel](/guides/custom-look-and-feel/customize-built-in-ui-components) guide.\n */\n\nimport {\n ChatContext,\n ChatContextProvider,\n CopilotChatIcons,\n CopilotChatLabels,\n} from \"./ChatContext\";\nimport { Messages as DefaultMessages } from \"./Messages\";\nimport { Input as DefaultInput } from \"./Input\";\nimport { ResponseButton as DefaultResponseButton } from \"./Response\";\nimport { RenderTextMessage as DefaultRenderTextMessage } from \"./messages/RenderTextMessage\";\nimport { RenderActionExecutionMessage as DefaultRenderActionExecutionMessage } from \"./messages/RenderActionExecutionMessage\";\nimport { RenderResultMessage as DefaultRenderResultMessage } from \"./messages/RenderResultMessage\";\nimport { RenderAgentStateMessage as DefaultRenderAgentStateMessage } from \"./messages/RenderAgentStateMessage\";\nimport { Suggestion } from \"./Suggestion\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport {\n SystemMessageFunction,\n useCopilotChat,\n useCopilotContext,\n useCopilotMessagesContext,\n} from \"@copilotkit/react-core\";\nimport { reloadSuggestions } from \"./Suggestion\";\nimport { CopilotChatSuggestion } from \"../../types/suggestions\";\nimport { Message, Role, TextMessage } from \"@copilotkit/runtime-client-gql\";\nimport { InputProps, MessagesProps, RenderMessageProps, ResponseButtonProps } from \"./props\";\nimport { randomId } from \"@copilotkit/shared\";\n\nimport { CopilotDevConsole } from \"../dev-console\";\n\n/**\n * Props for CopilotChat component.\n */\nexport interface CopilotChatProps {\n /**\n * Custom instructions to be added to the system message. Use this property to\n * provide additional context or guidance to the language model, influencing\n * its responses. These instructions can include specific directions,\n * preferences, or criteria that the model should consider when generating\n * its output, thereby tailoring the conversation more precisely to the\n * user's needs or the application's requirements.\n */\n instructions?: string;\n\n /**\n * A callback that gets called when the in progress state changes.\n */\n onInProgress?: (inProgress: boolean) => void;\n\n /**\n * A callback that gets called when a new message it submitted.\n */\n onSubmitMessage?: (message: string) => void | Promise<void>;\n\n /**\n * Icons can be used to set custom icons for the chat window.\n */\n icons?: CopilotChatIcons;\n\n /**\n * Labels can be used to set custom labels for the chat window.\n */\n labels?: CopilotChatLabels;\n\n /**\n * A function that takes in context string and instructions and returns\n * the system message to include in the chat request.\n * Use this to completely override the system message, when providing\n * instructions is not enough.\n */\n makeSystemMessage?: SystemMessageFunction;\n\n /**\n * Whether to show the response button.\n * @default true\n */\n showResponseButton?: boolean;\n\n /**\n * A custom Messages component to use instead of the default.\n */\n Messages?: React.ComponentType<MessagesProps>;\n\n /**\n * A custom RenderTextMessage component to use instead of the default.\n */\n RenderTextMessage?: React.ComponentType<RenderMessageProps>;\n\n /**\n * A custom RenderActionExecutionMessage component to use instead of the default.\n */\n RenderActionExecutionMessage?: React.ComponentType<RenderMessageProps>;\n\n /**\n * A custom RenderAgentStateMessage component to use instead of the default.\n */\n RenderAgentStateMessage?: React.ComponentType<RenderMessageProps>;\n\n /**\n * A custom RenderResultMessage component to use instead of the default.\n */\n RenderResultMessage?: React.ComponentType<RenderMessageProps>;\n\n /**\n * A custom Input component to use instead of the default.\n */\n Input?: React.ComponentType<InputProps>;\n\n /**\n * A custom ResponseButton component to use instead of the default.\n */\n ResponseButton?: React.ComponentType<ResponseButtonProps>;\n\n /**\n * A class name to apply to the root element.\n */\n className?: string;\n\n /**\n * Children to render.\n */\n children?: React.ReactNode;\n}\n\nexport function CopilotChat({\n instructions,\n onSubmitMessage,\n makeSystemMessage,\n showResponseButton = true,\n onInProgress,\n Messages = DefaultMessages,\n RenderTextMessage = DefaultRenderTextMessage,\n RenderActionExecutionMessage = DefaultRenderActionExecutionMessage,\n RenderAgentStateMessage = DefaultRenderAgentStateMessage,\n RenderResultMessage = DefaultRenderResultMessage,\n Input = DefaultInput,\n ResponseButton = DefaultResponseButton,\n className,\n icons,\n labels,\n}: CopilotChatProps) {\n const context = useCopilotContext();\n\n useEffect(() => {\n context.setChatInstructions(instructions || \"\");\n }, [instructions]);\n\n const {\n visibleMessages,\n isLoading,\n currentSuggestions,\n sendMessage,\n stopGeneration,\n reloadMessages,\n } = useCopilotChatLogic(makeSystemMessage, onInProgress, onSubmitMessage);\n\n const chatContext = React.useContext(ChatContext);\n const isVisible = chatContext ? chatContext.open : true;\n\n return (\n <WrappedCopilotChat icons={icons} labels={labels} className={className}>\n <CopilotDevConsole />\n <Messages\n RenderTextMessage={RenderTextMessage}\n RenderActionExecutionMessage={RenderActionExecutionMessage}\n RenderAgentStateMessage={RenderAgentStateMessage}\n RenderResultMessage={RenderResultMessage}\n messages={visibleMessages}\n inProgress={isLoading}\n >\n {currentSuggestions.length > 0 && (\n <div>\n <h6>Suggested:</h6>\n <div className=\"suggestions\">\n {currentSuggestions.map((suggestion, index) => (\n <Suggestion\n key={index}\n title={suggestion.title}\n message={suggestion.message}\n partial={suggestion.partial}\n className={suggestion.className}\n onClick={(message) => sendMessage(message)}\n />\n ))}\n </div>\n </div>\n )}\n {showResponseButton && visibleMessages.length > 0 && (\n <ResponseButton\n onClick={isLoading ? stopGeneration : reloadMessages}\n inProgress={isLoading}\n />\n )}\n </Messages>\n <Input inProgress={isLoading} onSend={sendMessage} isVisible={isVisible} />\n </WrappedCopilotChat>\n );\n}\n\nexport function WrappedCopilotChat({\n children,\n icons,\n labels,\n className,\n}: {\n children: React.ReactNode;\n icons?: CopilotChatIcons;\n labels?: CopilotChatLabels;\n className?: string;\n}) {\n const chatContext = React.useContext(ChatContext);\n if (!chatContext) {\n return (\n <ChatContextProvider icons={icons} labels={labels} open={true} setOpen={() => {}}>\n <div className={`copilotKitChat ${className}`}>{children}</div>\n </ChatContextProvider>\n );\n }\n return <>{children}</>;\n}\n\nconst SUGGESTIONS_DEBOUNCE_TIMEOUT = 1000;\n\nexport const useCopilotChatLogic = (\n makeSystemMessage?: SystemMessageFunction,\n onInProgress?: (isLoading: boolean) => void,\n onSubmitMessage?: (messageContent: string) => Promise<void> | void,\n) => {\n const { visibleMessages, appendMessage, reloadMessages, stopGeneration, isLoading } =\n useCopilotChat({\n id: randomId(),\n makeSystemMessage,\n });\n\n const [currentSuggestions, setCurrentSuggestions] = useState<CopilotChatSuggestion[]>([]);\n const suggestionsAbortControllerRef = useRef<AbortController | null>(null);\n const debounceTimerRef = useRef<any>();\n\n const abortSuggestions = () => {\n suggestionsAbortControllerRef.current?.abort();\n suggestionsAbortControllerRef.current = null;\n };\n\n const generalContext = useCopilotContext();\n const messagesContext = useCopilotMessagesContext();\n const context = { ...generalContext, ...messagesContext };\n\n useEffect(() => {\n onInProgress?.(isLoading);\n\n abortSuggestions();\n\n debounceTimerRef.current = setTimeout(\n () => {\n if (!isLoading && Object.keys(context.chatSuggestionConfiguration).length !== 0) {\n suggestionsAbortControllerRef.current = new AbortController();\n reloadSuggestions(\n context,\n context.chatSuggestionConfiguration,\n setCurrentSuggestions,\n suggestionsAbortControllerRef,\n );\n }\n },\n currentSuggestions.length == 0 ? 0 : SUGGESTIONS_DEBOUNCE_TIMEOUT,\n );\n\n return () => {\n clearTimeout(debounceTimerRef.current);\n };\n }, [isLoading, context.chatSuggestionConfiguration]);\n\n const sendMessage = async (messageContent: string) => {\n abortSuggestions();\n setCurrentSuggestions([]);\n\n const message: Message = new TextMessage({\n content: messageContent,\n role: Role.User,\n });\n\n if (onSubmitMessage) {\n try {\n await onSubmitMessage(messageContent);\n } catch (error) {\n console.error(\"Error in onSubmitMessage:\", error);\n }\n }\n // this needs to happen after onSubmitMessage, because it will trigger submission\n // of the message to the endpoint. Some users depend on performing some actions\n // before the message is submitted.\n appendMessage(message);\n\n return message;\n };\n\n return {\n visibleMessages,\n isLoading,\n currentSuggestions,\n sendMessage,\n stopGeneration,\n reloadMessages,\n };\n};\n"],"mappings":"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","names":["Messages","RenderTextMessage","RenderActionExecutionMessage","RenderAgentStateMessage","RenderResultMessage","Input","ResponseButton"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CopilotModal
3
- } from "./chunk-OG2XHQQM.mjs";
3
+ } from "./chunk-H5CXJBR5.mjs";
4
4
  import {
5
5
  __spreadProps,
6
6
  __spreadValues
@@ -18,4 +18,4 @@ function CopilotPopup(props) {
18
18
  export {
19
19
  CopilotPopup
20
20
  };
21
- //# sourceMappingURL=chunk-DXMPY4SG.mjs.map
21
+ //# sourceMappingURL=chunk-PY7YBFPA.mjs.map
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { CopilotChatIcons, CopilotChatLabels } from './ChatContext.js';
3
3
  import React__default from 'react';
4
- import { SystemMessageFunction, HintFunction } from '@copilotkit/react-core';
4
+ import { SystemMessageFunction } from '@copilotkit/react-core';
5
5
  import { CopilotChatSuggestion } from '../../types/suggestions.js';
6
6
  import { Message } from '@copilotkit/runtime-client-gql';
7
7
  import { MessagesProps, RenderMessageProps, InputProps, ResponseButtonProps } from './props.js';
@@ -27,14 +27,6 @@ interface CopilotChatProps {
27
27
  * A callback that gets called when a new message it submitted.
28
28
  */
29
29
  onSubmitMessage?: (message: string) => void | Promise<void>;
30
- /**
31
- * A custom stop generation function.
32
- */
33
- onStopGeneration?: OnStopGeneration;
34
- /**
35
- * A custom reload messages function.
36
- */
37
- onReloadMessages?: OnReloadMessages;
38
30
  /**
39
31
  * Icons can be used to set custom icons for the chat window.
40
32
  */
@@ -92,57 +84,20 @@ interface CopilotChatProps {
92
84
  */
93
85
  children?: React__default.ReactNode;
94
86
  }
95
- interface OnStopGenerationArguments {
96
- /**
97
- * The name of the currently executing agent.
98
- */
99
- currentAgentName: string | undefined;
100
- /**
101
- * The messages in the chat.
102
- */
103
- messages: Message[];
104
- /**
105
- * Set the messages in the chat.
106
- */
107
- setMessages: (messages: Message[]) => void;
108
- /**
109
- * Stop chat generation.
110
- */
111
- stopGeneration: () => void;
112
- /**
113
- * Restart the currently executing agent.
114
- */
115
- restartCurrentAgent: () => void;
116
- /**
117
- * Stop the currently executing agent.
118
- */
119
- stopCurrentAgent: () => void;
120
- /**
121
- * Run the currently executing agent.
122
- */
123
- runCurrentAgent: (hint?: HintFunction) => Promise<void>;
124
- /**
125
- * Set the state of the currently executing agent.
126
- */
127
- setCurrentAgentState: (state: any) => void;
128
- }
129
- type OnReloadMessagesArguments = OnStopGenerationArguments;
130
- type OnStopGeneration = (args: OnStopGenerationArguments) => void;
131
- type OnReloadMessages = (args: OnReloadMessagesArguments) => void;
132
- declare function CopilotChat({ instructions, onSubmitMessage, makeSystemMessage, showResponseButton, onInProgress, onStopGeneration, onReloadMessages, Messages, RenderTextMessage, RenderActionExecutionMessage, RenderAgentStateMessage, RenderResultMessage, Input, ResponseButton, className, icons, labels, }: CopilotChatProps): react_jsx_runtime.JSX.Element;
87
+ declare function CopilotChat({ instructions, onSubmitMessage, makeSystemMessage, showResponseButton, onInProgress, Messages, RenderTextMessage, RenderActionExecutionMessage, RenderAgentStateMessage, RenderResultMessage, Input, ResponseButton, className, icons, labels, }: CopilotChatProps): react_jsx_runtime.JSX.Element;
133
88
  declare function WrappedCopilotChat({ children, icons, labels, className, }: {
134
89
  children: React__default.ReactNode;
135
90
  icons?: CopilotChatIcons;
136
91
  labels?: CopilotChatLabels;
137
92
  className?: string;
138
93
  }): react_jsx_runtime.JSX.Element;
139
- declare const useCopilotChatLogic: (makeSystemMessage?: SystemMessageFunction, onInProgress?: (isLoading: boolean) => void, onSubmitMessage?: (messageContent: string) => Promise<void> | void, onStopGeneration?: OnStopGeneration, onReloadMessages?: OnReloadMessages) => {
94
+ declare const useCopilotChatLogic: (makeSystemMessage?: SystemMessageFunction, onInProgress?: (isLoading: boolean) => void, onSubmitMessage?: (messageContent: string) => Promise<void> | void) => {
140
95
  visibleMessages: Message[];
141
96
  isLoading: boolean;
142
97
  currentSuggestions: CopilotChatSuggestion[];
143
98
  sendMessage: (messageContent: string) => Promise<Message>;
144
99
  stopGeneration: () => void;
145
- reloadMessages: () => void;
100
+ reloadMessages: () => Promise<void>;
146
101
  };
147
102
 
148
- export { CopilotChat, CopilotChatProps, OnReloadMessages, OnReloadMessagesArguments, OnStopGeneration, WrappedCopilotChat, useCopilotChatLogic };
103
+ export { CopilotChat, CopilotChatProps, WrappedCopilotChat, useCopilotChatLogic };
@@ -1954,7 +1954,6 @@ function DebugMenuButton({
1954
1954
  }
1955
1955
 
1956
1956
  // src/components/chat/Chat.tsx
1957
- var import_react_core9 = require("@copilotkit/react-core");
1958
1957
  var import_jsx_runtime16 = require("react/jsx-runtime");
1959
1958
  function CopilotChat({
1960
1959
  instructions,
@@ -1962,8 +1961,6 @@ function CopilotChat({
1962
1961
  makeSystemMessage,
1963
1962
  showResponseButton = true,
1964
1963
  onInProgress,
1965
- onStopGeneration,
1966
- onReloadMessages,
1967
1964
  Messages: Messages2 = Messages,
1968
1965
  RenderTextMessage: RenderTextMessage2 = RenderTextMessage,
1969
1966
  RenderActionExecutionMessage: RenderActionExecutionMessage2 = RenderActionExecutionMessage,
@@ -1986,13 +1983,7 @@ function CopilotChat({
1986
1983
  sendMessage,
1987
1984
  stopGeneration,
1988
1985
  reloadMessages
1989
- } = useCopilotChatLogic(
1990
- makeSystemMessage,
1991
- onInProgress,
1992
- onSubmitMessage,
1993
- onStopGeneration,
1994
- onReloadMessages
1995
- );
1986
+ } = useCopilotChatLogic(makeSystemMessage, onInProgress, onSubmitMessage);
1996
1987
  const chatContext = import_react10.default.useContext(ChatContext);
1997
1988
  const isVisible = chatContext ? chatContext.open : true;
1998
1989
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(WrappedCopilotChat, { icons, labels, className, children: [
@@ -2048,15 +2039,8 @@ function WrappedCopilotChat({
2048
2039
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_jsx_runtime16.Fragment, { children });
2049
2040
  }
2050
2041
  var SUGGESTIONS_DEBOUNCE_TIMEOUT = 1e3;
2051
- var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onStopGeneration, onReloadMessages) => {
2052
- var _a;
2053
- const {
2054
- visibleMessages,
2055
- appendMessage,
2056
- reloadMessages: defaultReloadMessages,
2057
- stopGeneration: defaultStopGeneration,
2058
- isLoading
2059
- } = (0, import_react_core8.useCopilotChat)({
2042
+ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) => {
2043
+ const { visibleMessages, appendMessage, reloadMessages, stopGeneration, isLoading } = (0, import_react_core8.useCopilotChat)({
2060
2044
  id: (0, import_shared3.randomId)(),
2061
2045
  makeSystemMessage
2062
2046
  });
@@ -2064,8 +2048,8 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onS
2064
2048
  const suggestionsAbortControllerRef = (0, import_react10.useRef)(null);
2065
2049
  const debounceTimerRef = (0, import_react10.useRef)();
2066
2050
  const abortSuggestions = () => {
2067
- var _a2;
2068
- (_a2 = suggestionsAbortControllerRef.current) == null ? void 0 : _a2.abort();
2051
+ var _a;
2052
+ (_a = suggestionsAbortControllerRef.current) == null ? void 0 : _a.abort();
2069
2053
  suggestionsAbortControllerRef.current = null;
2070
2054
  };
2071
2055
  const generalContext = (0, import_react_core8.useCopilotContext)();
@@ -2091,13 +2075,7 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onS
2091
2075
  return () => {
2092
2076
  clearTimeout(debounceTimerRef.current);
2093
2077
  };
2094
- }, [
2095
- isLoading,
2096
- context.chatSuggestionConfiguration,
2097
- // hackish way to trigger suggestions reload on reset, but better than moving suggestions to the
2098
- // global context
2099
- visibleMessages.length == 0
2100
- ]);
2078
+ }, [isLoading, context.chatSuggestionConfiguration]);
2101
2079
  const sendMessage = (messageContent) => __async(void 0, null, function* () {
2102
2080
  abortSuggestions();
2103
2081
  setCurrentSuggestions([]);
@@ -2115,79 +2093,6 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onS
2115
2093
  appendMessage(message);
2116
2094
  return message;
2117
2095
  });
2118
- const messages = visibleMessages;
2119
- const { setMessages } = messagesContext;
2120
- const currentAgentName = (_a = generalContext.agentSession) == null ? void 0 : _a.agentName;
2121
- const restartCurrentAgent = (hint) => __async(void 0, null, function* () {
2122
- if (generalContext.agentSession) {
2123
- generalContext.setAgentSession(__spreadProps(__spreadValues({}, generalContext.agentSession), {
2124
- nodeName: void 0,
2125
- threadId: void 0
2126
- }));
2127
- generalContext.setCoagentStates((prevAgentStates) => {
2128
- return __spreadProps(__spreadValues({}, prevAgentStates), {
2129
- [generalContext.agentSession.agentName]: __spreadProps(__spreadValues({}, prevAgentStates[generalContext.agentSession.agentName]), {
2130
- threadId: void 0,
2131
- nodeName: void 0,
2132
- runId: void 0
2133
- })
2134
- });
2135
- });
2136
- }
2137
- });
2138
- const runCurrentAgent = (hint) => __async(void 0, null, function* () {
2139
- if (generalContext.agentSession) {
2140
- yield (0, import_react_core9.runAgent)(generalContext.agentSession.agentName, context, appendMessage, hint);
2141
- }
2142
- });
2143
- const stopCurrentAgent = () => {
2144
- if (generalContext.agentSession) {
2145
- (0, import_react_core9.stopAgent)(generalContext.agentSession.agentName, context);
2146
- }
2147
- };
2148
- const setCurrentAgentState = (state) => {
2149
- if (generalContext.agentSession) {
2150
- generalContext.setCoagentStates((prevAgentStates) => {
2151
- return __spreadProps(__spreadValues({}, prevAgentStates), {
2152
- [generalContext.agentSession.agentName]: {
2153
- state
2154
- }
2155
- });
2156
- });
2157
- }
2158
- };
2159
- function stopGeneration() {
2160
- if (onStopGeneration) {
2161
- onStopGeneration({
2162
- messages,
2163
- setMessages,
2164
- stopGeneration: defaultStopGeneration,
2165
- currentAgentName,
2166
- restartCurrentAgent,
2167
- stopCurrentAgent,
2168
- runCurrentAgent,
2169
- setCurrentAgentState
2170
- });
2171
- } else {
2172
- defaultStopGeneration();
2173
- }
2174
- }
2175
- function reloadMessages() {
2176
- if (onReloadMessages) {
2177
- onReloadMessages({
2178
- messages,
2179
- setMessages,
2180
- stopGeneration: defaultStopGeneration,
2181
- currentAgentName,
2182
- restartCurrentAgent,
2183
- stopCurrentAgent,
2184
- runCurrentAgent,
2185
- setCurrentAgentState
2186
- });
2187
- } else {
2188
- defaultReloadMessages();
2189
- }
2190
- }
2191
2096
  return {
2192
2097
  visibleMessages,
2193
2098
  isLoading,