lib/openagents/tools/snapshot.ex

58e6347eeb72 · 508 B

defmodule OpenAgents.Tools.Snapshot do
  @moduledoc "Immutable catalog captured once for a Sarah turn."

  @enforce_keys [:schema, :digest, :tools, :all_tools, :modules]
  defstruct @enforce_keys

  @type t :: %__MODULE__{
          schema: String.t(),
          digest: String.t(),
          tools: %{String.t() => OpenAgents.Tools.Tool.t()},
          all_tools: %{String.t() => OpenAgents.Tools.Tool.t()},
          modules: %{{String.t(), pos_integer()} => OpenAgents.Modules.Artifact.t()}
        }
end