reagent-rs 0.2.9

A Rust library for building AI agents with MCP, custom tools and skills
Documentation
use serde::{Deserialize, Serialize};
use serde_json::Value;

use crate::{
    services::llm::models::chat::{ChatRequest, ChatResponse},
    ToolCall,
};

#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum NotificationContent {
    Done(Success, Response),
    PromptRequest(ChatRequest),
    PromptSuccessResult(ChatResponse),
    PromptErrorResult(String),
    ToolCallRequest(ToolCall),
    ToolCallSuccessResult(String),
    ToolCallErrorResult(String),
    Token(Token),
    McpToolNotification(String),
    Custom(Value),
}

pub type Success = bool;
pub type Response = Option<String>;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Token {
    pub tag: Option<String>,
    pub value: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct McpEnvelope {
    pub progress_token: i32,
    pub progress: i32,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct McpRaw {
    pub progress_token: i32,
    pub progress: i32,
    pub message: String,
}