// ==UserScript== // @name Monkeytype Kit (Archive + Jail + Hotlist + Dictation) // @namespace https://monkeytype.com/kit // @version 1.0.1 // @description Bundle: Eternal Archive (local results + graphs), Jail Mode, Hotlist Multi, Kokoro TTS Dictation. Ape Key empty by default. // @author kitkat + Grok (Archive/Jail/Hotlist); Dictation based on Kokoro Adaptive TTS // @match https://monkeytype.com/* // @match https://www.monkeytype.com/* // @icon https://monkeytype.com/images/favicon/favicon-32x32.png // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_xmlhttpRequest // @grant unsafeWindow // @connect api.monkeytype.com // @connect monkeytype.com // @connect localhost // @connect 127.0.0.1 // @run-at document-idle // @noframes // ==/UserScript== /* ========== 1. ETERNAL ARCHIVE ========== */ (function () { 'use strict'; // Tampermonkey sandbox: page globals live on unsafeWindow function pageWindow() { try { if (typeof unsafeWindow !== 'undefined' && unsafeWindow) return unsafeWindow; } catch (e) {} return window; } const PAGE = pageWindow(); /** Chart.js lives on the page window when loaded via