pub struct PolicyValidator { /* private fields */ }Expand description
Validates tool calls against plain-language policies using an LLM.
Implementations§
Source§impl PolicyValidator
impl PolicyValidator
Sourcepub fn new(
policies: Vec<String>,
timeout: Duration,
fail_open: bool,
exempt_tools: Vec<String>,
) -> Self
pub fn new( policies: Vec<String>, timeout: Duration, fail_open: bool, exempt_tools: Vec<String>, ) -> Self
Create a new validator with pre-parsed policy lines.
Sourcepub async fn validate(
&self,
tool_name: &str,
params: &Map<String, Value>,
llm: &dyn PolicyLlmClient,
) -> PolicyDecision
pub async fn validate( &self, tool_name: &str, params: &Map<String, Value>, llm: &dyn PolicyLlmClient, ) -> PolicyDecision
Validate a tool call against the configured policies.
Returns PolicyDecision::Allow, PolicyDecision::Deny, or
PolicyDecision::Error (behavior on error controlled by fail_open).
Auto Trait Implementations§
impl Freeze for PolicyValidator
impl RefUnwindSafe for PolicyValidator
impl Send for PolicyValidator
impl Sync for PolicyValidator
impl Unpin for PolicyValidator
impl UnsafeUnpin for PolicyValidator
impl UnwindSafe for PolicyValidator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request