pub struct MarkdownAgentMemoryStore { /* private fields */ }Implementations§
Source§impl MarkdownAgentMemoryStore
impl MarkdownAgentMemoryStore
pub fn open(root: impl Into<PathBuf>) -> Result<Self, AgentMemoryError>
pub fn path_for(&self, realm: &str, identity: &AgentIdentity) -> PathBuf
pub fn remember( &self, realm: &str, identity: &AgentIdentity, memory: NewAgentMemory, ) -> Result<AgentMemoryRecord, AgentMemoryError>
pub fn read_records( &self, realm: &str, identity: &AgentIdentity, ) -> Result<Vec<AgentMemoryRecord>, AgentMemoryError>
pub fn forget( &self, realm: &str, identity: &AgentIdentity, memory_id: &str, ) -> Result<AgentMemoryForgetResult, AgentMemoryError>
Trait Implementations§
Source§impl AgentMemoryProvider for MarkdownAgentMemoryStore
impl AgentMemoryProvider for MarkdownAgentMemoryStore
fn supports_remember(&self) -> bool
fn supports_forget(&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 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,
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,
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,
Metadata manifest over the composed scopes (§8.3).
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,
Update-in-place with history (fixes D4): the new record supersedes
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,
Mechanical usage-ledger updates (§9.2). Deliberately flag-less: it is
an internal coordinator surface, not an advertised RPC capability.
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,
Injection-ledger append (§9.2): which records entered whose context,
through which surface, when. Internal coordinator telemetry —
default no-op (not an error) so simple providers like the markdown
store need no capability flag and the coordinator never has to care.
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,
Queue a record for steward-committed scopes (mob/operator — §7.2
write authority).
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
Agent-authored create in
scope. Default-unsupported: the Recorder
only registers against providers that implement this.Agent-authored supersede within a single record’s lineage in the
author’s own writable scope (§8.2). Cross-scope updates are a
validator reject, not a policy the caller can waive.
Agent-authored tombstone in the author’s own scope.
Source§fn as_sqlite_store(&self) -> Option<&SqliteAgentMemoryStore>
fn as_sqlite_store(&self) -> Option<&SqliteAgentMemoryStore>
Bundled-store downcast seam: the builder wires the console Memory
panel (§9.3) when — and only when — the configured provider is the
bundled SQLite store. External providers keep the default
None.Source§impl Clone for MarkdownAgentMemoryStore
impl Clone for MarkdownAgentMemoryStore
Source§fn clone(&self) -> MarkdownAgentMemoryStore
fn clone(&self) -> MarkdownAgentMemoryStore
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 MarkdownAgentMemoryStore
impl RefUnwindSafe for MarkdownAgentMemoryStore
impl Send for MarkdownAgentMemoryStore
impl Sync for MarkdownAgentMemoryStore
impl Unpin for MarkdownAgentMemoryStore
impl UnsafeUnpin for MarkdownAgentMemoryStore
impl UnwindSafe for MarkdownAgentMemoryStore
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,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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 more