Skip to content

Latest commit

 

History

History
76 lines (47 loc) · 1.94 KB

File metadata and controls

76 lines (47 loc) · 1.94 KB
title Overview
description Documentation for encoding Agent User Interaction Protocol events (Ruby SDK)

Event Encoder

The Agent User Interaction Protocol uses a streaming approach to send events from agents to clients. The EventEncoder class provides the functionality to encode events into a format that can be sent over HTTP.

EventEncoder

AgUiProtocol::Encoder::EventEncoder

The EventEncoder class is responsible for encoding BaseEvent objects into string representations that can be transmitted to clients.

require "ag_ui_protocol"

encoder = AgUiProtocol::EventEncoder.new

event = AgUiProtocol::Core::Events::TextMessageContentEvent.new(
    message_id: "msg_123",
    delta: "Hello, world!"

)

encoded = encoder.encode(event)

Usage

The EventEncoder is typically used in HTTP handlers to convert event objects into a stream of data. The current implementation encodes events as Server-Sent Events (SSE), which can be consumed by clients using the EventSource API.

Implementation Details

Internally, the encoder converts events to JSON and formats them as Server-Sent Events with the following structure:

data: {json-serialized event}n\n

This format allows clients to receive a continuous stream of events and process them as they arrive.

Methods

content_type

Returns the content type of the encoder.

Returns: String: The content type of the encoder

encode(event)

Encodes an event into a string representation.

Parameter Type Description
event Object The event to encode

Returns: String: A string representation of the event in SSE format.

initialize(accept)

Creates a new encoder instance.

Parameter Type Description
accept String (optional) Media type of the request