Skip to main content

wauldo/
lib.rs

1//! Wauldo Rust SDK
2//!
3//! Provides two client interfaces:
4//! - `AgentClient` — MCP server client (stdio JSON-RPC) for reasoning, planning, tools
5//! - `HttpClient` — REST API client (OpenAI-compatible) for chat, embeddings, RAG, orchestrator
6//!
7//! # Quick Start (HTTP API)
8//!
9//! ```rust,no_run
10//! use wauldo::{HttpClient, ChatRequest, ChatMessage, Result};
11//!
12//! #[tokio::main]
13//! async fn main() -> Result<()> {
14//!     let client = HttpClient::localhost()?;
15//!
16//!     let models = client.list_models().await?;
17//!     println!("Models: {:?}", models.data.iter().map(|m| &m.id).collect::<Vec<_>>());
18//!
19//!     let req = ChatRequest::new("qwen2.5:7b", vec![ChatMessage::user("Hello!")]);
20//!     let resp = client.chat(req).await?;
21//!     println!("{}", resp.choices[0].message.content.as_deref().unwrap_or(""));
22//!
23//!     Ok(())
24//! }
25//! ```
26
27mod client;
28pub mod conversation;
29mod error;
30pub mod http_client;
31pub mod http_config;
32mod http_request;
33pub mod http_types;
34pub mod mock_client;
35mod retry;
36mod sse_parser;
37mod transport;
38mod types;
39
40pub use client::AgentClient;
41pub use conversation::Conversation;
42pub use error::{Error, Result};
43pub use http_client::HttpClient;
44pub use http_config::HttpConfig;
45pub use http_types::*;
46pub use mock_client::MockHttpClient;
47pub use types::*;