# codex_ex v0.1.0 - Table of Contents

> Elixir client for the Codex app-server JSON-RPC protocol

## Pages

- [codex_ex](readme.md)

## Modules

- [CodexEx.AppServer.Client](CodexEx.AppServer.Client.md): Public entrypoint for the Codex app-server client.
- [CodexEx.AppServer.ClientManager](CodexEx.AppServer.ClientManager.md): Shares long-lived Codex app-server clients across callers with the same launcher config.
- [CodexEx.AppServer.Message](CodexEx.AppServer.Message.md): Helpers for protocol-native app-server notifications and server requests.

- [CodexEx.AppServer.MockTransport](CodexEx.AppServer.MockTransport.md): In-process mock of the Codex app-server protocol for testing.
- [CodexEx.AppServer.Thread](CodexEx.AppServer.Thread.md): Public thread service object for the app-server client.
- [CodexEx.AppServer.ThreadGoal](CodexEx.AppServer.ThreadGoal.md): Stable app-server thread goal value.

- [CodexEx.AppServer.ThreadItem](CodexEx.AppServer.ThreadItem.md): Typed app-level representation of thread items.
- [CodexEx.AppServer.ThreadItem.AgentMessage](CodexEx.AppServer.ThreadItem.AgentMessage.md): The one item type whose text streams in deltas, so the runtime needs it
typed. `attrs` still carries the complete protocol payload — `phase` and
`status` are conveniences read from it, not a replacement for it.

- [CodexEx.AppServer.ThreadSettings](CodexEx.AppServer.ThreadSettings.md): Effective Codex settings observed for a loaded thread.
- [CodexEx.AppServer.ThreadSnapshot](CodexEx.AppServer.ThreadSnapshot.md): Stable typed snapshot of an app-server thread.

- [CodexEx.AppServer.TokenUsage](CodexEx.AppServer.TokenUsage.md): Stable typed token-usage model for turn streams.

- [CodexEx.AppServer.Turn](CodexEx.AppServer.Turn.md): Stable typed snapshot of an app-server turn.

- [CodexEx.AppServer.TurnStream](CodexEx.AppServer.TurnStream.md): Typed collector for a single app-server turn.
- [CodexEx.MapHelpers](CodexEx.MapHelpers.md): Shallow key normalisation for maps entering from external sources.

## Mix Tasks

- [mix codex.app_server.generate_protocol](Mix.Tasks.Codex.AppServer.GenerateProtocol.md): Generates Elixir protocol structs and codecs from the committed Codex app-server
JSON Schema snapshot.
- [mix codex.app_server.snapshot_schema](Mix.Tasks.Codex.AppServer.SnapshotSchema.md): Runs `codex app-server generate-json-schema --experimental` and snapshots the
exported schema bundle into a tracked repo directory.
- [mix codex.app_server.verify_protocol](Mix.Tasks.Codex.AppServer.VerifyProtocol.md): Regenerates the Codex app-server protocol modules into a temporary directory and
fails if the committed generated files have drifted from the current schema snapshot.

