@copilotkit/react-ui 1.8.4-next.4 → 1.8.5-next.0

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