Skip to main content

OpenAiTool

Struct OpenAiTool 

Source
pub struct OpenAiTool { /* private fields */ }
Expand description

A single OpenAI function tool bound to a SIM callable.

Holds the OpenAI-facing function name and JSON Schema parameters alongside the resolved SIM symbol, argument order, required capabilities, and optional argument/result shapes for translating between OpenAI tool descriptors and SIM calls.

Implementations§

Source§

impl OpenAiTool

Source

pub fn from_callable( cx: &mut Cx, openai_name: impl Into<String>, symbol: Symbol, description: impl Into<String>, parameters: Value, capabilities: Vec<CapabilityName>, ) -> Result<Self>

Builds a tool from a resolved SIM callable, capturing its argument and result shapes from the callable’s browse metadata.

Source

pub fn from_openai_descriptor(value: &Value) -> Result<Self>

Parses an OpenAI tool descriptor JSON object into an OpenAiTool.

Requires the descriptor type to be function and derives the SIM symbol from the function name. Inbound request JSON cannot set trusted SIM symbols or required capabilities; those come from the server-owned runtime registry.

Source

pub fn openai_name(&self) -> &str

Returns the OpenAI-facing tool name.

Source

pub fn symbol(&self) -> &Symbol

Returns the SIM symbol this tool dispatches to.

Source

pub fn capabilities(&self) -> &[CapabilityName]

Returns the capabilities required to invoke this tool.

Source

pub fn validate_arguments(&self, arguments: &Value) -> Result<(), String>

Validates arguments against the tool’s JSON Schema parameters.

Source

pub fn argument_values( &self, cx: &mut Cx, arguments: &Value, ) -> Result<Vec<Value>, String>

Validates and converts JSON arguments into ordered SIM values for the call.

Source

pub fn descriptor_json(&self) -> Value

Renders this tool as an OpenAI tool descriptor JSON object, including the x-sim-* extension fields for symbol, shapes, and capabilities.

Source

pub fn request_descriptor_json(&self) -> Value

Renders this tool as an OpenAI request descriptor without SIM authority extension fields.

Use this form when a descriptor may cross an untrusted request boundary: the gateway resolves the SIM symbol and required capabilities from its server-owned registry rather than from x-sim-* request fields.

Source

pub fn to_expr(&self) -> Expr

Renders this tool as a SIM expression map.

Trait Implementations§

Source§

impl Clone for OpenAiTool

Source§

fn clone(&self) -> OpenAiTool

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 Debug for OpenAiTool

Source§

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

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

impl PartialEq for OpenAiTool

Source§

fn eq(&self, other: &OpenAiTool) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for OpenAiTool

Auto Trait Implementations§

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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