ChatAgentNode bridges Chat into cortavyn-graph. The node creates a run-scoped ChatSession from NodeRuntime, making the graph run ID available when constructing ToolRuntime.
Use GraphToolProgressWriter to emit tool progress as graph custom events. The graph remains independent from Chat: applications choose state channels, checkpoint storage, routing, and their own observability pipeline.
If the model must also manipulate a workspace and wait for approvals, use Deep Agent.