Skip to main content

RunWorkflowTool

Struct RunWorkflowTool 

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

The run_workflow tool: the agent picks a recipe by name + args.

Implementations§

Source§

impl RunWorkflowTool

Source

pub fn new(registry: WorkflowRegistry, provider: Arc<BoxedProvider>) -> Self

Build the tool over a registry and the shared provider used to run the recipe’s flow/ agents.

Source

pub fn with_agent_events(self, sink: Arc<OnEvent>) -> Self

Forward every recipe-internal agent’s event stream (tool calls, LLM responses, run lifecycle) to sink — e.g. the TUI trace. Without this, a recipe run is a single opaque tool call to any observer.

Source

pub fn with_provider_factory(self, factory: Arc<ProviderFactory>) -> Self

Install the per-call model resolver threaded into every recipe ctx — lets recipes run stages on role-named models (.model("fast")).

Source

pub fn with_workspace(self, root: PathBuf) -> Self

Workspace (git repo root) threaded into every recipe ctx — required for recipes whose agents ask for Isolation::Worktree.

Source

pub fn with_journal_dir(self, dir: PathBuf) -> Self

Enable resume: each run journals its agent outputs under dir, keyed by recipe + canonicalized args. Re-invoking the SAME call replays the completed agents at zero cost and continues the rest — an interrupted workflow picks up where it left off (scope the dir per session to avoid stale cross-session replays).

Trait Implementations§

Source§

impl Tool for RunWorkflowTool

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