pub struct CompressedExecutor<E: ToolExecutor> { /* private fields */ }Expand description
Decorator that runs a compressor on each successful tool output.
The inner executor is called first; its output is then passed to compressor.compress.
If compression returns Ok(None) or Err(...), the original summary is kept intact.
Compression errors are logged as warnings but never propagate to the caller.
§Type parameters
E— the wrappedToolExecutor. OftenCompositeExecutororDynExecutor.
§Examples
use std::sync::Arc;
use zeph_tools::compression::{CompressedExecutor, IdentityCompressor};
// let executor = CompressedExecutor::new(inner_executor, Arc::new(IdentityCompressor), 200);Implementations§
Source§impl<E: ToolExecutor> CompressedExecutor<E>
impl<E: ToolExecutor> CompressedExecutor<E>
Sourcepub fn new(
inner: E,
compressor: Arc<dyn OutputCompressor>,
min_lines: usize,
) -> Self
pub fn new( inner: E, compressor: Arc<dyn OutputCompressor>, min_lines: usize, ) -> Self
Wrap inner with compressor.
Outputs with fewer than min_lines lines skip the compressor entirely.
Trait Implementations§
Source§impl<E: Debug + ToolExecutor> Debug for CompressedExecutor<E>
impl<E: Debug + ToolExecutor> Debug for CompressedExecutor<E>
Source§impl<E: ToolExecutor> ToolExecutor for CompressedExecutor<E>
impl<E: ToolExecutor> ToolExecutor for CompressedExecutor<E>
Source§async fn execute(&self, response: &str) -> Result<Option<ToolOutput>, ToolError>
async fn execute(&self, response: &str) -> Result<Option<ToolOutput>, ToolError>
Parse
response for fenced tool blocks and execute them. Read moreSource§async fn execute_confirmed(
&self,
response: &str,
) -> Result<Option<ToolOutput>, ToolError>
async fn execute_confirmed( &self, response: &str, ) -> Result<Option<ToolOutput>, ToolError>
Execute bypassing confirmation checks (called after user approves). Read more
Source§fn tool_definitions(&self) -> Vec<ToolDef>
fn tool_definitions(&self) -> Vec<ToolDef>
Return the tool definitions this executor can handle. Read more
Source§async fn execute_tool_call(
&self,
call: &ToolCall,
) -> Result<Option<ToolOutput>, ToolError>
async fn execute_tool_call( &self, call: &ToolCall, ) -> Result<Option<ToolOutput>, ToolError>
Source§async fn execute_tool_call_confirmed(
&self,
call: &ToolCall,
) -> Result<Option<ToolOutput>, ToolError>
async fn execute_tool_call_confirmed( &self, call: &ToolCall, ) -> Result<Option<ToolOutput>, ToolError>
Execute a structured tool call bypassing confirmation checks. Read more
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. Read more
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. Read more
Source§fn is_tool_retryable(&self, tool_id: &str) -> bool
fn is_tool_retryable(&self, tool_id: &str) -> bool
Whether the executor can safely retry this tool call on a transient error. Read more
Auto Trait Implementations§
impl<E> Freeze for CompressedExecutor<E>where
E: Freeze,
impl<E> !RefUnwindSafe for CompressedExecutor<E>
impl<E> Send for CompressedExecutor<E>
impl<E> Sync for CompressedExecutor<E>
impl<E> Unpin for CompressedExecutor<E>where
E: Unpin,
impl<E> UnsafeUnpin for CompressedExecutor<E>where
E: UnsafeUnpin,
impl<E> !UnwindSafe for CompressedExecutor<E>
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> ErasedToolExecutor for Twhere
T: ToolExecutor,
impl<T> ErasedToolExecutor for Twhere
T: ToolExecutor,
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>>
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_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 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.
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.
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