@copilotkit/react-ui 1.3.16-mme-lgc-langgraph-package.11 → 1.3.16-mme-reset-chat.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 (37) hide show
  1. package/CHANGELOG.md +55 -95
  2. package/dist/{chunk-C5KOJ3IH.mjs → chunk-3QOICFXX.mjs} +103 -7
  3. package/dist/chunk-3QOICFXX.mjs.map +1 -0
  4. package/dist/{chunk-QK6XA3PL.mjs → chunk-H7LLXN6X.mjs} +6 -2
  5. package/dist/chunk-H7LLXN6X.mjs.map +1 -0
  6. package/dist/{chunk-TEZWY2BL.mjs → chunk-P54DK2TL.mjs} +2 -2
  7. package/dist/{chunk-OJ5NVSTU.mjs → chunk-SEY3XSCD.mjs} +2 -2
  8. package/dist/components/chat/Chat.d.ts +50 -5
  9. package/dist/components/chat/Chat.js +101 -6
  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 +105 -6
  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 +105 -6
  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 +105 -6
  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 +105 -6
  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 +105 -6
  26. package/dist/components/index.js.map +1 -1
  27. package/dist/components/index.mjs +4 -4
  28. package/dist/index.js +107 -8
  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 +166 -7
  33. package/src/components/chat/Modal.tsx +4 -0
  34. package/dist/chunk-C5KOJ3IH.mjs.map +0 -1
  35. package/dist/chunk-QK6XA3PL.mjs.map +0 -1
  36. /package/dist/{chunk-TEZWY2BL.mjs.map → chunk-P54DK2TL.mjs.map} +0 -0
  37. /package/dist/{chunk-OJ5NVSTU.mjs.map → chunk-SEY3XSCD.mjs.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,124 +1,84 @@
1
1
  # ui
2
2
 
3
- ## 1.3.16-mme-lgc-langgraph-package.11
3
+ ## 1.3.16-mme-reset-chat.10
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - Add CopilotKitState
7
+ - f6fab28: update tsup config
8
+ - f6fab28: update entry
9
+ - f6fab28: export langchain module
10
+ - c4b9f95: Improve LangSmith support
11
+ - 164ce73: Add reset and threadId to useCopilotChat
12
+ - f6fab28: Ensure intermediate state config is sent as snake case
13
+ - f6fab28: update entry in tsup config
14
+ - Add custom stop/reload
15
+ - af119bf: Ensure the last message is sent to LangSmith
16
+ - c7df09a: Move threadId to context
17
+ - f6fab28: update entry
18
+ - f6fab28: Update exports
19
+ - f6fab28: Update exports
20
+ - 332d744: Add support for Azure OpenAI
21
+ - f6fab28: Export LangGraph functions
22
+ - f6fab28: Update lockfile
23
+ - Updated dependencies [f6fab28]
24
+ - Updated dependencies [f6fab28]
25
+ - Updated dependencies [f6fab28]
26
+ - Updated dependencies [c4b9f95]
27
+ - Updated dependencies [164ce73]
28
+ - Updated dependencies [f6fab28]
29
+ - Updated dependencies [f6fab28]
8
30
  - Updated dependencies
9
- - @copilotkit/runtime-client-gql@1.3.16-mme-lgc-langgraph-package.11
10
- - @copilotkit/react-core@1.3.16-mme-lgc-langgraph-package.11
11
- - @copilotkit/shared@1.3.16-mme-lgc-langgraph-package.11
31
+ - Updated dependencies [af119bf]
32
+ - Updated dependencies [c7df09a]
33
+ - Updated dependencies [f6fab28]
34
+ - Updated dependencies [f6fab28]
35
+ - Updated dependencies [f6fab28]
36
+ - Updated dependencies [332d744]
37
+ - Updated dependencies [f6fab28]
38
+ - Updated dependencies [f6fab28]
39
+ - @copilotkit/runtime-client-gql@1.3.16-mme-reset-chat.10
40
+ - @copilotkit/react-core@1.3.16-mme-reset-chat.10
41
+ - @copilotkit/shared@1.3.16-mme-reset-chat.10
12
42
 
13
- ## 1.3.16-mme-lgc-langgraph-package.10
43
+ ## 1.3.16-mme-reset-chat.3
14
44
 
15
45
  ### Patch Changes
16
46
 
17
- - Fix langchain path
47
+ - Move threadId to context
18
48
  - Updated dependencies
19
- - @copilotkit/runtime-client-gql@1.3.16-mme-lgc-langgraph-package.10
20
- - @copilotkit/react-core@1.3.16-mme-lgc-langgraph-package.10
21
- - @copilotkit/shared@1.3.16-mme-lgc-langgraph-package.10
49
+ - @copilotkit/runtime-client-gql@1.3.16-mme-reset-chat.3
50
+ - @copilotkit/react-core@1.3.16-mme-reset-chat.3
51
+ - @copilotkit/shared@1.3.16-mme-reset-chat.3
22
52
 
23
- ## 1.3.16-mme-lgc-langgraph-package.9
53
+ ## 1.3.16-mme-reset-chat.2
24
54
 
25
55
  ### Patch Changes
26
56
 
27
- - update entry
57
+ - Add reset and threadId to useCopilotChat
28
58
  - Updated dependencies
29
- - @copilotkit/runtime-client-gql@1.3.16-mme-lgc-langgraph-package.9
30
- - @copilotkit/react-core@1.3.16-mme-lgc-langgraph-package.9
31
- - @copilotkit/shared@1.3.16-mme-lgc-langgraph-package.9
59
+ - @copilotkit/runtime-client-gql@1.3.16-mme-reset-chat.2
60
+ - @copilotkit/react-core@1.3.16-mme-reset-chat.2
61
+ - @copilotkit/shared@1.3.16-mme-reset-chat.2
32
62
 
33
- ## 1.3.16-mme-lgc-langgraph-package.8
63
+ ## 1.3.16-mme-improve-langsmith.1
34
64
 
35
65
  ### Patch Changes
36
66
 
37
- - update entry
67
+ - Ensure the last message is sent to LangSmith
38
68
  - Updated dependencies
39
- - @copilotkit/runtime-client-gql@1.3.16-mme-lgc-langgraph-package.8
40
- - @copilotkit/react-core@1.3.16-mme-lgc-langgraph-package.8
41
- - @copilotkit/shared@1.3.16-mme-lgc-langgraph-package.8
69
+ - @copilotkit/runtime-client-gql@1.3.16-mme-improve-langsmith.1
70
+ - @copilotkit/react-core@1.3.16-mme-improve-langsmith.1
71
+ - @copilotkit/shared@1.3.16-mme-improve-langsmith.1
42
72
 
43
- ## 1.3.16-mme-lgc-langgraph-package.7
73
+ ## 1.3.16-mme-improve-langsmith.0
44
74
 
45
75
  ### Patch Changes
46
76
 
47
- - update entry in tsup config
77
+ - Improve LangSmith support
48
78
  - Updated dependencies
49
- - @copilotkit/runtime-client-gql@1.3.16-mme-lgc-langgraph-package.7
50
- - @copilotkit/react-core@1.3.16-mme-lgc-langgraph-package.7
51
- - @copilotkit/shared@1.3.16-mme-lgc-langgraph-package.7
52
-
53
- ## 1.3.16-mme-lgc-langgraph-package.6
54
-
55
- ### Patch Changes
56
-
57
- - Update exports
58
- - Updated dependencies
59
- - @copilotkit/runtime-client-gql@1.3.16-mme-lgc-langgraph-package.6
60
- - @copilotkit/react-core@1.3.16-mme-lgc-langgraph-package.6
61
- - @copilotkit/shared@1.3.16-mme-lgc-langgraph-package.6
62
-
63
- ## 1.3.16-mme-lgc-langgraph-package.5
64
-
65
- ### Patch Changes
66
-
67
- - update tsup config
68
- - Updated dependencies
69
- - @copilotkit/runtime-client-gql@1.3.16-mme-lgc-langgraph-package.5
70
- - @copilotkit/react-core@1.3.16-mme-lgc-langgraph-package.5
71
- - @copilotkit/shared@1.3.16-mme-lgc-langgraph-package.5
72
-
73
- ## 1.3.16-mme-lgc-langgraph-package.4
74
-
75
- ### Patch Changes
76
-
77
- - Update exports
78
- - Updated dependencies
79
- - @copilotkit/runtime-client-gql@1.3.16-mme-lgc-langgraph-package.4
80
- - @copilotkit/react-core@1.3.16-mme-lgc-langgraph-package.4
81
- - @copilotkit/shared@1.3.16-mme-lgc-langgraph-package.4
82
-
83
- ## 1.3.16-mme-lgc-langgraph-package.3
84
-
85
- ### Patch Changes
86
-
87
- - export langchain module
88
- - Updated dependencies
89
- - @copilotkit/runtime-client-gql@1.3.16-mme-lgc-langgraph-package.3
90
- - @copilotkit/react-core@1.3.16-mme-lgc-langgraph-package.3
91
- - @copilotkit/shared@1.3.16-mme-lgc-langgraph-package.3
92
-
93
- ## 1.3.16-mme-sdk-js.2
94
-
95
- ### Patch Changes
96
-
97
- - Ensure intermediate state config is sent as snake case
98
- - Updated dependencies
99
- - @copilotkit/runtime-client-gql@1.3.16-mme-sdk-js.2
100
- - @copilotkit/react-core@1.3.16-mme-sdk-js.2
101
- - @copilotkit/shared@1.3.16-mme-sdk-js.2
102
-
103
- ## 1.3.16-mme-sdk-js.1
104
-
105
- ### Patch Changes
106
-
107
- - Update lockfile
108
- - Updated dependencies
109
- - @copilotkit/runtime-client-gql@1.3.16-mme-sdk-js.1
110
- - @copilotkit/react-core@1.3.16-mme-sdk-js.1
111
- - @copilotkit/shared@1.3.16-mme-sdk-js.1
112
-
113
- ## 1.3.16-mme-sdk-js.0
114
-
115
- ### Patch Changes
116
-
117
- - Export LangGraph functions
118
- - Updated dependencies
119
- - @copilotkit/react-core@1.3.16-mme-sdk-js.0
120
- - @copilotkit/runtime-client-gql@1.3.16-mme-sdk-js.0
121
- - @copilotkit/shared@1.3.16-mme-sdk-js.0
79
+ - @copilotkit/react-core@1.3.16-mme-improve-langsmith.0
80
+ - @copilotkit/runtime-client-gql@1.3.16-mme-improve-langsmith.0
81
+ - @copilotkit/shared@1.3.16-mme-improve-langsmith.0
122
82
 
123
83
  ## 1.3.15
124
84
 
@@ -32,6 +32,7 @@ import {
32
32
  } from "./chunk-CBBFRI3Q.mjs";
33
33
  import {
34
34
  __async,
35
+ __spreadProps,
35
36
  __spreadValues
36
37
  } from "./chunk-MRXNTQOX.mjs";
37
38
 
@@ -44,6 +45,7 @@ import {
44
45
  } from "@copilotkit/react-core";
45
46
  import { Role, TextMessage } from "@copilotkit/runtime-client-gql";
46
47
  import { randomId } from "@copilotkit/shared";
48
+ import { runAgent, stopAgent } from "@copilotkit/react-core";
47
49
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
48
50
  function CopilotChat({
49
51
  instructions,
@@ -51,6 +53,8 @@ function CopilotChat({
51
53
  makeSystemMessage,
52
54
  showResponseButton = true,
53
55
  onInProgress,
56
+ onStopGeneration,
57
+ onReloadMessages,
54
58
  Messages: Messages2 = Messages,
55
59
  RenderTextMessage: RenderTextMessage2 = RenderTextMessage,
56
60
  RenderActionExecutionMessage: RenderActionExecutionMessage2 = RenderActionExecutionMessage,
@@ -73,7 +77,13 @@ function CopilotChat({
73
77
  sendMessage,
74
78
  stopGeneration,
75
79
  reloadMessages
76
- } = useCopilotChatLogic(makeSystemMessage, onInProgress, onSubmitMessage);
80
+ } = useCopilotChatLogic(
81
+ makeSystemMessage,
82
+ onInProgress,
83
+ onSubmitMessage,
84
+ onStopGeneration,
85
+ onReloadMessages
86
+ );
77
87
  const chatContext = React.useContext(ChatContext);
78
88
  const isVisible = chatContext ? chatContext.open : true;
79
89
  return /* @__PURE__ */ jsxs(WrappedCopilotChat, { icons, labels, className, children: [
@@ -129,8 +139,15 @@ function WrappedCopilotChat({
129
139
  return /* @__PURE__ */ jsx(Fragment, { children });
130
140
  }
131
141
  var SUGGESTIONS_DEBOUNCE_TIMEOUT = 1e3;
132
- var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) => {
133
- const { visibleMessages, appendMessage, reloadMessages, stopGeneration, isLoading } = useCopilotChat({
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({
134
151
  id: randomId(),
135
152
  makeSystemMessage
136
153
  });
@@ -138,8 +155,8 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) =>
138
155
  const suggestionsAbortControllerRef = useRef(null);
139
156
  const debounceTimerRef = useRef();
140
157
  const abortSuggestions = () => {
141
- var _a;
142
- (_a = suggestionsAbortControllerRef.current) == null ? void 0 : _a.abort();
158
+ var _a2;
159
+ (_a2 = suggestionsAbortControllerRef.current) == null ? void 0 : _a2.abort();
143
160
  suggestionsAbortControllerRef.current = null;
144
161
  };
145
162
  const generalContext = useCopilotContext();
@@ -165,7 +182,13 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) =>
165
182
  return () => {
166
183
  clearTimeout(debounceTimerRef.current);
167
184
  };
168
- }, [isLoading, context.chatSuggestionConfiguration]);
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
+ ]);
169
192
  const sendMessage = (messageContent) => __async(void 0, null, function* () {
170
193
  abortSuggestions();
171
194
  setCurrentSuggestions([]);
@@ -183,6 +206,79 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) =>
183
206
  appendMessage(message);
184
207
  return message;
185
208
  });
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
+ }
186
282
  return {
187
283
  visibleMessages,
188
284
  isLoading,
@@ -198,4 +294,4 @@ export {
198
294
  WrappedCopilotChat,
199
295
  useCopilotChatLogic
200
296
  };
201
- //# sourceMappingURL=chunk-C5KOJ3IH.mjs.map
297
+ //# sourceMappingURL=chunk-3QOICFXX.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\";\nimport { HintFunction, runAgent, stopAgent } from \"@copilotkit/react-core\";\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 * A custom stop generation function.\n */\n onStopGeneration?: OnStopGeneration;\n\n /**\n * A custom reload messages function.\n */\n onReloadMessages?: OnReloadMessages;\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\ninterface OnStopGenerationArguments {\n /**\n * The name of the currently executing agent.\n */\n currentAgentName: string | undefined;\n\n /**\n * The messages in the chat.\n */\n messages: Message[];\n\n /**\n * Set the messages in the chat.\n */\n setMessages: (messages: Message[]) => void;\n\n /**\n * Stop chat generation.\n */\n stopGeneration: () => void;\n\n /**\n * Restart the currently executing agent.\n */\n restartCurrentAgent: () => void;\n\n /**\n * Stop the currently executing agent.\n */\n stopCurrentAgent: () => void;\n\n /**\n * Run the currently executing agent.\n */\n runCurrentAgent: (hint?: HintFunction) => Promise<void>;\n\n /**\n * Set the state of the currently executing agent.\n */\n setCurrentAgentState: (state: any) => void;\n}\n\nexport type OnReloadMessagesArguments = OnStopGenerationArguments;\n\nexport type OnStopGeneration = (args: OnStopGenerationArguments) => void;\n\nexport type OnReloadMessages = (args: OnReloadMessagesArguments) => void;\n\nexport function CopilotChat({\n instructions,\n onSubmitMessage,\n makeSystemMessage,\n showResponseButton = true,\n onInProgress,\n onStopGeneration,\n onReloadMessages,\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(\n makeSystemMessage,\n onInProgress,\n onSubmitMessage,\n onStopGeneration,\n onReloadMessages,\n );\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 onStopGeneration?: OnStopGeneration,\n onReloadMessages?: OnReloadMessages,\n) => {\n const {\n visibleMessages,\n appendMessage,\n reloadMessages: defaultReloadMessages,\n stopGeneration: defaultStopGeneration,\n 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 }, [\n isLoading,\n context.chatSuggestionConfiguration,\n // hackish way to trigger suggestions reload on reset, but better than moving suggestions to the\n // global context\n visibleMessages.length == 0,\n ]);\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 const messages = visibleMessages;\n const { setMessages } = messagesContext;\n const currentAgentName = generalContext.agentSession?.agentName;\n const restartCurrentAgent = async (hint?: HintFunction) => {\n if (generalContext.agentSession) {\n generalContext.setAgentSession({\n ...generalContext.agentSession,\n nodeName: undefined,\n threadId: undefined,\n });\n generalContext.setCoagentStates((prevAgentStates) => {\n return {\n ...prevAgentStates,\n [generalContext.agentSession!.agentName]: {\n ...prevAgentStates[generalContext.agentSession!.agentName],\n threadId: undefined,\n nodeName: undefined,\n runId: undefined,\n },\n };\n });\n }\n };\n const runCurrentAgent = async (hint?: HintFunction) => {\n if (generalContext.agentSession) {\n await runAgent(generalContext.agentSession.agentName, context, appendMessage, hint);\n }\n };\n const stopCurrentAgent = () => {\n if (generalContext.agentSession) {\n stopAgent(generalContext.agentSession.agentName, context);\n }\n };\n const setCurrentAgentState = (state: any) => {\n if (generalContext.agentSession) {\n generalContext.setCoagentStates((prevAgentStates) => {\n return {\n ...prevAgentStates,\n [generalContext.agentSession!.agentName]: {\n state,\n },\n } as any;\n });\n }\n };\n\n function stopGeneration() {\n if (onStopGeneration) {\n onStopGeneration({\n messages,\n setMessages,\n stopGeneration: defaultStopGeneration,\n currentAgentName,\n restartCurrentAgent,\n stopCurrentAgent,\n runCurrentAgent,\n setCurrentAgentState,\n });\n } else {\n defaultStopGeneration();\n }\n }\n function reloadMessages() {\n if (onReloadMessages) {\n onReloadMessages({\n messages,\n setMessages,\n stopGeneration: defaultStopGeneration,\n currentAgentName,\n restartCurrentAgent,\n stopCurrentAgent,\n runCurrentAgent,\n setCurrentAgentState,\n });\n } else {\n defaultReloadMessages();\n }\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","_a"]}
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-RQNJNK2W.mjs";
10
10
  import {
11
11
  CopilotChat
12
- } from "./chunk-C5KOJ3IH.mjs";
12
+ } from "./chunk-3QOICFXX.mjs";
13
13
  import {
14
14
  Input
15
15
  } from "./chunk-4LUMV4YO.mjs";
@@ -33,6 +33,8 @@ var CopilotModal = ({
33
33
  hitEscapeToClose = true,
34
34
  onSetOpen,
35
35
  onSubmitMessage,
36
+ onStopGeneration,
37
+ onReloadMessages,
36
38
  shortcut = "/",
37
39
  icons,
38
40
  labels,
@@ -70,6 +72,8 @@ var CopilotModal = ({
70
72
  {
71
73
  instructions,
72
74
  onSubmitMessage,
75
+ onStopGeneration,
76
+ onReloadMessages,
73
77
  makeSystemMessage,
74
78
  showResponseButton,
75
79
  onInProgress,
@@ -88,4 +92,4 @@ var CopilotModal = ({
88
92
  export {
89
93
  CopilotModal
90
94
  };
91
- //# sourceMappingURL=chunk-QK6XA3PL.mjs.map
95
+ //# sourceMappingURL=chunk-H7LLXN6X.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 onStopGeneration,\n onReloadMessages,\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 onStopGeneration={onStopGeneration}\n onReloadMessages={onReloadMessages}\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;AA6FV,cACA,YADA;AAnCD,IAAM,eAAe,CAAC;AAAA,EAC3B;AAAA,EACA,cAAc;AAAA,EACd,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA;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;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-QK6XA3PL.mjs";
3
+ } from "./chunk-H7LLXN6X.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-TEZWY2BL.mjs.map
30
+ //# sourceMappingURL=chunk-P54DK2TL.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CopilotModal
3
- } from "./chunk-QK6XA3PL.mjs";
3
+ } from "./chunk-H7LLXN6X.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-OJ5NVSTU.mjs.map
21
+ //# sourceMappingURL=chunk-SEY3XSCD.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 } from '@copilotkit/react-core';
4
+ import { SystemMessageFunction, HintFunction } 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,6 +27,14 @@ 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;
30
38
  /**
31
39
  * Icons can be used to set custom icons for the chat window.
32
40
  */
@@ -84,20 +92,57 @@ interface CopilotChatProps {
84
92
  */
85
93
  children?: React__default.ReactNode;
86
94
  }
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;
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;
88
133
  declare function WrappedCopilotChat({ children, icons, labels, className, }: {
89
134
  children: React__default.ReactNode;
90
135
  icons?: CopilotChatIcons;
91
136
  labels?: CopilotChatLabels;
92
137
  className?: string;
93
138
  }): react_jsx_runtime.JSX.Element;
94
- declare const useCopilotChatLogic: (makeSystemMessage?: SystemMessageFunction, onInProgress?: (isLoading: boolean) => void, onSubmitMessage?: (messageContent: string) => Promise<void> | void) => {
139
+ declare const useCopilotChatLogic: (makeSystemMessage?: SystemMessageFunction, onInProgress?: (isLoading: boolean) => void, onSubmitMessage?: (messageContent: string) => Promise<void> | void, onStopGeneration?: OnStopGeneration, onReloadMessages?: OnReloadMessages) => {
95
140
  visibleMessages: Message[];
96
141
  isLoading: boolean;
97
142
  currentSuggestions: CopilotChatSuggestion[];
98
143
  sendMessage: (messageContent: string) => Promise<Message>;
99
144
  stopGeneration: () => void;
100
- reloadMessages: () => Promise<void>;
145
+ reloadMessages: () => void;
101
146
  };
102
147
 
103
- export { CopilotChat, CopilotChatProps, WrappedCopilotChat, useCopilotChatLogic };
148
+ export { CopilotChat, CopilotChatProps, OnReloadMessages, OnReloadMessagesArguments, OnStopGeneration, WrappedCopilotChat, useCopilotChatLogic };