Class: AgUi::Server::SSE::EventEncoder

Inherits:
Object
  • Object
show all
Defined in:
lib/ag_ui/server/sse/event_encoder.rb

Overview

AG-UI SSE framing, ported from the reference encoder (ag-ui sdks/python/ag_ui/encoder/encoder.py, cross-checked against @ag-ui/encoder dist): one event per frame, data: <json>\n\n, no event:/id: lines, no heartbeats. Keys are camelCase and nil fields are omitted at every depth (pydantic exclude_none).

Constant Summary collapse

CONTENT_TYPE =
"text/event-stream"

Instance Method Summary collapse

Instance Method Details

#content_typeObject



16
# File 'lib/ag_ui/server/sse/event_encoder.rb', line 16

def content_type = CONTENT_TYPE

#encode(event) ⇒ Object

event: a Hash with camelCase string/symbol keys, e.g. { type: "TEXT_MESSAGE_CONTENT", messageId: "m1", delta: "Hi" }



20
21
22
# File 'lib/ag_ui/server/sse/event_encoder.rb', line 20

def encode(event)
  "data: #{JSON.generate(strip_nils(event))}\n\n"
end