pub struct InteractivePermissionDecider { /* private fields */ }Expand description
Interactive permission decider (used by AgentLoop). Checks PermissionStore first (session grants, overrides), then falls back to sending approval request via channel.
Implementations§
Source§impl InteractivePermissionDecider
impl InteractivePermissionDecider
pub fn new( request_tx: UnboundedSender<ApprovalRequest>, response_rx: UnboundedReceiver<PermissionDecision>, permission_store: Arc<RwLock<PermissionStore>>, ) -> Self
Trait Implementations§
Source§impl PermissionDecider for InteractivePermissionDecider
impl PermissionDecider for InteractivePermissionDecider
fn decide<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
call: &'life1 ToolCall,
approval: &'life2 ApprovalRequirement,
) -> Pin<Box<dyn Future<Output = PermissionDecision> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn will_auto_approve(
&self,
call: &ToolCall,
approval: &ApprovalRequirement,
) -> bool
fn will_auto_approve( &self, call: &ToolCall, approval: &ApprovalRequirement, ) -> bool
Quick synchronous check: will this call be auto-approved without
user interaction? Used by TurnRunner to skip the
ApprovalRequested event (and its associated TUI prompt row)
when the PermissionStore already has a session grant or override
that will cause decide() to return Allow immediately. Read moreAuto Trait Implementations§
impl !Freeze for InteractivePermissionDecider
impl !RefUnwindSafe for InteractivePermissionDecider
impl Send for InteractivePermissionDecider
impl Sync for InteractivePermissionDecider
impl Unpin for InteractivePermissionDecider
impl UnsafeUnpin for InteractivePermissionDecider
impl UnwindSafe for InteractivePermissionDecider
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 more