Skip to main content

Crate everruns_core

Crate everruns_core 

Source
Expand description

Core agent abstractions for Everruns.

everruns-core is the shared contract crate for the Everruns ecosystem. It defines the runtime-facing types used by embedded hosts, workers, provider drivers, integrations, and the control plane.

The crate is deliberately storage-agnostic. Agent execution is expressed in terms of traits such as MessageRetriever, ToolExecutor, EventEmitter, and ProviderStore, while host crates decide whether those traits are backed by memory, PostgreSQL, gRPC, or another system.

§Main Surfaces

  • Agent, harness, session, message, event, and typed ID models
  • Capability and tool traits for composing agent behavior
  • Provider-neutral LLM messages, streams, and driver registration
  • Context assembly for the shared input -> reason -> act execution flow
  • In-memory helpers and llmsim for deterministic tests and examples

§Example

use everruns_core::{CapabilityRegistry, DriverRegistry, PlatformDefinition};
use everruns_core::capabilities::TestMathCapability;

let mut capabilities = CapabilityRegistry::new();
capabilities.register(TestMathCapability);

let platform = PlatformDefinition::new(capabilities, DriverRegistry::new());
assert!(platform.capability_registry().get("test_math").is_some());

Re-exports§

pub use command_host::CommandHost;
pub use command_host::CommandTurnContext;
pub use command_host::DisabledCommandHost;
pub use command_host::SessionCompletion;
pub use command_host::SessionCompletionError;
pub use command_host::SessionCompletionRequest;
pub use command_host::SessionCompletionStream;
pub use command_host::StoreCommandHost;
pub use config_layer::AgentConfigOverlay;
pub use config_layer::merge_capabilities;
pub use config_layer::merge_initial_files;
pub use config_layer::normalize_initial_file_path;
pub use llm_error_hook::LlmErrorContext;
pub use llm_error_hook::LlmErrorHook;
pub use llm_error_hook::LlmErrorHookOutcome;
pub use llm_error_hook::LlmErrorHookServices;
pub use message::ContentPart;
pub use message::ContentType;
pub use message::Controls;
pub use message::ExternalActor;
pub use message::ImageContentPart;
pub use message::ImageFileContentPart;
pub use message::InputContentPart;
pub use message::Message;
pub use message::MessageRole;
pub use message::ReasoningConfig;
pub use message::TextContentPart;
pub use message::ToolCallContentPart;
pub use message::ToolResultContentPart;
pub use message_filter::ExcludedNoticeTransform;
pub use message_filter::FilterContext;
pub use message_filter::InjectedMessage;
pub use message_filter::InjectionPosition;
pub use message_filter::MessageFilter;
pub use message_filter::MessageFilterProvider;
pub use message_filter::MessageQuery;
pub use message_filter::PrependTransform;
pub use message_retriever::InputMessage;
pub use message_retriever::MessageRetriever;
pub use mount_fs::DisplayPolicy;
pub use mount_fs::MountFs;
pub use mount_fs::WORKSPACE_MOUNT;
pub use mount_fs::scoped_prompt_file_store;
pub use runtime_agent::RuntimeAgent;
pub use runtime_agent::RuntimeAgentBuilder;
pub use runtime_context::AssembledTurnContext;
pub use runtime_context::ResolvedRuntimeCapabilities;
pub use runtime_context::assemble_turn_context;
pub use runtime_context::inspect_turn_context;
pub use runtime_context::resolve_runtime_capabilities;
pub use traits::DisabledSessionFileSystemFactory;
pub use traits::DurableToolResultStore;
pub use traits::EventEmitter;
pub use traits::HarnessStore;
pub use traits::ImageResolver;
pub use traits::KeyInfo;
pub use traits::LeasedResourceStore;
pub use traits::NoopDurableToolResultStore;
pub use traits::NoopEventEmitter;
pub use traits::NoopPartialStreamStore;
pub use traits::NoopStreamHeartbeater;
pub use traits::NoopSubagentSpawnStore;
pub use traits::OutboundToolRateLimiter;
pub use traits::PartialStreamState;
pub use traits::PartialStreamStore;
pub use traits::ProviderStore;
pub use traits::ReasoningEffortHandle;
pub use traits::ResolvedImage;
pub use traits::ResolvedModel;
pub use traits::SecretInfo;
pub use traits::SessionFileStore;
pub use traits::SessionFileSystem;
pub use traits::SessionFileSystemFactory;
pub use traits::SessionFileSystemFactoryContext;
pub use traits::SessionMutator;
pub use traits::SessionResourceRegistry;
pub use traits::SessionSqlDbStoreRef;
pub use traits::SessionStorageStore;
pub use traits::SessionStore;
pub use traits::SpawnClaimResult;
pub use traits::StreamHeartbeater;
pub use traits::StreamProgress;
pub use traits::SubagentNestingPolicy;
pub use traits::SubagentSpawnStore;
pub use traits::ToolCallClaimResult;
pub use traits::ToolContext;
pub use traits::ToolExecutor;
pub use traits::UserConnectionResolver;
pub use traits::WorkspaceScopedFileSystem;
pub use workspace_roots::ADDITIONAL_ROOTS_MOUNT;
pub use workspace_roots::PRIMARY_WORKSPACE_ROOT_NAME;
pub use workspace_roots::RelPath;
pub use workspace_roots::ResolvedPath;
pub use workspace_roots::WorkspaceRoot;
pub use workspace_roots::WorkspaceRootSet;
pub use channel::ChannelDeliveryAdapter;
pub use channel::ChannelReplyMode;
pub use channel::DeliveryContext as ChannelDeliveryContext;
pub use channel::DeliveryResult as ChannelDeliveryResult;
pub use channel::InboundAttachment;
pub use channel::InboundChannelEvent;
pub use channel::OutboundChannelMessage;
pub use channel::Participant;
pub use channel::SessionRoutingStrategy;
pub use channel::ThreadContext;
pub use platform_store::PlatformMessage;
pub use platform_store::PlatformStore;
pub use resource_ownership::LEASED_RESOURCE_EXTERNAL_ID_KEY;
pub use resource_ownership::LEASED_RESOURCE_ID_KEY;
pub use resource_ownership::LEASED_RESOURCE_PROVIDER_KEY;
pub use resource_ownership::LEASED_RESOURCE_TYPE_KEY;
pub use resource_ownership::list_owned_external_resource_ids;
pub use resource_ownership::ownership_tracking_unavailable_error;
pub use resource_ownership::require_owned_external_resource;
pub use resource_ownership::resource_not_owned_error;
pub use resource_ownership::verify_owned_external_resource_if_available;
pub use background::BackgroundEventSink;
pub use background::BackgroundExecutableTool;
pub use background::BackgroundOutcome;
pub use background::BackgroundProgress;
pub use event_listeners::CompositeEventListener;
pub use event_listeners::EventListener;
pub use event_listeners::NoopEventListener;
pub use error_reporter::ErrorReport;
pub use error_reporter::ErrorReporter;
pub use error_reporter::ErrorScope;
pub use error_reporter::ErrorSeverity;
pub use error_reporter::NoopErrorReporter;
pub use error_reporter::SharedErrorReporter;
pub use egress::DirectEgressService;
pub use egress::DisabledEgressService;
pub use egress::EgressByteStream;
pub use egress::EgressError;
pub use egress::EgressRequest;
pub use egress::EgressRequestKind;
pub use egress::EgressResponse;
pub use egress::EgressResult;
pub use egress::EgressService;
pub use egress::EgressSigning;
pub use egress::EgressStreamResponse;
pub use system_allowlist::AllowGroup;
pub use system_allowlist::SYSTEM_ALLOWLIST_ENABLED_ENV;
pub use system_allowlist::SystemAllowlist;
pub use email::BasicEmailTemplate;
pub use email::DisabledEmailSender;
pub use email::EmailAddress;
pub use email::EmailError;
pub use email::EmailMessage;
pub use email::EmailResult;
pub use email::EmailSender;
pub use email::EmailTag;
pub use email::EmailTemplate;
pub use email::MinimalEmailTemplate;
pub use email::NoopEmailSender;
pub use email::RenderedEmail;
pub use email::ResendEmailConfig;
pub use email::ResendEmailSender;
pub use email::SYSTEM_EMAIL_FROM;
pub use email::SentEmail;
pub use email::SystemEmailConfig;
pub use email::system_email_from;
pub use utility_llm::DisabledUtilityLlmService;
pub use utility_llm::OpenAiUtilityLlmService;
pub use utility_llm::SystemUtilityLlmConfig;
pub use utility_llm::UTILITY_LLM_MODEL;
pub use utility_llm::UTILITY_OPENAI_API_KEY_ENV;
pub use utility_llm::UtilityLlmReasoningEffort;
pub use utility_llm::UtilityLlmRequest;
pub use utility_llm::UtilityLlmService;
pub use tools::EchoTool;
pub use tools::FailingTool;
pub use tools::SpawnBackgroundTool;
pub use tools::Tool;
pub use tools::ToolExecutionResult;
pub use tools::ToolInternalError;
pub use tools::ToolRegistry;
pub use tools::ToolRegistryBuilder;
pub use credential_provider::CredentialProvider;
pub use credential_provider::EnvCredentialProvider;
pub use credential_provider::ProviderCredentials;
pub use connector::Connector;
pub use connector::ConnectorFormSchema;
pub use connector::ConnectorPlugin;
pub use connector::ConnectorRegistry;
pub use connector::ConnectorRegistryBuilder;
pub use connector::ConnectorType;
pub use connector::ConnectorValidation;
pub use platform_definition::BuiltInCapabilityDefinition;
pub use platform_definition::BuiltInHarnessDefinition;
pub use platform_definition::BuiltInHarnessRole;
pub use platform_definition::PlatformDefinition;
pub use platform_definition::PlatformDefinitionBuilder;
pub use session_sandbox::DEFAULT_SESSION_SANDBOX_IDLE_TIMEOUT_SECS;
pub use session_sandbox::SESSION_SANDBOX_CAPABILITY_ID;
pub use session_sandbox::SESSION_SANDBOX_SECRET_NAME;
pub use session_sandbox::SessionSandboxConfig;
pub use session_sandbox::SessionSandboxExecRequest;
pub use session_sandbox::SessionSandboxExecResponse;
pub use session_sandbox::SessionSandboxInitConfig;
pub use session_sandbox::SessionSandboxInstance;
pub use session_sandbox::SessionSandboxProvider;
pub use session_sandbox::SessionSandboxProviderPlugin;
pub use session_sandbox::SessionSandboxReadFileResponse;
pub use session_sandbox::SessionSandboxState;
pub use session_sandbox::SessionSandboxStatus;
pub use session_sandbox::SessionSandboxStatusResponse;
pub use session_sandbox::SessionSandboxWriteFileResponse;
pub use session_sandbox::create_session_sandbox_provider;
pub use session_sandbox::delete_session_sandbox;
pub use session_sandbox::delete_session_sandbox_state;
pub use session_sandbox::ensure_session_sandbox_running;
pub use session_sandbox::load_session_sandbox_state;
pub use session_sandbox::pause_session_sandbox;
pub use session_sandbox::run_session_sandbox_init_if_needed;
pub use session_sandbox::save_session_sandbox_state;
pub use session_sandbox::session_sandbox_config_from_capabilities;
pub use session_sandbox::session_sandbox_tool_hints;
pub use capabilities::SystemPromptContext;
pub use capabilities::AUTO_TOOL_SEARCH_CAPABILITY_ID;
pub use capabilities::AddTool;
pub use capabilities::AgentBlueprint;
pub use capabilities::AgentCapabilityConfig;
pub use capabilities::AppliedCapabilities;
pub use capabilities::AutoToolSearchCapability;
pub use capabilities::BlueprintModel;
pub use capabilities::CLAUDE_TOOL_SEARCH_CAPABILITY_ID;
pub use capabilities::Capability;
pub use capabilities::CapabilityId;
pub use capabilities::CapabilityRegistry;
pub use capabilities::CapabilityRegistryBuilder;
pub use capabilities::CapabilityStatus;
pub use capabilities::ClaudeToolSearchCapability;
pub use capabilities::CollectedCapabilities;
pub use capabilities::CurrentTimeCapability;
pub use capabilities::DECLARATIVE_CAPABILITY_PREFIX;
pub use capabilities::DeleteFileTool;
pub use capabilities::DependencyError;
pub use capabilities::DivideTool;
pub use capabilities::FileSystemCapability;
pub use capabilities::GetCurrentTimeTool;
pub use capabilities::GetForecastTool;
pub use capabilities::GetSessionInfoTool;
pub use capabilities::GetWeatherTool;
pub use capabilities::GrepFilesTool;
pub use capabilities::HUMAN_INTENT_CAPABILITY_ID;
pub use capabilities::HumanIntentCapability;
pub use capabilities::INFINITY_CONTEXT_CAPABILITY_ID;
pub use capabilities::InfinityContextCapability;
pub use capabilities::IntegrationPlugin;
pub use capabilities::ListDirectoryTool;
pub use capabilities::MAX_RESOLVED_CAPABILITIES;
pub use capabilities::MCP_CAPABILITY_PREFIX;
pub use capabilities::McpCapability;
pub use capabilities::MountAccess;
pub use capabilities::MountDirectoryBuilder;
pub use capabilities::MountEntry;
pub use capabilities::MountPoint;
pub use capabilities::MountSource;
pub use capabilities::MultiplyTool;
pub use capabilities::NoopCapability;
pub use capabilities::OPENAI_TOOL_SEARCH_CAPABILITY_ID;
pub use capabilities::OpenAiToolSearchCapability;
pub use capabilities::PlatformManagementCapability;
pub use capabilities::QueryHistoryTool;
pub use capabilities::ReadFileTool;
pub use capabilities::ResearchCapability;
pub use capabilities::ResolvedCapabilities;
pub use capabilities::RiskLevel;
pub use capabilities::SampleDataCapability;
pub use capabilities::SessionCapability;
pub use capabilities::SessionSandboxCapability;
pub use capabilities::SessionSqlDatabaseCapability;
pub use capabilities::SqlExecuteTool;
pub use capabilities::SqlQueryTool;
pub use capabilities::SqlSchemaTool;
pub use capabilities::StatFileTool;
pub use capabilities::StatelessTodoListCapability;
pub use capabilities::SubtractTool;
pub use capabilities::TestMathCapability;
pub use capabilities::TestWeatherCapability;
pub use capabilities::ToolCallHook;
pub use capabilities::ToolDefinitionHook;
pub use capabilities::WriteFileTool;
pub use capabilities::WriteSessionTitleTool;
pub use capabilities::WriteTodosTool;
pub use capabilities::apply_capabilities;
pub use capabilities::collect_capabilities;
pub use capabilities::collect_capabilities_with_configs;
pub use capabilities::compute_features;
pub use capabilities::declarative_capability_id;
pub use capabilities::declarative_capability_info;
pub use capabilities::get_dependencies;
pub use capabilities::hydrate_declarative_capability_config;
pub use capabilities::hydrate_plugin_capability_config;
pub use capabilities::is_declarative_capability;
pub use capabilities::is_mcp_capability;
pub use capabilities::mcp_capability_id;
pub use capabilities::parse_declarative_capability_id;
pub use capabilities::parse_mcp_capability_id;
pub use capabilities::plugin_capability_info;
pub use capabilities::resolve_dependencies;
pub use capabilities::validate_declarative_capability_definition;
pub use capabilities::AttachSkillCapability;
pub use capabilities::SKILL_CAPABILITY_PREFIX;
pub use capabilities::SKILLS_CAPABILITY_ID;
pub use capabilities::SKILLS_DISCOVERY_PATH;
pub use capabilities::SkillInstructions;
pub use capabilities::SkillMeta;
pub use capabilities::SkillSource;
pub use capabilities::SkillsCapability;
pub use capabilities::discover_skills_from_entries;
pub use capabilities::is_skill_capability;
pub use capabilities::parse_skill_capability_id;
pub use capabilities::skill_capability_id;
pub use capabilities::DeclarativeCapabilityDefinition;
pub use capabilities::DeclarativeCapabilityFile;
pub use capabilities::DeclarativeCapabilitySkill;
pub use atoms::ActAtom;
pub use atoms::ActInput;
pub use atoms::ActResult;
pub use atoms::Atom;
pub use atoms::AtomContext;
pub use atoms::ClientSideToolHook;
pub use atoms::ConnectionSetupHook;
pub use atoms::InputAtom;
pub use atoms::InputAtomInput;
pub use atoms::InputAtomResult;
pub use atoms::PostActAction;
pub use atoms::PostActHook;
pub use atoms::PostToolExecHook;
pub use atoms::ReasonAtom;
pub use atoms::ReasonInput;
pub use atoms::ReasonResult;
pub use atoms::ToolCallResult;
pub use capability_types::PLUGIN_CAPABILITY_PREFIX;
pub use capability_types::is_plugin_capability;
pub use capability_types::parse_plugin_capability_id;
pub use capability_types::plugin_capability_id;
pub use agent::Agent;
pub use agent::AgentStatus;
pub use agent::AgentVersion;
pub use agent::AgentVersionChangeKind;
pub use agent::MAX_ADDRESSABLE_NAME_LEN;
pub use agent::generate_agent_public_id;
pub use agent::validate_addressable_name;
pub use agent::validate_agent_public_id;
pub use agent_identity::AgentIdentity;
pub use agent_identity::AgentIdentityStatus;
pub use agent_trigger::AgentTrigger;
pub use agent_trigger::AgentTriggerType;
pub use agent_trigger::ScheduleTriggerConfig;
pub use app::A2aChannelConfig;
pub use app::AgUiChannelConfig;
pub use app::AgUiToolVisibility;
pub use app::AgentVersionPolicy;
pub use app::ApiEndpointChannelConfig;
pub use app::App;
pub use app::AppChannel;
pub use app::AppEndpointAuthConfig;
pub use app::AppEndpointAuthMode;
pub use app::AppEndpointAuthProviderConfig;
pub use app::AppEndpointAuthRequirements;
pub use app::AppStatus;
pub use app::CaptchaProvider;
pub use app::ChannelType;
pub use app::FcpChannelConfig;
pub use app::InvocationSessionMode;
pub use app::PublicChatBranding;
pub use app::PublicChatCaptchaConfig;
pub use app::PublicChatChannelConfig;
pub use app::SessionStrategy;
pub use app::SlackChannelConfig;
pub use app::SlackReplyMode;
pub use ard_attachment::ARD_ATTACHMENT_KV_PREFIX;
pub use ard_attachment::ARD_ATTACHMENT_RESOURCE_KIND;
pub use ard_attachment::ARD_DISCOVERY_KV_PREFIX;
pub use ard_attachment::ArdAttachment;
pub use ard_attachment::ArdAttachmentTarget;
pub use ard_attachment::apply_session_attachments;
pub use ard_attachment::attachment_kv_key;
pub use ard_attachment::load_session_attachments;
pub use ard_attachment::merge_attachment_into_session;
pub use ard_attachment::urn_slug;
pub use capability_dto::AgentCapability;
pub use capability_dto::CapabilityInfo;
pub use context_report::ContextReportContribution;
pub use context_report::ContextReportSection;
pub use context_report::SessionContextReport;
pub use context_report::build_session_context_report;
pub use context_report::build_session_context_report_from_generation;
pub use events::ACT_COMPLETED;
pub use events::ACT_STARTED;
pub use events::ActCompletedData;
pub use events::ActStartedData;
pub use events::CONTEXT_COMPACTED;
pub use events::CONTEXT_COMPACTING;
pub use events::CompactionReason;
pub use events::CompactionStepData;
pub use events::ContextCompactedData;
pub use events::ContextCompactingData;
pub use events::Event;
pub use events::EventBuilder;
pub use events::EventContext;
pub use events::EventData;
pub use events::EventRequest;
pub use events::FILE_WRITTEN;
pub use events::FileWrittenData;
pub use events::INPUT_MESSAGE;
pub use events::InputMessageData;
pub use events::LLM_GENERATION;
pub use events::LlmCompactionInfo;
pub use events::LlmGenerationData;
pub use events::LlmGenerationMetadata;
pub use events::LlmGenerationOutput;
pub use events::LlmRetryInfo;
pub use events::ModelMetadata;
pub use events::OUTPUT_MESSAGE_COMPLETED;
pub use events::OUTPUT_MESSAGE_DELTA;
pub use events::OUTPUT_MESSAGE_REPLACED;
pub use events::OUTPUT_MESSAGE_STARTED;
pub use events::OutputMessageCompletedData;
pub use events::OutputMessageDeltaData;
pub use events::OutputMessageReplacedData;
pub use events::OutputMessageStartedData;
pub use events::REASON_COMPLETED;
pub use events::REASON_ITEM;
pub use events::REASON_RECOVERED;
pub use events::REASON_STARTED;
pub use events::REASON_THINKING_COMPLETED;
pub use events::REASON_THINKING_DELTA;
pub use events::REASON_THINKING_STARTED;
pub use events::ReasonCompletedData;
pub use events::ReasonItemData;
pub use events::ReasonRecoveredData;
pub use events::ReasonStartedData;
pub use events::ReasonThinkingCompletedData;
pub use events::ReasonThinkingDeltaData;
pub use events::ReasonThinkingStartedData;
pub use events::RecoveryMode;
pub use events::SESSION_ACTIVATED;
pub use events::SESSION_IDLED;
pub use events::SESSION_STARTED;
pub use events::SessionActivatedData;
pub use events::SessionIdledData;
pub use events::SessionStartedData;
pub use events::TOOL_CALL_REQUESTED;
pub use events::TOOL_COMPLETED;
pub use events::TOOL_OUTPUT_DELTA;
pub use events::TOOL_PROGRESS;
pub use events::TOOL_STARTED;
pub use events::TURN_CANCELLED;
pub use events::TURN_COMPLETED;
pub use events::TURN_FAILED;
pub use events::TURN_SEALED;
pub use events::TURN_STARTED;
pub use events::TokenUsage;
pub use events::ToolCallRequestedData;
pub use events::ToolCallSummary;
pub use events::ToolCompletedData;
pub use events::ToolOutputDeltaData;
pub use events::ToolProgressData;
pub use events::ToolStartedData;
pub use events::TurnCancelledData;
pub use events::TurnCompletedData;
pub use events::TurnFailedData;
pub use events::TurnSealedData;
pub use events::TurnStartedData;
pub use events::VALID_EVENT_TYPES;
pub use guardrail_checks::CompiledJudgeCheck;
pub use guardrail_checks::GuardrailAction;
pub use guardrail_checks::GuardrailHit;
pub use guardrail_checks::GuardrailMode;
pub use guardrail_checks::GuardrailOnFail;
pub use guardrail_checks::GuardrailRule;
pub use guardrail_checks::GuardrailStage;
pub use guardrail_checks::GuardrailsConfig;
pub use guardrail_checks::MAX_JUDGE_PROMPT_LEN;
pub use guardrail_gallery::DataEgress;
pub use guardrail_gallery::GuardrailGalleryItem;
pub use harness::Harness;
pub use harness::HarnessStatus;
pub use harness::merge_harness;
pub use harness::merge_harness_chain;
pub use leased_resource::LEASED_RESOURCES_FEATURE;
pub use leased_resource::LeasedResource;
pub use leased_resource::LeasedResourceStatus;
pub use leased_resource::UpsertLeasedResource;
pub use mcp_proxy::McpProxyTool;
pub use mcp_proxy::McpToolInvoker;
pub use mcp_proxy::ScopedMcpToolInvoker;
pub use mcp_proxy::build_mcp_proxy_tools;
pub use mcp_server::MCP_PROTOCOL_VERSION_LEGACY;
pub use mcp_server::MCP_PROTOCOL_VERSION_RC;
pub use mcp_server::MCP_PROTOCOL_VERSION_STABLE;
pub use mcp_server::McpContent;
pub use mcp_server::McpError;
pub use mcp_server::McpProtocolMode;
pub use mcp_server::McpServer;
pub use mcp_server::McpServerAuthMode;
pub use mcp_server::McpServerStatus;
pub use mcp_server::McpServerTransportType;
pub use mcp_server::McpToolAnnotations;
pub use mcp_server::McpToolCallParams;
pub use mcp_server::McpToolCallRequest;
pub use mcp_server::McpToolCallResponse;
pub use mcp_server::McpToolCallResult;
pub use mcp_server::McpToolDefinition;
pub use mcp_server::McpToolsListRequest;
pub use mcp_server::McpToolsListResponse;
pub use mcp_server::McpToolsListResult;
pub use mcp_server::ScopedMcpServer;
pub use mcp_server::ScopedMcpServers;
pub use mcp_server::is_mcp_tool;
pub use mcp_server::mcp_oauth_provider_id_for_uuid;
pub use mcp_server::mcp_oauth_session_secret_name;
pub use mcp_server::mcp_tool_name;
pub use mcp_server::merge_scoped_mcp_servers;
pub use mcp_server::normalize_mcp_error_code;
pub use mcp_server::parse_mcp_tool_name;
pub use mcp_server::sanitize_mcp_server_name;
pub use mcp_server::scoped_mcp_servers_is_empty;
pub use organization::ANONYMOUS_USER_EMAIL;
pub use organization::ANONYMOUS_USER_ID;
pub use organization::ANONYMOUS_USER_NAME;
pub use organization::DEFAULT_ORG_ID;
pub use organization::DEFAULT_ORG_PUBLIC_ID;
pub use organization::OrgMembership;
pub use organization::OrgRole;
pub use organization::Organization;
pub use organization::generate_org_public_id;
pub use organization::org_public_id_from_internal;
pub use organization::validate_org_public_id;
pub use payment::MachinePaymentRequest;
pub use payment::MachinePaymentResponse;
pub use payment::PaymentAccount;
pub use payment::PaymentAttempt;
pub use payment::PaymentMethod;
pub use payment::PaymentOwnerType;
pub use payment::PaymentPolicy;
pub use payment::PaymentRail;
pub use payment::PaymentStatus;
pub use principal::Principal;
pub use principal::PrincipalKind;
pub use principal::PrincipalStatus;
pub use principal::PrincipalSummary;
pub use session::Session;
pub use session::SessionParticipant;
pub use session::SessionParticipantKind;
pub use session::SessionParticipantRole;
pub use session::SessionSeedMode;
pub use session::SessionStatus;
pub use session::SubagentStatus;
pub use session_file::FileInfo;
pub use session_file::FileStat;
pub use session_file::GREP_MAX_CONTEXT_LINES;
pub use session_file::GREP_MAX_RETURN_BYTES;
pub use session_file::GrepContextBlock;
pub use session_file::GrepContextLine;
pub use session_file::GrepMatch;
pub use session_file::GrepOptions;
pub use session_file::GrepResult;
pub use session_file::GrepSearchResult;
pub use session_file::InitialFile;
pub use session_file::SessionFile;
pub use session_resource::RegisterSessionResource;
pub use session_resource::SessionResourceEntry;
pub use session_resource::SessionResourceFilter;
pub use session_resource::SessionResourceStatus;
pub use session_sqldb::ColumnSchema;
pub use session_sqldb::DatabaseInfo;
pub use session_sqldb::SessionSqlDbError;
pub use session_sqldb::SessionSqlDbStore;
pub use session_sqldb::SqlExecuteResult;
pub use session_sqldb::SqlQueryResult;
pub use session_sqldb::TableSchema;
pub use session_task::CreateSessionTask;
pub use session_task::NewTaskMessage;
pub use session_task::SessionTask;
pub use session_task::SessionTaskFilter;
pub use session_task::SessionTaskRegistry;
pub use session_task::SessionTaskState;
pub use session_task::SessionTaskUpdate;
pub use session_task::TASK_KIND_AGENT_HANDOFF;
pub use session_task::TASK_KIND_BACKGROUND_TOOL;
pub use session_task::TASK_KIND_EXTERNAL_AGENT;
pub use session_task::TASK_KIND_MONITOR;
pub use session_task::TASK_KIND_SESSION;
pub use session_task::TASK_KIND_SUBAGENT;
pub use session_task::TaskArtifact;
pub use session_task::TaskError;
pub use session_task::TaskExecutor;
pub use session_task::TaskExecutorPlugin;
pub use session_task::TaskInputRequest;
pub use session_task::TaskMessage;
pub use session_task::TaskMessageDirection;
pub use session_task::TaskMessagePart;
pub use session_task::TaskProgress;
pub use session_task::TaskSink;
pub use session_task::TaskWakePolicy;
pub use session_task::apply_task_update;
pub use session_task::find_task_executor;
pub use skill::ParsedSkillMd;
pub use skill::Skill;
pub use skill::SkillContent;
pub use skill::SkillFileEntry;
pub use skill::SkillSourceType;
pub use skill::SkillStatus;
pub use skill::SkillUsage;
pub use skill::SkillValidationResult;
pub use skill::parse_skill_md;
pub use skill::validate_skill_md;
pub use skill::validate_skill_name;
pub use task_observer::ObservingTaskRegistry;
pub use task_observer::TaskTransition;
pub use task_observer::TaskTransitionObserver;
pub use wake_queue::PendingWake;
pub use wake_queue::SessionWakeQueue;
pub use wake_queue::wake_text_for;
pub use audit::AgentAction;
pub use audit::AuditAction;
pub use audit::AuditDomain;
pub use audit::AuditEvent;
pub use audit::AuditEventBuilder;
pub use audit::AuditLogger;
pub use audit::AuditTarget;
pub use audit::ManagementAction;
pub use permissions::Caller;
pub use permissions::DefaultPermissionResolver;
pub use permissions::Permission;
pub use permissions::PermissionResolver;
pub use permissions::Policy;
pub use permissions::PolicyConfigResponse;
pub use permissions::PolicyError;
pub use permissions::ResourceConfigResponse;
pub use permissions::Rule;
pub use permissions::SkillPermissionAction;
pub use permissions::SkillPermissionPattern;
pub use permissions::SkillPermissionRule;
pub use permissions::check_skill_permission;
pub use permissions::evaluate_policies;
pub use permissions::evaluate_policies_with;
pub use permissions::parse_skill_permission_rule;
pub use permissions::role_has_permission;
pub use permissions::role_permissions;
pub use dependency_blocker::DependencyBlocker;
pub use dependency_blocker::detect_dependency_blocker;
pub use deployment::DeploymentGrade;
pub use feature_flags::API_FEATURE_FLAG_DEFINITIONS;
pub use feature_flags::FeatureFlagDefinition;
pub use feature_flags::FeatureFlagMap;
pub use feature_flags::FeatureFlags;
pub use feature_flags::InternalFeatureFlags;

Modules§

agent
agent_identity
agent_trigger
app
ard_attachment
Runtime ARD (Agentic Resource Discovery) attachments.
atoms
audit
background
budget
capabilities
Capabilities Module for Agent Loop
capability_dto
capability_types
channel
command
command_host
config
Shared configuration helpers for Everruns crates.
config_layer
connector
context_report
credential_provider
credential_schema
dependency_blocker
deployment
Deployment grade configuration
driver_helpers
driver_registry
egress
Host-owned outbound network boundary.
email
error
error_reporter
eval
event_listeners
events
exec_tool_result
Shared shaping helpers for human-facing exec tool results.
feature_flags
guardrail_checks
guardrail_gallery
harness
hook_adapter
hook_dispatch
hook_executor
in_memory
in_memory_loop
leased_resource
lifecycle_hooks
llm_conversions
Conversions between core agent-loop domain types and the provider driver types in everruns-provider.
llm_error_hook
llm_retry
llmsim_driver
localization
Backend localization helpers for deterministic platform-authored strings.
mcp_proxy
mcp_server
memory
message
message_filter
Message Filter Abstraction
message_retriever
model
model_profiles
model_router
mount_fs
network_access
observer
openai_protocol
openresponses_protocol
openresponses_types
organization
outline
output_guardrail
path_identity
payment
Machine payment DTOs and internal execution contract.
permissions
platform_definition
Platform definition for embeddable Everruns deployments.
platform_store
plugins
principal
progress_reporting
provider
reporting
Backend-neutral reporting contract.
resource_names
Shared helpers for naming external resources created from user-visible titles.
resource_ownership
runtime_agent
runtime_context
session
session_file
session_path
session_resource
session_sandbox
Session-owned managed sandbox abstractions.
session_schedule
session_sqldb
session_task
skill
stream_accumulator
stream_reconnect
system_allowlist
System-wide outbound allowlist (“green list”).
task_observer
telemetry
tool_fingerprint
Stable tool call/result fingerprints for recent-window loop detection.
tool_narration
Tool narration: backend-authored, human-readable lines for tool calls.
tool_output_sanitizer
tool_types
tools
traits
truncation_info
turn
Turn State Machine - Unified Turn Orchestration
typed_id
url_validation
user_facing_error
user_facing_error_codes
user_facing_error_metadata_keys
Message/event metadata keys used to track error disclosure decisions.
user_hook_types
utility_llm
System utility LLM service.
vector_store
Vendor-neutral vector store abstraction for Knowledge Indexes.
wake_queue
workspace
workspace_roots

Structs§

BuiltinTool
Built-in tool configuration
ClientSideTool
Client-side tool - executed by the client, not the server The server pauses execution and waits for the client to submit results.
CompactRequest
Request for the /v1/responses/compact endpoint
CompactResponse
Response from the /v1/responses/compact endpoint
CompactUsage
Token usage from compact response
CostTier
A pricing tier that activates above a context token threshold. For example, OpenAI charges higher rates for prompts exceeding 200K tokens.
CredentialFormSchema
Describes the form fields and instructions for entering a credential.
DiscoveredModel
Model information discovered from a provider’s list_models API
DriverDescriptor
A registered provider driver: identity, declared services, the credential shape its providers must supply, and per-service factories.
DriverOAuthConfig
A driver’s declared OAuth connect flow.
DriverRegistry
Registry for LLM drivers
EmbedRequest
Request to embed a batch of text strings into dense vectors.
EmbedResponse
Response from an embedding request.
FormField
A single form field.
LlmCallConfig
Configuration for an LLM call
LlmCallConfigBuilder
Builder for LlmCallConfig with fluent API
LlmCompletionMetadata
Metadata about LLM completion
LlmError
LLM provider error with a semantic kind attached by the driver.
LlmMessage
Message format for LLM calls (provider-agnostic)
LlmResponse
Response from an LLM call (non-streaming)
LlmRetryConfig
Configuration for LLM rate limit retry behavior.
LlmStreamError
Structured provider error emitted inside an accepted response stream.
Model
LLM Model entity
ModelCost
Cost information for the model (per million tokens)
ModelLimits
Token limits for the model
ModelModalities
Model modalities for input and output
ModelProfile
LLM Model Profile describing model capabilities Based on models.dev structure (https://models.dev/api.json)
ModelWithProvider
LLM Model with provider info
OpenAIProtocolChatDriver
OpenAI Protocol Chat Driver
OpenResponsesProtocolChatDriver
Provider
LLM Provider entity (API keys never exposed) Note: This is the entity struct, separate from the Provider trait in llm.rs
ProviderConfig
Configuration for creating an LLM provider
ProviderTraceConfig
Configuration for linking from the chat UI to a provider’s observability dashboard (“trace”/“logs”).
RateLimitInfo
Rate limit information extracted from provider response headers
ReasoningEffortConfig
Reasoning effort configuration for a model
ReasoningEffortValue
Named reasoning effort value for UI display
RetryMetadata
Metadata about retry attempts for observability
ToolCall
Tool call from LLM response
ToolHints
Semantic hints describing a tool’s behavioral properties.
ToolResult
Tool execution result
ToolResultImage
Image data returned by a tool alongside text results.
TypedId
A type-safe identifier with a specific prefix
UserFacingError
UserFacingErrorContext

Enums§

AgentLoopError
Errors that can occur during agent loop execution
CompactContent
Content for compact input items
CompactContentPart
Content part for compact input
CompactInputItem
Input item for compact request
CompactOutputItem
Output item from compact response
DeferrablePolicy
Controls whether a tool’s full schema can be deferred (tool_search).
DriverId
LLM provider type identifier.
DriverOAuthFlow
Wire flavor of a driver’s interactive OAuth connect flow.
EmbeddingsDriverError
Error returned by EmbeddingsDriver::embed.
ErrorDisclosure
How much detail about a run-blocking error is shown to session viewers.
FieldType
Input field type for rendering.
FileSystemError
Typed SessionFileSystem error. Implementors may return this (wrapped in anyhow::Error) so classify_fs_error resolves the class without string matching. Each variant carries the human-facing message so the file tools can keep surfacing the same text to the agent.
FileSystemErrorClass
Typed classification of a SessionFileSystem failure.
IdParseError
Error type for ID parsing failures
LlmContentPart
A single content part within a message
LlmErrorKind
Semantic classification of an LLM provider error, assigned by the driver at the provider boundary where the HTTP status and response body are still available. Downstream consumers prefer this over re-parsing error strings; LlmErrorKind::Other falls back to string classification (classify_runtime_error_message) so untyped errors keep working.
LlmMessageContent
Message content - either a simple string or array of content parts
LlmMessageRole
Message role for LLM calls
LlmStreamEvent
Events emitted during LLM streaming
Modality
Modality type (text, image, audio, video)
ModelSource
How the model was added to the system
ModelVendor
Vendor / brand that authored a model. Independent of the provider type that serves it (the same model may be offered by several providers or gateways). Primarily drives UI iconography.
ProviderStatus
LLM provider status
RateLimitType
Type of rate limit that was exceeded
ReasoningEffort
Reasoning effort level for models that support it
ServiceKind
A typed service a provider driver can offer (see specs/providers.md).
SideEffectClass
How many times a tool call may safely be executed given the same inputs.
ToolDefinition
Tool definition in agent configuration
ToolPolicy
Tool policy determines how tool calls are handled
UrlValidationError
Errors from URL safety validation.

Traits§

AuthHeaderProvider
Pluggable authentication-header provider for OpenAI-compatible drivers.
ChatDriver
Trait for LLM drivers
EmbeddingsDriver
Driver trait for text embedding services.
IdMarker
Marker trait for typed ID types
OpenResponsesRequestExtension
Open Responses Protocol Driver (OpenAI implementation)
StoreResultExt
Extension trait that converts any Result<T, E: Display> into Result<T, AgentLoopError> via AgentLoopError::store(e.to_string()).

Functions§

assemble_credential_document
Assemble a submitted credential field map into the single document string that is envelope-encrypted and stored.
classify_fs_error
Classify a SessionFileSystem failure into a FileSystemErrorClass.
classify_runtime_error_message
compact_output_to_messages
Convert CompactResponse output to LlmMessages plus any compaction items
fold_system_messages
Fold every System-role message into a single string, joined in order with blank lines.
from_json
Deserialize a serde_json::Value into T, falling back to T::default() on error.
get_model_profile
Get a model profile by matching provider_type and model_id. Returns None if the id is not in the registry or is not offered under the given provider type.
get_model_vendor
Get the vendor/brand for a model id, or None if it is not in the registry (or not offered under the given provider type).
is_blocked_ip
Check if an IP address is in a blocked range (loopback, private, link-local, CGNAT, documentation, IPv4-mapped IPv6 variants of any of those).
is_provider_quota_message
Provider quota/billing-exhaustion patterns shared by the string classifier and the driver-boundary semantic classifier (LlmErrorKind).
is_usage_limit_message
Subscription/plan usage-limit patterns shared by the string classifier and the transient-retry gate. These recover only at a future reset time (hours away), so unlike an ordinary 429 they must not be retried within the driver backoff window nor collapsed into the “wait a moment” rate-limit copy.
json_val
Convert a serializable value to serde_json::Value, falling back to Value::Null on error.
messages_to_compact_input
Convert a slice of LlmMessages to CompactInputItems
parse_credential_document
Parse a stored credential document back into a typed field map.
parse_usage_limit_reset_at
Extract the absolute reset time (resets_at, unix seconds) from a usage-limit error body when present. Prefers the absolute resets_at field over the relative resets_in_seconds because this classifier is clock-free and callers want a stable timestamp they can render in the viewer’s timezone.
trim_error_chain_prefixes
validate_safe_url
Validate a URL is safe for server-side requests (anti-SSRF).
validate_url_dns_pinned
Validate a URL is safe for server-side requests, including DNS resolution to catch DNS-rebinding attacks (TM-TOOL-018).

Type Aliases§

AgentId
Agent ID
AgentIdentityId
Agent identity ID
AgentVersionId
Immutable Agent Version ID
AppChannelId
App Channel ID
AppId
App ID
BoxedChatDriver
Boxed chat driver for dynamic dispatch
BoxedEmbeddingsDriver
Boxed embeddings driver for dynamic dispatch.
DeclarativeCapabilityId
Declarative Capability ID
DriverFactory
Factory function type for creating chat drivers.
EmbeddingsDriverFactory
Factory function type for creating embeddings drivers.
EvalCaseId
Eval Case ID
EvalId
Eval ID
EvalResultId
Eval Case Result ID
EvalRunId
Eval Run ID
EventId
Event ID
ExecId
Execution ID
HarnessId
Harness ID
ImageId
Image ID
KnowledgeBaseId
Knowledge Base ID (curated org knowledge — see specs/knowledge-bases.md)
KnowledgeEntryId
Knowledge Entry ID (entry inside a Knowledge Base)
LeasedResourceId
Leased resource ID
LlmResponseStream
Type alias for the LLM response stream
McpServerId
MCP Server ID
MemoryId
Memory ID (org-scoped named Memory — see specs/memory.md)
MessageId
Message ID
ModelId
LLM Model ID
NotificationId
Notification ID
OrgId
Organization ID
PaymentAccountId
Payment account ID
PaymentAttemptId
Payment attempt ID
PaymentPolicyId
Payment policy ID
PluginInstallId
Plugin Install ID (see specs/plugins.md)
PluginMarketplaceId
Plugin Marketplace ID (see specs/plugins.md)
PrincipalId
Principal ID
ProviderId
LLM Provider ID
Result
Result type alias for agent loop operations
ScheduleId
Session Schedule ID
SessionId
Session ID
SessionParticipantId
Session Participant ID
SkillId
Skill ID
TriggerId
Agent trigger ID
TurnId
Turn ID
UserFacingErrorFields
WorkspaceId
Workspace ID (org-scoped named Workspace — see specs/workspace.md)