# `ACP.SessionUpdate`
[🔗](https://github.com/f1729/agent-client-protocol-elixir/blob/main/lib/acp/client_types.ex#L35)

Tagged union representing different session update types.

# `t`
[🔗](https://github.com/f1729/agent-client-protocol-elixir/blob/main/lib/acp/client_types.ex#L38)

```elixir
@type t() ::
  {:user_message_chunk, ACP.ContentChunk.t()}
  | {:agent_message_chunk, ACP.ContentChunk.t()}
  | {:agent_thought_chunk, ACP.ContentChunk.t()}
  | {:tool_call, ACP.ToolCall.t()}
  | {:tool_call_update, ACP.ToolCallUpdate.t()}
  | {:plan, ACP.Plan.t()}
  | {:available_commands_update, ACP.AvailableCommandsUpdate.t()}
  | {:current_mode_update, ACP.CurrentModeUpdate.t()}
  | {:config_option_update, ACP.ConfigOptionUpdate.t()}
  | {:session_info_update, ACP.SessionInfoUpdate.t()}
```

# `from_json`
[🔗](https://github.com/f1729/agent-client-protocol-elixir/blob/main/lib/acp/client_types.ex#L91)

# `to_json`
[🔗](https://github.com/f1729/agent-client-protocol-elixir/blob/main/lib/acp/client_types.ex#L50)

---

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