@copilotkit/react-ui 1.8.4 → 1.8.5-next.1

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 (69) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/{chunk-6F2ZAK7T.mjs → chunk-4TWPMWD4.mjs} +2 -2
  3. package/dist/{chunk-7RIBDD4K.mjs → chunk-62QMTKMJ.mjs} +22 -7
  4. package/dist/chunk-62QMTKMJ.mjs.map +1 -0
  5. package/dist/{chunk-LGMQR7XG.mjs → chunk-6QV7AIIG.mjs} +2 -2
  6. package/dist/{chunk-7EDMOLGH.mjs → chunk-MYUOPOIL.mjs} +15 -14
  7. package/dist/chunk-MYUOPOIL.mjs.map +1 -0
  8. package/dist/{chunk-XB6QCUPB.mjs → chunk-NMNC4ROZ.mjs} +20 -8
  9. package/dist/chunk-NMNC4ROZ.mjs.map +1 -0
  10. package/dist/{chunk-UWWMAJ7R.mjs → chunk-Q2YY2NX3.mjs} +20 -8
  11. package/dist/chunk-Q2YY2NX3.mjs.map +1 -0
  12. package/dist/{chunk-QTD2KREC.mjs → chunk-U6ISBBRF.mjs} +2 -2
  13. package/dist/{chunk-WEYDZBT7.mjs → chunk-WNC6OCIB.mjs} +16 -4
  14. package/dist/chunk-WNC6OCIB.mjs.map +1 -0
  15. package/dist/components/chat/Chat.d.ts +8 -3
  16. package/dist/components/chat/Chat.js +327 -306
  17. package/dist/components/chat/Chat.js.map +1 -1
  18. package/dist/components/chat/Chat.mjs +5 -5
  19. package/dist/components/chat/Modal.js +327 -306
  20. package/dist/components/chat/Modal.js.map +1 -1
  21. package/dist/components/chat/Modal.mjs +6 -6
  22. package/dist/components/chat/Popup.js +327 -306
  23. package/dist/components/chat/Popup.js.map +1 -1
  24. package/dist/components/chat/Popup.mjs +7 -7
  25. package/dist/components/chat/Sidebar.js +327 -306
  26. package/dist/components/chat/Sidebar.js.map +1 -1
  27. package/dist/components/chat/Sidebar.mjs +7 -7
  28. package/dist/components/chat/index.js +327 -306
  29. package/dist/components/chat/index.js.map +1 -1
  30. package/dist/components/chat/index.mjs +8 -8
  31. package/dist/components/chat/messages/RenderActionExecutionMessage.d.ts +1 -1
  32. package/dist/components/chat/messages/RenderActionExecutionMessage.js +696 -15
  33. package/dist/components/chat/messages/RenderActionExecutionMessage.js.map +1 -1
  34. package/dist/components/chat/messages/RenderActionExecutionMessage.mjs +7 -1
  35. package/dist/components/chat/messages/RenderAgentStateMessage.d.ts +1 -1
  36. package/dist/components/chat/messages/RenderAgentStateMessage.js +693 -12
  37. package/dist/components/chat/messages/RenderAgentStateMessage.js.map +1 -1
  38. package/dist/components/chat/messages/RenderAgentStateMessage.mjs +7 -1
  39. package/dist/components/chat/messages/RenderResultMessage.d.ts +1 -1
  40. package/dist/components/chat/messages/RenderResultMessage.js +685 -4
  41. package/dist/components/chat/messages/RenderResultMessage.js.map +1 -1
  42. package/dist/components/chat/messages/RenderResultMessage.mjs +7 -1
  43. package/dist/components/chat/messages/RenderTextMessage.d.ts +1 -1
  44. package/dist/components/chat/messages/RenderTextMessage.js +695 -8
  45. package/dist/components/chat/messages/RenderTextMessage.js.map +1 -1
  46. package/dist/components/chat/messages/RenderTextMessage.mjs +8 -1
  47. package/dist/components/chat/props.d.ts +4 -4
  48. package/dist/components/chat/props.js.map +1 -1
  49. package/dist/components/index.js +327 -306
  50. package/dist/components/index.js.map +1 -1
  51. package/dist/components/index.mjs +8 -8
  52. package/dist/index.js +327 -306
  53. package/dist/index.js.map +1 -1
  54. package/dist/index.mjs +8 -8
  55. package/package.json +4 -4
  56. package/src/components/chat/Chat.tsx +13 -7
  57. package/src/components/chat/messages/RenderActionExecutionMessage.tsx +6 -2
  58. package/src/components/chat/messages/RenderAgentStateMessage.tsx +6 -2
  59. package/src/components/chat/messages/RenderResultMessage.tsx +6 -2
  60. package/src/components/chat/messages/RenderTextMessage.tsx +8 -4
  61. package/src/components/chat/props.ts +4 -4
  62. package/dist/chunk-7EDMOLGH.mjs.map +0 -1
  63. package/dist/chunk-7RIBDD4K.mjs.map +0 -1
  64. package/dist/chunk-UWWMAJ7R.mjs.map +0 -1
  65. package/dist/chunk-WEYDZBT7.mjs.map +0 -1
  66. package/dist/chunk-XB6QCUPB.mjs.map +0 -1
  67. /package/dist/{chunk-6F2ZAK7T.mjs.map → chunk-4TWPMWD4.mjs.map} +0 -0
  68. /package/dist/{chunk-LGMQR7XG.mjs.map → chunk-6QV7AIIG.mjs.map} +0 -0
  69. /package/dist/{chunk-QTD2KREC.mjs.map → chunk-U6ISBBRF.mjs.map} +0 -0
@@ -1454,276 +1454,11 @@ var Input = ({ inProgress, onSend, isVisible = false, onStop }) => {
1454
1454
  ] }) });
1455
1455
  };
1456
1456
 
1457
- // src/components/chat/messages/RenderTextMessage.tsx
1457
+ // src/components/chat/messages/UserMessage.tsx
1458
1458
  var import_jsx_runtime13 = require("react/jsx-runtime");
1459
- function RenderTextMessage(props) {
1460
- const {
1461
- message,
1462
- inProgress,
1463
- index,
1464
- isCurrentMessage,
1465
- UserMessage: UserMessage2,
1466
- AssistantMessage: AssistantMessage2,
1467
- onRegenerate,
1468
- onCopy,
1469
- onThumbsUp,
1470
- onThumbsDown
1471
- } = props;
1472
- if (message.isTextMessage()) {
1473
- if (message.role === "user") {
1474
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1475
- UserMessage2,
1476
- {
1477
- "data-message-role": "user",
1478
- message: message.content,
1479
- rawData: message
1480
- },
1481
- index
1482
- );
1483
- } else if (message.role == "assistant") {
1484
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1485
- AssistantMessage2,
1486
- {
1487
- "data-message-role": "assistant",
1488
- message: message.content,
1489
- rawData: message,
1490
- isLoading: inProgress && isCurrentMessage && !message.content,
1491
- isGenerating: inProgress && isCurrentMessage && !!message.content,
1492
- isCurrentMessage,
1493
- onRegenerate,
1494
- onCopy,
1495
- onThumbsUp,
1496
- onThumbsDown
1497
- },
1498
- index
1499
- );
1500
- }
1501
- }
1502
- }
1503
-
1504
- // src/components/chat/messages/RenderActionExecutionMessage.tsx
1505
- var import_runtime_client_gql2 = require("@copilotkit/runtime-client-gql");
1506
- var import_react_core6 = require("@copilotkit/react-core");
1507
- var import_jsx_runtime14 = require("react/jsx-runtime");
1508
- function RenderActionExecutionMessage(props) {
1509
- const { chatComponentsCache } = (0, import_react_core6.useCopilotContext)();
1510
- const { message, inProgress, index, isCurrentMessage, actionResult, AssistantMessage: AssistantMessage2 } = props;
1511
- if (message.isActionExecutionMessage()) {
1512
- if (chatComponentsCache.current !== null && (chatComponentsCache.current.actions[message.name] || chatComponentsCache.current.actions["*"])) {
1513
- const render = chatComponentsCache.current.actions[message.name] || chatComponentsCache.current.actions["*"];
1514
- if (typeof render === "string") {
1515
- if (isCurrentMessage && inProgress) {
1516
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1517
- AssistantMessage2,
1518
- {
1519
- rawData: message,
1520
- "data-message-role": "assistant",
1521
- isLoading: false,
1522
- isGenerating: true,
1523
- message: render
1524
- },
1525
- index
1526
- );
1527
- } else {
1528
- return null;
1529
- }
1530
- } else {
1531
- const args = message.arguments;
1532
- let status = "inProgress";
1533
- if (actionResult !== void 0) {
1534
- status = "complete";
1535
- } else if (message.status.code !== import_runtime_client_gql2.MessageStatusCode.Pending) {
1536
- status = "executing";
1537
- }
1538
- try {
1539
- const toRender = render({
1540
- status,
1541
- args,
1542
- result: actionResult,
1543
- name: message.name
1544
- });
1545
- if (!toRender && status === "complete") {
1546
- return null;
1547
- }
1548
- if (typeof toRender === "string") {
1549
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1550
- AssistantMessage2,
1551
- {
1552
- rawData: message,
1553
- "data-message-role": "assistant",
1554
- isLoading: false,
1555
- isGenerating: false,
1556
- message: toRender
1557
- },
1558
- index
1559
- );
1560
- } else {
1561
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1562
- AssistantMessage2,
1563
- {
1564
- rawData: message,
1565
- "data-message-role": "action-render",
1566
- isLoading: false,
1567
- isGenerating: false,
1568
- subComponent: toRender
1569
- },
1570
- index
1571
- );
1572
- }
1573
- } catch (e) {
1574
- console.error(`Error executing render function for action ${message.name}: ${e}`);
1575
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1576
- AssistantMessage2,
1577
- {
1578
- rawData: message,
1579
- "data-message-role": "assistant",
1580
- isLoading: false,
1581
- isGenerating: false,
1582
- subComponent: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "copilotKitMessage copilotKitAssistantMessage", children: [
1583
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("b", { children: [
1584
- "\u274C Error executing render function for action ",
1585
- message.name,
1586
- ":"
1587
- ] }),
1588
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("pre", { children: e instanceof Error ? e.message : String(e) })
1589
- ] })
1590
- },
1591
- index
1592
- );
1593
- }
1594
- }
1595
- } else if (!inProgress || !isCurrentMessage) {
1596
- return null;
1597
- } else {
1598
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1599
- AssistantMessage2,
1600
- {
1601
- rawData: message,
1602
- "data-message-role": "assistant",
1603
- isLoading: true,
1604
- isGenerating: true
1605
- },
1606
- index
1607
- );
1608
- }
1609
- }
1610
- }
1611
-
1612
- // src/components/chat/messages/RenderResultMessage.tsx
1613
- var import_jsx_runtime15 = require("react/jsx-runtime");
1614
- function RenderResultMessage(props) {
1615
- const { message, inProgress, index, isCurrentMessage, AssistantMessage: AssistantMessage2 } = props;
1616
- if (message.isResultMessage() && inProgress && isCurrentMessage) {
1617
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1618
- AssistantMessage2,
1619
- {
1620
- "data-message-role": "assistant",
1621
- rawData: message,
1622
- isLoading: true,
1623
- isGenerating: true
1624
- },
1625
- index
1626
- );
1627
- } else {
1628
- return null;
1629
- }
1630
- }
1631
-
1632
- // src/components/chat/messages/RenderAgentStateMessage.tsx
1633
- var import_react_core7 = require("@copilotkit/react-core");
1634
- var import_jsx_runtime16 = require("react/jsx-runtime");
1635
- function RenderAgentStateMessage(props) {
1636
- const { chatComponentsCache } = (0, import_react_core7.useCopilotContext)();
1637
- const { message, inProgress, index, isCurrentMessage, AssistantMessage: AssistantMessage2 } = props;
1638
- if (message.isAgentStateMessage()) {
1639
- let render;
1640
- if (chatComponentsCache.current !== null) {
1641
- render = chatComponentsCache.current.coAgentStateRenders[`${message.agentName}-${message.nodeName}`] || chatComponentsCache.current.coAgentStateRenders[`${message.agentName}-global`];
1642
- }
1643
- if (render) {
1644
- if (typeof render === "string") {
1645
- if (isCurrentMessage && inProgress) {
1646
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1647
- AssistantMessage2,
1648
- {
1649
- rawData: message,
1650
- message: render,
1651
- "data-message-role": "assistant",
1652
- isLoading: true,
1653
- isGenerating: true
1654
- },
1655
- index
1656
- );
1657
- } else {
1658
- return null;
1659
- }
1660
- } else {
1661
- const state = message.state;
1662
- let status = message.active ? "inProgress" : "complete";
1663
- const toRender = render({
1664
- status,
1665
- state,
1666
- nodeName: message.nodeName
1667
- });
1668
- if (!toRender && status === "complete") {
1669
- return null;
1670
- }
1671
- if (!toRender && isCurrentMessage && inProgress) {
1672
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1673
- AssistantMessage2,
1674
- {
1675
- "data-message-role": "assistant",
1676
- rawData: message,
1677
- isLoading: true,
1678
- isGenerating: true
1679
- },
1680
- index
1681
- );
1682
- } else if (!toRender) {
1683
- return null;
1684
- }
1685
- if (typeof toRender === "string") {
1686
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1687
- AssistantMessage2,
1688
- {
1689
- rawData: message,
1690
- message: toRender,
1691
- isLoading: true,
1692
- isGenerating: true,
1693
- "data-message-role": "assistant"
1694
- },
1695
- index
1696
- );
1697
- } else {
1698
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1699
- AssistantMessage2,
1700
- {
1701
- rawData: message,
1702
- "data-message-role": "agent-state-render",
1703
- isLoading: false,
1704
- isGenerating: false,
1705
- subComponent: toRender
1706
- },
1707
- index
1708
- );
1709
- }
1710
- }
1711
- } else if (!inProgress || !isCurrentMessage) {
1712
- return null;
1713
- } else {
1714
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1715
- AssistantMessage2,
1716
- {
1717
- rawData: message,
1718
- isLoading: true,
1719
- isGenerating: true,
1720
- "data-message-role": "assistant"
1721
- },
1722
- index
1723
- );
1724
- }
1725
- }
1726
- }
1459
+ var UserMessage = (props) => {
1460
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "copilotKitMessage copilotKitUserMessage", children: props.message });
1461
+ };
1727
1462
 
1728
1463
  // src/components/chat/Markdown.tsx
1729
1464
  var import_react11 = require("react");
@@ -1756,7 +1491,7 @@ function useCopyToClipboard({ timeout = 2e3 }) {
1756
1491
  }
1757
1492
 
1758
1493
  // src/components/chat/CodeBlock.tsx
1759
- var import_jsx_runtime17 = require("react/jsx-runtime");
1494
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1760
1495
  var programmingLanguages = {
1761
1496
  javascript: ".js",
1762
1497
  python: ".py",
@@ -1819,15 +1554,15 @@ var CodeBlock = (0, import_react10.memo)(({ language, value }) => {
1819
1554
  return;
1820
1555
  copyToClipboard(value);
1821
1556
  };
1822
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "copilotKitCodeBlock", children: [
1823
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "copilotKitCodeBlockToolbar", children: [
1824
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "copilotKitCodeBlockToolbarLanguage", children: language }),
1825
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "copilotKitCodeBlockToolbarButtons", children: [
1826
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("button", { className: "copilotKitCodeBlockToolbarButton", onClick: downloadAsFile, children: DownloadIcon }),
1827
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("button", { className: "copilotKitCodeBlockToolbarButton", onClick: onCopy, children: isCopied ? CheckIcon : CopyIcon })
1557
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "copilotKitCodeBlock", children: [
1558
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "copilotKitCodeBlockToolbar", children: [
1559
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "copilotKitCodeBlockToolbarLanguage", children: language }),
1560
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "copilotKitCodeBlockToolbarButtons", children: [
1561
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("button", { className: "copilotKitCodeBlockToolbarButton", onClick: downloadAsFile, children: DownloadIcon }),
1562
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("button", { className: "copilotKitCodeBlockToolbarButton", onClick: onCopy, children: isCopied ? CheckIcon : CopyIcon })
1828
1563
  ] })
1829
1564
  ] }),
1830
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1565
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1831
1566
  import_react_syntax_highlighter.Prism,
1832
1567
  {
1833
1568
  language,
@@ -2130,18 +1865,18 @@ var highlightStyle = {
2130
1865
  // src/components/chat/Markdown.tsx
2131
1866
  var import_remark_gfm = __toESM(require("remark-gfm"));
2132
1867
  var import_remark_math = __toESM(require("remark-math"));
2133
- var import_jsx_runtime18 = require("react/jsx-runtime");
1868
+ var import_jsx_runtime15 = require("react/jsx-runtime");
2134
1869
  var MemoizedReactMarkdown = (0, import_react11.memo)(
2135
1870
  import_react_markdown.default,
2136
1871
  (prevProps, nextProps) => prevProps.children === nextProps.children && prevProps.className === nextProps.className
2137
1872
  );
2138
1873
  var Markdown = ({ content }) => {
2139
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "copilotKitMarkdown", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(MemoizedReactMarkdown, { components, remarkPlugins: [import_remark_gfm.default, import_remark_math.default], children: content }) });
1874
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "copilotKitMarkdown", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(MemoizedReactMarkdown, { components, remarkPlugins: [import_remark_gfm.default, import_remark_math.default], children: content }) });
2140
1875
  };
2141
1876
  var components = {
2142
1877
  a(_a) {
2143
1878
  var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
2144
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1879
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2145
1880
  "a",
2146
1881
  __spreadProps(__spreadValues({
2147
1882
  style: { color: "blue", textDecoration: "underline" }
@@ -2156,7 +1891,7 @@ var components = {
2156
1891
  var _d = _c, { children, className, inline } = _d, props = __objRest(_d, ["children", "className", "inline"]);
2157
1892
  if (children.length) {
2158
1893
  if (children[0] == "\u258D") {
2159
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1894
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2160
1895
  "span",
2161
1896
  {
2162
1897
  style: {
@@ -2171,9 +1906,9 @@ var components = {
2171
1906
  }
2172
1907
  const match = /language-(\w+)/.exec(className || "");
2173
1908
  if (inline) {
2174
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("code", __spreadProps(__spreadValues({ className }, props), { children }));
1909
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("code", __spreadProps(__spreadValues({ className }, props), { children }));
2175
1910
  }
2176
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1911
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2177
1912
  CodeBlock,
2178
1913
  __spreadValues({
2179
1914
  language: match && match[1] || "",
@@ -2186,7 +1921,7 @@ var components = {
2186
1921
 
2187
1922
  // src/components/chat/messages/AssistantMessage.tsx
2188
1923
  var import_react12 = require("react");
2189
- var import_jsx_runtime19 = require("react/jsx-runtime");
1924
+ var import_jsx_runtime16 = require("react/jsx-runtime");
2190
1925
  var AssistantMessage = (props) => {
2191
1926
  const { icons, labels } = useChatContext();
2192
1927
  const {
@@ -2227,17 +1962,17 @@ var AssistantMessage = (props) => {
2227
1962
  onThumbsDown(message);
2228
1963
  }
2229
1964
  };
2230
- const LoadingIcon = () => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { children: icons.activityIcon });
2231
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
2232
- (message || isLoading) && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "copilotKitMessage copilotKitAssistantMessage", children: [
2233
- message && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Markdown, { content: message || "" }),
2234
- isLoading && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(LoadingIcon, {}),
2235
- message && !isLoading && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
1965
+ const LoadingIcon = () => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children: icons.activityIcon });
1966
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
1967
+ (message || isLoading) && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "copilotKitMessage copilotKitAssistantMessage", children: [
1968
+ message && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Markdown, { content: message || "" }),
1969
+ isLoading && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(LoadingIcon, {}),
1970
+ message && !isLoading && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
2236
1971
  "div",
2237
1972
  {
2238
1973
  className: `copilotKitMessageControls ${isCurrentMessage ? "currentMessage" : ""}`,
2239
1974
  children: [
2240
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1975
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2241
1976
  "button",
2242
1977
  {
2243
1978
  className: "copilotKitMessageControlButton",
@@ -2247,17 +1982,17 @@ var AssistantMessage = (props) => {
2247
1982
  children: icons.regenerateIcon
2248
1983
  }
2249
1984
  ),
2250
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1985
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2251
1986
  "button",
2252
1987
  {
2253
1988
  className: "copilotKitMessageControlButton",
2254
1989
  onClick: handleCopy,
2255
1990
  "aria-label": labels.copyToClipboard,
2256
1991
  title: labels.copyToClipboard,
2257
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { style: { fontSize: "10px", fontWeight: "bold" }, children: "\u2713" }) : icons.copyIcon
1992
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: { fontSize: "10px", fontWeight: "bold" }, children: "\u2713" }) : icons.copyIcon
2258
1993
  }
2259
1994
  ),
2260
- onThumbsUp && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1995
+ onThumbsUp && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2261
1996
  "button",
2262
1997
  {
2263
1998
  className: "copilotKitMessageControlButton",
@@ -2267,7 +2002,7 @@ var AssistantMessage = (props) => {
2267
2002
  children: icons.thumbsUpIcon
2268
2003
  }
2269
2004
  ),
2270
- onThumbsDown && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2005
+ onThumbsDown && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2271
2006
  "button",
2272
2007
  {
2273
2008
  className: "copilotKitMessageControlButton",
@@ -2281,15 +2016,300 @@ var AssistantMessage = (props) => {
2281
2016
  }
2282
2017
  )
2283
2018
  ] }),
2284
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { style: { marginBottom: "0.5rem" }, children: subComponent })
2019
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { marginBottom: "0.5rem" }, children: subComponent })
2285
2020
  ] });
2286
2021
  };
2287
2022
 
2288
- // src/components/chat/messages/UserMessage.tsx
2023
+ // src/components/chat/messages/RenderTextMessage.tsx
2024
+ var import_jsx_runtime17 = require("react/jsx-runtime");
2025
+ function RenderTextMessage(_a) {
2026
+ var _b = _a, {
2027
+ UserMessage: UserMessage2 = UserMessage,
2028
+ AssistantMessage: AssistantMessage2 = AssistantMessage
2029
+ } = _b, props = __objRest(_b, [
2030
+ "UserMessage",
2031
+ "AssistantMessage"
2032
+ ]);
2033
+ const {
2034
+ message,
2035
+ inProgress,
2036
+ index,
2037
+ isCurrentMessage,
2038
+ onRegenerate,
2039
+ onCopy,
2040
+ onThumbsUp,
2041
+ onThumbsDown
2042
+ } = props;
2043
+ if (message.isTextMessage()) {
2044
+ if (message.role === "user") {
2045
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2046
+ UserMessage2,
2047
+ {
2048
+ "data-message-role": "user",
2049
+ message: message.content,
2050
+ rawData: message
2051
+ },
2052
+ index
2053
+ );
2054
+ } else if (message.role == "assistant") {
2055
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2056
+ AssistantMessage2,
2057
+ {
2058
+ "data-message-role": "assistant",
2059
+ message: message.content,
2060
+ rawData: message,
2061
+ isLoading: inProgress && isCurrentMessage && !message.content,
2062
+ isGenerating: inProgress && isCurrentMessage && !!message.content,
2063
+ isCurrentMessage,
2064
+ onRegenerate: () => onRegenerate == null ? void 0 : onRegenerate(message.id),
2065
+ onCopy,
2066
+ onThumbsUp,
2067
+ onThumbsDown
2068
+ },
2069
+ index
2070
+ );
2071
+ }
2072
+ }
2073
+ }
2074
+
2075
+ // src/components/chat/messages/RenderActionExecutionMessage.tsx
2076
+ var import_runtime_client_gql2 = require("@copilotkit/runtime-client-gql");
2077
+ var import_react_core6 = require("@copilotkit/react-core");
2078
+ var import_jsx_runtime18 = require("react/jsx-runtime");
2079
+ function RenderActionExecutionMessage(_a) {
2080
+ var _b = _a, {
2081
+ AssistantMessage: AssistantMessage2 = AssistantMessage
2082
+ } = _b, props = __objRest(_b, [
2083
+ "AssistantMessage"
2084
+ ]);
2085
+ const { chatComponentsCache } = (0, import_react_core6.useCopilotContext)();
2086
+ const { message, inProgress, index, isCurrentMessage, actionResult } = props;
2087
+ if (message.isActionExecutionMessage()) {
2088
+ if (chatComponentsCache.current !== null && (chatComponentsCache.current.actions[message.name] || chatComponentsCache.current.actions["*"])) {
2089
+ const render = chatComponentsCache.current.actions[message.name] || chatComponentsCache.current.actions["*"];
2090
+ if (typeof render === "string") {
2091
+ if (isCurrentMessage && inProgress) {
2092
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2093
+ AssistantMessage2,
2094
+ {
2095
+ rawData: message,
2096
+ "data-message-role": "assistant",
2097
+ isLoading: false,
2098
+ isGenerating: true,
2099
+ message: render
2100
+ },
2101
+ index
2102
+ );
2103
+ } else {
2104
+ return null;
2105
+ }
2106
+ } else {
2107
+ const args = message.arguments;
2108
+ let status = "inProgress";
2109
+ if (actionResult !== void 0) {
2110
+ status = "complete";
2111
+ } else if (message.status.code !== import_runtime_client_gql2.MessageStatusCode.Pending) {
2112
+ status = "executing";
2113
+ }
2114
+ try {
2115
+ const toRender = render({
2116
+ status,
2117
+ args,
2118
+ result: actionResult,
2119
+ name: message.name
2120
+ });
2121
+ if (!toRender && status === "complete") {
2122
+ return null;
2123
+ }
2124
+ if (typeof toRender === "string") {
2125
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2126
+ AssistantMessage2,
2127
+ {
2128
+ rawData: message,
2129
+ "data-message-role": "assistant",
2130
+ isLoading: false,
2131
+ isGenerating: false,
2132
+ message: toRender
2133
+ },
2134
+ index
2135
+ );
2136
+ } else {
2137
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2138
+ AssistantMessage2,
2139
+ {
2140
+ rawData: message,
2141
+ "data-message-role": "action-render",
2142
+ isLoading: false,
2143
+ isGenerating: false,
2144
+ subComponent: toRender
2145
+ },
2146
+ index
2147
+ );
2148
+ }
2149
+ } catch (e) {
2150
+ console.error(`Error executing render function for action ${message.name}: ${e}`);
2151
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2152
+ AssistantMessage2,
2153
+ {
2154
+ rawData: message,
2155
+ "data-message-role": "assistant",
2156
+ isLoading: false,
2157
+ isGenerating: false,
2158
+ subComponent: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "copilotKitMessage copilotKitAssistantMessage", children: [
2159
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("b", { children: [
2160
+ "\u274C Error executing render function for action ",
2161
+ message.name,
2162
+ ":"
2163
+ ] }),
2164
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("pre", { children: e instanceof Error ? e.message : String(e) })
2165
+ ] })
2166
+ },
2167
+ index
2168
+ );
2169
+ }
2170
+ }
2171
+ } else if (!inProgress || !isCurrentMessage) {
2172
+ return null;
2173
+ } else {
2174
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2175
+ AssistantMessage2,
2176
+ {
2177
+ rawData: message,
2178
+ "data-message-role": "assistant",
2179
+ isLoading: true,
2180
+ isGenerating: true
2181
+ },
2182
+ index
2183
+ );
2184
+ }
2185
+ }
2186
+ }
2187
+
2188
+ // src/components/chat/messages/RenderResultMessage.tsx
2189
+ var import_jsx_runtime19 = require("react/jsx-runtime");
2190
+ function RenderResultMessage(_a) {
2191
+ var _b = _a, {
2192
+ AssistantMessage: AssistantMessage2 = AssistantMessage
2193
+ } = _b, props = __objRest(_b, [
2194
+ "AssistantMessage"
2195
+ ]);
2196
+ const { message, inProgress, index, isCurrentMessage } = props;
2197
+ if (message.isResultMessage() && inProgress && isCurrentMessage) {
2198
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2199
+ AssistantMessage2,
2200
+ {
2201
+ "data-message-role": "assistant",
2202
+ rawData: message,
2203
+ isLoading: true,
2204
+ isGenerating: true
2205
+ },
2206
+ index
2207
+ );
2208
+ } else {
2209
+ return null;
2210
+ }
2211
+ }
2212
+
2213
+ // src/components/chat/messages/RenderAgentStateMessage.tsx
2214
+ var import_react_core7 = require("@copilotkit/react-core");
2289
2215
  var import_jsx_runtime20 = require("react/jsx-runtime");
2290
- var UserMessage = (props) => {
2291
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "copilotKitMessage copilotKitUserMessage", children: props.message });
2292
- };
2216
+ function RenderAgentStateMessage(_a) {
2217
+ var _b = _a, {
2218
+ AssistantMessage: AssistantMessage2 = AssistantMessage
2219
+ } = _b, props = __objRest(_b, [
2220
+ "AssistantMessage"
2221
+ ]);
2222
+ const { chatComponentsCache } = (0, import_react_core7.useCopilotContext)();
2223
+ const { message, inProgress, index, isCurrentMessage } = props;
2224
+ if (message.isAgentStateMessage()) {
2225
+ let render;
2226
+ if (chatComponentsCache.current !== null) {
2227
+ render = chatComponentsCache.current.coAgentStateRenders[`${message.agentName}-${message.nodeName}`] || chatComponentsCache.current.coAgentStateRenders[`${message.agentName}-global`];
2228
+ }
2229
+ if (render) {
2230
+ if (typeof render === "string") {
2231
+ if (isCurrentMessage && inProgress) {
2232
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2233
+ AssistantMessage2,
2234
+ {
2235
+ rawData: message,
2236
+ message: render,
2237
+ "data-message-role": "assistant",
2238
+ isLoading: true,
2239
+ isGenerating: true
2240
+ },
2241
+ index
2242
+ );
2243
+ } else {
2244
+ return null;
2245
+ }
2246
+ } else {
2247
+ const state = message.state;
2248
+ let status = message.active ? "inProgress" : "complete";
2249
+ const toRender = render({
2250
+ status,
2251
+ state,
2252
+ nodeName: message.nodeName
2253
+ });
2254
+ if (!toRender && status === "complete") {
2255
+ return null;
2256
+ }
2257
+ if (!toRender && isCurrentMessage && inProgress) {
2258
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2259
+ AssistantMessage2,
2260
+ {
2261
+ "data-message-role": "assistant",
2262
+ rawData: message,
2263
+ isLoading: true,
2264
+ isGenerating: true
2265
+ },
2266
+ index
2267
+ );
2268
+ } else if (!toRender) {
2269
+ return null;
2270
+ }
2271
+ if (typeof toRender === "string") {
2272
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2273
+ AssistantMessage2,
2274
+ {
2275
+ rawData: message,
2276
+ message: toRender,
2277
+ isLoading: true,
2278
+ isGenerating: true,
2279
+ "data-message-role": "assistant"
2280
+ },
2281
+ index
2282
+ );
2283
+ } else {
2284
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2285
+ AssistantMessage2,
2286
+ {
2287
+ rawData: message,
2288
+ "data-message-role": "agent-state-render",
2289
+ isLoading: false,
2290
+ isGenerating: false,
2291
+ subComponent: toRender
2292
+ },
2293
+ index
2294
+ );
2295
+ }
2296
+ }
2297
+ } else if (!inProgress || !isCurrentMessage) {
2298
+ return null;
2299
+ } else {
2300
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2301
+ AssistantMessage2,
2302
+ {
2303
+ rawData: message,
2304
+ isLoading: true,
2305
+ isGenerating: true,
2306
+ "data-message-role": "assistant"
2307
+ },
2308
+ index
2309
+ );
2310
+ }
2311
+ }
2312
+ }
2293
2313
 
2294
2314
  // src/components/chat/Suggestion.tsx
2295
2315
  var import_react_core8 = require("@copilotkit/react-core");
@@ -2441,11 +2461,11 @@ function CopilotChat({
2441
2461
  );
2442
2462
  const chatContext = import_react13.default.useContext(ChatContext);
2443
2463
  const isVisible = chatContext ? chatContext.open : true;
2444
- const handleRegenerate = () => {
2464
+ const handleRegenerate = (messageId) => {
2445
2465
  if (onRegenerate) {
2446
- onRegenerate();
2466
+ onRegenerate(messageId);
2447
2467
  }
2448
- reloadMessages();
2468
+ reloadMessages(messageId);
2449
2469
  };
2450
2470
  const handleCopy = (message) => {
2451
2471
  if (onCopy) {
@@ -2637,7 +2657,7 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onS
2637
2657
  defaultStopGeneration();
2638
2658
  }
2639
2659
  }
2640
- function reloadMessages() {
2660
+ function reloadMessages(messageId) {
2641
2661
  if (onReloadMessages) {
2642
2662
  onReloadMessages({
2643
2663
  messages,
@@ -2647,10 +2667,11 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage, onS
2647
2667
  restartCurrentAgent,
2648
2668
  stopCurrentAgent,
2649
2669
  runCurrentAgent,
2650
- setCurrentAgentState
2670
+ setCurrentAgentState,
2671
+ messageId
2651
2672
  });
2652
2673
  } else {
2653
- defaultReloadMessages();
2674
+ defaultReloadMessages(messageId);
2654
2675
  }
2655
2676
  }
2656
2677
  return {