# Extensão IOCheck (Chrome / Edge / Brave)

## Por que usar

O **Gerenciador de Negócios** do Meta aplica **CSP** (`Content-Security-Policy`) que impede o bookmarklet de carregar `bookmarklet-mount.js` / `ioqualidade.js` a partir do painel. A extensão **injeta o mesmo arquivo** `ioqualidade.js` empacotado via `chrome.scripting` no **mundo da página** (`MAIN`), sem depender de `<script src="https://...">` na página.

O runtime único é **`public/tool/ioqualidade.js`**. O comando `npm run extension:pack` copia esse arquivo para `public/extensions/iocheck-chrome/`, alinha `manifest.json` → `version` e gera `public/downloads/iocheck-extension.zip` + `extension-meta.json`.

## Instalação

1. No painel IOCheck: **Bookmarklet** (ou **Ferramentas**) → **Download ZIP da extensão**.
2. Extraia o ZIP em uma pasta fixa (ex.: `IOCheck-extension`).
3. Abra `chrome://extensions` (ou `edge://extensions`).
4. Ative **Modo do desenvolvedor** → **Carregar sem compactação** → escolha a pasta extraída.
5. Abra o painel **`/app`** e faça login. O content script `panel-bridge.js` grava `iocheck_jwt` e `iocheck_panel_origin` no `chrome.storage.local` da extensão.
6. Em `business.facebook.com`, abra uma BM, clique no ícone da extensão → **Injetar ferramenta nesta aba**.

## Atualização

- Baixe o ZIP novamente no painel (versão exibida ao lado do download).
- Substitua os arquivos na pasta da extensão (em especial `ioqualidade.js` e `manifest.json`) ou remova a extensão e carregue a pasta de novo.
- Em desenvolvimento: na raiz `qualidade-risco-saas`, rode `npm run extension:pack` após editar `public/tool/ioqualidade.js`.

## API interna

- `GET /api/tool/extension-meta` (JWT do painel): JSON com `version`, `built_at`, `zip_url`, `zip_ready`.

## Scores (referência rápida)

- **Domínio:** `owned_domains`, palavras de risco, encurtadores, TLDs suspeitos, alinhamento site da BM vs domínios dos criativos.
- **Pixel:** quantidade, `last_fired_time`, pixel indisponível, nomes suspeitos, gasto recente alto sem pixel.
- **BM / consolidado:** idade BM, verificação, gasto total, taxa de sobrevivência das contas, dívidas, gray/policy violations, pagamentos, billing threshold, DSL ilimitado, tier restrito, integridade BM, maioria pré-paga, score médio das contas, histórico/perfil, penalidade **Black Ops**.

## Sincronização com o painel

A ferramenta envia **`POST /api/tool/sync/bm`** em modo **lite** apenas (sem débito de tokens na sync). Recarga de tokens é pelo painel (**Configurações** → compra com cartão ou PIX via Stripe).
