1pub mod credential_schema;
20pub mod driver_helpers;
21pub mod driver_registry;
22pub mod error;
23pub mod execution_phase;
24pub mod llm_retry;
25pub mod model;
26pub mod model_discovery;
27pub mod model_profiles;
28pub mod openai_protocol;
29pub mod openresponses_protocol;
30pub mod openresponses_types;
31pub mod provider;
32pub mod stream_accumulator;
33pub mod stream_reconnect;
34pub mod tool_types;
35pub mod typed_id;
36pub mod url_validation;
37pub mod user_facing_error;
38
39pub use credential_schema::{
48 CredentialFormSchema, assemble_credential_document, parse_credential_document,
49};
50pub use driver_registry::{
51 BoxedChatDriver, BoxedEmbeddingsDriver, ChatDriver, DiscoveredModel, DriverDescriptor,
52 DriverFactory, DriverId, DriverOAuthConfig, DriverOAuthFlow, DriverRegistry, EmbedRequest,
53 EmbedResponse, EmbeddingsDriver, EmbeddingsDriverError, EmbeddingsDriverFactory, LlmCallConfig,
54 LlmCallConfigBuilder, LlmCompletionMetadata, LlmContentPart, LlmMessage, LlmMessageContent,
55 LlmMessageRole, LlmResponse, LlmResponseStream, LlmStreamError, LlmStreamEvent, ProviderConfig,
56 ProviderOpaqueContext, ServiceKind, fold_system_messages,
57};
58pub use error::{
59 AgentLoopError, FileSystemError, FileSystemErrorClass, LlmError, LlmErrorKind, Result,
60 StoreResultExt, classify_fs_error, from_json, json_val,
61};
62pub use execution_phase::ExecutionPhase;
63pub use llm_retry::{LlmRetryConfig, RateLimitInfo, RateLimitType, RetryMetadata};
64pub use model::{
65 CostTier, Modality, Model, ModelCost, ModelLimits, ModelModalities, ModelProfile, ModelSource,
66 ModelVendor, ModelWithProvider, ReasoningEffort, ReasoningEffortConfig, ReasoningEffortValue,
67};
68pub use model_discovery::{
69 DiscoveredProviderModel, RankedDiscoveredModels, discover_provider_models,
70 enrich_with_profiles, list_openai_compatible_models, normalize_and_enrich,
71 rank_discovered_models,
72};
73pub use model_profiles::{get_model_profile, get_model_vendor};
74pub use openai_protocol::{AuthHeaderProvider, OpenAIProtocolChatDriver};
75pub use openresponses_protocol::{
76 CompactContent, CompactContentPart, CompactInputItem, CompactOutputItem, CompactRequest,
77 CompactResponse, CompactUsage, OpenResponsesProtocolChatDriver, OpenResponsesRequestExtension,
78 messages_to_compact_input,
79};
80pub use provider::{Provider, ProviderStatus, ProviderTraceConfig};
81pub use tool_types::{
82 BuiltinTool, ClientSideTool, DeferrablePolicy, SideEffectClass, ToolCall, ToolDefinition,
83 ToolHints, ToolPolicy, ToolResult, ToolResultImage,
84};
85pub use url_validation::{
86 UrlValidationError, is_blocked_ip, validate_safe_url, validate_url_dns_pinned,
87};
88pub use user_facing_error::{
89 ErrorDisclosure, UserFacingError, UserFacingErrorContext, UserFacingErrorFields,
90 classify_runtime_error_message, codes as user_facing_error_codes, is_provider_quota_message,
91 is_usage_limit_message, metadata_keys as user_facing_error_metadata_keys,
92 parse_usage_limit_reset_at, trim_error_chain_prefixes,
93};