Zum Inhalt

repository

module wittgenstein_episodic_memory.repository

Pluggable persistence for EpisodicMemoryService (ADR-092).

Consumers that just need the lightweight timeline behavior use the default in-memory repository (unchanged from before this existed). Consumers with their own persistence (e.g. wittgenstein-core's DB-backed Episode table) implement this Protocol and inject it into EpisodicMemoryService.

Classes

  • EpisodeRepository — Storage backend for episodes — implement this to plug in real persistence.

  • InMemoryEpisodeRepository — Default repository — a plain in-process list, no persistence across restarts.

wittgenstein_episodic_memory.repository.EpisodeRepository

class EpisodeRepository()

Bases : Protocol

Storage backend for episodes — implement this to plug in real persistence.

Methods

  • add — Persist an episode, returning the stored representation (id populated).

  • query — Return episodes matching the query, newest first, capped at query.limit.

wittgenstein_episodic_memory.repository.EpisodeRepository.add

method EpisodeRepository.add(episode: Episode) → Episode

Persist an episode, returning the stored representation (id populated).

wittgenstein_episodic_memory.repository.EpisodeRepository.query

method EpisodeRepository.query(query: MemoryQuery) → List[Episode]

Return episodes matching the query, newest first, capped at query.limit.

wittgenstein_episodic_memory.repository.InMemoryEpisodeRepository

class InMemoryEpisodeRepository()

Default repository — a plain in-process list, no persistence across restarts.

This is the pre-ADR-092 behavior of EpisodicMemoryService, extracted so it can be the default, with real persistence as an opt-in injection instead of the only option.

Methods

wittgenstein_episodic_memory.repository.InMemoryEpisodeRepository.add

method InMemoryEpisodeRepository.add(episode: Episode) → Episode

wittgenstein_episodic_memory.repository.InMemoryEpisodeRepository.query

method InMemoryEpisodeRepository.query(query: MemoryQuery) → List[Episode]