Four scan buckets.

agents.js

AI Workflows

Distinguishes workflow-like interfaces and helps separate AI tools from AI agents when the evidence supports it. Known platform matches still help, but unknown pages can also be recognized from workflow behavior instead of hostname lists alone.

signals.js

AI Presence

Scans for scripts, widgets, metadata, and content clues that suggest AI involvement. Strong claims are reserved for stronger structural evidence so the extension does not overstate what it sees.

images.js

AI Images

Checks AI-related image hints and provenance signals where available. Image findings are intentionally conservative so the popup can signal useful evidence without claiming proof that is not there.

data.js

Data And Privacy

Groups privacy findings using OBSERVED, DISCLOSED, and POSSIBLE so direct technical signals, site-stated language, and softer inference stay clearly separated in the UI.

How the current scan flow works.

# SafisAI scan flow

1. Content script takes a snapshot of the active tab
2. AI Workflows, AI Presence, AI Images, and Data And Privacy run locally
3. The latest per-tab state is stored and the badge bubble is updated
4. The popup reads the newest snapshot and renders the current findings

Hidden tabs skip work when possible
Repeated identical findings are not re-sent continuously
Rescans are limited to reduce stale or noisy state
Detection does not require a SafisAI backend