lib/openagents/voice/provider_event.ex

main at 58e6347eeb72 · 843 B

defmodule OpenAgents.Voice.ProviderEvent do
  @moduledoc "Provider-neutral Realtime event admitted by Sarah's voice adapter."

  @enforce_keys [:kind, :provider_event_id, :payload]
  defstruct @enforce_keys

  @type kind ::
          :session_created
          | :session_ready
          | :sideband_connected
          | :sideband_disconnected
          | :speech_started
          | :speech_stopped
          | :response_started
          | :response_cancelled
          | :user_transcript_delta
          | :user_transcript_final
          | :assistant_transcript_delta
          | :assistant_transcript_final
          | :tool_call_requested
          | :response_completed
          | :provider_error

  @type t :: %__MODULE__{
          kind: kind(),
          provider_event_id: String.t() | nil,
          payload: map()
        }
end