claude_agent/session/state/
policy.rs1use std::collections::HashMap;
7
8use serde::{Deserialize, Serialize};
9
10#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
11#[serde(rename_all = "snake_case")]
12pub enum PermissionMode {
13 #[default]
14 Default,
15 AcceptEdits,
16 Bypass,
17 Plan,
18}
19
20#[derive(Clone, Debug, Default, Serialize, Deserialize)]
25pub struct SessionPermissions {
26 pub mode: PermissionMode,
27 #[serde(default)]
28 pub allow: Vec<String>,
29 #[serde(default)]
30 pub deny: Vec<String>,
31 #[serde(default)]
32 pub tool_limits: HashMap<String, SessionToolLimits>,
33}
34
35#[derive(Clone, Debug, Default, Serialize, Deserialize)]
39pub struct SessionToolLimits {
40 pub timeout_ms: Option<u64>,
41 pub max_output_size: Option<usize>,
42}