Skip to main content

Crate zero_operator_state

Crate zero_operator_state 

Source
Expand description

Operator-state honesty.

This crate answers one question, in one pure data structure, with no I/O:

“Given the operator’s event history up to now, what behavioral state are they in and what friction level is appropriate?”

The crate does not talk to the engine. It does not read the filesystem. It does not render anything. It takes events in, it produces a snapshot out. Persistence lives in zero-session. Rendering lives in zero-tui. Friction enforcement lives in zero-commands. The separation is deliberate — this crate is the only place where behavioral classification lives, and it must be testable in isolation with nothing but Vec<Event> and DateTime<Utc>.

See ZERO_OS_CLI_SPEC_ADDENDUM_A.md §§ 1-3, 10. ADR-013 locks this crate’s position in the system; ADR-014 locks the RiskDirection invariant this crate exports.

Re-exports§

pub use classifier::Classifier;
pub use events::Event;
pub use events::EventKind;
pub use events::Outcome;
pub use events::Source;
pub use friction::FrictionGate;
pub use friction::FrictionLevel;
pub use friction::RiskContext;
pub use friction::RiskDirection;
pub use label::Label;
pub use snapshot::Snapshot;
pub use vector::StateVector;

Modules§

classifier
Pure event → state classifier.
events
The event stream fed into the classifier.
friction
Friction ladder — Addendum A §3 and §6.3.
label
State labels, straight from Addendum A §2.3.
snapshot
A renderer-friendly snapshot of operator state.
vector
The numeric state vector. Fed by Classifier, read by widgets (zero-tui) and the friction path (zero-commands).