# `Raxol.AgentClientProtocol.Schema.LifecycleExtras.SessionNotification`
[🔗](https://github.com/DROOdotFOO/raxol-agent/blob/raxol_agent_client_protocol-v0.1.0/packages/raxol_agent_client_protocol/lib/raxol/agent_client_protocol/schema/lifecycle_extras.ex#L240)

The `session/update` notification envelope: `{sessionId, update, _meta}`,
where `update` is the `Raxol.AgentClientProtocol.Schema.SessionUpdate`
discriminated union (ported separately, `session_update.ex`).
Oracle-derived (schema.json `SessionNotification`); not a port of any
upstream f1729 module — upstream's `ACP.SessionNotification` envelope was
explicitly left unported by `agent_types.ex`'s and `session_update.ex`'s
own moduledocs pending whoever wired the routing union it belongs to.

# `t`

```elixir
@type t() :: %Raxol.AgentClientProtocol.Schema.LifecycleExtras.SessionNotification{
  _meta: map(),
  session_id: String.t(),
  update: Raxol.AgentClientProtocol.Schema.SessionUpdate.t()
}
```

# `from_json`

```elixir
@spec from_json(term()) :: {:ok, t()} | {:error, term()}
```

# `new`

```elixir
@spec new(String.t(), Raxol.AgentClientProtocol.Schema.SessionUpdate.t()) :: t()
```

# `to_json`

```elixir
@spec to_json(t()) :: map()
```

---

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