Xai.RealtimeBehaviour behaviour (xai v0.1.0)

Copy Markdown View Source

Behaviour for the Realtime WebSocket client.

This allows mocking the WebSocket layer in tests using Mox.

Summary

Types

audio()

@type audio() :: binary()

event()

@type event() :: map()

opts()

@type opts() :: keyword()

t()

@type t() :: pid() | term()

Callbacks

close(t)

@callback close(t()) :: :ok

connect_realtime(opts)

@callback connect_realtime(opts()) :: {:ok, t()} | {:error, term()}

connect_tts(opts)

@callback connect_tts(opts()) :: {:ok, t()} | {:error, term()}

send_event(t, event)

@callback send_event(t(), event()) :: :ok | {:error, term()}

send_text(t, t)

@callback send_text(t(), String.t()) :: :ok | {:error, term()}

send_text_done(t)

@callback send_text_done(t()) :: :ok | {:error, term()}