Wraps SafeExpressionEvaluator in the engine's evaluator contract.
A thrown error becomes a reported failure rather than an escaped exception. The engine treats
that as ConditionError — the edge is not followed, but the reason survives, which is what lets
a stalled graph explain itself instead of looking like a normal completion.
Wraps
SafeExpressionEvaluatorin the engine's evaluator contract.A thrown error becomes a reported failure rather than an escaped exception. The engine treats that as
ConditionError— the edge is not followed, but the reason survives, which is what lets a stalled graph explain itself instead of looking like a normal completion.