claude_agent/session/state/
enums.rs

1//! Session state enumerations.
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Clone, Debug, Default, Serialize, Deserialize)]
6#[serde(tag = "type", rename_all = "snake_case")]
7pub enum SessionMode {
8    #[default]
9    Stateless,
10    Stateful {
11        persistence: String,
12    },
13}
14
15#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
16#[serde(rename_all = "snake_case")]
17pub enum SessionState {
18    #[default]
19    Created,
20    Active,
21    WaitingForTools,
22    WaitingForUser,
23    Paused,
24    Completed,
25    Failed,
26    Cancelled,
27}
28
29#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
30#[serde(tag = "type", rename_all = "snake_case")]
31pub enum SessionType {
32    #[default]
33    Main,
34    Subagent {
35        agent_type: String,
36        description: String,
37    },
38}