UNPKG

@directus/api

Version:

Directus is a real-time API and App dashboard for managing SQL database content

30 lines (29 loc) 1.11 kB
//#region src/ai/chat/utils/fix-error-tool-calls.ts /** * Fixes tool calls with error states by copying rawInput to input field. * This is required because error tool calls from the frontend use rawInput * but the AI SDK's convertToModelMessages expects input to generate arguments * for the OpenAI API. * @param messages - Array of message objects from the chat request * @returns Messages with error tool calls fixed, typed as UIMessage[] */ const fixErrorToolCalls = (messages) => { return messages.map((msg) => { if (msg["role"] === "assistant" && msg["parts"] && Array.isArray(msg["parts"])) { const fixedParts = msg["parts"].map((part) => { if (typeof part === "object" && part !== null && "type" in part && typeof part.type === "string" && part.type.startsWith("tool-") && "state" in part && part.state === "output-error" && "rawInput" in part && (!("input" in part) || part.input == null)) return { ...part, input: part.rawInput }; return part; }); return { ...msg, parts: fixedParts }; } return msg; }); }; //#endregion export { fixErrorToolCalls };