pub enum Family {
Core,
Lifecycle,
Graph,
Governance,
Power,
Meta,
Archive,
Other,
}Expand description
A tool family. Source-anchored at crate::mcp::registry::tool_definitions()
2026-05-05. Counts must sum to 51 (the v0.6.3.1 baseline of 43 +
v0.7.0 I4 memory_replay + v0.7 H4 memory_verify (both in
Family::Graph) + v0.7 B1 memory_load_family and v0.7 B2
memory_smart_load in Family::Core +
v0.7 K7 memory_subscription_replay and memory_subscription_dlq_list
in Family::Power + v0.7 J7 memory_find_paths in Family::Graph +
v0.7 K8 memory_quota_status in Family::Power).
Variants§
Core
store, recall, list, get, search, load_family, smart_load — 7
(load_family added in v0.7 B1 — always-on family loader that
returns the top-k recent + high-priority memories whose
metadata.family matches one of the eight enum names;
smart_load added in v0.7 B2 — intent-routed front door that
picks the best Family from a free-text intent and forwards to
memory_load_family.)
Lifecycle
update, delete, forget, gc, promote — 5
Graph
kg_query, kg_timeline, kg_invalidate, link, get_links, entity_register, entity_get_by_alias, get_taxonomy, replay, verify, find_paths — 11 (replay added in v0.7.0 I4 — joins to the I2 transcript-link substrate to reconstruct a memory’s source transcript chain; verify added in v0.7 H4 — re-checks the Ed25519 signature on a stored memory_links row.)
Governance
pending_list/approve/reject, namespace_set/get/clear_standard, subscribe, unsubscribe — 8
Power
consolidate, detect_contradiction, check_duplicate, auto_tag,
expand_query, inbox, subscription_replay, subscription_dlq_list,
quota_status — 9 (v0.7 K7 added the two
operator/governance subscription-reliability tools — replay
events from the audit log + inspect the DLQ; v0.7 K8 added
memory_quota_status for the per-agent rate-limit + storage-cap
substrate.)
Meta
capabilities, agent_register, agent_list, session_start, stats — 5
Archive
archive_list, archive_purge, archive_restore, archive_stats — 4
Other
list_subscriptions, notify — 2
Implementations§
Source§impl Family
impl Family
Sourcepub fn for_tool(name: &str) -> Option<Self>
pub fn for_tool(name: &str) -> Option<Self>
Lookup the family that owns a given tool name. Source-anchored
at crate::mcp::registry::tool_definitions() 2026-05-04. Every name listed
in the v0.6.3.1 baseline is covered; None means the tool is
either unknown to this enumeration or moved out of bounds (which
should make tool_definitions_returns_43_tools red and force a
reconciliation).
Sourcepub const fn all() -> &'static [Family]
pub const fn all() -> &'static [Family]
All eight families in declaration order. Useful for --profile full
and for the ProfileParseError::UnknownFamily diagnostic.
Sourcepub const fn expected_tool_count(self) -> usize
pub const fn expected_tool_count(self) -> usize
Number of MCP tools advertised by this family.
Derived from Family::tool_names — that slice is the single
source of truth for both the names AND the count. Adding a tool
to a family is therefore exactly one edit (append a tn::*
entry to the slice arm); every count that depends on it —
per-profile expectations, the full-profile total, the registry
lockstep — recomputes automatically. There are NO hand-maintained
per-family magic numbers here by design (the historical
match self { Core => 7, … } form drifted whenever a tool landed
without the matching count bump).
Sourcepub const fn tool_names(self) -> &'static [&'static str]
pub const fn tool_names(self) -> &'static [&'static str]
v0.7.0 A2 — tool names belonging to this family. Forward of the
Family::for_tool reverse map; source-anchored at
crate::mcp::registry::tool_definitions() 2026-05-04 (same anchor as
Family::for_tool and Family::expected_tool_count).
Order is the order each tool appears in
tool_definitions_for_profile’s registration walk, so an
LLM-facing preview (“the first three tools loaded”) aligns with
the actual tools/list output.
This slice is the single source of truth for the family’s tool
set. Family::expected_tool_count derives its return value
from self.tool_names().len(), and the
family_tool_names_cover_registry_all unit test pins the union
of all families against the canonical registry set.
Trait Implementations§
impl Copy for Family
impl Eq for Family
Source§impl Ord for Family
impl Ord for Family
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialOrd for Family
impl PartialOrd for Family
impl StructuralPartialEq for Family
Auto Trait Implementations§
impl Freeze for Family
impl RefUnwindSafe for Family
impl Send for Family
impl Sync for Family
impl Unpin for Family
impl UnsafeUnpin for Family
impl UnwindSafe for Family
Blanket Implementations§
impl<T> Boilerplate for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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