Skip to main content

ToolCalled

Struct ToolCalled 

Source
pub struct ToolCalled {
    pub id: String,
    pub name: ToolName,
    pub args: Payload,
    pub subject: Option<String>,
    pub effect: Option<Effect>,
    pub render: Option<RenderIntent>,
}
Expand description

tool_called: the call the model asked for, before anything ran.

The arguments, and the subject read from them, reach the ledger through runtime::turn::ledger::Journal::append_redacted, so a credential the model quoted into them is replaced before this line exists.

Fields§

§id: String

The wire identity both dialects pair a call and its result by.

§name: ToolName§args: Payload§subject: Option<String>

What the call acted on, in the one reading a person recognises a call by: a path, an address, a program name.

Carried by the record rather than derived from args at each reader. Two readers deriving it each iterated their own map order, so one call answered differently on the two sides of the wire: for {"10": "a", "2": "b"} the ledger’s byte order gives "a" and a browser’s own-property order gives "b". ToolCalled::subject_of decides it once, here.

None is a call whose arguments name nothing of that kind, which is a real state rather than a failure.

§effect: Option<Effect>

The effect the tool was registered with at the moment of the call, copied by the tool wave from its ToolMeta (crates/kernel/spec/Event/Record.lean §8-75). Absent for a tool the bench did not know and on every line written before the key existed.

§render: Option<RenderIntent>

How the tool was registered to be drawn at the moment of the call; absent in the same cases as effect. A Diff’s locations are the registration’s, empty for every tool today: the file an edit touched is subject.

Implementations§

Source§

impl ToolCalled

Source

pub fn subject_of(args: &Payload) -> Option<String>

The one argument a person recognises a call by, read from the arguments once, when the call becomes a record.

The preferred keys are tried in their declared order; a call whose tool names none of them still says something rather than falling back to the bare tool name, and the fallback takes the first string in the payload’s own key order so it is the same answer on every machine.

Trait Implementations§

Source§

impl Clone for ToolCalled

Source§

fn clone(&self) -> Self

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 ToolCalled

Source§

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

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

impl<'de> Deserialize<'de> for ToolCalled

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for ToolCalled

Source§

impl PartialEq for ToolCalled

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl Serialize for ToolCalled

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for ToolCalled

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<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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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> 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 = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.