@copilotkit/react-ui 0.0.0-fix-debug-infosys-20251107162427 → 0.0.0-fix-restore-handle-method-node-http-20260105204107

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.
Files changed (140) hide show
  1. package/CHANGELOG.md +331 -5
  2. package/dist/{chunk-RKULVDQO.mjs → chunk-7OURDQZJ.mjs} +9 -2
  3. package/dist/chunk-7OURDQZJ.mjs.map +1 -0
  4. package/dist/{chunk-GDSZGYCE.mjs → chunk-B4EBCYMS.mjs} +4 -4
  5. package/dist/{chunk-TZNQJ3NA.mjs → chunk-DNKXXZPD.mjs} +9 -9
  6. package/dist/{chunk-FFJHOZX6.mjs → chunk-FKJWIQGB.mjs} +9 -9
  7. package/dist/{chunk-OWX6YJZH.mjs → chunk-HIW7RXCD.mjs} +9 -5
  8. package/dist/chunk-HIW7RXCD.mjs.map +1 -0
  9. package/dist/{chunk-KX44MLR6.mjs → chunk-IHFR6PYG.mjs} +1 -1
  10. package/dist/chunk-IHFR6PYG.mjs.map +1 -0
  11. package/dist/{chunk-52RQLNFB.mjs → chunk-JINSXNV4.mjs} +2 -2
  12. package/dist/{chunk-FK3XMHLY.mjs → chunk-KG4USHSZ.mjs} +2 -2
  13. package/dist/{chunk-2XARU6EY.mjs → chunk-NCIAFFQ2.mjs} +7 -3
  14. package/dist/chunk-NCIAFFQ2.mjs.map +1 -0
  15. package/dist/{chunk-W26XFBEG.mjs → chunk-NGJ32FAP.mjs} +3 -3
  16. package/dist/chunk-NGJ32FAP.mjs.map +1 -0
  17. package/dist/chunk-QB3GUN2N.mjs +31 -0
  18. package/dist/chunk-QB3GUN2N.mjs.map +1 -0
  19. package/dist/{chunk-MJEYL3FK.mjs → chunk-RLKEYENV.mjs} +25 -255
  20. package/dist/chunk-RLKEYENV.mjs.map +1 -0
  21. package/dist/chunk-RYUCX3ZK.mjs +32 -0
  22. package/dist/chunk-RYUCX3ZK.mjs.map +1 -0
  23. package/dist/{chunk-ZJCHKHE4.mjs → chunk-SABFRQEH.mjs} +16 -13
  24. package/dist/chunk-SABFRQEH.mjs.map +1 -0
  25. package/dist/chunk-Y4FKRAKJ.mjs +12 -0
  26. package/dist/chunk-Y4FKRAKJ.mjs.map +1 -0
  27. package/dist/components/chat/Chat.d.ts +3 -140
  28. package/dist/components/chat/Chat.js +80 -270
  29. package/dist/components/chat/Chat.js.map +1 -1
  30. package/dist/components/chat/Chat.mjs +13 -15
  31. package/dist/components/chat/Header.mjs +5 -5
  32. package/dist/components/chat/Input.d.ts +1 -1
  33. package/dist/components/chat/Input.js +11 -8
  34. package/dist/components/chat/Input.js.map +1 -1
  35. package/dist/components/chat/Input.mjs +2 -2
  36. package/dist/components/chat/Messages.d.ts +3 -3
  37. package/dist/components/chat/Messages.js +35 -4
  38. package/dist/components/chat/Messages.js.map +1 -1
  39. package/dist/components/chat/Messages.mjs +6 -6
  40. package/dist/components/chat/Modal.d.ts +1 -6
  41. package/dist/components/chat/Modal.js +86 -274
  42. package/dist/components/chat/Modal.js.map +1 -1
  43. package/dist/components/chat/Modal.mjs +20 -20
  44. package/dist/components/chat/Popup.d.ts +1 -6
  45. package/dist/components/chat/Popup.js +86 -274
  46. package/dist/components/chat/Popup.js.map +1 -1
  47. package/dist/components/chat/Popup.mjs +21 -21
  48. package/dist/components/chat/Sidebar.d.ts +1 -6
  49. package/dist/components/chat/Sidebar.js +86 -274
  50. package/dist/components/chat/Sidebar.js.map +1 -1
  51. package/dist/components/chat/Sidebar.mjs +21 -21
  52. package/dist/components/chat/Suggestion.js.map +1 -1
  53. package/dist/components/chat/Suggestion.mjs +1 -1
  54. package/dist/components/chat/Suggestions.d.ts +1 -1
  55. package/dist/components/chat/Suggestions.js +19 -12
  56. package/dist/components/chat/Suggestions.js.map +1 -1
  57. package/dist/components/chat/Suggestions.mjs +2 -2
  58. package/dist/components/chat/index.d.ts +0 -5
  59. package/dist/components/chat/index.js +86 -274
  60. package/dist/components/chat/index.js.map +1 -1
  61. package/dist/components/chat/index.mjs +24 -24
  62. package/dist/components/chat/messages/AssistantMessage.js.map +1 -1
  63. package/dist/components/chat/messages/AssistantMessage.mjs +2 -2
  64. package/dist/components/chat/messages/ErrorMessage.mjs +1 -1
  65. package/dist/components/chat/messages/LegacyRenderMessage.js +30 -3
  66. package/dist/components/chat/messages/LegacyRenderMessage.js.map +1 -1
  67. package/dist/components/chat/messages/LegacyRenderMessage.mjs +5 -5
  68. package/dist/components/chat/messages/RenderMessage.d.ts +1 -1
  69. package/dist/components/chat/messages/RenderMessage.js +23 -3
  70. package/dist/components/chat/messages/RenderMessage.js.map +1 -1
  71. package/dist/components/chat/messages/RenderMessage.mjs +4 -4
  72. package/dist/components/chat/messages/UserMessage.js +19 -3
  73. package/dist/components/chat/messages/UserMessage.js.map +1 -1
  74. package/dist/components/chat/messages/UserMessage.mjs +1 -1
  75. package/dist/components/chat/props.d.ts +4 -0
  76. package/dist/components/chat/props.js.map +1 -1
  77. package/dist/components/dev-console/console.mjs +3 -3
  78. package/dist/components/dev-console/index.mjs +5 -5
  79. package/dist/components/index.d.ts +0 -5
  80. package/dist/components/index.js +86 -274
  81. package/dist/components/index.js.map +1 -1
  82. package/dist/components/index.mjs +28 -28
  83. package/dist/hooks/index.d.ts +1 -0
  84. package/dist/hooks/index.js +2 -24
  85. package/dist/hooks/index.js.map +1 -1
  86. package/dist/hooks/index.mjs +1 -1
  87. package/dist/hooks/use-copilot-chat-suggestions.d.ts +4 -26
  88. package/dist/hooks/use-copilot-chat-suggestions.js +2 -24
  89. package/dist/hooks/use-copilot-chat-suggestions.js.map +1 -1
  90. package/dist/hooks/use-copilot-chat-suggestions.mjs +1 -1
  91. package/dist/index.css +1 -1
  92. package/dist/index.css.map +1 -1
  93. package/dist/index.d.ts +0 -5
  94. package/dist/index.js +89 -299
  95. package/dist/index.js.map +1 -1
  96. package/dist/index.mjs +30 -30
  97. package/dist/types/suggestions.d.ts +1 -0
  98. package/dist/types/suggestions.js.map +1 -1
  99. package/dist/v2/index.css +4 -0
  100. package/dist/v2/index.css.map +1 -0
  101. package/dist/v2/index.d.ts +2 -0
  102. package/dist/v2/index.js +2 -0
  103. package/dist/v2/index.js.map +1 -0
  104. package/dist/v2/index.mjs +2 -0
  105. package/dist/v2/index.mjs.map +1 -0
  106. package/package.json +8 -7
  107. package/src/components/chat/Chat.tsx +21 -374
  108. package/src/components/chat/Input.tsx +13 -12
  109. package/src/components/chat/Messages.tsx +8 -4
  110. package/src/components/chat/Suggestion.tsx +2 -2
  111. package/src/components/chat/Suggestions.tsx +6 -2
  112. package/src/components/chat/messages/AssistantMessage.tsx +1 -0
  113. package/src/components/chat/messages/LegacyRenderMessage.tsx +7 -0
  114. package/src/components/chat/messages/RenderMessage.tsx +4 -0
  115. package/src/components/chat/messages/UserMessage.tsx +32 -6
  116. package/src/components/chat/props.ts +4 -0
  117. package/src/css/messages.css +1 -1
  118. package/src/hooks/use-copilot-chat-suggestions.tsx +6 -57
  119. package/src/types/suggestions.ts +1 -0
  120. package/src/v2/index.ts +1 -0
  121. package/src/v2/styles.css +1 -0
  122. package/tsup.config.ts +1 -1
  123. package/dist/chunk-226ZMOE3.mjs +0 -24
  124. package/dist/chunk-226ZMOE3.mjs.map +0 -1
  125. package/dist/chunk-2XARU6EY.mjs.map +0 -1
  126. package/dist/chunk-EYRKZDP5.mjs +0 -32
  127. package/dist/chunk-EYRKZDP5.mjs.map +0 -1
  128. package/dist/chunk-KX44MLR6.mjs.map +0 -1
  129. package/dist/chunk-MJEYL3FK.mjs.map +0 -1
  130. package/dist/chunk-OWX6YJZH.mjs.map +0 -1
  131. package/dist/chunk-RKULVDQO.mjs.map +0 -1
  132. package/dist/chunk-VVL6JFCJ.mjs +0 -16
  133. package/dist/chunk-VVL6JFCJ.mjs.map +0 -1
  134. package/dist/chunk-W26XFBEG.mjs.map +0 -1
  135. package/dist/chunk-ZJCHKHE4.mjs.map +0 -1
  136. /package/dist/{chunk-GDSZGYCE.mjs.map → chunk-B4EBCYMS.mjs.map} +0 -0
  137. /package/dist/{chunk-TZNQJ3NA.mjs.map → chunk-DNKXXZPD.mjs.map} +0 -0
  138. /package/dist/{chunk-FFJHOZX6.mjs.map → chunk-FKJWIQGB.mjs.map} +0 -0
  139. /package/dist/{chunk-52RQLNFB.mjs.map → chunk-JINSXNV4.mjs.map} +0 -0
  140. /package/dist/{chunk-FK3XMHLY.mjs.map → chunk-KG4USHSZ.mjs.map} +0 -0
@@ -1,34 +1,34 @@
1
1
  import {
2
2
  CopilotPopup
3
- } from "../../chunk-FK3XMHLY.mjs";
4
- import "../../chunk-TZNQJ3NA.mjs";
3
+ } from "../../chunk-KG4USHSZ.mjs";
4
+ import "../../chunk-DNKXXZPD.mjs";
5
5
  import "../../chunk-C3GSYRC3.mjs";
6
- import "../../chunk-GDSZGYCE.mjs";
7
- import "../../chunk-V7W6IM2V.mjs";
8
- import "../../chunk-FFJHOZX6.mjs";
9
- import "../../chunk-Q5V6S67N.mjs";
10
- import "../../chunk-JY2CSDKN.mjs";
11
- import "../../chunk-KXE2JCUH.mjs";
12
- import "../../chunk-NRA3CFEE.mjs";
13
- import "../../chunk-BH6PCAAL.mjs";
14
6
  import "../../chunk-UFN2VWSR.mjs";
15
- import "../../chunk-MJEYL3FK.mjs";
16
- import "../../chunk-226ZMOE3.mjs";
17
- import "../../chunk-W26XFBEG.mjs";
7
+ import "../../chunk-RLKEYENV.mjs";
8
+ import "../../chunk-QB3GUN2N.mjs";
9
+ import "../../chunk-NGJ32FAP.mjs";
18
10
  import "../../chunk-PLHTVHUW.mjs";
19
- import "../../chunk-ZJCHKHE4.mjs";
20
- import "../../chunk-ELGRNEAO.mjs";
11
+ import "../../chunk-SABFRQEH.mjs";
21
12
  import "../../chunk-QIOJXTIQ.mjs";
22
- import "../../chunk-OWX6YJZH.mjs";
23
- import "../../chunk-RKULVDQO.mjs";
24
- import "../../chunk-2XARU6EY.mjs";
25
- import "../../chunk-KX44MLR6.mjs";
13
+ import "../../chunk-HIW7RXCD.mjs";
14
+ import "../../chunk-7OURDQZJ.mjs";
15
+ import "../../chunk-NCIAFFQ2.mjs";
16
+ import "../../chunk-IHFR6PYG.mjs";
26
17
  import "../../chunk-DBKRAOH7.mjs";
27
- import "../../chunk-VVL6JFCJ.mjs";
18
+ import "../../chunk-RYUCX3ZK.mjs";
28
19
  import "../../chunk-JZ3RFQQ6.mjs";
29
- import "../../chunk-IEMQ2SQW.mjs";
20
+ import "../../chunk-ELGRNEAO.mjs";
30
21
  import "../../chunk-IK2BPURM.mjs";
22
+ import "../../chunk-B4EBCYMS.mjs";
23
+ import "../../chunk-IEMQ2SQW.mjs";
24
+ import "../../chunk-V7W6IM2V.mjs";
25
+ import "../../chunk-FKJWIQGB.mjs";
26
+ import "../../chunk-KXE2JCUH.mjs";
27
+ import "../../chunk-NRA3CFEE.mjs";
28
+ import "../../chunk-BH6PCAAL.mjs";
29
+ import "../../chunk-JY2CSDKN.mjs";
31
30
  import "../../chunk-XWG3L6QC.mjs";
31
+ import "../../chunk-Q5V6S67N.mjs";
32
32
  import "../../chunk-54JAUBUJ.mjs";
33
33
  import "../../chunk-JGMFJZMG.mjs";
34
34
  import "../../chunk-O72ZB5V3.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
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "copilotKitMessage copilotKitUserMessage", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ImageRenderer2, { image: imageMessage.image, content: imageMessage.content }) });
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
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "copilotKitMessage copilotKitUserMessage", children: message == null ? void 0 : message.content });
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,
@@ -1760,6 +1778,8 @@ function RenderMessage(_a) {
1760
1778
  },
1761
1779
  index
1762
1780
  );
1781
+ default:
1782
+ return null;
1763
1783
  }
1764
1784
  }
1765
1785
 
@@ -1768,6 +1788,7 @@ var import_runtime_client_gql = require("@copilotkit/runtime-client-gql");
1768
1788
  var import_jsx_runtime16 = require("react/jsx-runtime");
1769
1789
  var LegacyRenderMessage = ({
1770
1790
  message,
1791
+ messages,
1771
1792
  inProgress,
1772
1793
  index,
1773
1794
  isCurrentMessage,
@@ -1796,6 +1817,7 @@ var LegacyRenderMessage = ({
1796
1817
  RenderTextMessage,
1797
1818
  {
1798
1819
  message,
1820
+ messages,
1799
1821
  inProgress,
1800
1822
  index,
1801
1823
  isCurrentMessage,
@@ -1813,6 +1835,7 @@ var LegacyRenderMessage = ({
1813
1835
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1814
1836
  RenderActionExecutionMessage,
1815
1837
  {
1838
+ messages,
1816
1839
  message,
1817
1840
  inProgress,
1818
1841
  index,
@@ -1827,6 +1850,7 @@ var LegacyRenderMessage = ({
1827
1850
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1828
1851
  RenderAgentStateMessage,
1829
1852
  {
1853
+ messages,
1830
1854
  message,
1831
1855
  inProgress,
1832
1856
  index,
@@ -1840,6 +1864,7 @@ var LegacyRenderMessage = ({
1840
1864
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1841
1865
  RenderResultMessage,
1842
1866
  {
1867
+ messages,
1843
1868
  message,
1844
1869
  inProgress,
1845
1870
  index,
@@ -1853,6 +1878,7 @@ var LegacyRenderMessage = ({
1853
1878
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1854
1879
  RenderImageMessage,
1855
1880
  {
1881
+ messages,
1856
1882
  message,
1857
1883
  inProgress,
1858
1884
  index,
@@ -1865,6 +1891,7 @@ var LegacyRenderMessage = ({
1865
1891
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1866
1892
  RenderMessage,
1867
1893
  {
1894
+ messages,
1868
1895
  message,
1869
1896
  inProgress,
1870
1897
  index,
@@ -1905,7 +1932,8 @@ var Messages = ({
1905
1932
  RenderResultMessage,
1906
1933
  RenderImageMessage
1907
1934
  }) => {
1908
- const { labels } = useChatContext();
1935
+ var _a;
1936
+ const { labels, icons } = useChatContext();
1909
1937
  const { messages: visibleMessages, interrupt } = (0, import_react_core5.useCopilotChatInternal)();
1910
1938
  const initialMessages = (0, import_react10.useMemo)(() => makeInitialMessages(labels.initial), [labels.initial]);
1911
1939
  const messages = [...initialMessages, ...visibleMessages];
@@ -1935,6 +1963,7 @@ var Messages = ({
1935
1963
  ]
1936
1964
  );
1937
1965
  const MessageRenderer = hasLegacyProps ? (props) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(LegacyRenderMessage, __spreadProps(__spreadValues({}, props), { legacyProps })) : RenderMessage2;
1966
+ const LoadingIcon = () => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { children: icons.activityIcon });
1938
1967
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "copilotKitMessages", ref: messagesContainerRef, children: [
1939
1968
  /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "copilotKitMessagesContainer", children: [
1940
1969
  messages.map((message, index) => {
@@ -1943,6 +1972,7 @@ var Messages = ({
1943
1972
  MessageRenderer,
1944
1973
  {
1945
1974
  message,
1975
+ messages,
1946
1976
  inProgress,
1947
1977
  index,
1948
1978
  isCurrentMessage,
@@ -1959,6 +1989,7 @@ var Messages = ({
1959
1989
  index
1960
1990
  );
1961
1991
  }),
1992
+ ((_a = messages[messages.length - 1]) == null ? void 0 : _a.role) === "user" && inProgress && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(LoadingIcon, {}),
1962
1993
  interrupt,
1963
1994
  chatError && ErrorMessage && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ErrorMessage, { error: chatError, isCurrentMessage: true })
1964
1995
  ] }),
@@ -2252,12 +2283,12 @@ var MAX_NEWLINES = 6;
2252
2283
  var Input = ({
2253
2284
  inProgress,
2254
2285
  onSend,
2255
- isVisible = false,
2286
+ chatReady = false,
2256
2287
  onStop,
2257
2288
  onUpload,
2258
2289
  hideStopButton = false
2259
2290
  }) => {
2260
- var _a, _b;
2291
+ var _a;
2261
2292
  const context = useChatContext();
2262
2293
  const copilotContext = (0, import_react_core7.useCopilotContext)();
2263
2294
  const showPoweredBy = !((_a = copilotContext.copilotApiConfig) == null ? void 0 : _a.publicApiKey);
@@ -2287,14 +2318,16 @@ var Input = ({
2287
2318
  inProgress
2288
2319
  });
2289
2320
  const isInProgress = inProgress || pushToTalkState === "transcribing";
2290
- const buttonIcon = isInProgress && !hideStopButton ? context.icons.stopIcon : context.icons.sendIcon;
2321
+ const { buttonIcon, buttonAlt } = (0, import_react14.useMemo)(() => {
2322
+ if (!chatReady)
2323
+ return { buttonIcon: context.icons.spinnerIcon, buttonAlt: "Loading" };
2324
+ return isInProgress && !hideStopButton && chatReady ? { buttonIcon: context.icons.stopIcon, buttonAlt: "Stop" } : { buttonIcon: context.icons.sendIcon, buttonAlt: "Send" };
2325
+ }, [isInProgress, chatReady, hideStopButton, context.icons.stopIcon, context.icons.sendIcon]);
2291
2326
  const showPushToTalk = pushToTalkConfigured && (pushToTalkState === "idle" || pushToTalkState === "recording") && !inProgress;
2327
+ const { interrupt } = (0, import_react_core7.useCopilotChatInternal)();
2292
2328
  const canSend = (0, import_react14.useMemo)(() => {
2293
- var _a2;
2294
- const interruptEvent = (_a2 = copilotContext.langGraphInterruptAction) == null ? void 0 : _a2.event;
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]);
2329
+ return !isInProgress && text.trim().length > 0 && pushToTalkState === "idle" && !interrupt;
2330
+ }, [interrupt, isInProgress, text, pushToTalkState]);
2298
2331
  const canStop = (0, import_react14.useMemo)(() => {
2299
2332
  return isInProgress && !hideStopButton;
2300
2333
  }, [isInProgress, hideStopButton]);
@@ -2341,6 +2374,7 @@ var Input = ({
2341
2374
  "data-copilotkit-in-progress": inProgress,
2342
2375
  "data-test-id": inProgress ? "copilot-chat-request-in-progress" : "copilot-chat-ready",
2343
2376
  className: "copilotKitInputControlButton",
2377
+ "aria-label": buttonAlt,
2344
2378
  children: buttonIcon
2345
2379
  }
2346
2380
  )
@@ -2354,8 +2388,6 @@ var Input = ({
2354
2388
  var import_react15 = __toESM(require("react"));
2355
2389
  var import_react_core9 = require("@copilotkit/react-core");
2356
2390
  var import_shared3 = require("@copilotkit/shared");
2357
- var import_shared4 = require("@copilotkit/shared");
2358
- var import_react_core10 = require("@copilotkit/react-core");
2359
2391
 
2360
2392
  // src/components/chat/ImageUploadQueue.tsx
2361
2393
  var import_jsx_runtime21 = require("react/jsx-runtime");
@@ -2459,18 +2491,25 @@ function Suggestion({ title, onClick, partial, className }) {
2459
2491
 
2460
2492
  // src/components/chat/Suggestions.tsx
2461
2493
  var import_jsx_runtime23 = require("react/jsx-runtime");
2462
- function Suggestions({ suggestions, onSuggestionClick }) {
2463
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "suggestions", children: suggestions.map((suggestion, index) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2464
- Suggestion,
2465
- {
2466
- title: suggestion.title,
2467
- message: suggestion.message,
2468
- partial: suggestion.partial,
2469
- className: suggestion.className,
2470
- onClick: () => onSuggestionClick(suggestion.message)
2471
- },
2472
- index
2473
- )) });
2494
+ function Suggestions({
2495
+ suggestions,
2496
+ onSuggestionClick,
2497
+ isLoading
2498
+ }) {
2499
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "suggestions", children: suggestions.map((suggestion, index) => {
2500
+ var _a, _b;
2501
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2502
+ Suggestion,
2503
+ {
2504
+ title: suggestion.title,
2505
+ message: suggestion.message,
2506
+ partial: (_b = (_a = suggestion.isLoading) != null ? _a : suggestion.partial) != null ? _b : isLoading,
2507
+ className: suggestion.className,
2508
+ onClick: () => onSuggestionClick(suggestion.message)
2509
+ },
2510
+ index
2511
+ );
2512
+ }) });
2474
2513
  }
2475
2514
 
2476
2515
  // src/components/chat/Chat.tsx
@@ -2670,16 +2709,16 @@ function CopilotChat({
2670
2709
  sendMessage,
2671
2710
  stopGeneration,
2672
2711
  reloadMessages,
2673
- suggestions: currentSuggestions
2674
- } = useCopilotChatLogic(
2712
+ suggestions: currentSuggestions,
2713
+ isLoadingSuggestions,
2714
+ agent
2715
+ } = (0, import_react_core9.useCopilotChatInternal)({
2675
2716
  suggestions,
2676
- makeSystemMessage,
2677
- disableSystemMessage,
2678
2717
  onInProgress,
2679
2718
  onSubmitMessage,
2680
2719
  onStopGeneration,
2681
2720
  onReloadMessages
2682
- );
2721
+ });
2683
2722
  const prevIsLoading = (0, import_react15.useRef)(isLoading);
2684
2723
  (0, import_react15.useEffect)(() => {
2685
2724
  if (prevIsLoading.current !== isLoading) {
@@ -2698,7 +2737,11 @@ function CopilotChat({
2698
2737
  fileInputRef.current.value = "";
2699
2738
  }
2700
2739
  triggerObservabilityHook("onMessageSent", text);
2701
- return sendMessage(text, images);
2740
+ return sendMessage({
2741
+ id: (0, import_shared3.randomUUID)(),
2742
+ content: text,
2743
+ role: "user"
2744
+ });
2702
2745
  };
2703
2746
  const chatContext = import_react15.default.useContext(ChatContext);
2704
2747
  const isVisible = chatContext ? chatContext.open : true;
@@ -2801,7 +2844,8 @@ function CopilotChat({
2801
2844
  RenderSuggestionsList,
2802
2845
  {
2803
2846
  onSuggestionClick: handleSendMessage,
2804
- suggestions: currentSuggestions
2847
+ suggestions: currentSuggestions,
2848
+ isLoading: isLoadingSuggestions
2805
2849
  }
2806
2850
  )
2807
2851
  }
@@ -2824,6 +2868,7 @@ function CopilotChat({
2824
2868
  Input2,
2825
2869
  {
2826
2870
  inProgress: isLoading,
2871
+ chatReady: Boolean(agent),
2827
2872
  onSend: handleSendMessage,
2828
2873
  isVisible,
2829
2874
  onStop: stopGeneration,
@@ -2849,243 +2894,10 @@ function WrappedCopilotChat({
2849
2894
  }
2850
2895
  return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, { children });
2851
2896
  }
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
2897
 
3086
2898
  // src/components/chat/Modal.tsx
3087
- var import_react_core11 = require("@copilotkit/react-core");
3088
- var import_shared5 = require("@copilotkit/shared");
2899
+ var import_react_core10 = require("@copilotkit/react-core");
2900
+ var import_shared4 = require("@copilotkit/shared");
3089
2901
  var import_jsx_runtime25 = require("react/jsx-runtime");
3090
2902
  var CopilotModalInner = (_a) => {
3091
2903
  var _b = _a, {
@@ -3111,7 +2923,7 @@ var CopilotModalInner = (_a) => {
3111
2923
  "Button",
3112
2924
  "Header"
3113
2925
  ]);
3114
- const { copilotApiConfig, setBannerError } = (0, import_react_core11.useCopilotContext)();
2926
+ const { copilotApiConfig, setBannerError } = (0, import_react_core10.useCopilotContext)();
3115
2927
  const { publicApiKey } = copilotApiConfig;
3116
2928
  const triggerObservabilityHook = (0, import_react16.useCallback)(
3117
2929
  (hookName, ...args) => {
@@ -3120,14 +2932,14 @@ var CopilotModalInner = (_a) => {
3120
2932
  }
3121
2933
  if ((observabilityHooks == null ? void 0 : observabilityHooks[hookName]) && !publicApiKey) {
3122
2934
  setBannerError(
3123
- new import_shared5.CopilotKitError({
2935
+ new import_shared4.CopilotKitError({
3124
2936
  message: "observabilityHooks requires a publicApiKey to function.",
3125
- code: import_shared5.CopilotKitErrorCode.MISSING_PUBLIC_API_KEY_ERROR,
3126
- severity: import_shared5.Severity.CRITICAL,
3127
- visibility: import_shared5.ErrorVisibility.BANNER
2937
+ code: import_shared4.CopilotKitErrorCode.MISSING_PUBLIC_API_KEY_ERROR,
2938
+ severity: import_shared4.Severity.CRITICAL,
2939
+ visibility: import_shared4.ErrorVisibility.BANNER
3128
2940
  })
3129
2941
  );
3130
- import_shared5.styledConsole.publicApiKeyRequired("observabilityHooks");
2942
+ import_shared4.styledConsole.publicApiKeyRequired("observabilityHooks");
3131
2943
  }
3132
2944
  },
3133
2945
  [publicApiKey, observabilityHooks, setBannerError]