1pub mod baml_parser;
21pub mod codegen;
22pub mod coerce;
23pub mod flexible_parser;
24pub mod model_info;
25pub mod schema;
26pub mod tool;
27pub mod types;
28
29#[cfg(feature = "gemini")]
30pub mod gemini;
31
32#[cfg(feature = "openai")]
33pub mod openai;
34
35#[cfg(feature = "genai")]
36pub(crate) mod genai_client;
37#[cfg(feature = "genai")]
38pub mod llm;
39#[cfg(feature = "genai")]
40pub use llm::Llm;
41
42#[cfg(feature = "agent")]
44pub mod agent;
45#[cfg(feature = "agent")]
46pub mod agent_loop;
47#[cfg(feature = "agent")]
48pub mod agent_tool;
49#[cfg(feature = "agent")]
50pub mod agents;
51#[cfg(feature = "agent")]
52pub mod client;
53#[cfg(feature = "agent")]
54pub mod compaction;
55#[cfg(feature = "agent")]
56pub mod context;
57#[cfg(feature = "agent")]
58pub mod discovery;
59#[cfg(feature = "agent")]
60pub mod factory;
61#[cfg(feature = "agent")]
62pub mod prompt_loader;
63#[cfg(feature = "agent")]
64pub mod registry;
65#[cfg(feature = "agent")]
66pub mod retry;
67#[cfg(feature = "agent")]
68pub mod router;
69#[cfg(feature = "agent")]
70pub mod schema_simplifier;
71#[cfg(feature = "agent")]
72pub mod streaming;
73#[cfg(feature = "agent")]
74pub mod swarm;
75#[cfg(feature = "agent")]
76pub mod swarm_tools;
77#[cfg(feature = "agent")]
78pub mod union_schema;
79
80#[cfg(feature = "session")]
82pub mod app_config;
83#[cfg(feature = "session")]
84pub mod app_loop;
85#[cfg(feature = "session")]
86pub mod doctor;
87#[cfg(feature = "session")]
88pub mod hints;
89#[cfg(feature = "session")]
90pub mod intent_guard;
91#[cfg(feature = "session")]
92pub mod loop_detect;
93#[cfg(feature = "session")]
94pub mod memory;
95#[cfg(feature = "session")]
96pub mod prompt_template;
97#[cfg(feature = "session")]
98pub mod session;
99#[cfg(feature = "session")]
100pub mod tasks;
101
102#[cfg(feature = "app-tools")]
103pub mod app_tools;
104
105pub mod benchmark;
106pub mod evolution;
107pub mod openapi;
108
109#[cfg(feature = "providers")]
110pub mod providers;
111
112#[cfg(feature = "telemetry")]
113pub mod telemetry;
114
115#[cfg(feature = "logging")]
116pub mod logging;
117
118#[cfg(feature = "session")]
120pub use app_config::{AgentConfig, AgentConfigError};
121#[cfg(feature = "session")]
122pub use app_loop::{
123 ActionResult, LoopConfig, LoopEvent, SgrAgent, SgrAgentStream, StepDecision, process_step,
124 run_loop, run_loop_stream,
125};
126#[cfg(feature = "session")]
127pub use doctor::{
128 CheckResult, CheckStatus, DoctorCheck, check_gcloud_adc, check_provider_auth,
129 default_tool_checks, fix_missing, format_check, optional_tool_checks, print_doctor_report,
130 run_doctor, run_tool_check,
131};
132#[cfg(feature = "session")]
133pub use hints::{
134 HintContext, HintSource, PatternHints, TaskHints, ToolHints, WorkflowHints, collect_hints,
135 default_sources, default_sources_with_tasks,
136};
137#[cfg(feature = "session")]
138pub use intent_guard::{ActionKind, Intent, IntentCheck, guard_step, intent_allows};
139#[cfg(feature = "logging")]
140pub use logging::init_logging;
141#[cfg(feature = "session")]
142pub use loop_detect::{LoopDetector, LoopStatus, normalize_signature};
143#[cfg(feature = "session")]
144pub use memory::{
145 MemoryContext, action_result_done, action_result_from, action_result_json, load_context_dir,
146 load_manifesto, load_manifesto_from, norm, norm_owned, truncate_json_array,
147};
148#[cfg(feature = "session")]
149pub use prompt_template::{BASE_SYSTEM_PROMPT, build_system_prompt};
150#[cfg(all(feature = "search", feature = "session"))]
151pub use session::search_sessions;
152#[cfg(feature = "session")]
153pub use session::{
154 AgentMessage, EntryType, MessageRole, Session, SessionHeader, SessionMeta, SimpleMsg,
155 SimpleRole, StatefulDelta, StatefulSession, import_claude_session, list_sessions,
156};
157#[cfg(feature = "session")]
158pub use tasks::{
159 Priority, Task, TaskStatus, append_notes, create_task, load_tasks, save_task, tasks_context,
160 tasks_dir, tasks_summary, update_status,
161};
162#[cfg(feature = "telemetry")]
163pub use telemetry::{TelemetryGuard, init_telemetry};
164
165pub use coerce::coerce_value;
166pub use flexible_parser::{parse_flexible, parse_flexible_coerced};
167pub use schema::{json_schema_for, response_schema_for};
168pub use tool::{ToolDef, tool};
169pub use types::*;