Agentic.Persistence.Transcript behaviour (agentic v0.2.2)

Copy Markdown

Behaviour for append-only session event logging.

The :local implementation writes JSONL files to <workspace>/.agentic/sessions/<session_id>.jsonl.

Summary

Types

session_summary()

@type session_summary() :: %{
  session_id: String.t(),
  workspace: String.t(),
  event_count: non_neg_integer(),
  first_event_at: DateTime.t() | nil,
  last_event_at: DateTime.t() | nil
}

Callbacks

append(session_id, event, opts)

@callback append(session_id :: String.t(), event :: map(), opts :: keyword()) ::
  :ok | {:error, term()}

list_sessions(workspace, opts)

@callback list_sessions(workspace :: String.t(), opts :: keyword()) ::
  {:ok, [session_summary()]} | {:error, term()}

load(session_id, opts)

@callback load(session_id :: String.t(), opts :: keyword()) ::
  {:ok, [map()]} | {:error, :not_found} | {:error, term()}

load_since(session_id, after_turn, opts)

@callback load_since(session_id :: String.t(), after_turn :: integer(), opts :: keyword()) ::
  {:ok, [map()]} | {:error, term()}