#![cfg_attr(docsrs, feature(doc_cfg))]
#![deny(missing_docs)]
#![deny(rustdoc::broken_intra_doc_links)]
#[cfg(test)]
extern crate mockito as _;
#[cfg(test)]
extern crate pretty_assertions as _;
#[cfg(test)]
extern crate tokio_test as _;
#[cfg(test)]
extern crate tracing_subscriber as _;
#[cfg(feature = "grpc")]
extern crate google_api_proto as _;
#[cfg(feature = "telemetry")]
extern crate opentelemetry as _;
#[cfg(feature = "telemetry")]
extern crate tracing_opentelemetry as _;
pub mod error;
pub(crate) mod jsonrpc;
pub mod types;
#[cfg(feature = "client")]
#[cfg_attr(docsrs, doc(cfg(feature = "client")))]
pub mod client;
#[cfg(feature = "server")]
#[cfg_attr(docsrs, doc(cfg(feature = "server")))]
pub mod server;
#[cfg(feature = "grpc")]
#[cfg_attr(docsrs, doc(cfg(feature = "grpc")))]
pub mod grpc;
pub use error::{A2AError, Result};
pub use types::{
AgentCapabilities, AgentCard, AgentInterface, AgentSkill, Artifact, ArtifactId, ContextId,
ListTasksRequest, ListTasksResponse, Message, MessageId, Metadata, Part, PartContent,
PushNotificationConfig, Role, SendMessageConfiguration, SendMessageRequest,
SendMessageResponse, StreamResponse, Task, TaskArtifactUpdateEvent, TaskId, TaskState,
TaskStatus, TaskStatusUpdateEvent, TransportProtocol,
};
pub const PROTOCOL_VERSION: &str = "1.0";
pub const SVC_PARAM_VERSION: &str = "A2A-Version";
pub const SVC_PARAM_EXTENSIONS: &str = "A2A-Extensions";
pub const WELL_KNOWN_AGENT_CARD_PATH: &str = "/.well-known/agent-card.json";
#[must_use]
pub fn agent_card_url(base_url: &str) -> String {
format!(
"{}{}",
base_url.trim_end_matches('/'),
WELL_KNOWN_AGENT_CARD_PATH
)
}
pub const SDK_VERSION: &str = env!("CARGO_PKG_VERSION");