objectiveai-sdk 2.0.6

ObjectiveAI SDK, definitions, and utilities
Documentation
//! Message type for unary agent completion responses.

use crate::agent::completions::response;
use serde::{Deserialize, Serialize};
use schemars::JsonSchema;

#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, JsonSchema)]
#[serde(untagged)]
#[schemars(rename = "agent.completions.response.unary.Message")]
pub enum Message {
    #[schemars(title = "Assistant")]
    Assistant(super::AssistantResponse),
    #[schemars(title = "Tool")]
    Tool(response::ToolResponse),
}

impl From<response::streaming::MessageChunk> for Message {
    fn from(chunk: response::streaming::MessageChunk) -> Self {
        match chunk {
            response::streaming::MessageChunk::Assistant(chunk) => {
                Message::Assistant(chunk.into())
            }
            response::streaming::MessageChunk::Tool(chunk) => {
                Message::Tool(chunk)
            }
        }
    }
}