Behaviour and delegator for harness session storage.
Store implementations persist Jidoka.Harness.Session data. They should not
know about provider clients, process state, or private Runic internals.
Summary
Types
Callbacks
@callback claim_session(String.t(), Jidoka.Turn.Request.t(), keyword()) :: {:ok, Jidoka.Harness.Session.t()} | {:error, term()}
@callback get_session( String.t(), keyword() ) :: {:ok, Jidoka.Harness.Session.t()} | {:error, term()}
@callback list_sessions(keyword()) :: {:ok, [Jidoka.Harness.Session.t()]} | {:error, term()}
@callback put_session( Jidoka.Harness.Session.t(), keyword() ) :: {:ok, Jidoka.Harness.Session.t()} | {:error, term()}
Functions
@spec claim_session(store(), String.t(), Jidoka.Turn.Request.t()) :: {:ok, Jidoka.Harness.Session.t()} | {:error, term()}
@spec get_session(store(), String.t()) :: {:ok, Jidoka.Harness.Session.t()} | {:error, term()}
@spec list_sessions(store()) :: {:ok, [Jidoka.Harness.Session.t()]} | {:error, term()}
@spec pending_reviews(store()) :: {:ok, [Jidoka.Review.Request.t()]} | {:error, term()}
@spec put_session(store(), Jidoka.Harness.Session.t()) :: {:ok, Jidoka.Harness.Session.t()} | {:error, term()}