defmodule AgentSea.Guardrail.Blocklist do @moduledoc """ Blocks content containing any banned `:terms` (case-insensitive substrings) — handy for prompt-injection phrases or disallowed topics. """ @behaviour AgentSea.Guardrail @impl true def name, do: "blocklist" @impl true def check(content, opts) do terms = Keyword.get(opts, :terms, []) downcased = String.downcase(content) case Enum.find(terms, fn term -> String.contains?(downcased, String.downcase(term)) end) do nil -> :ok term -> {:block, {:blocked_term, term}} end end end