claude_agent/session/state/
config.rs

1//! Session configuration.
2
3use serde::{Deserialize, Serialize};
4
5use super::enums::SessionMode;
6use super::policy::PermissionPolicy;
7
8#[derive(Clone, Debug, Serialize, Deserialize)]
9pub struct SessionConfig {
10    pub model: String,
11    pub max_tokens: u32,
12    #[serde(default)]
13    pub permission_policy: PermissionPolicy,
14    #[serde(default)]
15    pub mode: SessionMode,
16    pub ttl_secs: Option<u64>,
17    pub system_prompt: Option<String>,
18}
19
20impl Default for SessionConfig {
21    fn default() -> Self {
22        Self {
23            model: "claude-sonnet-4-5".to_string(),
24            max_tokens: 16384,
25            permission_policy: PermissionPolicy::default(),
26            mode: SessionMode::default(),
27            ttl_secs: None,
28            system_prompt: None,
29        }
30    }
31}