Skip to main content

runifold_model/
lib.rs

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