aagt_core/agent/
session.rs1use crate::agent::message::Message;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
6#[serde(rename_all = "snake_case")]
7pub enum SessionStatus {
8 Thinking,
10 PendingTools,
12 AwaitingApproval {
14 tool_name: String,
15 arguments: String,
16 },
17 Executing,
19 Completed,
21 Failed(String),
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct AgentSession {
28 pub id: String,
30 pub messages: Vec<Message>,
32 pub step: usize,
34 pub status: SessionStatus,
36 pub updated_at: chrono::DateTime<chrono::Utc>,
38}
39
40impl AgentSession {
41 pub fn new(id: String) -> Self {
43 Self {
44 id,
45 messages: Vec::new(),
46 step: 0,
47 status: SessionStatus::Thinking,
48 updated_at: chrono::Utc::now(),
49 }
50 }
51}