Skip to main content

everruns_core/
lib.rs

1//! Core agent abstractions for Everruns.
2//!
3//! `everruns-core` is the shared contract crate for the
4//! [Everruns](https://everruns.com) ecosystem. It defines the runtime-facing
5//! types used by embedded hosts, workers, provider drivers, integrations, and
6//! the control plane.
7//!
8//! The crate is deliberately storage-agnostic. Agent execution is expressed in
9//! terms of traits such as [`MessageRetriever`], [`ToolExecutor`],
10//! [`EventEmitter`], and [`ProviderStore`], while host crates decide whether
11//! those traits are backed by memory, PostgreSQL, gRPC, or another system.
12//!
13//! # Main Surfaces
14//!
15//! - Agent, harness, session, message, event, and typed ID models
16//! - Capability and tool traits for composing agent behavior
17//! - Provider-neutral LLM messages, streams, and driver registration
18//! - Context assembly for the shared `input -> reason -> act` execution flow
19//! - In-memory helpers and `llmsim` for deterministic tests and examples
20//!
21//! # Example
22//!
23//! ```ignore
24//! use everruns_core::{CapabilityRegistry, DriverRegistry, PlatformDefinition};
25//! use everruns_core::capabilities::TestMathCapability;
26//!
27//! let mut capabilities = CapabilityRegistry::new();
28//! capabilities.register(TestMathCapability);
29//!
30//! let platform = PlatformDefinition::new(capabilities, DriverRegistry::new());
31//! assert!(platform.capability_registry().get("test_math").is_some());
32//! ```
33
34// Runtime types (tool definitions, capability types)
35pub mod annotation_hook;
36pub mod capability_types;
37pub mod tool_fingerprint;
38pub use everruns_provider::tool_types;
39
40// User-defined hooks (see specs/user-hooks.md)
41pub mod hook_adapter;
42pub mod hook_dispatch;
43pub mod hook_executor;
44pub mod lifecycle_hooks;
45pub mod user_hook_types;
46
47// Deployment configuration
48pub mod deployment;
49pub mod egress;
50pub mod email;
51pub mod exec_tool_result;
52pub mod utility_llm;
53
54// Feature flags
55pub mod feature_flags;
56pub mod localization;
57
58// Telemetry (OpenTelemetry with gen-ai semantic conventions)
59pub mod telemetry;
60pub mod tool_narration;
61
62// Event listeners (pluggable observability backends)
63pub mod event_listeners;
64
65// Error reporter (vendor-neutral embedder hook)
66pub mod error_reporter;
67
68// Observability exporters (Braintrust, OpenTelemetry) live in the
69// `everruns-observability` crate (EVE-651), depending on core only for the
70// `EventListener` trait + event types. The gen-AI span conventions and OTLP
71// init they build on stay here in `telemetry`.
72
73// Typed ID system (type-safe prefixed identifiers)
74// See specs/id-schema.md for specification
75pub use everruns_provider::typed_id;
76
77// Audit logging types and trait (EVE-226)
78pub mod audit;
79
80// Budget types (budgets, ledger, rules, actions)
81pub mod background;
82pub mod budget;
83
84// Domain entity types
85// These are DB-agnostic entity types used by both API and worker
86pub mod agent;
87pub mod agent_identity;
88pub mod agent_trigger;
89pub mod app;
90pub mod ard_attachment;
91pub mod capability_dto;
92pub mod connector;
93pub mod credential_provider;
94pub use everruns_provider::credential_schema;
95pub mod eval;
96pub mod events;
97pub mod harness;
98pub mod leased_resource;
99pub mod mcp_proxy;
100pub mod mcp_server;
101pub mod memory;
102pub use everruns_provider::model;
103pub use everruns_provider::model_discovery;
104pub use everruns_provider::model_profiles;
105pub mod model_router;
106pub mod mount_fs;
107pub mod network_access;
108pub mod observer;
109pub mod organization;
110pub mod payment;
111pub mod principal;
112pub use everruns_provider::provider;
113pub mod reporting;
114pub mod session;
115pub mod session_file;
116pub mod session_path;
117pub mod session_resource;
118pub mod session_sandbox;
119pub mod session_schedule;
120pub mod session_sqldb;
121pub mod session_task;
122pub mod skill;
123pub mod system_allowlist;
124pub mod task_observer;
125pub mod vector_store;
126pub mod wake_queue;
127pub mod workspace;
128pub mod workspace_roots;
129
130// Multi-platform channel abstractions (thread context, delivery, routing)
131pub mod channel;
132
133// Permissions model (policies, rules, caller context)
134pub mod permissions;
135pub mod progress_reporting;
136pub mod resource_names;
137
138// URL validation for SSRF prevention (shared utility)
139pub use everruns_provider::url_validation;
140
141// Plugin compiler (directory → declarative capability definition)
142// See specs/plugins.md
143pub mod plugins;
144
145pub mod atoms;
146pub mod capabilities;
147pub mod command;
148pub mod command_host;
149pub mod compaction_checkpoint;
150pub mod config;
151pub mod config_layer;
152pub mod context_report;
153pub mod dependency_blocker;
154pub use everruns_provider::driver_helpers;
155pub use everruns_provider::driver_registry;
156pub use everruns_provider::error;
157pub mod guardrail_checks;
158pub mod guardrail_gallery;
159pub mod llm_error_hook;
160pub use everruns_provider::llm_retry;
161// Adapters from core domain types (Message, RuntimeAgent, ResolvedModel) to the
162// provider driver types. Lives on the core side to keep the crate dependency
163// one-directional (core -> everruns-provider).
164pub mod llm_conversions;
165pub mod message;
166pub mod message_filter;
167pub mod message_retriever;
168mod tool_call_integrity;
169pub use everruns_provider::openai_protocol;
170pub use everruns_provider::openresponses_protocol;
171pub use everruns_provider::openresponses_types;
172pub mod outline;
173pub mod output_guardrail;
174pub mod path_identity;
175pub mod platform_definition;
176pub mod platform_store;
177pub mod resource_ownership;
178pub mod runtime_agent;
179pub mod runtime_context;
180pub use everruns_provider::stream_accumulator;
181pub use everruns_provider::stream_reconnect;
182pub mod tool_output_sanitizer;
183pub mod tools;
184pub mod traits;
185pub mod truncation_info;
186pub use everruns_provider::user_facing_error;
187
188// In-memory implementations for examples and testing
189pub mod in_memory;
190
191// LLM Simulator driver for testing (behind the `llmsim` feature)
192#[cfg(feature = "llmsim")]
193pub mod llmsim_driver;
194
195// In-memory agentic loop for testing and prototyping. Built on the llmsim
196// driver, so it follows the same feature gate.
197#[cfg(feature = "llmsim")]
198pub mod in_memory_loop;
199
200// Turn orchestration (state machine, context, outcomes)
201pub mod turn;
202
203// Note: Chat Driver implementations (AnthropicChatDriver, OpenAIChatDriver) are now in
204// separate crates (everruns-anthropic, everruns-openai) that depend on everruns-core.
205// This enables dependency inversion - provider crates register their drivers at startup.
206
207// Re-exports for convenience
208pub use command_host::{
209    CommandHost, CommandTurnContext, DisabledCommandHost, SessionCompletion,
210    SessionCompletionError, SessionCompletionRequest, SessionCompletionStream, StoreCommandHost,
211};
212pub use config_layer::{
213    AgentConfigOverlay, merge_capabilities, merge_initial_files, normalize_initial_file_path,
214};
215pub use error::{
216    AgentLoopError, FileSystemError, FileSystemErrorClass, LlmError, LlmErrorKind, Result,
217    StoreResultExt, classify_fs_error, from_json, json_val,
218};
219pub use llm_error_hook::{
220    LlmErrorContext, LlmErrorHook, LlmErrorHookOutcome, LlmErrorHookServices,
221};
222pub use message::{
223    AnnotationSource, ContentPart, ContentType, Controls, ExternalActor, ImageContentPart,
224    ImageFileContentPart, InputContentPart, Message, MessageRole, ReasoningConfig, TextAnnotation,
225    TextContentPart, ToolCallContentPart, ToolResultContentPart, VerificationStatus,
226    VerificationVerdict,
227};
228pub use message_filter::{
229    ExcludedNoticeTransform, FilterContext, InjectedMessage, InjectionPosition, MessageFilter,
230    MessageFilterProvider, MessageQuery, PrependTransform,
231};
232pub use message_retriever::{InputMessage, MessageHistory, MessageRetriever};
233pub use mount_fs::{DisplayPolicy, MountFs, WORKSPACE_MOUNT, scoped_prompt_file_store};
234pub use runtime_agent::{RuntimeAgent, RuntimeAgentBuilder};
235pub use runtime_context::{
236    AssembledTurnContext, ResolvedRuntimeCapabilities, assemble_turn_context, inspect_turn_context,
237    resolve_runtime_capabilities,
238};
239pub use traits::{
240    DisabledSessionFileSystemFactory, DurableToolResultStore, EventEmitter, HarnessStore,
241    ImageResolver, KeyInfo, LeasedResourceStore, NoopDurableToolResultStore, NoopEventEmitter,
242    NoopPartialStreamStore, NoopStreamHeartbeater, NoopSubagentSpawnStore, OutboundToolRateLimiter,
243    PartialStreamState, PartialStreamStore, ProviderStore, ReasoningEffortHandle, ResolvedImage,
244    ResolvedModel, SecretInfo, SessionFileStore, SessionFileSystem, SessionFileSystemFactory,
245    SessionFileSystemFactoryContext, SessionMutator, SessionResourceRegistry, SessionSqlDbStoreRef,
246    SessionStorageStore, SessionStore, SpawnClaimResult, StreamHeartbeater, StreamProgress,
247    SubagentNestingPolicy, SubagentSpawnStore, ToolCallClaimResult, ToolContext, ToolExecutor,
248    UserConnectionResolver, WorkspaceScopedFileSystem,
249};
250pub use user_facing_error::{
251    ErrorDisclosure, UserFacingError, UserFacingErrorContext, UserFacingErrorFields,
252    classify_runtime_error_message, codes as user_facing_error_codes, is_provider_quota_message,
253    is_usage_limit_message, metadata_keys as user_facing_error_metadata_keys,
254    parse_usage_limit_reset_at, trim_error_chain_prefixes,
255};
256pub use workspace_roots::{
257    ADDITIONAL_ROOTS_MOUNT, PRIMARY_WORKSPACE_ROOT_NAME, RelPath, ResolvedPath, WorkspaceRoot,
258    WorkspaceRootSet,
259};
260
261// Channel abstraction re-exports
262pub use channel::{
263    ChannelDeliveryAdapter, ChannelReplyMode, DeliveryContext as ChannelDeliveryContext,
264    DeliveryResult as ChannelDeliveryResult, InboundAttachment, InboundChannelEvent,
265    OutboundChannelMessage, Participant, SessionRoutingStrategy, ThreadContext,
266};
267
268// Platform store re-exports
269pub use platform_store::{PlatformMessage, PlatformStore};
270pub use resource_ownership::{
271    LEASED_RESOURCE_EXTERNAL_ID_KEY, LEASED_RESOURCE_ID_KEY, LEASED_RESOURCE_PROVIDER_KEY,
272    LEASED_RESOURCE_TYPE_KEY, list_owned_external_resource_ids,
273    ownership_tracking_unavailable_error, require_owned_external_resource,
274    resource_not_owned_error, verify_owned_external_resource_if_available,
275};
276
277// Event listener re-exports
278pub use background::{
279    BackgroundEventSink, BackgroundExecutableTool, BackgroundOutcome, BackgroundProgress,
280};
281pub use event_listeners::{CompositeEventListener, EventListener, NoopEventListener};
282
283// Error reporter re-exports
284pub use error_reporter::{
285    ErrorReport, ErrorReporter, ErrorScope, ErrorSeverity, NoopErrorReporter, SharedErrorReporter,
286};
287
288// Outbound egress service re-exports
289pub use egress::{
290    DirectEgressService, DisabledEgressService, EgressByteStream, EgressError, EgressRequest,
291    EgressRequestKind, EgressResponse, EgressResult, EgressService, EgressSigning,
292    EgressStreamResponse,
293};
294pub use system_allowlist::{AllowGroup, SYSTEM_ALLOWLIST_ENABLED_ENV, SystemAllowlist};
295
296// System email re-exports
297pub use email::{
298    BasicEmailTemplate, DisabledEmailSender, EmailAddress, EmailError, EmailMessage, EmailResult,
299    EmailSender, EmailTag, EmailTemplate, MinimalEmailTemplate, NoopEmailSender, RenderedEmail,
300    ResendEmailConfig, ResendEmailSender, SYSTEM_EMAIL_FROM, SentEmail, SystemEmailConfig,
301    system_email_from,
302};
303pub use utility_llm::{
304    DisabledUtilityLlmService, OpenAiUtilityLlmService, SystemUtilityLlmConfig, UTILITY_LLM_MODEL,
305    UTILITY_OPENAI_API_KEY_ENV, UtilityLlmReasoningEffort, UtilityLlmRequest, UtilityLlmService,
306};
307
308// LLM driver types re-exports
309pub use driver_registry::{
310    BoxedChatDriver, BoxedEmbeddingsDriver, ChatDriver, DiscoveredModel, DriverDescriptor,
311    DriverFactory, DriverId, DriverOAuthConfig, DriverOAuthFlow, DriverRegistry, EmbedRequest,
312    EmbedResponse, EmbeddingsDriver, EmbeddingsDriverError, EmbeddingsDriverFactory, LlmCallConfig,
313    LlmCallConfigBuilder, LlmCompletionMetadata, LlmContentPart, LlmMessage, LlmMessageContent,
314    LlmMessageRole, LlmResponse, LlmResponseStream, LlmStreamError, LlmStreamEvent, ProviderConfig,
315    ProviderOpaqueContext, ServiceKind, fold_system_messages,
316};
317
318// LLM retry types re-exports
319pub use llm_retry::{LlmRetryConfig, RateLimitInfo, RateLimitType, RetryMetadata};
320
321// OpenAI Protocol driver (Chat Completions API for backward compatibility)
322pub use openai_protocol::OpenAIProtocolChatDriver;
323
324// Pluggable request authentication, shared by the Chat Completions and Open
325// Responses protocol drivers (e.g. static API key vs. refreshable OAuth bearer).
326pub use openai_protocol::AuthHeaderProvider;
327
328// Open Responses Protocol driver (https://www.openresponses.org/)
329// Vendor-neutral API standard, recommended for new projects
330pub use openresponses_protocol::{
331    CompactContent, CompactContentPart, CompactInputItem, CompactOutputItem, CompactRequest,
332    CompactResponse, CompactUsage, OpenResponsesProtocolChatDriver, OpenResponsesRequestExtension,
333    messages_to_compact_input,
334};
335
336// Tool abstraction re-exports
337pub use tools::{
338    EchoTool, FailingTool, SpawnBackgroundTool, Tool, ToolExecutionResult, ToolInternalError,
339    ToolRegistry, ToolRegistryBuilder, ToolResultImage,
340};
341
342// Shared credential form schema (provider drivers + connection providers)
343pub use credential_schema::{
344    CredentialFormSchema, assemble_credential_document, parse_credential_document,
345};
346
347// Pluggable provider credential source (drivers never read env directly).
348pub use credential_provider::{CredentialProvider, EnvCredentialProvider, ProviderCredentials};
349
350// Connector plugin system (user-scoped API key / OAuth connections)
351pub use connector::{
352    Connector, ConnectorFormSchema, ConnectorPlugin, ConnectorRegistry, ConnectorRegistryBuilder,
353    ConnectorType, ConnectorValidation, FieldType, FormField,
354};
355pub use platform_definition::{
356    BuiltInCapabilityDefinition, BuiltInHarnessDefinition, BuiltInHarnessRole, PlatformDefinition,
357    PlatformDefinitionBuilder,
358};
359pub use session_sandbox::{
360    DEFAULT_SESSION_SANDBOX_IDLE_TIMEOUT_SECS, SESSION_SANDBOX_CAPABILITY_ID,
361    SESSION_SANDBOX_SECRET_NAME, SessionSandboxConfig, SessionSandboxExecRequest,
362    SessionSandboxExecResponse, SessionSandboxInitConfig, SessionSandboxInstance,
363    SessionSandboxProvider, SessionSandboxProviderPlugin, SessionSandboxReadFileResponse,
364    SessionSandboxState, SessionSandboxStatus, SessionSandboxStatusResponse,
365    SessionSandboxWriteFileResponse, create_session_sandbox_provider, delete_session_sandbox,
366    delete_session_sandbox_state, ensure_session_sandbox_running, load_session_sandbox_state,
367    pause_session_sandbox, run_session_sandbox_init_if_needed, save_session_sandbox_state,
368    session_sandbox_config_from_capabilities, session_sandbox_tool_hints,
369};
370
371pub use capabilities::SystemPromptContext;
372pub use capabilities::{
373    AUTO_TOOL_SEARCH_CAPABILITY_ID, AddTool, AgentBlueprint, AgentCapabilityConfig,
374    AppliedCapabilities, AutoToolSearchCapability, BlueprintModel,
375    CLAUDE_TOOL_SEARCH_CAPABILITY_ID, Capability, CapabilityId, CapabilityRegistry,
376    CapabilityRegistryBuilder, CapabilityStatus, ClaudeToolSearchCapability, CollectedCapabilities,
377    CurrentTimeCapability, DECLARATIVE_CAPABILITY_PREFIX, DeleteFileTool, DependencyError,
378    DivideTool, FileSystemCapability, GetCurrentTimeTool, GetForecastTool, GetSessionInfoTool,
379    GetWeatherTool, GrepFilesTool, HUMAN_INTENT_CAPABILITY_ID, HumanIntentCapability,
380    INFINITY_CONTEXT_CAPABILITY_ID, InfinityContextCapability, IntegrationPlugin,
381    ListDirectoryTool, MAX_RESOLVED_CAPABILITIES, MCP_CAPABILITY_PREFIX, McpCapability,
382    MountAccess, MountDirectoryBuilder, MountEntry, MountPoint, MountSource, MultiplyTool,
383    NoopCapability, OPENAI_TOOL_SEARCH_CAPABILITY_ID, OpenAiToolSearchCapability,
384    PlatformManagementCapability, QueryHistoryTool, ReadFileTool, ResearchCapability,
385    ResolvedCapabilities, RiskLevel, SampleDataCapability, SessionCapability,
386    SessionCapabilityConfig, SessionSandboxCapability, SessionSqlDatabaseCapability,
387    SessionTitleMutation, SqlExecuteTool, SqlQueryTool, SqlSchemaTool, StatFileTool,
388    StatelessTodoListCapability, SubtractTool, TestMathCapability, TestWeatherCapability,
389    ToolCallHook, ToolDefinitionHook, WriteFileTool, WriteSessionTitleTool, WriteTodosTool,
390    apply_capabilities, collect_capabilities, collect_capabilities_with_configs, compute_features,
391    declarative_capability_id, declarative_capability_info, get_dependencies,
392    hydrate_declarative_capability_config, hydrate_plugin_capability_config,
393    is_declarative_capability, is_mcp_capability, mcp_capability_id,
394    parse_declarative_capability_id, parse_mcp_capability_id, plugin_capability_info,
395    resolve_dependencies, session_title_updated_event, update_session_title_with_event,
396    validate_declarative_capability_definition,
397};
398pub use capabilities::{
399    AttachSkillCapability, SKILL_CAPABILITY_PREFIX, SKILLS_CAPABILITY_ID, SKILLS_DISCOVERY_PATH,
400    SkillInstructions, SkillMeta, SkillSource, SkillsCapability, discover_skills_from_entries,
401    is_skill_capability, parse_skill_capability_id, skill_capability_id,
402};
403pub use capabilities::{
404    DeclarativeCapabilityDefinition, DeclarativeCapabilityFile, DeclarativeCapabilitySkill,
405};
406pub use compaction_checkpoint::{
407    COMPACTION_CHECKPOINT_FORMAT_VERSION, CompactionCheckpoint, CompactionCheckpointPayload,
408    CompactionCheckpointStore, InMemoryCompactionCheckpointStore, ProactiveCompactionAttempt,
409    ProactiveCompactionAttemptTracker,
410};
411
412// Atoms re-exports (stateless atomic operations)
413pub use atoms::{
414    ActAtom, ActInput, ActResult, Atom, AtomContext, ClientSideToolHook, ConnectionSetupHook,
415    InputAtom, InputAtomInput, InputAtomResult, PostActAction, PostActHook, PostToolExecHook,
416    ReasonAtom, ReasonInput, ReasonResult, ToolCallResult,
417};
418
419// Tool types (runtime types defined in this crate)
420pub use tool_types::{
421    BuiltinTool, ClientSideTool, DeferrablePolicy, SideEffectClass, ToolCall, ToolDefinition,
422    ToolHints, ToolPolicy, ToolResult,
423};
424
425// Plugin capability ID helpers — mirrors the declarative_capability_id trio.
426pub use capability_types::{
427    PLUGIN_CAPABILITY_PREFIX, is_plugin_capability, parse_plugin_capability_id,
428    plugin_capability_id,
429};
430
431// Note: CapabilityId and CapabilityStatus are re-exported via capabilities module
432
433// Domain entity re-exports
434// Note: Provider entity is in the provider module. Import as: everruns_core::provider::Provider
435pub use agent::{
436    Agent, AgentStatus, AgentVersion, AgentVersionChangeKind, MAX_ADDRESSABLE_NAME_LEN,
437    generate_agent_public_id, validate_addressable_name, validate_agent_public_id,
438};
439pub use agent_identity::{AgentIdentity, AgentIdentityStatus};
440pub use agent_trigger::{AgentTrigger, AgentTriggerType, ScheduleTriggerConfig};
441pub use app::{
442    A2aChannelConfig, AgUiChannelConfig, AgUiToolVisibility, AgentVersionPolicy,
443    ApiEndpointChannelConfig, App, AppChannel, AppEndpointAuthConfig, AppEndpointAuthMode,
444    AppEndpointAuthProviderConfig, AppEndpointAuthRequirements, AppStatus, CaptchaProvider,
445    ChannelType, FcpChannelConfig, InvocationSessionMode, PublicChatBranding,
446    PublicChatCaptchaConfig, PublicChatChannelConfig, SessionStrategy, SlackChannelConfig,
447    SlackReplyMode,
448};
449pub use ard_attachment::{
450    ARD_ATTACHMENT_KV_PREFIX, ARD_ATTACHMENT_RESOURCE_KIND, ARD_DISCOVERY_KV_PREFIX, ArdAttachment,
451    ArdAttachmentTarget, apply_session_attachments, attachment_kv_key, load_session_attachments,
452    merge_attachment_into_session, urn_slug,
453};
454pub use capability_dto::{AgentCapability, CapabilityInfo};
455pub use context_report::{
456    ContextReportContribution, ContextReportSection, SessionContextReport,
457    build_session_context_report, build_session_context_report_from_generation,
458};
459pub use events::{
460    ACT_COMPLETED, ACT_STARTED, ActCompletedData, ActStartedData, CONTEXT_COMPACTED,
461    CONTEXT_COMPACTING, CompactionReason, CompactionStepData, ContextCompactedData,
462    ContextCompactingData, Event, EventBuilder, EventContext, EventData, EventRequest,
463    FILE_WRITTEN, FileWrittenData, INPUT_MESSAGE, InputMessageData, LLM_GENERATION,
464    LlmCompactionInfo, LlmGenerationData, LlmGenerationMetadata, LlmGenerationOutput, LlmRetryInfo,
465    ModelMetadata, OUTPUT_MESSAGE_COMPLETED, OUTPUT_MESSAGE_DELTA, OUTPUT_MESSAGE_REPLACED,
466    OUTPUT_MESSAGE_STARTED, OutputMessageCompletedData, OutputMessageDeltaData,
467    OutputMessageReplacedData, OutputMessageStartedData, REASON_COMPLETED, REASON_ITEM,
468    REASON_RECOVERED, REASON_STARTED, REASON_THINKING_COMPLETED, REASON_THINKING_DELTA,
469    REASON_THINKING_STARTED, ReasonCompletedData, ReasonItemData, ReasonRecoveredData,
470    ReasonStartedData, ReasonThinkingCompletedData, ReasonThinkingDeltaData,
471    ReasonThinkingStartedData, RecoveryMode, SESSION_ACTIVATED, SESSION_IDLED, SESSION_STARTED,
472    SESSION_TITLE_UPDATED, SessionActivatedData, SessionIdledData, SessionStartedData,
473    SessionTitleUpdatedData, TOOL_CALL_REQUESTED, TOOL_COMPLETED, TOOL_OUTPUT_DELTA, TOOL_PROGRESS,
474    TOOL_STARTED, TURN_CANCELLED, TURN_COMPLETED, TURN_FAILED, TURN_SEALED, TURN_STARTED,
475    TokenUsage, ToolCallRequestedData, ToolCallSummary, ToolCompletedData, ToolOutputDeltaData,
476    ToolProgressData, ToolStartedData, TurnCancelledData, TurnCompletedData, TurnFailedData,
477    TurnSealedData, TurnStartedData, VALID_EVENT_TYPES,
478};
479pub use guardrail_checks::{
480    CompiledJudgeCheck, GuardrailAction, GuardrailHit, GuardrailMode, GuardrailOnFail,
481    GuardrailRule, GuardrailStage, GuardrailsConfig, MAX_JUDGE_PROMPT_LEN,
482};
483pub use guardrail_gallery::{
484    DataEgress, GuardrailGalleryItem, find_guardrail_gallery_item, guardrail_gallery,
485};
486pub use harness::{Harness, HarnessStatus, merge_harness, merge_harness_chain};
487pub use leased_resource::{
488    LEASED_RESOURCES_FEATURE, LeasedResource, LeasedResourceStatus, UpsertLeasedResource,
489};
490pub use mcp_proxy::{McpProxyTool, McpToolInvoker, ScopedMcpToolInvoker, build_mcp_proxy_tools};
491pub use mcp_server::{
492    MCP_PROTOCOL_VERSION_2025_03, MCP_PROTOCOL_VERSION_2025_06, MCP_PROTOCOL_VERSION_2026_07,
493    McpContent, McpError, McpProtocolMode, McpServer, McpServerAuthMode, McpServerStatus,
494    McpServerTransportType, McpToolAnnotations, McpToolCallParams, McpToolCallRequest,
495    McpToolCallResponse, McpToolCallResult, McpToolDefinition, McpToolsListRequest,
496    McpToolsListResponse, McpToolsListResult, ScopedMcpServer, ScopedMcpServers, is_mcp_tool,
497    mcp_oauth_provider_id_for_uuid, mcp_oauth_session_secret_name, mcp_tool_name,
498    merge_scoped_mcp_servers, normalize_mcp_error_code, parse_mcp_tool_name,
499    sanitize_mcp_server_name, scoped_mcp_servers_is_empty,
500};
501pub use model::{
502    CostTier, Modality, Model, ModelCost, ModelLimits, ModelModalities, ModelProfile, ModelSource,
503    ModelVendor, ModelWithProvider, ReasoningEffort, ReasoningEffortConfig, ReasoningEffortValue,
504};
505pub use model_discovery::{
506    DiscoveredProviderModel, RankedDiscoveredModels, discover_provider_models,
507    enrich_with_profiles, list_openai_compatible_models, normalize_and_enrich,
508    rank_discovered_models,
509};
510pub use model_profiles::{get_model_profile, get_model_vendor};
511pub use organization::{
512    ANONYMOUS_USER_EMAIL, ANONYMOUS_USER_ID, ANONYMOUS_USER_NAME, DEFAULT_ORG_ID,
513    DEFAULT_ORG_PUBLIC_ID, OrgMembership, OrgRole, Organization, generate_org_public_id,
514    org_public_id_from_internal, validate_org_public_id,
515};
516pub use payment::{
517    MachinePaymentRequest, MachinePaymentResponse, PaymentAccount, PaymentAttempt, PaymentMethod,
518    PaymentOwnerType, PaymentPolicy, PaymentRail, PaymentStatus,
519};
520pub use principal::{Principal, PrincipalKind, PrincipalStatus, PrincipalSummary};
521pub use provider::{Provider, ProviderStatus, ProviderTraceConfig};
522pub use session::{
523    Session, SessionParticipant, SessionParticipantKind, SessionParticipantRole, SessionSeedMode,
524    SessionStatus, SubagentStatus,
525};
526pub use session_file::{
527    FileInfo, FileStat, GREP_MAX_CONTEXT_LINES, GREP_MAX_RETURN_BYTES, GrepContextBlock,
528    GrepContextLine, GrepMatch, GrepOptions, GrepResult, GrepSearchResult, InitialFile,
529    SessionFile,
530};
531pub use session_resource::{
532    RegisterSessionResource, SessionResourceEntry, SessionResourceFilter, SessionResourceStatus,
533};
534pub use session_sqldb::{
535    ColumnSchema, DatabaseInfo, SessionSqlDbError, SessionSqlDbStore, SqlExecuteResult,
536    SqlQueryResult, TableSchema,
537};
538pub use session_task::{
539    CreateSessionTask, NewTaskMessage, SessionTask, SessionTaskFilter, SessionTaskRegistry,
540    SessionTaskState, SessionTaskUpdate, TASK_KIND_AGENT_HANDOFF, TASK_KIND_BACKGROUND_TOOL,
541    TASK_KIND_EXTERNAL_AGENT, TASK_KIND_MONITOR, TASK_KIND_SESSION, TASK_KIND_SUBAGENT,
542    TaskArtifact, TaskError, TaskExecutor, TaskExecutorPlugin, TaskInputRequest, TaskLinks,
543    TaskMessage, TaskMessageDirection, TaskMessagePart, TaskProgress, TaskSink, TaskWakePolicy,
544    apply_task_update, find_task_executor,
545};
546pub use skill::{
547    ParsedSkillMd, Skill, SkillContent, SkillFileEntry, SkillSourceType, SkillStatus, SkillUsage,
548    SkillValidationResult, parse_skill_md, validate_skill_md, validate_skill_name,
549};
550pub use task_observer::{ObservingTaskRegistry, TaskTransition, TaskTransitionObserver};
551pub use typed_id::{
552    AgentId, AgentIdentityId, AgentVersionId, AppChannelId, AppId, DeclarativeCapabilityId,
553    EvalCaseId, EvalId, EvalResultId, EvalRunId, EventId, ExecId, HarnessId, IdMarker,
554    IdParseError, ImageId, KnowledgeBaseId, KnowledgeEntryId, LeasedResourceId, McpServerId,
555    MemoryId, MessageId, ModelId, NotificationId, OrgId, PaymentAccountId, PaymentAttemptId,
556    PaymentPolicyId, PluginInstallId, PluginMarketplaceId, PrincipalId, ProviderId, ScheduleId,
557    SessionId, SessionParticipantId, SkillId, TriggerId, TurnId, TypedId, WorkspaceId,
558};
559pub use wake_queue::{PendingWake, SessionWakeQueue, wake_text_for};
560
561// Audit logging re-exports
562pub use audit::{
563    AgentAction, AuditAction, AuditDomain, AuditEvent, AuditEventBuilder, AuditLogger, AuditTarget,
564    ManagementAction,
565};
566
567// Permissions re-exports
568pub use permissions::{
569    Caller, DefaultPermissionResolver, Permission, PermissionResolver, Policy,
570    PolicyConfigResponse, PolicyError, ResourceConfigResponse, Rule, SkillPermissionAction,
571    SkillPermissionPattern, SkillPermissionRule, check_skill_permission, evaluate_policies,
572    evaluate_policies_with, parse_skill_permission_rule, role_has_permission, role_permissions,
573};
574
575// Dependency blocker re-exports
576pub use dependency_blocker::{DependencyBlocker, detect_dependency_blocker};
577
578// URL validation re-exports
579pub use url_validation::{
580    UrlValidationError, is_blocked_ip, validate_safe_url, validate_url_dns_pinned,
581};
582
583// Deployment configuration
584pub use deployment::DeploymentGrade;
585
586// Feature flags
587pub use feature_flags::{
588    API_FEATURE_FLAG_DEFINITIONS, FeatureFlagDefinition, FeatureFlagMap, FeatureFlags,
589    InternalFeatureFlags,
590};