Skip to content
9 changes: 5 additions & 4 deletions packages/xl-ai/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,6 @@
"email": "email dev"
},
"dependencies": {
"@ai-sdk/groq": "^1.2.9",
"@ai-sdk/mistral": "^1.2.8",
"@ai-sdk/openai": "^1.3.22",
"@ai-sdk/openai-compatible": "^0.2.14",
"@blocknote/core": "0.31.2",
"@blocknote/mantine": "0.31.2",
"@blocknote/prosemirror-suggest-changes": "^0.1.3",
Expand All @@ -92,6 +88,11 @@
"zustand": "^5.0.3"
},
"devDependencies": {
"@ai-sdk/groq": "^1.2.9",
"@ai-sdk/mistral": "^1.2.8",
"@ai-sdk/openai": "^1.3.22",
"@ai-sdk/openai-compatible": "^0.2.14",
"@ai-sdk/anthropic": "^1.2.12",
"@mswjs/interceptors": "^0.37.5",
"@types/diff": "^6.0.0",
"@types/json-diff": "^1.0.3",
Expand Down
13 changes: 12 additions & 1 deletion packages/xl-ai/src/api/LLMRequest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,18 @@ export async function doLLMRequest(
let previousMessages: CoreMessage[] | undefined = undefined;

if (previousResponse) {
previousMessages = previousResponse.messages;
previousMessages = previousResponse.messages.map((m) => {
// Some models, like Gemini and Anthropic don't support mixing system and user messages.
// Therefore, we convert all user messages to system messages.
// (also see comment below on a possibly better approach that might also address this)
if (m.role === "user" && typeof m.content === "string") {
return {
role: "system",
content: m.content,
};
}
return m;
});
/*
We currently insert these messages as "assistant" string messages.
When using Tools, the "official" pattern for this is to use a "tool_result" message.
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Loading
Loading