The result of running a node: the fields a caller (and the engine's
completion handling) reads off a finished run — its output, emitted
route, the branch it ran on, and any raised interrupt ids.
A node that actually executes returns its full NodeContext (which
satisfies this shape). A node that is fast-forwarded on resume (its output
was cached in a prior turn, so its body is not re-run) returns a bare
NodeResult with no live context behaviour — so callers of ctx.runNode()
should treat the result as a NodeResult and read only these fields.
The result of running a node: the fields a caller (and the engine's completion handling) reads off a finished run — its
output, emittedroute, thebranchit ran on, and any raised interrupt ids.A node that actually executes returns its full NodeContext (which satisfies this shape). A node that is fast-forwarded on resume (its output was cached in a prior turn, so its body is not re-run) returns a bare
NodeResultwith no live context behaviour — so callers ofctx.runNode()should treat the result as aNodeResultand read only these fields.