( messages: ProviderMessageInput[], providerId: ProviderId | string )
| 685 | ]) |
| 686 | |
| 687 | export function formatMessagesForProvider( |
| 688 | messages: ProviderMessageInput[], |
| 689 | providerId: ProviderId | string |
| 690 | ): ProviderFormattedMessage[] { |
| 691 | const provider = getAttachmentProvider(providerId) |
| 692 | if (provider && SDK_NATIVE_ATTACHMENT_PROVIDERS.has(provider)) { |
| 693 | return messages as ProviderFormattedMessage[] |
| 694 | } |
| 695 | |
| 696 | return messages.map((message) => { |
| 697 | if (!message.files?.length || (message.role !== 'user' && message.role !== 'assistant')) { |
| 698 | return message as ProviderFormattedMessage |
| 699 | } |
| 700 | |
| 701 | if (provider === 'openrouter') { |
| 702 | const { files: _omit, ...rest } = message |
| 703 | return { |
| 704 | ...rest, |
| 705 | content: buildOpenRouterMessageContent(message.content, message.files, providerId) as |
| 706 | | string |
| 707 | | Array<Record<string, unknown>>, |
| 708 | } |
| 709 | } |
| 710 | |
| 711 | const { files: _omit, ...rest } = message |
| 712 | return { |
| 713 | ...rest, |
| 714 | content: buildOpenAICompatibleChatContent(message.content, message.files, providerId) as |
| 715 | | string |
| 716 | | Array<Record<string, unknown>>, |
| 717 | } |
| 718 | }) |
| 719 | } |
no test coverage detected