pub use acativa::workflow::dispatch;
pub mod analysis;
pub mod compile;
pub mod diagnostic;
pub mod ir;
pub mod machine;
pub mod strategy;
pub mod syntax;
pub use analysis::{
AnalyzedWorkflow, WorkflowValidation, WorkflowValidationFailure, analyze,
compile_workflow_source, compile_workflow_value, validate_workflow_value,
};
pub use compile::CompiledWorkflow;
pub use diagnostic::{
PreflightDiagnostic, WorkflowDiagnosticActualKind, WorkflowDiagnosticCode,
WorkflowDiagnosticExpected, WorkflowDiagnosticRecovery, WorkflowDiagnosticStage,
};
pub use dispatch::{
ClaimLease, ClaimVerdict, CompletionVerdict, DispatchDecision, DispatchGate, DispatchIntent,
DispatchRecipient, DispatchRefusal, EffectCompletion, EffectProgress, RecoveryVerdict,
SuccessorAdmission, SuccessorEdge, SuccessorGate, SuccessorRefusal, claim_effect,
recover_claim, settle_effect,
};
pub use ir::*;
pub use machine::{
CommandKind, CommandStatus, ReducerEvent, ReducerOutput, RunCommand, RunSnapshot, reduce,
};
pub use strategy::{
ASSISTANT_TEMPORARY_DEFINITION_PREFIX, BindingCandidate, BindingValue, StrategyAuthorization,
StrategyDefinition, StrategyDefinitionSummary, StrategyDiagnostic, StrategyError,
StrategyErrorCode, StrategyProjection,
};
pub use syntax::{ParsedWorkflow, parse};
pub const WORKFLOW_SCHEMA_VERSION: &str = "licoup.adaptive-flywheel.workflow.v1";
pub(crate) fn workflow_schema() -> SchemaId {
SchemaId::new(WORKFLOW_SCHEMA_VERSION)
}
pub use acativa::SchemaId;
pub const MAX_ACTIVE_EFFECTS: usize = acativa::MAX_ACTIVE_EFFECTS;
pub const MAX_GRAPH_STATES: usize = acativa::MAX_GRAPH_STATES;
pub const MAX_GRAPH_TRANSITIONS: usize = acativa::MAX_GRAPH_TRANSITIONS;
pub const MAX_BINDING_SLOTS: usize = acativa::MAX_BINDING_SLOTS;
pub const MAX_RUNTIME_REQUIREMENTS: usize = acativa::MAX_RUNTIME_REQUIREMENTS;
pub const MAX_WORKSET_ITEMS: usize = acativa::MAX_WORKSET_ITEMS;
pub const MAX_RETRY_ATTEMPTS: u8 = acativa::MAX_RETRY_ATTEMPTS;
pub fn compile_workflow(
definition: WorkflowDefinition,
) -> Result<CompiledWorkflow, WorkflowValidationFailure> {
acativa::compile_workflow(definition, &workflow_schema())
.map_err(WorkflowValidationFailure::from)
}