Run-scoped envelope around normalized core runtime events.
%ASM.Event{} preserves the CliSubprocessCore.Event in :core_event while
adding ASM run/session scope plus observability metadata such as lane,
backend, and execution mode.
Summary
Types
@type kind() :: CliSubprocessCore.Event.kind() | :run_completed
@type payload() :: CliSubprocessCore.Event.payload() | ASM.Control.RunLifecycle.t() | map() | nil
@type t() :: %ASM.Event{ causation_id: String.t() | nil, core_event: CliSubprocessCore.Event.t() | nil, correlation_id: String.t() | nil, extra: map(), id: String.t(), kind: kind(), metadata: map(), payload: payload(), provider: atom() | nil, provider_session_id: String.t() | nil, run_id: String.t(), sequence: non_neg_integer() | nil, session_id: String.t(), timestamp: DateTime.t() }
Functions
@spec generate_id() :: String.t()
@spec generate_id_at(non_neg_integer()) :: String.t()
@spec kinds() :: [kind()]
@spec parse(keyword() | map()) :: {:ok, t()} | {:error, {:invalid_asm_event, CliSubprocessCore.Schema.error_detail()}}
@spec wrap_core(map(), CliSubprocessCore.Event.t()) :: t()