1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
// Copyright (C) 2026 Industrial Algebra
// SPDX-License-Identifier: AGPL-3.0-only
//! # Minuet: A Toolkit for Holographic Memory Systems
//!
//! > "The optical table for holographic computing."
//!
//! Minuet is an open-source Rust toolkit that extends `amari-holographic` with
//! higher-level abstractions for building cognitive memory systems. While
//! `amari-holographic` provides the core `BindingAlgebra` trait and algebra
//! implementations, Minuet adds:
//!
//! - **Memory Stores**: Sharded, partitioned, and layered memory configurations
//! - **Retrieval Strategies**: Direct, resonator-based, hybrid pipelines
//! - **Encoding Infrastructure**: Symbol codebooks, composite encoders
//! - **Capacity Management**: Monitoring, eviction policies, consolidation
//! - **Persistence**: Snapshots, journaling, crash recovery
//! - **Pipeline Composition**: Fluent builders for assembling memory systems
//!
//! Named after Star Trek's first sentient hologram, Minuet builds on the
//! foundations of `amari-holographic` to enable application-specific memory
//! architectures.
//!
//! ## Quick Start
//!
//! ```rust
//! use minuet::prelude::*;
//!
//! type Algebra = ProductCliffordAlgebra<64>; // 512 dimensions
//!
//! fn main() -> MinuetResult<()> {
//! // Create a simple memory
//! let memory = SimpleMemory::<Algebra>::new();
//!
//! // Create symbols from codebook
//! let key = memory.symbol("paris");
//! let value = memory.symbol("france");
//!
//! // Store and retrieve
//! memory.store(&key, &value)?;
//! let result = memory.retrieve(&key)?;
//! Ok(())
//! }
//! ```
//!
//! ## Capacity Model
//!
//! Holographic memory has capacity O(DIM / log DIM). For typical dimensions:
//!
//! | Algebra Type | Dimension | Approx. Capacity |
//! |--------------|-----------|------------------|
//! | `ProductCliffordAlgebra<32>` | 256 | ~46 items |
//! | `ProductCliffordAlgebra<64>` | 512 | ~85 items |
//! | `ProductCliffordAlgebra<128>` | 1024 | ~147 items |
//!
//! For larger capacities, use [`store::ShardedStore`].
// Intentional casts in numeric code - dimensions won't exceed 52-bit precision
// These are valid but would require significant refactoring
// Documentation style - backticks in tables/code references
// ============================================================================
// Re-exports from amari-holographic
// ============================================================================
/// Core re-exports from amari-holographic.
///
/// These are the fundamental types for holographic memory operations.
pub use ;
// ============================================================================
// Core Modules
// ============================================================================
/// Core trait definitions for Minuet abstractions.
/// Error types and result aliases.
/// Memory store implementations.
/// Encoding infrastructure (codebooks, symbol encoders).
/// Retrieval strategies (resonators, cleanup).
/// Capacity management (monitoring, eviction, consolidation).
/// Pipeline composition (builders, executors).
/// Reference implementations for learning and simple use cases.
// ============================================================================
// Feature-gated Modules
// ============================================================================
/// Optical backend with checkpoint-based persistence.
///
/// Provides hardware abstraction for optical computing (DMD + MMF systems)
/// with journal-based persistence that's portable across hardware.
///
/// Enable with `features = ["optical"]`.
// Persistence layer - to be implemented in a future version
// #[cfg(feature = "persistence")]
// pub mod persistence;
// ============================================================================
// Prelude
// ============================================================================
/// Prelude module for convenient imports.
///
/// Import everything commonly needed with:
/// ```rust
/// use minuet::prelude::*;
/// ```
// ============================================================================
// Dimension Utilities
// ============================================================================
/// Compile-time dimension utilities.
///
/// Provides type-level computation for dimension-dependent constants.