@copilotkit/react-ui 1.4.2-tyler-reset-chat.2 → 1.4.3-pre.0
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.
- package/CHANGELOG.md +12 -20
- package/dist/{chunk-B6A6OMIG.mjs → chunk-63ZKP62F.mjs} +2 -6
- package/dist/chunk-63ZKP62F.mjs.map +1 -0
- package/dist/{chunk-OI5EKZPO.mjs → chunk-DHGDU64D.mjs} +7 -103
- package/dist/chunk-DHGDU64D.mjs.map +1 -0
- package/dist/{chunk-RQRK6DEW.mjs → chunk-TKFQ7VQR.mjs} +2 -2
- package/dist/{chunk-Z2RXDT7O.mjs → chunk-VYKDFXGS.mjs} +2 -2
- package/dist/components/chat/Chat.d.ts +5 -50
- package/dist/components/chat/Chat.js +6 -101
- package/dist/components/chat/Chat.js.map +1 -1
- package/dist/components/chat/Chat.mjs +1 -1
- package/dist/components/chat/Modal.d.ts +1 -1
- package/dist/components/chat/Modal.js +6 -105
- package/dist/components/chat/Modal.js.map +1 -1
- package/dist/components/chat/Modal.mjs +2 -2
- package/dist/components/chat/Popup.js +6 -105
- package/dist/components/chat/Popup.js.map +1 -1
- package/dist/components/chat/Popup.mjs +3 -3
- package/dist/components/chat/Sidebar.js +6 -105
- package/dist/components/chat/Sidebar.js.map +1 -1
- package/dist/components/chat/Sidebar.mjs +3 -3
- package/dist/components/chat/index.js +6 -105
- package/dist/components/chat/index.js.map +1 -1
- package/dist/components/chat/index.mjs +4 -4
- package/dist/components/index.js +6 -105
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +4 -4
- package/dist/index.js +8 -107
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -4
- package/package.json +7 -7
- package/src/components/chat/Chat.tsx +8 -167
- package/src/components/chat/Modal.tsx +0 -4
- package/dist/chunk-B6A6OMIG.mjs.map +0 -1
- package/dist/chunk-OI5EKZPO.mjs.map +0 -1
- /package/dist/{chunk-RQRK6DEW.mjs.map → chunk-TKFQ7VQR.mjs.map} +0 -0
- /package/dist/{chunk-Z2RXDT7O.mjs.map → chunk-VYKDFXGS.mjs.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,34 +1,26 @@
|
|
|
1
1
|
# ui
|
|
2
2
|
|
|
3
|
-
## 1.4.
|
|
3
|
+
## 1.4.3-pre.0
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- - Better error surfacing when using LangGraph Platform streaming
|
|
8
|
+
- Ensure state is immediately set without using flushSync
|
|
8
9
|
- Updated dependencies
|
|
9
|
-
- @copilotkit/
|
|
10
|
-
- @copilotkit/
|
|
11
|
-
- @copilotkit/shared@1.4.
|
|
10
|
+
- @copilotkit/react-core@1.4.3-pre.0
|
|
11
|
+
- @copilotkit/runtime-client-gql@1.4.3-pre.0
|
|
12
|
+
- @copilotkit/shared@1.4.3-pre.0
|
|
12
13
|
|
|
13
|
-
## 1.4.2
|
|
14
|
+
## 1.4.2
|
|
14
15
|
|
|
15
16
|
### Patch Changes
|
|
16
17
|
|
|
17
|
-
-
|
|
18
|
+
- - Make sure agent state is set immediately (#1077)
|
|
19
|
+
- Support running an agent without messages (#1075)
|
|
18
20
|
- Updated dependencies
|
|
19
|
-
- @copilotkit/
|
|
20
|
-
- @copilotkit/
|
|
21
|
-
- @copilotkit/shared@1.4.2
|
|
22
|
-
|
|
23
|
-
## 1.4.2-tyler-reset-chat.0
|
|
24
|
-
|
|
25
|
-
### Patch Changes
|
|
26
|
-
|
|
27
|
-
- Add Markus' reset chat changes along with everything in 1.4.1 + a fix for resetting the agent during front-end action calls
|
|
28
|
-
- Updated dependencies
|
|
29
|
-
- @copilotkit/react-core@1.4.2-tyler-reset-chat.0
|
|
30
|
-
- @copilotkit/runtime-client-gql@1.4.2-tyler-reset-chat.0
|
|
31
|
-
- @copilotkit/shared@1.4.2-tyler-reset-chat.0
|
|
21
|
+
- @copilotkit/react-core@1.4.2
|
|
22
|
+
- @copilotkit/runtime-client-gql@1.4.2
|
|
23
|
+
- @copilotkit/shared@1.4.2
|
|
32
24
|
|
|
33
25
|
## 1.4.1
|
|
34
26
|
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-RQNJNK2W.mjs";
|
|
10
10
|
import {
|
|
11
11
|
CopilotChat
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-DHGDU64D.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-
|
|
91
|
+
//# sourceMappingURL=chunk-63ZKP62F.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"]}
|
|
@@ -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
|
|
143
|
-
|
|
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
|
|
159
|
-
(
|
|
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-
|
|
201
|
+
//# sourceMappingURL=chunk-DHGDU64D.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-
|
|
3
|
+
} from "./chunk-63ZKP62F.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-
|
|
30
|
+
//# sourceMappingURL=chunk-TKFQ7VQR.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CopilotModal
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-63ZKP62F.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-
|
|
21
|
+
//# sourceMappingURL=chunk-VYKDFXGS.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
|
|
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
|
-
|
|
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
|
|
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,
|
|
103
|
+
export { CopilotChat, CopilotChatProps, WrappedCopilotChat, useCopilotChatLogic };
|
|
@@ -2062,7 +2062,6 @@ function DebugMenuButton({
|
|
|
2062
2062
|
}
|
|
2063
2063
|
|
|
2064
2064
|
// src/components/chat/Chat.tsx
|
|
2065
|
-
var import_react_core9 = require("@copilotkit/react-core");
|
|
2066
2065
|
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
2067
2066
|
function CopilotChat({
|
|
2068
2067
|
instructions,
|
|
@@ -2070,8 +2069,6 @@ function CopilotChat({
|
|
|
2070
2069
|
makeSystemMessage,
|
|
2071
2070
|
showResponseButton = true,
|
|
2072
2071
|
onInProgress,
|
|
2073
|
-
onStopGeneration,
|
|
2074
|
-
onReloadMessages,
|
|
2075
2072
|
Messages: Messages2 = Messages,
|
|
2076
2073
|
RenderTextMessage: RenderTextMessage2 = RenderTextMessage,
|
|
2077
2074
|
RenderActionExecutionMessage: RenderActionExecutionMessage2 = RenderActionExecutionMessage,
|
|
@@ -2094,13 +2091,7 @@ function CopilotChat({
|
|
|
2094
2091
|
sendMessage,
|
|
2095
2092
|
stopGeneration,
|
|
2096
2093
|
reloadMessages
|
|
2097
|
-
} = useCopilotChatLogic(
|
|
2098
|
-
makeSystemMessage,
|
|
2099
|
-
onInProgress,
|
|
2100
|
-
onSubmitMessage,
|
|
2101
|
-
onStopGeneration,
|
|
2102
|
-
onReloadMessages
|
|
2103
|
-
);
|
|
2094
|
+
} = useCopilotChatLogic(makeSystemMessage, onInProgress, onSubmitMessage);
|
|
2104
2095
|
const chatContext = import_react11.default.useContext(ChatContext);
|
|
2105
2096
|
const isVisible = chatContext ? chatContext.open : true;
|
|
2106
2097
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(WrappedCopilotChat, { icons, labels, className, children: [
|
|
@@ -2156,15 +2147,8 @@ function WrappedCopilotChat({
|
|
|
2156
2147
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_jsx_runtime18.Fragment, { children });
|
|
2157
2148
|
}
|
|
2158
2149
|
var SUGGESTIONS_DEBOUNCE_TIMEOUT = 1e3;
|
|
2159
|
-
var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage
|
|
2160
|
-
|
|
2161
|
-
const {
|
|
2162
|
-
visibleMessages,
|
|
2163
|
-
appendMessage,
|
|
2164
|
-
reloadMessages: defaultReloadMessages,
|
|
2165
|
-
stopGeneration: defaultStopGeneration,
|
|
2166
|
-
isLoading
|
|
2167
|
-
} = (0, import_react_core8.useCopilotChat)({
|
|
2150
|
+
var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) => {
|
|
2151
|
+
const { visibleMessages, appendMessage, reloadMessages, stopGeneration, isLoading } = (0, import_react_core8.useCopilotChat)({
|
|
2168
2152
|
id: (0, import_shared3.randomId)(),
|
|
2169
2153
|
makeSystemMessage
|
|
2170
2154
|
});
|
|
@@ -2172,8 +2156,8 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onS
|
|
|
2172
2156
|
const suggestionsAbortControllerRef = (0, import_react11.useRef)(null);
|
|
2173
2157
|
const debounceTimerRef = (0, import_react11.useRef)();
|
|
2174
2158
|
const abortSuggestions = () => {
|
|
2175
|
-
var
|
|
2176
|
-
(
|
|
2159
|
+
var _a;
|
|
2160
|
+
(_a = suggestionsAbortControllerRef.current) == null ? void 0 : _a.abort();
|
|
2177
2161
|
suggestionsAbortControllerRef.current = null;
|
|
2178
2162
|
};
|
|
2179
2163
|
const generalContext = (0, import_react_core8.useCopilotContext)();
|
|
@@ -2199,13 +2183,7 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onS
|
|
|
2199
2183
|
return () => {
|
|
2200
2184
|
clearTimeout(debounceTimerRef.current);
|
|
2201
2185
|
};
|
|
2202
|
-
}, [
|
|
2203
|
-
isLoading,
|
|
2204
|
-
context.chatSuggestionConfiguration,
|
|
2205
|
-
// hackish way to trigger suggestions reload on reset, but better than moving suggestions to the
|
|
2206
|
-
// global context
|
|
2207
|
-
visibleMessages.length == 0
|
|
2208
|
-
]);
|
|
2186
|
+
}, [isLoading, context.chatSuggestionConfiguration]);
|
|
2209
2187
|
const sendMessage = (messageContent) => __async(void 0, null, function* () {
|
|
2210
2188
|
abortSuggestions();
|
|
2211
2189
|
setCurrentSuggestions([]);
|
|
@@ -2223,79 +2201,6 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onS
|
|
|
2223
2201
|
appendMessage(message);
|
|
2224
2202
|
return message;
|
|
2225
2203
|
});
|
|
2226
|
-
const messages = visibleMessages;
|
|
2227
|
-
const { setMessages } = messagesContext;
|
|
2228
|
-
const currentAgentName = (_a = generalContext.agentSession) == null ? void 0 : _a.agentName;
|
|
2229
|
-
const restartCurrentAgent = (hint) => __async(void 0, null, function* () {
|
|
2230
|
-
if (generalContext.agentSession) {
|
|
2231
|
-
generalContext.setAgentSession(__spreadProps(__spreadValues({}, generalContext.agentSession), {
|
|
2232
|
-
nodeName: void 0,
|
|
2233
|
-
threadId: void 0
|
|
2234
|
-
}));
|
|
2235
|
-
generalContext.setCoagentStates((prevAgentStates) => {
|
|
2236
|
-
return __spreadProps(__spreadValues({}, prevAgentStates), {
|
|
2237
|
-
[generalContext.agentSession.agentName]: __spreadProps(__spreadValues({}, prevAgentStates[generalContext.agentSession.agentName]), {
|
|
2238
|
-
threadId: void 0,
|
|
2239
|
-
nodeName: void 0,
|
|
2240
|
-
runId: void 0
|
|
2241
|
-
})
|
|
2242
|
-
});
|
|
2243
|
-
});
|
|
2244
|
-
}
|
|
2245
|
-
});
|
|
2246
|
-
const runCurrentAgent = (hint) => __async(void 0, null, function* () {
|
|
2247
|
-
if (generalContext.agentSession) {
|
|
2248
|
-
yield (0, import_react_core9.runAgent)(generalContext.agentSession.agentName, context, appendMessage, hint);
|
|
2249
|
-
}
|
|
2250
|
-
});
|
|
2251
|
-
const stopCurrentAgent = () => {
|
|
2252
|
-
if (generalContext.agentSession) {
|
|
2253
|
-
(0, import_react_core9.stopAgent)(generalContext.agentSession.agentName, context);
|
|
2254
|
-
}
|
|
2255
|
-
};
|
|
2256
|
-
const setCurrentAgentState = (state) => {
|
|
2257
|
-
if (generalContext.agentSession) {
|
|
2258
|
-
generalContext.setCoagentStates((prevAgentStates) => {
|
|
2259
|
-
return __spreadProps(__spreadValues({}, prevAgentStates), {
|
|
2260
|
-
[generalContext.agentSession.agentName]: {
|
|
2261
|
-
state
|
|
2262
|
-
}
|
|
2263
|
-
});
|
|
2264
|
-
});
|
|
2265
|
-
}
|
|
2266
|
-
};
|
|
2267
|
-
function stopGeneration() {
|
|
2268
|
-
if (onStopGeneration) {
|
|
2269
|
-
onStopGeneration({
|
|
2270
|
-
messages,
|
|
2271
|
-
setMessages,
|
|
2272
|
-
stopGeneration: defaultStopGeneration,
|
|
2273
|
-
currentAgentName,
|
|
2274
|
-
restartCurrentAgent,
|
|
2275
|
-
stopCurrentAgent,
|
|
2276
|
-
runCurrentAgent,
|
|
2277
|
-
setCurrentAgentState
|
|
2278
|
-
});
|
|
2279
|
-
} else {
|
|
2280
|
-
defaultStopGeneration();
|
|
2281
|
-
}
|
|
2282
|
-
}
|
|
2283
|
-
function reloadMessages() {
|
|
2284
|
-
if (onReloadMessages) {
|
|
2285
|
-
onReloadMessages({
|
|
2286
|
-
messages,
|
|
2287
|
-
setMessages,
|
|
2288
|
-
stopGeneration: defaultStopGeneration,
|
|
2289
|
-
currentAgentName,
|
|
2290
|
-
restartCurrentAgent,
|
|
2291
|
-
stopCurrentAgent,
|
|
2292
|
-
runCurrentAgent,
|
|
2293
|
-
setCurrentAgentState
|
|
2294
|
-
});
|
|
2295
|
-
} else {
|
|
2296
|
-
defaultReloadMessages();
|
|
2297
|
-
}
|
|
2298
|
-
}
|
|
2299
2204
|
return {
|
|
2300
2205
|
visibleMessages,
|
|
2301
2206
|
isLoading,
|