Durable pause point produced by a runtime control.
Interrupts are data. They describe why a turn paused and what pending effect may continue after an application supplies a review response.
Summary
Types
@type t() :: %Jidoka.Review.Interrupt{ agent_id: binary(), arguments: map(), boundary: :operation | binary(), control: atom(), control_name: binary(), created_at_ms: nil | nil | integer(), effect_id: binary(), effect_kind: :operation | binary(), expires_at_ms: nil | nil | integer(), id: binary(), idempotency: nil | nil | (:pure | :idempotent | :dedupe | :reconcile | :unsafe_once) | binary(), idempotency_key: nil | nil | binary(), loop_index: integer(), metadata: map(), operation: binary(), operation_kind: (:action | :operation | :tool | :ash_resource | :browser | :skill | :mcp | :workflow | :subagent | :handoff) | binary(), reason: any(), request_id: binary() }
Functions
@spec expired?(t(), non_neg_integer()) :: boolean()
@spec schema() :: Zoi.schema()
@spec with_review_window(t(), non_neg_integer(), pos_integer() | nil) :: t()