Synaptic.Voice.Realtime.Session (synaptic v0.3.0-alpha.8)

View Source

GenServer that orchestrates realtime voice sessions with workflow-per-turn execution.

Summary

Types

state()

@type state() :: %{
  session_id: String.t(),
  run_id: String.t(),
  status: atom(),
  seq: non_neg_integer(),
  keep_alive: boolean(),
  realtime: map(),
  model: String.t(),
  voice: String.t(),
  preferred_language: String.t(),
  sideband_adapter: module(),
  sideband_pid: pid(),
  cancel_on_interrupt: boolean(),
  workflow_timeout_ms: pos_integer(),
  backchannel_phrases: [String.t()],
  backchannel_enabled: boolean(),
  suppress_provider_responses_during_workflow: boolean(),
  current_task: %{task: Task.t(), input: String.t()} | nil,
  response_active: boolean(),
  last_final_input:
    %{item_id: String.t() | nil, text: String.t(), at_ms: integer()} | nil,
  telemetry_marks: map()
}

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

client_connected(session_id, meta \\ %{})

client_disconnected(session_id, meta \\ %{})

ingest_provider_event(session_id, payload)

inspect_session(session_id)

start_link(opts)

stop_session(session_id, reason \\ :normal)