1#![forbid(unsafe_code)]
8#![deny(missing_docs)]
9
10mod base64;
11mod canonical;
12mod expr;
13mod helpers;
14mod ollama;
15mod parts;
16pub mod providers;
17
18#[cfg(test)]
19mod tests;
20
21pub use canonical::{ChatCodec, ChatCodecLib};
22pub use helpers::{
23 is_model_request_expr, model_card_expr, model_error_expr, model_request_messages_expr,
24 model_response_expr, validate_chat_transcript,
25};
26pub use ollama::{
27 OllamaCodec, OllamaCodecLib, OllamaRequestOptions, decode_ollama_response,
28 decode_ollama_stream, encode_ollama_request,
29};
30pub use parts::{number_field, text_part, usage_record};
31pub use providers::anthropic::{
32 AnthropicCodec, AnthropicCodecLib, AnthropicCodecOptions, AnthropicRequestOptions,
33 anthropic_codec_symbol, decode_anthropic_request, decode_anthropic_response,
34 decode_anthropic_stream, decode_anthropic_stream_events, encode_anthropic_request,
35 encode_anthropic_response,
36};
37pub use providers::lemonade::{
38 LemonadeCodec, LemonadeCodecLib, LemonadeCodecOptions, LemonadeRequestOptions,
39 decode_lemonade_request, decode_lemonade_response, decode_lemonade_stream,
40 encode_lemonade_request, encode_lemonade_response, lemonade_codec_symbol,
41};
42pub use providers::lm_studio::{
43 LmStudioCodec, LmStudioCodecLib, LmStudioCodecOptions, LmStudioRequestOptions,
44 decode_lm_studio_request, decode_lm_studio_response, decode_lm_studio_stream,
45 encode_lm_studio_request, encode_lm_studio_response, lm_studio_codec_symbol,
46};
47pub use providers::openai::{
48 OpenAiCodec, OpenAiCodecLib, OpenAiCodecOptions, OpenAiRequestOptions, decode_openai_request,
49 decode_openai_response, decode_openai_stream, encode_openai_request, encode_openai_response,
50 openai_codec_symbol,
51};
52pub use providers::profile::{
53 CodecProfile, RequestWire, StreamWire, anthropic_profile, lemonade_profile, lm_studio_profile,
54 ollama_profile, openai_profile,
55};
56
57pub static RECIPES: sim_cookbook::EmbeddedDir =
59 include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));