MessageMapper
Category: LLM Providers
Source: message_mapper.dart
Classes
MappedMessages
Result of mapping Glue messages to a provider-specific format.
Constructor
dart
MappedMessages({required this.systemPrompt, required this.messages})Properties
| Property | Type | Description |
|---|---|---|
systemPrompt | String | System prompt (Anthropic: separate field; OpenAI: prepended message). |
messages | List<Map<String, dynamic>> | Provider-formatted message list. |
sealed MessageMapper
Maps Glue [Message] objects to provider-specific JSON payloads.
Constructor
dart
const MessageMapper()Methods
`MappedMessages mapMessages(
List<Message> messages, {
required String systemPrompt,
})`
AnthropicMessageMapper
Anthropic Messages API format.
- System prompt is a separate top-level field.
- Tool results are sent as
role: "user"withtype: "tool_result"blocks. - Assistant tool calls are
type: "tool_use"content blocks.
Constructor
dart
const AnthropicMessageMapper()Methods
`MappedMessages mapMessages(
List<Message> messages, {
required String systemPrompt,
})`
GeminiMessageMapper
Gemini Developer API (v1beta/models/{model}:streamGenerateContent) format.
- System prompt is kept separate; the request builder lifts it into the top-level
systemInstruction.parts[].textfield. - Roles are
userandmodel(noassistant, nosystem, notool). - Tool calls are
{functionCall: {name, args}}parts onmodelmessages. - Tool results are
{functionResponse: {name, response: {content}}}parts onusermessages. - Image parts become
{inlineData: {mimeType, data}}. - Orphaned tool results (no matching prior
functionCall) are dropped, and consecutive same-role messages are coalesced — Gemini requires alternating user/model turns.
Constructor
dart
const GeminiMessageMapper()Methods
`MappedMessages mapMessages(
List<Message> messages, {
required String systemPrompt,
})`
const OpenAiMessageMapper()
`MappedMessages mapMessages(
List<Message> messages, {
required String systemPrompt,
})`
OpenAiMessageMapper
OpenAI Chat Completions format.
- System prompt is a message with
role: "system". - Tool results use
role: "tool"withtool_call_id. - Assistant tool calls are stored in
tool_callsarray.
Constructor
dart
const OpenAiMessageMapper()Methods
`MappedMessages mapMessages(
List<Message> messages, {
required String systemPrompt,
})`