facett-brokkr — crate card
Reverse-engineered (from source)
- One-line pitch: Author a Brokkr build pipeline as TOML, structural rows or an interactive dependency graph.
- Does:
PipelineBuilderimplementsElmandFacet. Text and Build modes preserve the existing constructors, edit methods, validation and emittedbrokkr.toml. Graph mode usesfacett_core::layeredand a retainedfacett_flow::FlowScenefor boxes, curves, arrows and validation status. Names and stage/backend subtitles remain local overlays. - Editor: Output/input ports support pointer dragging and accessible activation. Connections update the consumer's
needs; unknown endpoints, duplicate names, self-loops and cycles are refused withlast_refusal. Node dragging paints a ghost and commits placement only on release. Select an edge and press Delete to disconnect it. Undo/Redo use the shared keymap and retain at most 200 forward/inverse edit-command entries: field/list changes, UTF-8 text splices and placement edits. Only raw TOML edits replace the document, preserving invalid in-progress text and exact formatting. - State: The serializable model holds document fields, camera, fitted state, selection, drag state, layout overrides and history. Placement and camera are session state, excluded from
brokkr.toml. Existingstate_jsonkeys remain; navigation, selection, refusals and history counts are additive. Pan, zoom and drag previews do not rebuild the cached scene. - Robot seam: Existing mode and structural JSON messages remain. Added
{"connect":["source","consumer"]},{"disconnect":["source","consumer"]},{"move":["step",40,80]},"undo","redo"and"fit". - Key deps:
facett-core,facett-flowwith host/labels/boxes/arrows/status/hit-test,egui,serde,serde_json,toml. Optionalwgpudelegates to flow; the host installs its GPU renderer. No build execution, network or nornir dependency in the library. - Verification: All 31 actual-workspace tests pass with
wgpu: unit/render/model tests, matrix replay, real pointer connection and node movement, edge deletion with keyboard Undo/Redo, 1,000 seeded edit sequences restoring exact TOML and invalid in-progress stage names. The watch example compiles against actual nornir-robotui 0.3.4 withwgpu,nornir-robotui/watch; its connection/movement/history replay has not been watched live.
Ownership and integration
Brokkr owns document edits and editor gestures. Falsett supplies rendering, curves, node rectangles and hit testing. Hosts read pipeline_toml() and perform any validation or execution outside the component. No release or publishing is performed by the editor.