Skip to main content

runifold_core/
lib.rs

1//! Stable runtime-kernel primitives for Runifold.
2//!
3//! This crate deliberately contains no model provider, network transport,
4//! agent loop, or external protocol implementation.
5
6mod budget;
7mod cancellation;
8mod capability;
9mod checkpoint;
10mod context;
11mod effect;
12mod error;
13mod event;
14mod id;
15mod journal;
16mod recorder;
17
18pub use budget::{Budget, BudgetExceeded, BudgetReservation, BudgetResource, BudgetTracker, Usage};
19pub use cancellation::CancellationToken;
20pub use capability::{CapabilityDescriptor, CapabilityKind, CapabilitySet, EffectClass, RiskLevel};
21pub use checkpoint::{
22    Checkpoint, CheckpointError, CheckpointErrorKind, CheckpointStore, InMemoryCheckpointStore,
23};
24pub use context::{
25    AuthorityAmplification, BudgetReservationMismatch, ChildRunError, Metadata, RunContext,
26};
27pub use effect::{EffectKind, EffectRequest};
28pub use error::{RetrySafety, RunError, RunErrorKind};
29pub use event::{
30    BudgetEvent, ChildEvent, DomainEvent, EffectEvent, EventFactory, EventMeta, LifecycleEvent,
31    RunEvent, RunEventKind,
32};
33pub use id::{CapabilityId, CheckpointId, EffectId, EventId, InvocationId, RunId};
34pub use journal::{InMemoryJournal, Journal, JournalError};
35pub use recorder::RunRecorder;
36/// Monotonic runtime clock on native targets.
37#[cfg(not(target_arch = "wasm32"))]
38pub use std::time::Instant;
39/// Monotonic runtime clock backed by the browser performance clock.
40#[cfg(target_arch = "wasm32")]
41pub use web_time::Instant;