Skip to main content

runifold_model/
lib.rs

1//! Provider-neutral model protocol and streaming primitives.
2
3mod artifact;
4mod capability;
5mod capability_catalog;
6mod circuit;
7mod content;
8mod error;
9mod invocation;
10mod media;
11mod request;
12mod response;
13mod retry;
14mod router;
15mod runtime_profile;
16mod stream;
17mod structured;
18
19pub use capability::{
20    CapabilityAudit, CapabilityAuditEntry, FeatureSupport, ModelCapabilities, SupportLevel,
21};
22pub use capability_catalog::ModelCapabilityCatalog;
23pub use circuit::{
24    CircuitBreakerConfig, CircuitBreakerConfigError, CircuitState, ModelRouteHealth, RouterClock,
25    SystemRouterClock,
26};
27pub use content::{
28    Citation, ContentPart, MediaSource, Message, ProviderData, ReasoningPart, Role, ToolCall,
29    ToolResult,
30};
31pub use error::{ModelError, ModelErrorKind};
32pub use invocation::{Model, ModelCallContext, ModelEventStream, ModelFuture, ProviderModel};
33pub use media::{
34    GeneratedImage, ImageFormat, ImageGenerationModel, ImageGenerationRequest,
35    ImageGenerationResponse, SpeechFormat, SpeechModel, SpeechRequest, SpeechResponse,
36    TranscriptionModel, TranscriptionRequest, TranscriptionResponse,
37};
38pub use request::{
39    FeaturePolicy, GenerationOptions, ModelRef, ModelRequest, OutputFormat, ProviderToolSpec,
40    ResponseMode, ToolChoice, ToolSpec,
41};
42pub use response::{FinishReason, ModelResponse, ModelUsage, ModelWarning};
43pub use retry::{
44    ModelRetryPolicy, ModelRetryPolicyError, RetryJitter, RouterSleepFuture, RouterSleeper,
45    SystemRouterSleeper,
46};
47pub use router::{
48    ModelFallbackPolicy, ModelRoute, ModelRouter, ModelRouterBuildError, ModelRouterBuilder,
49};
50pub use runtime_profile::{
51    BatchProfile, InteractiveProfile, ProductionProfile, ProviderRuntimeProfile,
52    RuntimeProfilePreset,
53};
54pub use stream::{ContentBlockKind, ModelStreamAccumulator, ModelStreamEvent, ProviderEvent};
55pub use structured::{StructuredOutputError, StructuredOutputErrorKind};
56
57/// Namespaced extension fields.
58pub type ExtensionMap = std::collections::BTreeMap<String, serde_json::Value>;
59pub use artifact::{
60    Artifact, ArtifactError, ArtifactFuture, ArtifactPage, ArtifactRef, ArtifactResolvingModel,
61    ArtifactScope, ArtifactStore, ArtifactWrite, DEFAULT_MAX_ARTIFACT_BYTES, InMemoryArtifactStore,
62    MAX_ARTIFACT_IDEMPOTENCY_KEY_BYTES, MAX_ARTIFACT_NAME_BYTES, MAX_ARTIFACT_PAGE_SIZE,
63};