rushai_protocol/
permission.rs1use serde::{Deserialize, Serialize};
2
3use crate::ids::{RequestId, SessionId};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
7pub struct PermissionRequest {
8 pub id: RequestId,
9 pub session: SessionId,
10 pub tool: String,
11 pub action: String,
12 #[serde(default, skip_serializing_if = "Option::is_none")]
13 pub path: Option<String>,
14 pub description: String,
15}
16
17#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
18#[serde(rename_all = "snake_case")]
19pub enum Decision {
20 Once,
22 Session,
24 Always,
26 Deny,
27}