Skip to main content

DomainAllowlistGuard

Struct DomainAllowlistGuard 

Source
pub struct DomainAllowlistGuard { /* private fields */ }
Expand description

Deny browser navigation to any host not on an operator allowlist.

The allowlist holds bare hosts (e.g. example.com). A target host matches if it equals an allowed host or is a subdomain of one (docs.example.com matches example.com). Matching is case-insensitive. An empty allowlist denies all navigation (deny-by-default).

Implementations§

Source§

impl DomainAllowlistGuard

Source

pub fn new(hosts: impl IntoIterator<Item = impl Into<String>>) -> Self

Build from an iterator of allowed hosts. Hosts are lowercased; a leading *., scheme, or path is stripped to the bare host.

Source

pub fn allow_evaluate_script(self, allow: bool) -> Self

Permit LLM-initiated evaluate_script despite its exfiltration risk. Off by default; enable only when the agent operates on trusted pages.

Source

pub fn host_allowed(&self, host: &str) -> bool

Is host allowed (equal to, or a subdomain of, an allowlisted host)?

Trait Implementations§

Source§

impl Guardrail for DomainAllowlistGuard

Source§

fn name(&self) -> &str

Human-readable name for this guardrail, used in events and audit. Override to attribute which guardrail fired in logs.
Source§

fn pre_tool( &self, call: &ToolCall, ) -> Pin<Box<dyn Future<Output = Result<GuardAction, Error>> + Send + '_>>

Called before each tool execution. Can deny individual tool calls. Deny returns a ToolResult::error for that call. Err aborts the run.
Source§

fn pre_llm( &self, _request: &mut CompletionRequest, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + '_>>

Called before each LLM call. Can mutate the request (e.g., inject safety instructions, redact content). Err aborts the run.
Source§

fn post_llm( &self, _response: &mut CompletionResponse, ) -> Pin<Box<dyn Future<Output = Result<GuardAction, Error>> + Send + '_>>

Called after each LLM response. Can inspect and mutate the response (e.g. redact PII in ContentBlock::Text blocks before it reaches the caller, audit log, or downstream tools). Read more
Source§

fn post_tool( &self, _call: &ToolCall, _output: &mut ToolOutput, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + '_>>

Called after each tool execution (after truncation). Can mutate the output (e.g., redact sensitive data). Err converts to a tool error (consistent with tool execution errors — the agent loop continues).
Source§

fn set_turn(&self, _turn: usize)

Called by the agent loop before each guardrail evaluation to provide the current turn number. Stateful guardrails (e.g., BehavioralMonitorGuardrail) can override this to track turn context.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more