Jidoka.Operation.Source behaviour (Jidoka v0.8.0-beta.1)

Copy Markdown View Source

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

compiled()

@type compiled() :: %{
  operations: [Jidoka.Agent.Spec.Operation.t()],
  capability: Jidoka.Runtime.Capabilities.operation_capability()
}

source()

@type source() :: struct()

Callbacks

capability(source, keyword)

@callback capability(
  source(),
  keyword()
) ::
  {:ok, Jidoka.Runtime.Capabilities.operation_capability()} | {:error, term()}

operations(source, keyword)

@callback operations(
  source(),
  keyword()
) :: {:ok, [Jidoka.Agent.Spec.Operation.t()]} | {:error, term()}

Functions

capability(source, opts \\ [])

@spec capability(
  source(),
  keyword()
) ::
  {:ok, Jidoka.Runtime.Capabilities.operation_capability()} | {:error, term()}

compile(sources, opts \\ [])

@spec compile(
  [source()] | source(),
  keyword()
) :: {:ok, compiled()} | {:error, term()}

operations(source, opts \\ [])

@spec operations(
  source(),
  keyword()
) :: {:ok, [Jidoka.Agent.Spec.Operation.t()]} | {:error, term()}