Skip to main content

ToolRoster

Struct ToolRoster 

Source
pub struct ToolRoster(/* private fields */);
Expand description

Which tools the model is offered, for WorkspaceBuilder::with_tool_roster.

A thin wrapper over mentra’s ToolProfile rather than a re-export of it: ToolRoster::default is the one construction this crate has an opinion about (today’s exact hidden set), and wrapping it is what lets that default live beside the constant it is built from instead of at every call site that wants “basis’s usual roster, plus…”.

Implementations§

Source§

impl ToolRoster

Source

pub fn hide(names: impl IntoIterator<Item = impl Into<String>>) -> Self

ToolRoster::default’s set, plus names.

Extends rather than replaces, so narrowing a roster is additive: a caller hiding one more tool never has to restate spawn’s replaced doors or the unsurfaced intrinsics to keep them hidden too. Call only for a denylist built from nothing instead of from basis’s own.

Source

pub fn only(names: impl IntoIterator<Item = impl Into<String>>) -> Self

Offers exactly names, mapped straight to mentra’s own ToolProfile::only — an allow-list rather than hide’s denylist, and basis states no opinion of its own on top of it.

Three honest caveats, each pinned by a test beside this one:

  • Cannot itself un-register the file tools — that is a runtime decision, not a roster one. A roster is per-workspace; which file tools a runtime carries at all is fixed once, per-runtime, at RuntimeBuilder::with_file_tools — basis’s own default of Split, or a host’s Batched, Both, or None. only cannot reach across and change that from a workspace. What it can do, and does, is stop offering whatever the runtime carries: a set that names none of read/ls/grep/glob/write/edit makes ToolProfile::allows refuse every one of them for this workspace’s agents, exactly as it refuses any other name left out — see only_hides_the_file_tools_but_cannot_reach_the_runtimes_profile. A host that wants the tools gone from the registry too — so a sibling workspace sharing this runtime, or mentra’s own APIs reached through Runtime::mentra_runtime, cannot find them either — builds that runtime with with_file_tools(FileToolProfile::None) in the first place; there is no way to reach the same effect from a roster alone.
  • Does not imply spawn. A set that omits crate::tools::SPAWN is a legitimate roster — a knowledge agent with no delegation and no command door is a real shape — but it is also a model with no route to a subagent or a shell command at all. Name it if the agent needs either.
  • Does not imply load_skill. Skills are basis’s own on-demand convention; a set that omits it is a model that cannot load one, no matter how many are registered.

Trait Implementations§

Source§

impl Clone for ToolRoster

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 ToolRoster

Source§

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

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

impl Default for ToolRoster

Source§

fn default() -> Self

What every workspace has offered before this type existed: spawn’s two replaced doors (REPLACED_TOOLS) and the intrinsics basis has never deliberately surfaced (UNSURFACED_TOOLS), hidden; everything else mentra’s runtime registers — the file tools, load_skill, compact, and whatever a host’s own tools or an MCP server add — offered.

Pinned by the_default_roster_is_exactly_this and its neighbors in workspace::builder::tests: this has to keep producing that exact set for those tests to mean anything.

Source§

impl Eq for ToolRoster

Source§

impl PartialEq for ToolRoster

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 StructuralPartialEq for ToolRoster

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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> 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.
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