Runtime context passed to controls at the operation boundary.
This is deliberately data-only. Operation controls can inspect the pending operation request and turn state, but they do not execute the operation.
Summary
Types
@type t() :: %Jidoka.Runtime.Controls.OperationContext{ agent_state: any(), arguments: map(), boundary: :operation | binary(), context: map(), control: atom(), control_name: binary(), idempotency: nil | nil | (:pure | :idempotent | :dedupe | :reconcile | :unsafe_once) | binary(), idempotency_key: nil | nil | binary(), input: binary(), intent: any(), kind: (:action | :operation | :tool | :ash_resource | :browser | :skill | :mcp | :workflow | :subagent | :handoff) | binary(), metadata: map(), operation: binary(), operation_kind: (:action | :operation | :tool | :ash_resource | :browser | :skill | :mcp | :workflow | :subagent | :handoff) | binary(), operation_match: map(), operation_metadata: map(), operation_request: any(), operation_spec: nil | nil | any(), plan: any(), request: any(), request_metadata: map(), source: nil | nil | binary(), spec: any(), type: :control | binary() }