@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
@@ -384,14 +384,13 @@ var ChatContextProvider = ({
384
384
  var import_react2 = __toESM(require("react"));
385
385
  var import_jsx_runtime3 = require("react/jsx-runtime");
386
386
  var Window = ({
387
- open,
388
- setOpen,
389
387
  children,
390
388
  clickOutsideToClose,
391
389
  shortcut,
392
390
  hitEscapeToClose
393
391
  }) => {
394
392
  const windowRef = import_react2.default.useRef(null);
393
+ const { open, setOpen } = useChatContext();
395
394
  const handleClickOutside = (0, import_react2.useCallback)(
396
395
  (event) => {
397
396
  var _a;
@@ -493,16 +492,16 @@ function isMacOS() {
493
492
 
494
493
  // src/components/chat/Button.tsx
495
494
  var import_jsx_runtime4 = require("react/jsx-runtime");
496
- var Button = ({ open, setOpen }) => {
497
- const context = useChatContext();
495
+ var Button = ({}) => {
496
+ const { open, setOpen, icons } = useChatContext();
498
497
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { onClick: () => setOpen(!open), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
499
498
  "button",
500
499
  {
501
500
  className: `copilotKitButton ${open ? "open" : ""}`,
502
501
  "aria-label": open ? "Close Chat" : "Open Chat",
503
502
  children: [
504
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "copilotKitButtonIcon copilotKitButtonIconOpen", children: context.icons.openIcon }),
505
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "copilotKitButtonIcon copilotKitButtonIconClose", children: context.icons.closeIcon })
503
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "copilotKitButtonIcon copilotKitButtonIconOpen", children: icons.openIcon }),
504
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "copilotKitButtonIcon copilotKitButtonIconClose", children: icons.closeIcon })
506
505
  ]
507
506
  }
508
507
  ) });
@@ -510,11 +509,11 @@ var Button = ({ open, setOpen }) => {
510
509
 
511
510
  // src/components/chat/Header.tsx
512
511
  var import_jsx_runtime5 = require("react/jsx-runtime");
513
- var Header = ({ setOpen }) => {
514
- const context = useChatContext();
512
+ var Header = ({}) => {
513
+ const { setOpen, icons, labels } = useChatContext();
515
514
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "copilotKitHeader", children: [
516
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { children: context.labels.title }),
517
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("button", { onClick: () => setOpen(false), "aria-label": "Close", children: context.icons.headerCloseIcon })
515
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { children: labels.title }),
516
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("button", { onClick: () => setOpen(false), "aria-label": "Close", children: icons.headerCloseIcon })
518
517
  ] });
519
518
  };
520
519
 
@@ -1032,8 +1031,8 @@ var Messages = ({ messages, inProgress, children }) => {
1032
1031
  } else if (message instanceof import_runtime_client_gql.TextMessage && message.role == "assistant") {
1033
1032
  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);
1034
1033
  } else if (message instanceof import_runtime_client_gql.ActionExecutionMessage) {
1035
- if (chatComponentsCache.current !== null && chatComponentsCache.current[message.name]) {
1036
- const render = chatComponentsCache.current[message.name];
1034
+ if (chatComponentsCache.current !== null && chatComponentsCache.current.actions[message.name]) {
1035
+ const render = chatComponentsCache.current.actions[message.name];
1037
1036
  if (typeof render === "string") {
1038
1037
  if (isCurrentMessage && inProgress) {
1039
1038
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
@@ -1075,6 +1074,50 @@ var Messages = ({ messages, inProgress, children }) => {
1075
1074
  } else {
1076
1075
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
1077
1076
  }
1077
+ } else if (message instanceof import_runtime_client_gql.AgentStateMessage) {
1078
+ let render;
1079
+ if (chatComponentsCache.current !== null) {
1080
+ render = chatComponentsCache.current.coagentActions[`${message.agentName}-${message.nodeName}`] || chatComponentsCache.current.coagentActions[`${message.agentName}-global`];
1081
+ }
1082
+ if (render) {
1083
+ if (typeof render === "string") {
1084
+ if (isCurrentMessage && inProgress) {
1085
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
1086
+ context.icons.spinnerIcon,
1087
+ " ",
1088
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "inProgressLabel", children: render })
1089
+ ] }, index);
1090
+ } else {
1091
+ return null;
1092
+ }
1093
+ } else {
1094
+ const state = message.state;
1095
+ let status = message.active ? "inProgress" : "complete";
1096
+ const toRender = render({
1097
+ status,
1098
+ state,
1099
+ nodeName: message.nodeName
1100
+ });
1101
+ if (!toRender && status === "complete") {
1102
+ return null;
1103
+ }
1104
+ if (typeof toRender === "string") {
1105
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
1106
+ isCurrentMessage && inProgress && context.icons.spinnerIcon,
1107
+ " ",
1108
+ toRender
1109
+ ] }, index);
1110
+ } else {
1111
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "copilotKitCustomAssistantMessage", children: toRender }, index);
1112
+ }
1113
+ }
1114
+ } else if (!inProgress || !isCurrentMessage) {
1115
+ return null;
1116
+ } else {
1117
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
1118
+ }
1119
+ } else if (message instanceof import_runtime_client_gql.ResultMessage && inProgress && isCurrentMessage) {
1120
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
1078
1121
  }
1079
1122
  }),
1080
1123
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("footer", { ref: messagesEndRef, children })
@@ -1425,11 +1468,13 @@ var reloadSuggestions = (context, chatSuggestionConfiguration, setCurrentSuggest
1425
1468
  // src/components/chat/Chat.tsx
1426
1469
  var import_react11 = __toESM(require("react"));
1427
1470
  var import_react_core7 = require("@copilotkit/react-core");
1428
- var import_runtime_client_gql4 = require("@copilotkit/runtime-client-gql");
1471
+ var import_runtime_client_gql6 = require("@copilotkit/runtime-client-gql");
1429
1472
  var import_shared3 = require("@copilotkit/shared");
1430
1473
 
1431
1474
  // src/components/dev-console/utils.ts
1432
1475
  var import_react_core5 = require("@copilotkit/react-core");
1476
+ var import_runtime_client_gql4 = require("@copilotkit/runtime-client-gql");
1477
+ var import_runtime_client_gql5 = require("@copilotkit/runtime-client-gql");
1433
1478
  function shouldShowDevConsole(showDevConsole) {
1434
1479
  if (typeof showDevConsole === "boolean") {
1435
1480
  return showDevConsole;
@@ -1490,6 +1535,7 @@ function getPublishedCopilotKitVersion(current, forceCheck = false) {
1490
1535
  });
1491
1536
  }
1492
1537
  function logReadables(context) {
1538
+ console.log("%cCurrent Readables:", "font-size: 16px; font-weight: bold;");
1493
1539
  const readables = context.getContextString([], import_react_core5.defaultCopilotContextCategories).trim();
1494
1540
  if (readables.length === 0) {
1495
1541
  console.log("No readables found");
@@ -1498,6 +1544,7 @@ function logReadables(context) {
1498
1544
  console.log(readables);
1499
1545
  }
1500
1546
  function logActions(context) {
1547
+ console.log("%cCurrent Actions:", "font-size: 16px; font-weight: bold;");
1501
1548
  if (Object.values(context.actions).length === 0) {
1502
1549
  console.log("No actions found");
1503
1550
  return;
@@ -1510,6 +1557,53 @@ function logActions(context) {
1510
1557
  console.groupEnd();
1511
1558
  }
1512
1559
  }
1560
+ function logMessages(context) {
1561
+ console.log("%cCurrent Messages:", "font-size: 16px; font-weight: bold;");
1562
+ if (context.messages.length === 0) {
1563
+ console.log("No messages found");
1564
+ return;
1565
+ }
1566
+ const tableData = context.messages.map((message) => {
1567
+ if (message instanceof import_runtime_client_gql4.TextMessage) {
1568
+ return {
1569
+ id: message.id,
1570
+ type: "TextMessage",
1571
+ role: message.role,
1572
+ name: void 0,
1573
+ scope: void 0,
1574
+ content: message.content
1575
+ };
1576
+ } else if (message instanceof import_runtime_client_gql4.ActionExecutionMessage) {
1577
+ return {
1578
+ id: message.id,
1579
+ type: "ActionExecutionMessage",
1580
+ role: void 0,
1581
+ name: message.name,
1582
+ scope: message.scope,
1583
+ content: message.arguments
1584
+ };
1585
+ } else if (message instanceof import_runtime_client_gql4.ResultMessage) {
1586
+ return {
1587
+ id: message.id,
1588
+ type: "ResultMessage",
1589
+ role: void 0,
1590
+ name: message.actionName,
1591
+ scope: message.actionExecutionId,
1592
+ content: message.result
1593
+ };
1594
+ } else if (message instanceof import_runtime_client_gql5.AgentStateMessage) {
1595
+ return {
1596
+ id: message.id,
1597
+ type: `AgentStateMessage (running: ${message.running})`,
1598
+ role: message.role,
1599
+ name: void 0,
1600
+ scope: message.threadId,
1601
+ content: message.state
1602
+ };
1603
+ }
1604
+ });
1605
+ console.table(tableData);
1606
+ }
1513
1607
 
1514
1608
  // src/components/dev-console/console.tsx
1515
1609
  var import_react_core6 = require("@copilotkit/react-core");
@@ -1784,6 +1878,7 @@ function DebugMenuButton({
1784
1878
  children: [
1785
1879
  /* @__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" }) }),
1786
1880
  /* @__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" }) }),
1881
+ /* @__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" }) }),
1787
1882
  /* @__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" }) }),
1788
1883
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("hr", {}),
1789
1884
  /* @__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" }) })
@@ -1902,9 +1997,9 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) =>
1902
1997
  const sendMessage = (messageContent) => __async(void 0, null, function* () {
1903
1998
  abortSuggestions();
1904
1999
  setCurrentSuggestions([]);
1905
- const message = new import_runtime_client_gql4.TextMessage({
2000
+ const message = new import_runtime_client_gql6.TextMessage({
1906
2001
  content: messageContent,
1907
- role: import_runtime_client_gql4.Role.User
2002
+ role: import_runtime_client_gql6.Role.User
1908
2003
  });
1909
2004
  appendMessage(message);
1910
2005
  if (onSubmitMessage) {
@@ -1952,23 +2047,22 @@ var CopilotModal = ({
1952
2047
  }) => {
1953
2048
  const [openState, setOpenState] = import_react12.default.useState(defaultOpen);
1954
2049
  const setOpen = (open) => {
2050
+ console.log("setOpen!!", open);
1955
2051
  onSetOpen == null ? void 0 : onSetOpen(open);
1956
2052
  setOpenState(open);
1957
2053
  };
1958
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(ChatContextProvider, { icons, labels, open: openState, setOpen: setOpenState, children: [
2054
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(ChatContextProvider, { icons, labels, open: openState, setOpen, children: [
1959
2055
  children,
1960
2056
  /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className, children: [
1961
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button2, { open: openState, setOpen }),
2057
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button2, {}),
1962
2058
  /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1963
2059
  Window2,
1964
2060
  {
1965
- open: openState,
1966
- setOpen,
1967
2061
  clickOutsideToClose,
1968
2062
  shortcut,
1969
2063
  hitEscapeToClose,
1970
2064
  children: [
1971
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Header2, { open: openState, setOpen }),
2065
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Header2, {}),
1972
2066
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1973
2067
  CopilotChat,
1974
2068
  {
@@ -2010,6 +2104,7 @@ function CopilotSidebar(props) {
2010
2104
  );
2011
2105
  const onSetOpen = (open) => {
2012
2106
  var _a;
2107
+ console.log("onSetOpen", open);
2013
2108
  (_a = props.onSetOpen) == null ? void 0 : _a.call(props, open);
2014
2109
  setExpandedClassName(open ? "sidebarExpanded" : "");
2015
2110
  };