/**
 * Ponto de entrada do WebMCP no front do site.
 *
 * Enfileirado por includes/Frontend/WebMcpLoader.php somente quando o toggle
 * `enable_webmcp` esta ligado. O PHP injeta a configuracao ANTES deste modulo
 * (script classico inline; modulos ES sao sempre adiados, entao ela ja existe
 * quando isto roda):
 *
 *   window.clubmartechWebMcp = {
 *     options: { limiar, autoSubmit, watch, endpoint?, nonce? },
 *     abilities: boolean,            // lido pelo adapter.mjs
 *     abilitiesEndpoint?: string,
 *     allowDestructive: false,
 *   }
 *
 * Sem `navigator.modelContext`/`document.modelContext` (hoje: todo navegador
 * sem flag), registerAll() devolve { supported:false } e nada mais acontece —
 * nenhum listener, nenhum fetch.
 *
 * O relatorio fica em `window.clubmartechWebMcp.report` e sai no evento
 * `clubmartech:webmcp-ready`, para depuracao no console e para o tema.
 */
import { registerAll } from './adapter.mjs';

const cfg = globalThis.window?.clubmartechWebMcp ?? {};

async function boot() {
  try {
    const report = await registerAll({ ...(cfg.options ?? {}) });
    cfg.report = report;
    globalThis.dispatchEvent?.(new CustomEvent('clubmartech:webmcp-ready', { detail: report }));
    if (cfg.debug) console.info('[clubmartech-webmcp]', report);
  } catch (e) {
    // Falha do adaptador nunca pode quebrar a pagina.
    cfg.error = String(e?.message ?? e);
    if (cfg.debug) console.warn('[clubmartech-webmcp] falhou:', e);
  }
}

boot();
