use crate::a2a::A2AProtocol;
use std::sync::Arc;
pub struct A2aApi {
protocol: Arc<A2AProtocol>,
message_bus: oxi_sdk::MessageBus,
}
impl A2aApi {
pub fn new(protocol: Arc<A2AProtocol>) -> Self {
Self {
protocol,
message_bus: oxi_sdk::MessageBus::new(256),
}
}
pub fn protocol(&self) -> &Arc<A2AProtocol> {
&self.protocol
}
pub fn message_bus(&self) -> &oxi_sdk::MessageBus {
&self.message_bus
}
pub fn subscribe(&self) -> tokio::sync::broadcast::Receiver<oxi_sdk::InterAgentMessage> {
self.message_bus.subscribe()
}
}