pub struct SkillBuiltinTool { /* private fields */ }Expand description
A skill tool that delegates execution to another tool resolved from the
resolution registry — either a built-in (kind = "builtin") or an MCP tool
(kind = "mcp"). This is the skill-scoped tool elevation mechanism: a
policy blocking shell by name (or deferred MCP tools hidden from the
model) does not block my_skill__use_shell, because the wrapper is
registered under the prefixed name {skill}__{tool} and delegates to the
resolved target.
locked_args are arguments fixed by the manifest. They are applied on top
of the caller-supplied args (the caller cannot override them) and are
stripped from the advertised parameter schema, so the model can neither see
nor change them. This is what scopes a delegated tool — e.g.
target = "composio" + locked_args = { action_name = "TEXT_TO_PDF" }
exposes exactly one action, and target = "images__generate" exposes a
single MCP capability.
Implementations§
Source§impl SkillBuiltinTool
impl SkillBuiltinTool
Sourcepub fn new(
skill_name: &str,
tool: &SkillTool,
target_tool: Arc<dyn Tool>,
locked_args: HashMap<String, String>,
) -> Self
pub fn new( skill_name: &str, tool: &SkillTool, target_tool: Arc<dyn Tool>, locked_args: HashMap<String, String>, ) -> Self
Create a new skill elevation tool delegating to target_tool.
target_tool is the resolved built-in or MCP tool (looked up from the
resolution registry at registration time). locked_args are fixed by
the manifest: applied over caller args (non-overridable) and hidden from
the advertised schema.
Trait Implementations§
Source§impl Attributable for SkillBuiltinTool
impl Attributable for SkillBuiltinTool
Source§impl Tool for SkillBuiltinTool
impl Tool for SkillBuiltinTool
Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§fn parameters_schema(&self) -> Value
fn parameters_schema(&self) -> Value
Auto Trait Implementations§
impl Freeze for SkillBuiltinTool
impl !RefUnwindSafe for SkillBuiltinTool
impl Send for SkillBuiltinTool
impl Sync for SkillBuiltinTool
impl Unpin for SkillBuiltinTool
impl UnsafeUnpin for SkillBuiltinTool
impl !UnwindSafe for SkillBuiltinTool
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more