LemonCore. Events. ApprovalPending
(lemon_core v0.1.0)
View Source
A tool execution awaiting a human decision. Carried inside the approval events and
stored verbatim in LemonCore.ExecApprovalStore.
Summary
Functions
The LemonCore.Event type atom this payload is published under.
Payload version. Bumped only for a breaking field change (see the semver table in docs/platform/bus-events.md §4.3).
The struct's field names, in declaration order.
Build the payload from a map that may be a legacy free-form payload.
Build the payload, raising on unknown or missing keys.
Types
@type t() :: %LemonCore.Events.ApprovalPending{ action: map() | nil, agent_id: String.t() | nil, expires_at_ms: non_neg_integer() | nil, id: String.t(), rationale: String.t() | nil, requested_at_ms: non_neg_integer() | nil, run_id: String.t() | nil, session_id: String.t() | nil, session_key: String.t() | nil, tool: String.t() }
Functions
@spec event_type() :: atom()
The LemonCore.Event type atom this payload is published under.
@spec event_version() :: pos_integer()
Payload version. Bumped only for a breaking field change (see the semver table in docs/platform/bus-events.md §4.3).
@spec fields() :: [atom()]
The struct's field names, in declaration order.
Build the payload from a map that may be a legacy free-form payload.
Unknown keys are dropped and string keys are accepted, so a consumer can coerce whatever arrives on the topic. Enforced keys are still required — a map missing them is not a valid payload under any version.
Build the payload, raising on unknown or missing keys.
This is the publisher-side constructor: a typo should fail at the point of publish, not silently produce a payload with a nil field that a consumer reads as absent.