NeoGraph 0.16.0
A C++20 Graph Agent Engine Library — LangGraph for C++
Loading...
Searching...
No Matches
validator.h File Reference

Static semantic analysis over declarative or compiled topology. More...

#include <neograph/api.h>
#include <neograph/graph/compiler.h>
#include <cstddef>
#include <map>
#include <set>
#include <string>
#include <utility>
#include <vector>
Include dependency graph for validator.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  neograph::graph::Diagnostic
 One static-analysis finding, with a machine-readable witness (counterexample) for tooling to highlight. More...
 
class  neograph::graph::ValidatedTopology
 Topology proven free of static semantic errors. More...
 
struct  neograph::graph::ValidationOptions
 Rule selection for GraphValidator. More...
 

Detailed Description

Static semantic analysis over declarative or compiled topology.

GraphValidator is the pass layer between parsing (GraphCompiler, M1: every key consumed) and execution (GraphEngine): it checks what the graph means, not what the JSON says — dangling references, unreachable nodes, barriers that can never fire, incomplete conditional routes, and channel effect violations.

Severity philosophy (checker soundness over coverage): a diagnostic is an ERROR only when the construct can never be right under the engine's semantics (dangling name, barrier waiting on a node that has no path to signal it, empty route map = UB at dispatch, write to an undeclared channel = guaranteed runtime throw). Anything a dynamic mechanism could legitimize — Command.goto / Send can reach statically-unreachable nodes — is a WARNING, so a correct graph is never rejected (no false errors), while editors and other tooling can still render every warning as lint.

Definition in file validator.h.