UNPKG

@copilotkit/runtime-client-gql

Version:

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

237 lines (235 loc) • 7.48 kB
import { ActionExecutionMessage, AgentStateMessage, ImageMessage, ResultMessage, TextMessage } from "./chunk-ROUIRR4B.mjs"; // src/client/conversion.ts import untruncateJson from "untruncate-json"; import { parseJson } from "@copilotkit/shared"; function filterAgentStateMessages(messages) { return messages.filter((message) => !message.isAgentStateMessage()); } function convertMessagesToGqlInput(messages) { return messages.map((message) => { if (message.isTextMessage()) { return { id: message.id, createdAt: message.createdAt, textMessage: { content: message.content, role: message.role, parentMessageId: message.parentMessageId } }; } else if (message.isActionExecutionMessage()) { return { id: message.id, createdAt: message.createdAt, actionExecutionMessage: { name: message.name, arguments: JSON.stringify(message.arguments), parentMessageId: message.parentMessageId } }; } else if (message.isResultMessage()) { return { id: message.id, createdAt: message.createdAt, resultMessage: { result: message.result, actionExecutionId: message.actionExecutionId, actionName: message.actionName } }; } else if (message.isAgentStateMessage()) { return { id: message.id, createdAt: message.createdAt, agentStateMessage: { threadId: message.threadId, role: message.role, agentName: message.agentName, nodeName: message.nodeName, runId: message.runId, active: message.active, running: message.running, state: JSON.stringify(message.state) } }; } else if (message.isImageMessage()) { return { id: message.id, createdAt: message.createdAt, imageMessage: { format: message.format, bytes: message.bytes, role: message.role, parentMessageId: message.parentMessageId } }; } else { throw new Error("Unknown message type"); } }); } function filterAdjacentAgentStateMessages(messages) { const filteredMessages = []; messages.forEach((message, i) => { if (message.__typename !== "AgentStateMessageOutput") { filteredMessages.push(message); } else { const prevAgentStateMessageIndex = filteredMessages.findIndex( // TODO: also check runId (m) => m.__typename === "AgentStateMessageOutput" && m.agentName === message.agentName ); if (prevAgentStateMessageIndex === -1) { filteredMessages.push(message); } else { filteredMessages[prevAgentStateMessageIndex] = message; } } }); return filteredMessages; } function convertGqlOutputToMessages(messages) { return messages.map((message) => { if (message.__typename === "TextMessageOutput") { return new TextMessage({ id: message.id, role: message.role, content: message.content.join(""), parentMessageId: message.parentMessageId, createdAt: /* @__PURE__ */ new Date(), status: message.status || { code: "Pending" /* Pending */ } }); } else if (message.__typename === "ActionExecutionMessageOutput") { return new ActionExecutionMessage({ id: message.id, name: message.name, arguments: getPartialArguments(message.arguments), parentMessageId: message.parentMessageId, createdAt: /* @__PURE__ */ new Date(), status: message.status || { code: "Pending" /* Pending */ } }); } else if (message.__typename === "ResultMessageOutput") { return new ResultMessage({ id: message.id, result: message.result, actionExecutionId: message.actionExecutionId, actionName: message.actionName, createdAt: /* @__PURE__ */ new Date(), status: message.status || { code: "Pending" /* Pending */ } }); } else if (message.__typename === "AgentStateMessageOutput") { return new AgentStateMessage({ id: message.id, threadId: message.threadId, role: message.role, agentName: message.agentName, nodeName: message.nodeName, runId: message.runId, active: message.active, running: message.running, state: parseJson(message.state, {}), createdAt: /* @__PURE__ */ new Date() }); } else if (message.__typename === "ImageMessageOutput") { return new ImageMessage({ id: message.id, format: message.format, bytes: message.bytes, role: message.role, parentMessageId: message.parentMessageId, createdAt: /* @__PURE__ */ new Date(), status: message.status || { code: "Pending" /* Pending */ } }); } throw new Error("Unknown message type"); }); } function loadMessagesFromJsonRepresentation(json) { const result = []; for (const item of json) { if ("content" in item) { result.push( new TextMessage({ id: item.id, role: item.role, content: item.content, parentMessageId: item.parentMessageId, createdAt: item.createdAt || /* @__PURE__ */ new Date(), status: item.status || { code: "Success" /* Success */ } }) ); } else if ("arguments" in item) { result.push( new ActionExecutionMessage({ id: item.id, name: item.name, arguments: item.arguments, parentMessageId: item.parentMessageId, createdAt: item.createdAt || /* @__PURE__ */ new Date(), status: item.status || { code: "Success" /* Success */ } }) ); } else if ("result" in item) { result.push( new ResultMessage({ id: item.id, result: item.result, actionExecutionId: item.actionExecutionId, actionName: item.actionName, createdAt: item.createdAt || /* @__PURE__ */ new Date(), status: item.status || { code: "Success" /* Success */ } }) ); } else if ("state" in item) { result.push( new AgentStateMessage({ id: item.id, threadId: item.threadId, role: item.role, agentName: item.agentName, nodeName: item.nodeName, runId: item.runId, active: item.active, running: item.running, state: item.state, createdAt: item.createdAt || /* @__PURE__ */ new Date() }) ); } else if ("format" in item && "bytes" in item) { result.push( new ImageMessage({ id: item.id, format: item.format, bytes: item.bytes, role: item.role, parentMessageId: item.parentMessageId, createdAt: item.createdAt || /* @__PURE__ */ new Date(), status: item.status || { code: "Success" /* Success */ } }) ); } } return result; } function getPartialArguments(args) { try { if (!args.length) return {}; return JSON.parse(untruncateJson(args.join(""))); } catch (e) { return {}; } } export { filterAgentStateMessages, convertMessagesToGqlInput, filterAdjacentAgentStateMessages, convertGqlOutputToMessages, loadMessagesFromJsonRepresentation }; //# sourceMappingURL=chunk-P2AUSQOK.mjs.map