Runtime boundary for evaluating declared agent controls.
Controls are executable code, so they live in the runtime shell rather than the pure Runic workflow steps.
Summary
Types
@type boundary_control() :: Jidoka.Agent.Spec.Controls.Input.t() | Jidoka.Agent.Spec.Controls.Output.t()
@type operation_control() :: Jidoka.Agent.Spec.Controls.Operation.t()
Functions
@spec run_input_controls(Jidoka.Turn.State.t()) :: {:ok, Jidoka.Turn.State.t()} | {:error, term()}
@spec run_operation_controls(Jidoka.Turn.State.t(), Jidoka.Effect.Intent.t()) :: {:ok, Jidoka.Turn.State.t()} | {:interrupt, Jidoka.Review.Interrupt.t(), Jidoka.Turn.State.t()} | {:error, term()}
@spec run_output_controls(Jidoka.Turn.State.t()) :: {:ok, Jidoka.Turn.State.t()} | {:error, term()}