pub struct Registry {
pub warnings: Vec<String>,
/* private fields */
}Expand description
The registry.
Fields§
§warnings: Vec<String>Non-fatal findings from the build (collisions, missing profile tools).
Implementations§
Source§impl Registry
impl Registry
Sourcepub fn build(
settings: &Settings,
servers: &[ServerTools],
) -> Result<Registry, Vec<String>>
pub fn build( settings: &Settings, servers: &[ServerTools], ) -> Result<Registry, Vec<String>>
Build from settings + the connected servers’ tool lists. Errors are the RFC 0028 §4 startup validation failures (unknown override target, server not declared, tool not advertised, mapping does not compile, disabled ∩ overrides ≠ ∅, disabling an unknown tool).
pub fn get(&self, name: &str) -> Option<&ToolSpec>
pub fn names(&self) -> Vec<String>
pub fn servers(&self) -> &[String]
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn iter(&self) -> impl Iterator<Item = &ToolSpec>
Sourcepub fn allowed(&self, caller: &Caller<'_>, name: &str) -> bool
pub fn allowed(&self, caller: &Caller<'_>, name: &str) -> bool
Whether caller may call name (RFC 0028 §3 grants + RFC 0029 §2).
Sourcepub fn defs_for(
&self,
caller: &Caller<'_>,
select: Option<&AgentTools>,
) -> Vec<ToolDef>
pub fn defs_for( &self, caller: &Caller<'_>, select: Option<&AgentTools>, ) -> Vec<ToolDef>
The LLM-facing definitions for a caller, filtered by the agent’s tool
selection (agent.tools.internal|mcp|code) when given.
Sourcepub fn validate_args(&self, name: &str, args: &Value) -> Result<(), String>
pub fn validate_args(&self, name: &str, args: &Value) -> Result<(), String>
Validate call arguments against the tool’s input schema.
Sourcepub fn validate_result(&self, name: &str, result: &Value) -> Result<(), String>
pub fn validate_result(&self, name: &str, result: &Value) -> Result<(), String>
Validate a result against the tool’s output schema (when it has one).
Sourcepub fn route(&self, name: &str) -> Option<Route<'_>>
pub fn route(&self, name: &str) -> Option<Route<'_>>
Where a call goes (None = unknown or unavailable).
Sourcepub fn map_args(m: &Mapping, args: &Value, ctx: &Value) -> Result<Value, String>
pub fn map_args(m: &Mapping, args: &Value, ctx: &Value) -> Result<Value, String>
Render a mapped tool’s MCP arguments from the internal call’s args
and the call context ({instance, run?, ctx?, principal?}). Without an
args template the internal args pass through unchanged.
Sourcepub fn map_result(m: &Mapping, result_ctx: &Value) -> Result<Value, String>
pub fn map_result(m: &Mapping, result_ctx: &Value) -> Result<Value, String>
Map an MCP CallToolResult (as the {"result": …} context the store
adapter also uses) back to the internal output. Without a result
template: structuredContent, else the text parsed as JSON, else the text.
The trifecta tags a set of tool names carries (for the gate).