Skip to main content

CompressedExecutor

Struct CompressedExecutor 

Source
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 wrapped ToolExecutor. Often CompositeExecutor or DynExecutor.

§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>

Source

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>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<E: ToolExecutor> ToolExecutor for CompressedExecutor<E>

Source§

async fn execute(&self, response: &str) -> Result<Option<ToolOutput>, ToolError>

Parse response for fenced tool blocks and execute them. Read more
Source§

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>

Return the tool definitions this executor can handle. Read more
Source§

async fn execute_tool_call( &self, call: &ToolCall, ) -> Result<Option<ToolOutput>, ToolError>

Execute a structured tool call. Returns Ok(None) if call.tool_id is not handled. Read more
Source§

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>>)

Inject environment variables for the currently active skill. No-op by default. Read more
Source§

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

Whether the executor can safely retry this tool call on a transient error. Read more
Source§

fn is_tool_speculatable(&self, tool_id: &str) -> bool

Whether a tool call can be safely dispatched speculatively (before the LLM finishes). Read more
Source§

fn requires_confirmation(&self, _call: &ToolCall) -> bool

Return true when call would require user confirmation before execution. 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> 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> ErasedToolExecutor for T
where T: ToolExecutor,

Source§

fn execute_erased<'a>( &'a self, response: &'a str, ) -> Pin<Box<dyn Future<Output = Result<Option<ToolOutput>, ToolError>> + Send + 'a>>

Source§

fn execute_confirmed_erased<'a>( &'a self, response: &'a str, ) -> Pin<Box<dyn Future<Output = Result<Option<ToolOutput>, ToolError>> + Send + 'a>>

Source§

fn tool_definitions_erased(&self) -> Vec<ToolDef>

Source§

fn execute_tool_call_erased<'a>( &'a self, call: &'a ToolCall, ) -> Pin<Box<dyn Future<Output = Result<Option<ToolOutput>, ToolError>> + Send + 'a>>

Source§

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>>)

Inject environment variables for the currently active skill. No-op by default.
Source§

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

Whether the executor can safely retry this tool call on a transient error.
Source§

fn is_tool_speculatable_erased(&self, tool_id: &str) -> bool

Whether a tool call can be safely dispatched speculatively. Read more
Source§

fn requires_confirmation_erased(&self, call: &ToolCall) -> bool

Return true when call would require user confirmation before execution. 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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: 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