Current section
Files
Jump to
Current section
Files
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