pub struct JsReplTool;Expand description
JavaScript REPL tool — executes JavaScript code using Node.js.
Uses a fresh Node.js subprocess per invocation. The code is piped to
node --input-type=module on stdin so multi-line programs and await
at the top level are supported.
Inspired by Codex’s js_repl tool but uses a simpler sub-process model
rather than a persistent kernel.
Implementations§
Source§impl JsReplTool
impl JsReplTool
Trait Implementations§
Source§impl Default for JsReplTool
impl Default for JsReplTool
Source§impl Tool for JsReplTool
impl Tool for JsReplTool
fn name(&self) -> &str
Source§fn description(&self) -> &str
fn description(&self) -> &str
Human-readable tool description for LLM.
Source§fn classify(&self, _args: &Value) -> ToolClass
fn classify(&self, _args: &Value) -> ToolClass
Per-call scheduling + permission-gating class (args-aware). Folds the
former
mutability/call_mutability/concurrency_safe/
call_concurrency_safe hooks into one value. Defaults to the conservative
ToolClass::MUTATING_SERIAL (mutating, serial, not promotable).Source§fn parameters_schema(&self) -> Value
fn parameters_schema(&self) -> Value
JSON Schema for tool parameters.
Source§fn invoke<'life0, 'async_trait>(
&'life0 self,
args: Value,
ctx: ToolCtx,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn invoke<'life0, 'async_trait>(
&'life0 self,
args: Value,
ctx: ToolCtx,
) -> Pin<Box<dyn Future<Output = Result<ToolOutcome, ToolError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
The sole execution entry: returns the call’s per-call
ToolOutcome
(Completed / Running
/ NeedsHuman), or a ToolError for
infrastructure / argument failures (preserved from the former execute). Read moreSource§fn to_schema(&self) -> ToolSchema
fn to_schema(&self) -> ToolSchema
Convert tool to LLM-compatible schema. Read more
Auto Trait Implementations§
impl Freeze for JsReplTool
impl RefUnwindSafe for JsReplTool
impl Send for JsReplTool
impl Sync for JsReplTool
impl Unpin for JsReplTool
impl UnsafeUnpin for JsReplTool
impl UnwindSafe for JsReplTool
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