Duck-typed SessionStore adapter contract and dispatcher.
Adapters are ordinary structs or modules. Struct adapters implement
append(store, key, entries) and load(store, key). Module-only adapters may
implement append(key, entries) and load(key). Optional methods are probed
before use.
Summary
Types
Callbacks
@callback append(term(), ClaudeAgentSDK.SessionStore.Key.t(), [entry()]) :: :ok | {:error, term()}
@callback delete(term(), ClaudeAgentSDK.SessionStore.Key.t()) :: :ok | {:error, term()}
@callback list_session_summaries(term(), String.t()) :: {:ok, [summary_entry()]} | [summary_entry()] | {:error, term()}
@callback list_sessions(term(), String.t()) :: {:ok, [list_entry()]} | [list_entry()] | {:error, term()}
@callback list_subkeys(term(), ClaudeAgentSDK.SessionStore.Key.t()) :: {:ok, [String.t()]} | [String.t()] | {:error, term()}
@callback load(term(), ClaudeAgentSDK.SessionStore.Key.t()) :: {:ok, [entry()] | nil} | [entry()] | nil | {:error, term()}