Current section
Files
Jump to
Current section
Files
lib/codex/guardrail_error.ex
defmodule Codex.GuardrailError do
@moduledoc """
Error raised when a guardrail rejects or trips during execution.
"""
defexception [:stage, :guardrail, :message, :type]
@type stage :: :input | :output | :tool_input | :tool_output
@type type :: :tripwire | :reject
@impl true
def exception(opts) do
stage = Keyword.get(opts, :stage)
guardrail = Keyword.get(opts, :guardrail)
type = Keyword.get(opts, :type, :tripwire)
message = Keyword.get(opts, :message, "guardrail #{guardrail} triggered")
%__MODULE__{
stage: stage,
guardrail: guardrail,
message: message,
type: type
}
end
end