pub struct EnterPlanModeTool { /* private fields */ }Expand description
Tool that switches the agent into read-only planning mode.
Once entered, any non-readonly tool call (except exit_plan_mode) is
blocked with an error message. The agent should use read tools to explore
the codebase, then call exit_plan_mode with its markdown plan.
When a PermissionsConfig is provided, the tool also checks which tools
are in Plan mode and includes that information in the response, guiding
the agent to focus on those tools during planning.
Implementations§
Source§impl EnterPlanModeTool
impl EnterPlanModeTool
Sourcepub fn new(gate: Arc<PlanApprovalGate>) -> Self
pub fn new(gate: Arc<PlanApprovalGate>) -> Self
Create a new EnterPlanModeTool sharing the given gate.
Sourcepub fn with_permissions(self, permissions: Arc<PermissionsConfig>) -> Self
pub fn with_permissions(self, permissions: Arc<PermissionsConfig>) -> Self
Attach a permissions config so the tool can report which tools
are in Plan mode.
Trait Implementations§
Source§impl Tool for EnterPlanModeTool
impl Tool for EnterPlanModeTool
fn spec(&self) -> ToolSpec
fn execute<'life0, 'async_trait>(
&'life0 self,
_arguments: Value,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn side_effect_class(&self) -> ToolSideEffect
fn side_effect_class(&self) -> ToolSideEffect
Classify this tool’s observable side-effects. Default is the most
conservative value (
External) so any unannotated tool is treated
as risky on resume. Override to ReadOnly or Mutating for
built-in tools; MCP tools derive this from their annotations.Source§fn is_readonly(&self) -> bool
fn is_readonly(&self) -> bool
Convenience: a tool is read-only iff it classifies as
ReadOnly.
Used by the parallel-dispatch path in agent.rs. Override only if
you have an unusual reason (you almost never should — override
side_effect_class instead and let this default through).Auto Trait Implementations§
impl Freeze for EnterPlanModeTool
impl RefUnwindSafe for EnterPlanModeTool
impl Send for EnterPlanModeTool
impl Sync for EnterPlanModeTool
impl Unpin for EnterPlanModeTool
impl UnsafeUnpin for EnterPlanModeTool
impl UnwindSafe for EnterPlanModeTool
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
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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