Agent state extensions for server-owned hook middleware.
Both fields are per-turn bookkeeping owned by ServerHooksMiddleware and
marked PrivateStateAttr: they are omitted from the public graph I/O schema,
and SubAgentMiddleware strips them from subagent result merges so parallel
task calls cannot produce two concurrent writes to these LastValue
channels.
PrivateStateAttr only omits the fields from the input and output schemas;
the channels stay ordinary checkpointed LastValue channels visible to every
node, so values still flow from after_model to wrap_tool_call and survive
interrupt/resume.
Note:
If either field ever needs a reducer, the reducer must be placed after
PrivateStateAttr in the Annotated metadata. LangGraph only inspects
the last metadata entry when detecting reducers, so a reducer added
before the marker is silently ignored.