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

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