pub struct ReasoningTrustPolicy {
pub trusted: Vec<ReasoningAuthorship>,
pub action: ReasoningTrustAction,
pub down_weight_factor: f32,
}Expand description
Opt-in read-side defense against forged-reasoning memory injection. An entry
is admitted iff its ReasoningProvenance::authorship is in trusted;
otherwise action applies. Carried on
RecallRequest.reasoning_trust;
default None keeps the read path unchanged. Orthogonal to retrieval
strategy — composes with vector / hybrid / graph alike.
Fields§
§trusted: Vec<ReasoningAuthorship>Authorship values considered trustworthy.
action: ReasoningTrustActionWhat to do with a non-trusted entry.
down_weight_factor: f32Score multiplier for ReasoningTrustAction::DownWeight (ignored for
Quarantine).
Implementations§
Source§impl ReasoningTrustPolicy
impl ReasoningTrustPolicy
Sourcepub fn quarantine_untrusted() -> Self
pub fn quarantine_untrusted() -> Self
The strict default: quarantine every entry whose reasoning is not from a trusted author (injected / unverified).
Sourcepub fn down_weight_untrusted(factor: f32) -> Self
pub fn down_weight_untrusted(factor: f32) -> Self
Soft variant: down-weight (rather than drop) untrusted entries.
Sourcepub fn admits_record(&self, record: &MemoryRecord) -> bool
pub fn admits_record(&self, record: &MemoryRecord) -> bool
Whether record’s reasoning provenance is trusted under this policy.
Sourcepub fn excludes_record(&self, record: &MemoryRecord) -> bool
pub fn excludes_record(&self, record: &MemoryRecord) -> bool
Whether the engine read path should exclude record (i.e. the
Quarantine action fired). DownWeight never excludes here — it is
applied to results via Self::rerank.
Sourcepub fn rerank(&self, hits: &mut Vec<ScoredMemory>) -> usize
pub fn rerank(&self, hits: &mut Vec<ScoredMemory>) -> usize
Apply the policy to a scored result set in place. Quarantine drops
untrusted hits; DownWeight multiplies their score by
down_weight_factor and re-sorts. Returns the number of entries
dropped or down-weighted.
Trait Implementations§
Source§impl Clone for ReasoningTrustPolicy
impl Clone for ReasoningTrustPolicy
Source§fn clone(&self) -> ReasoningTrustPolicy
fn clone(&self) -> ReasoningTrustPolicy
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 ReasoningTrustPolicy
impl Debug for ReasoningTrustPolicy
Source§impl Default for ReasoningTrustPolicy
impl Default for ReasoningTrustPolicy
Source§impl<'de> Deserialize<'de> for ReasoningTrustPolicy
impl<'de> Deserialize<'de> for ReasoningTrustPolicy
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>,
Source§impl PartialEq for ReasoningTrustPolicy
impl PartialEq for ReasoningTrustPolicy
Source§impl Serialize for ReasoningTrustPolicy
impl Serialize for ReasoningTrustPolicy
impl StructuralPartialEq for ReasoningTrustPolicy
Auto Trait Implementations§
impl Freeze for ReasoningTrustPolicy
impl RefUnwindSafe for ReasoningTrustPolicy
impl Send for ReasoningTrustPolicy
impl Sync for ReasoningTrustPolicy
impl Unpin for ReasoningTrustPolicy
impl UnsafeUnpin for ReasoningTrustPolicy
impl UnwindSafe for ReasoningTrustPolicy
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> Fruit for T
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