agent_base/types/
checkpoint.rs1use 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}