# `ClaudeWrapper.Jobs.Event`
[🔗](https://github.com/genagent/claude_wrapper_ex/blob/main/lib/claude_wrapper/jobs.ex#L50)

One timeline event from a job's `timeline.jsonl`.

All typed fields are optional because the daemon may emit partial
events (e.g. without `text`); `extra` carries the verbatim decoded
line so future daemon fields survive without a wrapper update. See
`ClaudeWrapper.Jobs`.

# `t`

```elixir
@type t() :: %ClaudeWrapper.Jobs.Event{
  at: String.t() | nil,
  detail: String.t() | nil,
  extra: map(),
  state: String.t() | nil,
  text: String.t() | nil
}
```

---

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