#![allow(clippy::result_large_err)]
#![deny(missing_docs)]
pub mod agent;
pub mod agent_loader;
pub mod callbacks;
pub mod context;
pub mod error;
pub mod event;
pub mod identity;
pub mod instruction_template;
pub mod intra_compaction;
pub mod model;
pub mod request_context;
pub mod schema_adapter;
pub mod schema_cache;
pub mod schema_utils;
pub mod shared_state;
pub mod tool;
pub mod tool_concurrency;
pub mod types;
pub use agent::{Agent, EventStream, ResolvedContext};
pub use agent_loader::{AgentLoader, MultiAgentLoader, SingleAgentLoader};
pub use callbacks::{
AfterAgentCallback, AfterModelCallback, AfterToolCallback, AfterToolCallbackFull,
BaseEventsSummarizer, BeforeAgentCallback, BeforeModelCallback, BeforeModelResult,
BeforeToolCallback, EventsCompactionConfig, GlobalInstructionProvider, InstructionProvider,
OnToolErrorCallback,
};
pub use context::{
Artifacts, BackpressurePolicy, CallbackContext, IncludeContents, InvocationContext,
MAX_STATE_KEY_LEN, Memory, MemoryEntry, ReadonlyContext, ReadonlyState, RunConfig,
RunConfigBuilder, RuntimeToolset, SecretRequest, SecretService, Session, State, StreamingMode,
ToolCallbackContext, ToolConcurrencyConfig, ToolConfirmationDecision, ToolConfirmationHandler,
ToolConfirmationPolicy, ToolConfirmationRequest, ToolOutcome, tool_call_fingerprint,
validate_state_key,
};
pub use error::{AdkError, ErrorCategory, ErrorComponent, ErrorDetails, Result, RetryHint};
pub use event::{
Event, EventActions, EventCompaction, KEY_PREFIX_APP, KEY_PREFIX_TEMP, KEY_PREFIX_USER,
TOOL_PROGRESS_CALL_ID_KEY, TOOL_PROGRESS_STREAM_KEY, ToolCallView, ToolResultView,
event_belongs_to_branch,
};
pub use identity::{
AdkIdentity, AppName, ExecutionIdentity, IdentityError, InvocationId, SessionId, UserId,
};
pub use instruction_template::inject_session_state;
pub use intra_compaction::IntraCompactionConfig;
pub use model::{
CacheCapable, CitationMetadata, CitationSource, ContextCacheConfig, FinishReason,
GenerateContentConfig, Llm, LlmRequest, LlmResponse, LlmResponseStream, UsageMetadata,
};
pub use request_context::RequestContext;
pub use schema_adapter::{GenericSchemaAdapter, SchemaAdapter};
pub use schema_cache::SchemaCache;
pub use shared_state::{SharedState, SharedStateError};
pub use tool::{
RetryBudget, Tool, ToolContext, ToolExecutionStrategy, ToolPredicate, ToolRegistry, Toolset,
ValidationMode,
};
pub use tool_concurrency::{ConcurrencyPermit, ToolConcurrencyManager};
pub use types::{
BlobResourceContents, Content, EmbeddedResource, FileDataPart, FunctionResponseData,
InlineDataPart, MAX_INLINE_DATA_SIZE, Part, TextResourceContents,
};
pub use async_trait::async_trait;
pub fn ensure_crypto_provider() {
#[cfg(feature = "rustls")]
{
static CRYPTO_INIT: std::sync::Once = std::sync::Once::new();
CRYPTO_INIT.call_once(|| {
let _ = rustls::crypto::aws_lc_rs::default_provider().install_default();
});
}
}