pub struct CtxSearchTool;Trait Implementations§
Source§impl McpTool for CtxSearchTool
impl McpTool for CtxSearchTool
Source§fn publishes_every_source(&self, args: Option<&Map<String, Value>>) -> bool
fn publishes_every_source(&self, args: Option<&Map<String, Value>>) -> bool
action=regex only. tools::ctx_search::handle_filtered reads scanned
files outside the capture and then publishes exactly the files that
contributed a returned match (enclosing-symbol tags come from the same
file). Three results name no source and therefore stay of unknown
lineage rather than being claimed: a result without matches, a
delivery stub for a repeated query (cached_or_search), and an error.
Not declared: semantic and find_related (ranked from the BM25/dense
index and the graph — derived stores without source lineage) and
symbol (the symbol index decides which file is read).
Source§fn tool_def(&self) -> Tool
fn tool_def(&self) -> Tool
MCP tool definition including JSON schema. This replaces the
corresponding entry in
granular_tool_defs().Source§fn handle(
&self,
args: &Map<String, Value>,
ctx: &ToolContext,
) -> Result<ToolOutput, ErrorData>
fn handle( &self, args: &Map<String, Value>, ctx: &ToolContext, ) -> Result<ToolOutput, ErrorData>
Execute the tool. Args are the raw JSON-RPC arguments.
ctx provides access to resolved paths and project state.Source§fn rights_name(&self) -> &'static str
fn rights_name(&self) -> &'static str
The name of the handler this tool runs, for the session rights’
denied_tools (process-v1 §9): an alias names the tool it delegates
to, so denying that tool denies every name it is reachable under.Source§fn produces_machine_readable(&self, _args: Option<&Map<String, Value>>) -> bool
fn produces_machine_readable(&self, _args: Option<&Map<String, Value>>) -> bool
Whether this invocation yields a machine-readable payload (e.g. JSON)
that must reach the client byte-exact and parseable. When
true, the
dispatch pipeline suppresses every human-oriented decoration
(auto-context briefing, verify footer, hints, checkpoints, deprecation
notices) and terse compression for this call, returning the pure body.
Keyed on args because most tools emit machine-readable output only for
an opt-in format flag (e.g. format=json); defaults to false (#990).Source§fn attests_source_free(&self, _args: Option<&Map<String, Value>>) -> bool
fn attests_source_free(&self, _args: Option<&Map<String, Value>>) -> bool
Attestation that this invocation derives its output from the caller’s
arguments and lean-ctx’s own state only — it reads no project source,
provider or stored copy of one. Replay admission relies on it: an
output with no captured source set is replayed under protection only
when its tool attests this. The default is
false: “no source was
observed” is not proof, an uninstrumented reader publishes none either.
Override only for a tool whose handler was read for exactly this.Auto Trait Implementations§
impl Forget for CtxSearchTool
impl Freeze for CtxSearchTool
impl Move for CtxSearchTool
impl RefUnwindSafe for CtxSearchTool
impl Send for CtxSearchTool
impl Sync for CtxSearchTool
impl Unpin for CtxSearchTool
impl UnsafeUnpin for CtxSearchTool
impl UnwindSafe for CtxSearchTool
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> ⓘ
Converts
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> ⓘ
Converts
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