II.
AgentHostTransport JSON
Structured · liveagent-host-transport:ws
WebSocket json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "agent-host-transport:ws",
"_kind": "AgentHostTransport",
"_file": "compute/agent-host-transports/ws.yaml",
"_cluster": "compute",
"attributes": {
"displayName": "WebSocket",
"kind": "ws",
"description": "Bidirectional WebSocket transport between a host and an agent\nprocess. Used when the host and agent need full-duplex streaming\n(interactive UIs, live dashboards, multi-turn dialogues) without\nrepeatedly opening HTTP connections.\n",
"inboundMessageFormat": "JSON messages framed one-per-text-frame. Per-agent envelope; a\ntypical inbound shape is `{type: \"user_message\"|\"tool_result\"|\n\"cancel\", id?, ...}`. Binary frames are not used unless the agent\nexplicitly negotiates a binary sub-protocol.\n",
"outboundMessageFormat": "JSON messages, one per text frame. Typical outbound event types\n`{type: \"assistant_delta\"|\"tool_call\"|\"turn_complete\"|\"error\", ...}`.\nStreaming is native — partial deltas arrive as separate frames.\n",
"signalForwarding": "No OS-signal channel. Cancel is typically expressed as an in-band\nJSON message (e.g. `{type: \"cancel\", id}`) or by sending a WS Close\nframe to terminate the entire session. Reconnection re-establishes\na fresh session; resumption is implementation-defined.\n",
"ptySemantics": "Not applicable — WebSocket carries structured messages, not terminal\nbyte streams.\n"
},
"outgoingEdges": [],
"incomingEdges": [
{
"from": "agent-runtime-impl:claude-code.runtime@1.x",
"to": "agent-host-transport:ws",
"kind": "exposes",
"attributes": {}
}
]
}