# kcode-k1-chat-codex-codec
Concrete K1/Codex codec consumed by `kcode-k1-chat-thread-main-actor`.
## Public contract
`Codec` implements `kcode_k1_codex_adapter::BoxCodec` with `BoxValue` history or validated `call_ktool` calls. `project` converts one `kcode_k1_chat_chatend::ChatBox` into canonical one-object JSON history.
The wrapper accepts exactly `{"name": <string>, "arguments": <JSON>}` and rejects every other shape without panicking. Inner arguments retain deterministic JSON serialization. Projected tool calls and returns use `tool_call_id`; Kennedy output is `{"box_id":...,"kind":"kennedy","text":...}` with no `complete` field.