- 1
//! vak-permission: rule-based permission decisions, decoupled from - 2
//! enforcement. Evaluate(tool, args, mode) -> Decision; the agent loop and - 3
//! UI approvers decide what Ask becomes. - 4
- 5
pub mod engine; - 6
pub mod rules; - 7
- 8
pub use engine::{AskSource, Decision, PermissionEngine, path_in_workspace}; - 9
pub use rules::{Rule, RuleDecision, RuleError}; - 10
- 11
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] - 12
pub enum Mode { - 13
ReadOnly, - 14
#[default] - 15
WorkspaceWrite, - 16
FullAccess, - 17
} - 18
- 19
impl Mode { - 20
pub fn parse(s: &str) -> Option<Mode> { - 21
match s { - 22
"read-only" | "readonly" => Some(Mode::ReadOnly), - 23
"workspace-write" => Some(Mode::WorkspaceWrite), - 24
"full-access" | "fullaccess" => Some(Mode::FullAccess), - 25
_ => None, - 26
} - 27
} - 28
- 29
pub fn as_str(&self) -> &'static str { - 30
match self { - 31
Mode::ReadOnly => "read-only", - 32
Mode::WorkspaceWrite => "workspace-write", - 33
Mode::FullAccess => "full-access", - 34
} - 35
} - 36
} - 37
Indexing the workspace…
Vakyartha documentation is discovering safe artifacts, anchors, and source references.