tower_a2a/protocol/
mod.rs1use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6pub mod agent;
7pub mod error;
8pub mod message;
9pub mod operation;
10pub mod task;
11
12pub use agent::{AgentCapabilities, AgentCard};
13pub use error::{A2AError, TaskError};
14pub use message::{Message, MessagePart, Role};
15pub use operation::A2AOperation;
16pub use task::{Task, TaskStatus};
17
18#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
20pub struct Artifact {
21 pub artifact_id: String,
23
24 pub name: Option<String>,
26
27 pub description: Option<String>,
29
30 pub parts: Vec<MessagePart>,
32
33 pub metadata: Option<Value>,
34
35 #[serde(skip_serializing_if = "Vec::is_empty")]
37 pub extensions: Vec<String>,
38}