Skip to main content

Crate everruns_provider

Crate everruns_provider 

Source
Expand description

Lean provider and LLM abstractions shared by the Everruns Framework and provider crates.

This crate owns credential-free model identity, the ChatDriver boundary, provider assembly, shared protocol drivers, stream/retry helpers, model profiles, typed IDs, credential schemas, and the LLM error taxonomy. It is a focused implementation crate in the Everruns ecosystem; application authors normally use its re-exports through everruns.

§Example

use everruns_provider::ModelSpec;

let model = ModelSpec::on("company-gateway", "assistant-v2");
assert_eq!(model.provider.as_str(), "company-gateway");
assert_eq!(model.model, "assistant-v2");

Re-exports§

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::LlmMessage;
pub use driver_registry::LlmMessageContent;
pub use driver_registry::LlmMessageRole;
pub use driver_registry::LlmResponse;
pub use driver_registry::LlmResponseStream;
pub use driver_registry::LlmStreamError;
pub use driver_registry::LlmStreamEvent;
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::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 llm_retry::LlmRetryConfig;
pub use llm_retry::RateLimitInfo;
pub use llm_retry::RateLimitType;
pub use llm_retry::RetryMetadata;
pub use model::CostTier;
pub use model::Modality;
pub use model::Model;
pub use model::ModelCost;
pub use model::ModelLimits;
pub use model::ModelModalities;
pub use model::ModelProfile;
pub use model::ModelSource;
pub use model::ModelVendor;
pub use model::ModelWithProvider;
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::list_openai_compatible_models;
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::get_model_profile;
pub use model_profiles::get_model_vendor;
pub use model_spec::ModelSpec;
pub use model_spec::UnknownProvider;
pub use openai_protocol::OpenAIProtocolChatDriver;
pub use openresponses_protocol::CompactContent;
pub use openresponses_protocol::CompactContentPart;
pub use openresponses_protocol::CompactInputItem;
pub use openresponses_protocol::CompactOutputItem;
pub use openresponses_protocol::CompactRequest;
pub use openresponses_protocol::CompactResponse;
pub use openresponses_protocol::CompactUsage;
pub use openresponses_protocol::OpenResponsesProtocolChatDriver;
pub use openresponses_protocol::OpenResponsesRequestExtension;
pub use openresponses_protocol::messages_to_compact_input;
pub use provider::Provider as ProviderRecord;
pub use provider::ProviderStatus;
pub use provider::ProviderTraceConfig;
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_types::BuiltinTool;
pub use tool_types::ClientSideTool;
pub use tool_types::DeferrablePolicy;
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 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;

Modules§

credential_schema
driver_helpers
driver_registry
error
execution_phase
Execution phase for assistant messages in multi-step tool-calling flows.
llm_retry
model
model_discovery
Provider model discovery and display ranking.
model_profiles
model_spec
Credential-free model selection.
openai_protocol
openresponses_protocol
openresponses_types
provider
runtime_provider
Runtime providers: service identity, endpoint, authentication, and wire driver.
stream_accumulator
stream_reconnect
tool_schema_compat
Provider-specific JSON Schema compatibility at the LLM request boundary.
tool_types
typed_id
url_validation
user_facing_error