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