Skip to main content

Module storage

Module storage 

Source
Expand description

Storage engine for Engram

Handles SQLite database operations, WAL mode, and schema management.

§Architecture (ENG-14)

The storage layer is built around the StorageBackend trait which defines the interface for all storage operations. This allows for multiple backend implementations:

  • SqliteBackend - Current default, uses rusqlite with WAL mode
  • TursoBackend - Planned for Phase 6, distributed SQLite
  • MeilisearchBackend - Planned for Phase 7, full-text search focused

§Extension Traits

  • TransactionalBackend - For backends that support ACID transactions
  • CloudSyncBackend - For backends with cloud synchronization

Re-exports§

pub use agent_registry::deregister_agent;
pub use agent_registry::get_agent;
pub use agent_registry::get_agents_in_namespace;
pub use agent_registry::heartbeat_agent;
pub use agent_registry::list_agents;
pub use agent_registry::register_agent;
pub use agent_registry::update_agent_capabilities;
pub use agent_registry::Agent;
pub use agent_registry::RegisterAgentInput;
pub use scope_grants::check_scope_access;
pub use scope_grants::grant_scope_access;
pub use scope_grants::list_grants_for_agent;
pub use scope_grants::revoke_scope_access;
pub use scope_grants::ScopeGrant;
pub use auto_linker::run_semantic_linker;
pub use auto_linker::run_temporal_linker;
pub use auto_linker::AutoLinkResult;
pub use auto_linker::SemanticLinkOptions;
pub use auto_linker::TemporalLinkOptions;
pub use backend::BatchCreateResult as BackendBatchCreateResult;
pub use backend::BatchDeleteResult as BackendBatchDeleteResult;
pub use backend::CloudSyncBackend;
pub use backend::HealthStatus;
pub use backend::StorageBackend;
pub use backend::StorageStats;
pub use backend::SyncDelta as BackendSyncDelta;
pub use backend::SyncResult;
pub use backend::SyncState;
pub use backend::TransactionalBackend;
pub use entity_queries::delete_entity;
pub use entity_queries::find_entity;
pub use entity_queries::get_entities_for_memory;
pub use entity_queries::get_entity;
pub use entity_queries::get_entity_stats;
pub use entity_queries::get_memories_for_entity;
pub use entity_queries::list_entities;
pub use entity_queries::search_entities;
pub use entity_queries::upsert_entity;
pub use entity_queries::EntityStats;
pub use graph_queries::find_path;
pub use graph_queries::get_neighborhood;
pub use graph_queries::ConnectionType;
pub use graph_queries::TraversalDirection;
pub use graph_queries::TraversalNode;
pub use graph_queries::TraversalOptions;
pub use graph_queries::TraversalResult;
pub use graph_queries::TraversalStats;
pub use identity_links::add_alias;
pub use identity_links::create_identity;
pub use identity_links::delete_identity;
pub use identity_links::get_aliases;
pub use identity_links::get_identity;
pub use identity_links::get_identity_memories;
pub use identity_links::get_memory_identities;
pub use identity_links::list_identities;
pub use identity_links::normalize_alias;
pub use identity_links::remove_alias;
pub use identity_links::resolve_alias;
pub use identity_links::search_identities_by_alias;
pub use identity_links::update_identity;
pub use identity_links::CreateIdentityInput;
pub use identity_links::Identity;
pub use identity_links::IdentityAlias;
pub use identity_links::IdentityType;
pub use image_storage::migrate_images;
pub use image_storage::parse_data_uri;
pub use image_storage::upload_image;
pub use image_storage::ImageRef;
pub use image_storage::ImageStorageConfig;
pub use image_storage::LocalImageStorage;
pub use image_storage::MigrationResult;
pub use image_storage::UploadedImage;
pub use queries::acknowledge_share;
pub use queries::boost_memory;
pub use queries::cleanup_sync_data;
pub use queries::clear_events;
pub use queries::create_checkpoint;
pub use queries::create_memory;
pub use queries::create_memory_batch;
pub use queries::create_section_memory;
pub use queries::delete_memory_batch;
pub use queries::export_memories;
pub use queries::get_agent_sync_state;
pub use queries::get_sync_delta;
pub use queries::get_sync_version;
pub use queries::get_tag_hierarchy;
pub use queries::import_memories;
pub use queries::list_memories_compact;
pub use queries::list_tags;
pub use queries::poll_events;
pub use queries::poll_shared_memories;
pub use queries::rebuild_crossrefs;
pub use queries::rebuild_embeddings;
pub use queries::record_event;
pub use queries::search_by_identity;
pub use queries::search_sessions;
pub use queries::share_memory;
pub use queries::update_agent_sync_state;
pub use queries::validate_tags;
pub use queries::AgentSyncState;
pub use queries::BatchCreateResult;
pub use queries::BatchDeleteResult;
pub use queries::CompactMemoryRow;
pub use queries::ExportData;
pub use queries::ImportResult;
pub use queries::MemoryEvent;
pub use queries::MemoryEventType;
pub use queries::SharedMemory;
pub use queries::SyncDelta;
pub use queries::SyncVersion;
pub use queries::TagHierarchyNode;
pub use queries::TagInfo;
pub use queries::TagValidationResult;
pub use sqlite_backend::SqliteBackend;
pub use temporal::MemorySnapshot;
pub use temporal::StateDiff;
pub use temporal::TemporalMemory;
pub use temporal::TemporalQueryEngine;
pub use temporal::TemporalQueryOptions;

Modules§

agent_registry
Agent registry storage queries
auto_linker
Auto-linking engine for emergent knowledge graph.
backend
entity_queries
Database queries for entity operations (RML-925)
filter
Advanced metadata filter syntax for memory queries (RML-932)
graph_queries
Multi-hop graph traversal queries
identity_links
Identity links and alias management
image_storage
Image storage backend for memory images.
memory_blocks
Letta/MemGPT-inspired self-editing memory blocks.
queries
Database queries for memory operations
scope_grants
Scope-based access grants for multi-agent memory sharing.
scoping
Hierarchical memory scoping (T11)
sqlite_backend
SQLite implementation of the StorageBackend trait (ENG-15)
temporal
Point-in-Time Graph Queries (RML-899)

Structs§

AuditEntry
Audit log entry
AuditFilter
Filter for querying audit log
AuditSummary
Summary of audit activity for a memory
DecayedCrossRef
Cross-reference with calculated decayed confidence
RefreshResult
Result of batch confidence refresh
Storage
Storage engine wrapping SQLite with connection pooling
StoragePool
Connection pool for concurrent access

Enums§

AuditAction
Types of auditable actions

Constants§

DEFAULT_HALF_LIFE_DAYS
Default half-life in days (configurable via env)

Functions§

boost_confidence
Boost confidence of a cross-reference (user interaction)
calculate_decayed_confidence
Calculate decayed confidence based on age
calculate_diff
Calculate a diff between two memory states
get_effective_confidence
Get effective confidence for a cross-reference (considering decay and pinned status)
get_memory_audit_summary
Get audit summary for a memory
get_related_with_decay
Get all cross-references with decayed confidence scores
log_audit
Log an audit entry
pin_crossref
Pin a cross-reference (exempt from decay)
query_audit_log
Query audit log entries
refresh_confidence_batch
Batch update confidence values (for maintenance)
unpin_crossref
Unpin a cross-reference (subject to decay)