Jidoka.Runtime.AgentServerState (Jidoka v0.8.0-beta.1)

Copy Markdown View Source

Formal Jidoka state contract stored inside a process-hosted Jido agent.

Jido.AgentServer expects conventional top-level fields like :status, :last_answer, and :error. Jidoka keeps those fields for Jido compatibility and stores its typed turn/runtime state under :jidoka.

Summary

Types

t()

@type t() :: %Jidoka.Runtime.AgentServerState{
  agent_state: term(),
  error: nil | nil | any(),
  metadata: map(),
  request_id: nil | nil | binary(),
  result: nil | nil | term(),
  snapshot: nil | nil | term(),
  status: :idle | :running | :completed | :hibernated | :failed
}

Functions

completed(result, request)

@spec completed(Jidoka.Turn.Result.t(), Jidoka.Turn.Request.t()) :: t()

current_agent_state(jido_state)

@spec current_agent_state(map()) :: Jidoka.Agent.State.t()

failed(reason, agent_state \\ Agent.State.new!(), context \\ %{})

@spec failed(term(), Jidoka.Agent.State.t(), keyword() | map()) :: t()

from_input(state)

@spec from_input(t() | keyword() | map() | nil) :: {:ok, t()} | {:error, term()}

from_jido_state(jido_state)

@spec from_jido_state(map()) :: {:ok, t()} | {:error, term()}

from_jido_state!(jido_state)

@spec from_jido_state!(map()) :: t()

hibernated(snapshot, request)

new(attrs \\ [])

@spec new(keyword() | map()) :: {:ok, t()} | {:error, term()}

new!(attrs \\ [])

@spec new!(keyword() | map()) :: t()

schema()

@spec schema() :: Zoi.schema()

state_key()

@spec state_key() :: atom()

to_jido_state(state)

@spec to_jido_state(t()) :: map()

to_run_result(state)

@spec to_run_result(t()) ::
  {:ok, Jidoka.Turn.Result.t()}
  | {:hibernate, Jidoka.Runtime.AgentSnapshot.t()}
  | {:error, term()}