> ## Documentation Index
> Fetch the complete documentation index at: https://docs.egisai.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Coverage

> The five places an AI agent can exist, the control EgisAI has on each, and how to tell which ones you have deployed.

Governance is only as good as its worst blind spot. A workspace with a
perfect policy set and one uninstrumented Go service has a perfect
policy set and a leak.

So EgisAI models coverage explicitly: five surfaces, one control on
each, and a page that tells you which ones are actually in place. The
**Coverage** tab under Protection reports it, and the report you can
hand an auditor is generated from the same numbers.

## The five surfaces

| Surface                          | What lives there                                        | The control                                                                                                                         |
| -------------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| **Your code, Python**            | Agents you wrote and can `pip install` into             | [The SDK](/installation) — in-process, before the call leaves                                                                       |
| **Your code, other languages**   | Go, Java, Rust, TypeScript services calling a model API | [The Gateway](/gateway/overview), or the [egress node](/coverage/egress-node) where you can't change a base URL                     |
| **Vendor-hosted agents**         | Bots running on someone else's infrastructure           | [Integrations](/integrations/agent-frameworks) — their calls never traverse anything we run, so the control is cutting their access |
| **People using AI in a browser** | Someone pasting a customer list into a chat product     | [The browser extension](/coverage/browser-extension)                                                                                |
| **Proof**                        | Evidence the four above are complete                    | The Coverage tab and its exported report                                                                                            |

## Why the surfaces are listed even when empty

A coverage report that silently omits the surface it doesn't cover is
worse than no report. It reads as complete, and the one number an
auditor would have asked about is the one that isn't there.

So every surface is returned on every read, including the ones with
nothing deployed. A surface with no control says so, in words, with the
name of the thing that would fill it.

## Honesty about what each control did

Every audit row carries two fields that exist purely so a wall of
verdicts can be read correctly months later:

* **`enforcement_status`** — `enforced` means we were in the path and
  the call went the way the row says. `advisory` means we saw it and
  did not gate it. An egress node in observe mode and the browser
  extension only ever write `advisory`, because neither stopped
  anything.
* **`inspection`** — `full` means policy ran on a real body.
  `metadata_only` means we saw a connection and never decrypted it, so
  any verdict on that row came from the destination or the volume,
  never the content. `blind` means it was reconstructed after the fact
  from a vendor's audit log.

See the [enforcement matrix](/concepts/enforcement-matrix) for the
per-framework version of the same question.

## What's next

<CardGroup cols={2}>
  <Card title="Egress node" icon="server" href="/coverage/egress-node">
    A proxy you run. Two environment variables on a workload and every model call it makes is inventoried — in any language, with no code change.
  </Card>

  <Card title="Browser extension" icon="chrome" href="/coverage/browser-extension">
    Which AI sites your team uses, and optionally what kinds of sensitive data get typed into them.
  </Card>

  <Card title="Gateway" icon="arrows-turn-right" href="/gateway/overview">
    Point a base URL at EgisAI and every call through it is governed inline.
  </Card>

  <Card title="Enforcement matrix" icon="table" href="/concepts/enforcement-matrix">
    Where the SDK prevents versus where it can only record.
  </Card>
</CardGroup>
