pub struct GraphTool { /* private fields */ }Expand description
A graph tool handed through unchanged, for the one participant that is not a witness.
LensedSearch exists to narrow; this exists to refuse to. The
Verifier is the only role allowed the whole graph — every source, the
full window, and the fact layer the readers are deliberately kept away
from — because an adjudicator restricted to one vantage is just a third
witness with opinions about the other two.
It stays read-only and outbound-free like everything else here, so the wider view costs nothing in interlock terms: it reads more, and it still has no way to send.
Implementations§
Source§impl GraphTool
impl GraphTool
pub fn verify(client: Arc<McpClient>) -> Self
Sourcepub fn entity(client: Arc<McpClient>) -> Self
pub fn entity(client: Arc<McpClient>) -> Self
Entity metadata: node id, aliases, identifiers, per-source coverage, interaction count, last seen.
Added because the audit was inconsistent without it. “Luke was last seen on August 13” came back supported while “Luke has 1,212 recorded interactions” came back unsupported — the same class of claim, judged two ways, because both live in entity metadata and the verifier could only reach whichever of them happened to surface in a search result. An adjudicator that cannot see a field will call a true claim about it unsupported, which is the one verdict that must stay trustworthy.
pub fn search_everything(client: Arc<McpClient>) -> Self
Trait Implementations§
Source§impl Tool for GraphTool
impl Tool for GraphTool
fn name(&self) -> &str
fn description(&self) -> &str
fn input_schema(&self) -> Value
Source§fn read_only(&self) -> bool
fn read_only(&self) -> bool
Source§fn capabilities(&self) -> Capabilities
fn capabilities(&self) -> Capabilities
fn call<'life0, 'life1, 'async_trait>(
&'life0 self,
input: Value,
_ctx: &'life1 ToolCtx,
) -> Pin<Box<dyn Future<Output = Result<ToolOutput>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn carried_state(&self) -> Option<CarriedState>
fn carried_state(&self) -> Option<CarriedState>
Source§fn denial_remedy(&self) -> Option<String>
fn denial_remedy(&self) -> Option<String>
None when nothing
short of policy would change the answer. Read more