# `MingaAgent.EventLog.EventRecord`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga_agent/event_log/event_record.ex#L1)

A durable, replay-safe agent session event.

# `event_type`

```elixir
@type event_type() ::
  :session_started
  | :session_stopped
  | :user_disconnected
  | :user_message
  | :assistant_delta
  | :thinking_delta
  | :tool_call_started
  | :tool_call_updated
  | :tool_call_finished
  | :tool_call_interrupted
  | :file_edit_proposed
  | :approval_requested
  | :approval_resolved
  | :approval_interrupted
  | :system_message
  | :status_changed
  | :waiting_for_input
  | :prompt_queued
  | :message_changed
  | :error
  | :context_usage
  | :turn_limit_reached
  | :driver_changed
```

# `t`

```elixir
@type t() :: %MingaAgent.EventLog.EventRecord{
  event_type: event_type(),
  id: non_neg_integer() | nil,
  monotonic_ts: integer(),
  payload: map(),
  session_id: String.t(),
  wall_clock: DateTime.t()
}
```

# `new`

```elixir
@spec new(String.t(), event_type(), map(), keyword()) :: t()
```

Creates a new event record.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
