Raxol.Harness.Fixture.Event (Raxol v2.6.1)

View Source

The decoded body of a fixture Envelope — one observable step of an agent run, per harness-spec-protocol.md §3.

Field names are aligned with the shipped Raxol.Agent.Contract.Event (PR #542, packages/raxol_agent/lib/raxol/agent/contract.ex): id, turn_id, ts, family, type, tier, payload match exactly. scope and provenance are not yet in Contract v0 — they are optional here and filled with defaults by Raxol.Harness.Fixture.Upcast so fixtures recorded before those fields existed still load (the upcast story, 06-projection §1.2).

Summary

Types

family()

@type family() :: :loop | :meta

provenance()

@type provenance() :: %{source: String.t(), trust: :trusted | :tainted}

scope()

@type scope() :: :session | :global

t()

@type t() :: %Raxol.Harness.Fixture.Event{
  family: family(),
  id: non_neg_integer(),
  payload: map(),
  provenance: provenance() | nil,
  scope: scope() | nil,
  tier: tier(),
  ts: integer(),
  turn_id: String.t() | nil,
  type: atom()
}

tier()

@type tier() :: :ephemeral | :durable