From 23abe1a7bb91e43e1a3566979a0f7c4f79171e9a Mon Sep 17 00:00:00 2001 From: Anurag Saxena Date: Wed, 8 Apr 2026 04:38:28 -0400 Subject: [PATCH] fix: merge consecutive userInputMessages in openai-to-kiro translator (closes #510) (#524) --- open-sse/translator/request/openai-to-kiro.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/open-sse/translator/request/openai-to-kiro.js b/open-sse/translator/request/openai-to-kiro.js index add9e88f..b16af83f 100644 --- a/open-sse/translator/request/openai-to-kiro.js +++ b/open-sse/translator/request/openai-to-kiro.js @@ -254,6 +254,20 @@ function convertMessages(messages, tools, model) { } }); + // Merge consecutive user messages (Kiro requires alternating user/assistant) + const mergedHistory = []; + for (let i = 0; i < history.length; i++) { + const current = history[i]; + if (current.userInputMessage && + mergedHistory.length > 0 && + mergedHistory[mergedHistory.length - 1].userInputMessage) { + const prev = mergedHistory[mergedHistory.length - 1]; + prev.userInputMessage.content += "\n\n" + current.userInputMessage.content; + } else { + mergedHistory.push(current); + } + } + // Inject tools into currentMessage AFTER cleanup if (firstHistoryTools && currentMessage?.userInputMessage && !currentMessage.userInputMessage.userInputMessageContext?.tools) { @@ -263,7 +277,7 @@ function convertMessages(messages, tools, model) { currentMessage.userInputMessage.userInputMessageContext.tools = firstHistoryTools; } - return { history, currentMessage }; + return { history: mergedHistory, currentMessage }; } /**