pub struct ExtensionToolWrapper { /* private fields */ }Expand description
Wraps a JS extension-registered tool so it can be used as a Rust Tool.
Note: This wrapper uses ExtensionRuntimeHandle rather than
crate::extensions_js::PiJsRuntime so it remains Send + Sync and can be
stored in the shared tool registry.
Implementations§
Source§impl ExtensionToolWrapper
impl ExtensionToolWrapper
pub fn new<R>(def: ExtensionToolDef, runtime: R) -> Selfwhere
R: Into<ExtensionRuntimeHandle>,
pub fn with_ctx_payload(self, ctx_payload: Value) -> Self
pub fn with_timeout_ms(self, timeout_ms: u64) -> Self
Trait Implementations§
Source§impl Tool for ExtensionToolWrapper
impl Tool for ExtensionToolWrapper
Source§fn description(&self) -> &str
fn description(&self) -> &str
Get the tool description.
Source§fn parameters(&self) -> Value
fn parameters(&self) -> Value
Get the tool parameters as JSON Schema.
Source§fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
tool_call_id: &'life1 str,
input: Value,
_on_update: Option<Box<dyn Fn(ToolUpdate) + Send + Sync>>,
) -> Pin<Box<dyn Future<Output = Result<ToolOutput>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
tool_call_id: &'life1 str,
input: Value,
_on_update: Option<Box<dyn Fn(ToolUpdate) + Send + Sync>>,
) -> Pin<Box<dyn Future<Output = Result<ToolOutput>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute the tool. Read more
Source§fn is_read_only(&self) -> bool
fn is_read_only(&self) -> bool
Whether the tool is read-only and safe to execute in parallel with other read-only tools. Read more
Auto Trait Implementations§
impl Freeze for ExtensionToolWrapper
impl !RefUnwindSafe for ExtensionToolWrapper
impl Send for ExtensionToolWrapper
impl Sync for ExtensionToolWrapper
impl Unpin for ExtensionToolWrapper
impl UnsafeUnpin for ExtensionToolWrapper
impl !UnwindSafe for ExtensionToolWrapper
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Instruments this future with a span (no-op when disabled).
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Instruments this future with the current span (no-op when disabled).
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