# car-inference-types
Pure-serde conversation/message wire types for Common Agent Runtime inference —
`Message`, `ToolCall`, `ContentBlock`.
These define the multi-turn conversation wire form car-inference's protocol
handlers and local chat templates consume. They were extracted out of
`car-inference` so a **dependency-light** consumer can build and pattern-match
the real types without pulling the Candle/MLX inference stack:
- `car-inference` re-exports every type here
(`pub use car_inference_types::{Message, ToolCall, ContentBlock}`), so its own
callers are unchanged.
- `car-sync`'s transcript-resume projection (multi-device sync B2) builds
`Vec<Message>` directly from folded conversation ops. Depending on this crate
— instead of a hand-copied mirror — makes any change to `Message`'s shape a
**compile error** at the resume site, not a runtime `from_value::<Message>`
break in the daemon.
The crate is deliberately serde-only (zero Candle/MLX/tokenizer weight). Anything
that needs a model backend belongs in `car-inference`, not here.