Core traits, types, and errors shared by every llmkit crate.
This crate has no I/O and no async runtime dependency. Provider adapters
(llmkit-openai, llmkit-anthropic, llmkit-ollama) implement
[LlmProvider] against these types; middleware and the facade crate build on
top of them.