# Open-format K1 Chatend 0.7.0
`kcode-k1-chat-chatend` owns append-only ordering and correlated tool lifecycles over canonical values from `kcode-k1-chat-boxes` 0.1.0. It publicly reexports those values, familiar open-string conventions, metadata types, and constructors for source-compatible use.
`Chatend` assigns consecutive one-based `BoxId` values, preserves arbitrary generic boxes, manages provider rounds and a finite active-arrival FIFO, and validates recognized Tool Call, Tool Message, and Tool Result conventions. Unknown conventions remain inert.
A Tool Message must reference an earlier call and its exact Call BoxID, use the next one-based message index, and precede the unique terminal Result. Tool Result v1 and v2 share the same correlation and uniqueness rules. Recognized malformed metadata, duplicate calls or results, wrong origins, message-index gaps, and messages after a Result fail transactionally.
`recover` requires contiguous BoxIDs and revalidates the complete recognized lifecycle in order. It restores an idle Chatend without performing provider work or persistence I/O.
This package does not own KTO durability, context visibility, inference scheduling, WebSearch metadata, providers, or deployment.