Skip to main content

PermissionChecker

Trait PermissionChecker 

Source
pub trait PermissionChecker: Send + Sync {
    // Required method
    fn evaluate(&self, request: &dyn PermissionRequest) -> PermissionDecision;
}
Expand description

Evaluates a PermissionRequest and returns a final PermissionDecision.

The BasicToolExecutor calls evaluate for every permission request returned by Tool::proposed_requests before invoking the tool. If any request is denied, execution is aborted; if any request requires approval, the executor returns a ToolInterruption.

For composing multiple policies, see CompositePermissionChecker.

§Example

use agentkit_tools_core::{PermissionChecker, PermissionDecision, PermissionRequest};

/// A checker that allows every operation unconditionally.
struct AllowAll;

impl PermissionChecker for AllowAll {
    fn evaluate(&self, _request: &dyn PermissionRequest) -> PermissionDecision {
        PermissionDecision::Allow
    }
}

Required Methods§

Source

fn evaluate(&self, request: &dyn PermissionRequest) -> PermissionDecision

Evaluate a single permission request and return the decision.

Implementors§