a2a-rs 0.4.0

Rust implementation of the Agent-to-Agent (A2A) Protocol
Documentation
//! Ports (interfaces) for the A2A protocol
//!
//! Ports define the interfaces that our application needs, independent of implementation details.
//! They represent the "what" - what operations our application needs to perform.
//!
//! ## Organization
//!
//! - **Business capability ports**: Focused interfaces for specific business capabilities
//!   - `authenticator`: Authentication and authorization
//!   - `message_handler`: Message processing
//!   - `task_manager`: Task lifecycle management  
//!   - `notification_manager`: Push notifications
//!   - `streaming_handler`: Real-time updates

// Business capability ports (focused domain interfaces)
pub mod authenticator;
pub mod client;
pub mod interceptor;
pub mod message_handler;
pub mod notification_manager;
pub mod streaming_handler;
pub mod task_manager;

// Re-export business capability interfaces
pub use authenticator::{
    AuthContext, AuthContextExtractor, AuthPrincipal, Authenticator, CompositeAuthenticator,
};
pub use client::{StreamEvent, StreamItem, Transport};
pub use interceptor::{CallContext, CallInterceptor, CallSide, run_after, run_before};
pub use message_handler::AsyncMessageHandler;
pub use notification_manager::{
    AsyncNotificationManager, AsyncNotificationManagerExt, AsyncPushNotifier, NoopPushNotifier,
};
pub use streaming_handler::{
    AsyncStreamingHandler, SeqEvent, Subscriber as StreamingSubscriber, UpdateEvent,
};
pub use task_manager::{
    AsyncTaskLifecycle, AsyncTaskLifecycleExt, AsyncTaskQuery, AsyncTaskVersioning,
};