a2a_rs_client/lib.rs
1//! A2A Client Library
2//!
3//! This library provides a reusable client for communicating with A2A RC 1.0 compliant agent servers.
4//!
5//! # Example Usage
6//!
7//! ```rust,ignore
8//! use a2a_rs_client::{A2aClient, ClientConfig};
9//! use a2a_rs_core::{Message, Part, Role};
10//!
11//! let config = ClientConfig {
12//! server_url: "http://localhost:8080".to_string(),
13//! max_polls: 30,
14//! poll_interval_ms: 2000,
15//! oauth: None,
16//! };
17//!
18//! let client = A2aClient::new(config)?;
19//! let card = client.fetch_agent_card().await?;
20//!
21//! let message = Message {
22//! message_id: uuid::Uuid::new_v4().to_string(),
23//! role: Role::User,
24//! parts: vec![Part::text("Hello")],
25//! context_id: None,
26//! task_id: None,
27//! extensions: vec![],
28//! reference_task_ids: None,
29//! metadata: None,
30//! };
31//!
32//! let response = client.send_message(message, None).await?;
33//! ```
34
35mod client;
36
37// Re-export the main client types
38pub use client::{A2aClient, ClientConfig, OAuthConfig};
39
40// Re-export utility functions for advanced usage
41pub use client::{generate_code_challenge, generate_code_verifier, generate_random_string};