# `Jido.AI.Observe.Sanitize`
[🔗](https://github.com/agentjido/jido_ai/blob/v2.4.0/lib/jido_ai/observe/sanitize.ex#L1)

Sanitizer boundary for AI telemetry and public/tool transport payloads.

The telemetry profile keeps metadata low-cardinality by redacting sensitive
keys, bounding nested values, and summarizing payload-shaped fields.

The transport profile preserves more payload detail while converting arbitrary
terms into bounded JSON-safe data.

# `profile`

```elixir
@type profile() :: :telemetry | :transport
```

# `sanitize`

```elixir
@spec sanitize(term(), profile(), keyword()) :: term()
```

Sanitizes arbitrary payloads for a specific boundary profile.

# `sensitive`

```elixir
@spec sensitive(term()) :: term()
```

Redacts sensitive keys recursively without changing payload shape otherwise.

# `telemetry_metadata`

```elixir
@spec telemetry_metadata(term(), keyword()) :: term()
```

Sanitizes event metadata before it crosses the telemetry boundary.

# `transport_payload`

```elixir
@spec transport_payload(term(), keyword()) :: term()
```

Sanitizes public/tool payloads into bounded JSON-safe data.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
