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