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