turnframe_understand/lib.rs
1//! Turn understanding as small verified model tasks.
2//!
3//! An [`Understander`] reads one turn through a fixed set of narrow tasks run by the
4//! `turnframe-tasks` engine, then assembles their answers into one
5//! [`Understanding`](turnframe_core::understanding::Understanding) by code. Models judge
6//! language; code checks structure: a task points at the user's words instead of
7//! quoting them, gives dates and amounts as expressions code evaluates, and chooses only
8//! from closed sets built for its call. A verifier can take an act away, never add one.
9//!
10//! | Module | What it holds |
11//! | --- | --- |
12//! | [`input`] | what a turn's understanding may see |
13//! | [`words`] | the user's words, numbered, and pointers into them |
14//! | [`tasks`] | the task kinds, their prompts, schemas and checks |
15//! | [`values`] | from an extraction to the operation's values |
16//! | [`check`] | the domain's own check of an act |
17//! | [`progress`] | the steps a turn's understanding publishes as it runs |
18//! | [`pipeline`] | the order tasks run in, and the settings |
19
20#![forbid(unsafe_code)]
21#![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used, clippy::panic))]
22
23mod assemble;
24pub mod check;
25pub mod input;
26pub mod pipeline;
27pub mod progress;
28mod render;
29mod schema;
30pub mod tasks;
31pub mod values;
32pub mod words;
33
34pub use check::{ActChecker, NoChecks};
35pub use input::{
36 CardOption, Expectation, OpenCard, PendingAct, PreviousReceipt, RecordBrief, Speaker,
37 TranscriptMessage, UnderstandingInput, WorkflowBrief,
38};
39pub use pipeline::{Settings, TurnUnderstander, Understander, VerifyPolicy};
40pub use progress::{ChannelSteps, NoSteps, RecordedSteps, Step, StepSink};
41pub use words::{Span, Words};