Inherits std::runtime_error.
Exception thrown from inside a node to trigger a dynamic breakpoint.
When a node throws NodeInterrupt, the graph engine saves a checkpoint and pauses execution, allowing Human-in-the-Loop (HITL) intervention. Execution continues with GraphEngine::resume(), whose resume_value comes back to the node as RunContext::resume_value. Only the invocation that paused receives it; a node of a later step of the resumed run sees none (#393).
Unlike interrupt_before / interrupt_after in the graph definition, which pause at a node chosen when the graph was written, this pauses on a decision the node makes about what it is holding — which is what an approval prompt actually needs:
json{{"tool", "shell"}, {"cmd", "rm -rf build/"}});
if (in.ctx.resume_value->value("approved", false)) { ... }
Exception thrown from inside a node to trigger a dynamic breakpoint.
The caller sees the reason at RunResult::interrupt_value["reason"], the payload at ["value"], and the node that paused at RunResult::interrupt_node.
Definition at line 200 of file types.h.