claude-sdk-rs 1.0.0

Rust SDK for Claude AI with CLI integration - type-safe async API for Claude Code and direct SDK usage
Documentation
use crate::mcp::core::error::WorkflowError;
use serde::{Deserialize, Serialize};

use super::server::CustomerSupportMCPServer;

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CustomerCareEventData {
    pub ticket_id: String,
    pub customer_id: String,
    pub message: String,
    pub priority: String,
}

mod analyze_ticket;
mod close_ticket;
mod determine_intent;
mod escalate_ticket;
mod filter_spam;
mod generate_response;
mod process_invoice;
mod send_reply;
mod ticket_router;
mod validate_ticket;

pub use analyze_ticket::AnalyzeTicketNode;
pub use close_ticket::CloseTicketNode;
pub use determine_intent::DetermineTicketIntentNode;
pub use escalate_ticket::EscalateTicketNode;
pub use filter_spam::FilterSpamNode;
pub use generate_response::GenerateResponseNode;
pub use process_invoice::ProcessInvoiceNode;
pub use send_reply::SendReplyNode;
pub use ticket_router::TicketRouterNode;
pub use validate_ticket::ValidateTicketNode;

pub async fn register_customer_support_tools(
    server: &mut CustomerSupportMCPServer,
) -> Result<(), WorkflowError> {
    ValidateTicketNode::register(server).await?;
    FilterSpamNode::register(server).await?;
    DetermineTicketIntentNode::register(server).await?;
    AnalyzeTicketNode::register(server).await?;
    GenerateResponseNode::register(server).await?;
    EscalateTicketNode::register(server).await?;
    ProcessInvoiceNode::register(server).await?;
    CloseTicketNode::register(server).await?;
    SendReplyNode::register(server).await?;
    TicketRouterNode::register(server).await?;
    Ok(())
}