pub struct ShadowEventStore { /* private fields */ }Expand description
Persistent storage for the safety shadow event stream.
Thin wrapper around DbPool for the safety_shadow_events table.
Methods are async and return typed errors.
Implementations§
Source§impl ShadowEventStore
impl ShadowEventStore
Sourcepub async fn record(&self, event: &ShadowEvent) -> Result<(), AgentError>
pub async fn record(&self, event: &ShadowEvent) -> Result<(), AgentError>
Persist a shadow event to the database.
The id field of the event is ignored; the database assigns a new row id.
§Errors
Returns AgentError on database failure.
Sourcepub async fn get_trajectory(
&self,
session_id: &str,
limit: usize,
) -> Result<Vec<ShadowEvent>, AgentError>
pub async fn get_trajectory( &self, session_id: &str, limit: usize, ) -> Result<Vec<ShadowEvent>, AgentError>
Retrieve the last limit events for a session in ascending time order.
Used to build the trajectory context for probe evaluation.
§Errors
Returns AgentError on database failure.
Sourcepub async fn get_tool_history(
&self,
tool_id: &str,
limit: usize,
) -> Result<Vec<ShadowEvent>, AgentError>
pub async fn get_tool_history( &self, tool_id: &str, limit: usize, ) -> Result<Vec<ShadowEvent>, AgentError>
Retrieve the last limit events for a specific tool across all sessions.
Used for cross-session pattern detection.
§Errors
Returns AgentError on database failure.
Trait Implementations§
Source§impl Clone for ShadowEventStore
impl Clone for ShadowEventStore
Source§fn clone(&self) -> ShadowEventStore
fn clone(&self) -> ShadowEventStore
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ShadowEventStore
impl !RefUnwindSafe for ShadowEventStore
impl Send for ShadowEventStore
impl Sync for ShadowEventStore
impl Unpin for ShadowEventStore
impl UnsafeUnpin for ShadowEventStore
impl !UnwindSafe for ShadowEventStore
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request