Skip to main content

SessionRpcTools

Struct SessionRpcTools 

Source
pub struct SessionRpcTools<'a> { /* private fields */ }
Expand description

session.tools.* RPCs.

Implementations§

Source§

impl<'a> SessionRpcTools<'a>

Source

pub async fn execute( &self, params: ToolsExecuteRequest, ) -> Result<ToolResult, Error>

Executes one tool from the session’s currently offered tool set through the native invocation pipeline.

Wire method: session.tools.execute.

§Parameters
  • params - A tool name and arguments to execute through the session’s native invocation pipeline.
§Returns

Canonical result returned by a session tool.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn get_builtin_descriptors( &self, params: ToolsGetBuiltinDescriptorsRequest, ) -> Result<ToolsGetBuiltinDescriptorsResult, Error>

Returns the Rust-owned built-in tool descriptors used to construct the session’s offered tool set.

Wire method: session.tools.getBuiltinDescriptors.

§Parameters
  • params - Options controlling how Rust-owned built-in tool descriptors are materialized.
§Returns

Rust-owned built-in tool descriptors for the session.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn task_complete_event_data( &self, params: ToolsTaskCompleteEventDataRequest, ) -> Result<TaskCompleteData, Error>

Projects a completed task_complete tool call into its label-safe session event payload.

Wire method: session.tools.taskCompleteEventData.

§Parameters
  • params - Task-completion tool arguments and final result used to build a label-safe session event payload.
§Returns

Task completion notification with summary from the agent

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn handle_pending_tool_call( &self, params: HandlePendingToolCallRequest, ) -> Result<HandlePendingToolCallResult, Error>

Provides the result for a pending external tool call.

Wire method: session.tools.handlePendingToolCall.

§Parameters
  • params - Pending external tool call request ID, with the tool result or an error describing why it failed.
§Returns

Indicates whether the external tool call result was handled successfully.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn initialize_and_validate( &self, ) -> Result<ToolsInitializeAndValidateResult, Error>

Resolves, builds, and validates the runtime tool list for the session.

Wire method: session.tools.initializeAndValidate.

§Returns

Resolve, build, and validate the runtime tool list for this session. Subagent sessions and consumer flows that need an initialized tool set before send invoke this. Default base-class implementation is a no-op for sessions that don’t support tool validation.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn get_current_metadata( &self, ) -> Result<ToolsGetCurrentMetadataResult, Error>

Returns lightweight metadata for the session’s currently initialized tools.

Wire method: session.tools.getCurrentMetadata.

§Returns

Current lightweight tool metadata snapshot for the session.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn set( &self, params: ToolsSetRequest, ) -> Result<ToolsSetResult, Error>

Atomically replaces the complete externally implemented tool list supplied by the calling connection. Built-in, MCP/plugin, extension-discovered, subagent, and tools supplied by other connections remain unchanged.

Wire method: session.tools.set.

§Parameters
  • params - Complete externally implemented tool list for the calling connection. An empty list removes every tool previously supplied by that connection.
§Returns

Empty result after replacing the calling connection’s externally implemented tools.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn update_subagent_settings( &self, params: UpdateSubagentSettingsRequest, ) -> Result<ToolsUpdateSubagentSettingsResult, Error>

Updates the current session’s live subagent settings after user settings change. The persisted user settings remain the source of truth for future sessions.

Wire method: session.tools.updateSubagentSettings.

§Parameters
  • params - Subagent settings to apply to the current session
§Returns

Empty result after applying subagent settings

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Trait Implementations§

Source§

impl<'a> Clone for SessionRpcTools<'a>

Source§

fn clone(&self) -> SessionRpcTools<'a>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Copy for SessionRpcTools<'a>

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for SessionRpcTools<'a>

§

impl<'a> !UnwindSafe for SessionRpcTools<'a>

§

impl<'a> Freeze for SessionRpcTools<'a>

§

impl<'a> Send for SessionRpcTools<'a>

§

impl<'a> Sync for SessionRpcTools<'a>

§

impl<'a> Unpin for SessionRpcTools<'a>

§

impl<'a> UnsafeUnpin for SessionRpcTools<'a>

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + 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: Sized + 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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