The review boundary returned by Aludel.RedTeam.generate/2.
A generation records validated candidates, sanitized per-category failures, observed usage, and the limits applied to the model calls. Creating this value does not persist dataset entries.
Summary
Types
@type failure() :: %{ category: Aludel.RedTeam.Catalog.category(), type: :provider_error | :timeout | :invalid_response | :budget_exhausted, message: String.t() }
@type limits() :: %{ cases_per_category: pos_integer(), max_requests: pos_integer(), max_output_tokens: pos_integer(), max_total_tokens: pos_integer(), max_cost_usd: number(), request_timeout_ms: pos_integer(), max_target_context_chars: pos_integer(), max_response_bytes: pos_integer() }
@type status() :: :completed | :partial_failure | :failed
@type t() :: %Aludel.RedTeam.Generation{ cases: [Aludel.RedTeam.GeneratedCase.t()], checksum: String.t(), failures: [failure()], generated_at: DateTime.t(), id: Ecto.UUID.t(), limits: limits(), prompt_version: pos_integer(), provider: provider(), requested_categories: [Aludel.RedTeam.Catalog.category()], schema_version: pos_integer(), status: status(), target_context_checksum: String.t(), usage: usage() }
@type usage() :: %{ requests: non_neg_integer(), input_tokens: non_neg_integer(), output_tokens: non_neg_integer(), total_tokens: non_neg_integer(), cost_usd: number() }