#![allow(clippy::result_large_err)]
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 shared_state;
pub mod tool;
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, CallbackContext, IncludeContents, InvocationContext, MAX_STATE_KEY_LEN, Memory,
MemoryEntry, ReadonlyContext, ReadonlyState, RunConfig, SecretService, Session, State,
StreamingMode, ToolCallbackContext, ToolConfirmationDecision, ToolConfirmationPolicy,
ToolConfirmationRequest, ToolOutcome, 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,
};
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 shared_state::{SharedState, SharedStateError};
pub use tool::{
RetryBudget, Tool, ToolContext, ToolExecutionStrategy, ToolPredicate, ToolRegistry, Toolset,
ValidationMode,
};
pub use types::{
Content, FileDataPart, FunctionResponseData, InlineDataPart, MAX_INLINE_DATA_SIZE, Part,
};
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();
});
}
}