Current section

Files

Jump to
pi_bridge lib pi session event.ex
Raw

lib/pi/session/event.ex

defmodule Pi.Session.Event do
@moduledoc "Structured event emitted by a server-owned Pi session process."
@enforce_keys [:type, :at]
defstruct [:type, :at, :data]
@type type :: :started | :llm | :message | :done | :failed | :cancelled
@type t :: %__MODULE__{type: type(), at: DateTime.t(), data: term()}
def new(type, data \\ nil) when is_atom(type) do
%__MODULE__{type: type, at: DateTime.utc_now(), data: data}
end
end