Memory

@three-blocks/proAIMemoryPerception
new Memory()

Memory - Time-decaying memory storage

Stores information that fades over time, like last known positions or remembered events. Each memory has a decay time after which it becomes unavailable.

Usage

Example
// Remember something for 30 seconds
memory.remember('lastSeenPosition', targetPos, 30);

// Recall it (returns null after decay)
const pos = memory.recall('lastSeenPosition');

// Check confidence (1.0 = fresh, 0.0 = about to expire)
const confidence = memory.getConfidence('lastSeenPosition');

Methods

remember#

remember(key : string, value : any, decayTime : number) : Memory

Store a memory that will decay over time.

Parameters
keystring
Memory key.
valueany
Value to remember.
decayTimeoptionalnumber
Time in seconds before decay (uses default if not specified).
Returns
Memory — This instance for chaining.

recall#

recall(key : string) : any|null

Recall a memory if it hasn't decayed.

Parameters
keystring
Memory key.
Returns
any | null — The remembered value, or null if decayed/never set.

getConfidence#

getConfidence(key : string) : number

Get the confidence level of a memory (1.0 = fresh, 0.0 = expired).

Parameters
keystring
Memory key.
Returns
number — Confidence from 0.0 to 1.0, or 0 if not found.

has#

has(key : string) : boolean

Check if a memory exists and hasn't decayed.

Parameters
keystring
Memory key.
Returns
boolean — True if memory exists and is valid.

forget#

forget(key : string) : boolean

Forget a specific memory.

Parameters
keystring
Memory key to forget.
Returns
boolean — True if the memory existed.

clear#

clear() : Memory

Clear all memories.

Returns
Memory — This instance for chaining.

update#

update(delta : number) : Memory

Update memory time and clean up expired memories. Called each frame.

Parameters
deltanumber
Time delta in seconds.
Returns
Memory — This instance for chaining.

getAge#

getAge(key : string) : number

Get the age of a memory in seconds.

Parameters
keystring
Memory key.
Returns
number — Age in seconds, or Infinity if not found.

refresh#

refresh(key : string) : boolean

Refresh a memory's timestamp without changing its value.

Parameters
keystring
Memory key to refresh.
Returns
boolean — True if the memory existed and was refreshed.