( msgs: (UserMessage | AssistantMessage)[], )
| 2449 | } |
| 2450 | |
| 2451 | function mergeAdjacentUserMessages( |
| 2452 | msgs: (UserMessage | AssistantMessage)[], |
| 2453 | ): (UserMessage | AssistantMessage)[] { |
| 2454 | const out: (UserMessage | AssistantMessage)[] = [] |
| 2455 | for (const m of msgs) { |
| 2456 | const prev = out.at(-1) |
| 2457 | if (m.type === 'user' && prev?.type === 'user') { |
| 2458 | out[out.length - 1] = mergeUserMessages(prev, m) // lvalue — can't use .at() |
| 2459 | } else { |
| 2460 | out.push(m) |
| 2461 | } |
| 2462 | } |
| 2463 | return out |
| 2464 | } |
| 2465 | |
| 2466 | /** |
| 2467 | * In thecontent[] list on a UserMessage, tool_result blocks much come first |
no test coverage detected