diff --git a/src/lib/components/chat/Messages/structuredOutput.ts b/src/lib/components/chat/Messages/structuredOutput.ts index 31f5c70bd1..b59587c374 100644 --- a/src/lib/components/chat/Messages/structuredOutput.ts +++ b/src/lib/components/chat/Messages/structuredOutput.ts @@ -434,6 +434,16 @@ export function buildOutputDisplayItems(output: OutputItem[] = []): OutputDispla }); flushDetails(); + + // Providers can reuse item ids across tool-call rounds. + const seenIds = new Set(); + displayItems.forEach((displayItem, index) => { + if (seenIds.has(displayItem.id)) { + displayItem.id = `${displayItem.id}-${index}`; + } + seenIds.add(displayItem.id); + }); + return displayItems; }