1pub mod capability_types;
36pub mod tool_fingerprint;
37pub mod tool_types;
38
39pub mod hook_adapter;
41pub mod hook_dispatch;
42pub mod hook_executor;
43pub mod lifecycle_hooks;
44pub mod user_hook_types;
45
46pub mod deployment;
48pub mod egress;
49pub mod email;
50pub mod exec_tool_result;
51pub mod utility_llm;
52
53pub mod feature_flags;
55pub mod localization;
56
57pub mod telemetry;
59pub mod tool_narration;
60
61pub mod event_listeners;
63
64pub mod error_reporter;
66
67pub mod observation;
69
70pub mod typed_id;
73
74pub mod audit;
76
77pub mod background;
79pub mod budget;
80
81pub mod agent;
84pub mod agent_identity;
85pub mod app;
86pub mod capability_dto;
87pub mod connection_provider;
88pub mod eval;
89pub mod events;
90pub mod harness;
91pub mod leased_resource;
92pub mod llm_model_profiles;
93pub mod llm_models;
94pub mod mcp_proxy;
95pub mod mcp_server;
96pub mod memory_store;
97pub mod model_router;
98pub mod network_access;
99pub mod organization;
100pub mod payment;
101pub mod principal;
102pub mod reporting;
103pub mod session;
104pub mod session_file;
105pub mod session_resource;
106pub mod session_sandbox;
107pub mod session_schedule;
108pub mod session_sqldb;
109pub mod skill;
110pub mod system_allowlist;
111pub mod volume;
112
113pub mod channel;
115
116pub mod permissions;
118pub mod progress_reporting;
119pub mod resource_names;
120
121pub mod url_validation;
123
124pub mod atoms;
125pub mod capabilities;
126pub mod command;
127pub mod config_layer;
128pub mod context_report;
129pub mod dependency_blocker;
130pub mod error;
131pub mod llm_driver_helpers;
132pub mod llm_driver_registry;
133pub mod llm_retry;
134pub mod message;
135pub mod message_filter;
136pub mod message_retriever;
137pub mod openai_protocol;
138pub mod openresponses_protocol;
139pub mod openresponses_types;
140pub mod outline;
141pub mod output_guardrail;
142pub mod platform_definition;
143pub mod platform_store;
144pub mod resource_ownership;
145pub mod runtime_agent;
146pub mod runtime_context;
147pub mod tool_output_sanitizer;
148pub mod tools;
149pub mod traits;
150pub mod truncation_info;
151pub mod user_facing_error;
152
153pub mod memory;
155
156pub mod llmsim_driver;
158
159pub mod in_memory_loop;
161
162pub mod turn;
164
165pub use config_layer::{
171 AgentConfigOverlay, merge_capabilities, merge_initial_files, normalize_initial_file_path,
172};
173pub use error::{AgentLoopError, Result, StoreResultExt, from_json, json_val};
174pub use message::{
175 ContentPart, ContentType, Controls, ExternalActor, ImageContentPart, ImageFileContentPart,
176 InputContentPart, Message, MessageRole, ReasoningConfig, TextContentPart, ToolCallContentPart,
177 ToolResultContentPart,
178};
179pub use message_filter::{
180 ExcludedNoticeTransform, FilterContext, InjectedMessage, InjectionPosition, MessageFilter,
181 MessageFilterProvider, MessageQuery, PrependTransform,
182};
183pub use message_retriever::{InputMessage, MessageRetriever};
184pub use runtime_agent::{RuntimeAgent, RuntimeAgentBuilder};
185pub use runtime_context::{
186 AssembledTurnContext, ResolvedRuntimeCapabilities, assemble_turn_context, inspect_turn_context,
187 resolve_runtime_capabilities,
188};
189pub use traits::{
190 DisabledSessionFileSystemFactory, DurableToolResultStore, EventEmitter, HarnessStore,
191 ImageResolver, KeyInfo, LeasedResourceStore, LlmProviderStore, ModelWithProvider,
192 NoopDurableToolResultStore, NoopEventEmitter, NoopStreamHeartbeater, OutboundToolRateLimiter,
193 ResolvedImage, SecretInfo, SessionFileStore, SessionFileSystem, SessionFileSystemFactory,
194 SessionFileSystemFactoryContext, SessionMutator, SessionResourceRegistry, SessionSqlDbStoreRef,
195 SessionStorageStore, SessionStore, StreamHeartbeater, StreamProgress, ToolCallClaimResult,
196 ToolContext, ToolExecutor, UserConnectionResolver,
197};
198pub use user_facing_error::{
199 UserFacingError, UserFacingErrorContext, UserFacingErrorFields, classify_runtime_error_message,
200 codes as user_facing_error_codes, trim_error_chain_prefixes,
201};
202
203pub use memory_store::{
205 Memory, MemoryContentPart, MemoryImagePart, MemoryKind, MemoryLimits, MemoryQuery,
206 MemoryStoreBackend, MemoryStoreEntity, MemoryTextPart,
207};
208
209pub use channel::{
211 ChannelDeliveryAdapter, ChannelReplyMode, DeliveryContext as ChannelDeliveryContext,
212 DeliveryResult as ChannelDeliveryResult, InboundAttachment, InboundChannelEvent,
213 OutboundChannelMessage, Participant, SessionRoutingStrategy, ThreadContext,
214};
215
216pub use platform_store::{PlatformMessage, PlatformStore};
218pub use resource_ownership::{
219 LEASED_RESOURCE_EXTERNAL_ID_KEY, LEASED_RESOURCE_ID_KEY, LEASED_RESOURCE_PROVIDER_KEY,
220 LEASED_RESOURCE_TYPE_KEY, list_owned_external_resource_ids,
221 ownership_tracking_unavailable_error, require_owned_external_resource,
222 resource_not_owned_error, verify_owned_external_resource_if_available,
223};
224
225pub use background::{
227 BackgroundEventSink, BackgroundExecutableTool, BackgroundOutcome, BackgroundProgress,
228};
229pub use event_listeners::{CompositeEventListener, EventListener, NoopEventListener};
230
231pub use error_reporter::{
233 ErrorReport, ErrorReporter, ErrorScope, ErrorSeverity, NoopErrorReporter, SharedErrorReporter,
234};
235
236pub use egress::{
238 DirectEgressService, DisabledEgressService, EgressByteStream, EgressError, EgressRequest,
239 EgressRequestKind, EgressResponse, EgressResult, EgressService, EgressSigning,
240 EgressStreamResponse,
241};
242pub use system_allowlist::{AllowGroup, SYSTEM_ALLOWLIST_ENABLED_ENV, SystemAllowlist};
243
244pub use email::{
246 DisabledEmailSender, EmailAddress, EmailError, EmailMessage, EmailResult, EmailSender,
247 EmailTag, EmailTemplate, GenericEmailTemplate, NoopEmailSender, RenderedEmail,
248 ResendEmailConfig, ResendEmailSender, SYSTEM_EMAIL_FROM, SentEmail, SystemEmailConfig,
249 system_email_from,
250};
251pub use utility_llm::{
252 DisabledUtilityLlmService, OpenAiUtilityLlmService, SystemUtilityLlmConfig, UTILITY_LLM_MODEL,
253 UTILITY_OPENAI_API_KEY_ENV, UtilityLlmReasoningEffort, UtilityLlmRequest, UtilityLlmService,
254};
255
256pub use llm_driver_registry::{
258 BoxedLlmDriver, DiscoveredModel, DriverFactory, DriverRegistry, LlmCallConfig,
259 LlmCallConfigBuilder, LlmCompletionMetadata, LlmContentPart, LlmDriver, LlmMessage,
260 LlmMessageContent, LlmMessageRole, LlmResponse, LlmResponseStream, LlmStreamEvent,
261 ProviderConfig, ProviderType,
262};
263
264pub use llm_retry::{LlmRetryConfig, RateLimitInfo, RateLimitType, RetryMetadata};
266
267pub use openai_protocol::OpenAIProtocolLlmDriver;
269
270pub use openresponses_protocol::{
273 CompactContent, CompactContentPart, CompactInputItem, CompactOutputItem, CompactRequest,
274 CompactResponse, CompactUsage, OpenResponsesProtocolLlmDriver, compact_output_to_messages,
275 messages_to_compact_input,
276};
277
278pub use tools::{
280 EchoTool, FailingTool, SpawnBackgroundTool, Tool, ToolExecutionResult, ToolInternalError,
281 ToolRegistry, ToolRegistryBuilder, ToolResultImage,
282};
283
284pub use connection_provider::{
287 ConnectionFormSchema, ConnectionProvider, ConnectionProviderPlugin, ConnectionProviderRegistry,
288 ConnectionProviderRegistryBuilder, ConnectionType, ConnectionValidation, FieldType, FormField,
289};
290pub use platform_definition::{
291 BuiltInCapabilityDefinition, BuiltInHarnessDefinition, BuiltInHarnessRole, PlatformDefinition,
292 PlatformDefinitionBuilder,
293};
294pub use session_sandbox::{
295 DEFAULT_SESSION_SANDBOX_IDLE_TIMEOUT_SECS, SESSION_SANDBOX_CAPABILITY_ID,
296 SESSION_SANDBOX_SECRET_NAME, SessionSandboxConfig, SessionSandboxExecRequest,
297 SessionSandboxExecResponse, SessionSandboxInitConfig, SessionSandboxInstance,
298 SessionSandboxProvider, SessionSandboxProviderPlugin, SessionSandboxReadFileResponse,
299 SessionSandboxState, SessionSandboxStatus, SessionSandboxStatusResponse,
300 SessionSandboxWriteFileResponse, create_session_sandbox_provider, delete_session_sandbox,
301 delete_session_sandbox_state, ensure_session_sandbox_running, load_session_sandbox_state,
302 pause_session_sandbox, run_session_sandbox_init_if_needed, save_session_sandbox_state,
303 session_sandbox_config_from_capabilities, session_sandbox_tool_hints,
304};
305
306pub use capabilities::SystemPromptContext;
307pub use capabilities::{
308 AUTO_TOOL_SEARCH_CAPABILITY_ID, AddTool, AgentBlueprint, AgentCapabilityConfig,
309 AppliedCapabilities, AutoToolSearchCapability, BlueprintModel, Capability, CapabilityId,
310 CapabilityRegistry, CapabilityRegistryBuilder, CapabilityStatus, CollectedCapabilities,
311 CurrentTimeCapability, DECLARATIVE_CAPABILITY_PREFIX, DeleteFileTool, DependencyError,
312 DivideTool, FileSystemCapability, GetCurrentTimeTool, GetForecastTool, GetSessionInfoTool,
313 GetWeatherTool, GrepFilesTool, HUMAN_INTENT_CAPABILITY_ID, HumanIntentCapability,
314 INFINITY_CONTEXT_CAPABILITY_ID, InfinityContextCapability, IntegrationPlugin,
315 ListDirectoryTool, MAX_RESOLVED_CAPABILITIES, MCP_CAPABILITY_PREFIX, McpCapability,
316 MountAccess, MountDirectoryBuilder, MountEntry, MountPoint, MountSource, MultiplyTool,
317 NoopCapability, OPENAI_TOOL_SEARCH_CAPABILITY_ID, OpenAiToolSearchCapability,
318 PlatformManagementCapability, QueryHistoryTool, ReadFileTool, ResearchCapability,
319 ResolvedCapabilities, RiskLevel, SampleDataCapability, SessionCapability,
320 SessionSandboxCapability, SessionSqlDatabaseCapability, SqlExecuteTool, SqlQueryTool,
321 SqlSchemaTool, StatFileTool, StatelessTodoListCapability, SubtractTool, TestMathCapability,
322 TestWeatherCapability, ToolCallHook, ToolDefinitionHook, WriteFileTool, WriteSessionTitleTool,
323 WriteTodosTool, apply_capabilities, collect_capabilities, collect_capabilities_with_configs,
324 compute_features, declarative_capability_id, declarative_capability_info, get_dependencies,
325 hydrate_declarative_capability_config, is_declarative_capability, is_mcp_capability,
326 mcp_capability_id, parse_declarative_capability_id, parse_mcp_capability_id,
327 resolve_dependencies, validate_declarative_capability_definition,
328};
329pub use capabilities::{
330 AttachSkillCapability, SKILL_CAPABILITY_PREFIX, SKILLS_CAPABILITY_ID, SKILLS_DISCOVERY_PATH,
331 SkillInstructions, SkillMeta, SkillSource, SkillsCapability, discover_skills_from_entries,
332 is_skill_capability, parse_skill_capability_id, skill_capability_id,
333};
334pub use capabilities::{
335 DeclarativeCapabilityDefinition, DeclarativeCapabilityFile, DeclarativeCapabilitySkill,
336};
337
338pub use atoms::{
340 ActAtom, ActInput, ActResult, Atom, AtomContext, ClientSideToolHook, ConnectionSetupHook,
341 InputAtom, InputAtomInput, InputAtomResult, PostActAction, PostActHook, PostToolExecHook,
342 ReasonAtom, ReasonInput, ReasonResult, ToolCallResult,
343};
344
345pub use tool_types::{
347 BuiltinTool, ClientSideTool, DeferrablePolicy, SideEffectClass, ToolCall, ToolDefinition,
348 ToolHints, ToolPolicy, ToolResult,
349};
350
351pub use agent::{
356 Agent, AgentStatus, AgentVersion, AgentVersionChangeKind, MAX_ADDRESSABLE_NAME_LEN,
357 generate_agent_public_id, validate_addressable_name, validate_agent_public_id,
358};
359pub use agent_identity::{AgentIdentity, AgentIdentityStatus};
360pub use app::{
361 A2aChannelConfig, AgUiChannelConfig, AgUiToolVisibility, AgentVersionPolicy, App, AppChannel,
362 AppEndpointAuthConfig, AppEndpointAuthMode, AppEndpointAuthProviderConfig,
363 AppEndpointAuthRequirements, AppStatus, ChannelType, FcpChannelConfig, SessionStrategy,
364 SlackChannelConfig, SlackReplyMode,
365};
366pub use capability_dto::{AgentCapability, CapabilityInfo};
367pub use context_report::{
368 ContextReportContribution, ContextReportSection, SessionContextReport,
369 build_session_context_report, build_session_context_report_from_generation,
370};
371pub use events::{
372 ACT_COMPLETED, ACT_STARTED, ActCompletedData, ActStartedData, CONTEXT_COMPACTED,
373 CONTEXT_COMPACTING, CompactionReason, CompactionStepData, ContextCompactedData,
374 ContextCompactingData, Event, EventBuilder, EventContext, EventData, EventRequest,
375 FILE_WRITTEN, FileWrittenData, INPUT_MESSAGE, InputMessageData, LLM_GENERATION,
376 LlmCompactionInfo, LlmGenerationData, LlmGenerationMetadata, LlmGenerationOutput, LlmRetryInfo,
377 ModelMetadata, OUTPUT_MESSAGE_COMPLETED, OUTPUT_MESSAGE_DELTA, OUTPUT_MESSAGE_REPLACED,
378 OUTPUT_MESSAGE_STARTED, OutputMessageCompletedData, OutputMessageDeltaData,
379 OutputMessageReplacedData, OutputMessageStartedData, REASON_COMPLETED, REASON_ITEM,
380 REASON_STARTED, REASON_THINKING_COMPLETED, REASON_THINKING_DELTA, REASON_THINKING_STARTED,
381 ReasonCompletedData, ReasonItemData, ReasonStartedData, ReasonThinkingCompletedData,
382 ReasonThinkingDeltaData, ReasonThinkingStartedData, SESSION_ACTIVATED, SESSION_IDLED,
383 SESSION_STARTED, SessionActivatedData, SessionIdledData, SessionStartedData,
384 TOOL_CALL_REQUESTED, TOOL_COMPLETED, TOOL_OUTPUT_DELTA, TOOL_PROGRESS, TOOL_STARTED,
385 TURN_CANCELLED, TURN_COMPLETED, TURN_FAILED, TURN_STARTED, TokenUsage, ToolCallRequestedData,
386 ToolCallSummary, ToolCompletedData, ToolOutputDeltaData, ToolProgressData, ToolStartedData,
387 TurnCancelledData, TurnCompletedData, TurnFailedData, TurnStartedData, VALID_EVENT_TYPES,
388};
389pub use harness::{Harness, HarnessStatus, merge_harness, merge_harness_chain};
390pub use leased_resource::{
391 LEASED_RESOURCES_FEATURE, LeasedResource, LeasedResourceStatus, UpsertLeasedResource,
392};
393pub use llm_model_profiles::{get_model_profile, get_model_vendor};
394pub use llm_models::{
395 CostTier, LlmModel, LlmModelCost, LlmModelLimits, LlmModelModalities, LlmModelProfile,
396 LlmModelSource, LlmModelWithProvider, LlmProviderStatus, LlmProviderType, Modality,
397 ModelVendor, ReasoningEffort, ReasoningEffortConfig, ReasoningEffortValue,
398};
399pub use mcp_proxy::{McpProxyTool, McpToolInvoker, build_mcp_proxy_tools};
400pub use mcp_server::{
401 McpContent, McpError, McpServer, McpServerAuthMode, McpServerStatus, McpServerTransportType,
402 McpToolAnnotations, McpToolCallParams, McpToolCallRequest, McpToolCallResponse,
403 McpToolCallResult, McpToolDefinition, McpToolsListRequest, McpToolsListResponse,
404 McpToolsListResult, ScopedMcpServer, ScopedMcpServers, is_mcp_tool,
405 mcp_oauth_provider_id_for_uuid, mcp_oauth_session_secret_name, mcp_tool_name,
406 merge_scoped_mcp_servers, parse_mcp_tool_name, sanitize_mcp_server_name,
407 scoped_mcp_servers_is_empty,
408};
409pub use organization::{
410 ANONYMOUS_USER_EMAIL, ANONYMOUS_USER_ID, ANONYMOUS_USER_NAME, DEFAULT_ORG_ID,
411 DEFAULT_ORG_PUBLIC_ID, OrgMembership, OrgRole, Organization, generate_org_public_id,
412 org_public_id_from_internal, validate_org_public_id,
413};
414pub use payment::{
415 MachinePaymentRequest, MachinePaymentResponse, PaymentAccount, PaymentAttempt, PaymentMethod,
416 PaymentOwnerType, PaymentPolicy, PaymentRail, PaymentStatus,
417};
418pub use principal::{Principal, PrincipalKind, PrincipalStatus, PrincipalSummary};
419pub use session::{Session, SessionStatus, SubagentStatus};
420pub use session_file::{FileInfo, FileStat, GrepMatch, GrepResult, InitialFile, SessionFile};
421pub use session_resource::{
422 RegisterSessionResource, SessionResourceEntry, SessionResourceFilter, SessionResourceStatus,
423};
424pub use session_sqldb::{
425 ColumnSchema, DatabaseInfo, SessionSqlDbError, SessionSqlDbStore, SqlExecuteResult,
426 SqlQueryResult, TableSchema,
427};
428pub use skill::{
429 ParsedSkillMd, Skill, SkillContent, SkillFileEntry, SkillSourceType, SkillStatus, SkillUsage,
430 SkillValidationResult, parse_skill_md, validate_skill_md, validate_skill_name,
431};
432pub use typed_id::{
433 AgentId, AgentIdentityId, AgentVersionId, AppChannelId, AppId, DeclarativeCapabilityId,
434 EvalCaseId, EvalId, EvalResultId, EvalRunId, EventId, ExecId, HarnessId, IdMarker,
435 IdParseError, ImageId, KnowledgeBaseId, KnowledgeEntryId, LeasedResourceId, McpServerId,
436 MemoryId, MemoryStoreId, MessageId, ModelId, NotificationId, OrgId, PaymentAccountId,
437 PaymentAttemptId, PaymentPolicyId, PrincipalId, ProviderId, ScheduleId, SessionId, SkillId,
438 TurnId, TypedId,
439};
440
441pub use audit::{
443 AgentAction, AuditAction, AuditDomain, AuditEvent, AuditEventBuilder, AuditLogger, AuditTarget,
444 ManagementAction,
445};
446
447pub use permissions::{
449 Caller, DefaultPermissionResolver, Permission, PermissionResolver, Policy,
450 PolicyConfigResponse, PolicyError, ResourceConfigResponse, Rule, SkillPermissionAction,
451 SkillPermissionPattern, SkillPermissionRule, check_skill_permission, evaluate_policies,
452 evaluate_policies_with, parse_skill_permission_rule, role_has_permission, role_permissions,
453};
454
455pub use dependency_blocker::{DependencyBlocker, detect_dependency_blocker};
457
458pub use url_validation::{
460 UrlValidationError, is_blocked_ip, validate_safe_url, validate_url_dns_pinned,
461};
462
463pub use deployment::DeploymentGrade;
465
466pub use feature_flags::{
468 API_FEATURE_FLAG_DEFINITIONS, FeatureFlagDefinition, FeatureFlags, InternalFeatureFlags,
469};
470
471pub use observation::{BraintrustConfig, BraintrustListener, OtelEventListener};