pub struct SqliteAgentMemoryStore { /* private fields */ }Expand description
Bundled SQLite store. Cheap to clone; connections are cached per realm and shared across clones.
Implementations§
Source§impl SqliteAgentMemoryStore
impl SqliteAgentMemoryStore
pub fn open(root: impl Into<PathBuf>) -> Result<Self, AgentMemoryError>
Sourcepub fn path_for_realm(&self, realm: &str) -> PathBuf
pub fn path_for_realm(&self, realm: &str) -> PathBuf
Same directory + percent-encoding scheme as
MarkdownAgentMemoryStore::path_for, one database per realm.
Source§impl SqliteAgentMemoryStore
impl SqliteAgentMemoryStore
Sourcepub async fn resolve_dream_audit_verdicts(
&self,
realm: &str,
record_id: &str,
resolution: &str,
) -> Result<usize, AgentMemoryError>
pub async fn resolve_dream_audit_verdicts( &self, realm: &str, record_id: &str, resolution: &str, ) -> Result<usize, AgentMemoryError>
Resolve every open audit verdict for record_id (the operator acted:
superseded/retired/dismissed via the review queue).
Deliberately NOT on StewardStore/MemoryPanelStore: no
production caller exists yet (the operator review-queue mutation is
a reserved seam); it joins the capability trait with its first
consumer.
Trait Implementations§
Source§impl AgentMemoryProvider for SqliteAgentMemoryStore
impl AgentMemoryProvider for SqliteAgentMemoryStore
fn recall<'life0, 'async_trait>(
&'life0 self,
request: AgentMemoryRecallRequest,
) -> Pin<Box<dyn Future<Output = Result<Vec<AgentMemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn supports_remember(&self) -> bool
fn remember<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
identity: &'life2 AgentIdentity,
memory: NewAgentMemory,
) -> Pin<Box<dyn Future<Output = Result<AgentMemoryRecord, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn supports_forget(&self) -> bool
fn forget<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
realm: &'life1 str,
identity: &'life2 AgentIdentity,
memory_id: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<AgentMemoryForgetResult, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Source§fn manifest<'life0, 'life1, 'async_trait>(
&'life0 self,
scopes: &'life1 [MemoryScope],
tier: ManifestTier,
) -> Pin<Box<dyn Future<Output = Result<Vec<RecordMeta>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn manifest<'life0, 'life1, 'async_trait>(
&'life0 self,
scopes: &'life1 [MemoryScope],
tier: ManifestTier,
) -> Pin<Box<dyn Future<Output = Result<Vec<RecordMeta>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
WorkingSet(k) is
the union of the top-K ranked records and the recent/unranked slice;
Full is every active record’s metadata.fn supports_manifest(&self) -> bool
Source§fn supersede<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
scope: &'life1 MemoryScope,
prior: &'life2 str,
record: NewMemoryRecord,
) -> Pin<Box<dyn Future<Output = Result<MemoryId, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn supersede<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
scope: &'life1 MemoryScope,
prior: &'life2 str,
record: NewMemoryRecord,
) -> Pin<Box<dyn Future<Output = Result<MemoryId, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
prior within its lineage and inherits its working-set rank.fn supports_supersede(&self) -> bool
Source§fn mark_usage<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [MemoryId],
event: UsageEvent,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn mark_usage<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [MemoryId],
event: UsageEvent,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn log_injections<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
entries: &'life2 [InjectionLogEntry],
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn log_injections<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
entries: &'life2 [InjectionLogEntry],
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn propose<'life0, 'life1, 'async_trait>(
&'life0 self,
scope: &'life1 MemoryScope,
record: NewMemoryRecord,
author: MemoryAuthor,
) -> Pin<Box<dyn Future<Output = Result<ProposalId, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn propose<'life0, 'life1, 'async_trait>(
&'life0 self,
scope: &'life1 MemoryScope,
record: NewMemoryRecord,
author: MemoryAuthor,
) -> Pin<Box<dyn Future<Output = Result<ProposalId, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
author is the proposing principal — the Recorder
proposes with real MemoryAuthor::Agent authorship (§8.2), the RPC
path with Application.fn supports_propose(&self) -> bool
scope. Default-unsupported: the Recorder
only registers against providers that implement this.Source§fn as_taintable(&self) -> Option<Arc<dyn TaintableStore>>
fn as_taintable(&self) -> Option<Arc<dyn TaintableStore>>
Source§fn as_steward_store(&self) -> Option<Arc<dyn StewardStore>>
fn as_steward_store(&self) -> Option<Arc<dyn StewardStore>>
Source§fn as_memory_panel_store(&self) -> Option<Arc<dyn MemoryPanelStore>>
fn as_memory_panel_store(&self) -> Option<Arc<dyn MemoryPanelStore>>
Source§fn as_selected_record_fetch(&self) -> Option<Arc<dyn SelectedRecordFetch>>
fn as_selected_record_fetch(&self) -> Option<Arc<dyn SelectedRecordFetch>>
Source§fn as_tombstone_source(&self) -> Option<Arc<dyn TombstoneSource>>
fn as_tombstone_source(&self) -> Option<Arc<dyn TombstoneSource>>
Source§impl Clone for SqliteAgentMemoryStore
impl Clone for SqliteAgentMemoryStore
Source§fn clone(&self) -> SqliteAgentMemoryStore
fn clone(&self) -> SqliteAgentMemoryStore
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl MemoryPanelStore for SqliteAgentMemoryStore
impl MemoryPanelStore for SqliteAgentMemoryStore
Source§fn panel_realms<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn panel_realms<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn record_by_id<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
memory_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<MemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn record_by_id<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
memory_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<MemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn records_page<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
realm: &'life1 str,
scope_kind: Option<&'life2 str>,
scope_key: Option<&'life3 str>,
status_kind: Option<&'life4 str>,
limit: usize,
cursor: Option<(u64, String)>,
) -> Pin<Box<dyn Future<Output = Result<PanelRecordsPage, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn records_page<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
realm: &'life1 str,
scope_kind: Option<&'life2 str>,
scope_key: Option<&'life3 str>,
status_kind: Option<&'life4 str>,
limit: usize,
cursor: Option<(u64, String)>,
) -> Pin<Box<dyn Future<Output = Result<PanelRecordsPage, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Source§fn supersede_chain<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
memory_id: &'life2 str,
max_len: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn supersede_chain<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
memory_id: &'life2 str,
max_len: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
supersedes pointer, the record itself, then committed successors
via the Superseded { by } status link. When the tip has no
committed successor, records claiming to supersede it (e.g. a
quarantined supersede that left the prior active, §10.1) are
appended without recursing — claims are visible but never extend
the walk. Bounded by max_len, cycle-safe.Source§fn injection_log_for_record<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
record_id: &'life2 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<InjectionLogEntry>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn injection_log_for_record<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
record_id: &'life2 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<InjectionLogEntry>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn dream_runs<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<PersistedDreamRun>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn dream_runs<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<PersistedDreamRun>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn open_dream_audit_verdicts<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<DreamAuditVerdict>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn open_dream_audit_verdicts<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<DreamAuditVerdict>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn dream_history<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
max_runs: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<DreamRunAudit>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn dream_history<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
max_runs: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<DreamRunAudit>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl SelectedRecordFetch for SqliteAgentMemoryStore
Body fetch for selector-chosen ids (§8.3): a plain by-id read over the
composed scopes, wire-compat projected, returned in ids order. Only
active records in the requested scopes qualify — the selector judged a
manifest of exactly those.
impl SelectedRecordFetch for SqliteAgentMemoryStore
Body fetch for selector-chosen ids (§8.3): a plain by-id read over the
composed scopes, wire-compat projected, returned in ids order. Only
active records in the requested scopes qualify — the selector judged a
manifest of exactly those.
fn fetch_records<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
scopes: &'life1 [MemoryScope],
ids: &'life2 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<AgentMemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn fetch_records_annotated<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
scopes: &'life1 [MemoryScope],
ids: &'life2 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<AnnotatedRecord>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn fetch_records_annotated<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
scopes: &'life1 [MemoryScope],
ids: &'life2 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<AnnotatedRecord>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self::fetch_records with no provenance so existing stores keep
compiling; stores that know each record’s scope and trust tier
should override so injected bodies carry their labels.Source§impl StagedMemoryStore for SqliteAgentMemoryStore
impl StagedMemoryStore for SqliteAgentMemoryStore
Source§fn stage<'life0, 'async_trait>(
&'life0 self,
batch: StagedMutationBatch,
) -> Pin<Box<dyn Future<Output = Result<StageToken, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stage<'life0, 'async_trait>(
&'life0 self,
batch: StagedMutationBatch,
) -> Pin<Box<dyn Future<Output = Result<StageToken, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn commit<'life0, 'async_trait>(
&'life0 self,
token: StageToken,
) -> Pin<Box<dyn Future<Output = Result<CommitReceipt, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn commit<'life0, 'async_trait>(
&'life0 self,
token: StageToken,
) -> Pin<Box<dyn Future<Output = Result<CommitReceipt, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl StewardStore for SqliteAgentMemoryStore
impl StewardStore for SqliteAgentMemoryStore
Source§fn scope_floors(&self) -> (usize, usize)
fn scope_floors(&self) -> (usize, usize)
Source§fn scope_overview<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<ScopeOverview>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn scope_overview<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<ScopeOverview>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn pending_proposals<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<PendingProposal>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn pending_proposals<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<PendingProposal>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn set_proposal_status<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
realm: &'life1 str,
proposal_id: &'life2 str,
status: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn set_proposal_status<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
realm: &'life1 str,
proposal_id: &'life2 str,
status: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
accepted, rejected, or
held (held stays in the pending queue for the next dream).Source§fn quarantined_records<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn quarantined_records<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn records_by_ids<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
ids: &'life2 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn records_by_ids<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
ids: &'life2 [String],
) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn recent_records<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn recent_records<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn injection_log<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<InjectionLogEntry>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn injection_log<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<InjectionLogEntry>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn record_pending_harvest<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
realm: &'life1 str,
identity: &'life2 str,
session_key: Option<&'life3 str>,
cause: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn record_pending_harvest<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
realm: &'life1 str,
identity: &'life2 str,
session_key: Option<&'life3 str>,
cause: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Source§fn pending_harvests<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<PendingHarvest>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn pending_harvests<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<PendingHarvest>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn mark_harvest_complete<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
identity: &'life2 str,
retired_at_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn mark_harvest_complete<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
identity: &'life2 str,
retired_at_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn record_pending_promotion<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
promotion: PendingPromotion,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn record_pending_promotion<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
promotion: PendingPromotion,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
pending_id → staged
batch token (§10.2). Only a gating approval commits the token.Source§fn pending_promotion_by_id<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
pending_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<PendingPromotion>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn pending_promotion_by_id<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
pending_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<PendingPromotion>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn pending_promotions<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<PendingPromotion>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn pending_promotions<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<PendingPromotion>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn resolve_pending_promotion<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
realm: &'life1 str,
pending_id: &'life2 str,
status: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn resolve_pending_promotion<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
realm: &'life1 str,
pending_id: &'life2 str,
status: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
committed, denied, or expired.Source§fn rekey_pending_promotion<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
realm: &'life1 str,
old_pending_id: &'life2 str,
new_pending_id: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn rekey_pending_promotion<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
realm: &'life1 str,
old_pending_id: &'life2 str,
new_pending_id: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Source§fn discard_stage<'life0, 'async_trait>(
&'life0 self,
token: StageToken,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn discard_stage<'life0, 'async_trait>(
&'life0 self,
token: StageToken,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn save_dream_run<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
run: PersistedDreamRun,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn save_dream_run<'life0, 'life1, 'async_trait>(
&'life0 self,
realm: &'life1 str,
run: PersistedDreamRun,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn save_dream_audit_verdicts<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
run_id: &'life2 str,
verdicts: Vec<(String, String, String)>,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn save_dream_audit_verdicts<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
realm: &'life1 str,
run_id: &'life2 str,
verdicts: Vec<(String, String, String)>,
) -> Pin<Box<dyn Future<Output = Result<(), AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§impl TaintableStore for SqliteAgentMemoryStore
§10.1 firewall control surface. The gate/resolver/sink slots are shared
across clones (inner Arc<Mutex<..>>), so wiring once covers every
handle.
impl TaintableStore for SqliteAgentMemoryStore
§10.1 firewall control surface. The gate/resolver/sink slots are shared
across clones (inner Arc<Mutex<..>>), so wiring once covers every
handle.
Source§fn set_llm_write_gate(&self, gate: Arc<dyn LlmWriteGate>)
fn set_llm_write_gate(&self, gate: Arc<dyn LlmWriteGate>)
Source§fn set_llm_write_gate_if_absent(&self, gate: Arc<dyn LlmWriteGate>) -> bool
fn set_llm_write_gate_if_absent(&self, gate: Arc<dyn LlmWriteGate>) -> bool
Source§fn set_evidence_resolver(&self, resolver: Arc<dyn EvidenceRefResolver>)
fn set_evidence_resolver(&self, resolver: Arc<dyn EvidenceRefResolver>)
agent_verified
must cite evidence that resolves against the session store.Source§fn set_event_sink(&self, sink: Arc<dyn MemoryEventSink>)
fn set_event_sink(&self, sink: Arc<dyn MemoryEventSink>)
Source§fn set_event_sink_if_absent(&self, sink: Arc<dyn MemoryEventSink>) -> bool
fn set_event_sink_if_absent(&self, sink: Arc<dyn MemoryEventSink>) -> bool
Source§impl TombstoneSource for SqliteAgentMemoryStore
impl TombstoneSource for SqliteAgentMemoryStore
Source§fn recent_tombstones<'life0, 'life1, 'async_trait>(
&'life0 self,
scope: &'life1 MemoryScope,
since_ms: u64,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<TombstoneMeta>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn recent_tombstones<'life0, 'life1, 'async_trait>(
&'life0 self,
scope: &'life1 MemoryScope,
since_ms: u64,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<TombstoneMeta>, AgentMemoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Recent tombstones for the Distiller’s pre-injected “never re-create these” list (§8.4). The mechanical backstop for exact recreation is the staged validator’s content-hash check; this list closes the paraphrase gap at the prompt level.
Auto Trait Implementations§
impl Freeze for SqliteAgentMemoryStore
impl RefUnwindSafe for SqliteAgentMemoryStore
impl Send for SqliteAgentMemoryStore
impl Sync for SqliteAgentMemoryStore
impl Unpin for SqliteAgentMemoryStore
impl UnsafeUnpin for SqliteAgentMemoryStore
impl UnwindSafe for SqliteAgentMemoryStore
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
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> CoreExecutorTurnFinalizationGuard for Twhere
T: Send,
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