Normalizes permission modes into a common runtime model.
Normalized set:
:default:auto:bypass:plan
Summary
Types
@type native_mode() :: atom()
@type normalization() :: %{normalized: normalized_mode(), native: native_mode()}
@type normalized_mode() :: :default | :auto | :bypass | :plan
@type provider() :: :amp | :claude | :codex | :codex_exec | :gemini | :shell | atom()
Functions
@spec normalize(provider(), atom() | String.t()) :: {:ok, normalization()} | {:error, ASM.Error.t()}
@spec normalize!(provider(), atom() | String.t()) :: normalization()
@spec normalized_modes() :: [normalized_mode()]