@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
@@ -818,7 +818,8 @@ import {
818
818
  ActionExecutionMessage,
819
819
  ResultMessage,
820
820
  TextMessage,
821
- Role
821
+ Role,
822
+ AgentStateMessage
822
823
  } from "@copilotkit/runtime-client-gql";
823
824
  import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
824
825
  var Messages = ({ messages, inProgress, children }) => {
@@ -860,8 +861,8 @@ var Messages = ({ messages, inProgress, children }) => {
860
861
  } else if (message instanceof TextMessage && message.role == "assistant") {
861
862
  return /* @__PURE__ */ jsx5("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: isCurrentMessage && inProgress && !message.content ? context.icons.spinnerIcon : /* @__PURE__ */ jsx5(Markdown, { content: message.content }) }, index);
862
863
  } else if (message instanceof ActionExecutionMessage) {
863
- if (chatComponentsCache.current !== null && chatComponentsCache.current[message.name]) {
864
- const render = chatComponentsCache.current[message.name];
864
+ if (chatComponentsCache.current !== null && chatComponentsCache.current.actions[message.name]) {
865
+ const render = chatComponentsCache.current.actions[message.name];
865
866
  if (typeof render === "string") {
866
867
  if (isCurrentMessage && inProgress) {
867
868
  return /* @__PURE__ */ jsxs3("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
@@ -903,6 +904,50 @@ var Messages = ({ messages, inProgress, children }) => {
903
904
  } else {
904
905
  return /* @__PURE__ */ jsx5("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
905
906
  }
907
+ } else if (message instanceof AgentStateMessage) {
908
+ let render;
909
+ if (chatComponentsCache.current !== null) {
910
+ render = chatComponentsCache.current.coagentActions[`${message.agentName}-${message.nodeName}`] || chatComponentsCache.current.coagentActions[`${message.agentName}-global`];
911
+ }
912
+ if (render) {
913
+ if (typeof render === "string") {
914
+ if (isCurrentMessage && inProgress) {
915
+ return /* @__PURE__ */ jsxs3("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
916
+ context.icons.spinnerIcon,
917
+ " ",
918
+ /* @__PURE__ */ jsx5("span", { className: "inProgressLabel", children: render })
919
+ ] }, index);
920
+ } else {
921
+ return null;
922
+ }
923
+ } else {
924
+ const state = message.state;
925
+ let status = message.active ? "inProgress" : "complete";
926
+ const toRender = render({
927
+ status,
928
+ state,
929
+ nodeName: message.nodeName
930
+ });
931
+ if (!toRender && status === "complete") {
932
+ return null;
933
+ }
934
+ if (typeof toRender === "string") {
935
+ return /* @__PURE__ */ jsxs3("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: [
936
+ isCurrentMessage && inProgress && context.icons.spinnerIcon,
937
+ " ",
938
+ toRender
939
+ ] }, index);
940
+ } else {
941
+ return /* @__PURE__ */ jsx5("div", { className: "copilotKitCustomAssistantMessage", children: toRender }, index);
942
+ }
943
+ }
944
+ } else if (!inProgress || !isCurrentMessage) {
945
+ return null;
946
+ } else {
947
+ return /* @__PURE__ */ jsx5("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
948
+ }
949
+ } else if (message instanceof ResultMessage && inProgress && isCurrentMessage) {
950
+ return /* @__PURE__ */ jsx5("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: context.icons.spinnerIcon }, index);
906
951
  }
907
952
  }),
908
953
  /* @__PURE__ */ jsx5("footer", { ref: messagesEndRef, children })
@@ -1252,12 +1297,14 @@ var reloadSuggestions = (context, chatSuggestionConfiguration, setCurrentSuggest
1252
1297
 
1253
1298
  // src/components/chat/Chat.tsx
1254
1299
  import React6, { useEffect as useEffect6, useRef as useRef5, useState as useState7 } from "react";
1255
- import { useCopilotChat, useCopilotContext as useCopilotContext5 } from "@copilotkit/react-core";
1256
- import { Role as Role2, TextMessage as TextMessage3 } from "@copilotkit/runtime-client-gql";
1300
+ import { useCopilotChat, useCopilotContext as useCopilotContext6 } from "@copilotkit/react-core";
1301
+ import { Role as Role2, TextMessage as TextMessage4 } from "@copilotkit/runtime-client-gql";
1257
1302
  import { randomId } from "@copilotkit/shared";
1258
1303
 
1259
1304
  // src/components/dev-console/utils.ts
1260
1305
  import { defaultCopilotContextCategories } from "@copilotkit/react-core";
1306
+ import { ActionExecutionMessage as ActionExecutionMessage2, ResultMessage as ResultMessage2, TextMessage as TextMessage3 } from "@copilotkit/runtime-client-gql";
1307
+ import { AgentStateMessage as AgentStateMessage2 } from "@copilotkit/runtime-client-gql";
1261
1308
  function shouldShowDevConsole(showDevConsole) {
1262
1309
  if (typeof showDevConsole === "boolean") {
1263
1310
  return showDevConsole;
@@ -1318,6 +1365,7 @@ function getPublishedCopilotKitVersion(current, forceCheck = false) {
1318
1365
  });
1319
1366
  }
1320
1367
  function logReadables(context) {
1368
+ console.log("%cCurrent Readables:", "font-size: 16px; font-weight: bold;");
1321
1369
  const readables = context.getContextString([], defaultCopilotContextCategories).trim();
1322
1370
  if (readables.length === 0) {
1323
1371
  console.log("No readables found");
@@ -1326,6 +1374,7 @@ function logReadables(context) {
1326
1374
  console.log(readables);
1327
1375
  }
1328
1376
  function logActions(context) {
1377
+ console.log("%cCurrent Actions:", "font-size: 16px; font-weight: bold;");
1329
1378
  if (Object.values(context.actions).length === 0) {
1330
1379
  console.log("No actions found");
1331
1380
  return;
@@ -1338,9 +1387,56 @@ function logActions(context) {
1338
1387
  console.groupEnd();
1339
1388
  }
1340
1389
  }
1390
+ function logMessages(context) {
1391
+ console.log("%cCurrent Messages:", "font-size: 16px; font-weight: bold;");
1392
+ if (context.messages.length === 0) {
1393
+ console.log("No messages found");
1394
+ return;
1395
+ }
1396
+ const tableData = context.messages.map((message) => {
1397
+ if (message instanceof TextMessage3) {
1398
+ return {
1399
+ id: message.id,
1400
+ type: "TextMessage",
1401
+ role: message.role,
1402
+ name: void 0,
1403
+ scope: void 0,
1404
+ content: message.content
1405
+ };
1406
+ } else if (message instanceof ActionExecutionMessage2) {
1407
+ return {
1408
+ id: message.id,
1409
+ type: "ActionExecutionMessage",
1410
+ role: void 0,
1411
+ name: message.name,
1412
+ scope: message.scope,
1413
+ content: message.arguments
1414
+ };
1415
+ } else if (message instanceof ResultMessage2) {
1416
+ return {
1417
+ id: message.id,
1418
+ type: "ResultMessage",
1419
+ role: void 0,
1420
+ name: message.actionName,
1421
+ scope: message.actionExecutionId,
1422
+ content: message.result
1423
+ };
1424
+ } else if (message instanceof AgentStateMessage2) {
1425
+ return {
1426
+ id: message.id,
1427
+ type: `AgentStateMessage (running: ${message.running})`,
1428
+ role: message.role,
1429
+ name: void 0,
1430
+ scope: message.threadId,
1431
+ content: message.state
1432
+ };
1433
+ }
1434
+ });
1435
+ console.table(tableData);
1436
+ }
1341
1437
 
1342
1438
  // src/components/dev-console/console.tsx
1343
- import { useCopilotContext as useCopilotContext4 } from "@copilotkit/react-core";
1439
+ import { useCopilotContext as useCopilotContext5 } from "@copilotkit/react-core";
1344
1440
  import { useEffect as useEffect5, useRef as useRef4, useState as useState6 } from "react";
1345
1441
 
1346
1442
  // src/components/dev-console/icons.tsx
@@ -1433,7 +1529,7 @@ import { COPILOTKIT_VERSION } from "@copilotkit/shared";
1433
1529
  import { Fragment, jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
1434
1530
  function CopilotDevConsole() {
1435
1531
  const currentVersion = COPILOTKIT_VERSION;
1436
- const context = useCopilotContext4();
1532
+ const context = useCopilotContext5();
1437
1533
  const [showDevConsole, setShowDevConsole] = useState6(false);
1438
1534
  useEffect5(() => {
1439
1535
  setShowDevConsole(shouldShowDevConsole(context.showDevConsole));
@@ -1596,7 +1692,7 @@ function DebugMenuButton({
1596
1692
  checkForUpdates,
1597
1693
  mode
1598
1694
  }) {
1599
- const context = useCopilotContext4();
1695
+ const context = useCopilotContext5();
1600
1696
  return /* @__PURE__ */ jsx11("div", { className: "bg-black fixed top-24 w-52 text-right", children: /* @__PURE__ */ jsxs8(Menu, { children: [
1601
1697
  /* @__PURE__ */ jsx11(MenuButton, { className: `copilotKitDebugMenuButton ${mode === "compact" ? "compact" : ""}`, children: mode == "compact" ? "Debug" : /* @__PURE__ */ jsxs8(Fragment, { children: [
1602
1698
  "Debug ",
@@ -1612,6 +1708,7 @@ function DebugMenuButton({
1612
1708
  children: [
1613
1709
  /* @__PURE__ */ jsx11(MenuItem, { children: /* @__PURE__ */ jsx11("button", { className: "copilotKitDebugMenuItem", onClick: () => logReadables(context), children: "Log Readables" }) }),
1614
1710
  /* @__PURE__ */ jsx11(MenuItem, { children: /* @__PURE__ */ jsx11("button", { className: "copilotKitDebugMenuItem", onClick: () => logActions(context), children: "Log Actions" }) }),
1711
+ /* @__PURE__ */ jsx11(MenuItem, { children: /* @__PURE__ */ jsx11("button", { className: "copilotKitDebugMenuItem", onClick: () => logMessages(context), children: "Log Messages" }) }),
1615
1712
  /* @__PURE__ */ jsx11(MenuItem, { children: /* @__PURE__ */ jsx11("button", { className: "copilotKitDebugMenuItem", onClick: () => checkForUpdates(true), children: "Check for Updates" }) }),
1616
1713
  /* @__PURE__ */ jsx11("hr", {}),
1617
1714
  /* @__PURE__ */ jsx11(MenuItem, { children: /* @__PURE__ */ jsx11("button", { className: "copilotKitDebugMenuItem", onClick: () => setShowDevConsole(false), children: "Hide Dev Console" }) })
@@ -1636,7 +1733,7 @@ function CopilotChat({
1636
1733
  icons,
1637
1734
  labels
1638
1735
  }) {
1639
- const context = useCopilotContext5();
1736
+ const context = useCopilotContext6();
1640
1737
  useEffect6(() => {
1641
1738
  context.setChatInstructions(instructions || "");
1642
1739
  }, [instructions]);
@@ -1705,7 +1802,7 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) =>
1705
1802
  (_a = suggestionsAbortControllerRef.current) == null ? void 0 : _a.abort();
1706
1803
  suggestionsAbortControllerRef.current = null;
1707
1804
  };
1708
- const context = useCopilotContext5();
1805
+ const context = useCopilotContext6();
1709
1806
  useEffect6(() => {
1710
1807
  onInProgress == null ? void 0 : onInProgress(isLoading);
1711
1808
  abortSuggestions();
@@ -1730,7 +1827,7 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) =>
1730
1827
  const sendMessage = (messageContent) => __async(void 0, null, function* () {
1731
1828
  abortSuggestions();
1732
1829
  setCurrentSuggestions([]);
1733
- const message = new TextMessage3({
1830
+ const message = new TextMessage4({
1734
1831
  content: messageContent,
1735
1832
  role: Role2.User
1736
1833
  });