Skip to main content

baml_agent/
lib.rs

1pub mod agent_loop;
2pub mod config;
3pub mod engine;
4pub mod helpers;
5#[cfg(feature = "logging")]
6pub mod logging;
7pub mod loop_detect;
8pub mod prompt;
9pub mod session;
10
11pub use agent_loop::{
12    process_step, run_loop, run_loop_stream, ActionResult, LoopConfig, LoopEvent, SgrAgent,
13    SgrAgentStream, StepDecision,
14};
15pub use config::{AgentConfig, AgentConfigError, ProviderConfig};
16pub use engine::{AgentEngine, BamlRegistry};
17pub use helpers::{
18    action_result_done, action_result_from, action_result_json, load_context_dir, load_manifesto,
19    load_manifesto_from, norm, norm_owned, truncate_json_array, AgentContext,
20};
21#[cfg(feature = "logging")]
22pub use logging::init_logging;
23pub use loop_detect::{normalize_signature, LoopDetector, LoopStatus};
24pub use prompt::{build_system_prompt, BASE_SYSTEM_PROMPT};
25#[cfg(feature = "search")]
26pub use session::search_sessions;
27pub use session::{
28    import_claude_session, list_sessions, AgentMessage, EntryType, MessageRole, Session,
29    SessionMeta,
30};
31
32/// Suppress BAML's default stdout logging (prompts, responses, timing).
33/// Call once at startup before any BAML calls.
34pub fn suppress_baml_log() {
35    // SAFETY: single-threaded init, before any BAML calls
36    unsafe {
37        std::env::set_var("BAML_LOG", "off");
38    }
39}