Skip to main content

engram/storage/
mod.rs

1//! Storage engine for Engram
2//!
3//! Handles SQLite database operations, WAL mode, and schema management.
4//!
5//! # Architecture (ENG-14)
6//!
7//! The storage layer is built around the `StorageBackend` trait which defines
8//! the interface for all storage operations. This allows for multiple backend
9//! implementations:
10//!
11//! - `SqliteBackend` - Current default, uses rusqlite with WAL mode
12//! - `TursoBackend` - Planned for Phase 6, distributed SQLite
13//! - `MeilisearchBackend` - Planned for Phase 7, full-text search focused
14//!
15//! ## Extension Traits
16//!
17//! - `TransactionalBackend` - For backends that support ACID transactions
18//! - `CloudSyncBackend` - For backends with cloud synchronization
19
20pub mod agent_registry;
21mod audit;
22pub mod auto_linker;
23pub mod backend;
24#[cfg(feature = "emergent-graph")]
25pub mod clustering;
26mod confidence;
27mod connection;
28pub mod entity_queries;
29pub mod filter;
30pub mod graph_queries;
31pub mod identity_links;
32pub mod image_storage;
33pub mod memory_blocks;
34mod migrations;
35pub mod queries;
36pub mod scope_grants;
37pub mod scoping;
38pub mod sqlite_backend;
39pub mod temporal;
40
41#[cfg(feature = "meilisearch")]
42pub mod meilisearch_backend;
43#[cfg(feature = "meilisearch")]
44pub mod meilisearch_indexer;
45
46#[cfg(feature = "turso")]
47pub mod turso_backend;
48
49pub use agent_registry::{
50    deregister_agent, get_agent, get_agents_in_namespace, heartbeat_agent, list_agents,
51    register_agent, update_agent_capabilities, Agent, RegisterAgentInput,
52};
53pub use scope_grants::{
54    check_scope_access, grant_scope_access, list_grants_for_agent, revoke_scope_access,
55    ScopeGrant,
56};
57pub use audit::*;
58pub use auto_linker::{
59    auto_link_stats, insert_auto_link, list_auto_links, run_semantic_linker, run_temporal_linker,
60    AutoLink, AutoLinkResult, SemanticLinkOptions, TemporalLinkOptions,
61};
62pub use backend::{
63    BatchCreateResult as BackendBatchCreateResult, BatchDeleteResult as BackendBatchDeleteResult,
64    CloudSyncBackend, HealthStatus, StorageBackend, StorageStats, SyncDelta as BackendSyncDelta,
65    SyncResult, SyncState, TransactionalBackend,
66};
67#[cfg(feature = "emergent-graph")]
68pub use clustering::{
69    get_cluster, list_clusters, run_louvain_clustering, Cluster, ClusteringResult, LouvainOptions,
70};
71pub use confidence::*;
72pub use connection::{Storage, StoragePool};
73pub use entity_queries::{
74    delete_entity, find_entity, get_entities_for_memory, get_entity, get_entity_stats,
75    get_memories_for_entity, link_entity_to_memory, list_entities, search_entities,
76    unlink_entity_from_memory, upsert_entity, EntityStats,
77};
78pub use graph_queries::{
79    find_path, get_neighborhood, get_related_multi_hop, ConnectionType, TraversalDirection,
80    TraversalNode, TraversalOptions, TraversalResult, TraversalStats,
81};
82pub use identity_links::{
83    add_alias, create_identity, delete_identity, get_aliases, get_identity, get_identity_memories,
84    get_memory_identities, link_identity_to_memory, list_identities, normalize_alias, remove_alias,
85    resolve_alias, search_identities_by_alias, unlink_identity_from_memory, update_identity,
86    CreateIdentityInput, Identity, IdentityAlias, IdentityType, MemoryIdentityLink,
87};
88pub use image_storage::{
89    migrate_images, parse_data_uri, upload_image, ImageRef, ImageStorageConfig, LocalImageStorage,
90    MigrationResult, UploadedImage,
91};
92#[cfg(feature = "meilisearch")]
93pub use meilisearch_backend::MeilisearchBackend;
94#[cfg(feature = "meilisearch")]
95pub use meilisearch_indexer::MeilisearchIndexer;
96pub use queries::{
97    acknowledge_share,
98    boost_memory,
99    cleanup_sync_data,
100    clear_events,
101    create_checkpoint,
102    create_memory,
103    // Batch operations
104    create_memory_batch,
105    // Special types
106    create_section_memory,
107    delete_memory_batch,
108    // Import/export
109    export_memories,
110    get_agent_sync_state,
111    get_sync_delta,
112    // Advanced sync
113    get_sync_version,
114    get_tag_hierarchy,
115    import_memories,
116    // Existing exports
117    list_memories_compact,
118    // Tag utilities
119    list_tags,
120    poll_events,
121    poll_shared_memories,
122    rebuild_crossrefs,
123    // Maintenance
124    rebuild_embeddings,
125    // Event system
126    record_event,
127    // Search variants
128    search_by_identity,
129    search_sessions,
130    // Multi-agent sharing
131    share_memory,
132    update_agent_sync_state,
133    validate_tags,
134    AgentSyncState,
135    BatchCreateResult,
136    BatchDeleteResult,
137    CompactMemoryRow,
138    ExportData,
139    ImportResult,
140    MemoryEvent,
141    MemoryEventType,
142    SharedMemory,
143    SyncDelta,
144    SyncVersion,
145    TagHierarchyNode,
146    TagInfo,
147    TagValidationResult,
148};
149pub use sqlite_backend::SqliteBackend;
150pub use temporal::{
151    MemorySnapshot, StateDiff, TemporalMemory, TemporalQueryEngine, TemporalQueryOptions,
152};
153#[cfg(feature = "turso")]
154pub use turso_backend::{TursoBackend, TursoConfig};