Behaviour and compiler for operation sources.
Operation sources normalize external executable surfaces into
Jidoka.Agent.Spec.Operation data plus one runtime capability. The turn loop
still sees a single operation model.
Summary
Types
@type compiled() :: %{ operations: [Jidoka.Agent.Spec.Operation.t()], capability: Jidoka.Runtime.Capabilities.operation_capability() }
@type source() :: struct()
Callbacks
@callback capability( source(), keyword() ) :: {:ok, Jidoka.Runtime.Capabilities.operation_capability()} | {:error, term()}
@callback operations( source(), keyword() ) :: {:ok, [Jidoka.Agent.Spec.Operation.t()]} | {:error, term()}
Functions
@spec capability( source(), keyword() ) :: {:ok, Jidoka.Runtime.Capabilities.operation_capability()} | {:error, term()}
@spec operations( source(), keyword() ) :: {:ok, [Jidoka.Agent.Spec.Operation.t()]} | {:error, term()}