/* Silicon Factory hub โ€” data + rendering, client side. * * The Python app this replaces read `models.json` from disk at import and rendered two * Markdown tables. A static page cannot read the host's filesystem, so the array below IS * the database: it is the only thing to edit when adding a published model or dataset. * * SEED DATA โ€” replace with your real rows. Every `murl` points at a repository that exists * on the AEUPH account; where a dataset was never published the `durl` is "#" and the row * is marked, and `entries`/`date` for those rows are placeholders rather than measurements. */ var MODELS = [ { name: "synthetic_Jailbreak_Defense_Doorpage_v62", murl: "https://huggingface.co/AEUPH/synthetic_Jailbreak_Defense_Doorpage_v13-model", durl: "https://huggingface.co/datasets/AEUPH/synthetic_Jailbreak_Defense_Doorpage_v62", focus: "Safety / refusal alignment", entries: 1450, date: "2026-10-12" }, { name: "SDXL UNet GGUF quantisation set", murl: "https://huggingface.co/AEUPH/sdxl-unet-q8-gguf", durl: "#", focus: "Diffusion UNet GGUF (Q4_0/Q8_0/F16/F32)", entries: 8, date: "2026-08-04" }, { name: "BRUTE-AI self-prompting transcripts", murl: "https://huggingface.co/spaces/AEUPH/BRUTE-AI", durl: "#", focus: "Agentic self-prompting / injection loop", entries: 250, date: "2025-11-02" }, { name: "Hyper-dimensional lexicon generator", murl: "https://huggingface.co/spaces/AEUPH/HIGHER-DIMENSIONAL-LEXICON-GENERATOR", durl: "#", focus: "HDC/VSA vocabulary encoding", entries: 1024, date: "2025-09-09" }, { name: "Quantum cognition chat prompts", murl: "https://huggingface.co/spaces/AEUPH/QUANTUM_COGNITION_CHAT_AI", durl: "#", focus: "Quantum-inspired reasoning", entries: 320, date: "2025-06-18" }, { name: "SDXL VAE / text-encoder checkpoints", murl: "https://huggingface.co/AEUPH/pornworks-v04-te-vae-sdxl", durl: "#", focus: "SDXL text encoder + VAE", entries: 4, date: "2026-05-30" } ]; var BUY_URL = "https://buy.stripe.com/3cIcN4gzC7lXfuH49s7wA00"; function esc(s) { return String(s === undefined || s === null ? "" : s) .replace(/[&<>"]/g, function (c) { return ({ "&": "&", "<": "<", ">": ">", '"': """ })[c]; }); } /* Same derivation as the Python: the free-inference target is the model path itself. */ function freeInferenceUrl(m) { var path = String(m.murl || "").replace("https://huggingface.co/", ""); return "https://huggingface.co/" + path; } function modelLabel(m) { return String(m.murl || "#").split("/").pop(); } function link(url, text, cls) { if (!url || url === "#") return esc(text) + " (not published)"; return '' + esc(text) + ""; } function render() { document.getElementById("count").innerHTML = "Total models published: " + MODELS.length + " ยท rendered from an embedded array, no server"; var free = ['' + '']; for (var i = 0; i < MODELS.length; i++) { var m = MODELS[i]; free.push("" + "" + "" + "" + "" + ""); } free.push("
#ModelDatasetFocusEntriesFree Inference
" + (i + 1) + "" + link(m.murl, modelLabel(m)) + "" + link(m.durl, m.name || "N/A") + "" + esc(m.focus || "N/A") + "" + esc(m.entries || 0) + "" + link(freeInferenceUrl(m), "๐Ÿ†“ Try Free") + "
"); document.getElementById("freeTable").innerHTML = free.join(""); var buy = ['' + '']; for (var j = 0; j < MODELS.length; j++) { var b = MODELS[j]; buy.push("" + "" + "" + "" + "" + "" + ''); } buy.push("
#DatasetModelFocusEntriesDateBuy
" + (j + 1) + "" + link(b.durl, b.name || "N/A") + "" + link(b.murl, modelLabel(b)) + "" + esc(b.focus || "N/A") + "" + esc(b.entries || 0) + "" + esc(b.date || "N/A") + "๐Ÿ’ณ Buy $2,500
"); document.getElementById("buyTable").innerHTML = buy.join(""); } function exportJson() { var blob = new Blob([JSON.stringify(MODELS, null, 2)], { type: "application/json" }); var a = document.createElement("a"); a.href = URL.createObjectURL(blob); a.download = "models.json"; document.body.appendChild(a); a.click(); document.body.removeChild(a); } document.getElementById("exportBtn").addEventListener("click", exportJson); document.getElementById("toggleBtn").addEventListener("click", function () { var pre = document.getElementById("raw"); var show = pre.style.display === "none"; pre.style.display = show ? "block" : "none"; pre.textContent = show ? JSON.stringify(MODELS, null, 2) : ""; }); render();