Skip to main content

GraphTool

Struct GraphTool 

Source
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

Source

pub fn verify(client: Arc<McpClient>) -> Self

Source

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.

Source

pub fn search_everything(client: Arc<McpClient>) -> Self

Trait Implementations§

Source§

impl Tool for GraphTool

Source§

fn name(&self) -> &str

Source§

fn description(&self) -> &str

Source§

fn input_schema(&self) -> Value

Source§

fn read_only(&self) -> bool

Read-only tools skip the approval gate and are safe to run in parallel.
Source§

fn capabilities(&self) -> Capabilities

Declared risk surface. The default is the conservative one for a tool nobody has classified: assume it does nothing special.
Source§

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>

State this tool holds that a compaction must not lose. Read more
Source§

fn denial_remedy(&self) -> Option<String>

How the operator could make a call like the one just refused safe — one sentence appended to a trifecta denial, or None when nothing short of policy would change the answer. Read more
Source§

fn fixed_workspace(&self) -> Option<PathBuf>

The root this tool’s relative paths actually resolve against, when the tool was constructed over a fixed directory rather than following the per-run ToolCtx workspace. Read more
Source§

fn narrows_surface_to(&self) -> Option<Vec<String>>

Tool names this tool is currently restricting the surface to, if it is restricting it at all. Read more
Source§

fn forget_conversation_state(&self)

Drop state that belonged to the conversation that just ended. Read more
Source§

fn spec(&self) -> ToolSpec

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<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> 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, 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, <T as TryFrom<U>>::Error>

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<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