1pub use acativa::workflow::dispatch;
16
17pub mod analysis;
18pub mod compile;
19pub mod diagnostic;
20pub mod ir;
21pub mod machine;
22pub mod strategy;
23pub mod syntax;
24
25pub use analysis::{
26 AnalyzedWorkflow, WorkflowValidation, WorkflowValidationFailure, analyze,
27 compile_workflow_source, compile_workflow_value, validate_workflow_value,
28};
29pub use compile::CompiledWorkflow;
30pub use diagnostic::{
31 PreflightDiagnostic, WorkflowDiagnosticActualKind, WorkflowDiagnosticCode,
32 WorkflowDiagnosticExpected, WorkflowDiagnosticRecovery, WorkflowDiagnosticStage,
33};
34pub use dispatch::{
35 ClaimLease, ClaimVerdict, CompletionVerdict, DispatchDecision, DispatchGate, DispatchIntent,
36 DispatchRecipient, DispatchRefusal, EffectCompletion, EffectProgress, RecoveryVerdict,
37 SuccessorAdmission, SuccessorEdge, SuccessorGate, SuccessorRefusal, claim_effect,
38 recover_claim, settle_effect,
39};
40pub use ir::*;
41pub use machine::{
42 CommandKind, CommandStatus, ReducerEvent, ReducerOutput, RunCommand, RunSnapshot, reduce,
43};
44pub use strategy::{
45 ASSISTANT_TEMPORARY_DEFINITION_PREFIX, BindingCandidate, BindingValue, StrategyAuthorization,
46 StrategyDefinition, StrategyDefinitionSummary, StrategyDiagnostic, StrategyError,
47 StrategyErrorCode, StrategyProjection,
48};
49pub use syntax::{ParsedWorkflow, parse};
50
51pub const WORKFLOW_SCHEMA_VERSION: &str = "licoup.adaptive-flywheel.workflow.v1";
55
56pub(crate) fn workflow_schema() -> SchemaId {
58 SchemaId::new(WORKFLOW_SCHEMA_VERSION)
59}
60
61pub use acativa::SchemaId;
62
63pub const MAX_ACTIVE_EFFECTS: usize = acativa::MAX_ACTIVE_EFFECTS;
64pub const MAX_GRAPH_STATES: usize = acativa::MAX_GRAPH_STATES;
65pub const MAX_GRAPH_TRANSITIONS: usize = acativa::MAX_GRAPH_TRANSITIONS;
66pub const MAX_BINDING_SLOTS: usize = acativa::MAX_BINDING_SLOTS;
67pub const MAX_RUNTIME_REQUIREMENTS: usize = acativa::MAX_RUNTIME_REQUIREMENTS;
68pub const MAX_WORKSET_ITEMS: usize = acativa::MAX_WORKSET_ITEMS;
69pub const MAX_RETRY_ATTEMPTS: u8 = acativa::MAX_RETRY_ATTEMPTS;
70
71pub fn compile_workflow(
74 definition: WorkflowDefinition,
75) -> Result<CompiledWorkflow, WorkflowValidationFailure> {
76 acativa::compile_workflow(definition, &workflow_schema())
77 .map_err(WorkflowValidationFailure::from)
78}