@copilotkit/react-ui 1.10.7-next.0 → 1.50.0-beta.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 +0 -9
- package/dist/{chunk-VTYBYTE6.mjs → chunk-3JYVJHL5.mjs} +7 -7
- package/dist/chunk-3YWFGNSM.mjs +32 -0
- package/dist/chunk-3YWFGNSM.mjs.map +1 -0
- package/dist/{chunk-YBRHDFVQ.mjs → chunk-CQ2WALZ7.mjs} +2 -2
- package/dist/{chunk-OWX6YJZH.mjs → chunk-E6WVAOQA.mjs} +9 -5
- package/dist/chunk-E6WVAOQA.mjs.map +1 -0
- package/dist/{chunk-WBPBTTQD.mjs → chunk-FFJHOZX6.mjs} +4 -4
- package/dist/{chunk-MJEYL3FK.mjs → chunk-G35HUUDA.mjs} +26 -260
- package/dist/chunk-G35HUUDA.mjs.map +1 -0
- package/dist/{chunk-V6DDX4LH.mjs → chunk-GDSZGYCE.mjs} +2 -2
- package/dist/{chunk-ZJCHKHE4.mjs → chunk-HBZW7E5Z.mjs} +13 -10
- package/dist/chunk-HBZW7E5Z.mjs.map +1 -0
- package/dist/{chunk-KX44MLR6.mjs → chunk-IHFR6PYG.mjs} +1 -1
- package/dist/chunk-IHFR6PYG.mjs.map +1 -0
- package/dist/{chunk-2XARU6EY.mjs → chunk-MPF6BJUF.mjs} +5 -3
- package/dist/chunk-MPF6BJUF.mjs.map +1 -0
- package/dist/{chunk-W26XFBEG.mjs → chunk-NGJ32FAP.mjs} +3 -3
- package/dist/chunk-NGJ32FAP.mjs.map +1 -0
- package/dist/{chunk-RKULVDQO.mjs → chunk-ODEHR7KI.mjs} +9 -2
- package/dist/chunk-ODEHR7KI.mjs.map +1 -0
- package/dist/chunk-OYRZ4VLU.mjs +12 -0
- package/dist/chunk-OYRZ4VLU.mjs.map +1 -0
- package/dist/chunk-QB3GUN2N.mjs +31 -0
- package/dist/chunk-QB3GUN2N.mjs.map +1 -0
- package/dist/{chunk-PIFTVJG3.mjs → chunk-SOB5EIL7.mjs} +2 -2
- package/dist/components/chat/Chat.d.ts +3 -98
- package/dist/components/chat/Chat.js +79 -275
- package/dist/components/chat/Chat.js.map +1 -1
- package/dist/components/chat/Chat.mjs +11 -13
- package/dist/components/chat/Header.mjs +4 -4
- package/dist/components/chat/Input.d.ts +1 -1
- package/dist/components/chat/Input.js +11 -8
- package/dist/components/chat/Input.js.map +1 -1
- package/dist/components/chat/Input.mjs +1 -1
- package/dist/components/chat/Messages.d.ts +3 -3
- package/dist/components/chat/Messages.js +33 -4
- package/dist/components/chat/Messages.js.map +1 -1
- package/dist/components/chat/Messages.mjs +5 -5
- package/dist/components/chat/Modal.d.ts +1 -6
- package/dist/components/chat/Modal.js +85 -279
- package/dist/components/chat/Modal.js.map +1 -1
- package/dist/components/chat/Modal.mjs +14 -14
- package/dist/components/chat/Popup.d.ts +1 -6
- package/dist/components/chat/Popup.js +85 -279
- package/dist/components/chat/Popup.js.map +1 -1
- package/dist/components/chat/Popup.mjs +15 -15
- package/dist/components/chat/Sidebar.d.ts +1 -6
- package/dist/components/chat/Sidebar.js +85 -279
- package/dist/components/chat/Sidebar.js.map +1 -1
- package/dist/components/chat/Sidebar.mjs +15 -15
- package/dist/components/chat/Suggestion.js.map +1 -1
- package/dist/components/chat/Suggestion.mjs +1 -1
- package/dist/components/chat/Suggestions.d.ts +1 -1
- package/dist/components/chat/Suggestions.js +19 -12
- package/dist/components/chat/Suggestions.js.map +1 -1
- package/dist/components/chat/Suggestions.mjs +2 -2
- package/dist/components/chat/index.d.ts +0 -5
- package/dist/components/chat/index.js +85 -279
- package/dist/components/chat/index.js.map +1 -1
- package/dist/components/chat/index.mjs +16 -16
- package/dist/components/chat/messages/AssistantMessage.js.map +1 -1
- package/dist/components/chat/messages/AssistantMessage.mjs +1 -1
- package/dist/components/chat/messages/LegacyRenderMessage.js +28 -3
- package/dist/components/chat/messages/LegacyRenderMessage.js.map +1 -1
- package/dist/components/chat/messages/LegacyRenderMessage.mjs +4 -4
- package/dist/components/chat/messages/RenderMessage.js +21 -3
- package/dist/components/chat/messages/RenderMessage.js.map +1 -1
- package/dist/components/chat/messages/RenderMessage.mjs +3 -3
- package/dist/components/chat/messages/UserMessage.js +19 -3
- package/dist/components/chat/messages/UserMessage.js.map +1 -1
- package/dist/components/chat/messages/UserMessage.mjs +1 -1
- package/dist/components/chat/props.d.ts +4 -0
- package/dist/components/chat/props.js.map +1 -1
- package/dist/components/dev-console/console.mjs +3 -3
- package/dist/components/dev-console/index.mjs +4 -4
- package/dist/components/index.d.ts +0 -5
- package/dist/components/index.js +85 -279
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +17 -17
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +2 -24
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +1 -1
- package/dist/hooks/use-copilot-chat-suggestions.d.ts +4 -26
- package/dist/hooks/use-copilot-chat-suggestions.js +2 -24
- package/dist/hooks/use-copilot-chat-suggestions.js.map +1 -1
- package/dist/hooks/use-copilot-chat-suggestions.mjs +1 -1
- package/dist/index.css +0 -2
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +0 -5
- package/dist/index.js +88 -304
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +18 -18
- package/dist/types/suggestions.d.ts +1 -0
- package/dist/types/suggestions.js.map +1 -1
- package/package.json +23 -22
- package/src/components/chat/Chat.tsx +24 -325
- package/src/components/chat/Input.tsx +13 -12
- package/src/components/chat/Messages.tsx +8 -4
- package/src/components/chat/Suggestion.tsx +2 -2
- package/src/components/chat/Suggestions.tsx +6 -2
- package/src/components/chat/messages/AssistantMessage.tsx +1 -0
- package/src/components/chat/messages/LegacyRenderMessage.tsx +7 -0
- package/src/components/chat/messages/RenderMessage.tsx +2 -0
- package/src/components/chat/messages/UserMessage.tsx +30 -6
- package/src/components/chat/props.ts +4 -0
- package/src/css/messages.css +0 -2
- package/src/hooks/use-copilot-chat-suggestions.tsx +6 -57
- package/src/types/suggestions.ts +1 -0
- package/tsup.config.ts +1 -1
- package/dist/chunk-226ZMOE3.mjs +0 -24
- package/dist/chunk-226ZMOE3.mjs.map +0 -1
- package/dist/chunk-2XARU6EY.mjs.map +0 -1
- package/dist/chunk-EYRKZDP5.mjs +0 -32
- package/dist/chunk-EYRKZDP5.mjs.map +0 -1
- package/dist/chunk-KX44MLR6.mjs.map +0 -1
- package/dist/chunk-MJEYL3FK.mjs.map +0 -1
- package/dist/chunk-OWX6YJZH.mjs.map +0 -1
- package/dist/chunk-RKULVDQO.mjs.map +0 -1
- package/dist/chunk-VVL6JFCJ.mjs +0 -16
- package/dist/chunk-VVL6JFCJ.mjs.map +0 -1
- package/dist/chunk-W26XFBEG.mjs.map +0 -1
- package/dist/chunk-ZJCHKHE4.mjs.map +0 -1
- /package/dist/{chunk-VTYBYTE6.mjs.map → chunk-3JYVJHL5.mjs.map} +0 -0
- /package/dist/{chunk-YBRHDFVQ.mjs.map → chunk-CQ2WALZ7.mjs.map} +0 -0
- /package/dist/{chunk-WBPBTTQD.mjs.map → chunk-FFJHOZX6.mjs.map} +0 -0
- /package/dist/{chunk-V6DDX4LH.mjs.map → chunk-GDSZGYCE.mjs.map} +0 -0
- /package/dist/{chunk-PIFTVJG3.mjs.map → chunk-SOB5EIL7.mjs.map} +0 -0
|
@@ -80,8 +80,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
80
80
|
var Chat_exports = {};
|
|
81
81
|
__export(Chat_exports, {
|
|
82
82
|
CopilotChat: () => CopilotChat,
|
|
83
|
-
WrappedCopilotChat: () => WrappedCopilotChat
|
|
84
|
-
useCopilotChatLogic: () => useCopilotChatLogic
|
|
83
|
+
WrappedCopilotChat: () => WrappedCopilotChat
|
|
85
84
|
});
|
|
86
85
|
module.exports = __toCommonJS(Chat_exports);
|
|
87
86
|
|
|
@@ -400,14 +399,30 @@ var import_react_core = require("@copilotkit/react-core");
|
|
|
400
399
|
|
|
401
400
|
// src/components/chat/messages/UserMessage.tsx
|
|
402
401
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
402
|
+
var getTextContent = (content) => {
|
|
403
|
+
if (typeof content === "undefined") {
|
|
404
|
+
return void 0;
|
|
405
|
+
}
|
|
406
|
+
if (typeof content === "string") {
|
|
407
|
+
return content;
|
|
408
|
+
}
|
|
409
|
+
return content.map((part) => {
|
|
410
|
+
if (part.type === "text") {
|
|
411
|
+
return part.text;
|
|
412
|
+
}
|
|
413
|
+
return void 0;
|
|
414
|
+
}).filter((value) => typeof value === "string" && value.length > 0).join(" ").trim() || void 0;
|
|
415
|
+
};
|
|
403
416
|
var UserMessage = (props) => {
|
|
404
417
|
const { message, ImageRenderer: ImageRenderer2 } = props;
|
|
405
|
-
const isImageMessage = message && "image" in message && message.image;
|
|
418
|
+
const isImageMessage = message && "image" in message && Boolean(message.image);
|
|
406
419
|
if (isImageMessage) {
|
|
407
420
|
const imageMessage = message;
|
|
408
|
-
|
|
421
|
+
const content2 = getTextContent(imageMessage == null ? void 0 : imageMessage.content);
|
|
422
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "copilotKitMessage copilotKitUserMessage", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ImageRenderer2, { image: imageMessage.image, content: content2 }) });
|
|
409
423
|
}
|
|
410
|
-
|
|
424
|
+
const content = getTextContent(message == null ? void 0 : message.content);
|
|
425
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "copilotKitMessage copilotKitUserMessage", children: content });
|
|
411
426
|
};
|
|
412
427
|
|
|
413
428
|
// src/components/chat/Markdown.tsx
|
|
@@ -1086,6 +1101,7 @@ function RenderMessage(_a) {
|
|
|
1086
1101
|
var _a2;
|
|
1087
1102
|
const {
|
|
1088
1103
|
message,
|
|
1104
|
+
messages,
|
|
1089
1105
|
inProgress,
|
|
1090
1106
|
index,
|
|
1091
1107
|
isCurrentMessage,
|
|
@@ -1116,6 +1132,7 @@ function RenderMessage(_a) {
|
|
|
1116
1132
|
subComponent: (_a2 = message.generativeUI) == null ? void 0 : _a2.call(message),
|
|
1117
1133
|
rawData: message,
|
|
1118
1134
|
message,
|
|
1135
|
+
messages,
|
|
1119
1136
|
isLoading: inProgress && isCurrentMessage && !message.content,
|
|
1120
1137
|
isGenerating: inProgress && isCurrentMessage && !!message.content,
|
|
1121
1138
|
isCurrentMessage,
|
|
@@ -1137,6 +1154,7 @@ var import_runtime_client_gql = require("@copilotkit/runtime-client-gql");
|
|
|
1137
1154
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
1138
1155
|
var LegacyRenderMessage = ({
|
|
1139
1156
|
message,
|
|
1157
|
+
messages,
|
|
1140
1158
|
inProgress,
|
|
1141
1159
|
index,
|
|
1142
1160
|
isCurrentMessage,
|
|
@@ -1165,6 +1183,7 @@ var LegacyRenderMessage = ({
|
|
|
1165
1183
|
RenderTextMessage,
|
|
1166
1184
|
{
|
|
1167
1185
|
message,
|
|
1186
|
+
messages,
|
|
1168
1187
|
inProgress,
|
|
1169
1188
|
index,
|
|
1170
1189
|
isCurrentMessage,
|
|
@@ -1182,6 +1201,7 @@ var LegacyRenderMessage = ({
|
|
|
1182
1201
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1183
1202
|
RenderActionExecutionMessage,
|
|
1184
1203
|
{
|
|
1204
|
+
messages,
|
|
1185
1205
|
message,
|
|
1186
1206
|
inProgress,
|
|
1187
1207
|
index,
|
|
@@ -1196,6 +1216,7 @@ var LegacyRenderMessage = ({
|
|
|
1196
1216
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1197
1217
|
RenderAgentStateMessage,
|
|
1198
1218
|
{
|
|
1219
|
+
messages,
|
|
1199
1220
|
message,
|
|
1200
1221
|
inProgress,
|
|
1201
1222
|
index,
|
|
@@ -1209,6 +1230,7 @@ var LegacyRenderMessage = ({
|
|
|
1209
1230
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1210
1231
|
RenderResultMessage,
|
|
1211
1232
|
{
|
|
1233
|
+
messages,
|
|
1212
1234
|
message,
|
|
1213
1235
|
inProgress,
|
|
1214
1236
|
index,
|
|
@@ -1222,6 +1244,7 @@ var LegacyRenderMessage = ({
|
|
|
1222
1244
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1223
1245
|
RenderImageMessage,
|
|
1224
1246
|
{
|
|
1247
|
+
messages,
|
|
1225
1248
|
message,
|
|
1226
1249
|
inProgress,
|
|
1227
1250
|
index,
|
|
@@ -1234,6 +1257,7 @@ var LegacyRenderMessage = ({
|
|
|
1234
1257
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1235
1258
|
RenderMessage,
|
|
1236
1259
|
{
|
|
1260
|
+
messages,
|
|
1237
1261
|
message,
|
|
1238
1262
|
inProgress,
|
|
1239
1263
|
index,
|
|
@@ -1274,7 +1298,8 @@ var Messages = ({
|
|
|
1274
1298
|
RenderResultMessage,
|
|
1275
1299
|
RenderImageMessage
|
|
1276
1300
|
}) => {
|
|
1277
|
-
|
|
1301
|
+
var _a;
|
|
1302
|
+
const { labels, icons } = useChatContext();
|
|
1278
1303
|
const { messages: visibleMessages, interrupt } = (0, import_react_core.useCopilotChatInternal)();
|
|
1279
1304
|
const initialMessages = (0, import_react6.useMemo)(() => makeInitialMessages(labels.initial), [labels.initial]);
|
|
1280
1305
|
const messages = [...initialMessages, ...visibleMessages];
|
|
@@ -1304,6 +1329,7 @@ var Messages = ({
|
|
|
1304
1329
|
]
|
|
1305
1330
|
);
|
|
1306
1331
|
const MessageRenderer = hasLegacyProps ? (props) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(LegacyRenderMessage, __spreadProps(__spreadValues({}, props), { legacyProps })) : RenderMessage2;
|
|
1332
|
+
const LoadingIcon = () => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { children: icons.activityIcon });
|
|
1307
1333
|
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "copilotKitMessages", ref: messagesContainerRef, children: [
|
|
1308
1334
|
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "copilotKitMessagesContainer", children: [
|
|
1309
1335
|
messages.map((message, index) => {
|
|
@@ -1312,6 +1338,7 @@ var Messages = ({
|
|
|
1312
1338
|
MessageRenderer,
|
|
1313
1339
|
{
|
|
1314
1340
|
message,
|
|
1341
|
+
messages,
|
|
1315
1342
|
inProgress,
|
|
1316
1343
|
index,
|
|
1317
1344
|
isCurrentMessage,
|
|
@@ -1328,6 +1355,7 @@ var Messages = ({
|
|
|
1328
1355
|
index
|
|
1329
1356
|
);
|
|
1330
1357
|
}),
|
|
1358
|
+
((_a = messages[messages.length - 1]) == null ? void 0 : _a.role) === "user" && inProgress && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(LoadingIcon, {}),
|
|
1331
1359
|
interrupt,
|
|
1332
1360
|
chatError && ErrorMessage && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ErrorMessage, { error: chatError, isCurrentMessage: true })
|
|
1333
1361
|
] }),
|
|
@@ -1621,12 +1649,12 @@ var MAX_NEWLINES = 6;
|
|
|
1621
1649
|
var Input = ({
|
|
1622
1650
|
inProgress,
|
|
1623
1651
|
onSend,
|
|
1624
|
-
|
|
1652
|
+
chatReady = true,
|
|
1625
1653
|
onStop,
|
|
1626
1654
|
onUpload,
|
|
1627
1655
|
hideStopButton = false
|
|
1628
1656
|
}) => {
|
|
1629
|
-
var _a
|
|
1657
|
+
var _a;
|
|
1630
1658
|
const context = useChatContext();
|
|
1631
1659
|
const copilotContext = (0, import_react_core3.useCopilotContext)();
|
|
1632
1660
|
const showPoweredBy = !((_a = copilotContext.copilotApiConfig) == null ? void 0 : _a.publicApiKey);
|
|
@@ -1656,14 +1684,16 @@ var Input = ({
|
|
|
1656
1684
|
inProgress
|
|
1657
1685
|
});
|
|
1658
1686
|
const isInProgress = inProgress || pushToTalkState === "transcribing";
|
|
1659
|
-
const buttonIcon
|
|
1687
|
+
const { buttonIcon, buttonAlt } = (0, import_react10.useMemo)(() => {
|
|
1688
|
+
if (!chatReady)
|
|
1689
|
+
return { buttonIcon: context.icons.spinnerIcon, buttonAlt: "Loading" };
|
|
1690
|
+
return isInProgress && !hideStopButton ? { buttonIcon: context.icons.stopIcon, buttonAlt: "Stop" } : { buttonIcon: context.icons.sendIcon, buttonAlt: "Send" };
|
|
1691
|
+
}, [isInProgress, chatReady, hideStopButton, context.icons.stopIcon, context.icons.sendIcon]);
|
|
1660
1692
|
const showPushToTalk = pushToTalkConfigured && (pushToTalkState === "idle" || pushToTalkState === "recording") && !inProgress;
|
|
1693
|
+
const { interrupt } = (0, import_react_core3.useCopilotChatInternal)();
|
|
1661
1694
|
const canSend = (0, import_react10.useMemo)(() => {
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
const interruptInProgress = (interruptEvent == null ? void 0 : interruptEvent.name) === "LangGraphInterruptEvent" && !(interruptEvent == null ? void 0 : interruptEvent.response);
|
|
1665
|
-
return !isInProgress && text.trim().length > 0 && pushToTalkState === "idle" && !interruptInProgress;
|
|
1666
|
-
}, [(_b = copilotContext.langGraphInterruptAction) == null ? void 0 : _b.event, isInProgress, text, pushToTalkState]);
|
|
1695
|
+
return !isInProgress && text.trim().length > 0 && pushToTalkState === "idle" && !interrupt;
|
|
1696
|
+
}, [interrupt, isInProgress, text, pushToTalkState]);
|
|
1667
1697
|
const canStop = (0, import_react10.useMemo)(() => {
|
|
1668
1698
|
return isInProgress && !hideStopButton;
|
|
1669
1699
|
}, [isInProgress, hideStopButton]);
|
|
@@ -1710,6 +1740,7 @@ var Input = ({
|
|
|
1710
1740
|
"data-copilotkit-in-progress": inProgress,
|
|
1711
1741
|
"data-test-id": inProgress ? "copilot-chat-request-in-progress" : "copilot-chat-ready",
|
|
1712
1742
|
className: "copilotKitInputControlButton",
|
|
1743
|
+
"aria-label": buttonAlt,
|
|
1713
1744
|
children: buttonIcon
|
|
1714
1745
|
}
|
|
1715
1746
|
)
|
|
@@ -1723,8 +1754,6 @@ var Input = ({
|
|
|
1723
1754
|
var import_react11 = __toESM(require("react"));
|
|
1724
1755
|
var import_react_core5 = require("@copilotkit/react-core");
|
|
1725
1756
|
var import_shared = require("@copilotkit/shared");
|
|
1726
|
-
var import_shared2 = require("@copilotkit/shared");
|
|
1727
|
-
var import_react_core6 = require("@copilotkit/react-core");
|
|
1728
1757
|
|
|
1729
1758
|
// src/components/chat/ImageUploadQueue.tsx
|
|
1730
1759
|
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
@@ -1828,18 +1857,25 @@ function Suggestion({ title, onClick, partial, className }) {
|
|
|
1828
1857
|
|
|
1829
1858
|
// src/components/chat/Suggestions.tsx
|
|
1830
1859
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
1831
|
-
function Suggestions({
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1860
|
+
function Suggestions({
|
|
1861
|
+
suggestions,
|
|
1862
|
+
onSuggestionClick,
|
|
1863
|
+
isLoading
|
|
1864
|
+
}) {
|
|
1865
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "suggestions", children: suggestions.map((suggestion, index) => {
|
|
1866
|
+
var _a, _b;
|
|
1867
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1868
|
+
Suggestion,
|
|
1869
|
+
{
|
|
1870
|
+
title: suggestion.title,
|
|
1871
|
+
message: suggestion.message,
|
|
1872
|
+
partial: (_b = (_a = suggestion.isLoading) != null ? _a : suggestion.partial) != null ? _b : isLoading,
|
|
1873
|
+
className: suggestion.className,
|
|
1874
|
+
onClick: () => onSuggestionClick(suggestion.message)
|
|
1875
|
+
},
|
|
1876
|
+
index
|
|
1877
|
+
);
|
|
1878
|
+
}) });
|
|
1843
1879
|
}
|
|
1844
1880
|
|
|
1845
1881
|
// src/components/chat/Chat.tsx
|
|
@@ -2039,16 +2075,12 @@ function CopilotChat({
|
|
|
2039
2075
|
sendMessage,
|
|
2040
2076
|
stopGeneration,
|
|
2041
2077
|
reloadMessages,
|
|
2042
|
-
suggestions: currentSuggestions
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
onSubmitMessage,
|
|
2049
|
-
onStopGeneration,
|
|
2050
|
-
onReloadMessages
|
|
2051
|
-
);
|
|
2078
|
+
suggestions: currentSuggestions,
|
|
2079
|
+
isLoadingSuggestions,
|
|
2080
|
+
agent
|
|
2081
|
+
} = (0, import_react_core5.useCopilotChatInternal)({
|
|
2082
|
+
suggestions
|
|
2083
|
+
});
|
|
2052
2084
|
const prevIsLoading = (0, import_react11.useRef)(isLoading);
|
|
2053
2085
|
(0, import_react11.useEffect)(() => {
|
|
2054
2086
|
if (prevIsLoading.current !== isLoading) {
|
|
@@ -2067,7 +2099,11 @@ function CopilotChat({
|
|
|
2067
2099
|
fileInputRef.current.value = "";
|
|
2068
2100
|
}
|
|
2069
2101
|
triggerObservabilityHook("onMessageSent", text);
|
|
2070
|
-
return sendMessage(
|
|
2102
|
+
return sendMessage({
|
|
2103
|
+
id: (0, import_shared.randomUUID)(),
|
|
2104
|
+
content: text,
|
|
2105
|
+
role: "user"
|
|
2106
|
+
});
|
|
2071
2107
|
};
|
|
2072
2108
|
const chatContext = import_react11.default.useContext(ChatContext);
|
|
2073
2109
|
const isVisible = chatContext ? chatContext.open : true;
|
|
@@ -2170,7 +2206,8 @@ function CopilotChat({
|
|
|
2170
2206
|
RenderSuggestionsList,
|
|
2171
2207
|
{
|
|
2172
2208
|
onSuggestionClick: handleSendMessage,
|
|
2173
|
-
suggestions: currentSuggestions
|
|
2209
|
+
suggestions: currentSuggestions,
|
|
2210
|
+
isLoading: isLoadingSuggestions
|
|
2174
2211
|
}
|
|
2175
2212
|
)
|
|
2176
2213
|
}
|
|
@@ -2193,6 +2230,7 @@ function CopilotChat({
|
|
|
2193
2230
|
Input2,
|
|
2194
2231
|
{
|
|
2195
2232
|
inProgress: isLoading,
|
|
2233
|
+
chatReady: Boolean(agent),
|
|
2196
2234
|
onSend: handleSendMessage,
|
|
2197
2235
|
isVisible,
|
|
2198
2236
|
onStop: stopGeneration,
|
|
@@ -2218,243 +2256,9 @@ function WrappedCopilotChat({
|
|
|
2218
2256
|
}
|
|
2219
2257
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jsx_runtime17.Fragment, { children });
|
|
2220
2258
|
}
|
|
2221
|
-
var useCopilotChatLogic = (chatSuggestions, makeSystemMessage, disableSystemMessage, onInProgress, onSubmitMessage, onStopGeneration, onReloadMessages) => {
|
|
2222
|
-
var _a;
|
|
2223
|
-
const {
|
|
2224
|
-
messages,
|
|
2225
|
-
sendMessage,
|
|
2226
|
-
setMessages,
|
|
2227
|
-
reloadMessages: defaultReloadMessages,
|
|
2228
|
-
stopGeneration: defaultStopGeneration,
|
|
2229
|
-
runChatCompletion,
|
|
2230
|
-
isLoading,
|
|
2231
|
-
suggestions,
|
|
2232
|
-
setSuggestions,
|
|
2233
|
-
generateSuggestions,
|
|
2234
|
-
resetSuggestions: resetSuggestionsFromHook,
|
|
2235
|
-
isLoadingSuggestions
|
|
2236
|
-
} = (0, import_react_core5.useCopilotChatInternal)({
|
|
2237
|
-
makeSystemMessage,
|
|
2238
|
-
disableSystemMessage
|
|
2239
|
-
});
|
|
2240
|
-
const generalContext = (0, import_react_core5.useCopilotContext)();
|
|
2241
|
-
const messagesContext = (0, import_react_core5.useCopilotMessagesContext)();
|
|
2242
|
-
const { actions } = generalContext;
|
|
2243
|
-
const [suggestionsFailed, setSuggestionsFailed] = (0, import_react11.useState)(false);
|
|
2244
|
-
const hasGeneratedInitialSuggestions = (0, import_react11.useRef)(false);
|
|
2245
|
-
(0, import_react11.useEffect)(() => {
|
|
2246
|
-
if (Array.isArray(chatSuggestions)) {
|
|
2247
|
-
setSuggestions(chatSuggestions);
|
|
2248
|
-
hasGeneratedInitialSuggestions.current = true;
|
|
2249
|
-
}
|
|
2250
|
-
}, [JSON.stringify(chatSuggestions), setSuggestions]);
|
|
2251
|
-
const generateSuggestionsWithErrorHandling = (0, import_react11.useCallback)(
|
|
2252
|
-
(context) => __async(void 0, null, function* () {
|
|
2253
|
-
try {
|
|
2254
|
-
yield generateSuggestions();
|
|
2255
|
-
} catch (error) {
|
|
2256
|
-
console.error("Failed to generate suggestions:", error);
|
|
2257
|
-
setSuggestionsFailed(true);
|
|
2258
|
-
}
|
|
2259
|
-
}),
|
|
2260
|
-
[generateSuggestions]
|
|
2261
|
-
);
|
|
2262
|
-
(0, import_react11.useEffect)(() => {
|
|
2263
|
-
if (chatSuggestions !== "auto" || isLoadingSuggestions || suggestionsFailed) {
|
|
2264
|
-
return;
|
|
2265
|
-
}
|
|
2266
|
-
if (isLoading) {
|
|
2267
|
-
return;
|
|
2268
|
-
}
|
|
2269
|
-
if (Object.keys(generalContext.chatSuggestionConfiguration).length === 0) {
|
|
2270
|
-
return;
|
|
2271
|
-
}
|
|
2272
|
-
if (messages.length === 0 && !hasGeneratedInitialSuggestions.current) {
|
|
2273
|
-
hasGeneratedInitialSuggestions.current = true;
|
|
2274
|
-
generateSuggestionsWithErrorHandling("initial");
|
|
2275
|
-
return;
|
|
2276
|
-
}
|
|
2277
|
-
if (messages.length > 0 && suggestions.length === 0) {
|
|
2278
|
-
generateSuggestionsWithErrorHandling("post-message");
|
|
2279
|
-
return;
|
|
2280
|
-
}
|
|
2281
|
-
}, [
|
|
2282
|
-
chatSuggestions,
|
|
2283
|
-
isLoadingSuggestions,
|
|
2284
|
-
suggestionsFailed,
|
|
2285
|
-
messages.length,
|
|
2286
|
-
isLoading,
|
|
2287
|
-
suggestions.length,
|
|
2288
|
-
Object.keys(generalContext.chatSuggestionConfiguration).join(","),
|
|
2289
|
-
// Use stable string instead of object reference
|
|
2290
|
-
generateSuggestionsWithErrorHandling
|
|
2291
|
-
]);
|
|
2292
|
-
(0, import_react11.useEffect)(() => {
|
|
2293
|
-
if (chatSuggestions !== "auto") {
|
|
2294
|
-
hasGeneratedInitialSuggestions.current = false;
|
|
2295
|
-
setSuggestionsFailed(false);
|
|
2296
|
-
}
|
|
2297
|
-
}, [chatSuggestions]);
|
|
2298
|
-
const stableContext = (0, import_react11.useMemo)(
|
|
2299
|
-
() => __spreadValues(__spreadValues({}, generalContext), messagesContext),
|
|
2300
|
-
[
|
|
2301
|
-
// Only include stable dependencies
|
|
2302
|
-
generalContext.actions,
|
|
2303
|
-
messagesContext.messages.length,
|
|
2304
|
-
generalContext.isLoading
|
|
2305
|
-
]
|
|
2306
|
-
);
|
|
2307
|
-
const resetSuggestions = (0, import_react11.useCallback)(() => {
|
|
2308
|
-
resetSuggestionsFromHook();
|
|
2309
|
-
setSuggestionsFailed(false);
|
|
2310
|
-
hasGeneratedInitialSuggestions.current = false;
|
|
2311
|
-
}, [resetSuggestionsFromHook]);
|
|
2312
|
-
(0, import_react11.useEffect)(() => {
|
|
2313
|
-
onInProgress == null ? void 0 : onInProgress(isLoading);
|
|
2314
|
-
}, [onInProgress, isLoading]);
|
|
2315
|
-
const safelySendMessage = (messageContent, imagesToUse) => __async(void 0, null, function* () {
|
|
2316
|
-
const images = imagesToUse || [];
|
|
2317
|
-
if (chatSuggestions === "auto" || chatSuggestions === "manual") {
|
|
2318
|
-
setSuggestions([]);
|
|
2319
|
-
}
|
|
2320
|
-
let firstMessage = null;
|
|
2321
|
-
if (messageContent.trim().length > 0) {
|
|
2322
|
-
const textMessage = {
|
|
2323
|
-
id: (0, import_shared2.randomId)(),
|
|
2324
|
-
role: "user",
|
|
2325
|
-
content: messageContent
|
|
2326
|
-
};
|
|
2327
|
-
if (onSubmitMessage) {
|
|
2328
|
-
try {
|
|
2329
|
-
yield onSubmitMessage(messageContent);
|
|
2330
|
-
} catch (error) {
|
|
2331
|
-
console.error("Error in onSubmitMessage:", error);
|
|
2332
|
-
}
|
|
2333
|
-
}
|
|
2334
|
-
yield sendMessage(textMessage, {
|
|
2335
|
-
followUp: images.length === 0,
|
|
2336
|
-
clearSuggestions: chatSuggestions === "auto" || chatSuggestions === "manual"
|
|
2337
|
-
});
|
|
2338
|
-
if (!firstMessage) {
|
|
2339
|
-
firstMessage = textMessage;
|
|
2340
|
-
}
|
|
2341
|
-
}
|
|
2342
|
-
if (images.length > 0) {
|
|
2343
|
-
for (let i = 0; i < images.length; i++) {
|
|
2344
|
-
const imageMessage = {
|
|
2345
|
-
id: (0, import_shared2.randomId)(),
|
|
2346
|
-
role: "user",
|
|
2347
|
-
image: {
|
|
2348
|
-
format: images[i].contentType.replace("image/", ""),
|
|
2349
|
-
bytes: images[i].bytes
|
|
2350
|
-
}
|
|
2351
|
-
};
|
|
2352
|
-
yield sendMessage(imageMessage, { followUp: i === images.length - 1 });
|
|
2353
|
-
if (!firstMessage) {
|
|
2354
|
-
firstMessage = imageMessage;
|
|
2355
|
-
}
|
|
2356
|
-
}
|
|
2357
|
-
}
|
|
2358
|
-
if (!firstMessage) {
|
|
2359
|
-
return { role: "user", content: "", id: (0, import_shared2.randomId)() };
|
|
2360
|
-
}
|
|
2361
|
-
return firstMessage;
|
|
2362
|
-
});
|
|
2363
|
-
const currentAgentName = (_a = generalContext.agentSession) == null ? void 0 : _a.agentName;
|
|
2364
|
-
const restartCurrentAgent = (hint) => __async(void 0, null, function* () {
|
|
2365
|
-
if (generalContext.agentSession) {
|
|
2366
|
-
generalContext.setAgentSession(__spreadProps(__spreadValues({}, generalContext.agentSession), {
|
|
2367
|
-
nodeName: void 0,
|
|
2368
|
-
threadId: void 0
|
|
2369
|
-
}));
|
|
2370
|
-
generalContext.setCoagentStates((prevAgentStates) => {
|
|
2371
|
-
return __spreadProps(__spreadValues({}, prevAgentStates), {
|
|
2372
|
-
[generalContext.agentSession.agentName]: __spreadProps(__spreadValues({}, prevAgentStates[generalContext.agentSession.agentName]), {
|
|
2373
|
-
threadId: void 0,
|
|
2374
|
-
nodeName: void 0,
|
|
2375
|
-
runId: void 0
|
|
2376
|
-
})
|
|
2377
|
-
});
|
|
2378
|
-
});
|
|
2379
|
-
}
|
|
2380
|
-
});
|
|
2381
|
-
const runCurrentAgent = (hint) => __async(void 0, null, function* () {
|
|
2382
|
-
if (generalContext.agentSession) {
|
|
2383
|
-
yield (0, import_react_core6.runAgent)(
|
|
2384
|
-
generalContext.agentSession.agentName,
|
|
2385
|
-
stableContext,
|
|
2386
|
-
messagesContext.messages,
|
|
2387
|
-
sendMessage,
|
|
2388
|
-
runChatCompletion
|
|
2389
|
-
);
|
|
2390
|
-
}
|
|
2391
|
-
});
|
|
2392
|
-
const stopCurrentAgent = () => {
|
|
2393
|
-
if (generalContext.agentSession) {
|
|
2394
|
-
(0, import_react_core6.stopAgent)(generalContext.agentSession.agentName, stableContext);
|
|
2395
|
-
}
|
|
2396
|
-
};
|
|
2397
|
-
const setCurrentAgentState = (state) => {
|
|
2398
|
-
if (generalContext.agentSession) {
|
|
2399
|
-
generalContext.setCoagentStates((prevAgentStates) => {
|
|
2400
|
-
return __spreadProps(__spreadValues({}, prevAgentStates), {
|
|
2401
|
-
[generalContext.agentSession.agentName]: {
|
|
2402
|
-
state
|
|
2403
|
-
}
|
|
2404
|
-
});
|
|
2405
|
-
});
|
|
2406
|
-
}
|
|
2407
|
-
};
|
|
2408
|
-
function stopGeneration() {
|
|
2409
|
-
setSuggestions([]);
|
|
2410
|
-
if (onStopGeneration) {
|
|
2411
|
-
onStopGeneration({
|
|
2412
|
-
messages,
|
|
2413
|
-
setMessages,
|
|
2414
|
-
stopGeneration: defaultStopGeneration,
|
|
2415
|
-
currentAgentName,
|
|
2416
|
-
restartCurrentAgent,
|
|
2417
|
-
stopCurrentAgent,
|
|
2418
|
-
runCurrentAgent,
|
|
2419
|
-
setCurrentAgentState
|
|
2420
|
-
});
|
|
2421
|
-
} else {
|
|
2422
|
-
defaultStopGeneration();
|
|
2423
|
-
}
|
|
2424
|
-
}
|
|
2425
|
-
function reloadMessages(messageId) {
|
|
2426
|
-
if (onReloadMessages) {
|
|
2427
|
-
onReloadMessages({
|
|
2428
|
-
messages,
|
|
2429
|
-
setMessages,
|
|
2430
|
-
stopGeneration: defaultStopGeneration,
|
|
2431
|
-
currentAgentName,
|
|
2432
|
-
restartCurrentAgent,
|
|
2433
|
-
stopCurrentAgent,
|
|
2434
|
-
runCurrentAgent,
|
|
2435
|
-
setCurrentAgentState,
|
|
2436
|
-
messageId
|
|
2437
|
-
});
|
|
2438
|
-
} else {
|
|
2439
|
-
defaultReloadMessages(messageId);
|
|
2440
|
-
}
|
|
2441
|
-
}
|
|
2442
|
-
return {
|
|
2443
|
-
messages,
|
|
2444
|
-
isLoading,
|
|
2445
|
-
suggestions,
|
|
2446
|
-
sendMessage: safelySendMessage,
|
|
2447
|
-
stopGeneration,
|
|
2448
|
-
reloadMessages,
|
|
2449
|
-
resetSuggestions,
|
|
2450
|
-
context: stableContext,
|
|
2451
|
-
actions
|
|
2452
|
-
};
|
|
2453
|
-
};
|
|
2454
2259
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2455
2260
|
0 && (module.exports = {
|
|
2456
2261
|
CopilotChat,
|
|
2457
|
-
WrappedCopilotChat
|
|
2458
|
-
useCopilotChatLogic
|
|
2262
|
+
WrappedCopilotChat
|
|
2459
2263
|
});
|
|
2460
2264
|
//# sourceMappingURL=Chat.js.map
|