cerno_core/lib.rs
1//! The cerno engine: three typed primitives on top of one token of model output.
2//!
3//! A Noul, a Choice and a Score are the same operation wearing different names. Each offers the
4//! model a handful of lettered options and reads the probability distribution over the *first*
5//! token it would generate. That is one forward pass, no matter how many options there are —
6//! which is what makes the whole thing fast, and what separates it from asking a model to write
7//! an answer and then parsing the prose back out.
8//!
9//! ```text
10//! question ──> options ──> labels A,B,C ──> prompt ──> host ──> distribution
11//! │
12//! typed answer <── calibrate <── fold variants, floor <──────┘
13//! ```
14//!
15//! The pieces are split so each can be tested on its own: [`labels`] owns the alphabet,
16//! [`prompt`] owns the wording, [`math`] owns the arithmetic, and [`engine`] joins them.
17
18pub mod engine;
19pub mod labels;
20pub mod math;
21pub mod prompt;
22
23pub use engine::{Engine, EngineError};