pub struct TierConfig {
pub tier: FeatureTier,
pub embedding_model: Option<EmbeddingModel>,
pub llm_model: Option<String>,
pub cross_encoder: bool,
pub max_memory_mb: usize,
}Expand description
Runtime configuration derived from a FeatureTier.
Fields§
§tier: FeatureTier§embedding_model: Option<EmbeddingModel>§llm_model: Option<String>Default backend LLM model tag for this tier, or None for tiers that
use no LLM (keyword / semantic). The value is the provider-agnostic
compiled default (default_tier_llm_model); the operator-resolved
backend/model is carried by ResolvedLlm via AppConfig::resolve_llm
and can be ANY backend. Treated as an on/off gate at the call sites.
cross_encoder: bool§max_memory_mb: usizeImplementations§
Source§impl TierConfig
impl TierConfig
Sourcepub fn capabilities(&self) -> Capabilities
pub fn capabilities(&self) -> Capabilities
Produce a Capabilities (schema v2) report suitable for JSON
serialisation. The MCP / HTTP handle_capabilities_with_conn
wrapper overlays live runtime state (recall mode, reranker mode,
embedder-loaded flag) and live DB counts (active rules, hook
registrations, pending approvals) before the report goes on the
wire.
v2 honesty patch (P1, v0.6.3.1): recall_mode_active and
reranker_active start at conservative defaults (disabled /
off); the wrapper updates them based on the runtime embedder
- reranker handles, not the configured tier values.
#1168 back-compat shim. Delegates to
Self::capabilities_with_resolved with a
ResolvedModels::from_tier_preset triple so the
pre-#1168 wire shape is byte-equal for callers (legacy tests,
migrate-tool diagnostics) that don’t load an operator
AppConfig. Production wrappers MUST call
Self::capabilities_with_resolved directly with
AppConfig::resolve_models output — otherwise
memory_capabilities.models.* drifts from the live LLM /
embedder / reranker wiring.
Sourcepub fn capabilities_with_resolved(
&self,
models: &ResolvedModels,
) -> Capabilities
pub fn capabilities_with_resolved( &self, models: &ResolvedModels, ) -> Capabilities
v0.7.x (issue #1168) — resolver-aware capabilities builder.
Identical to Self::capabilities except models.embedding /
models.llm / models.cross_encoder come from the
operator-resolved models triple (built via
AppConfig::resolve_models) instead of the compiled tier
preset. This is the production entry point used by every
handle_capabilities_with_conn[_v3] wrapper post-#1168.
The display logic mirrors the boot banner
(src/cli/boot.rs BootManifest::build): Ollama-backend LLM
emits the bare model id (legacy banner shape); other backends
emit backend:model. Embedder + reranker respect the
tier-preset disable flag so the keyword tier still reports
embedding="none" even if an operator left a stale
[embeddings] block in their config.
Trait Implementations§
Source§impl Clone for TierConfig
impl Clone for TierConfig
Source§fn clone(&self) -> TierConfig
fn clone(&self) -> TierConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TierConfig
impl Debug for TierConfig
Source§impl<'de> Deserialize<'de> for TierConfig
impl<'de> Deserialize<'de> for TierConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for TierConfig
impl RefUnwindSafe for TierConfig
impl Send for TierConfig
impl Sync for TierConfig
impl Unpin for TierConfig
impl UnsafeUnpin for TierConfig
impl UnwindSafe for TierConfig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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