pub struct PlanModeExecutor { /* private fields */ }Expand description
Wraps an ErasedToolExecutor for Plan permission mode.
Exposes the real tool catalog via tool_definitions_erased() so the LLM can
reference existing tools in its plan, but blocks all execution methods with
ToolError::Blocked. This implements read-only planning: the agent sees what
tools exist but cannot invoke them.
Implementations§
Source§impl PlanModeExecutor
impl PlanModeExecutor
Sourcepub fn new(inner: Arc<dyn ErasedToolExecutor>) -> Self
pub fn new(inner: Arc<dyn ErasedToolExecutor>) -> Self
Wrap inner with plan-mode restrictions.
Trait Implementations§
Source§impl ErasedToolExecutor for PlanModeExecutor
impl ErasedToolExecutor for PlanModeExecutor
fn execute_erased<'a>( &'a self, _response: &'a str, ) -> Pin<Box<dyn Future<Output = Result<Option<ToolOutput>, ToolError>> + Send + 'a>>
fn execute_confirmed_erased<'a>( &'a self, _response: &'a str, ) -> Pin<Box<dyn Future<Output = Result<Option<ToolOutput>, ToolError>> + Send + 'a>>
fn tool_definitions_erased(&self) -> Vec<ToolDef>
fn execute_tool_call_erased<'a>( &'a self, call: &'a ToolCall, ) -> Pin<Box<dyn Future<Output = Result<Option<ToolOutput>, ToolError>> + Send + 'a>>
Source§fn set_skill_env(&self, env: Option<HashMap<String, String>>)
fn set_skill_env(&self, env: Option<HashMap<String, String>>)
Inject environment variables for the currently active skill. No-op by default.
Source§fn is_tool_retryable_erased(&self, _tool_id: &str) -> bool
fn is_tool_retryable_erased(&self, _tool_id: &str) -> bool
Whether the executor can safely retry this tool call on a transient error.
fn execute_tool_call_confirmed_erased<'a>( &'a self, call: &'a ToolCall, ) -> Pin<Box<dyn Future<Output = Result<Option<ToolOutput>, ToolError>> + Send + 'a>>
Source§fn set_effective_trust(&self, _level: SkillTrustLevel)
fn set_effective_trust(&self, _level: SkillTrustLevel)
Set the effective trust level for the currently active skill. No-op by default.
Auto Trait Implementations§
impl Freeze for PlanModeExecutor
impl !RefUnwindSafe for PlanModeExecutor
impl Send for PlanModeExecutor
impl Sync for PlanModeExecutor
impl Unpin for PlanModeExecutor
impl UnsafeUnpin for PlanModeExecutor
impl !UnwindSafe for PlanModeExecutor
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