@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
@@ -1462,276 +1462,11 @@ var Input = ({ inProgress, onSend, isVisible = false, onStop }) => {
1462
1462
  ] }) });
1463
1463
  };
1464
1464
 
1465
- // src/components/chat/messages/RenderTextMessage.tsx
1465
+ // src/components/chat/messages/UserMessage.tsx
1466
1466
  var import_jsx_runtime13 = require("react/jsx-runtime");
1467
- function RenderTextMessage(props) {
1468
- const {
1469
- message,
1470
- inProgress,
1471
- index,
1472
- isCurrentMessage,
1473
- UserMessage: UserMessage2,
1474
- AssistantMessage: AssistantMessage2,
1475
- onRegenerate,
1476
- onCopy,
1477
- onThumbsUp,
1478
- onThumbsDown
1479
- } = props;
1480
- if (message.isTextMessage()) {
1481
- if (message.role === "user") {
1482
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1483
- UserMessage2,
1484
- {
1485
- "data-message-role": "user",
1486
- message: message.content,
1487
- rawData: message
1488
- },
1489
- index
1490
- );
1491
- } else if (message.role == "assistant") {
1492
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1493
- AssistantMessage2,
1494
- {
1495
- "data-message-role": "assistant",
1496
- message: message.content,
1497
- rawData: message,
1498
- isLoading: inProgress && isCurrentMessage && !message.content,
1499
- isGenerating: inProgress && isCurrentMessage && !!message.content,
1500
- isCurrentMessage,
1501
- onRegenerate,
1502
- onCopy,
1503
- onThumbsUp,
1504
- onThumbsDown
1505
- },
1506
- index
1507
- );
1508
- }
1509
- }
1510
- }
1511
-
1512
- // src/components/chat/messages/RenderActionExecutionMessage.tsx
1513
- var import_runtime_client_gql2 = require("@copilotkit/runtime-client-gql");
1514
- var import_react_core6 = require("@copilotkit/react-core");
1515
- var import_jsx_runtime14 = require("react/jsx-runtime");
1516
- function RenderActionExecutionMessage(props) {
1517
- const { chatComponentsCache } = (0, import_react_core6.useCopilotContext)();
1518
- const { message, inProgress, index, isCurrentMessage, actionResult, AssistantMessage: AssistantMessage2 } = props;
1519
- if (message.isActionExecutionMessage()) {
1520
- if (chatComponentsCache.current !== null && (chatComponentsCache.current.actions[message.name] || chatComponentsCache.current.actions["*"])) {
1521
- const render = chatComponentsCache.current.actions[message.name] || chatComponentsCache.current.actions["*"];
1522
- if (typeof render === "string") {
1523
- if (isCurrentMessage && inProgress) {
1524
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1525
- AssistantMessage2,
1526
- {
1527
- rawData: message,
1528
- "data-message-role": "assistant",
1529
- isLoading: false,
1530
- isGenerating: true,
1531
- message: render
1532
- },
1533
- index
1534
- );
1535
- } else {
1536
- return null;
1537
- }
1538
- } else {
1539
- const args = message.arguments;
1540
- let status = "inProgress";
1541
- if (actionResult !== void 0) {
1542
- status = "complete";
1543
- } else if (message.status.code !== import_runtime_client_gql2.MessageStatusCode.Pending) {
1544
- status = "executing";
1545
- }
1546
- try {
1547
- const toRender = render({
1548
- status,
1549
- args,
1550
- result: actionResult,
1551
- name: message.name
1552
- });
1553
- if (!toRender && status === "complete") {
1554
- return null;
1555
- }
1556
- if (typeof toRender === "string") {
1557
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1558
- AssistantMessage2,
1559
- {
1560
- rawData: message,
1561
- "data-message-role": "assistant",
1562
- isLoading: false,
1563
- isGenerating: false,
1564
- message: toRender
1565
- },
1566
- index
1567
- );
1568
- } else {
1569
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1570
- AssistantMessage2,
1571
- {
1572
- rawData: message,
1573
- "data-message-role": "action-render",
1574
- isLoading: false,
1575
- isGenerating: false,
1576
- subComponent: toRender
1577
- },
1578
- index
1579
- );
1580
- }
1581
- } catch (e) {
1582
- console.error(`Error executing render function for action ${message.name}: ${e}`);
1583
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1584
- AssistantMessage2,
1585
- {
1586
- rawData: message,
1587
- "data-message-role": "assistant",
1588
- isLoading: false,
1589
- isGenerating: false,
1590
- subComponent: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "copilotKitMessage copilotKitAssistantMessage", children: [
1591
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("b", { children: [
1592
- "\u274C Error executing render function for action ",
1593
- message.name,
1594
- ":"
1595
- ] }),
1596
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("pre", { children: e instanceof Error ? e.message : String(e) })
1597
- ] })
1598
- },
1599
- index
1600
- );
1601
- }
1602
- }
1603
- } else if (!inProgress || !isCurrentMessage) {
1604
- return null;
1605
- } else {
1606
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1607
- AssistantMessage2,
1608
- {
1609
- rawData: message,
1610
- "data-message-role": "assistant",
1611
- isLoading: true,
1612
- isGenerating: true
1613
- },
1614
- index
1615
- );
1616
- }
1617
- }
1618
- }
1619
-
1620
- // src/components/chat/messages/RenderResultMessage.tsx
1621
- var import_jsx_runtime15 = require("react/jsx-runtime");
1622
- function RenderResultMessage(props) {
1623
- const { message, inProgress, index, isCurrentMessage, AssistantMessage: AssistantMessage2 } = props;
1624
- if (message.isResultMessage() && inProgress && isCurrentMessage) {
1625
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1626
- AssistantMessage2,
1627
- {
1628
- "data-message-role": "assistant",
1629
- rawData: message,
1630
- isLoading: true,
1631
- isGenerating: true
1632
- },
1633
- index
1634
- );
1635
- } else {
1636
- return null;
1637
- }
1638
- }
1639
-
1640
- // src/components/chat/messages/RenderAgentStateMessage.tsx
1641
- var import_react_core7 = require("@copilotkit/react-core");
1642
- var import_jsx_runtime16 = require("react/jsx-runtime");
1643
- function RenderAgentStateMessage(props) {
1644
- const { chatComponentsCache } = (0, import_react_core7.useCopilotContext)();
1645
- const { message, inProgress, index, isCurrentMessage, AssistantMessage: AssistantMessage2 } = props;
1646
- if (message.isAgentStateMessage()) {
1647
- let render;
1648
- if (chatComponentsCache.current !== null) {
1649
- render = chatComponentsCache.current.coAgentStateRenders[`${message.agentName}-${message.nodeName}`] || chatComponentsCache.current.coAgentStateRenders[`${message.agentName}-global`];
1650
- }
1651
- if (render) {
1652
- if (typeof render === "string") {
1653
- if (isCurrentMessage && inProgress) {
1654
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1655
- AssistantMessage2,
1656
- {
1657
- rawData: message,
1658
- message: render,
1659
- "data-message-role": "assistant",
1660
- isLoading: true,
1661
- isGenerating: true
1662
- },
1663
- index
1664
- );
1665
- } else {
1666
- return null;
1667
- }
1668
- } else {
1669
- const state = message.state;
1670
- let status = message.active ? "inProgress" : "complete";
1671
- const toRender = render({
1672
- status,
1673
- state,
1674
- nodeName: message.nodeName
1675
- });
1676
- if (!toRender && status === "complete") {
1677
- return null;
1678
- }
1679
- if (!toRender && isCurrentMessage && inProgress) {
1680
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1681
- AssistantMessage2,
1682
- {
1683
- "data-message-role": "assistant",
1684
- rawData: message,
1685
- isLoading: true,
1686
- isGenerating: true
1687
- },
1688
- index
1689
- );
1690
- } else if (!toRender) {
1691
- return null;
1692
- }
1693
- if (typeof toRender === "string") {
1694
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1695
- AssistantMessage2,
1696
- {
1697
- rawData: message,
1698
- message: toRender,
1699
- isLoading: true,
1700
- isGenerating: true,
1701
- "data-message-role": "assistant"
1702
- },
1703
- index
1704
- );
1705
- } else {
1706
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1707
- AssistantMessage2,
1708
- {
1709
- rawData: message,
1710
- "data-message-role": "agent-state-render",
1711
- isLoading: false,
1712
- isGenerating: false,
1713
- subComponent: toRender
1714
- },
1715
- index
1716
- );
1717
- }
1718
- }
1719
- } else if (!inProgress || !isCurrentMessage) {
1720
- return null;
1721
- } else {
1722
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1723
- AssistantMessage2,
1724
- {
1725
- rawData: message,
1726
- isLoading: true,
1727
- isGenerating: true,
1728
- "data-message-role": "assistant"
1729
- },
1730
- index
1731
- );
1732
- }
1733
- }
1734
- }
1467
+ var UserMessage = (props) => {
1468
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "copilotKitMessage copilotKitUserMessage", children: props.message });
1469
+ };
1735
1470
 
1736
1471
  // src/components/chat/Markdown.tsx
1737
1472
  var import_react11 = require("react");
@@ -1764,7 +1499,7 @@ function useCopyToClipboard({ timeout = 2e3 }) {
1764
1499
  }
1765
1500
 
1766
1501
  // src/components/chat/CodeBlock.tsx
1767
- var import_jsx_runtime17 = require("react/jsx-runtime");
1502
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1768
1503
  var programmingLanguages = {
1769
1504
  javascript: ".js",
1770
1505
  python: ".py",
@@ -1827,15 +1562,15 @@ var CodeBlock = (0, import_react10.memo)(({ language, value }) => {
1827
1562
  return;
1828
1563
  copyToClipboard(value);
1829
1564
  };
1830
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "copilotKitCodeBlock", children: [
1831
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "copilotKitCodeBlockToolbar", children: [
1832
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "copilotKitCodeBlockToolbarLanguage", children: language }),
1833
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "copilotKitCodeBlockToolbarButtons", children: [
1834
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("button", { className: "copilotKitCodeBlockToolbarButton", onClick: downloadAsFile, children: DownloadIcon }),
1835
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("button", { className: "copilotKitCodeBlockToolbarButton", onClick: onCopy, children: isCopied ? CheckIcon : CopyIcon })
1565
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "copilotKitCodeBlock", children: [
1566
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "copilotKitCodeBlockToolbar", children: [
1567
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "copilotKitCodeBlockToolbarLanguage", children: language }),
1568
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "copilotKitCodeBlockToolbarButtons", children: [
1569
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("button", { className: "copilotKitCodeBlockToolbarButton", onClick: downloadAsFile, children: DownloadIcon }),
1570
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("button", { className: "copilotKitCodeBlockToolbarButton", onClick: onCopy, children: isCopied ? CheckIcon : CopyIcon })
1836
1571
  ] })
1837
1572
  ] }),
1838
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1573
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1839
1574
  import_react_syntax_highlighter.Prism,
1840
1575
  {
1841
1576
  language,
@@ -2138,18 +1873,18 @@ var highlightStyle = {
2138
1873
  // src/components/chat/Markdown.tsx
2139
1874
  var import_remark_gfm = __toESM(require("remark-gfm"));
2140
1875
  var import_remark_math = __toESM(require("remark-math"));
2141
- var import_jsx_runtime18 = require("react/jsx-runtime");
1876
+ var import_jsx_runtime15 = require("react/jsx-runtime");
2142
1877
  var MemoizedReactMarkdown = (0, import_react11.memo)(
2143
1878
  import_react_markdown.default,
2144
1879
  (prevProps, nextProps) => prevProps.children === nextProps.children && prevProps.className === nextProps.className
2145
1880
  );
2146
1881
  var Markdown = ({ content }) => {
2147
- 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 }) });
1882
+ 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 }) });
2148
1883
  };
2149
1884
  var components = {
2150
1885
  a(_a) {
2151
1886
  var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
2152
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1887
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2153
1888
  "a",
2154
1889
  __spreadProps(__spreadValues({
2155
1890
  style: { color: "blue", textDecoration: "underline" }
@@ -2164,7 +1899,7 @@ var components = {
2164
1899
  var _d = _c, { children, className, inline } = _d, props = __objRest(_d, ["children", "className", "inline"]);
2165
1900
  if (children.length) {
2166
1901
  if (children[0] == "\u258D") {
2167
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1902
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2168
1903
  "span",
2169
1904
  {
2170
1905
  style: {
@@ -2179,9 +1914,9 @@ var components = {
2179
1914
  }
2180
1915
  const match = /language-(\w+)/.exec(className || "");
2181
1916
  if (inline) {
2182
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("code", __spreadProps(__spreadValues({ className }, props), { children }));
1917
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("code", __spreadProps(__spreadValues({ className }, props), { children }));
2183
1918
  }
2184
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1919
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2185
1920
  CodeBlock,
2186
1921
  __spreadValues({
2187
1922
  language: match && match[1] || "",
@@ -2194,7 +1929,7 @@ var components = {
2194
1929
 
2195
1930
  // src/components/chat/messages/AssistantMessage.tsx
2196
1931
  var import_react12 = require("react");
2197
- var import_jsx_runtime19 = require("react/jsx-runtime");
1932
+ var import_jsx_runtime16 = require("react/jsx-runtime");
2198
1933
  var AssistantMessage = (props) => {
2199
1934
  const { icons, labels } = useChatContext();
2200
1935
  const {
@@ -2235,17 +1970,17 @@ var AssistantMessage = (props) => {
2235
1970
  onThumbsDown(message);
2236
1971
  }
2237
1972
  };
2238
- const LoadingIcon = () => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { children: icons.activityIcon });
2239
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
2240
- (message || isLoading) && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "copilotKitMessage copilotKitAssistantMessage", children: [
2241
- message && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Markdown, { content: message || "" }),
2242
- isLoading && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(LoadingIcon, {}),
2243
- message && !isLoading && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
1973
+ const LoadingIcon = () => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children: icons.activityIcon });
1974
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
1975
+ (message || isLoading) && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "copilotKitMessage copilotKitAssistantMessage", children: [
1976
+ message && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Markdown, { content: message || "" }),
1977
+ isLoading && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(LoadingIcon, {}),
1978
+ message && !isLoading && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
2244
1979
  "div",
2245
1980
  {
2246
1981
  className: `copilotKitMessageControls ${isCurrentMessage ? "currentMessage" : ""}`,
2247
1982
  children: [
2248
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1983
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2249
1984
  "button",
2250
1985
  {
2251
1986
  className: "copilotKitMessageControlButton",
@@ -2255,17 +1990,17 @@ var AssistantMessage = (props) => {
2255
1990
  children: icons.regenerateIcon
2256
1991
  }
2257
1992
  ),
2258
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1993
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2259
1994
  "button",
2260
1995
  {
2261
1996
  className: "copilotKitMessageControlButton",
2262
1997
  onClick: handleCopy,
2263
1998
  "aria-label": labels.copyToClipboard,
2264
1999
  title: labels.copyToClipboard,
2265
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { style: { fontSize: "10px", fontWeight: "bold" }, children: "\u2713" }) : icons.copyIcon
2000
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { style: { fontSize: "10px", fontWeight: "bold" }, children: "\u2713" }) : icons.copyIcon
2266
2001
  }
2267
2002
  ),
2268
- onThumbsUp && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2003
+ onThumbsUp && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2269
2004
  "button",
2270
2005
  {
2271
2006
  className: "copilotKitMessageControlButton",
@@ -2275,7 +2010,7 @@ var AssistantMessage = (props) => {
2275
2010
  children: icons.thumbsUpIcon
2276
2011
  }
2277
2012
  ),
2278
- onThumbsDown && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2013
+ onThumbsDown && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2279
2014
  "button",
2280
2015
  {
2281
2016
  className: "copilotKitMessageControlButton",
@@ -2289,15 +2024,300 @@ var AssistantMessage = (props) => {
2289
2024
  }
2290
2025
  )
2291
2026
  ] }),
2292
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { style: { marginBottom: "0.5rem" }, children: subComponent })
2027
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { style: { marginBottom: "0.5rem" }, children: subComponent })
2293
2028
  ] });
2294
2029
  };
2295
2030
 
2296
- // src/components/chat/messages/UserMessage.tsx
2031
+ // src/components/chat/messages/RenderTextMessage.tsx
2032
+ var import_jsx_runtime17 = require("react/jsx-runtime");
2033
+ function RenderTextMessage(_a) {
2034
+ var _b = _a, {
2035
+ UserMessage: UserMessage2 = UserMessage,
2036
+ AssistantMessage: AssistantMessage2 = AssistantMessage
2037
+ } = _b, props = __objRest(_b, [
2038
+ "UserMessage",
2039
+ "AssistantMessage"
2040
+ ]);
2041
+ const {
2042
+ message,
2043
+ inProgress,
2044
+ index,
2045
+ isCurrentMessage,
2046
+ onRegenerate,
2047
+ onCopy,
2048
+ onThumbsUp,
2049
+ onThumbsDown
2050
+ } = props;
2051
+ if (message.isTextMessage()) {
2052
+ if (message.role === "user") {
2053
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2054
+ UserMessage2,
2055
+ {
2056
+ "data-message-role": "user",
2057
+ message: message.content,
2058
+ rawData: message
2059
+ },
2060
+ index
2061
+ );
2062
+ } else if (message.role == "assistant") {
2063
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2064
+ AssistantMessage2,
2065
+ {
2066
+ "data-message-role": "assistant",
2067
+ message: message.content,
2068
+ rawData: message,
2069
+ isLoading: inProgress && isCurrentMessage && !message.content,
2070
+ isGenerating: inProgress && isCurrentMessage && !!message.content,
2071
+ isCurrentMessage,
2072
+ onRegenerate,
2073
+ onCopy,
2074
+ onThumbsUp,
2075
+ onThumbsDown
2076
+ },
2077
+ index
2078
+ );
2079
+ }
2080
+ }
2081
+ }
2082
+
2083
+ // src/components/chat/messages/RenderActionExecutionMessage.tsx
2084
+ var import_runtime_client_gql2 = require("@copilotkit/runtime-client-gql");
2085
+ var import_react_core6 = require("@copilotkit/react-core");
2086
+ var import_jsx_runtime18 = require("react/jsx-runtime");
2087
+ function RenderActionExecutionMessage(_a) {
2088
+ var _b = _a, {
2089
+ AssistantMessage: AssistantMessage2 = AssistantMessage
2090
+ } = _b, props = __objRest(_b, [
2091
+ "AssistantMessage"
2092
+ ]);
2093
+ const { chatComponentsCache } = (0, import_react_core6.useCopilotContext)();
2094
+ const { message, inProgress, index, isCurrentMessage, actionResult } = props;
2095
+ if (message.isActionExecutionMessage()) {
2096
+ if (chatComponentsCache.current !== null && (chatComponentsCache.current.actions[message.name] || chatComponentsCache.current.actions["*"])) {
2097
+ const render = chatComponentsCache.current.actions[message.name] || chatComponentsCache.current.actions["*"];
2098
+ if (typeof render === "string") {
2099
+ if (isCurrentMessage && inProgress) {
2100
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2101
+ AssistantMessage2,
2102
+ {
2103
+ rawData: message,
2104
+ "data-message-role": "assistant",
2105
+ isLoading: false,
2106
+ isGenerating: true,
2107
+ message: render
2108
+ },
2109
+ index
2110
+ );
2111
+ } else {
2112
+ return null;
2113
+ }
2114
+ } else {
2115
+ const args = message.arguments;
2116
+ let status = "inProgress";
2117
+ if (actionResult !== void 0) {
2118
+ status = "complete";
2119
+ } else if (message.status.code !== import_runtime_client_gql2.MessageStatusCode.Pending) {
2120
+ status = "executing";
2121
+ }
2122
+ try {
2123
+ const toRender = render({
2124
+ status,
2125
+ args,
2126
+ result: actionResult,
2127
+ name: message.name
2128
+ });
2129
+ if (!toRender && status === "complete") {
2130
+ return null;
2131
+ }
2132
+ if (typeof toRender === "string") {
2133
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2134
+ AssistantMessage2,
2135
+ {
2136
+ rawData: message,
2137
+ "data-message-role": "assistant",
2138
+ isLoading: false,
2139
+ isGenerating: false,
2140
+ message: toRender
2141
+ },
2142
+ index
2143
+ );
2144
+ } else {
2145
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2146
+ AssistantMessage2,
2147
+ {
2148
+ rawData: message,
2149
+ "data-message-role": "action-render",
2150
+ isLoading: false,
2151
+ isGenerating: false,
2152
+ subComponent: toRender
2153
+ },
2154
+ index
2155
+ );
2156
+ }
2157
+ } catch (e) {
2158
+ console.error(`Error executing render function for action ${message.name}: ${e}`);
2159
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2160
+ AssistantMessage2,
2161
+ {
2162
+ rawData: message,
2163
+ "data-message-role": "assistant",
2164
+ isLoading: false,
2165
+ isGenerating: false,
2166
+ subComponent: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "copilotKitMessage copilotKitAssistantMessage", children: [
2167
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("b", { children: [
2168
+ "\u274C Error executing render function for action ",
2169
+ message.name,
2170
+ ":"
2171
+ ] }),
2172
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("pre", { children: e instanceof Error ? e.message : String(e) })
2173
+ ] })
2174
+ },
2175
+ index
2176
+ );
2177
+ }
2178
+ }
2179
+ } else if (!inProgress || !isCurrentMessage) {
2180
+ return null;
2181
+ } else {
2182
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2183
+ AssistantMessage2,
2184
+ {
2185
+ rawData: message,
2186
+ "data-message-role": "assistant",
2187
+ isLoading: true,
2188
+ isGenerating: true
2189
+ },
2190
+ index
2191
+ );
2192
+ }
2193
+ }
2194
+ }
2195
+
2196
+ // src/components/chat/messages/RenderResultMessage.tsx
2197
+ var import_jsx_runtime19 = require("react/jsx-runtime");
2198
+ function RenderResultMessage(_a) {
2199
+ var _b = _a, {
2200
+ AssistantMessage: AssistantMessage2 = AssistantMessage
2201
+ } = _b, props = __objRest(_b, [
2202
+ "AssistantMessage"
2203
+ ]);
2204
+ const { message, inProgress, index, isCurrentMessage } = props;
2205
+ if (message.isResultMessage() && inProgress && isCurrentMessage) {
2206
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2207
+ AssistantMessage2,
2208
+ {
2209
+ "data-message-role": "assistant",
2210
+ rawData: message,
2211
+ isLoading: true,
2212
+ isGenerating: true
2213
+ },
2214
+ index
2215
+ );
2216
+ } else {
2217
+ return null;
2218
+ }
2219
+ }
2220
+
2221
+ // src/components/chat/messages/RenderAgentStateMessage.tsx
2222
+ var import_react_core7 = require("@copilotkit/react-core");
2297
2223
  var import_jsx_runtime20 = require("react/jsx-runtime");
2298
- var UserMessage = (props) => {
2299
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "copilotKitMessage copilotKitUserMessage", children: props.message });
2300
- };
2224
+ function RenderAgentStateMessage(_a) {
2225
+ var _b = _a, {
2226
+ AssistantMessage: AssistantMessage2 = AssistantMessage
2227
+ } = _b, props = __objRest(_b, [
2228
+ "AssistantMessage"
2229
+ ]);
2230
+ const { chatComponentsCache } = (0, import_react_core7.useCopilotContext)();
2231
+ const { message, inProgress, index, isCurrentMessage } = props;
2232
+ if (message.isAgentStateMessage()) {
2233
+ let render;
2234
+ if (chatComponentsCache.current !== null) {
2235
+ render = chatComponentsCache.current.coAgentStateRenders[`${message.agentName}-${message.nodeName}`] || chatComponentsCache.current.coAgentStateRenders[`${message.agentName}-global`];
2236
+ }
2237
+ if (render) {
2238
+ if (typeof render === "string") {
2239
+ if (isCurrentMessage && inProgress) {
2240
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2241
+ AssistantMessage2,
2242
+ {
2243
+ rawData: message,
2244
+ message: render,
2245
+ "data-message-role": "assistant",
2246
+ isLoading: true,
2247
+ isGenerating: true
2248
+ },
2249
+ index
2250
+ );
2251
+ } else {
2252
+ return null;
2253
+ }
2254
+ } else {
2255
+ const state = message.state;
2256
+ let status = message.active ? "inProgress" : "complete";
2257
+ const toRender = render({
2258
+ status,
2259
+ state,
2260
+ nodeName: message.nodeName
2261
+ });
2262
+ if (!toRender && status === "complete") {
2263
+ return null;
2264
+ }
2265
+ if (!toRender && isCurrentMessage && inProgress) {
2266
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2267
+ AssistantMessage2,
2268
+ {
2269
+ "data-message-role": "assistant",
2270
+ rawData: message,
2271
+ isLoading: true,
2272
+ isGenerating: true
2273
+ },
2274
+ index
2275
+ );
2276
+ } else if (!toRender) {
2277
+ return null;
2278
+ }
2279
+ if (typeof toRender === "string") {
2280
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2281
+ AssistantMessage2,
2282
+ {
2283
+ rawData: message,
2284
+ message: toRender,
2285
+ isLoading: true,
2286
+ isGenerating: true,
2287
+ "data-message-role": "assistant"
2288
+ },
2289
+ index
2290
+ );
2291
+ } else {
2292
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2293
+ AssistantMessage2,
2294
+ {
2295
+ rawData: message,
2296
+ "data-message-role": "agent-state-render",
2297
+ isLoading: false,
2298
+ isGenerating: false,
2299
+ subComponent: toRender
2300
+ },
2301
+ index
2302
+ );
2303
+ }
2304
+ }
2305
+ } else if (!inProgress || !isCurrentMessage) {
2306
+ return null;
2307
+ } else {
2308
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2309
+ AssistantMessage2,
2310
+ {
2311
+ rawData: message,
2312
+ isLoading: true,
2313
+ isGenerating: true,
2314
+ "data-message-role": "assistant"
2315
+ },
2316
+ index
2317
+ );
2318
+ }
2319
+ }
2320
+ }
2301
2321
 
2302
2322
  // src/components/chat/Suggestion.tsx
2303
2323
  var import_react_core8 = require("@copilotkit/react-core");