Skip to main content

agent_types/
approval.rs

1//! Approval-related pure types: RiskLevel, ApprovalDecision, ApprovalRequest.
2
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6#[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)]
7pub enum RiskLevel {
8    Safe,
9    Sensitive,
10    Destructive,
11}
12
13#[derive(Clone, Debug, Deserialize, Serialize)]
14pub struct ApprovalRequest {
15    pub title: String,
16    pub message: String,
17    pub action_key: Option<String>,
18    pub risk_level: RiskLevel,
19    pub raw: Option<Value>,
20}
21
22#[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)]
23pub enum ApprovalDecision {
24    AllowOnce,
25    AllowAlways,
26    Deny,
27}