@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
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CopilotModal
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-3JYVJHL5.mjs";
|
|
4
4
|
import "../../chunk-C3GSYRC3.mjs";
|
|
5
|
-
import "../../chunk-
|
|
5
|
+
import "../../chunk-GDSZGYCE.mjs";
|
|
6
6
|
import "../../chunk-V7W6IM2V.mjs";
|
|
7
|
-
import "../../chunk-
|
|
7
|
+
import "../../chunk-FFJHOZX6.mjs";
|
|
8
|
+
import "../../chunk-Q5V6S67N.mjs";
|
|
9
|
+
import "../../chunk-JY2CSDKN.mjs";
|
|
8
10
|
import "../../chunk-KXE2JCUH.mjs";
|
|
9
11
|
import "../../chunk-NRA3CFEE.mjs";
|
|
10
12
|
import "../../chunk-BH6PCAAL.mjs";
|
|
11
|
-
import "../../chunk-Q5V6S67N.mjs";
|
|
12
|
-
import "../../chunk-JY2CSDKN.mjs";
|
|
13
13
|
import "../../chunk-UFN2VWSR.mjs";
|
|
14
|
-
import "../../chunk-
|
|
15
|
-
import "../../chunk-
|
|
16
|
-
import "../../chunk-
|
|
14
|
+
import "../../chunk-G35HUUDA.mjs";
|
|
15
|
+
import "../../chunk-QB3GUN2N.mjs";
|
|
16
|
+
import "../../chunk-NGJ32FAP.mjs";
|
|
17
17
|
import "../../chunk-PLHTVHUW.mjs";
|
|
18
|
-
import "../../chunk-
|
|
18
|
+
import "../../chunk-HBZW7E5Z.mjs";
|
|
19
19
|
import "../../chunk-ELGRNEAO.mjs";
|
|
20
20
|
import "../../chunk-QIOJXTIQ.mjs";
|
|
21
|
-
import "../../chunk-
|
|
22
|
-
import "../../chunk-
|
|
23
|
-
import "../../chunk-
|
|
24
|
-
import "../../chunk-
|
|
21
|
+
import "../../chunk-E6WVAOQA.mjs";
|
|
22
|
+
import "../../chunk-ODEHR7KI.mjs";
|
|
23
|
+
import "../../chunk-MPF6BJUF.mjs";
|
|
24
|
+
import "../../chunk-IHFR6PYG.mjs";
|
|
25
25
|
import "../../chunk-DBKRAOH7.mjs";
|
|
26
|
-
import "../../chunk-
|
|
26
|
+
import "../../chunk-3YWFGNSM.mjs";
|
|
27
27
|
import "../../chunk-JZ3RFQQ6.mjs";
|
|
28
28
|
import "../../chunk-IEMQ2SQW.mjs";
|
|
29
29
|
import "../../chunk-IK2BPURM.mjs";
|
|
@@ -5,13 +5,8 @@ import './props.js';
|
|
|
5
5
|
import '@copilotkit/shared';
|
|
6
6
|
import '../../types/suggestions.js';
|
|
7
7
|
import './Chat.js';
|
|
8
|
-
import '@copilotkit/react-core/dist/types/coagent-state';
|
|
9
|
-
import '@copilotkit/react-core/dist/hooks/use-tree';
|
|
10
|
-
import '@copilotkit/react-core/dist/copilot-context-cf9de848';
|
|
11
|
-
import '@copilotkit/react-core/dist/types/coagent-action';
|
|
12
|
-
import '@copilotkit/react-core';
|
|
13
|
-
import '@copilotkit/runtime-client-gql';
|
|
14
8
|
import './ChatContext.js';
|
|
9
|
+
import '@copilotkit/react-core';
|
|
15
10
|
|
|
16
11
|
declare function CopilotPopup(props: CopilotModalProps): react_jsx_runtime.JSX.Element;
|
|
17
12
|
|
|
@@ -1030,14 +1030,30 @@ var import_react_core5 = require("@copilotkit/react-core");
|
|
|
1030
1030
|
|
|
1031
1031
|
// src/components/chat/messages/UserMessage.tsx
|
|
1032
1032
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1033
|
+
var getTextContent = (content) => {
|
|
1034
|
+
if (typeof content === "undefined") {
|
|
1035
|
+
return void 0;
|
|
1036
|
+
}
|
|
1037
|
+
if (typeof content === "string") {
|
|
1038
|
+
return content;
|
|
1039
|
+
}
|
|
1040
|
+
return content.map((part) => {
|
|
1041
|
+
if (part.type === "text") {
|
|
1042
|
+
return part.text;
|
|
1043
|
+
}
|
|
1044
|
+
return void 0;
|
|
1045
|
+
}).filter((value) => typeof value === "string" && value.length > 0).join(" ").trim() || void 0;
|
|
1046
|
+
};
|
|
1033
1047
|
var UserMessage = (props) => {
|
|
1034
1048
|
const { message, ImageRenderer: ImageRenderer2 } = props;
|
|
1035
|
-
const isImageMessage = message && "image" in message && message.image;
|
|
1049
|
+
const isImageMessage = message && "image" in message && Boolean(message.image);
|
|
1036
1050
|
if (isImageMessage) {
|
|
1037
1051
|
const imageMessage = message;
|
|
1038
|
-
|
|
1052
|
+
const content2 = getTextContent(imageMessage == null ? void 0 : imageMessage.content);
|
|
1053
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "copilotKitMessage copilotKitUserMessage", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ImageRenderer2, { image: imageMessage.image, content: content2 }) });
|
|
1039
1054
|
}
|
|
1040
|
-
|
|
1055
|
+
const content = getTextContent(message == null ? void 0 : message.content);
|
|
1056
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "copilotKitMessage copilotKitUserMessage", children: content });
|
|
1041
1057
|
};
|
|
1042
1058
|
|
|
1043
1059
|
// src/components/chat/Markdown.tsx
|
|
@@ -1716,6 +1732,7 @@ function RenderMessage(_a) {
|
|
|
1716
1732
|
var _a2;
|
|
1717
1733
|
const {
|
|
1718
1734
|
message,
|
|
1735
|
+
messages,
|
|
1719
1736
|
inProgress,
|
|
1720
1737
|
index,
|
|
1721
1738
|
isCurrentMessage,
|
|
@@ -1746,6 +1763,7 @@ function RenderMessage(_a) {
|
|
|
1746
1763
|
subComponent: (_a2 = message.generativeUI) == null ? void 0 : _a2.call(message),
|
|
1747
1764
|
rawData: message,
|
|
1748
1765
|
message,
|
|
1766
|
+
messages,
|
|
1749
1767
|
isLoading: inProgress && isCurrentMessage && !message.content,
|
|
1750
1768
|
isGenerating: inProgress && isCurrentMessage && !!message.content,
|
|
1751
1769
|
isCurrentMessage,
|
|
@@ -1767,6 +1785,7 @@ var import_runtime_client_gql = require("@copilotkit/runtime-client-gql");
|
|
|
1767
1785
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
1768
1786
|
var LegacyRenderMessage = ({
|
|
1769
1787
|
message,
|
|
1788
|
+
messages,
|
|
1770
1789
|
inProgress,
|
|
1771
1790
|
index,
|
|
1772
1791
|
isCurrentMessage,
|
|
@@ -1795,6 +1814,7 @@ var LegacyRenderMessage = ({
|
|
|
1795
1814
|
RenderTextMessage,
|
|
1796
1815
|
{
|
|
1797
1816
|
message,
|
|
1817
|
+
messages,
|
|
1798
1818
|
inProgress,
|
|
1799
1819
|
index,
|
|
1800
1820
|
isCurrentMessage,
|
|
@@ -1812,6 +1832,7 @@ var LegacyRenderMessage = ({
|
|
|
1812
1832
|
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1813
1833
|
RenderActionExecutionMessage,
|
|
1814
1834
|
{
|
|
1835
|
+
messages,
|
|
1815
1836
|
message,
|
|
1816
1837
|
inProgress,
|
|
1817
1838
|
index,
|
|
@@ -1826,6 +1847,7 @@ var LegacyRenderMessage = ({
|
|
|
1826
1847
|
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1827
1848
|
RenderAgentStateMessage,
|
|
1828
1849
|
{
|
|
1850
|
+
messages,
|
|
1829
1851
|
message,
|
|
1830
1852
|
inProgress,
|
|
1831
1853
|
index,
|
|
@@ -1839,6 +1861,7 @@ var LegacyRenderMessage = ({
|
|
|
1839
1861
|
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1840
1862
|
RenderResultMessage,
|
|
1841
1863
|
{
|
|
1864
|
+
messages,
|
|
1842
1865
|
message,
|
|
1843
1866
|
inProgress,
|
|
1844
1867
|
index,
|
|
@@ -1852,6 +1875,7 @@ var LegacyRenderMessage = ({
|
|
|
1852
1875
|
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1853
1876
|
RenderImageMessage,
|
|
1854
1877
|
{
|
|
1878
|
+
messages,
|
|
1855
1879
|
message,
|
|
1856
1880
|
inProgress,
|
|
1857
1881
|
index,
|
|
@@ -1864,6 +1888,7 @@ var LegacyRenderMessage = ({
|
|
|
1864
1888
|
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1865
1889
|
RenderMessage,
|
|
1866
1890
|
{
|
|
1891
|
+
messages,
|
|
1867
1892
|
message,
|
|
1868
1893
|
inProgress,
|
|
1869
1894
|
index,
|
|
@@ -1904,7 +1929,8 @@ var Messages = ({
|
|
|
1904
1929
|
RenderResultMessage,
|
|
1905
1930
|
RenderImageMessage
|
|
1906
1931
|
}) => {
|
|
1907
|
-
|
|
1932
|
+
var _a;
|
|
1933
|
+
const { labels, icons } = useChatContext();
|
|
1908
1934
|
const { messages: visibleMessages, interrupt } = (0, import_react_core5.useCopilotChatInternal)();
|
|
1909
1935
|
const initialMessages = (0, import_react10.useMemo)(() => makeInitialMessages(labels.initial), [labels.initial]);
|
|
1910
1936
|
const messages = [...initialMessages, ...visibleMessages];
|
|
@@ -1934,6 +1960,7 @@ var Messages = ({
|
|
|
1934
1960
|
]
|
|
1935
1961
|
);
|
|
1936
1962
|
const MessageRenderer = hasLegacyProps ? (props) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(LegacyRenderMessage, __spreadProps(__spreadValues({}, props), { legacyProps })) : RenderMessage2;
|
|
1963
|
+
const LoadingIcon = () => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { children: icons.activityIcon });
|
|
1937
1964
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "copilotKitMessages", ref: messagesContainerRef, children: [
|
|
1938
1965
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "copilotKitMessagesContainer", children: [
|
|
1939
1966
|
messages.map((message, index) => {
|
|
@@ -1942,6 +1969,7 @@ var Messages = ({
|
|
|
1942
1969
|
MessageRenderer,
|
|
1943
1970
|
{
|
|
1944
1971
|
message,
|
|
1972
|
+
messages,
|
|
1945
1973
|
inProgress,
|
|
1946
1974
|
index,
|
|
1947
1975
|
isCurrentMessage,
|
|
@@ -1958,6 +1986,7 @@ var Messages = ({
|
|
|
1958
1986
|
index
|
|
1959
1987
|
);
|
|
1960
1988
|
}),
|
|
1989
|
+
((_a = messages[messages.length - 1]) == null ? void 0 : _a.role) === "user" && inProgress && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(LoadingIcon, {}),
|
|
1961
1990
|
interrupt,
|
|
1962
1991
|
chatError && ErrorMessage && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ErrorMessage, { error: chatError, isCurrentMessage: true })
|
|
1963
1992
|
] }),
|
|
@@ -2251,12 +2280,12 @@ var MAX_NEWLINES = 6;
|
|
|
2251
2280
|
var Input = ({
|
|
2252
2281
|
inProgress,
|
|
2253
2282
|
onSend,
|
|
2254
|
-
|
|
2283
|
+
chatReady = true,
|
|
2255
2284
|
onStop,
|
|
2256
2285
|
onUpload,
|
|
2257
2286
|
hideStopButton = false
|
|
2258
2287
|
}) => {
|
|
2259
|
-
var _a
|
|
2288
|
+
var _a;
|
|
2260
2289
|
const context = useChatContext();
|
|
2261
2290
|
const copilotContext = (0, import_react_core7.useCopilotContext)();
|
|
2262
2291
|
const showPoweredBy = !((_a = copilotContext.copilotApiConfig) == null ? void 0 : _a.publicApiKey);
|
|
@@ -2286,14 +2315,16 @@ var Input = ({
|
|
|
2286
2315
|
inProgress
|
|
2287
2316
|
});
|
|
2288
2317
|
const isInProgress = inProgress || pushToTalkState === "transcribing";
|
|
2289
|
-
const buttonIcon
|
|
2318
|
+
const { buttonIcon, buttonAlt } = (0, import_react14.useMemo)(() => {
|
|
2319
|
+
if (!chatReady)
|
|
2320
|
+
return { buttonIcon: context.icons.spinnerIcon, buttonAlt: "Loading" };
|
|
2321
|
+
return isInProgress && !hideStopButton ? { buttonIcon: context.icons.stopIcon, buttonAlt: "Stop" } : { buttonIcon: context.icons.sendIcon, buttonAlt: "Send" };
|
|
2322
|
+
}, [isInProgress, chatReady, hideStopButton, context.icons.stopIcon, context.icons.sendIcon]);
|
|
2290
2323
|
const showPushToTalk = pushToTalkConfigured && (pushToTalkState === "idle" || pushToTalkState === "recording") && !inProgress;
|
|
2324
|
+
const { interrupt } = (0, import_react_core7.useCopilotChatInternal)();
|
|
2291
2325
|
const canSend = (0, import_react14.useMemo)(() => {
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
const interruptInProgress = (interruptEvent == null ? void 0 : interruptEvent.name) === "LangGraphInterruptEvent" && !(interruptEvent == null ? void 0 : interruptEvent.response);
|
|
2295
|
-
return !isInProgress && text.trim().length > 0 && pushToTalkState === "idle" && !interruptInProgress;
|
|
2296
|
-
}, [(_b = copilotContext.langGraphInterruptAction) == null ? void 0 : _b.event, isInProgress, text, pushToTalkState]);
|
|
2326
|
+
return !isInProgress && text.trim().length > 0 && pushToTalkState === "idle" && !interrupt;
|
|
2327
|
+
}, [interrupt, isInProgress, text, pushToTalkState]);
|
|
2297
2328
|
const canStop = (0, import_react14.useMemo)(() => {
|
|
2298
2329
|
return isInProgress && !hideStopButton;
|
|
2299
2330
|
}, [isInProgress, hideStopButton]);
|
|
@@ -2340,6 +2371,7 @@ var Input = ({
|
|
|
2340
2371
|
"data-copilotkit-in-progress": inProgress,
|
|
2341
2372
|
"data-test-id": inProgress ? "copilot-chat-request-in-progress" : "copilot-chat-ready",
|
|
2342
2373
|
className: "copilotKitInputControlButton",
|
|
2374
|
+
"aria-label": buttonAlt,
|
|
2343
2375
|
children: buttonIcon
|
|
2344
2376
|
}
|
|
2345
2377
|
)
|
|
@@ -2353,8 +2385,6 @@ var Input = ({
|
|
|
2353
2385
|
var import_react15 = __toESM(require("react"));
|
|
2354
2386
|
var import_react_core9 = require("@copilotkit/react-core");
|
|
2355
2387
|
var import_shared3 = require("@copilotkit/shared");
|
|
2356
|
-
var import_shared4 = require("@copilotkit/shared");
|
|
2357
|
-
var import_react_core10 = require("@copilotkit/react-core");
|
|
2358
2388
|
|
|
2359
2389
|
// src/components/chat/ImageUploadQueue.tsx
|
|
2360
2390
|
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
@@ -2458,18 +2488,25 @@ function Suggestion({ title, onClick, partial, className }) {
|
|
|
2458
2488
|
|
|
2459
2489
|
// src/components/chat/Suggestions.tsx
|
|
2460
2490
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
2461
|
-
function Suggestions({
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2491
|
+
function Suggestions({
|
|
2492
|
+
suggestions,
|
|
2493
|
+
onSuggestionClick,
|
|
2494
|
+
isLoading
|
|
2495
|
+
}) {
|
|
2496
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "suggestions", children: suggestions.map((suggestion, index) => {
|
|
2497
|
+
var _a, _b;
|
|
2498
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2499
|
+
Suggestion,
|
|
2500
|
+
{
|
|
2501
|
+
title: suggestion.title,
|
|
2502
|
+
message: suggestion.message,
|
|
2503
|
+
partial: (_b = (_a = suggestion.isLoading) != null ? _a : suggestion.partial) != null ? _b : isLoading,
|
|
2504
|
+
className: suggestion.className,
|
|
2505
|
+
onClick: () => onSuggestionClick(suggestion.message)
|
|
2506
|
+
},
|
|
2507
|
+
index
|
|
2508
|
+
);
|
|
2509
|
+
}) });
|
|
2473
2510
|
}
|
|
2474
2511
|
|
|
2475
2512
|
// src/components/chat/Chat.tsx
|
|
@@ -2669,16 +2706,12 @@ function CopilotChat({
|
|
|
2669
2706
|
sendMessage,
|
|
2670
2707
|
stopGeneration,
|
|
2671
2708
|
reloadMessages,
|
|
2672
|
-
suggestions: currentSuggestions
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
onSubmitMessage,
|
|
2679
|
-
onStopGeneration,
|
|
2680
|
-
onReloadMessages
|
|
2681
|
-
);
|
|
2709
|
+
suggestions: currentSuggestions,
|
|
2710
|
+
isLoadingSuggestions,
|
|
2711
|
+
agent
|
|
2712
|
+
} = (0, import_react_core9.useCopilotChatInternal)({
|
|
2713
|
+
suggestions
|
|
2714
|
+
});
|
|
2682
2715
|
const prevIsLoading = (0, import_react15.useRef)(isLoading);
|
|
2683
2716
|
(0, import_react15.useEffect)(() => {
|
|
2684
2717
|
if (prevIsLoading.current !== isLoading) {
|
|
@@ -2697,7 +2730,11 @@ function CopilotChat({
|
|
|
2697
2730
|
fileInputRef.current.value = "";
|
|
2698
2731
|
}
|
|
2699
2732
|
triggerObservabilityHook("onMessageSent", text);
|
|
2700
|
-
return sendMessage(
|
|
2733
|
+
return sendMessage({
|
|
2734
|
+
id: (0, import_shared3.randomUUID)(),
|
|
2735
|
+
content: text,
|
|
2736
|
+
role: "user"
|
|
2737
|
+
});
|
|
2701
2738
|
};
|
|
2702
2739
|
const chatContext = import_react15.default.useContext(ChatContext);
|
|
2703
2740
|
const isVisible = chatContext ? chatContext.open : true;
|
|
@@ -2800,7 +2837,8 @@ function CopilotChat({
|
|
|
2800
2837
|
RenderSuggestionsList,
|
|
2801
2838
|
{
|
|
2802
2839
|
onSuggestionClick: handleSendMessage,
|
|
2803
|
-
suggestions: currentSuggestions
|
|
2840
|
+
suggestions: currentSuggestions,
|
|
2841
|
+
isLoading: isLoadingSuggestions
|
|
2804
2842
|
}
|
|
2805
2843
|
)
|
|
2806
2844
|
}
|
|
@@ -2823,6 +2861,7 @@ function CopilotChat({
|
|
|
2823
2861
|
Input2,
|
|
2824
2862
|
{
|
|
2825
2863
|
inProgress: isLoading,
|
|
2864
|
+
chatReady: Boolean(agent),
|
|
2826
2865
|
onSend: handleSendMessage,
|
|
2827
2866
|
isVisible,
|
|
2828
2867
|
onStop: stopGeneration,
|
|
@@ -2848,243 +2887,10 @@ function WrappedCopilotChat({
|
|
|
2848
2887
|
}
|
|
2849
2888
|
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, { children });
|
|
2850
2889
|
}
|
|
2851
|
-
var useCopilotChatLogic = (chatSuggestions, makeSystemMessage, disableSystemMessage, onInProgress, onSubmitMessage, onStopGeneration, onReloadMessages) => {
|
|
2852
|
-
var _a;
|
|
2853
|
-
const {
|
|
2854
|
-
messages,
|
|
2855
|
-
sendMessage,
|
|
2856
|
-
setMessages,
|
|
2857
|
-
reloadMessages: defaultReloadMessages,
|
|
2858
|
-
stopGeneration: defaultStopGeneration,
|
|
2859
|
-
runChatCompletion,
|
|
2860
|
-
isLoading,
|
|
2861
|
-
suggestions,
|
|
2862
|
-
setSuggestions,
|
|
2863
|
-
generateSuggestions,
|
|
2864
|
-
resetSuggestions: resetSuggestionsFromHook,
|
|
2865
|
-
isLoadingSuggestions
|
|
2866
|
-
} = (0, import_react_core9.useCopilotChatInternal)({
|
|
2867
|
-
makeSystemMessage,
|
|
2868
|
-
disableSystemMessage
|
|
2869
|
-
});
|
|
2870
|
-
const generalContext = (0, import_react_core9.useCopilotContext)();
|
|
2871
|
-
const messagesContext = (0, import_react_core9.useCopilotMessagesContext)();
|
|
2872
|
-
const { actions } = generalContext;
|
|
2873
|
-
const [suggestionsFailed, setSuggestionsFailed] = (0, import_react15.useState)(false);
|
|
2874
|
-
const hasGeneratedInitialSuggestions = (0, import_react15.useRef)(false);
|
|
2875
|
-
(0, import_react15.useEffect)(() => {
|
|
2876
|
-
if (Array.isArray(chatSuggestions)) {
|
|
2877
|
-
setSuggestions(chatSuggestions);
|
|
2878
|
-
hasGeneratedInitialSuggestions.current = true;
|
|
2879
|
-
}
|
|
2880
|
-
}, [JSON.stringify(chatSuggestions), setSuggestions]);
|
|
2881
|
-
const generateSuggestionsWithErrorHandling = (0, import_react15.useCallback)(
|
|
2882
|
-
(context) => __async(void 0, null, function* () {
|
|
2883
|
-
try {
|
|
2884
|
-
yield generateSuggestions();
|
|
2885
|
-
} catch (error) {
|
|
2886
|
-
console.error("Failed to generate suggestions:", error);
|
|
2887
|
-
setSuggestionsFailed(true);
|
|
2888
|
-
}
|
|
2889
|
-
}),
|
|
2890
|
-
[generateSuggestions]
|
|
2891
|
-
);
|
|
2892
|
-
(0, import_react15.useEffect)(() => {
|
|
2893
|
-
if (chatSuggestions !== "auto" || isLoadingSuggestions || suggestionsFailed) {
|
|
2894
|
-
return;
|
|
2895
|
-
}
|
|
2896
|
-
if (isLoading) {
|
|
2897
|
-
return;
|
|
2898
|
-
}
|
|
2899
|
-
if (Object.keys(generalContext.chatSuggestionConfiguration).length === 0) {
|
|
2900
|
-
return;
|
|
2901
|
-
}
|
|
2902
|
-
if (messages.length === 0 && !hasGeneratedInitialSuggestions.current) {
|
|
2903
|
-
hasGeneratedInitialSuggestions.current = true;
|
|
2904
|
-
generateSuggestionsWithErrorHandling("initial");
|
|
2905
|
-
return;
|
|
2906
|
-
}
|
|
2907
|
-
if (messages.length > 0 && suggestions.length === 0) {
|
|
2908
|
-
generateSuggestionsWithErrorHandling("post-message");
|
|
2909
|
-
return;
|
|
2910
|
-
}
|
|
2911
|
-
}, [
|
|
2912
|
-
chatSuggestions,
|
|
2913
|
-
isLoadingSuggestions,
|
|
2914
|
-
suggestionsFailed,
|
|
2915
|
-
messages.length,
|
|
2916
|
-
isLoading,
|
|
2917
|
-
suggestions.length,
|
|
2918
|
-
Object.keys(generalContext.chatSuggestionConfiguration).join(","),
|
|
2919
|
-
// Use stable string instead of object reference
|
|
2920
|
-
generateSuggestionsWithErrorHandling
|
|
2921
|
-
]);
|
|
2922
|
-
(0, import_react15.useEffect)(() => {
|
|
2923
|
-
if (chatSuggestions !== "auto") {
|
|
2924
|
-
hasGeneratedInitialSuggestions.current = false;
|
|
2925
|
-
setSuggestionsFailed(false);
|
|
2926
|
-
}
|
|
2927
|
-
}, [chatSuggestions]);
|
|
2928
|
-
const stableContext = (0, import_react15.useMemo)(
|
|
2929
|
-
() => __spreadValues(__spreadValues({}, generalContext), messagesContext),
|
|
2930
|
-
[
|
|
2931
|
-
// Only include stable dependencies
|
|
2932
|
-
generalContext.actions,
|
|
2933
|
-
messagesContext.messages.length,
|
|
2934
|
-
generalContext.isLoading
|
|
2935
|
-
]
|
|
2936
|
-
);
|
|
2937
|
-
const resetSuggestions = (0, import_react15.useCallback)(() => {
|
|
2938
|
-
resetSuggestionsFromHook();
|
|
2939
|
-
setSuggestionsFailed(false);
|
|
2940
|
-
hasGeneratedInitialSuggestions.current = false;
|
|
2941
|
-
}, [resetSuggestionsFromHook]);
|
|
2942
|
-
(0, import_react15.useEffect)(() => {
|
|
2943
|
-
onInProgress == null ? void 0 : onInProgress(isLoading);
|
|
2944
|
-
}, [onInProgress, isLoading]);
|
|
2945
|
-
const safelySendMessage = (messageContent, imagesToUse) => __async(void 0, null, function* () {
|
|
2946
|
-
const images = imagesToUse || [];
|
|
2947
|
-
if (chatSuggestions === "auto" || chatSuggestions === "manual") {
|
|
2948
|
-
setSuggestions([]);
|
|
2949
|
-
}
|
|
2950
|
-
let firstMessage = null;
|
|
2951
|
-
if (messageContent.trim().length > 0) {
|
|
2952
|
-
const textMessage = {
|
|
2953
|
-
id: (0, import_shared4.randomId)(),
|
|
2954
|
-
role: "user",
|
|
2955
|
-
content: messageContent
|
|
2956
|
-
};
|
|
2957
|
-
if (onSubmitMessage) {
|
|
2958
|
-
try {
|
|
2959
|
-
yield onSubmitMessage(messageContent);
|
|
2960
|
-
} catch (error) {
|
|
2961
|
-
console.error("Error in onSubmitMessage:", error);
|
|
2962
|
-
}
|
|
2963
|
-
}
|
|
2964
|
-
yield sendMessage(textMessage, {
|
|
2965
|
-
followUp: images.length === 0,
|
|
2966
|
-
clearSuggestions: chatSuggestions === "auto" || chatSuggestions === "manual"
|
|
2967
|
-
});
|
|
2968
|
-
if (!firstMessage) {
|
|
2969
|
-
firstMessage = textMessage;
|
|
2970
|
-
}
|
|
2971
|
-
}
|
|
2972
|
-
if (images.length > 0) {
|
|
2973
|
-
for (let i = 0; i < images.length; i++) {
|
|
2974
|
-
const imageMessage = {
|
|
2975
|
-
id: (0, import_shared4.randomId)(),
|
|
2976
|
-
role: "user",
|
|
2977
|
-
image: {
|
|
2978
|
-
format: images[i].contentType.replace("image/", ""),
|
|
2979
|
-
bytes: images[i].bytes
|
|
2980
|
-
}
|
|
2981
|
-
};
|
|
2982
|
-
yield sendMessage(imageMessage, { followUp: i === images.length - 1 });
|
|
2983
|
-
if (!firstMessage) {
|
|
2984
|
-
firstMessage = imageMessage;
|
|
2985
|
-
}
|
|
2986
|
-
}
|
|
2987
|
-
}
|
|
2988
|
-
if (!firstMessage) {
|
|
2989
|
-
return { role: "user", content: "", id: (0, import_shared4.randomId)() };
|
|
2990
|
-
}
|
|
2991
|
-
return firstMessage;
|
|
2992
|
-
});
|
|
2993
|
-
const currentAgentName = (_a = generalContext.agentSession) == null ? void 0 : _a.agentName;
|
|
2994
|
-
const restartCurrentAgent = (hint) => __async(void 0, null, function* () {
|
|
2995
|
-
if (generalContext.agentSession) {
|
|
2996
|
-
generalContext.setAgentSession(__spreadProps(__spreadValues({}, generalContext.agentSession), {
|
|
2997
|
-
nodeName: void 0,
|
|
2998
|
-
threadId: void 0
|
|
2999
|
-
}));
|
|
3000
|
-
generalContext.setCoagentStates((prevAgentStates) => {
|
|
3001
|
-
return __spreadProps(__spreadValues({}, prevAgentStates), {
|
|
3002
|
-
[generalContext.agentSession.agentName]: __spreadProps(__spreadValues({}, prevAgentStates[generalContext.agentSession.agentName]), {
|
|
3003
|
-
threadId: void 0,
|
|
3004
|
-
nodeName: void 0,
|
|
3005
|
-
runId: void 0
|
|
3006
|
-
})
|
|
3007
|
-
});
|
|
3008
|
-
});
|
|
3009
|
-
}
|
|
3010
|
-
});
|
|
3011
|
-
const runCurrentAgent = (hint) => __async(void 0, null, function* () {
|
|
3012
|
-
if (generalContext.agentSession) {
|
|
3013
|
-
yield (0, import_react_core10.runAgent)(
|
|
3014
|
-
generalContext.agentSession.agentName,
|
|
3015
|
-
stableContext,
|
|
3016
|
-
messagesContext.messages,
|
|
3017
|
-
sendMessage,
|
|
3018
|
-
runChatCompletion
|
|
3019
|
-
);
|
|
3020
|
-
}
|
|
3021
|
-
});
|
|
3022
|
-
const stopCurrentAgent = () => {
|
|
3023
|
-
if (generalContext.agentSession) {
|
|
3024
|
-
(0, import_react_core10.stopAgent)(generalContext.agentSession.agentName, stableContext);
|
|
3025
|
-
}
|
|
3026
|
-
};
|
|
3027
|
-
const setCurrentAgentState = (state) => {
|
|
3028
|
-
if (generalContext.agentSession) {
|
|
3029
|
-
generalContext.setCoagentStates((prevAgentStates) => {
|
|
3030
|
-
return __spreadProps(__spreadValues({}, prevAgentStates), {
|
|
3031
|
-
[generalContext.agentSession.agentName]: {
|
|
3032
|
-
state
|
|
3033
|
-
}
|
|
3034
|
-
});
|
|
3035
|
-
});
|
|
3036
|
-
}
|
|
3037
|
-
};
|
|
3038
|
-
function stopGeneration() {
|
|
3039
|
-
setSuggestions([]);
|
|
3040
|
-
if (onStopGeneration) {
|
|
3041
|
-
onStopGeneration({
|
|
3042
|
-
messages,
|
|
3043
|
-
setMessages,
|
|
3044
|
-
stopGeneration: defaultStopGeneration,
|
|
3045
|
-
currentAgentName,
|
|
3046
|
-
restartCurrentAgent,
|
|
3047
|
-
stopCurrentAgent,
|
|
3048
|
-
runCurrentAgent,
|
|
3049
|
-
setCurrentAgentState
|
|
3050
|
-
});
|
|
3051
|
-
} else {
|
|
3052
|
-
defaultStopGeneration();
|
|
3053
|
-
}
|
|
3054
|
-
}
|
|
3055
|
-
function reloadMessages(messageId) {
|
|
3056
|
-
if (onReloadMessages) {
|
|
3057
|
-
onReloadMessages({
|
|
3058
|
-
messages,
|
|
3059
|
-
setMessages,
|
|
3060
|
-
stopGeneration: defaultStopGeneration,
|
|
3061
|
-
currentAgentName,
|
|
3062
|
-
restartCurrentAgent,
|
|
3063
|
-
stopCurrentAgent,
|
|
3064
|
-
runCurrentAgent,
|
|
3065
|
-
setCurrentAgentState,
|
|
3066
|
-
messageId
|
|
3067
|
-
});
|
|
3068
|
-
} else {
|
|
3069
|
-
defaultReloadMessages(messageId);
|
|
3070
|
-
}
|
|
3071
|
-
}
|
|
3072
|
-
return {
|
|
3073
|
-
messages,
|
|
3074
|
-
isLoading,
|
|
3075
|
-
suggestions,
|
|
3076
|
-
sendMessage: safelySendMessage,
|
|
3077
|
-
stopGeneration,
|
|
3078
|
-
reloadMessages,
|
|
3079
|
-
resetSuggestions,
|
|
3080
|
-
context: stableContext,
|
|
3081
|
-
actions
|
|
3082
|
-
};
|
|
3083
|
-
};
|
|
3084
2890
|
|
|
3085
2891
|
// src/components/chat/Modal.tsx
|
|
3086
|
-
var
|
|
3087
|
-
var
|
|
2892
|
+
var import_react_core10 = require("@copilotkit/react-core");
|
|
2893
|
+
var import_shared4 = require("@copilotkit/shared");
|
|
3088
2894
|
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
3089
2895
|
var CopilotModalInner = (_a) => {
|
|
3090
2896
|
var _b = _a, {
|
|
@@ -3110,7 +2916,7 @@ var CopilotModalInner = (_a) => {
|
|
|
3110
2916
|
"Button",
|
|
3111
2917
|
"Header"
|
|
3112
2918
|
]);
|
|
3113
|
-
const { copilotApiConfig, setBannerError } = (0,
|
|
2919
|
+
const { copilotApiConfig, setBannerError } = (0, import_react_core10.useCopilotContext)();
|
|
3114
2920
|
const { publicApiKey } = copilotApiConfig;
|
|
3115
2921
|
const triggerObservabilityHook = (0, import_react16.useCallback)(
|
|
3116
2922
|
(hookName, ...args) => {
|
|
@@ -3119,14 +2925,14 @@ var CopilotModalInner = (_a) => {
|
|
|
3119
2925
|
}
|
|
3120
2926
|
if ((observabilityHooks == null ? void 0 : observabilityHooks[hookName]) && !publicApiKey) {
|
|
3121
2927
|
setBannerError(
|
|
3122
|
-
new
|
|
2928
|
+
new import_shared4.CopilotKitError({
|
|
3123
2929
|
message: "observabilityHooks requires a publicApiKey to function.",
|
|
3124
|
-
code:
|
|
3125
|
-
severity:
|
|
3126
|
-
visibility:
|
|
2930
|
+
code: import_shared4.CopilotKitErrorCode.MISSING_PUBLIC_API_KEY_ERROR,
|
|
2931
|
+
severity: import_shared4.Severity.CRITICAL,
|
|
2932
|
+
visibility: import_shared4.ErrorVisibility.BANNER
|
|
3127
2933
|
})
|
|
3128
2934
|
);
|
|
3129
|
-
|
|
2935
|
+
import_shared4.styledConsole.publicApiKeyRequired("observabilityHooks");
|
|
3130
2936
|
}
|
|
3131
2937
|
},
|
|
3132
2938
|
[publicApiKey, observabilityHooks, setBannerError]
|