a2a_rs/domain/events/
task_events.rs1use serde::{Deserialize, Serialize};
2use serde_json::{Map, Value};
3
4use crate::domain::core::{message::Artifact, task::TaskStatus};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct TaskStatusUpdateEvent {
9 #[serde(rename = "taskId")]
10 pub task_id: String,
11 #[serde(rename = "contextId")]
12 pub context_id: String,
13 pub kind: String, pub status: TaskStatus,
15 #[serde(rename = "final")]
16 pub final_: bool,
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub metadata: Option<Map<String, Value>>,
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct TaskArtifactUpdateEvent {
24 #[serde(rename = "taskId")]
25 pub task_id: String,
26 #[serde(rename = "contextId")]
27 pub context_id: String,
28 pub kind: String, pub artifact: Artifact,
30 #[serde(skip_serializing_if = "Option::is_none")]
31 pub append: Option<bool>,
32 #[serde(skip_serializing_if = "Option::is_none", rename = "lastChunk")]
33 pub last_chunk: Option<bool>,
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub metadata: Option<Map<String, Value>>,
36}