Skip to main content

mimir_core/
lib.rs

1//! Mimir core — foundational types plus the librarian pipeline and
2//! durable store.
3//!
4//! The crate groups into three layers:
5//!
6//! - **Foundational types** ([`symbol`], [`workspace`], [`clock`],
7//!   [`confidence`], [`memory_kind`], [`source_kind`], [`value`]) —
8//!   newtypes and enums every higher component consumes.
9//! - **Librarian pipeline** ([`lex`] → [`parse`] → [`bind`] →
10//!   [`semantic`] → [`pipeline`] → [`canonical`]) — compiles agent
11//!   S-expression input into canonical bytecode per
12//!   `librarian-pipeline.md`.
13//! - **Durability + domain utilities** ([`log`], [`store`],
14//!   [`inference_methods`], [`decay`]) — the append-only workspace
15//!   store, the 14-method inference registry, and the deterministic
16//!   confidence-decay model.
17//!
18//! Read-only inspection and round-trip rendering live in the sibling
19//! `mimir-cli` crate.
20//!
21//! See `docs/concepts/` in the repository root for the architectural
22//! specifications these modules implement:
23//!
24//! - [`memory-type-taxonomy.md`](https://github.com/buildepicshit/Mimir/blob/main/docs/concepts/memory-type-taxonomy.md)
25//! - [`symbol-identity-semantics.md`](https://github.com/buildepicshit/Mimir/blob/main/docs/concepts/symbol-identity-semantics.md)
26//! - [`workspace-model.md`](https://github.com/buildepicshit/Mimir/blob/main/docs/concepts/workspace-model.md)
27//! - [`temporal-model.md`](https://github.com/buildepicshit/Mimir/blob/main/docs/concepts/temporal-model.md)
28//! - [`grounding-model.md`](https://github.com/buildepicshit/Mimir/blob/main/docs/concepts/grounding-model.md)
29//! - [`ir-write-surface.md`](https://github.com/buildepicshit/Mimir/blob/main/docs/concepts/ir-write-surface.md)
30//! - [`ir-canonical-form.md`](https://github.com/buildepicshit/Mimir/blob/main/docs/concepts/ir-canonical-form.md)
31//! - [`librarian-pipeline.md`](https://github.com/buildepicshit/Mimir/blob/main/docs/concepts/librarian-pipeline.md)
32//! - [`write-protocol.md`](https://github.com/buildepicshit/Mimir/blob/main/docs/concepts/write-protocol.md)
33//! - [`confidence-decay.md`](https://github.com/buildepicshit/Mimir/blob/main/docs/concepts/confidence-decay.md)
34
35#![forbid(unsafe_code)]
36#![deny(missing_docs)]
37// unwrap/expect/panic are denied at the workspace level for library
38// correctness (per PRINCIPLES.md § 7). Relax inside #[cfg(test)] so unit
39// tests and property tests can use idiomatic Result-assertion and
40// "unreachable test state" patterns. External integration tests under
41// tests/ opt in via their own crate-level attribute.
42#![cfg_attr(
43    test,
44    allow(
45        clippy::unwrap_used,
46        clippy::expect_used,
47        clippy::panic,
48        clippy::approx_constant,
49        clippy::similar_names,
50    )
51)]
52
53pub mod bind;
54pub mod canonical;
55pub mod clock;
56pub mod confidence;
57pub mod dag;
58pub mod decay;
59pub mod inference_methods;
60pub mod lex;
61pub mod log;
62pub mod memory_kind;
63pub mod parse;
64pub mod pipeline;
65pub mod read;
66pub mod resolver;
67pub mod semantic;
68pub mod source_kind;
69pub mod store;
70pub mod symbol;
71pub mod value;
72pub mod workspace;
73pub mod workspace_lock;
74
75pub use clock::{ClockTime, ClockTimeError};
76pub use confidence::{Confidence, ConfidenceError};
77pub use memory_kind::{Episodic, Inferential, MemoryKind, MemoryKindTag, Procedural, Semantic};
78pub use pipeline::{EmitError, Pipeline, PipelineError};
79pub use source_kind::SourceKind;
80pub use store::{EpisodeId, Store, StoreError};
81pub use symbol::{ScopedSymbolId, SymbolId, SymbolKind};
82pub use value::Value;
83pub use workspace::{WorkspaceId, WorkspaceIdError};
84pub use workspace_lock::{lock_path_for_log, WorkspaceLockError, WorkspaceWriteLock};