UNPKG

@copilotkit/react-ui

Version:

<img src="https://github.com/user-attachments/assets/0a6b64d9-e193-4940-a3f6-60334ac34084" alt="banner" style="border-radius: 12px; border: 2px solid #d6d4fa;" />

127 lines (125 loc) 4.16 kB
import { AssistantMessage } from "./chunk-L3GZ7TXC.mjs"; import { __objRest } from "./chunk-MRXNTQOX.mjs"; // 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(_a) { var _b = _a, { AssistantMessage: AssistantMessage2 = AssistantMessage } = _b, props = __objRest(_b, [ "AssistantMessage" ]); const { chatComponentsCache } = useCopilotContext(); const { message, inProgress, index, isCurrentMessage, actionResult } = 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( AssistantMessage2, { 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, // Cast to any as RenderFunctionStatus is a union that can be complex to narrow here args, result: actionResult, name: message.name, messageId: message.id // Pass messageId for HITL action correlation }); if (!toRender && status === "complete") { return null; } if (typeof toRender === "string") { return /* @__PURE__ */ jsx( AssistantMessage2, { rawData: message, "data-message-role": "assistant", isLoading: false, isGenerating: false, message: toRender }, index ); } else { return /* @__PURE__ */ jsx( AssistantMessage2, { 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( AssistantMessage2, { 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( AssistantMessage2, { rawData: message, "data-message-role": "assistant", isLoading: true, isGenerating: true }, index ); } } } export { RenderActionExecutionMessage }; //# sourceMappingURL=chunk-53CVDVS5.mjs.map