Skip to main content

VerifyCommandTool

Struct VerifyCommandTool 

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

The verify tool: runs the harness-configured verification command(s) in the workspace and reports a structured, gate-able PASS/FAIL. Its two reasons to exist over raw bash: (1) the command is configured by the harness (the agent never guesses what “passing” means), and (2) the result is a machine-greppable VERIFY_SENTINEL the goal judge / a deterministic gate can key on. Commands run sequentially and fail-fast (stop at the first non-zero exit), so the final sentinel is the overall verdict.

Trust model: the command is operator-configured, not agent-supplied, so it runs with ambient authority — like a CI command — and is deliberately NOT sandboxed the way the agent-facing bash tool is (it does not apply BashTool::with_sandbox’s Landlock / EnvPolicy / CorePathPolicy). It intentionally does not reuse BashTool for that reason: the agent’s bash sandbox and the operator’s verify authority are kept separate, and the small spawn/timeout plumbing here is the price of that separation.

Implementations§

Source§

impl VerifyCommandTool

Source

pub fn new(workspace: impl Into<PathBuf>, commands: Vec<String>) -> Self

Create a verify tool that runs commands (in order, fail-fast) with the workspace as the working directory.

Source

pub fn timeout(self, timeout: Duration) -> Self

Override the per-command timeout (default 300s).

Source

pub fn max_tail(self, max_tail: usize) -> Self

Override the per-command output tail cap (default 4000 bytes).

Trait Implementations§

Source§

impl Tool for VerifyCommandTool

Source§

fn definition(&self) -> ToolDefinition

Return the tool’s definition (name, description, input schema) for the LLM.
Source§

fn execute( &self, _ctx: &ExecutionContext, _input: Value, ) -> Pin<Box<dyn Future<Output = Result<ToolOutput, Error>> + Send + '_>>

Execute the tool with the LLM-supplied input JSON. Read more
Source§

fn redact_for_history(&self, output: &str) -> String

Optional override: produce a compact version of the tool output suitable for inclusion in conversation history sent to subsequent LLM turns. The default implementation returns the input verbatim. Read more

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