Skip to main content

Module tool_visibility

Module tool_visibility 

Source
Expand description

The tool-visibility policy lives in lean_ctx::core::tool_visibility so engine code outside the MCP server can read it; re-exported here for the server’s own callers.

Structs§

CandidateInputs
Inputs to candidate_set. Avoids a long bool parameter list (#clippy::fn_params_excessive_bools).
ClientQuirks
Client-specific advertising quirks, resolved once per tools/list from the MCP clientInfo name and the candidate set.

Enums§

CandidateSet
Which candidate pool tools/list starts from, before per-tool gates run.

Constants§

INVOKER
The universal invoker tool name. A static-list MCP client can call any registered tool through it, even when that tool isn’t advertised.

Functions§

advertised_tool_defs_default
Computes the tool set this install advertises to a default client (no client quirks, no role restriction, no workflow gate, static tool list), including the live description compression. Offline counterpart of the tools/list handler for doctor overhead / ContextOverhead::measure — kept next to the pure gates so measurement cannot drift from policy. “No quirks” is the worst case: a client without a native editor sees ctx_patch too, so the reported overhead never understates.
candidate_set
Decides the candidate pool. Single source of truth for the tools/list handler AND offline measurement (doctor overhead), so the advertised surface and the reported overhead can never drift apart.
category_gate_applies
Whether the lazy per-category gate should filter the advertised tool set.
explicit_profile
Whether the user explicitly pinned a tool profile (config key, custom tool list, or env var) — the trigger for CandidateSet::ProfileAuthoritative.
guidance_profile
The tool set agent-facing guidance may name for client_name: the MCP instructions and the injected rule files (#1849). It passes the same gates as tools/list — the effective profile, disabled_tools (which folds in prefer_native_editor) and the client’s quirks — so the text never points the agent at a tool its session cannot call.
is_tool_visible
Decides whether a tool name should appear in tools/list.
mark_auto_ctx_tool_used
Mark that the agent has invoked a ctx_* MCP tool in this session.
narrow_to_surface
Pure core of guidance_profile: profile minus every tool the surface withholds. Auto is taken at its starting point (minimal) — guidance is written once per session and must not promise a tool before escalation.
needs_invoker
Whether INVOKER must be force-added to the advertised set.
record_auto_turn
Increment the Auto-profile turn counter (call once per tools/list request).
resolve_auto_profile
Resolve ToolProfile::Auto to a concrete profile using session signals. Non-Auto profiles are returned as-is.