@copilotkit/react-ui
Version:
<div align="center"> <a href="https://copilotkit.ai" target="_blank"> <img src="https://github.com/copilotkit/copilotkit/raw/main/assets/banner.png" alt="CopilotKit Logo"> </a>
112 lines (111 loc) • 3.74 kB
JavaScript
// src/components/chat/messages/RenderActionExecutionMessage.tsx
import { MessageStatusCode } from "@copilotkit/runtime-client-gql";
import { useCopilotContext } from "@copilotkit/react-core";
import { jsx, jsxs } from "react/jsx-runtime";
function RenderActionExecutionMessage(props) {
const { chatComponentsCache } = useCopilotContext();
const { message, inProgress, index, isCurrentMessage, actionResult, AssistantMessage } = props;
if (message.isActionExecutionMessage()) {
if (chatComponentsCache.current !== null && (chatComponentsCache.current.actions[message.name] || chatComponentsCache.current.actions["*"])) {
const render = chatComponentsCache.current.actions[message.name] || chatComponentsCache.current.actions["*"];
if (typeof render === "string") {
if (isCurrentMessage && inProgress) {
return /* @__PURE__ */ jsx(
AssistantMessage,
{
rawData: message,
"data-message-role": "assistant",
isLoading: false,
isGenerating: true,
message: render
},
index
);
} else {
return null;
}
} else {
const args = message.arguments;
let status = "inProgress";
if (actionResult !== void 0) {
status = "complete";
} else if (message.status.code !== MessageStatusCode.Pending) {
status = "executing";
}
try {
const toRender = render({
status,
args,
result: actionResult,
name: message.name
});
if (!toRender && status === "complete") {
return null;
}
if (typeof toRender === "string") {
return /* @__PURE__ */ jsx(
AssistantMessage,
{
rawData: message,
"data-message-role": "assistant",
isLoading: false,
isGenerating: false,
message: toRender
},
index
);
} else {
return /* @__PURE__ */ jsx(
AssistantMessage,
{
rawData: message,
"data-message-role": "action-render",
isLoading: false,
isGenerating: false,
subComponent: toRender
},
index
);
}
} catch (e) {
console.error(`Error executing render function for action ${message.name}: ${e}`);
return /* @__PURE__ */ jsx(
AssistantMessage,
{
rawData: message,
"data-message-role": "assistant",
isLoading: false,
isGenerating: false,
subComponent: /* @__PURE__ */ jsxs("div", { className: "copilotKitMessage copilotKitAssistantMessage", children: [
/* @__PURE__ */ jsxs("b", { children: [
"\u274C Error executing render function for action ",
message.name,
":"
] }),
/* @__PURE__ */ jsx("pre", { children: e instanceof Error ? e.message : String(e) })
] })
},
index
);
}
}
} else if (!inProgress || !isCurrentMessage) {
return null;
} else {
return /* @__PURE__ */ jsx(
AssistantMessage,
{
rawData: message,
"data-message-role": "assistant",
isLoading: true,
isGenerating: true
},
index
);
}
}
}
export {
RenderActionExecutionMessage
};
//# sourceMappingURL=chunk-XB6QCUPB.mjs.map