Skip to main content

Crate everruns_contracts

Crate everruns_contracts 

Source
Expand description

Shared contracts for the Everruns framework and hosts.

Provider and driver boundaries, capability definitions, model profiles, typed IDs, and shared runtime contracts live here. The default build omits HTTP transport; enable http for the shared protocol drivers and clients. Application authors normally use the same types through everruns.

use everruns_contracts::{CapabilityRef, ModelSpec};
let model = ModelSpec::on("company-gateway", "assistant-v2");
let capability = CapabilityRef::new("vendor.search");
assert_eq!(model.provider.as_str(), "company-gateway");
assert_eq!(capability.id(), "vendor.search");

Re-exportsยง

pub use capability::ActivationSet;
pub use capability::CapabilityError;
pub use capability::CapabilityId;
pub use capability::CapabilityIdIndex;
pub use capability::CapabilityRef;
pub use capability::CapabilitySpec;
pub use capability::CapabilitySpecParts;
pub use capability::GENERIC_HARNESS_NAME;
pub use capability::IntoCapability;
pub use capability::PLUGIN_CAPABILITY_PREFIX;
pub use capability::RESERVED_CAPABILITY_ID_NAMESPACE;
pub use capability::generic_capabilities;
pub use capability::is_plugin_capability;
pub use capability::parse_plugin_capability_id;
pub use capability::plugin_capability_id;
pub use capability::validate_capability_config;
pub use capability::validate_capability_id;
pub use capability::Definition;
pub use capability::json_schema_for;
pub use compact::CompactContent;
pub use compact::CompactContentPart;
pub use compact::CompactInputItem;
pub use compact::CompactOutputItem;
pub use compact::CompactRequest;
pub use compact::CompactResponse;
pub use compact::CompactUsage;
pub use compact::messages_to_compact_input;
pub use credential_provider::CredentialProvider;
pub use credential_provider::EnvCredentialProvider;
pub use credential_provider::ProviderCredentials;
pub use credential_schema::CredentialFormSchema;
pub use credential_schema::assemble_credential_document;
pub use credential_schema::parse_credential_document;
pub use driver_registry::BoxedChatDriver;
pub use driver_registry::BoxedEmbeddingsDriver;
pub use driver_registry::ChatDriver;
pub use driver_registry::DiscoveredModel;
pub use driver_registry::DriverDescriptor;
pub use driver_registry::DriverFactory;
pub use driver_registry::DriverId;
pub use driver_registry::DriverOAuthConfig;
pub use driver_registry::DriverOAuthFlow;
pub use driver_registry::DriverRegistry;
pub use driver_registry::EmbedRequest;
pub use driver_registry::EmbedResponse;
pub use driver_registry::EmbeddingsDriver;
pub use driver_registry::EmbeddingsDriverError;
pub use driver_registry::EmbeddingsDriverFactory;
pub use driver_registry::LlmCallConfig;
pub use driver_registry::LlmCallConfigBuilder;
pub use driver_registry::LlmCompletionMetadata;
pub use driver_registry::LlmContentPart;
pub use driver_registry::LlmResponse;
pub use driver_registry::LlmResponseStream;
pub use driver_registry::LlmStreamError;
pub use driver_registry::LlmStreamEvent;
pub use driver_registry::Message;
pub use driver_registry::MessageContent;
pub use driver_registry::MessageRole;
pub use driver_registry::ProviderConfig;
pub use driver_registry::ProviderMetadata;
pub use driver_registry::ProviderOpaqueContext;
pub use driver_registry::ServiceKind;
pub use driver_registry::fold_system_messages;
pub use error::AgentLoopError;
pub use error::BillingPressureReason;
pub use error::FileSystemError;
pub use error::FileSystemErrorClass;
pub use error::LlmError;
pub use error::LlmErrorKind;
pub use error::Result;
pub use error::StoreResultExt;
pub use error::classify_fs_error;
pub use error::from_json;
pub use error::json_val;
pub use execution_phase::ExecutionPhase;
pub use execution_phase::PhaseSource;
pub use llm_error::RejectedProviderCapability;
pub use llm_retry::LlmRetryConfig;
pub use llm_retry::RateLimitInfo;
pub use llm_retry::RateLimitType;
pub use llm_retry::RetryMetadata;
pub use message::ProviderOpaqueContent;
pub use message::LlmMessage;Deprecated
pub use message::LlmMessageContent;Deprecated
pub use message::LlmMessageRole;Deprecated
pub use model::CostTier;
pub use model::Modality;
pub use model::ModelCost;
pub use model::ModelLimits;
pub use model::ModelModalities;
pub use model::ModelProfile;
pub use model::ModelVendor;
pub use model::ReasoningEffort;
pub use model::ReasoningEffortConfig;
pub use model::ReasoningEffortValue;
pub use model_discovery::DiscoveredProviderModel;
pub use model_discovery::ModelSearchMatch;
pub use model_discovery::ModelSearchResult;
pub use model_discovery::RankedDiscoveredModels;
pub use model_discovery::discover_provider_models;
pub use model_discovery::enrich_with_profiles;
pub use model_discovery::match_models;
pub use model_discovery::normalize_and_enrich;
pub use model_discovery::rank_discovered_models;
pub use model_discovery::search_provider_models;
pub use model_profiles::ModelProfileEntry;
pub use model_profiles::all_profile_entries;
pub use model_profiles::all_profiles;
pub use model_profiles::get_model_profile;
pub use model_profiles::get_model_vendor;
pub use model_profiles::profile_entries_for_provider;
pub use model_profiles::profiles_for_provider;
pub use model_profiles::selected_profiles;
pub use model_profiles::selected_profiles_for_provider;
pub use model_spec::ModelSpec;
pub use model_spec::UnknownProvider;
pub use openai_wire::OpenAiWireError;
pub use provider::ProviderTraceConfig;
pub use reasoning::ReasoningContentPart;
pub use reasoning::ReasoningText;
pub use runtime_provider::BearerAuth;
pub use runtime_provider::Provider;
pub use runtime_provider::ProviderAuth;
pub use runtime_provider::ProviderAuthRequest;
pub use runtime_provider::ProviderEndpoint;
pub use runtime_provider::ProviderKey;
pub use runtime_provider::ProviderRegistry;
pub use runtime_provider::ResolvedProviderRequest;
pub use runtime_provider::RuntimeProvider;
pub use runtime_provider::RuntimeProviderRegistry;
pub use runtime_provider::StaticHeaderAuth;
pub use tool_approval_types::APPROVE_TOOL_CALL_TOOL;
pub use tool_approval_types::TOOL_APPROVAL_CALL_ID_PREFIX;
pub use tool_approval_types::TOOL_APPROVAL_REQUIRED_CODE;
pub use tool_approval_types::TOOL_ARGUMENTS_PREVIEW_BYTES;
pub use tool_approval_types::ToolApprovalRequired;
pub use tool_approval_types::preview_tool_arguments;
pub use tool_types::ASK_USER_TOOL_NAME;
pub use tool_types::BuiltinTool;
pub use tool_types::CONFIRM_URL_ELICITATION_TOOL;
pub use tool_types::ClientSideTool;
pub use tool_types::ConnectionRequired;
pub use tool_types::ConnectionRequiredSubject;
pub use tool_types::DeferrablePolicy;
pub use tool_types::FORM_ELICITATION_CALL_ID_PREFIX;
pub use tool_types::FORM_ELICITATION_REQUIRED_CODE;
pub use tool_types::FormElicitationRequired;
pub use tool_types::MCP_ELICITATION_ARGUMENT;
pub use tool_types::SideEffectClass;
pub use tool_types::ToolCall;
pub use tool_types::ToolDefinition;
pub use tool_types::ToolHints;
pub use tool_types::ToolPolicy;
pub use tool_types::ToolResult;
pub use tool_types::ToolResultImage;
pub use tool_types::URL_ELICITATION_REQUIRED_CODE;
pub use tool_types::UrlElicitationRequired;
pub use tool_types::unattended_ask_user_result;
pub use turn_collector::CollectedTurn;
pub use turn_collector::TurnLimits;
pub use turn_collector::TurnTiming;
pub use turn_collector::collect_turn;
pub use turn_collector::limit_stream;
pub use url_validation::UrlValidationError;
pub use url_validation::is_blocked_ip;
pub use url_validation::validate_safe_url;
pub use url_validation::validate_url_dns_pinned;
pub use user_facing_error::ErrorDisclosure;
pub use user_facing_error::UserFacingError;
pub use user_facing_error::UserFacingErrorContext;
pub use user_facing_error::UserFacingErrorFields;
pub use user_facing_error::classify_runtime_error_message;
pub use user_facing_error::codes as user_facing_error_codes;
pub use user_facing_error::is_provider_quota_message;
pub use user_facing_error::is_usage_limit_message;
pub use user_facing_error::metadata_keys as user_facing_error_metadata_keys;
pub use user_facing_error::parse_usage_limit_reset_at;
pub use user_facing_error::trim_error_chain_prefixes;
pub use schemars;
pub use serde;
pub use serde_json;

Modulesยง

background_call
Durable hooks for provider-side background responses (EVE-1134).
capability
The neutral Everruns capability contract (EVE-873).
compact
Transport-neutral native compaction request and response contracts.
connector
credential_provider
credential_schema
decision_driver
Decision drivers: the vendor seam behind DecisionsService.
decisions
System decisions.
driver_registry
error
execution_phase
Execution phase for assistant messages in multi-step tool-calling flows.
form_elicitation_types
Wire types for an MCP serverโ€™s form mode elicitation, as it crosses from the MCP executor to the engine and the answer API.
hosted_mcp
Credentials for remote MCP servers OpenAI calls on the agentโ€™s behalf (EVE-1115).
knowledge_store
Hosted knowledge retrieval service contracts.
llm_error
How a provider failure is classified, and what is preserved of it.
llm_retry
llm_telemetry
Structured logs for LLM edge cases we want to measure before changing.
message
The provider-agnostic message a driver sends, and what it is made of.
model
Provider-neutral model profile values.
model_discovery
Provider model discovery and display ranking.
model_profile_data
Model profile metadata and the offline registry, keyed by provider wire ID. Model identity, capability metadata, and the offline profile registry.
model_profiles
model_spec
Credential-free model selection.
native_async
Native asynchronous calls are pending provider exchanges, not background-run handles.
native_computer
Native provider computer tools (EVE-1133, computer use phase 2).
openai_compat
OpenAI model constraints checked before a request reaches the network.
openai_computer
OpenAI Responses computer tool wire mapping (EVE-1133).
openai_hosted_tools
OpenAI hosted (provider-executed) tools for the Responses API.
openai_wire
The OpenAI chat-completions JSON shapes, as values Everruns can read and write.
openresponses_types
provider
reasoning
Provider reasoning artifacts.
reasoning_updates
Conversation-scoped Astra configuration, distinct from the request baseline.
rt
Portable async runtime primitives: time, timers and task spawning.
runtime_provider
Runtime providers: service identity, endpoint, authentication, and wire driver.
sandbox_checkpoint
Logical sandbox and authoritative workspace-checkpoint contracts.
secret_scrub
Value-pattern credential scrubbing shared by every path that publishes free-form strings: eval/ATIF exports (server) and the executed arguments on tool.completed (engine). One pattern list, so a new credential shape is covered everywhere at once.
session_sandbox
Provider-neutral managed session sandbox contracts.
session_sqldb
slack_action
Session-bound Slack effects; credentials stay with the control plane. The seam a Slack-native capability acts through (EVE-1024).
stream_accumulator
stream_event
Stream events and completion metadata every chat driver produces.
structured_output
Provider-neutral structured output: ask the model for a reply that validates against a JSON Schema, enforced by the provider rather than by prompting for JSON and hoping.
tool_approval_types
Wire types for a tool call parked on a hard approval gate, as it crosses from the tool_approval capability to the engine and the answer API.
tool_schema_compat
Provider-specific JSON Schema compatibility at the LLM request boundary.
tool_types
tools
Tool outcomes shared by runtimes and provider services.
turn_collector
Collecting a provider stream into one finished turn.
typed_id
url_validation
user_facing_error
vector_store
Vendor-neutral vector store abstraction for Knowledge Indexes.

Attribute Macrosยง

async_trait