pub enum Origin {
Clean,
Untrusted,
Derived,
}Expand description
Where a reflection’s evidence came from, provenance-wise.
Written by classification code from the transcript’s recorded taint, never inferred from the text — prose claiming to be from the user does not make it user content. The stake: a learned rule outlives the conversation that produced it and rides in the system prompt of every future run, inside the cached prefix, where nothing will ever check it again. The interlock stops exfiltration inside a tainted conversation; this is the only guard on the longer-half-life path out of one.
Variants§
Clean
No third-party content had entered the conversation when the intervention happened.
Untrusted
Third-party content was in context. Kept as readable evidence, never consolidated into rules — excluded structurally, not scored down.
Derived
Not an interactive session: a subagent, eval case or batch item. A subagent’s steer is mecha correcting itself, not the user correcting mecha — learning from it is a feedback loop, not a lesson. (Those conversations do not record sessions today, so nothing classifies to this yet; the variant exists so the schema does not move when they do.)
Trait Implementations§
impl Copy for Origin
Source§impl<'de> Deserialize<'de> for Origin
impl<'de> Deserialize<'de> for Origin
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>,
impl Eq for Origin
impl StructuralPartialEq for Origin
Auto Trait Implementations§
impl Freeze for Origin
impl RefUnwindSafe for Origin
impl Send for Origin
impl Sync for Origin
impl Unpin for Origin
impl UnsafeUnpin for Origin
impl UnwindSafe for Origin
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>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.