# `AgentSessionManager.Core.Transcript`
[🔗](https://github.com/nshkrdotcom/agent_session_manager/blob/v0.8.0/lib/agent_session_manager/core/transcript.ex#L1)

Provider-agnostic transcript reconstructed from persisted session events.

# `message`

```elixir
@type message() :: %{
  role: role(),
  content: String.t() | nil,
  tool_call_id: String.t() | nil,
  tool_name: String.t() | nil,
  tool_input: map() | nil,
  tool_output: map() | String.t() | nil,
  metadata: map()
}
```

# `role`

```elixir
@type role() :: :system | :user | :assistant | :tool
```

# `t`

```elixir
@type t() :: %AgentSessionManager.Core.Transcript{
  last_sequence: non_neg_integer() | nil,
  last_timestamp: DateTime.t() | nil,
  messages: [message()],
  metadata: map(),
  session_id: String.t()
}
```

# `new`

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

---

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