@copilotkit/react-ui 1.1.2 → 1.1.3-feat-runtime-remote-actions.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 (117) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +32 -37
  3. package/dist/{chunk-UJHTRHS4.mjs → chunk-36OL6SEM.mjs} +3 -2
  4. package/dist/chunk-36OL6SEM.mjs.map +1 -0
  5. package/dist/{chunk-EJ4SJ2HU.mjs → chunk-AFD5I7MW.mjs} +2 -2
  6. package/dist/chunk-AFD5I7MW.mjs.map +1 -0
  7. package/dist/{chunk-WOPUCUQK.mjs → chunk-C534T3DM.mjs} +10 -11
  8. package/dist/{chunk-WOPUCUQK.mjs.map → chunk-C534T3DM.mjs.map} +1 -1
  9. package/dist/{chunk-SE6DAYSX.mjs → chunk-FLV3J3VX.mjs} +5 -5
  10. package/dist/chunk-FLV3J3VX.mjs.map +1 -0
  11. package/dist/{chunk-LLOSOTAT.mjs → chunk-FO7Z5LAL.mjs} +6 -3
  12. package/dist/chunk-FO7Z5LAL.mjs.map +1 -0
  13. package/dist/{chunk-4Z2WDXSK.mjs → chunk-FOZVHL73.mjs} +49 -4
  14. package/dist/chunk-FOZVHL73.mjs.map +1 -0
  15. package/dist/{chunk-PF5HUDUP.mjs → chunk-H7TM5JE6.mjs} +54 -2
  16. package/dist/chunk-H7TM5JE6.mjs.map +1 -0
  17. package/dist/{chunk-SWWFXRFF.mjs → chunk-HR36Y2FQ.mjs} +4 -4
  18. package/dist/chunk-HR36Y2FQ.mjs.map +1 -0
  19. package/dist/{chunk-D6QNFZXK.mjs → chunk-I4QG2ZZU.mjs} +4 -2
  20. package/dist/chunk-I4QG2ZZU.mjs.map +1 -0
  21. package/dist/{chunk-KSCXPA74.mjs → chunk-WCPLXRZX.mjs} +1 -1
  22. package/dist/chunk-WCPLXRZX.mjs.map +1 -0
  23. package/dist/{chunk-UC3Y7MWX.mjs → chunk-YOH25I6N.mjs} +5 -5
  24. package/dist/chunk-YOH25I6N.mjs.map +1 -0
  25. package/dist/components/chat/Button.d.ts +2 -1
  26. package/dist/components/chat/Button.js +4 -4
  27. package/dist/components/chat/Button.js.map +1 -1
  28. package/dist/components/chat/Button.mjs +1 -1
  29. package/dist/components/chat/Chat.d.ts +4 -49
  30. package/dist/components/chat/Chat.js +101 -5
  31. package/dist/components/chat/Chat.js.map +1 -1
  32. package/dist/components/chat/Chat.mjs +5 -5
  33. package/dist/components/chat/ChatContext.d.ts +2 -1
  34. package/dist/components/chat/Header.d.ts +2 -1
  35. package/dist/components/chat/Header.js +4 -4
  36. package/dist/components/chat/Header.js.map +1 -1
  37. package/dist/components/chat/Header.mjs +1 -1
  38. package/dist/components/chat/Icons.d.ts +14 -13
  39. package/dist/components/chat/Input.d.ts +2 -1
  40. package/dist/components/chat/Markdown.d.ts +3 -1
  41. package/dist/components/chat/Messages.d.ts +2 -1
  42. package/dist/components/chat/Messages.js +46 -2
  43. package/dist/components/chat/Messages.js.map +1 -1
  44. package/dist/components/chat/Messages.mjs +1 -1
  45. package/dist/components/chat/Modal.d.ts +2 -1
  46. package/dist/components/chat/Modal.js +114 -20
  47. package/dist/components/chat/Modal.js.map +1 -1
  48. package/dist/components/chat/Modal.mjs +9 -9
  49. package/dist/components/chat/Popup.d.ts +2 -48
  50. package/dist/components/chat/Popup.js +114 -20
  51. package/dist/components/chat/Popup.js.map +1 -1
  52. package/dist/components/chat/Popup.mjs +10 -10
  53. package/dist/components/chat/Response.d.ts +2 -1
  54. package/dist/components/chat/Sidebar.d.ts +2 -1
  55. package/dist/components/chat/Sidebar.js +115 -20
  56. package/dist/components/chat/Sidebar.js.map +1 -1
  57. package/dist/components/chat/Sidebar.mjs +10 -10
  58. package/dist/components/chat/Suggestion.d.ts +2 -1
  59. package/dist/components/chat/Suggestion.js.map +1 -1
  60. package/dist/components/chat/Suggestion.mjs +1 -1
  61. package/dist/components/chat/Window.d.ts +2 -1
  62. package/dist/components/chat/Window.js +23 -8
  63. package/dist/components/chat/Window.js.map +1 -1
  64. package/dist/components/chat/Window.mjs +3 -1
  65. package/dist/components/chat/index.d.ts +1 -0
  66. package/dist/components/chat/index.js +115 -20
  67. package/dist/components/chat/index.js.map +1 -1
  68. package/dist/components/chat/index.mjs +11 -11
  69. package/dist/components/chat/props.d.ts +0 -6
  70. package/dist/components/chat/props.js.map +1 -1
  71. package/dist/components/dev-console/console.d.ts +4 -2
  72. package/dist/components/dev-console/console.js +52 -0
  73. package/dist/components/dev-console/console.js.map +1 -1
  74. package/dist/components/dev-console/console.mjs +2 -2
  75. package/dist/components/dev-console/icons.d.ts +7 -5
  76. package/dist/components/dev-console/index.d.ts +1 -0
  77. package/dist/components/dev-console/index.js +52 -0
  78. package/dist/components/dev-console/index.js.map +1 -1
  79. package/dist/components/dev-console/index.mjs +2 -2
  80. package/dist/components/dev-console/utils.d.ts +2 -1
  81. package/dist/components/dev-console/utils.js +53 -0
  82. package/dist/components/dev-console/utils.js.map +1 -1
  83. package/dist/components/dev-console/utils.mjs +3 -1
  84. package/dist/components/index.d.ts +1 -0
  85. package/dist/components/index.js +115 -20
  86. package/dist/components/index.js.map +1 -1
  87. package/dist/components/index.mjs +11 -11
  88. package/dist/index.css +5 -4
  89. package/dist/index.css.map +1 -1
  90. package/dist/index.d.ts +1 -0
  91. package/dist/index.js +115 -20
  92. package/dist/index.js.map +1 -1
  93. package/dist/index.mjs +11 -11
  94. package/package.json +8 -8
  95. package/src/components/chat/Button.tsx +4 -8
  96. package/src/components/chat/Chat.tsx +2 -1
  97. package/src/components/chat/Header.tsx +4 -4
  98. package/src/components/chat/Messages.tsx +83 -2
  99. package/src/components/chat/Modal.tsx +4 -5
  100. package/src/components/chat/Popup.tsx +1 -0
  101. package/src/components/chat/Sidebar.tsx +2 -0
  102. package/src/components/chat/Suggestion.tsx +2 -0
  103. package/src/components/chat/Window.tsx +3 -2
  104. package/src/components/chat/props.ts +2 -10
  105. package/src/components/dev-console/console.tsx +6 -0
  106. package/src/components/dev-console/utils.ts +56 -0
  107. package/src/css/markdown.css +5 -5
  108. package/dist/chunk-4Z2WDXSK.mjs.map +0 -1
  109. package/dist/chunk-D6QNFZXK.mjs.map +0 -1
  110. package/dist/chunk-EJ4SJ2HU.mjs.map +0 -1
  111. package/dist/chunk-KSCXPA74.mjs.map +0 -1
  112. package/dist/chunk-LLOSOTAT.mjs.map +0 -1
  113. package/dist/chunk-PF5HUDUP.mjs.map +0 -1
  114. package/dist/chunk-SE6DAYSX.mjs.map +0 -1
  115. package/dist/chunk-SWWFXRFF.mjs.map +0 -1
  116. package/dist/chunk-UC3Y7MWX.mjs.map +0 -1
  117. package/dist/chunk-UJHTRHS4.mjs.map +0 -1
@@ -379,14 +379,13 @@ var ChatContextProvider = ({
379
379
  var import_react2 = __toESM(require("react"));
380
380
  var import_jsx_runtime3 = require("react/jsx-runtime");
381
381
  var Window = ({
382
- open,
383
- setOpen,
384
382
  children,
385
383
  clickOutsideToClose,
386
384
  shortcut,
387
385
  hitEscapeToClose
388
386
  }) => {
389
387
  const windowRef = import_react2.default.useRef(null);
388
+ const { open, setOpen } = useChatContext();
390
389
  const handleClickOutside = (0, import_react2.useCallback)(
391
390
  (event) => {
392
391
  var _a;
@@ -488,16 +487,16 @@ function isMacOS() {
488
487
 
489
488
  // src/components/chat/Button.tsx
490
489
  var import_jsx_runtime4 = require("react/jsx-runtime");
491
- var Button = ({ open, setOpen }) => {
492
- const context = useChatContext();
490
+ var Button = ({}) => {
491
+ const { open, setOpen, icons } = useChatContext();
493
492
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { onClick: () => setOpen(!open), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
494
493
  "button",
495
494
  {
496
495
  className: `copilotKitButton ${open ? "open" : ""}`,
497
496
  "aria-label": open ? "Close Chat" : "Open Chat",
498
497
  children: [
499
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "copilotKitButtonIcon copilotKitButtonIconOpen", children: context.icons.openIcon }),
500
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "copilotKitButtonIcon copilotKitButtonIconClose", children: context.icons.closeIcon })
498
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "copilotKitButtonIcon copilotKitButtonIconOpen", children: icons.openIcon }),
499
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "copilotKitButtonIcon copilotKitButtonIconClose", children: icons.closeIcon })
501
500
  ]
502
501
  }
503
502
  ) });
@@ -505,11 +504,11 @@ var Button = ({ open, setOpen }) => {
505
504
 
506
505
  // src/components/chat/Header.tsx
507
506
  var import_jsx_runtime5 = require("react/jsx-runtime");
508
- var Header = ({ setOpen }) => {
509
- const context = useChatContext();
507
+ var Header = ({}) => {
508
+ const { setOpen, icons, labels } = useChatContext();
510
509
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "copilotKitHeader", children: [
511
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { children: context.labels.title }),
512
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("button", { onClick: () => setOpen(false), "aria-label": "Close", children: context.icons.headerCloseIcon })
510
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { children: labels.title }),
511
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("button", { onClick: () => setOpen(false), "aria-label": "Close", children: icons.headerCloseIcon })
513
512
  ] });
514
513
  };
515
514
 
@@ -1027,8 +1026,8 @@ var Messages = ({ messages, inProgress, children }) => {
1027
1026
  } else if (message instanceof import_runtime_client_gql.TextMessage && message.role == "assistant") {
1028
1027
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: isCurrentMessage && inProgress && !message.content ? context.icons.spinnerIcon : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Markdown, { content: message.content }) }, index);
1029
1028
  } else if (message instanceof import_runtime_client_gql.ActionExecutionMessage) {
1030
- if (chatComponentsCache.current !== null && chatComponentsCache.current[message.name]) {
1031
- const render = chatComponentsCache.current[message.name];
1029
+ if (chatComponentsCache.current !== null && chatComponentsCache.current.actions[message.name]) {
1030
+ const render = chatComponentsCache.current.actions[message.name];
1032
1031
  if (typeof render === "string") {
1033
1032
  if (isCurrentMessage && inProgress) {
1034
1033
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
@@ -1070,6 +1069,50 @@ var Messages = ({ messages, inProgress, children }) => {
1070
1069
  } else {
1071
1070
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
1072
1071
  }
1072
+ } else if (message instanceof import_runtime_client_gql.AgentStateMessage) {
1073
+ let render;
1074
+ if (chatComponentsCache.current !== null) {
1075
+ render = chatComponentsCache.current.coagentActions[`${message.agentName}-${message.nodeName}`] || chatComponentsCache.current.coagentActions[`${message.agentName}-global`];
1076
+ }
1077
+ if (render) {
1078
+ if (typeof render === "string") {
1079
+ if (isCurrentMessage && inProgress) {
1080
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
1081
+ context.icons.spinnerIcon,
1082
+ " ",
1083
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "inProgressLabel", children: render })
1084
+ ] }, index);
1085
+ } else {
1086
+ return null;
1087
+ }
1088
+ } else {
1089
+ const state = message.state;
1090
+ let status = message.active ? "inProgress" : "complete";
1091
+ const toRender = render({
1092
+ status,
1093
+ state,
1094
+ nodeName: message.nodeName
1095
+ });
1096
+ if (!toRender && status === "complete") {
1097
+ return null;
1098
+ }
1099
+ if (typeof toRender === "string") {
1100
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
1101
+ isCurrentMessage && inProgress && context.icons.spinnerIcon,
1102
+ " ",
1103
+ toRender
1104
+ ] }, index);
1105
+ } else {
1106
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "copilotKitCustomAssistantMessage", children: toRender }, index);
1107
+ }
1108
+ }
1109
+ } else if (!inProgress || !isCurrentMessage) {
1110
+ return null;
1111
+ } else {
1112
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
1113
+ }
1114
+ } else if (message instanceof import_runtime_client_gql.ResultMessage && inProgress && isCurrentMessage) {
1115
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
1073
1116
  }
1074
1117
  }),
1075
1118
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("footer", { ref: messagesEndRef, children })
@@ -1420,11 +1463,13 @@ var reloadSuggestions = (context, chatSuggestionConfiguration, setCurrentSuggest
1420
1463
  // src/components/chat/Chat.tsx
1421
1464
  var import_react11 = __toESM(require("react"));
1422
1465
  var import_react_core7 = require("@copilotkit/react-core");
1423
- var import_runtime_client_gql4 = require("@copilotkit/runtime-client-gql");
1466
+ var import_runtime_client_gql6 = require("@copilotkit/runtime-client-gql");
1424
1467
  var import_shared3 = require("@copilotkit/shared");
1425
1468
 
1426
1469
  // src/components/dev-console/utils.ts
1427
1470
  var import_react_core5 = require("@copilotkit/react-core");
1471
+ var import_runtime_client_gql4 = require("@copilotkit/runtime-client-gql");
1472
+ var import_runtime_client_gql5 = require("@copilotkit/runtime-client-gql");
1428
1473
  function shouldShowDevConsole(showDevConsole) {
1429
1474
  if (typeof showDevConsole === "boolean") {
1430
1475
  return showDevConsole;
@@ -1485,6 +1530,7 @@ function getPublishedCopilotKitVersion(current, forceCheck = false) {
1485
1530
  });
1486
1531
  }
1487
1532
  function logReadables(context) {
1533
+ console.log("%cCurrent Readables:", "font-size: 16px; font-weight: bold;");
1488
1534
  const readables = context.getContextString([], import_react_core5.defaultCopilotContextCategories).trim();
1489
1535
  if (readables.length === 0) {
1490
1536
  console.log("No readables found");
@@ -1493,6 +1539,7 @@ function logReadables(context) {
1493
1539
  console.log(readables);
1494
1540
  }
1495
1541
  function logActions(context) {
1542
+ console.log("%cCurrent Actions:", "font-size: 16px; font-weight: bold;");
1496
1543
  if (Object.values(context.actions).length === 0) {
1497
1544
  console.log("No actions found");
1498
1545
  return;
@@ -1505,6 +1552,53 @@ function logActions(context) {
1505
1552
  console.groupEnd();
1506
1553
  }
1507
1554
  }
1555
+ function logMessages(context) {
1556
+ console.log("%cCurrent Messages:", "font-size: 16px; font-weight: bold;");
1557
+ if (context.messages.length === 0) {
1558
+ console.log("No messages found");
1559
+ return;
1560
+ }
1561
+ const tableData = context.messages.map((message) => {
1562
+ if (message instanceof import_runtime_client_gql4.TextMessage) {
1563
+ return {
1564
+ id: message.id,
1565
+ type: "TextMessage",
1566
+ role: message.role,
1567
+ name: void 0,
1568
+ scope: void 0,
1569
+ content: message.content
1570
+ };
1571
+ } else if (message instanceof import_runtime_client_gql4.ActionExecutionMessage) {
1572
+ return {
1573
+ id: message.id,
1574
+ type: "ActionExecutionMessage",
1575
+ role: void 0,
1576
+ name: message.name,
1577
+ scope: message.scope,
1578
+ content: message.arguments
1579
+ };
1580
+ } else if (message instanceof import_runtime_client_gql4.ResultMessage) {
1581
+ return {
1582
+ id: message.id,
1583
+ type: "ResultMessage",
1584
+ role: void 0,
1585
+ name: message.actionName,
1586
+ scope: message.actionExecutionId,
1587
+ content: message.result
1588
+ };
1589
+ } else if (message instanceof import_runtime_client_gql5.AgentStateMessage) {
1590
+ return {
1591
+ id: message.id,
1592
+ type: `AgentStateMessage (running: ${message.running})`,
1593
+ role: message.role,
1594
+ name: void 0,
1595
+ scope: message.threadId,
1596
+ content: message.state
1597
+ };
1598
+ }
1599
+ });
1600
+ console.table(tableData);
1601
+ }
1508
1602
 
1509
1603
  // src/components/dev-console/console.tsx
1510
1604
  var import_react_core6 = require("@copilotkit/react-core");
@@ -1779,6 +1873,7 @@ function DebugMenuButton({
1779
1873
  children: [
1780
1874
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react10.MenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("button", { className: "copilotKitDebugMenuItem", onClick: () => logReadables(context), children: "Log Readables" }) }),
1781
1875
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react10.MenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("button", { className: "copilotKitDebugMenuItem", onClick: () => logActions(context), children: "Log Actions" }) }),
1876
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react10.MenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("button", { className: "copilotKitDebugMenuItem", onClick: () => logMessages(context), children: "Log Messages" }) }),
1782
1877
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react10.MenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("button", { className: "copilotKitDebugMenuItem", onClick: () => checkForUpdates(true), children: "Check for Updates" }) }),
1783
1878
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("hr", {}),
1784
1879
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react10.MenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("button", { className: "copilotKitDebugMenuItem", onClick: () => setShowDevConsole(false), children: "Hide Dev Console" }) })
@@ -1897,9 +1992,9 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) =>
1897
1992
  const sendMessage = (messageContent) => __async(void 0, null, function* () {
1898
1993
  abortSuggestions();
1899
1994
  setCurrentSuggestions([]);
1900
- const message = new import_runtime_client_gql4.TextMessage({
1995
+ const message = new import_runtime_client_gql6.TextMessage({
1901
1996
  content: messageContent,
1902
- role: import_runtime_client_gql4.Role.User
1997
+ role: import_runtime_client_gql6.Role.User
1903
1998
  });
1904
1999
  appendMessage(message);
1905
2000
  if (onSubmitMessage) {
@@ -1947,23 +2042,22 @@ var CopilotModal = ({
1947
2042
  }) => {
1948
2043
  const [openState, setOpenState] = import_react12.default.useState(defaultOpen);
1949
2044
  const setOpen = (open) => {
2045
+ console.log("setOpen!!", open);
1950
2046
  onSetOpen == null ? void 0 : onSetOpen(open);
1951
2047
  setOpenState(open);
1952
2048
  };
1953
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(ChatContextProvider, { icons, labels, open: openState, setOpen: setOpenState, children: [
2049
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(ChatContextProvider, { icons, labels, open: openState, setOpen, children: [
1954
2050
  children,
1955
2051
  /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className, children: [
1956
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button2, { open: openState, setOpen }),
2052
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button2, {}),
1957
2053
  /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1958
2054
  Window2,
1959
2055
  {
1960
- open: openState,
1961
- setOpen,
1962
2056
  clickOutsideToClose,
1963
2057
  shortcut,
1964
2058
  hitEscapeToClose,
1965
2059
  children: [
1966
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Header2, { open: openState, setOpen }),
2060
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Header2, {}),
1967
2061
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1968
2062
  CopilotChat,
1969
2063
  {