Skip to main content

sim_lib_cookbook/
lib.rs

1//! Runtime `cookbook:` operations for SIM.
2//!
3//! This lib exposes the [`sim_cookbook`] engine as registered runtime
4//! operations over a shared recipe store: `cookbook:books|chapters|list|show|
5//! setup|search|next|reload` (ungated) and `cookbook:run` (read-eval gated,
6//! decodes a recipe's setup through its codec, evaluates it, and checks
7//! declared expectations).
8//!
9//! The engine stays in `sim-cookbook` (kernel-free); this crate holds the
10//! kernel integration so the boundary stays clean. CLI, WebUI, browse/help,
11//! and agent cookbook surfaces should call these operations or the same seeded
12//! store helpers instead of creating a second projection path.
13
14#![forbid(unsafe_code)]
15#![deny(missing_docs)]
16
17mod build;
18mod catalog;
19mod cli;
20mod ops;
21mod run;
22mod runtime;
23#[cfg(feature = "seed-recipes")]
24mod seed_catalog;
25#[cfg(feature = "seed-recipes")]
26mod seeds;
27
28pub use catalog::{CookbookCapabilityProfile, EmptyCatalog, LibCatalog, load_requires};
29pub use ops::{CookbookOp, OpKind};
30pub use run::{
31    decode_setup, missing_requires, require_eval_capability, run_recipe, run_recipe_twice,
32    run_recipe_with_catalog,
33};
34pub use runtime::{
35    CookbookLib, CookbookStoreHandle, install_cookbook_lib, manifest_name, op_exports, store_symbol,
36};
37#[cfg(feature = "seed-recipes")]
38pub use seed_catalog::SeededLibCatalog;
39#[cfg(feature = "seed-recipes")]
40pub use seeds::{SEEDED_RECIPE_BOOKS, install_seeded_cookbook_lib, seeded_recipe_store};
41
42#[cfg(test)]
43mod tests;