1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//! # holger-ui
//!
//! An operator/admin UI for [holger](https://codeberg.org/nordisk/holger).
//!
//! The UI is built in two layers:
//!
//! * [`data`] — the transport-agnostic **view-model**. It drives the core
//! [`traits::HolgerObject`] API (satisfied by `LocalHolger` for direct,
//! in-process rust calls into holger core, or `RemoteHolger` over gRPC) and
//! turns each response into a plain view struct that exposes `state_json()`.
//! This is the "render-from-data / see-what-the-user-sees as data" law: the UI
//! can be driven and asserted headlessly with no display and no egui. It is
//! the default build and carries the unit tests.
//!
//! * [`app`] (behind the `gui` feature) — the egui presentation, built from
//! [facett](https://codeberg.org/nordisk/facett) components, mirroring the
//! nornir-viz idiom (one blocking core call per UI action on a private
//! current-thread runtime).
//!
//! Both layers are generic over `Arc<dyn HolgerObject>`, so the same UI runs
//! embedded (no network) or against a remote holger server.
/// The **About** identity/branding surface (shared common-framework parity): the
/// holger logo + wordmark + version + the shared components it is built on. The
/// identity oracle is always compiled (headless-assertable); the egui render body is
/// behind `gui`.
/// **Tools · Demo appliance** — a jera-backed demo container spec + dispatch (the
/// shared "Tools menu starts containers THROUGH jera" pattern). Always compiled so the
/// spec + the ledger dispatch are asserted in the lean, display-free default build;
/// the LIVE boot is behind the `containers` feature.
/// 🎬 Demo mode (gui build only) — fills a dev znippy store with real packages
/// (offline-safe fixture fallback) and ROBOT-DRIVES the holger-ui through its
/// views with paced beats so the animations play. See [`demo::DemoWalk`] +
/// [`demo::fill_demo_store`].
/// Re-export of the `modgunn` security crate (gui build only) — the Tools#3
/// warehouse-backed scan reads its `warehouse::Warehouse`, and integration tests
/// seed advisories through it without a separate dev-dependency.
pub use modgunn;