use actix::Message;
use bytes::Bytes;
use std::sync::Arc;
#[derive(Clone, Debug)]
pub struct SseConnMetaInfo {
pub session_id: Arc<String>,
pub mcp_server_key: Arc<String>,
}
#[derive(Message)]
#[rtype(result = "anyhow::Result<SseStreamManageResult>")]
pub enum SseStreamManageCmd {
AddConn(
SseConnMetaInfo,
tokio::sync::mpsc::Sender<anyhow::Result<Bytes>>,
),
RemoveConn(Arc<String>),
GetMetaInfo(Arc<String>),
}
#[derive(Message)]
#[rtype(result = "anyhow::Result<SseStreamManageResult>")]
pub enum SseStreamManageAsyncCmd {
SendMessage(Arc<String>, String),
}
pub enum SseStreamManageResult {
None,
MetaInfo(Option<SseConnMetaInfo>),
}