Package-level declarations
Types
Loads a v5 or compact v6 analysis.json (see AnalysisResult) into a Vista.
Propagates ASIL through the data-flow edges of a Vista and flags cascading-failure sinks.
Pass identity + reproducibility metadata. Captures every choice that could affect the analyzer's output: solver/alias picks, pinned PhASAR commit, the analyzer binary's source SHA.
Directed edge between ICFG nodes. caseLabel is populated only on kind = SWITCH_CASE edges; null otherwise (omitted in JSON).
One node per LLVM instruction the analyzer visited. Ids are globally unique (instruction-N, with N a monotone counter from PhASAR).
Renders a laid-out Vista to the JSON format cytoscape.js consumes via cy.json({...}) or fetch('graph.cyjson').then(cy.add).
One exact configured-source to reached physical-sink relation.
Endpoint-only projection of analyzer data-flow evidence.
Deterministic producer counters; wall-clock timings remain log telemetry.
Segment ids are globally unique across all sinks (one counter on the analyzer side). instructionIds references ControlFlowGraph.nodes.id — segments are normalized over the ICFG, not denormalized with full instruction data.
Exact labelled component topology. Flat override pairs are [segmentPosition0, payloadIndex0, ...]; omitted positions use the shape's base payload. Positions remain distinct even when their labels and adjacency are equal.
Layers extra information on top of a freshly loaded Vista — demangled display names, per-function metrics from clang-tidy, doxygen-style descriptions, and node-kind icons.
One positive (solver execution, physical sink) evidence cell.
One PhASAR IFDS dataflow fact reaching this sink. label is PhASAR's DToString(fact) — the human-readable description of which value is tainted (variable name, SSA reg, struct chain).
Z3's verdict for one (sink, fact) pair. Emitted only when the pass was run with pathFeasibility != NO_CHECK. paths[] is the concrete enumerated feasible paths — non-empty iff feasibility = YES, but the analyzer may truncate enumeration.
One concrete feasible path through this sink's DAG. segmentIds[] is ordered source-end first → sink-end last, and references Sink.dataFlowDAG.segments[].id.
Exact (stable instruction, canonical fact) state stored once per run.
Ordered state sequence shared by exact segment occurrences.
Exact ordered outgoing adjacency shared without merging its owning positions.
Issue 29 — hierarchical boxing. Synthesises compound (box) layers above the Activity → Class → Function → Instruction chain that issue 24 #12 already wires in Enrichment.applyClassNesting / Enrichment.applyElementNesting.
One declared source repo. The analyzer was launched with --repo <name>=<path> for each entry; any LLVM source path that doesn't fall under at least one of these failed analysis. path is relative to the analysis JSON file's directory (NOT relative to the CWD at analysis time) so the JSON is portable across machines.
Renders a laid-out Vista to the flat JSON shape consumed by sigma-viewer.html:
One entry per declared sink the analyzer evaluated. For a reached configured sink, the id field is the same as the matching ICFG node's id. For an unreached configured sink with no analyzer call-site node, the entry is a negative verdict and may not have a corresponding ICFG node. calleeSymbol and calleeDemangled are duplicated here for callers that want sink metadata without joining back to the ICFG.
Per-physical-sink data-flow evidence. V5 stores a flattened segment DAG. V6 interns exact (instruction, fact) states and ordered payloads while retaining one isolated EvidenceComponent per positive solver/sink cell. Reconstruction walks backward from the sink; serialized edges point in the forward propagation direction (from upstream of to).
Reads source text for instruction-level CodeConstructViews and stores it as tooltip metadata at the instruction's file:line location. The IR node label stays IR-specific (instruction-N: opcode) so multiple IR operations mapped to the same source line remain distinguishable.
Two-state source-to-sink verdict. Z3 feasibility, when present, is optional path metadata and does not participate in the report verdict.
Generates the compact SVG sprite shipped with STIG reports from the pinned Iconify JSON packages installed under js-vendor/node_modules and canonical STIG vector resources.
Canonical vector artwork shared by Dokka sprites and MkDocs presentation-group masks.
Generates a standalone comparison sheet for choosing Highway metamodel icons.
Presentation-only semantic families for Highway metamodel icons and model-tree nodes.
The set of stig-icons-* sprite IDs the diagram pipeline references.
Renders a laid-out Vista as an SVG string. Pure function — no I/O, no JVM-wide state — so callers (markdown task, file writer, in-process unit tests) drive the bytes however they like.
Two-axis "swimlane" placement for the flow views (data / control / ICFG), shared by Cytoscape and Sigma — both consume view.position, so a single computed layout positions both. Cytoscape additionally draws the function / namespace / element constructs as foldable compound boxes (data.parent); Sigma shows the same leaf coordinates flat, without boxes.
View-specific reductions on a Vista — the layout-free stage between Enrichment and the exporters.
Functions
Reads only the source/sink boundary facts needed by aggregate diagrams and endpoint postconditions. Schema-v7 evidence is traversed in its compact representation; no SinkDataFlowDAG, DataFlowSegment, or segment edge is constructed.
Decompresses exactly one physical sink's schema-v7 component references. V5/v6 values are already sink-local and are returned unchanged. The generated segment/edge IDs identify (component, topology position) and do not collapse equal payloads at different graph positions.
Derives one logical-sink view from an aggregate analyzer result.