Skip to main content

agent_base/types/
checkpoint.rs

1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4use super::message::ChatMessage;
5use super::session::SessionId;
6
7#[derive(Clone, Debug, Serialize, Deserialize)]
8pub struct CheckpointData {
9    pub session_id: SessionId,
10    pub user_input: String,
11    pub step: CheckpointStep,
12    pub turn_count: u32,
13}
14
15#[derive(Clone, Debug, Serialize, Deserialize)]
16pub enum CheckpointStep {
17    AfterUserInput,
18    BeforeLlm {
19        messages: Vec<ChatMessage>,
20        tools: Vec<Value>,
21    },
22    BeforeToolCalls {
23        tool_calls: Vec<(String, String, String)>,
24    },
25    AfterToolCalls {
26        tool_calls: Vec<(String, String, String)>,
27        results: Vec<ToolResultData>,
28    },
29}
30
31#[derive(Clone, Debug, Serialize, Deserialize)]
32pub struct ToolResultData {
33    pub tool_call_id: String,
34    pub tool_name: String,
35    pub summary: String,
36}