tirea_agentos_server/
nats.rs1use crate::transport::nats::{NatsTransport, NatsTransportConfig};
2use crate::transport::NatsProtocolError;
3
4#[derive(Clone, Debug)]
5pub struct NatsConfig {
6 pub url: String,
7 pub ag_ui_subject: String,
8 pub ai_sdk_subject: String,
9 pub outbound_buffer: usize,
10}
11
12impl NatsConfig {
13 pub fn new(url: String) -> Self {
14 Self {
15 url,
16 ag_ui_subject: "agentos.ag-ui.runs".to_string(),
17 ai_sdk_subject: "agentos.ai-sdk.runs".to_string(),
18 outbound_buffer: 64,
19 }
20 }
21
22 pub async fn connect(&self) -> Result<NatsTransport, NatsProtocolError> {
23 let client = async_nats::connect(&self.url).await?;
24 Ok(NatsTransport::new(client, self.transport_config()))
25 }
26
27 fn transport_config(&self) -> NatsTransportConfig {
28 NatsTransportConfig {
29 outbound_buffer: self.outbound_buffer,
30 }
31 }
32}