1pub mod agent {
80 pub use ai_agents_runtime::{
81 Agent, AgentBuilder, AgentInfo, AgentResponse, AwaitBeforeNextTurn,
82 BackgroundOverflowPolicy, MainResponseDraft, MaintenanceMode, MaintenanceTaskPolicy,
83 ParallelToolsConfig, PostTurnOptimizationConfig, RuntimeAgent, RuntimeBranch,
84 RuntimeBranchOutcome, RuntimeBranchResult, RuntimeBranchStatus, RuntimeCommitBehavior,
85 RuntimeConfig, RuntimeControlHandle, RuntimeOptimizationConfig, RuntimeOptimizationKind,
86 RuntimeTaskPriority, RuntimeTaskPurpose, ScheduledBranchSet, SkillCandidate,
87 StreamBranchBuffer, StreamChunk, StreamingConfig, StreamingDraftResult,
88 StreamingOptimizationPolicy, ToolCall, TurnActorContext, TurnBranchScheduler,
89 TurnOptimizationContext,
90 };
91}
92
93pub mod context {
94 pub use ai_agents_context::{
95 BuiltinSource, ContextManager, ContextProvider, ContextSource, RefreshPolicy,
96 TemplateRenderer,
97 };
98}
99
100pub mod error {
101 pub use ai_agents_core::{AgentError, Result};
102}
103
104pub mod dot_path {
105 pub use ai_agents_core::{get_dot_path, get_dot_path_from_map, set_dot_path};
106}
107
108pub mod hitl {
109 pub use ai_agents_hitl::{
110 ApprovalCondition, ApprovalHandler, ApprovalMessage, ApprovalRequest, ApprovalResult,
111 ApprovalTrigger, AutoApproveHandler, CallbackHandler, HITLCheckResult, HITLConfig,
112 HITLEngine, LlmGenerateConfig, LocalizedHandler, MessageLanguageConfig,
113 MessageLanguageStrategy, MessageResolver, RejectAllHandler, StateApprovalConfig,
114 StateApprovalTrigger, TimeoutAction, ToolApprovalConfig, create_handler,
115 create_localized_handler, resolve_best_language, resolve_tool_message,
116 };
117}
118
119pub mod hooks {
120 pub use ai_agents_hooks::{AgentHooks, CompositeHooks, HookTimer, LoggingHooks, NoopHooks};
121}
122
123pub mod llm {
124 pub use ai_agents_core::{
125 ChatMessage, FinishReason, LLMCapability, LLMChunk, LLMConfig, LLMError, LLMFeature,
126 LLMProvider, LLMResponse, Role, TaskContext, TokenUsage, ToolSelection,
127 };
128 pub use ai_agents_llm::LLMRegistry;
129 pub use ai_agents_llm::multi::MultiLLMRouter;
130
131 pub mod providers {
132 pub use ai_agents_llm::providers::{ProviderBuilder, ProviderType, UnifiedLLMProvider};
133 }
134}
135
136pub mod memory {
137 use std::sync::Arc;
138
139 use ai_agents_core::LLMProvider;
140
141 pub use ai_agents_core::MemorySnapshot;
142 pub use ai_agents_memory::{
143 CompactingMemory, CompactingMemoryConfig, CompressResult, CompressionEvent,
144 ConversationContext, EvictionReason, FactExtractedEvent, InMemoryStore, LLMSummarizer,
145 Memory, MemoryBudgetEvent, MemoryBudgetState, MemoryCompressEvent, MemoryEvictEvent,
146 MemoryTokenBudget, NoopSummarizer, OverflowStrategy, Summarizer, TokenAllocation,
147 estimate_message_tokens, estimate_tokens,
148 };
149 pub use ai_agents_runtime::spec::MemoryConfig;
150
151 pub fn create_memory(memory_type: &str, max_messages: usize) -> Arc<dyn Memory> {
152 match memory_type {
153 "in-memory" => Arc::new(InMemoryStore::new(max_messages)),
154 "compacting" => {
155 let summarizer: Arc<dyn Summarizer> = Arc::new(NoopSummarizer);
156 Arc::new(CompactingMemory::with_default_config(summarizer))
157 }
158 _ => Arc::new(InMemoryStore::new(max_messages)),
159 }
160 }
161
162 pub fn create_memory_from_config(config: &MemoryConfig) -> Arc<dyn Memory> {
163 if config.is_compacting() {
164 let summarizer: Arc<dyn Summarizer> = Arc::new(NoopSummarizer);
165 let compacting_config = config.to_compacting_config();
166 Arc::new(CompactingMemory::new(summarizer, compacting_config))
167 } else {
168 Arc::new(InMemoryStore::new(config.max_messages))
169 }
170 }
171
172 pub fn create_memory_from_config_with_llm(
173 config: &MemoryConfig,
174 llm: Option<Arc<dyn LLMProvider>>,
175 ) -> Arc<dyn Memory> {
176 if config.is_compacting() {
177 let summarizer: Arc<dyn Summarizer> = match llm {
178 Some(provider) => Arc::new(LLMSummarizer::new(provider)),
179 None => Arc::new(NoopSummarizer),
180 };
181 let compacting_config = config.to_compacting_config();
182 Arc::new(CompactingMemory::new(summarizer, compacting_config))
183 } else {
184 Arc::new(InMemoryStore::new(config.max_messages))
185 }
186 }
187
188 pub fn create_compacting_memory(
189 summarizer: Arc<dyn Summarizer>,
190 config: CompactingMemoryConfig,
191 ) -> Arc<dyn Memory> {
192 Arc::new(CompactingMemory::new(summarizer, config))
193 }
194
195 pub fn create_compacting_memory_from_config(
196 summarizer: Arc<dyn Summarizer>,
197 config: &MemoryConfig,
198 ) -> Arc<dyn Memory> {
199 let compacting_config = config.to_compacting_config();
200 Arc::new(CompactingMemory::new(summarizer, compacting_config))
201 }
202}
203
204pub mod persistence {
205 use std::sync::Arc;
206
207 pub use ai_agents_core::{
208 AgentSnapshot, AgentStorage, MemorySnapshot, Result, SpawnedAgentEntry,
209 };
210 #[cfg(feature = "sqlite")]
211 pub use ai_agents_storage::SqliteStorage;
212 pub use ai_agents_storage::{
213 FileStorage, SessionInfo, SessionMetadata, SessionOrderBy, SessionQuery,
214 };
215 #[cfg(feature = "redis-storage")]
216 pub use ai_agents_storage::{RedisSessionMeta, RedisStorage};
217
218 pub async fn create_storage(
219 config: &crate::spec::StorageConfig,
220 ) -> Result<Option<Arc<dyn AgentStorage>>> {
221 let storage_config = match config {
222 crate::spec::StorageConfig::None => ai_agents_storage::StorageConfig::None,
223 crate::spec::StorageConfig::File(fc) => ai_agents_storage::StorageConfig::File {
224 path: fc.path.clone(),
225 },
226 crate::spec::StorageConfig::Sqlite(sc) => ai_agents_storage::StorageConfig::Sqlite {
227 path: sc.path.clone(),
228 },
229 crate::spec::StorageConfig::Redis(rc) => ai_agents_storage::StorageConfig::Redis {
230 url: rc.url.clone(),
231 prefix: rc.prefix.clone(),
232 ttl_seconds: rc.ttl_seconds,
233 },
234 };
235
236 ai_agents_storage::create_storage(&storage_config).await
237 }
238}
239
240pub mod process {
241 pub use ai_agents_process::{ProcessConfig, ProcessData, ProcessProcessor};
242}
243
244pub mod recovery {
245 pub use ai_agents_recovery::{
246 ByRoleFilter, ErrorRecoveryConfig, FilterConfig, KeepRecentFilter, MessageFilter,
247 RecoveryManager, SkipPatternFilter,
248 };
249}
250
251pub mod skill {
252 pub use ai_agents_skills::{
253 SkillContext, SkillDefinition, SkillExecutor, SkillLoader, SkillRef, SkillRouter,
254 SkillStep, StepResult,
255 };
256}
257
258pub mod spec {
259 pub use ai_agents_observability::ObservabilityConfig;
260 pub use ai_agents_runtime::spec::{
261 AgentSpec, BuiltinProviderConfig, CliHitlMetadata, CliHitlStyle, CliMetadata,
262 CliPromptStyle, FileStorageConfig, LLMConfig, LLMSelector, MemoryConfig,
263 ProviderPolicyConfig, ProviderSecurityConfig, ProvidersConfig, RedisStorageConfig,
264 RuntimeConfig, SpawnerConfig, SqliteStorageConfig, StorageConfig, StructuredToolEntry,
265 ToolAliasesConfig, ToolConfig, ToolEntry, ToolPolicyConfig, YamlProviderConfig,
266 YamlToolConfig,
267 };
268}
269
270pub mod state {
271 pub use ai_agents_state::{
272 CompareOp, ContextExtractor, ContextMatcher, DelegateContextMode, GuardConditions,
273 GuardOnlyEvaluator, HandoffStateConfig, LLMTransitionEvaluator, PipelineStageEntry,
274 PipelineStateConfig, PromptMode, StateAction, StateConfig, StateDefinition, StateMachine,
275 StateMachineSnapshot, StateMatcher, StateTransitionEvent, TimeMatcher, ToolCondition,
276 ToolRef, Transition, TransitionContext, TransitionEvaluator, TransitionGuard,
277 TransitionTiming,
278 };
279}
280
281pub mod template {
282 use std::collections::HashMap;
283 use std::path::PathBuf;
284
285 use ai_agents_template::TemplateLoader as InnerTemplateLoader;
286 pub use ai_agents_template::{TemplateInheritance, TemplateRenderer};
287
288 use crate::error::Result;
289 use crate::spec::AgentSpec;
290
291 pub struct TemplateLoader {
292 inner: InnerTemplateLoader,
293 }
294
295 impl TemplateLoader {
296 pub fn new() -> Self {
297 Self {
298 inner: InnerTemplateLoader::new(),
299 }
300 }
301
302 pub fn add_search_path(&mut self, path: impl Into<PathBuf>) -> &mut Self {
303 self.inner.add_search_path(path);
304 self
305 }
306
307 pub fn set_variable(
308 &mut self,
309 key: impl Into<String>,
310 value: impl Into<String>,
311 ) -> &mut Self {
312 self.inner.set_variable(key, value);
313 self
314 }
315
316 pub fn set_variables(&mut self, vars: HashMap<String, String>) -> &mut Self {
317 self.inner.set_variables(vars);
318 self
319 }
320
321 pub fn get_variable(&self, key: &str) -> Option<&str> {
322 self.inner.get_variable(key)
323 }
324
325 pub fn load_template(&self, name: &str) -> Result<String> {
326 self.inner.load_template(name)
327 }
328
329 pub fn template_exists(&self, name: &str) -> bool {
330 self.inner.template_exists(name)
331 }
332
333 pub fn search_paths(&self) -> &[PathBuf] {
334 self.inner.search_paths()
335 }
336
337 pub fn variables(&self) -> &HashMap<String, String> {
338 self.inner.variables()
339 }
340
341 pub fn load_and_parse(&self, template_name: &str) -> Result<AgentSpec> {
342 let renderer = TemplateRenderer::new();
343 let variables = self.variables();
344
345 let load_and_render = |name: &str| -> Result<String> {
346 let content = self.load_template(name)?;
347 renderer.render(&content, variables)
348 };
349
350 let rendered_root = load_and_render(template_name)?;
351 let processed = TemplateInheritance::process(&rendered_root, load_and_render)?;
352 let spec: AgentSpec = serde_yaml::from_str(&processed)?;
353 spec.validate()?;
354
355 Ok(spec)
356 }
357 }
358
359 impl Default for TemplateLoader {
360 fn default() -> Self {
361 Self::new()
362 }
363 }
364
365 impl AsRef<InnerTemplateLoader> for TemplateLoader {
366 fn as_ref(&self) -> &InnerTemplateLoader {
367 &self.inner
368 }
369 }
370
371 impl From<InnerTemplateLoader> for TemplateLoader {
372 fn from(inner: InnerTemplateLoader) -> Self {
373 Self { inner }
374 }
375 }
376}
377
378pub mod persona {
379 pub use ai_agents_persona::{
380 EvolutionConfig, PERSONA_CHANGE_METADATA_KEY, PersonaChange, PersonaConfig,
381 PersonaEvolveTool, PersonaGoals, PersonaIdentity, PersonaManager, PersonaRenderResult,
382 PersonaSecret, PersonaSnapshot, PersonaTemplateRef, PersonaTemplateRegistry, PersonaTraits,
383 SecretRevealCondition, VALID_EVOLVE_PATHS,
384 };
385}
386
387pub mod relationships {
388 pub use ai_agents_relationships::{
389 AutoUpdateConfig, DimensionChange, EventEvictionStrategy, InjectionConfig, InjectionFormat,
390 NotableEventsConfig, PersistenceConfig, ProposedDimensionChange, ProposedRelationshipEvent,
391 Relationship, RelationshipConfig, RelationshipDimensionDefinition,
392 RelationshipDimensionsConfig, RelationshipEvaluation, RelationshipEvaluator,
393 RelationshipEvaluatorTrait, RelationshipEvent, RelationshipManager, RelationshipModel,
394 RelationshipPerspective, RelationshipSnapshot, RelationshipUpdate, format_relationship,
395 relationship_from_value, relationship_to_context_value, relationship_to_value,
396 };
397}
398
399pub mod observability {
400 pub use ai_agents_observability::{
401 AggregatedMetrics, AggregationConfig, AggregationDimension, BufferConfig, CostBreakdown,
402 CostConfig, CostEstimate, CostEstimator, CostSource, CostStats, EventStatus, EventType,
403 ExportConfig, ExportFormat, ExportResult, LanguageConfig, LatencyConfig, LatencyStats,
404 ModelPricing, ObservabilityConfig, ObservabilityHooks, ObservabilityManager,
405 ObservabilityReport, ObservationError, ObservationEvent, ObservationPurpose,
406 ObservationTokenUsage, ObservedLLMProvider, ObservedTool, PrivacyConfig, RawEventsFormat,
407 Redactor, ReportSummary, SpanContext, SpanGuard, TokenBreakdown, TokenConfig, TokenStats,
408 TokenUsageSource, UnknownPricePolicy, current_observation_context,
409 resolve_language_from_context, stable_hash, truncate_chars, with_observation_context,
410 with_observation_purpose, with_updated_observation_context,
411 };
412}
413
414pub mod reasoning {
415 pub use ai_agents_reasoning::{
416 CriterionResult, EvaluationResult, Plan, PlanAction, PlanAvailableActions,
417 PlanReflectionConfig, PlanStatus, PlanStep, PlanningConfig, ReasoningConfig,
418 ReasoningMetadata, ReasoningMode, ReasoningOutput, ReflectionAttempt, ReflectionConfig,
419 ReflectionMetadata, ReflectionMode, StepFailureAction, StepStatus, StringOrList,
420 };
421}
422
423pub mod disambiguation {
424 pub use ai_agents_disambiguation::{
425 AmbiguityAspect, AmbiguityDetectionResult, AmbiguityDetector, AmbiguityType, CacheConfig,
426 ClarificationConfig, ClarificationGenerator, ClarificationOption, ClarificationParseResult,
427 ClarificationQuestion, ClarificationStyle, ContextConfig, DetectionConfig,
428 DisambiguationConfig, DisambiguationContext, DisambiguationManager, DisambiguationResult,
429 MaxAttemptsAction, SkillDisambiguationOverride, SkipCondition, StateDisambiguationOverride,
430 };
431}
432
433pub mod tool_security {
434 pub use ai_agents_tools::{
435 CommandPolicyConfig, CommandRuleConfig, CommandTemplateConfig, DomainPolicyConfig,
436 NoWritePolicyBehavior, OperationPolicyConfig, PathPolicyConfig, SecurityCheckResult,
437 ToolPolicyConfig, ToolSecurityConfig, ToolSecurityEngine,
438 };
439}
440
441pub mod tools {
442 pub use ai_agents_core::{
443 CommandBindingKind, CommandPolicyBinding, DomainPolicyBinding, PathAccessMode,
444 PathBindingKind, PathPolicyBinding, PermissionOutcome, ResultLimitBinding, ResultLimitKind,
445 Tool, ToolActorContext, ToolApprovalRecord, ToolApprovalStatus, ToolCallClassification,
446 ToolCallSource, ToolCancellationToken, ToolExecutionContext, ToolExecutionLimits,
447 ToolExecutionRecord, ToolExecutionRequest, ToolInfo, ToolInvoker, ToolOperationKind,
448 ToolPolicyBindings, ToolPolicyDecisionRecord, ToolResult, ToolSafetyMetadata,
449 ToolSideEffectLevel,
450 };
451 pub use ai_agents_tools::{
452 AskUserTool, CalculatorTool, CommandRequest, CommandResponse, CommandRunner,
453 CommandRunnerSlot, CommandTool, ConditionEvaluator, DateTimeTool, DiagnosticItem,
454 DiagnosticSeverity, DiagnosticsProvider, DiagnosticsProviderSlot, DiagnosticsRequest,
455 DiagnosticsResponse, DiagnosticsTool, EchoTool, EvaluationContext, FileEditTool,
456 FileInfoTool, FileListTool, FileReadTool, FileTool, FileVersionEvidence, FileVersionStore,
457 FileWriteTool, GitDiffTool, GitStatusTool, GlobTool, GrepTool, JsonTool, LLMGetter,
458 MathTool, PatchTool, ProcessCommandRunner, ProviderHealth, QuestionHandler,
459 QuestionHandlerSlot, QuestionRequest, QuestionResponse, RandomTool, ResolvedTool,
460 SimpleLLMGetter, SleepTool, StaticCommandRunner, StaticDiagnosticsProvider, TemplateTool,
461 TextTool, TodoItem, TodoStatus, TodoStore, TodoTool, ToolAliases, ToolCallRecord,
462 ToolContext, ToolDescriptor, ToolIdentity, ToolMetadata, ToolProvider, ToolProviderError,
463 ToolProviderType, ToolRegistry, TrustLevel, UnavailableCommandRunner,
464 UnavailableDiagnosticsProvider, WebFetchTool, create_builtin_registry,
465 file_version_evidence,
466 };
467 pub use ai_agents_tools::{HttpTool, generate_schema};
468}
469
470pub mod mcp {
472 pub use ai_agents_tools::mcp::{
473 MCPViewConfig, MCPViewTool, MCPWrapperConfig, MCPWrapperSecurity, MCPWrapperTool,
474 MCPWrapperTransport,
475 };
476}
477
478pub mod spawner {
480 pub use ai_agents_runtime::spawner::{
481 AgentRegistry, AgentSpawner, GenerateAgentTool, ListAgentsTool, NamespacedStorage,
482 RegistryHooks, RemoveAgentTool, ResolvedTemplate, SendMessageTool, SpawnedAgent,
483 SpawnedAgentInfo, auto_configure_spawner, configure_spawner_tools, resolve_templates,
484 spawner_from_config,
485 };
486}
487
488pub mod facts {
491 pub use ai_agents_core::{SessionFilter, SessionMetadata, SessionSummary};
492 pub use ai_agents_facts::deduplicate_exact;
493 pub use ai_agents_facts::{
494 ActorMemoryConfig, CategoryDefinition, DedupConfig, DedupMethod, FactExtractor, FactStore,
495 FactsConfig, IdentificationConfig, IdentificationMethod, InjectionConfig, InjectionMode,
496 LLMFactExtractor, PrivacyConfig, SessionConfig,
497 };
498 pub use ai_agents_facts::{FactCategory, FactFilter, KeyFact};
499}
500
501pub mod eval {
502 pub use ai_agents_eval::*;
503}
504
505pub mod orchestration {
506 pub use ai_agents_runtime::orchestration::context::prepare_delegate_input;
507 pub use ai_agents_runtime::orchestration::tools::{
508 ConcurrentAskTool, GroupDiscussionTool, HandoffConversationTool, PipelineProcessTool,
509 RouteToAgentTool, configure_orchestration_tools,
510 };
511 pub use ai_agents_runtime::orchestration::types::{
512 AgentResult, ChatTurn, ConcurrentResult, GroupChatResult, HandoffEvent, HandoffResult,
513 PipelineResult, PipelineStage, RouteResult, RoutingMethod, StageOutput,
514 };
515 pub use ai_agents_runtime::orchestration::{concurrent, group_chat, handoff, pipeline, route};
516}
517
518pub use agent::{
520 Agent, AgentBuilder, AgentInfo, AgentResponse, AwaitBeforeNextTurn, BackgroundOverflowPolicy,
521 MainResponseDraft, MaintenanceMode, MaintenanceTaskPolicy, ParallelToolsConfig,
522 PostTurnOptimizationConfig, RuntimeAgent, RuntimeBranch, RuntimeBranchOutcome,
523 RuntimeBranchResult, RuntimeBranchStatus, RuntimeCommitBehavior, RuntimeConfig,
524 RuntimeOptimizationConfig, RuntimeOptimizationKind, RuntimeTaskPriority, RuntimeTaskPurpose,
525 ScheduledBranchSet, SkillCandidate, StreamBranchBuffer, StreamChunk, StreamingConfig,
526 StreamingDraftResult, StreamingOptimizationPolicy, TurnActorContext, TurnBranchScheduler,
527 TurnOptimizationContext,
528};
529pub use error::{AgentError, Result};
530pub use memory::{
531 CompactingMemory, CompactingMemoryConfig, CompressResult, CompressionEvent,
532 ConversationContext, EvictionReason, FactExtractedEvent, InMemoryStore, LLMSummarizer, Memory,
533 MemoryBudgetEvent, MemoryBudgetState, MemoryCompressEvent, MemoryEvictEvent, MemoryTokenBudget,
534 NoopSummarizer, OverflowStrategy, Summarizer, TokenAllocation, create_memory,
535 create_memory_from_config, create_memory_from_config_with_llm, estimate_message_tokens,
536 estimate_tokens,
537};
538pub use skill::{SkillDefinition, SkillExecutor, SkillLoader, SkillRef, SkillRouter, SkillStep};
539pub use spec::{
540 AgentSpec, BuiltinProviderConfig, FileStorageConfig, LLMConfig, LLMSelector, MemoryConfig,
541 ProviderPolicyConfig, ProviderSecurityConfig, ProvidersConfig, RedisStorageConfig,
542 RuntimeConfig as SpecRuntimeConfig, SqliteStorageConfig, StorageConfig, ToolAliasesConfig,
543 ToolConfig, ToolPolicyConfig as SpecToolPolicyConfig, YamlProviderConfig, YamlToolConfig,
544};
545pub use template::TemplateLoader;
546pub use tools::HttpTool;
547pub use tools::{
548 CalculatorTool, DateTimeTool, EchoTool, FileTool, JsonTool, MathTool, RandomTool, TemplateTool,
549 TextTool, Tool, ToolRegistry, ToolResult, create_builtin_registry,
550};
551
552pub use llm::providers::{ProviderType, ProviderType as LLMProviderType, UnifiedLLMProvider};
553pub use llm::{ChatMessage, LLMProvider, LLMRegistry, LLMResponse, MultiLLMRouter, Role};
554
555pub use process::{ProcessConfig, ProcessData, ProcessProcessor};
556pub use recovery::{
557 ByRoleFilter, ErrorRecoveryConfig, FilterConfig, KeepRecentFilter, MessageFilter,
558 RecoveryManager, SkipPatternFilter,
559};
560pub use tool_security::{
561 SecurityCheckResult, ToolPolicyConfig, ToolSecurityConfig, ToolSecurityEngine,
562};
563
564pub use eval::{EvalResult, EvalRunner, EvalRunnerOptions, EvalSettings, EvalSuite};
565pub use observability::{ObservabilityConfig, ObservabilityManager, ObservabilityReport};
566
567pub use context::{
568 BuiltinSource, ContextManager, ContextProvider, ContextSource, RefreshPolicy, TemplateRenderer,
569};
570#[cfg(feature = "sqlite")]
571pub use persistence::SqliteStorage;
572pub use persistence::{
573 AgentSnapshot, AgentStorage, FileStorage, MemorySnapshot, SessionInfo, SessionMetadata,
574 SessionOrderBy, SessionQuery, SpawnedAgentEntry, create_storage,
575};
576#[cfg(feature = "redis-storage")]
577pub use persistence::{RedisSessionMeta, RedisStorage};
578
579pub use state::{
580 CompareOp, ContextExtractor, ContextMatcher, GuardConditions, GuardOnlyEvaluator,
581 LLMTransitionEvaluator, PromptMode, StateAction, StateConfig, StateDefinition, StateMachine,
582 StateMachineSnapshot, StateMatcher, StateTransitionEvent, TimeMatcher, ToolCondition, ToolRef,
583 Transition, TransitionContext, TransitionEvaluator, TransitionGuard, TransitionTiming,
584};
585pub use tools::{
586 ConditionEvaluator, EvaluationContext, LLMGetter, SimpleLLMGetter, ToolCallRecord,
587};
588
589pub use hooks::{AgentHooks, CompositeHooks, HookTimer, LoggingHooks, NoopHooks};
590
591pub use hitl::{
592 ApprovalCondition, ApprovalHandler, ApprovalMessage, ApprovalRequest, ApprovalResult,
593 ApprovalTrigger, AutoApproveHandler, HITLCheckResult, HITLConfig, HITLEngine,
594 LlmGenerateConfig, LocalizedHandler, MessageLanguageConfig, MessageLanguageStrategy,
595 MessageResolver, RejectAllHandler, StateApprovalConfig, StateApprovalTrigger, TimeoutAction,
596 ToolApprovalConfig, create_handler, create_localized_handler, resolve_best_language,
597 resolve_tool_message,
598};
599
600#[cfg(test)]
601mod tests {
602 #[test]
603 fn test_facade_reexports_multi_llm_router() {
604 fn assert_type<T>() {}
605 assert_type::<crate::llm::MultiLLMRouter>();
606 assert_type::<crate::MultiLLMRouter>();
607 }
608}
609
610pub use tools::{
612 ProviderHealth, ToolAliases, ToolContext, ToolDescriptor, ToolMetadata, ToolProvider,
613 ToolProviderError, ToolProviderType, TrustLevel,
614};
615
616pub use reasoning::{
618 CriterionResult, EvaluationResult, Plan, PlanAction, PlanAvailableActions,
619 PlanReflectionConfig, PlanStatus, PlanStep, PlanningConfig, ReasoningConfig, ReasoningMetadata,
620 ReasoningMode, ReasoningOutput, ReflectionAttempt, ReflectionConfig, ReflectionMetadata,
621 ReflectionMode, StepFailureAction, StepStatus, StringOrList,
622};
623
624pub use disambiguation::{
626 AmbiguityAspect, AmbiguityDetectionResult, AmbiguityDetector, AmbiguityType, CacheConfig,
627 ClarificationConfig, ClarificationGenerator, ClarificationOption, ClarificationParseResult,
628 ClarificationQuestion, ClarificationStyle, ContextConfig, DetectionConfig,
629 DisambiguationConfig, DisambiguationContext, DisambiguationManager, DisambiguationResult,
630 MaxAttemptsAction, SkillDisambiguationOverride, SkipCondition, StateDisambiguationOverride,
631};