pub struct SubAgentMiddleware { /* private fields */ }Expand description
Middleware that provides a task tool for spawning child agents.
The task tool creates a child deep agent and invokes it with the given description.
Recursion is bounded by max_depth.
Implementations§
Trait Implementations§
Source§impl AgentMiddleware for SubAgentMiddleware
impl AgentMiddleware for SubAgentMiddleware
Source§fn before_agent<'life0, 'life1, 'async_trait>(
&'life0 self,
_messages: &'life1 mut Vec<Message>,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn before_agent<'life0, 'life1, 'async_trait>(
&'life0 self,
_messages: &'life1 mut Vec<Message>,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Called once when the agent starts executing.
Source§fn after_agent<'life0, 'life1, 'async_trait>(
&'life0 self,
_messages: &'life1 mut Vec<Message>,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn after_agent<'life0, 'life1, 'async_trait>(
&'life0 self,
_messages: &'life1 mut Vec<Message>,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Called once when the agent finishes executing.
Source§fn before_model<'life0, 'life1, 'async_trait>(
&'life0 self,
_request: &'life1 mut ModelRequest,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn before_model<'life0, 'life1, 'async_trait>(
&'life0 self,
_request: &'life1 mut ModelRequest,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Called before each model invocation. Can modify the request.
Source§fn after_model<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_request: &'life1 ModelRequest,
_response: &'life2 mut ModelResponse,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn after_model<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_request: &'life1 ModelRequest,
_response: &'life2 mut ModelResponse,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Called after each model invocation. Can modify the response.
Source§fn wrap_model_call<'life0, 'life1, 'async_trait>(
&'life0 self,
request: ModelRequest,
next: &'life1 dyn ModelCaller,
) -> Pin<Box<dyn Future<Output = Result<ModelResponse, SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn wrap_model_call<'life0, 'life1, 'async_trait>(
&'life0 self,
request: ModelRequest,
next: &'life1 dyn ModelCaller,
) -> Pin<Box<dyn Future<Output = Result<ModelResponse, SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Wraps the model call. Override to intercept or replace the model invocation.
Source§fn wrap_tool_call<'life0, 'life1, 'async_trait>(
&'life0 self,
request: ToolCallRequest,
next: &'life1 dyn ToolCaller,
) -> Pin<Box<dyn Future<Output = Result<Value, SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn wrap_tool_call<'life0, 'life1, 'async_trait>(
&'life0 self,
request: ToolCallRequest,
next: &'life1 dyn ToolCaller,
) -> Pin<Box<dyn Future<Output = Result<Value, SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Wraps a tool call. Override to intercept or replace tool execution.
Source§fn before_file_op<'life0, 'life1, 'async_trait>(
&'life0 self,
_op: &'life1 FileOp,
) -> Pin<Box<dyn Future<Output = Result<FileOpDecision, SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn before_file_op<'life0, 'life1, 'async_trait>(
&'life0 self,
_op: &'life1 FileOp,
) -> Pin<Box<dyn Future<Output = Result<FileOpDecision, SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Called before a file operation. Return
Deny to block it.Source§fn after_file_op<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_op: &'life1 FileOp,
_result: &'life2 FileOpResult,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn after_file_op<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_op: &'life1 FileOp,
_result: &'life2 FileOpResult,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Called after a file operation completes.
Source§fn before_command<'life0, 'life1, 'async_trait>(
&'life0 self,
_cmd: &'life1 CommandOp,
) -> Pin<Box<dyn Future<Output = Result<CommandDecision, SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn before_command<'life0, 'life1, 'async_trait>(
&'life0 self,
_cmd: &'life1 CommandOp,
) -> Pin<Box<dyn Future<Output = Result<CommandDecision, SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Called before a shell command. Return
Deny to block it.Source§fn after_command<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_cmd: &'life1 CommandOp,
_result: &'life2 CommandResult,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn after_command<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_cmd: &'life1 CommandOp,
_result: &'life2 CommandResult,
) -> Pin<Box<dyn Future<Output = Result<(), SynapticError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Called after a shell command completes.
Auto Trait Implementations§
impl Freeze for SubAgentMiddleware
impl !RefUnwindSafe for SubAgentMiddleware
impl Send for SubAgentMiddleware
impl Sync for SubAgentMiddleware
impl Unpin for SubAgentMiddleware
impl UnsafeUnpin for SubAgentMiddleware
impl !UnwindSafe for SubAgentMiddleware
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