pub struct NodeTransport { /* private fields */ }Implementations§
Source§impl NodeTransport
impl NodeTransport
pub fn start( child: Child, stdin: ChildStdin, stdout: ChildStdout, ) -> Result<(Self, Value), String>
Sourcepub fn start_with_cleanup(
child: Child,
stdin: ChildStdin,
stdout: ChildStdout,
cleanup_path: Option<PathBuf>,
) -> Result<(Self, Value), String>
pub fn start_with_cleanup( child: Child, stdin: ChildStdin, stdout: ChildStdout, cleanup_path: Option<PathBuf>, ) -> Result<(Self, Value), String>
Start a transport and remove an optional host script when the child is
dropped. Windows cannot carry the embedded Node source in node -e
once the host grows beyond the CreateProcess command-line limit, so the
caller may launch a temporary .mjs file and hand its path to us.
Sourcepub fn start_with_cleanup_and_handlers(
child: Child,
stdin: ChildStdin,
stdout: ChildStdout,
cleanup_path: Option<PathBuf>,
initial_handlers: Vec<RuntimeHandler>,
) -> Result<(Self, Value), String>
pub fn start_with_cleanup_and_handlers( child: Child, stdin: ChildStdin, stdout: ChildStdout, cleanup_path: Option<PathBuf>, initial_handlers: Vec<RuntimeHandler>, ) -> Result<(Self, Value), String>
Start a transport with runtime handlers that are available while the
Node host is loading extension factories and lifecycle hooks. The host
may issue runtime_request messages before it publishes its id:0
initialization response, so the reader must be running before waiting
for that response.
Sourcepub fn start_pending_with_cleanup_and_handlers(
child: Child,
stdin: ChildStdin,
stdout: ChildStdout,
cleanup_path: Option<PathBuf>,
initial_handlers: Vec<RuntimeHandler>,
) -> Result<NodeTransportStartup, String>
pub fn start_pending_with_cleanup_and_handlers( child: Child, stdin: ChildStdin, stdout: ChildStdout, cleanup_path: Option<PathBuf>, initial_handlers: Vec<RuntimeHandler>, ) -> Result<NodeTransportStartup, String>
Spawn the transport and start its reader, returning before the Node
host’s initialization response arrives. This is the primitive used by
the lazy runtime so shutdown can kill a host whose extension factory is
stuck before it emits id:0.
Sourcepub fn shutdown(&self)
pub fn shutdown(&self)
Stop the Node host and resolve all currently pending requests with an error. Safe to call repeatedly and while other transport clones exist.
Sourcepub fn is_shutdown(&self) -> bool
pub fn is_shutdown(&self) -> bool
Whether the reader or an explicit shutdown has made this transport unusable. Lazy owners use this to discard a stale slot and retry on the next request.
Sourcepub fn same_instance(&self, other: &Self) -> bool
pub fn same_instance(&self, other: &Self) -> bool
Whether two handles refer to the same child process. Lazy startup can
briefly expose one handle through both its starting and transport
slots; callers updating shared runtime handlers must avoid appending the
same callback twice in that window.
pub fn begin_request( &self, method: &str, payload: Value, ) -> Result<PendingRequest, String>
pub fn request(&self, method: &str, payload: Value) -> Result<Value, String>
pub fn send_event(&self, event: Value) -> Result<(), String>
Sourcepub fn request_event(&self, event: Value) -> Result<Value, String>
pub fn request_event(&self, event: Value) -> Result<Value, String>
Send a host event and wait for a normal id-correlated response. This
is used for terminal input listeners, whose consume result must be
known before the outer Rust TUI dispatches the same key.
pub fn cancel(&self, id: u64) -> Result<(), String>
Sourcepub fn register_tool_update_handler(
&self,
tool_call_id: impl Into<String>,
handler: ToolUpdateHandler,
) -> Result<(), String>
pub fn register_tool_update_handler( &self, tool_call_id: impl Into<String>, handler: ToolUpdateHandler, ) -> Result<(), String>
Register a callback for partial updates emitted by one JS tool call.
The callback is intentionally keyed by the Pi tool-call id rather than the transport request id: the former is what Node receives and what remains stable when a request is cancelled or retried.
Sourcepub fn unregister_tool_update_handler(&self, tool_call_id: &str)
pub fn unregister_tool_update_handler(&self, tool_call_id: &str)
Stop routing partial updates after a tool call settles. This also suppresses updates sent by a JS tool after its execute promise resolves, matching the agent loop’s late-update gate.
pub fn replace_runtime_handlers( &self, handler: RuntimeHandler, ) -> Result<(), String>
pub fn add_runtime_handler(&self, handler: RuntimeHandler) -> Result<(), String>
Trait Implementations§
Source§impl Clone for NodeTransport
impl Clone for NodeTransport
Source§fn clone(&self) -> NodeTransport
fn clone(&self) -> NodeTransport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more