Vibe.Session.Store (vibe v0.2.3)

Copy Markdown View Source

Durable SQLite-backed sessions for dialogs, tool events, eval state, and usage.

Summary

Functions

all_events()

@spec all_events() :: [Vibe.Trajectory.t()]

append(event)

@spec append(Vibe.Trajectory.t()) :: :ok | {:error, term()}

append_eval_state(binding, env, opts)

@spec append_eval_state(Code.binding(), Macro.Env.t(), keyword()) ::
  :ok | {:error, term()}

append_event(event, seq)

@spec append_event(Vibe.Event.t(), non_neg_integer()) :: :ok | {:error, term()}

append_events(events, opts \\ [])

@spec append_events(
  [{non_neg_integer(), Vibe.Event.t()}],
  keyword()
) :: :ok | {:error, term()}

append_trajectory(type, data \\ %{}, opts \\ [])

@spec append_trajectory(atom(), map(), keyword()) :: Vibe.Trajectory.t()

branch(source_session_id, up_to_seq, branch_id)

@spec branch(String.t(), non_neg_integer(), String.t()) :: :ok | {:error, term()}

clear()

@spec clear() :: :ok

delete(session_id)

@spec delete(String.t()) :: :ok | {:error, :live}

delete_many(session_ids)

@spec delete_many([String.t()]) :: %{
  deleted: [String.t()],
  skipped: [{String.t(), term()}]
}

dir()

@spec dir() :: String.t()

ensure_session(session_id, at \\ DateTime.utc_now(), attrs \\ [])

@spec ensure_session(String.t(), DateTime.t(), keyword()) :: :ok

eval_state(session_id)

@spec eval_state(String.t()) :: %{binding: Code.binding(), env: Macro.Env.t()} | nil

events(session_id)

@spec events(String.t()) :: [Vibe.Trajectory.t()]

events_path(session_id)

@spec events_path(String.t()) :: String.t()

info(session_id)

@spec info(String.t()) :: map() | nil

Intentional facade for the public Vibe API boundary.

list()

@spec list() :: [map()]

Intentional facade for the public Vibe API boundary.

log_path(session_id)

@spec log_path(String.t()) :: String.t()

new_id()

@spec new_id() :: String.t()

path(session_id)

@spec path(String.t()) :: String.t()

prune_empty()

@spec prune_empty() :: [String.t()]

session_events(session_id)

@spec session_events(String.t()) :: [{non_neg_integer(), Vibe.Event.t()}]

session_events_after(session_id, seq)

@spec session_events_after(String.t(), non_neg_integer()) :: [
  {non_neg_integer(), Vibe.Event.t()}
]

trajectory(opts \\ [])

@spec trajectory(keyword()) :: [Vibe.Trajectory.t()]