Skip to content

FilePersistentMemoryStore

Storage adapter for persistent memory blocks. Implementations:

  • FilePersistentMemoryStore (built-in default, file-system backed)
  • postgres / redis / vector — pluggable via this interface

The store is responsible for atomic durability and per-user/per-agent scoping; the runtime layer handles when to load + when to inject.

new FilePersistentMemoryStore(opts?): FilePersistentMemoryStore;
Parameter Type

opts

FilePersistentMemoryStoreOptions

FilePersistentMemoryStore

readonly rootDir: string;
deleteBlock(
scope,
owner,
key): Promise<void>;

Delete a block. No-op when missing.

Parameter Type

scope

MemoryBlockScope

owner

string

key

string

Promise<void>

PersistentMemoryStore.deleteBlock


listBlocks(scope, owner): Promise<string[]>;

List block keys for an owner within a scope.

Parameter Type

scope

MemoryBlockScope

owner

string

Promise<string[]>

PersistentMemoryStore.listBlocks


loadBlock(
scope,
owner,
key): Promise<
| PersistentMemoryBlock
| null>;

Load a single block by (scope, owner, key). Returns null when the block does not exist yet (first time the agent ever ran for this owner). Implementations MUST NOT throw on missing — return null.

owner is typically the userId for scope=‘user’ / scope=‘shared’, and the agentId for scope=‘agent’. Implementations should accept any string and treat it as opaque.

Parameter Type

scope

MemoryBlockScope

owner

string

key

string

Promise< | PersistentMemoryBlock | null>

PersistentMemoryStore.loadBlock


saveBlock(block, owner): Promise<void>;

Persist a block atomically. Replaces the entire content.

Parameter Type

block

PersistentMemoryBlock

owner

string

Promise<void>

PersistentMemoryStore.saveBlock