gestura_core_memory_bank/
lib.rs

1//! Durable memory-bank storage and retrieval for Gestura.
2//!
3//! `gestura-core-memory-bank` owns the long-term/shared memory layer used by the
4//! runtime. It persists durable memory records as human-readable markdown with
5//! typed metadata, making them searchable across sessions while staying easy to
6//! inspect and recover manually.
7//!
8//! ## Memory model
9//!
10//! The memory bank is the durable counterpart to session-scoped working memory:
11//!
12//! - short-term working memory lives with active sessions
13//! - durable memory-bank entries live on disk and can be reused later
14//!
15//! Entries carry structured metadata so retrieval can be selective rather than a
16//! raw full-text search. High-signal dimensions include:
17//!
18//! - `MemoryKind`: retention/operational intent
19//! - `MemoryType`: procedural, semantic, episodic, resource, or other typed use
20//! - `MemoryScope`: task, session, directive, project, or global scope
21//! - provenance, tags, confidence, archival state, and promotion metadata
22//!
23//! ## Main entry points
24//!
25//! - `MemoryBankEntry`: durable memory record persisted to markdown
26//! - `MemoryBankQuery`: query builder for targeted retrieval
27//! - `save_to_memory_bank`, `load_from_memory_bank`, `search_memory_bank_with_query`
28//! - maintenance helpers such as listing, updating, deleting, and clearing
29//!
30//! ## Architecture role
31//!
32//! This crate owns durable memory persistence and retrieval. Higher-level UI and
33//! operator workflows—such as the shared memory console used by CLI and GUI—live
34//! in `gestura-core`, which composes this crate with session working memory.
35//!
36//! ## Stable import paths
37//!
38//! Most code should import through `gestura_core::memory_bank::*`.
39
40mod memory_bank;
41
42pub use memory_bank::*;