@copilotkit/react-ui 1.1.1-feat-runtime-remote-actions.2 → 1.1.1-feat-runtime-remote-actions.4
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 +20 -0
- package/dist/{chunk-AAX6U6YB.mjs → chunk-4II7NDKP.mjs} +9 -9
- package/dist/{chunk-I4QG2ZZU.mjs → chunk-DAHXB2SW.mjs} +4 -4
- package/dist/{chunk-MEVD4R3Q.mjs → chunk-G3RCRTQZ.mjs} +2 -2
- package/dist/{chunk-4V6JWNFZ.mjs → chunk-JU7KYJD4.mjs} +10 -10
- package/dist/{chunk-3K4EOAP3.mjs → chunk-LKY2XFK5.mjs} +2 -2
- package/dist/{chunk-2C5JDPHV.mjs → chunk-PDU5NXDS.mjs} +54 -10
- package/dist/chunk-PDU5NXDS.mjs.map +1 -0
- package/dist/components/chat/Chat.js +55 -11
- package/dist/components/chat/Chat.js.map +1 -1
- package/dist/components/chat/Chat.mjs +9 -9
- package/dist/components/chat/Messages.js +53 -9
- package/dist/components/chat/Messages.js.map +1 -1
- package/dist/components/chat/Messages.mjs +2 -2
- package/dist/components/chat/Modal.js +55 -11
- package/dist/components/chat/Modal.js.map +1 -1
- package/dist/components/chat/Modal.mjs +11 -11
- package/dist/components/chat/Popup.js +55 -11
- package/dist/components/chat/Popup.js.map +1 -1
- package/dist/components/chat/Popup.mjs +12 -12
- package/dist/components/chat/Sidebar.js +55 -11
- package/dist/components/chat/Sidebar.js.map +1 -1
- package/dist/components/chat/Sidebar.mjs +12 -12
- package/dist/components/chat/index.js +55 -11
- package/dist/components/chat/index.js.map +1 -1
- package/dist/components/chat/index.mjs +15 -15
- package/dist/components/dev-console/console.mjs +2 -2
- package/dist/components/dev-console/index.mjs +2 -2
- package/dist/components/index.js +55 -11
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +15 -15
- package/dist/index.js +55 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +15 -15
- package/package.json +7 -7
- package/src/components/chat/Messages.tsx +70 -8
- package/dist/chunk-2C5JDPHV.mjs.map +0 -1
- /package/dist/{chunk-AAX6U6YB.mjs.map → chunk-4II7NDKP.mjs.map} +0 -0
- /package/dist/{chunk-I4QG2ZZU.mjs.map → chunk-DAHXB2SW.mjs.map} +0 -0
- /package/dist/{chunk-MEVD4R3Q.mjs.map → chunk-G3RCRTQZ.mjs.map} +0 -0
- /package/dist/{chunk-4V6JWNFZ.mjs.map → chunk-JU7KYJD4.mjs.map} +0 -0
- /package/dist/{chunk-3K4EOAP3.mjs.map → chunk-LKY2XFK5.mjs.map} +0 -0
package/dist/index.mjs
CHANGED
|
@@ -2,35 +2,35 @@
|
|
|
2
2
|
import "./chunk-EFZPSZWO.mjs";
|
|
3
3
|
import "./chunk-JD7BAH7U.mjs";
|
|
4
4
|
import "./chunk-MRFF7GSQ.mjs";
|
|
5
|
-
import {
|
|
6
|
-
CopilotSidebar
|
|
7
|
-
} from "./chunk-MEVD4R3Q.mjs";
|
|
8
5
|
import "./chunk-WB3YULQ4.mjs";
|
|
9
6
|
import {
|
|
10
7
|
CopilotPopup
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import
|
|
8
|
+
} from "./chunk-LKY2XFK5.mjs";
|
|
9
|
+
import {
|
|
10
|
+
CopilotSidebar
|
|
11
|
+
} from "./chunk-G3RCRTQZ.mjs";
|
|
12
|
+
import "./chunk-4II7NDKP.mjs";
|
|
13
13
|
import "./chunk-LLOSOTAT.mjs";
|
|
14
|
-
import "./chunk-SE6DAYSX.mjs";
|
|
15
14
|
import "./chunk-UC3Y7MWX.mjs";
|
|
16
15
|
import {
|
|
17
16
|
CopilotChat
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
17
|
+
} from "./chunk-JU7KYJD4.mjs";
|
|
18
|
+
import "./chunk-PDU5NXDS.mjs";
|
|
19
|
+
import "./chunk-YQ3D5IQV.mjs";
|
|
20
|
+
import "./chunk-XSUSSWDS.mjs";
|
|
20
21
|
import "./chunk-WCPLXRZX.mjs";
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-OTPAZXVR.mjs";
|
|
22
|
+
import "./chunk-UPTB2MVO.mjs";
|
|
23
|
+
import "./chunk-SE6DAYSX.mjs";
|
|
24
24
|
import "./chunk-U6J5DGOE.mjs";
|
|
25
25
|
import "./chunk-YQFVRDNC.mjs";
|
|
26
|
-
import "./chunk-2C5JDPHV.mjs";
|
|
27
|
-
import "./chunk-YQ3D5IQV.mjs";
|
|
28
|
-
import "./chunk-XSUSSWDS.mjs";
|
|
29
26
|
import {
|
|
30
27
|
useChatContext
|
|
31
28
|
} from "./chunk-BJPGMY3I.mjs";
|
|
32
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-V7W6IM2V.mjs";
|
|
30
|
+
import "./chunk-DAHXB2SW.mjs";
|
|
31
|
+
import "./chunk-H7TM5JE6.mjs";
|
|
33
32
|
import "./chunk-FZC7X5PK.mjs";
|
|
33
|
+
import "./chunk-OTPAZXVR.mjs";
|
|
34
34
|
import "./chunk-IU3WTXLQ.mjs";
|
|
35
35
|
import "./chunk-T26KLXLH.mjs";
|
|
36
36
|
import {
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"publishConfig": {
|
|
10
10
|
"access": "public"
|
|
11
11
|
},
|
|
12
|
-
"version": "1.1.1-feat-runtime-remote-actions.
|
|
12
|
+
"version": "1.1.1-feat-runtime-remote-actions.4",
|
|
13
13
|
"sideEffects": [
|
|
14
14
|
"**/*.css"
|
|
15
15
|
],
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
"ts-jest": "^29.1.1",
|
|
41
41
|
"tsup": "^6.7.0",
|
|
42
42
|
"typescript": "^5.2.3",
|
|
43
|
-
"eslint-config-custom": "1.1.1-feat-runtime-remote-actions.
|
|
44
|
-
"tailwind-config": "1.1.1-feat-runtime-remote-actions.
|
|
45
|
-
"tsconfig": "1.1.1-feat-runtime-remote-actions.
|
|
43
|
+
"eslint-config-custom": "1.1.1-feat-runtime-remote-actions.4",
|
|
44
|
+
"tailwind-config": "1.1.1-feat-runtime-remote-actions.4",
|
|
45
|
+
"tsconfig": "1.1.1-feat-runtime-remote-actions.4"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@headlessui/react": "^2.1.2",
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
"react-syntax-highlighter": "^15.5.0",
|
|
51
51
|
"remark-gfm": "^3.0.1",
|
|
52
52
|
"remark-math": "^5.1.1",
|
|
53
|
-
"@copilotkit/react-core": "1.1.1-feat-runtime-remote-actions.
|
|
54
|
-
"@copilotkit/
|
|
55
|
-
"@copilotkit/
|
|
53
|
+
"@copilotkit/react-core": "1.1.1-feat-runtime-remote-actions.4",
|
|
54
|
+
"@copilotkit/runtime-client-gql": "1.1.1-feat-runtime-remote-actions.4",
|
|
55
|
+
"@copilotkit/shared": "1.1.1-feat-runtime-remote-actions.4"
|
|
56
56
|
},
|
|
57
57
|
"keywords": [
|
|
58
58
|
"copilotkit",
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
} from "@copilotkit/runtime-client-gql";
|
|
15
15
|
|
|
16
16
|
export const Messages = ({ messages, inProgress, children }: MessagesProps) => {
|
|
17
|
-
const { chatComponentsCache } = useCopilotContext();
|
|
17
|
+
const { chatComponentsCache, chatUI } = useCopilotContext();
|
|
18
18
|
|
|
19
19
|
const context = useChatContext();
|
|
20
20
|
const initialMessages = useMemo(
|
|
@@ -74,8 +74,11 @@ export const Messages = ({ messages, inProgress, children }: MessagesProps) => {
|
|
|
74
74
|
</div>
|
|
75
75
|
);
|
|
76
76
|
} else if (message instanceof ActionExecutionMessage) {
|
|
77
|
-
if (
|
|
78
|
-
|
|
77
|
+
if (
|
|
78
|
+
chatComponentsCache.current !== null &&
|
|
79
|
+
chatComponentsCache.current.actions[message.name]
|
|
80
|
+
) {
|
|
81
|
+
const render = chatComponentsCache.current.actions[message.name];
|
|
79
82
|
// render a static string
|
|
80
83
|
if (typeof render === "string") {
|
|
81
84
|
// when render is static, we show it only when in progress
|
|
@@ -141,11 +144,70 @@ export const Messages = ({ messages, inProgress, children }: MessagesProps) => {
|
|
|
141
144
|
</div>
|
|
142
145
|
);
|
|
143
146
|
}
|
|
144
|
-
} else if (
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
147
|
+
} else if (message instanceof AgentStateMessage) {
|
|
148
|
+
let currentChatUI = chatUI.find(
|
|
149
|
+
(ui) => ui.agentName === message.agentName && ui.nodeName === message.nodeName,
|
|
150
|
+
);
|
|
151
|
+
|
|
152
|
+
if (!currentChatUI) {
|
|
153
|
+
currentChatUI = chatUI.find(
|
|
154
|
+
(ui) => ui.agentName === message.agentName && ui.nodeName === undefined,
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (!currentChatUI) {
|
|
159
|
+
if (inProgress && isCurrentMessage) {
|
|
160
|
+
return (
|
|
161
|
+
<div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>
|
|
162
|
+
{context.icons.spinnerIcon}
|
|
163
|
+
</div>
|
|
164
|
+
);
|
|
165
|
+
} else {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
if (typeof currentChatUI.render === "string") {
|
|
171
|
+
// when render is static, we show it only when in progress
|
|
172
|
+
if (isCurrentMessage && inProgress) {
|
|
173
|
+
return (
|
|
174
|
+
<div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>
|
|
175
|
+
{context.icons.spinnerIcon}{" "}
|
|
176
|
+
<span className="inProgressLabel">{currentChatUI.render}</span>
|
|
177
|
+
</div>
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
// Done - silent by default to avoid a series of "done" messages
|
|
181
|
+
else {
|
|
182
|
+
return null;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
const toRender = currentChatUI.render({
|
|
187
|
+
state: message.state,
|
|
188
|
+
agentName: message.agentName,
|
|
189
|
+
nodeName: message.nodeName,
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
// No result and complete: stay silent
|
|
193
|
+
if (!toRender && status === "complete") {
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if (typeof toRender === "string") {
|
|
198
|
+
return (
|
|
199
|
+
<div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>
|
|
200
|
+
{isCurrentMessage && inProgress && context.icons.spinnerIcon} {toRender}
|
|
201
|
+
</div>
|
|
202
|
+
);
|
|
203
|
+
} else {
|
|
204
|
+
return (
|
|
205
|
+
<div key={index} className="copilotKitCustomAssistantMessage">
|
|
206
|
+
{toRender}
|
|
207
|
+
</div>
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
} else if (message instanceof ResultMessage && inProgress && isCurrentMessage) {
|
|
149
211
|
return (
|
|
150
212
|
<div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>
|
|
151
213
|
{context.icons.spinnerIcon}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/chat/Messages.tsx"],"sourcesContent":["import React, { useEffect, useMemo } from \"react\";\nimport { MessagesProps } from \"./props\";\nimport { useChatContext } from \"./ChatContext\";\nimport { Markdown } from \"./Markdown\";\nimport { RenderFunctionStatus, useCopilotContext } from \"@copilotkit/react-core\";\nimport {\n MessageStatusCode,\n ActionExecutionMessage,\n Message,\n ResultMessage,\n TextMessage,\n Role,\n AgentStateMessage,\n} from \"@copilotkit/runtime-client-gql\";\n\nexport const Messages = ({ messages, inProgress, children }: MessagesProps) => {\n const { chatComponentsCache } = useCopilotContext();\n\n const context = useChatContext();\n const initialMessages = useMemo(\n () => makeInitialMessages(context.labels.initial),\n [context.labels.initial],\n );\n messages = [...initialMessages, ...messages];\n\n const functionResults: Record<string, string> = {};\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i] instanceof ActionExecutionMessage) {\n const id = messages[i].id;\n const resultMessage: ResultMessage | undefined = messages.find(\n (message) => message instanceof ResultMessage && message.actionExecutionId === id,\n ) as ResultMessage | undefined;\n\n if (resultMessage) {\n functionResults[id] = ResultMessage.decodeResult(resultMessage.result || \"\");\n }\n }\n }\n\n const messagesEndRef = React.useRef<HTMLDivElement>(null);\n\n const scrollToBottom = () => {\n if (messagesEndRef.current) {\n messagesEndRef.current.scrollIntoView({\n behavior: \"auto\",\n });\n }\n };\n\n useEffect(() => {\n scrollToBottom();\n }, [messages]);\n\n return (\n <div className=\"copilotKitMessages\">\n {messages.map((message, index) => {\n const isCurrentMessage = index === messages.length - 1;\n\n if (message instanceof TextMessage && message.role === \"user\") {\n return (\n <div key={index} className=\"copilotKitMessage copilotKitUserMessage\">\n {message.content}\n </div>\n );\n } else if (message instanceof TextMessage && message.role == \"assistant\") {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {isCurrentMessage && inProgress && !message.content ? (\n context.icons.spinnerIcon\n ) : (\n <Markdown content={message.content} />\n )}\n </div>\n );\n } else if (message instanceof ActionExecutionMessage) {\n if (chatComponentsCache.current !== null && chatComponentsCache.current[message.name]) {\n const render = chatComponentsCache.current[message.name];\n // render a static string\n if (typeof render === \"string\") {\n // when render is static, we show it only when in progress\n if (isCurrentMessage && inProgress) {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon} <span className=\"inProgressLabel\">{render}</span>\n </div>\n );\n }\n // Done - silent by default to avoid a series of \"done\" messages\n else {\n return null;\n }\n }\n // render is a function\n else {\n const args = message.arguments;\n\n let status: RenderFunctionStatus = \"inProgress\";\n\n if (functionResults[message.id] !== undefined) {\n status = \"complete\";\n } else if (message.status.code !== MessageStatusCode.Pending) {\n status = \"executing\";\n }\n\n const toRender = render({\n status: status as any,\n args,\n result: functionResults[message.id],\n });\n\n // No result and complete: stay silent\n if (!toRender && status === \"complete\") {\n return null;\n }\n\n if (typeof toRender === \"string\") {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {isCurrentMessage && inProgress && context.icons.spinnerIcon} {toRender}\n </div>\n );\n } else {\n return (\n <div key={index} className=\"copilotKitCustomAssistantMessage\">\n {toRender}\n </div>\n );\n }\n }\n }\n // No render function found- show the default message\n else if (!inProgress || !isCurrentMessage) {\n // Done - silent by default to avoid a series of \"done\" messages\n return null;\n } else {\n // In progress\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon}\n </div>\n );\n }\n } else if (\n (message instanceof AgentStateMessage || message instanceof ResultMessage) &&\n inProgress &&\n isCurrentMessage\n ) {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon}\n </div>\n );\n }\n })}\n <footer ref={messagesEndRef}>{children}</footer>\n </div>\n );\n};\n\nfunction makeInitialMessages(initial?: string | string[]): Message[] {\n let initialArray: string[] = [];\n if (initial) {\n if (Array.isArray(initial)) {\n initialArray.push(...initial);\n } else {\n initialArray.push(initial);\n }\n }\n\n return initialArray.map(\n (message) =>\n new TextMessage({\n role: Role.Assistant,\n content: message,\n }),\n );\n}\n"],"mappings":"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","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|