Class: AgUi::Server::SSE::EventEncoder
- Inherits:
-
Object
- Object
- AgUi::Server::SSE::EventEncoder
- 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
- #content_type ⇒ Object
-
#encode(event) ⇒ Object
event: a Hash with camelCase string/symbol keys, e.g.
Instance Method Details
#content_type ⇒ Object
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 |