lib/openagents/context.ex

main at 58e6347eeb72 · 852 B

defmodule OpenAgents.Context do
  @moduledoc "Immutable provider context composed for one Sarah inference."

  @enforce_keys [
    :instructions,
    :instruction_digest,
    :persona_id,
    :persona_digest,
    :role_id,
    :role_digest,
    :role_selection,
    :applied_preferences,
    :applied_experiences,
    :blueprint_revision,
    :blueprint_digest
  ]
  defstruct @enforce_keys

  @type t :: %__MODULE__{
          instructions: String.t(),
          instruction_digest: String.t(),
          persona_id: String.t(),
          persona_digest: String.t(),
          role_id: String.t(),
          role_digest: String.t(),
          role_selection: map(),
          applied_preferences: [map()],
          applied_experiences: map(),
          blueprint_revision: String.t() | nil,
          blueprint_digest: String.t() | nil
        }
end