glean/message
Conversation message types. Discriminated union by role with typed content parts.
Types
pub type AssistantContent {
AssistantText(text: String)
AssistantReasoning(
text: String,
signature: option.Option(String),
)
AssistantRedactedReasoning(data: String)
AssistantToolCall(
tool_call_id: String,
tool_name: String,
arguments_json: String,
)
}
Constructors
-
AssistantText(text: String) -
AssistantReasoning( text: String, signature: option.Option(String), )Reasoning the model produced before answering.
signatureis the provider’s proof that the text is unmodified (Claude needs it to accept the reasoning back on the next turn). -
AssistantRedactedReasoning(data: String)Reasoning the provider returned encrypted (Claude’s redacted thinking). It must be sent back verbatim.
-
AssistantToolCall( tool_call_id: String, tool_name: String, arguments_json: String, )
pub type FileData {
Base64Data(data: String)
UrlData(url: String)
}
Constructors
-
Base64Data(data: String) -
UrlData(url: String)
pub type Message {
SystemMessage(content: String)
UserMessage(content: List(UserContent))
AssistantMessage(content: List(AssistantContent))
ToolResultMessage(results: List(ToolResult))
}
Constructors
-
SystemMessage(content: String) -
UserMessage(content: List(UserContent)) -
AssistantMessage(content: List(AssistantContent)) -
ToolResultMessage(results: List(ToolResult))
pub type ToolResult {
ToolResultOk(
tool_call_id: String,
tool_name: String,
output: String,
)
ToolResultError(
tool_call_id: String,
tool_name: String,
error_message: String,
)
}
Constructors
-
ToolResultOk( tool_call_id: String, tool_name: String, output: String, ) -
ToolResultError( tool_call_id: String, tool_name: String, error_message: String, )
Values
pub fn tool_results(results: List(ToolResult)) -> Message
pub fn user_parts(content: List(UserContent)) -> Message