Skip to main content

runifold_workflow/
lib.rs

1//! Durable, capability-safe workflow and Agent orchestration for Runifold.
2
3mod checkpoint;
4mod error;
5mod execution;
6mod governance;
7mod outcome;
8mod parallel;
9mod race;
10mod step;
11mod store;
12mod task_retention;
13mod tombstone;
14mod wait;
15mod worker;
16mod workflow;
17
18pub use checkpoint::{
19    ParallelBranchCheckpoint, WorkflowCheckpoint, WorkflowCheckpointHistoryLimit,
20    WorkflowCheckpointPhase, WorkflowCheckpointRevision, WorkflowCheckpointState,
21    WorkflowForkCommand, WorkflowForkOutcome, WorkflowForkPolicy, WorkflowLineage,
22    WorkflowResumePolicy,
23};
24pub use error::{WorkflowBuildError, WorkflowError, WorkflowStepError};
25pub use execution::WorkflowFuture;
26pub use governance::{
27    StaticWorkflowTaskGovernanceAuthorizer, WorkflowTaskGovernanceAuthorizationError,
28    WorkflowTaskGovernanceAuthorizationFuture, WorkflowTaskGovernanceAuthorizer,
29    WorkflowTaskGovernanceControlPlane, WorkflowTaskGovernanceError,
30    WorkflowTaskGovernanceObserver, WorkflowTaskGovernanceOutcome,
31    WorkflowTaskGovernancePermission, WorkflowTaskTombstoneArchive,
32    WorkflowTaskTombstoneArchiveBatch, WorkflowTaskTombstoneArchiveBatchId,
33    WorkflowTaskTombstoneArchiveError, WorkflowTaskTombstoneArchiveErrorKind,
34    WorkflowTaskTombstoneArchiveFuture, WorkflowTaskTombstoneArchiveReport,
35};
36pub use outcome::WorkflowOutcome;
37pub use step::{
38    AgentStep, AgentStepOutput, PredicateCondition, StepId, WorkflowCondition, WorkflowStep,
39    WorkflowStepFuture,
40};
41pub use store::{
42    ClaimedWorkflow, InMemoryWorkflowStore, LeaseDuration, SystemWorkflowClock, WorkerId,
43    WorkflowBudgetAuditCursor, WorkflowBudgetAuditEvent, WorkflowBudgetAuditKind,
44    WorkflowBudgetAuditLimit, WorkflowBudgetAuditProjectionId, WorkflowBudgetAuditProjectionLease,
45    WorkflowBudgetForfeitReason, WorkflowBudgetReservationOutcome, WorkflowCancelOutcome,
46    WorkflowClock, WorkflowDisposition, WorkflowLease, WorkflowStore, WorkflowStoreError,
47    WorkflowStoreErrorKind, WorkflowStoreFuture, WorkflowTask, WorkflowTaskCleanupLease,
48    WorkflowTaskCleanupLimit, WorkflowTaskRetention, WorkflowTaskRetentionStore,
49    WorkflowTaskSnapshot, WorkflowTaskStatus, WorkflowTaskTombstone, WorkflowTaskTombstoneCursor,
50    WorkflowTaskTombstoneLimit, WorkflowTenantBudgetPolicy, WorkflowTenantBudgetSnapshot,
51    WorkflowTenantId, WorkflowTenantListLimit, WorkflowTenantPolicy,
52};
53pub use task_retention::{
54    WorkflowTaskCleanupObserver, WorkflowTaskCleanupShard, WorkflowTaskCleanupSupervisor,
55    WorkflowTaskCleanupSupervisorConfig, WorkflowTaskCleanupSupervisorMetricSnapshot,
56    WorkflowTaskCleanupSupervisorMetrics, WorkflowTaskCleanupSupervisorReport,
57};
58pub use tombstone::{
59    WorkflowTaskLegalHold, WorkflowTaskLegalHoldReason, WorkflowTaskTombstoneApprovalInboxItem,
60    WorkflowTaskTombstoneApprovalInboxLimit, WorkflowTaskTombstoneApprovalLease,
61    WorkflowTaskTombstoneApprovalState, WorkflowTaskTombstoneApprovalWindow,
62    WorkflowTaskTombstoneExport, WorkflowTaskTombstoneExportReceipt,
63    WorkflowTaskTombstoneGovernanceStore, WorkflowTaskTombstonePurgeEvidence,
64    WorkflowTaskTombstonePurgeId, WorkflowTaskTombstonePurgeIntent,
65    WorkflowTaskTombstonePurgeLimit, WorkflowTaskTombstoneRejectionReason,
66    WorkflowTaskTombstoneRetention,
67};
68pub use wait::{
69    WorkflowInterruptCommand, WorkflowInterruptDecision, WorkflowInterruptDecisionOutcome,
70    WorkflowInterruptId, WorkflowInterruptOutcome, WorkflowInterruptRequest, WorkflowSignal,
71    WorkflowSignalId, WorkflowSignalName, WorkflowSignalOutcome, WorkflowSignalRetention,
72    WorkflowSignalSnapshot, WorkflowSignalState, WorkflowWait, WorkflowWaitError,
73    WorkflowWaitOutcome, WorkflowWake,
74};
75pub use worker::{
76    SystemWorkflowWorkerSleeper, WorkflowDefinition, WorkflowFailurePolicy, WorkflowRegistry,
77    WorkflowSupervisor, WorkflowSupervisorConfig, WorkflowSupervisorMetricSnapshot,
78    WorkflowSupervisorMetrics, WorkflowSupervisorReport, WorkflowWorker, WorkflowWorkerError,
79    WorkflowWorkerOutcome, WorkflowWorkerSleepFuture, WorkflowWorkerSleeper,
80};
81pub use workflow::{ParallelBranch, Workflow, WorkflowBuilder};
82
83#[cfg(test)]
84mod tests;