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. signature is 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

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,
    )
pub type UserContent {
  UserText(text: String)
  UserFile(data: FileData, media_type: String)
}

Constructors

  • UserText(text: String)
  • UserFile(data: FileData, media_type: String)

Values

pub fn assistant(text: String) -> Message
pub fn system(content: String) -> Message
pub fn tool_results(results: List(ToolResult)) -> Message
pub fn user(text: String) -> Message
pub fn user_parts(content: List(UserContent)) -> Message
✨ Search Document