facet-wrapped/src/chrome.rs
//! **Chrome + operational views** — the components that are still fixture-only.
//!
//! These are registered so a host can *reach* them, but they carry no data seam yet:
//! their models are richer than a JSON row list (a plan DAG's cost heat, a security
//! report's EPSS/KEV rollup, a log's level filter), and inventing a contract before a
//! real caller needs one would be guesswork.
//!
//! They are on the frozen roster in
//! [`the_fixture_only_set_only_shrinks`](crate::registry) precisely so this stays
//! honest: the list may only get shorter. Asking any of them for live data returns
//! [`EmbedError::NotDataDriven`](crate::registry::EmbedError::NotDataDriven) — never a
//! fixture dressed up as the caller's data.
use crate::registry::{Entry, OPS, Registry, UI};
/// Register the fixture-only chrome/ops views.
pub(crate) fn register(r: &mut Registry) {
r.register(
Entry::new("console", "A structured log / console view.", || {
Box::new(facett_console::Console::new("console"))
})
.in_group(UI),
);
r.register(
Entry::new("log", "A level-filtered log stream view.", || {
Box::new(facett_log::LogView::local())
})
.in_group(UI),
);
r.register(
Entry::new("tabbar", "A tab-bar / segmented navigation view.", || {
Box::new(facett_tabbar::TabBarView::local())
})
.in_group(UI),
);
r.register(
Entry::new("helix-tube", "A 3D data tube — data on the cylinder walls.", || {
Box::new(facett_helix::TubeView::demo())
})
.in_group(UI),
);
r.register(
Entry::new("plandag", "A metric-bearing operator/plan DAG (cost-heat, stages).", || {
Box::new(facett_plandag::PlanDagView::local())
})
.in_group(OPS),
);
r.register(
Entry::new("security", "A supply-chain security report (verdict + EPSS/KEV).", || {
Box::new(facett_security::SecurityView::local())
})
.in_group(OPS),
);
}