// App-wide error reporter — catches JS errors and displays them as an overlay. // Enables debugging in WKWebView where devtools are unavailable. (function () { const overlay = document.createElement("div"); overlay.id = "error-reporter"; overlay.style.cssText = "position:fixed;bottom:0;left:0;right:0;max-height:200px;overflow:auto;background:#1a1a2e;color:#f0f0f0;font:12px monospace;padding:8px 12px;border-top:2px solid #e74c3c;z-index:99999;display:none;"; overlay.innerHTML = '⚠ JS Errors
';
  document.body.appendChild(overlay);

  const log = document.getElementById("error-reporter-log");

  const append = (msg) => {
    overlay.style.display = "block";
    log.textContent += msg + "\n";
    overlay.scrollTop = overlay.scrollHeight;
  };

  window.addEventListener("error", (e) => {
    const src = e.filename || "";
    const loc = e.lineno !== undefined ? `:${e.lineno}` : "";
    append(`[${new Date().toLocaleTimeString()}] ${e.message || e.error}\n  at ${src}${loc}`);
  });

  window.addEventListener("unhandledrejection", (e) => {
    append(`[${new Date().toLocaleTimeString()}] Unhandled rejection: ${e.reason}`);
  });

  // Also wrap console.error to catch Monaco errors
  const origError = console.error;
  console.error = (...args) => {
    origError.apply(console, args);
    append(`[${new Date().toLocaleTimeString()}] ${args.join(" ")}`);
  };
})();