> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ag-ui.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> 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.

```ruby theme={null}

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 |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.