Skip to main content

agent_base/types/
events.rs

1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4use super::approval::ApprovalRequest;
5use super::checkpoint::CheckpointData;
6use super::plan::ExecutionPlan;
7use super::session::SessionId;
8
9#[derive(Clone, Debug, Serialize, Deserialize)]
10#[serde(tag = "type", rename_all = "camelCase")]
11pub enum AgentEvent {
12    TextDelta {
13        session_id: SessionId,
14        text: String,
15    },
16    ThoughtDelta {
17        session_id: SessionId,
18        text: String,
19    },
20    ToolCallStarted {
21        session_id: SessionId,
22        tool_name: String,
23        args_json: String,
24    },
25    ToolCallFinished {
26        session_id: SessionId,
27        tool_name: String,
28        summary: String,
29    },
30    AwaitingApproval {
31        session_id: SessionId,
32        request: ApprovalRequest,
33    },
34    Checkpoint {
35        session_id: SessionId,
36        checkpoint: CheckpointData,
37    },
38    RunFinished {
39        session_id: SessionId,
40    },
41    Custom {
42        session_id: SessionId,
43        payload: Value,
44    },
45    PlanGenerated {
46        session_id: SessionId,
47        plan: ExecutionPlan,
48    },
49    PlanStepStarted {
50        session_id: SessionId,
51        step_id: String,
52        step_description: String,
53    },
54    PlanStepCompleted {
55        session_id: SessionId,
56        step_id: String,
57        success: bool,
58        result: Option<String>,
59    },
60    PlanCompleted {
61        session_id: SessionId,
62        plan_id: String,
63        success: bool,
64    },
65    PlanGenerating {
66        session_id: SessionId,
67        plan_id: String,
68    },
69    PlanStepParsed {
70        session_id: SessionId,
71        plan_id: String,
72        step_index: usize,
73        step_id: String,
74        step_description: String,
75    },
76    PlanFailed {
77        session_id: SessionId,
78        plan_id: String,
79        error: String,
80    },
81}