@copilotkit/react-ui 1.2.0 → 1.2.2-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 (59) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/components/chat/Chat.d.mts +1 -1
  3. package/dist/components/chat/Chat.d.ts +1 -1
  4. package/dist/components/chat/Chat.js +101 -5
  5. package/dist/components/chat/Chat.js.map +1 -1
  6. package/dist/components/chat/Chat.mjs +108 -11
  7. package/dist/components/chat/Chat.mjs.map +1 -1
  8. package/dist/components/chat/Messages.js +46 -2
  9. package/dist/components/chat/Messages.js.map +1 -1
  10. package/dist/components/chat/Messages.mjs +48 -3
  11. package/dist/components/chat/Messages.mjs.map +1 -1
  12. package/dist/components/chat/Modal.js +101 -6
  13. package/dist/components/chat/Modal.js.map +1 -1
  14. package/dist/components/chat/Modal.mjs +108 -12
  15. package/dist/components/chat/Modal.mjs.map +1 -1
  16. package/dist/components/chat/Popup.js +101 -6
  17. package/dist/components/chat/Popup.js.map +1 -1
  18. package/dist/components/chat/Popup.mjs +108 -12
  19. package/dist/components/chat/Popup.mjs.map +1 -1
  20. package/dist/components/chat/Sidebar.js +101 -7
  21. package/dist/components/chat/Sidebar.js.map +1 -1
  22. package/dist/components/chat/Sidebar.mjs +108 -13
  23. package/dist/components/chat/Sidebar.mjs.map +1 -1
  24. package/dist/components/chat/Suggestion.js.map +1 -1
  25. package/dist/components/chat/Suggestion.mjs.map +1 -1
  26. package/dist/components/chat/index.js +101 -7
  27. package/dist/components/chat/index.js.map +1 -1
  28. package/dist/components/chat/index.mjs +108 -13
  29. package/dist/components/chat/index.mjs.map +1 -1
  30. package/dist/components/dev-console/console.js +52 -0
  31. package/dist/components/dev-console/console.js.map +1 -1
  32. package/dist/components/dev-console/console.mjs +52 -0
  33. package/dist/components/dev-console/console.mjs.map +1 -1
  34. package/dist/components/dev-console/index.js +52 -0
  35. package/dist/components/dev-console/index.js.map +1 -1
  36. package/dist/components/dev-console/index.mjs +52 -0
  37. package/dist/components/dev-console/index.mjs.map +1 -1
  38. package/dist/components/dev-console/utils.d.mts +2 -1
  39. package/dist/components/dev-console/utils.d.ts +2 -1
  40. package/dist/components/dev-console/utils.js +53 -0
  41. package/dist/components/dev-console/utils.js.map +1 -1
  42. package/dist/components/dev-console/utils.mjs +52 -0
  43. package/dist/components/dev-console/utils.mjs.map +1 -1
  44. package/dist/components/index.js +101 -7
  45. package/dist/components/index.js.map +1 -1
  46. package/dist/components/index.mjs +108 -13
  47. package/dist/components/index.mjs.map +1 -1
  48. package/dist/index.js +101 -7
  49. package/dist/index.js.map +1 -1
  50. package/dist/index.mjs +110 -15
  51. package/dist/index.mjs.map +1 -1
  52. package/package.json +7 -7
  53. package/src/components/chat/Chat.tsx +1 -1
  54. package/src/components/chat/Messages.tsx +83 -2
  55. package/src/components/chat/Modal.tsx +0 -1
  56. package/src/components/chat/Sidebar.tsx +0 -1
  57. package/src/components/chat/Suggestion.tsx +2 -0
  58. package/src/components/dev-console/console.tsx +6 -0
  59. package/src/components/dev-console/utils.ts +56 -0
package/dist/index.mjs CHANGED
@@ -966,7 +966,8 @@ import {
966
966
  ActionExecutionMessage,
967
967
  ResultMessage,
968
968
  TextMessage,
969
- Role
969
+ Role,
970
+ AgentStateMessage
970
971
  } from "@copilotkit/runtime-client-gql";
971
972
  import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
972
973
  var Messages = ({ messages, inProgress, children }) => {
@@ -1008,8 +1009,8 @@ var Messages = ({ messages, inProgress, children }) => {
1008
1009
  } else if (message instanceof TextMessage && message.role == "assistant") {
1009
1010
  return /* @__PURE__ */ jsx8("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: isCurrentMessage && inProgress && !message.content ? context.icons.spinnerIcon : /* @__PURE__ */ jsx8(Markdown, { content: message.content }) }, index);
1010
1011
  } else if (message instanceof ActionExecutionMessage) {
1011
- if (chatComponentsCache.current !== null && chatComponentsCache.current[message.name]) {
1012
- const render = chatComponentsCache.current[message.name];
1012
+ if (chatComponentsCache.current !== null && chatComponentsCache.current.actions[message.name]) {
1013
+ const render = chatComponentsCache.current.actions[message.name];
1013
1014
  if (typeof render === "string") {
1014
1015
  if (isCurrentMessage && inProgress) {
1015
1016
  return /* @__PURE__ */ jsxs5("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
@@ -1051,6 +1052,50 @@ var Messages = ({ messages, inProgress, children }) => {
1051
1052
  } else {
1052
1053
  return /* @__PURE__ */ jsx8("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
1053
1054
  }
1055
+ } else if (message instanceof AgentStateMessage) {
1056
+ let render;
1057
+ if (chatComponentsCache.current !== null) {
1058
+ render = chatComponentsCache.current.coagentActions[`${message.agentName}-${message.nodeName}`] || chatComponentsCache.current.coagentActions[`${message.agentName}-global`];
1059
+ }
1060
+ if (render) {
1061
+ if (typeof render === "string") {
1062
+ if (isCurrentMessage && inProgress) {
1063
+ return /* @__PURE__ */ jsxs5("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
1064
+ context.icons.spinnerIcon,
1065
+ " ",
1066
+ /* @__PURE__ */ jsx8("span", { className: "inProgressLabel", children: render })
1067
+ ] }, index);
1068
+ } else {
1069
+ return null;
1070
+ }
1071
+ } else {
1072
+ const state = message.state;
1073
+ let status = message.active ? "inProgress" : "complete";
1074
+ const toRender = render({
1075
+ status,
1076
+ state,
1077
+ nodeName: message.nodeName
1078
+ });
1079
+ if (!toRender && status === "complete") {
1080
+ return null;
1081
+ }
1082
+ if (typeof toRender === "string") {
1083
+ return /* @__PURE__ */ jsxs5("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
1084
+ isCurrentMessage && inProgress && context.icons.spinnerIcon,
1085
+ " ",
1086
+ toRender
1087
+ ] }, index);
1088
+ } else {
1089
+ return /* @__PURE__ */ jsx8("div", { className: "copilotKitCustomAssistantMessage", children: toRender }, index);
1090
+ }
1091
+ }
1092
+ } else if (!inProgress || !isCurrentMessage) {
1093
+ return null;
1094
+ } else {
1095
+ return /* @__PURE__ */ jsx8("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
1096
+ }
1097
+ } else if (message instanceof ResultMessage && inProgress && isCurrentMessage) {
1098
+ return /* @__PURE__ */ jsx8("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
1054
1099
  }
1055
1100
  }),
1056
1101
  /* @__PURE__ */ jsx8("footer", { ref: messagesEndRef, children })
@@ -1400,12 +1445,14 @@ var reloadSuggestions = (context, chatSuggestionConfiguration, setCurrentSuggest
1400
1445
 
1401
1446
  // src/components/chat/Chat.tsx
1402
1447
  import React7, { useEffect as useEffect7, useRef as useRef5, useState as useState7 } from "react";
1403
- import { useCopilotChat, useCopilotContext as useCopilotContext5 } from "@copilotkit/react-core";
1404
- import { Role as Role2, TextMessage as TextMessage3 } from "@copilotkit/runtime-client-gql";
1448
+ import { useCopilotChat, useCopilotContext as useCopilotContext6 } from "@copilotkit/react-core";
1449
+ import { Role as Role2, TextMessage as TextMessage4 } from "@copilotkit/runtime-client-gql";
1405
1450
  import { randomId } from "@copilotkit/shared";
1406
1451
 
1407
1452
  // src/components/dev-console/utils.ts
1408
1453
  import { defaultCopilotContextCategories } from "@copilotkit/react-core";
1454
+ import { ActionExecutionMessage as ActionExecutionMessage2, ResultMessage as ResultMessage2, TextMessage as TextMessage3 } from "@copilotkit/runtime-client-gql";
1455
+ import { AgentStateMessage as AgentStateMessage2 } from "@copilotkit/runtime-client-gql";
1409
1456
  function shouldShowDevConsole(showDevConsole) {
1410
1457
  if (typeof showDevConsole === "boolean") {
1411
1458
  return showDevConsole;
@@ -1466,6 +1513,7 @@ function getPublishedCopilotKitVersion(current, forceCheck = false) {
1466
1513
  });
1467
1514
  }
1468
1515
  function logReadables(context) {
1516
+ console.log("%cCurrent Readables:", "font-size: 16px; font-weight: bold;");
1469
1517
  const readables = context.getContextString([], defaultCopilotContextCategories).trim();
1470
1518
  if (readables.length === 0) {
1471
1519
  console.log("No readables found");
@@ -1474,6 +1522,7 @@ function logReadables(context) {
1474
1522
  console.log(readables);
1475
1523
  }
1476
1524
  function logActions(context) {
1525
+ console.log("%cCurrent Actions:", "font-size: 16px; font-weight: bold;");
1477
1526
  if (Object.values(context.actions).length === 0) {
1478
1527
  console.log("No actions found");
1479
1528
  return;
@@ -1486,9 +1535,56 @@ function logActions(context) {
1486
1535
  console.groupEnd();
1487
1536
  }
1488
1537
  }
1538
+ function logMessages(context) {
1539
+ console.log("%cCurrent Messages:", "font-size: 16px; font-weight: bold;");
1540
+ if (context.messages.length === 0) {
1541
+ console.log("No messages found");
1542
+ return;
1543
+ }
1544
+ const tableData = context.messages.map((message) => {
1545
+ if (message instanceof TextMessage3) {
1546
+ return {
1547
+ id: message.id,
1548
+ type: "TextMessage",
1549
+ role: message.role,
1550
+ name: void 0,
1551
+ scope: void 0,
1552
+ content: message.content
1553
+ };
1554
+ } else if (message instanceof ActionExecutionMessage2) {
1555
+ return {
1556
+ id: message.id,
1557
+ type: "ActionExecutionMessage",
1558
+ role: void 0,
1559
+ name: message.name,
1560
+ scope: message.scope,
1561
+ content: message.arguments
1562
+ };
1563
+ } else if (message instanceof ResultMessage2) {
1564
+ return {
1565
+ id: message.id,
1566
+ type: "ResultMessage",
1567
+ role: void 0,
1568
+ name: message.actionName,
1569
+ scope: message.actionExecutionId,
1570
+ content: message.result
1571
+ };
1572
+ } else if (message instanceof AgentStateMessage2) {
1573
+ return {
1574
+ id: message.id,
1575
+ type: `AgentStateMessage (running: ${message.running})`,
1576
+ role: message.role,
1577
+ name: void 0,
1578
+ scope: message.threadId,
1579
+ content: message.state
1580
+ };
1581
+ }
1582
+ });
1583
+ console.table(tableData);
1584
+ }
1489
1585
 
1490
1586
  // src/components/dev-console/console.tsx
1491
- import { useCopilotContext as useCopilotContext4 } from "@copilotkit/react-core";
1587
+ import { useCopilotContext as useCopilotContext5 } from "@copilotkit/react-core";
1492
1588
  import { useEffect as useEffect6, useRef as useRef4, useState as useState6 } from "react";
1493
1589
 
1494
1590
  // src/components/dev-console/icons.tsx
@@ -1581,7 +1677,7 @@ import { COPILOTKIT_VERSION } from "@copilotkit/shared";
1581
1677
  import { Fragment, jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
1582
1678
  function CopilotDevConsole() {
1583
1679
  const currentVersion = COPILOTKIT_VERSION;
1584
- const context = useCopilotContext4();
1680
+ const context = useCopilotContext5();
1585
1681
  const [showDevConsole, setShowDevConsole] = useState6(false);
1586
1682
  useEffect6(() => {
1587
1683
  setShowDevConsole(shouldShowDevConsole(context.showDevConsole));
@@ -1744,7 +1840,7 @@ function DebugMenuButton({
1744
1840
  checkForUpdates,
1745
1841
  mode
1746
1842
  }) {
1747
- const context = useCopilotContext4();
1843
+ const context = useCopilotContext5();
1748
1844
  return /* @__PURE__ */ jsx14("div", { className: "bg-black fixed top-24 w-52 text-right", children: /* @__PURE__ */ jsxs10(Menu, { children: [
1749
1845
  /* @__PURE__ */ jsx14(MenuButton, { className: `copilotKitDebugMenuButton ${mode === "compact" ? "compact" : ""}`, children: mode == "compact" ? "Debug" : /* @__PURE__ */ jsxs10(Fragment, { children: [
1750
1846
  "Debug ",
@@ -1760,6 +1856,7 @@ function DebugMenuButton({
1760
1856
  children: [
1761
1857
  /* @__PURE__ */ jsx14(MenuItem, { children: /* @__PURE__ */ jsx14("button", { className: "copilotKitDebugMenuItem", onClick: () => logReadables(context), children: "Log Readables" }) }),
1762
1858
  /* @__PURE__ */ jsx14(MenuItem, { children: /* @__PURE__ */ jsx14("button", { className: "copilotKitDebugMenuItem", onClick: () => logActions(context), children: "Log Actions" }) }),
1859
+ /* @__PURE__ */ jsx14(MenuItem, { children: /* @__PURE__ */ jsx14("button", { className: "copilotKitDebugMenuItem", onClick: () => logMessages(context), children: "Log Messages" }) }),
1763
1860
  /* @__PURE__ */ jsx14(MenuItem, { children: /* @__PURE__ */ jsx14("button", { className: "copilotKitDebugMenuItem", onClick: () => checkForUpdates(true), children: "Check for Updates" }) }),
1764
1861
  /* @__PURE__ */ jsx14("hr", {}),
1765
1862
  /* @__PURE__ */ jsx14(MenuItem, { children: /* @__PURE__ */ jsx14("button", { className: "copilotKitDebugMenuItem", onClick: () => setShowDevConsole(false), children: "Hide Dev Console" }) })
@@ -1784,7 +1881,7 @@ function CopilotChat({
1784
1881
  icons,
1785
1882
  labels
1786
1883
  }) {
1787
- const context = useCopilotContext5();
1884
+ const context = useCopilotContext6();
1788
1885
  useEffect7(() => {
1789
1886
  context.setChatInstructions(instructions || "");
1790
1887
  }, [instructions]);
@@ -1853,7 +1950,7 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) =>
1853
1950
  (_a = suggestionsAbortControllerRef.current) == null ? void 0 : _a.abort();
1854
1951
  suggestionsAbortControllerRef.current = null;
1855
1952
  };
1856
- const context = useCopilotContext5();
1953
+ const context = useCopilotContext6();
1857
1954
  useEffect7(() => {
1858
1955
  onInProgress == null ? void 0 : onInProgress(isLoading);
1859
1956
  abortSuggestions();
@@ -1878,7 +1975,7 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) =>
1878
1975
  const sendMessage = (messageContent) => __async(void 0, null, function* () {
1879
1976
  abortSuggestions();
1880
1977
  setCurrentSuggestions([]);
1881
- const message = new TextMessage3({
1978
+ const message = new TextMessage4({
1882
1979
  content: messageContent,
1883
1980
  role: Role2.User
1884
1981
  });
@@ -1928,7 +2025,6 @@ var CopilotModal = ({
1928
2025
  }) => {
1929
2026
  const [openState, setOpenState] = React8.useState(defaultOpen);
1930
2027
  const setOpen = (open) => {
1931
- console.log("setOpen!!", open);
1932
2028
  onSetOpen == null ? void 0 : onSetOpen(open);
1933
2029
  setOpenState(open);
1934
2030
  };
@@ -1985,7 +2081,6 @@ function CopilotSidebar(props) {
1985
2081
  );
1986
2082
  const onSetOpen = (open) => {
1987
2083
  var _a;
1988
- console.log("onSetOpen", open);
1989
2084
  (_a = props.onSetOpen) == null ? void 0 : _a.call(props, open);
1990
2085
  setExpandedClassName(open ? "sidebarExpanded" : "");
1991
2086
  };
@@ -1994,7 +2089,7 @@ function CopilotSidebar(props) {
1994
2089
 
1995
2090
  // src/hooks/use-copilot-chat-suggestions.tsx
1996
2091
  import { useEffect as useEffect8 } from "react";
1997
- import { useCopilotContext as useCopilotContext6 } from "@copilotkit/react-core";
2092
+ import { useCopilotContext as useCopilotContext7 } from "@copilotkit/react-core";
1998
2093
  import { randomId as randomId2 } from "@copilotkit/shared";
1999
2094
  function useCopilotChatSuggestions({
2000
2095
  instructions,
@@ -2002,7 +2097,7 @@ function useCopilotChatSuggestions({
2002
2097
  minSuggestions = 1,
2003
2098
  maxSuggestions = 3
2004
2099
  }, dependencies = []) {
2005
- const context = useCopilotContext6();
2100
+ const context = useCopilotContext7();
2006
2101
  useEffect8(() => {
2007
2102
  const id = randomId2();
2008
2103
  context.addChatSuggestionConfiguration(id, {