Syntropy.HistoryStore (syntropy v0.1.0)

Copy Markdown

Retains lattice snapshots for replay and operator inspection.

Summary

Types

agent_snapshot()

@type agent_snapshot() :: %{
  id: String.t(),
  runtime_id: String.t(),
  node_id: String.t(),
  name: String.t(),
  perspective: String.t(),
  position: float(),
  temporary: boolean(),
  connections: [connection_summary()]
}

connection_summary()

@type connection_summary() :: %{
  target_agent_id: String.t(),
  weight: float(),
  interactions: non_neg_integer()
}

snapshot()

@type snapshot() :: %{
  id: String.t(),
  node_id: String.t(),
  trigger_kind: String.t(),
  task_id: String.t() | nil,
  proposal_id: String.t() | nil,
  ranked_agent_ids: [String.t()],
  agents: [agent_snapshot()],
  inserted_at: DateTime.t()
}

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

for_task(task_id)

@spec for_task(String.t()) :: [snapshot()]

get(snapshot_id)

@spec get(String.t()) :: snapshot() | nil

recent(limit \\ 100)

@spec recent(non_neg_integer()) :: [snapshot()]

record_recommendation(recommendation, agents)

@spec record_recommendation(map(), [map()]) :: {:ok, snapshot()} | {:error, term()}

record_task(task_result, agents)

@spec record_task(map(), [map()]) :: {:ok, snapshot()} | {:error, term()}

reset()

@spec reset() :: :ok

start_link(opts \\ [])

@spec start_link(keyword()) :: GenServer.on_start()