@assistant-ui/react
Version:
Typescript/React library for AI Chat
48 lines • 1.39 kB
JavaScript
// src/runtimes/edge/converters/toCoreMessages.ts
var toCoreMessages = (messages, options = {}) => {
return messages.map((message) => toCoreMessage(message, options));
};
var toCoreMessage = (message, options = {}) => {
const includeId = options.unstable_includeId ?? false;
const role = message.role;
switch (role) {
case "assistant":
return {
role,
content: message.content.map((part) => {
if (part.type === "reasoning" || part.type === "source" || part.type === "file")
return null;
if (part.type === "tool-call") {
const { argsText, ...rest } = part;
return rest;
}
return part;
}).filter((c) => !!c),
...includeId ? { unstable_id: message.id } : {}
};
case "user":
return {
role,
content: [
...message.content,
...message.attachments.map((a) => a.content).flat()
],
...includeId ? { unstable_id: message.id } : {}
};
case "system":
return {
role,
content: message.content,
...includeId ? { unstable_id: message.id } : {}
};
default: {
const unsupportedRole = role;
throw new Error(`Unknown message role: ${unsupportedRole}`);
}
}
};
export {
toCoreMessage,
toCoreMessages
};
//# sourceMappingURL=toCoreMessages.mjs.map