diff --git a/sentience/extension/background.js b/sentience/extension/background.js index aff49b0..2923f55 100644 --- a/sentience/extension/background.js +++ b/sentience/extension/background.js @@ -28,14 +28,14 @@ async function handleSnapshotProcessing(rawData, options = {}) { const startTime = performance.now(); try { if (!Array.isArray(rawData)) throw new Error("rawData must be an array"); - if (rawData.length > 1e4 && (rawData = rawData.slice(0, 1e4)), await initWASM(), + if (rawData.length > 1e4 && (rawData = rawData.slice(0, 1e4)), await initWASM(), !wasmReady) throw new Error("WASM module not initialized"); let analyzedElements, prunedRawData; try { const wasmPromise = new Promise((resolve, reject) => { try { let result; - result = options.limit || options.filter ? analyze_page_with_options(rawData, options) : analyze_page(rawData), + result = options.limit || options.filter ? analyze_page_with_options(rawData, options) : analyze_page(rawData), resolve(result); } catch (e) { reject(e); @@ -101,4 +101,4 @@ initWASM().catch(err => {}), chrome.runtime.onMessage.addListener((request, send event.preventDefault(); }), self.addEventListener("unhandledrejection", event => { event.preventDefault(); -}); +}); \ No newline at end of file diff --git a/sentience/extension/content.js b/sentience/extension/content.js index 97923a2..b65cfb5 100644 --- a/sentience/extension/content.js +++ b/sentience/extension/content.js @@ -82,7 +82,7 @@ if (!elements || !Array.isArray(elements)) return; removeOverlay(); const host = document.createElement("div"); - host.id = OVERLAY_HOST_ID, host.style.cssText = "\n position: fixed !important;\n top: 0 !important;\n left: 0 !important;\n width: 100vw !important;\n height: 100vh !important;\n pointer-events: none !important;\n z-index: 2147483647 !important;\n margin: 0 !important;\n padding: 0 !important;\n ", + host.id = OVERLAY_HOST_ID, host.style.cssText = "\n position: fixed !important;\n top: 0 !important;\n left: 0 !important;\n width: 100vw !important;\n height: 100vh !important;\n pointer-events: none !important;\n z-index: 2147483647 !important;\n margin: 0 !important;\n padding: 0 !important;\n ", document.body.appendChild(host); const shadow = host.attachShadow({ mode: "closed" @@ -94,15 +94,15 @@ let color; color = isTarget ? "#FF0000" : isPrimary ? "#0066FF" : "#00FF00"; const importanceRatio = maxImportance > 0 ? importance / maxImportance : .5, borderOpacity = isTarget ? 1 : isPrimary ? .9 : Math.max(.4, .5 + .5 * importanceRatio), fillOpacity = .2 * borderOpacity, borderWidth = isTarget ? 2 : isPrimary ? 1.5 : Math.max(.5, Math.round(2 * importanceRatio)), hexOpacity = Math.round(255 * fillOpacity).toString(16).padStart(2, "0"), box = document.createElement("div"); - if (box.style.cssText = `\n position: absolute;\n left: ${bbox.x}px;\n top: ${bbox.y}px;\n width: ${bbox.width}px;\n height: ${bbox.height}px;\n border: ${borderWidth}px solid ${color};\n background-color: ${color}${hexOpacity};\n box-sizing: border-box;\n opacity: ${borderOpacity};\n pointer-events: none;\n `, + if (box.style.cssText = `\n position: absolute;\n left: ${bbox.x}px;\n top: ${bbox.y}px;\n width: ${bbox.width}px;\n height: ${bbox.height}px;\n border: ${borderWidth}px solid ${color};\n background-color: ${color}${hexOpacity};\n box-sizing: border-box;\n opacity: ${borderOpacity};\n pointer-events: none;\n `, importance > 0 || isPrimary) { const badge = document.createElement("span"); - badge.textContent = isPrimary ? `⭐${importance}` : `${importance}`, badge.style.cssText = `\n position: absolute;\n top: -18px;\n left: 0;\n background: ${color};\n color: white;\n font-size: 11px;\n font-weight: bold;\n padding: 2px 6px;\n font-family: Arial, sans-serif;\n border-radius: 3px;\n opacity: 0.95;\n white-space: nowrap;\n pointer-events: none;\n `, + badge.textContent = isPrimary ? `⭐${importance}` : `${importance}`, badge.style.cssText = `\n position: absolute;\n top: -18px;\n left: 0;\n background: ${color};\n color: white;\n font-size: 11px;\n font-weight: bold;\n padding: 2px 6px;\n font-family: Arial, sans-serif;\n border-radius: 3px;\n opacity: 0.95;\n white-space: nowrap;\n pointer-events: none;\n `, box.appendChild(badge); } if (isTarget) { const targetIndicator = document.createElement("span"); - targetIndicator.textContent = "🎯", targetIndicator.style.cssText = "\n position: absolute;\n top: -18px;\n right: 0;\n font-size: 16px;\n pointer-events: none;\n ", + targetIndicator.textContent = "🎯", targetIndicator.style.cssText = "\n position: absolute;\n top: -18px;\n right: 0;\n font-size: 16px;\n pointer-events: none;\n ", box.appendChild(targetIndicator); } shadow.appendChild(box); @@ -122,7 +122,7 @@ if (!grids || !Array.isArray(grids)) return; removeOverlay(); const host = document.createElement("div"); - host.id = OVERLAY_HOST_ID, host.style.cssText = "\n position: fixed !important;\n top: 0 !important;\n left: 0 !important;\n width: 100vw !important;\n height: 100vh !important;\n pointer-events: none !important;\n z-index: 2147483647 !important;\n margin: 0 !important;\n padding: 0 !important;\n ", + host.id = OVERLAY_HOST_ID, host.style.cssText = "\n position: fixed !important;\n top: 0 !important;\n left: 0 !important;\n width: 100vw !important;\n height: 100vh !important;\n pointer-events: none !important;\n z-index: 2147483647 !important;\n margin: 0 !important;\n padding: 0 !important;\n ", document.body.appendChild(host); const shadow = host.attachShadow({ mode: "closed" @@ -138,10 +138,10 @@ let labelText = grid.label ? `Grid ${grid.grid_id}: ${grid.label}` : `Grid ${grid.grid_id}`; grid.is_dominant && (labelText = `⭐ ${labelText} (dominant)`); const badge = document.createElement("span"); - if (badge.textContent = labelText, badge.style.cssText = `\n position: absolute;\n top: -18px;\n left: 0;\n background: ${color};\n color: white;\n font-size: 11px;\n font-weight: bold;\n padding: 2px 6px;\n font-family: Arial, sans-serif;\n border-radius: 3px;\n opacity: 0.95;\n white-space: nowrap;\n pointer-events: none;\n `, + if (badge.textContent = labelText, badge.style.cssText = `\n position: absolute;\n top: -18px;\n left: 0;\n background: ${color};\n color: white;\n font-size: 11px;\n font-weight: bold;\n padding: 2px 6px;\n font-family: Arial, sans-serif;\n border-radius: 3px;\n opacity: 0.95;\n white-space: nowrap;\n pointer-events: none;\n `, box.appendChild(badge), isTarget) { const targetIndicator = document.createElement("span"); - targetIndicator.textContent = "🎯", targetIndicator.style.cssText = "\n position: absolute;\n top: -18px;\n right: 0;\n font-size: 16px;\n pointer-events: none;\n ", + targetIndicator.textContent = "🎯", targetIndicator.style.cssText = "\n position: absolute;\n top: -18px;\n right: 0;\n font-size: 16px;\n pointer-events: none;\n ", box.appendChild(targetIndicator); } shadow.appendChild(box); @@ -155,7 +155,7 @@ let overlayTimeout = null; function removeOverlay() { const existing = document.getElementById(OVERLAY_HOST_ID); - existing && existing.remove(), overlayTimeout && (clearTimeout(overlayTimeout), + existing && existing.remove(), overlayTimeout && (clearTimeout(overlayTimeout), overlayTimeout = null); } -}(); +}(); \ No newline at end of file diff --git a/sentience/extension/injected_api.js b/sentience/extension/injected_api.js index 136829f..abaee4b 100644 --- a/sentience/extension/injected_api.js +++ b/sentience/extension/injected_api.js @@ -112,7 +112,7 @@ if (labelEl) { let text = ""; try { - if (text = (labelEl.innerText || "").trim(), !text && labelEl.textContent && (text = labelEl.textContent.trim()), + if (text = (labelEl.innerText || "").trim(), !text && labelEl.textContent && (text = labelEl.textContent.trim()), !text && labelEl.getAttribute) { const ariaLabel = labelEl.getAttribute("aria-label"); ariaLabel && (text = ariaLabel.trim()); @@ -158,7 +158,12 @@ return null; } function getText(el) { - return el.getAttribute("aria-label") ? el.getAttribute("aria-label") : "INPUT" === el.tagName ? el.value || el.placeholder || "" : "IMG" === el.tagName ? el.alt || "" : (el.innerText || "").replace(/\s+/g, " ").trim().substring(0, 100); + if (el.getAttribute("aria-label")) return el.getAttribute("aria-label"); + if ("INPUT" === el.tagName) { + const t = el.getAttribute && el.getAttribute("type") || el.type || ""; + return "password" === String(t).toLowerCase() ? el.placeholder || "" : el.value || el.placeholder || ""; + } + return "IMG" === el.tagName ? el.alt || "" : (el.innerText || "").replace(/\s+/g, " ").trim().substring(0, 100); } function getClassName(el) { if (!el || !el.className) return ""; @@ -268,11 +273,17 @@ try { !1 !== options.waitForStability && await async function(options = {}) { const {minNodeCount: minNodeCount = 500, quietPeriod: quietPeriod = 200, maxWait: maxWait = 5e3} = options, startTime = Date.now(); + try { + window.__sentience_lastMutationTs = performance.now(); + } catch (e) {} return new Promise(resolve => { if (document.querySelectorAll("*").length >= minNodeCount) { let lastChange = Date.now(); const observer = new MutationObserver(() => { lastChange = Date.now(); + try { + window.__sentience_lastMutationTs = performance.now(); + } catch (e) {} }); observer.observe(document.body, { childList: !0, @@ -281,18 +292,24 @@ }); const checkStable = () => { const timeSinceLastChange = Date.now() - lastChange, totalWait = Date.now() - startTime; - timeSinceLastChange >= quietPeriod || totalWait >= maxWait ? (observer.disconnect(), + timeSinceLastChange >= quietPeriod || totalWait >= maxWait ? (observer.disconnect(), resolve()) : setTimeout(checkStable, 50); }; checkStable(); } else { const observer = new MutationObserver(() => { const currentCount = document.querySelectorAll("*").length, totalWait = Date.now() - startTime; + try { + window.__sentience_lastMutationTs = performance.now(); + } catch (e) {} if (currentCount >= minNodeCount) { observer.disconnect(); let lastChange = Date.now(); const quietObserver = new MutationObserver(() => { lastChange = Date.now(); + try { + window.__sentience_lastMutationTs = performance.now(); + } catch (e) {} }); quietObserver.observe(document.body, { childList: !0, @@ -301,7 +318,7 @@ }); const checkQuiet = () => { const timeSinceLastChange = Date.now() - lastChange, totalWait = Date.now() - startTime; - timeSinceLastChange >= quietPeriod || totalWait >= maxWait ? (quietObserver.disconnect(), + timeSinceLastChange >= quietPeriod || totalWait >= maxWait ? (quietObserver.disconnect(), resolve()) : setTimeout(checkQuiet, 50); }; checkQuiet(); @@ -323,14 +340,15 @@ if (!el.getBoundingClientRect) return; const rect = el.getBoundingClientRect(); if (rect.width < 5 || rect.height < 5) return; - if ("span" === el.tagName.toLowerCase()) { + const tagName = el.tagName.toLowerCase(); + if ("span" === tagName) { if (el.closest("a")) return; const childLink = el.querySelector("a[href]"); if (childLink && childLink.href) return; options.debug && el.className && el.className.includes("titleline"); } window.sentience_registry[idx] = el; - const semanticText = function(el, options = {}) { + const inputType = "input" === tagName ? toSafeString(el.getAttribute && el.getAttribute("type") || el.type || null) : null, isPasswordInput = inputType && "password" === inputType.toLowerCase(), semanticText = function(el, options = {}) { if (!el) return { text: "", source: null @@ -341,10 +359,10 @@ source: "explicit_aria_label" }; if ("INPUT" === el.tagName) { - const value = (el.value || el.placeholder || "").trim(); + const t = el.getAttribute && el.getAttribute("type") || el.type || "", isPassword = "password" === String(t).toLowerCase(), value = (isPassword ? el.placeholder || "" : el.value || el.placeholder || "").trim(); if (value) return { text: value, - source: "input_value" + source: isPassword ? "input_placeholder" : "input_value" }; } if ("IMG" === el.tagName) { @@ -417,9 +435,53 @@ } return null; }(el); + let safeValue = null, valueRedacted = null; + try { + if (void 0 !== el.value || el.getAttribute && null !== el.getAttribute("value")) if (isPasswordInput) safeValue = null, + valueRedacted = "true"; else { + const rawValue = void 0 !== el.value ? String(el.value) : String(el.getAttribute("value")); + safeValue = rawValue.length > 200 ? rawValue.substring(0, 200) : rawValue, valueRedacted = "false"; + } + } catch (e) {} + const accessibleName = toSafeString(function(el) { + if (!el || !el.getAttribute) return ""; + const ariaLabel = el.getAttribute("aria-label"); + if (ariaLabel && ariaLabel.trim()) return ariaLabel.trim().substring(0, 200); + const labelledBy = el.getAttribute("aria-labelledby"); + if (labelledBy && labelledBy.trim()) { + const ids = labelledBy.split(/\s+/).filter(id => id.trim()), texts = []; + for (const id of ids) try { + const ref = document.getElementById(id); + if (!ref) continue; + const txt = (ref.innerText || ref.textContent || ref.getAttribute?.("aria-label") || "").toString().trim(); + txt && texts.push(txt); + } catch (e) {} + if (texts.length > 0) return texts.join(" ").substring(0, 200); + } + try { + if (el.labels && el.labels.length > 0) { + const t = (el.labels[0].innerText || el.labels[0].textContent || "").toString().trim(); + if (t) return t.substring(0, 200); + } + } catch (e) {} + try { + const parentLabel = el.closest && el.closest("label"); + if (parentLabel) { + const t = (parentLabel.innerText || parentLabel.textContent || "").toString().trim(); + if (t) return t.substring(0, 200); + } + } catch (e) {} + const tag = (el.tagName || "").toUpperCase(); + if ("INPUT" === tag || "TEXTAREA" === tag) { + const ph = (el.getAttribute("placeholder") || "").toString().trim(); + if (ph) return ph.substring(0, 200); + } + const title = el.getAttribute("title"); + return title && title.trim() ? title.trim().substring(0, 200) : ""; + }(el) || null); rawData.push({ id: idx, - tag: el.tagName.toLowerCase(), + tag: tagName, rect: { x: rect.x, y: rect.y, @@ -441,14 +503,21 @@ attributes: { role: toSafeString(el.getAttribute("role")), type_: toSafeString(el.getAttribute("type")), + input_type: inputType, aria_label: "explicit_aria_label" === semanticText?.source ? semanticText.text : toSafeString(el.getAttribute("aria-label")), + name: accessibleName, inferred_label: semanticText?.source && ![ "explicit_aria_label", "input_value", "img_alt", "inner_text" ].includes(semanticText.source) ? toSafeString(semanticText.text) : null, label_source: semanticText?.source || null, inferred_role: inferredRole ? toSafeString(inferredRole) : null, href: toSafeString(el.href || el.getAttribute("href") || el.closest && el.closest("a")?.href || null), class: toSafeString(getClassName(el)), - value: void 0 !== el.value ? toSafeString(el.value) : toSafeString(el.getAttribute("value")), - checked: void 0 !== el.checked ? String(el.checked) : null + value: null !== safeValue ? toSafeString(safeValue) : null, + value_redacted: valueRedacted, + checked: void 0 !== el.checked ? String(el.checked) : null, + disabled: void 0 !== el.disabled ? String(el.disabled) : null, + aria_checked: toSafeString(el.getAttribute("aria-checked")), + aria_disabled: toSafeString(el.getAttribute("aria-disabled")), + aria_expanded: toSafeString(el.getAttribute("aria-expanded")) }, text: toSafeString(textVal), in_viewport: inView, @@ -468,8 +537,8 @@ const requestId = `iframe-${idx}-${Date.now()}`, timeout = setTimeout(() => { resolve(null); }, 5e3), listener = event => { - "SENTIENCE_IFRAME_SNAPSHOT_RESPONSE" === event.data?.type && event.data, "SENTIENCE_IFRAME_SNAPSHOT_RESPONSE" === event.data?.type && event.data?.requestId === requestId && (clearTimeout(timeout), - window.removeEventListener("message", listener), event.data.error ? resolve(null) : (event.data.snapshot, + "SENTIENCE_IFRAME_SNAPSHOT_RESPONSE" === event.data?.type && event.data, "SENTIENCE_IFRAME_SNAPSHOT_RESPONSE" === event.data?.type && event.data?.requestId === requestId && (clearTimeout(timeout), + window.removeEventListener("message", listener), event.data.error ? resolve(null) : (event.data.snapshot, resolve({ iframe: iframe, data: event.data.snapshot, @@ -485,7 +554,7 @@ ...options, collectIframes: !0 } - }, "*") : (clearTimeout(timeout), window.removeEventListener("message", listener), + }, "*") : (clearTimeout(timeout), window.removeEventListener("message", listener), resolve(null)); } catch (error) { clearTimeout(timeout), window.removeEventListener("message", listener), resolve(null); @@ -535,7 +604,7 @@ }, 25e3), listener = e => { if ("SENTIENCE_SNAPSHOT_RESULT" === e.data.type && e.data.requestId === requestId) { if (resolved) return; - resolved = !0, clearTimeout(timeout), window.removeEventListener("message", listener), + resolved = !0, clearTimeout(timeout), window.removeEventListener("message", listener), e.data.error ? reject(new Error(e.data.error)) : resolve({ elements: e.data.elements, raw_elements: e.data.raw_elements, @@ -552,7 +621,7 @@ options: options }, "*"); } catch (error) { - resolved || (resolved = !0, clearTimeout(timeout), window.removeEventListener("message", listener), + resolved || (resolved = !0, clearTimeout(timeout), window.removeEventListener("message", listener), reject(new Error(`Failed to send snapshot request: ${error.message}`))); } }); @@ -562,7 +631,7 @@ options.screenshot && (screenshot = await function(options) { return new Promise(resolve => { const requestId = Math.random().toString(36).substring(7), listener = e => { - "SENTIENCE_SCREENSHOT_RESULT" === e.data.type && e.data.requestId === requestId && (window.removeEventListener("message", listener), + "SENTIENCE_SCREENSHOT_RESULT" === e.data.type && e.data.requestId === requestId && (window.removeEventListener("message", listener), resolve(e.data.screenshot)); }; window.addEventListener("message", listener), window.postMessage({ @@ -576,6 +645,17 @@ }(options.screenshot)); const cleanedElements = cleanElement(processed.elements), cleanedRawElements = cleanElement(processed.raw_elements); cleanedElements.length, cleanedRawElements.length; + let diagnostics; + try { + const lastMutationTs = window.__sentience_lastMutationTs, now = performance.now(), quietMs = "number" == typeof lastMutationTs && Number.isFinite(lastMutationTs) ? Math.max(0, now - lastMutationTs) : null, nodeCount = document.querySelectorAll("*").length; + diagnostics = { + metrics: { + ready_state: document.readyState || null, + quiet_ms: quietMs, + node_count: nodeCount + } + }; + } catch (e) {} return { status: "success", url: window.location.href, @@ -585,7 +665,8 @@ }, elements: cleanedElements, raw_elements: cleanedRawElements, - screenshot: screenshot + screenshot: screenshot, + diagnostics: diagnostics }; } catch (error) { return { @@ -609,15 +690,15 @@ } if (node.nodeType !== Node.ELEMENT_NODE) return; const tag = node.tagName.toLowerCase(); - if ("h1" === tag && (markdown += "\n# "), "h2" === tag && (markdown += "\n## "), - "h3" === tag && (markdown += "\n### "), "li" === tag && (markdown += "\n- "), insideLink || "p" !== tag && "div" !== tag && "br" !== tag || (markdown += "\n"), - "strong" !== tag && "b" !== tag || (markdown += "**"), "em" !== tag && "i" !== tag || (markdown += "_"), - "a" === tag && (markdown += "[", insideLink = !0), node.shadowRoot ? Array.from(node.shadowRoot.childNodes).forEach(walk) : node.childNodes.forEach(walk), + if ("h1" === tag && (markdown += "\n# "), "h2" === tag && (markdown += "\n## "), + "h3" === tag && (markdown += "\n### "), "li" === tag && (markdown += "\n- "), insideLink || "p" !== tag && "div" !== tag && "br" !== tag || (markdown += "\n"), + "strong" !== tag && "b" !== tag || (markdown += "**"), "em" !== tag && "i" !== tag || (markdown += "_"), + "a" === tag && (markdown += "[", insideLink = !0), node.shadowRoot ? Array.from(node.shadowRoot.childNodes).forEach(walk) : node.childNodes.forEach(walk), "a" === tag) { const href = node.getAttribute("href"); markdown += href ? `](${href})` : "]", insideLink = !1; } - "strong" !== tag && "b" !== tag || (markdown += "**"), "em" !== tag && "i" !== tag || (markdown += "_"), + "strong" !== tag && "b" !== tag || (markdown += "**"), "em" !== tag && "i" !== tag || (markdown += "_"), insideLink || "h1" !== tag && "h2" !== tag && "h3" !== tag && "p" !== tag && "div" !== tag || (markdown += "\n"); }(tempDiv), markdown.replace(/\n{3,}/g, "\n\n").trim(); }(document.body) : function(root) { @@ -630,7 +711,7 @@ const style = window.getComputedStyle(node); if ("none" === style.display || "hidden" === style.visibility) return; const isBlock = "block" === style.display || "flex" === style.display || "P" === node.tagName || "DIV" === node.tagName; - isBlock && (text += " "), node.shadowRoot ? Array.from(node.shadowRoot.childNodes).forEach(walk) : node.childNodes.forEach(walk), + isBlock && (text += " "), node.shadowRoot ? Array.from(node.shadowRoot.childNodes).forEach(walk) : node.childNodes.forEach(walk), isBlock && (text += "\n"); } } else text += node.textContent; @@ -729,25 +810,25 @@ } function startRecording(options = {}) { const {highlightColor: highlightColor = "#ff0000", successColor: successColor = "#00ff00", autoDisableTimeout: autoDisableTimeout = 18e5, keyboardShortcut: keyboardShortcut = "Ctrl+Shift+I"} = options; - if (!window.sentience_registry || 0 === window.sentience_registry.length) return alert("Registry empty. Run `await window.sentience.snapshot()` first!"), + if (!window.sentience_registry || 0 === window.sentience_registry.length) return alert("Registry empty. Run `await window.sentience.snapshot()` first!"), () => {}; window.sentience_registry_map = new Map, window.sentience_registry.forEach((el, idx) => { el && window.sentience_registry_map.set(el, idx); }); let highlightBox = document.getElementById("sentience-highlight-box"); - highlightBox || (highlightBox = document.createElement("div"), highlightBox.id = "sentience-highlight-box", - highlightBox.style.cssText = `\n position: fixed;\n pointer-events: none;\n z-index: 2147483647;\n border: 2px solid ${highlightColor};\n background: rgba(255, 0, 0, 0.1);\n display: none;\n transition: all 0.1s ease;\n box-sizing: border-box;\n `, + highlightBox || (highlightBox = document.createElement("div"), highlightBox.id = "sentience-highlight-box", + highlightBox.style.cssText = `\n position: fixed;\n pointer-events: none;\n z-index: 2147483647;\n border: 2px solid ${highlightColor};\n background: rgba(255, 0, 0, 0.1);\n display: none;\n transition: all 0.1s ease;\n box-sizing: border-box;\n `, document.body.appendChild(highlightBox)); let recordingIndicator = document.getElementById("sentience-recording-indicator"); - recordingIndicator || (recordingIndicator = document.createElement("div"), recordingIndicator.id = "sentience-recording-indicator", - recordingIndicator.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 3px;\n background: ${highlightColor};\n z-index: 2147483646;\n pointer-events: none;\n `, + recordingIndicator || (recordingIndicator = document.createElement("div"), recordingIndicator.id = "sentience-recording-indicator", + recordingIndicator.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 3px;\n background: ${highlightColor};\n z-index: 2147483646;\n pointer-events: none;\n `, document.body.appendChild(recordingIndicator)), recordingIndicator.style.display = "block"; const mouseOverHandler = e => { const el = e.target; if (!el || el === highlightBox || el === recordingIndicator) return; const rect = el.getBoundingClientRect(); - highlightBox.style.display = "block", highlightBox.style.top = rect.top + window.scrollY + "px", - highlightBox.style.left = rect.left + window.scrollX + "px", highlightBox.style.width = rect.width + "px", + highlightBox.style.display = "block", highlightBox.style.top = rect.top + window.scrollY + "px", + highlightBox.style.left = rect.left + window.scrollX + "px", highlightBox.style.width = rect.width + "px", highlightBox.style.height = rect.height + "px"; }, clickHandler = e => { e.preventDefault(), e.stopPropagation(); @@ -824,7 +905,7 @@ debug_snapshot: rawData }, jsonString = JSON.stringify(snippet, null, 2); navigator.clipboard.writeText(jsonString).then(() => { - highlightBox.style.border = `2px solid ${successColor}`, highlightBox.style.background = "rgba(0, 255, 0, 0.2)", + highlightBox.style.border = `2px solid ${successColor}`, highlightBox.style.background = "rgba(0, 255, 0, 0.2)", setTimeout(() => { highlightBox.style.border = `2px solid ${highlightColor}`, highlightBox.style.background = "rgba(255, 0, 0, 0.1)"; }, 500); @@ -834,15 +915,15 @@ }; let timeoutId = null; const stopRecording = () => { - document.removeEventListener("mouseover", mouseOverHandler, !0), document.removeEventListener("click", clickHandler, !0), - document.removeEventListener("keydown", keyboardHandler, !0), timeoutId && (clearTimeout(timeoutId), - timeoutId = null), highlightBox && (highlightBox.style.display = "none"), recordingIndicator && (recordingIndicator.style.display = "none"), + document.removeEventListener("mouseover", mouseOverHandler, !0), document.removeEventListener("click", clickHandler, !0), + document.removeEventListener("keydown", keyboardHandler, !0), timeoutId && (clearTimeout(timeoutId), + timeoutId = null), highlightBox && (highlightBox.style.display = "none"), recordingIndicator && (recordingIndicator.style.display = "none"), window.sentience_registry_map && window.sentience_registry_map.clear(), window.sentience_stopRecording === stopRecording && delete window.sentience_stopRecording; }, keyboardHandler = e => { - (e.ctrlKey || e.metaKey) && e.shiftKey && "I" === e.key && (e.preventDefault(), + (e.ctrlKey || e.metaKey) && e.shiftKey && "I" === e.key && (e.preventDefault(), stopRecording()); }; - return document.addEventListener("mouseover", mouseOverHandler, !0), document.addEventListener("click", clickHandler, !0), + return document.addEventListener("mouseover", mouseOverHandler, !0), document.addEventListener("click", clickHandler, !0), document.addEventListener("keydown", keyboardHandler, !0), autoDisableTimeout > 0 && (timeoutId = setTimeout(() => { stopRecording(); }, autoDisableTimeout)), window.sentience_stopRecording = stopRecording, stopRecording; @@ -911,4 +992,4 @@ } }), window.sentience_iframe_handler_setup = !0)); })(); -}(); +}(); \ No newline at end of file diff --git a/sentience/extension/pkg/sentience_core.d.ts b/sentience/extension/pkg/sentience_core.d.ts index e280c26..39ef420 100644 --- a/sentience/extension/pkg/sentience_core.d.ts +++ b/sentience/extension/pkg/sentience_core.d.ts @@ -18,34 +18,34 @@ export function prune_for_api(val: any): any; export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; export interface InitOutput { - readonly memory: WebAssembly.Memory; - readonly analyze_page: (a: number) => number; - readonly analyze_page_with_options: (a: number, b: number) => number; - readonly decide_and_act: (a: number) => void; - readonly prune_for_api: (a: number) => number; - readonly __wbindgen_export: (a: number, b: number) => number; - readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number; - readonly __wbindgen_export3: (a: number) => void; + readonly memory: WebAssembly.Memory; + readonly analyze_page: (a: number) => number; + readonly analyze_page_with_options: (a: number, b: number) => number; + readonly decide_and_act: (a: number) => void; + readonly prune_for_api: (a: number) => number; + readonly __wbindgen_export: (a: number, b: number) => number; + readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number; + readonly __wbindgen_export3: (a: number) => void; } export type SyncInitInput = BufferSource | WebAssembly.Module; /** -* Instantiates the given `module`, which can either be bytes or -* a precompiled `WebAssembly.Module`. -* -* @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated. -* -* @returns {InitOutput} -*/ + * Instantiates the given `module`, which can either be bytes or + * a precompiled `WebAssembly.Module`. + * + * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated. + * + * @returns {InitOutput} + */ export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput; /** -* If `module_or_path` is {RequestInfo} or {URL}, makes a request and -* for everything else, calls `WebAssembly.instantiate` directly. -* -* @param {{ module_or_path: InitInput | Promise }} module_or_path - Passing `InitInput` directly is deprecated. -* -* @returns {Promise} -*/ + * If `module_or_path` is {RequestInfo} or {URL}, makes a request and + * for everything else, calls `WebAssembly.instantiate` directly. + * + * @param {{ module_or_path: InitInput | Promise }} module_or_path - Passing `InitInput` directly is deprecated. + * + * @returns {Promise} + */ export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise } | InitInput | Promise): Promise; diff --git a/sentience/extension/pkg/sentience_core.js b/sentience/extension/pkg/sentience_core.js index 2696a64..bb9cae0 100644 --- a/sentience/extension/pkg/sentience_core.js +++ b/sentience/extension/pkg/sentience_core.js @@ -1,4 +1,181 @@ -let wasm; +export function analyze_page(val) { + return takeObject(wasm.analyze_page(addHeapObject(val))); +} + +export function analyze_page_with_options(val, options) { + return takeObject(wasm.analyze_page_with_options(addHeapObject(val), addHeapObject(options))); +} + +export function decide_and_act(_raw_elements) { + wasm.decide_and_act(addHeapObject(_raw_elements)); +} + +export function prune_for_api(val) { + return takeObject(wasm.prune_for_api(addHeapObject(val))); +} + +function __wbg_get_imports() { + const import0 = { + __proto__: null, + __wbg_Error_8c4e43fe74559d73: function(arg0, arg1) { + return addHeapObject(Error(getStringFromWasm0(arg0, arg1))); + }, + __wbg_Number_04624de7d0e8332d: function(arg0) { + return Number(getObject(arg0)); + }, + __wbg___wbindgen_bigint_get_as_i64_8fcf4ce7f1ca72a2: function(arg0, arg1) { + const v = getObject(arg1), ret = "bigint" == typeof v ? v : void 0; + getDataViewMemory0().setBigInt64(arg0 + 8, isLikeNone(ret) ? BigInt(0) : ret, !0), + getDataViewMemory0().setInt32(arg0 + 0, !isLikeNone(ret), !0); + }, + __wbg___wbindgen_boolean_get_bbbb1c18aa2f5e25: function(arg0) { + const v = getObject(arg0), ret = "boolean" == typeof v ? v : void 0; + return isLikeNone(ret) ? 16777215 : ret ? 1 : 0; + }, + __wbg___wbindgen_debug_string_0bc8482c6e3508ae: function(arg0, arg1) { + const ptr1 = passStringToWasm0(debugString(getObject(arg1)), wasm.__wbindgen_export, wasm.__wbindgen_export2), len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4, len1, !0), getDataViewMemory0().setInt32(arg0 + 0, ptr1, !0); + }, + __wbg___wbindgen_in_47fa6863be6f2f25: function(arg0, arg1) { + return getObject(arg0) in getObject(arg1); + }, + __wbg___wbindgen_is_bigint_31b12575b56f32fc: function(arg0) { + return "bigint" == typeof getObject(arg0); + }, + __wbg___wbindgen_is_function_0095a73b8b156f76: function(arg0) { + return "function" == typeof getObject(arg0); + }, + __wbg___wbindgen_is_object_5ae8e5880f2c1fbd: function(arg0) { + const val = getObject(arg0); + return "object" == typeof val && null !== val; + }, + __wbg___wbindgen_is_undefined_9e4d92534c42d778: function(arg0) { + return void 0 === getObject(arg0); + }, + __wbg___wbindgen_jsval_eq_11888390b0186270: function(arg0, arg1) { + return getObject(arg0) === getObject(arg1); + }, + __wbg___wbindgen_jsval_loose_eq_9dd77d8cd6671811: function(arg0, arg1) { + return getObject(arg0) == getObject(arg1); + }, + __wbg___wbindgen_number_get_8ff4255516ccad3e: function(arg0, arg1) { + const obj = getObject(arg1), ret = "number" == typeof obj ? obj : void 0; + getDataViewMemory0().setFloat64(arg0 + 8, isLikeNone(ret) ? 0 : ret, !0), getDataViewMemory0().setInt32(arg0 + 0, !isLikeNone(ret), !0); + }, + __wbg___wbindgen_string_get_72fb696202c56729: function(arg0, arg1) { + const obj = getObject(arg1), ret = "string" == typeof obj ? obj : void 0; + var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2), len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4, len1, !0), getDataViewMemory0().setInt32(arg0 + 0, ptr1, !0); + }, + __wbg___wbindgen_throw_be289d5034ed271b: function(arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }, + __wbg_call_389efe28435a9388: function() { + return handleError(function(arg0, arg1) { + return addHeapObject(getObject(arg0).call(getObject(arg1))); + }, arguments); + }, + __wbg_done_57b39ecd9addfe81: function(arg0) { + return getObject(arg0).done; + }, + __wbg_error_9a7fe3f932034cde: function(arg0) {}, + __wbg_get_9b94d73e6221f75c: function(arg0, arg1) { + return addHeapObject(getObject(arg0)[arg1 >>> 0]); + }, + __wbg_get_b3ed3ad4be2bc8ac: function() { + return handleError(function(arg0, arg1) { + return addHeapObject(Reflect.get(getObject(arg0), getObject(arg1))); + }, arguments); + }, + __wbg_get_with_ref_key_1dc361bd10053bfe: function(arg0, arg1) { + return addHeapObject(getObject(arg0)[getObject(arg1)]); + }, + __wbg_instanceof_ArrayBuffer_c367199e2fa2aa04: function(arg0) { + let result; + try { + result = getObject(arg0) instanceof ArrayBuffer; + } catch (_) { + result = !1; + } + return result; + }, + __wbg_instanceof_Uint8Array_9b9075935c74707c: function(arg0) { + let result; + try { + result = getObject(arg0) instanceof Uint8Array; + } catch (_) { + result = !1; + } + return result; + }, + __wbg_isArray_d314bb98fcf08331: function(arg0) { + return Array.isArray(getObject(arg0)); + }, + __wbg_isSafeInteger_bfbc7332a9768d2a: function(arg0) { + return Number.isSafeInteger(getObject(arg0)); + }, + __wbg_iterator_6ff6560ca1568e55: function() { + return addHeapObject(Symbol.iterator); + }, + __wbg_js_click_element_2fe1e774f3d232c7: function(arg0) { + js_click_element(arg0); + }, + __wbg_length_32ed9a279acd054c: function(arg0) { + return getObject(arg0).length; + }, + __wbg_length_35a7bace40f36eac: function(arg0) { + return getObject(arg0).length; + }, + __wbg_new_361308b2356cecd0: function() { + return addHeapObject(new Object); + }, + __wbg_new_3eb36ae241fe6f44: function() { + return addHeapObject(new Array); + }, + __wbg_new_dd2b680c8bf6ae29: function(arg0) { + return addHeapObject(new Uint8Array(getObject(arg0))); + }, + __wbg_next_3482f54c49e8af19: function() { + return handleError(function(arg0) { + return addHeapObject(getObject(arg0).next()); + }, arguments); + }, + __wbg_next_418f80d8f5303233: function(arg0) { + return addHeapObject(getObject(arg0).next); + }, + __wbg_prototypesetcall_bdcdcc5842e4d77d: function(arg0, arg1, arg2) { + Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2)); + }, + __wbg_set_3f1d0b984ed272ed: function(arg0, arg1, arg2) { + getObject(arg0)[takeObject(arg1)] = takeObject(arg2); + }, + __wbg_set_f43e577aea94465b: function(arg0, arg1, arg2) { + getObject(arg0)[arg1 >>> 0] = takeObject(arg2); + }, + __wbg_value_0546255b415e96c1: function(arg0) { + return addHeapObject(getObject(arg0).value); + }, + __wbindgen_cast_0000000000000001: function(arg0) { + return addHeapObject(arg0); + }, + __wbindgen_cast_0000000000000002: function(arg0, arg1) { + return addHeapObject(getStringFromWasm0(arg0, arg1)); + }, + __wbindgen_cast_0000000000000003: function(arg0) { + return addHeapObject(BigInt.asUintN(64, arg0)); + }, + __wbindgen_object_clone_ref: function(arg0) { + return addHeapObject(getObject(arg0)); + }, + __wbindgen_object_drop_ref: function(arg0) { + takeObject(arg0); + } + }; + return { + __proto__: null, + "./sentience_core_bg.js": import0 + }; +} function addHeapObject(obj) { heap_next === heap.length && heap.push(heap.length + 1); @@ -47,7 +224,7 @@ function getArrayU8FromWasm0(ptr, len) { let cachedDataViewMemory0 = null; function getDataViewMemory0() { - return (null === cachedDataViewMemory0 || !0 === cachedDataViewMemory0.buffer.detached || void 0 === cachedDataViewMemory0.buffer.detached && cachedDataViewMemory0.buffer !== wasm.memory.buffer) && (cachedDataViewMemory0 = new DataView(wasm.memory.buffer)), + return (null === cachedDataViewMemory0 || !0 === cachedDataViewMemory0.buffer.detached || void 0 === cachedDataViewMemory0.buffer.detached && cachedDataViewMemory0.buffer !== wasm.memory.buffer) && (cachedDataViewMemory0 = new DataView(wasm.memory.buffer)), cachedDataViewMemory0; } @@ -58,7 +235,7 @@ function getStringFromWasm0(ptr, len) { let cachedUint8ArrayMemory0 = null; function getUint8ArrayMemory0() { - return null !== cachedUint8ArrayMemory0 && 0 !== cachedUint8ArrayMemory0.byteLength || (cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer)), + return null !== cachedUint8ArrayMemory0 && 0 !== cachedUint8ArrayMemory0.byteLength || (cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer)), cachedUint8ArrayMemory0; } @@ -87,7 +264,7 @@ function isLikeNone(x) { function passStringToWasm0(arg, malloc, realloc) { if (void 0 === realloc) { const buf = cachedTextEncoder.encode(arg), ptr = malloc(buf.length, 1) >>> 0; - return getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf), WASM_VECTOR_LEN = buf.length, + return getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf), WASM_VECTOR_LEN = buf.length, ptr; } let len = arg.length, ptr = malloc(len, 1) >>> 0; @@ -139,32 +316,27 @@ const cachedTextEncoder = new TextEncoder; }; }); -let WASM_VECTOR_LEN = 0; - -export function analyze_page(val) { - return takeObject(wasm.analyze_page(addHeapObject(val))); -} +let wasmModule, wasm, WASM_VECTOR_LEN = 0; -export function analyze_page_with_options(val, options) { - return takeObject(wasm.analyze_page_with_options(addHeapObject(val), addHeapObject(options))); -} - -export function decide_and_act(_raw_elements) { - wasm.decide_and_act(addHeapObject(_raw_elements)); -} - -export function prune_for_api(val) { - return takeObject(wasm.prune_for_api(addHeapObject(val))); +function __wbg_finalize_init(instance, module) { + return wasm = instance.exports, wasmModule = module, cachedDataViewMemory0 = null, + cachedUint8ArrayMemory0 = null, wasm; } -const EXPECTED_RESPONSE_TYPES = new Set([ "basic", "cors", "default" ]); - async function __wbg_load(module, imports) { if ("function" == typeof Response && module instanceof Response) { if ("function" == typeof WebAssembly.instantiateStreaming) try { return await WebAssembly.instantiateStreaming(module, imports); } catch (e) { - if (!(module.ok && EXPECTED_RESPONSE_TYPES.has(module.type)) || "application/wasm" === module.headers.get("Content-Type")) throw e; + if (!(module.ok && function(type) { + switch (type) { + case "basic": + case "cors": + case "default": + return !0; + } + return !1; + }(module.type)) || "application/wasm" === module.headers.get("Content-Type")) throw e; } const bytes = await module.arrayBuffer(); return await WebAssembly.instantiate(bytes, imports); @@ -178,128 +350,6 @@ async function __wbg_load(module, imports) { } } -function __wbg_get_imports() { - const imports = { - wbg: {} - }; - return imports.wbg.__wbg_Error_52673b7de5a0ca89 = function(arg0, arg1) { - return addHeapObject(Error(getStringFromWasm0(arg0, arg1))); - }, imports.wbg.__wbg_Number_2d1dcfcf4ec51736 = function(arg0) { - return Number(getObject(arg0)); - }, imports.wbg.__wbg___wbindgen_bigint_get_as_i64_6e32f5e6aff02e1d = function(arg0, arg1) { - const v = getObject(arg1), ret = "bigint" == typeof v ? v : void 0; - getDataViewMemory0().setBigInt64(arg0 + 8, isLikeNone(ret) ? BigInt(0) : ret, !0), - getDataViewMemory0().setInt32(arg0 + 0, !isLikeNone(ret), !0); - }, imports.wbg.__wbg___wbindgen_boolean_get_dea25b33882b895b = function(arg0) { - const v = getObject(arg0), ret = "boolean" == typeof v ? v : void 0; - return isLikeNone(ret) ? 16777215 : ret ? 1 : 0; - }, imports.wbg.__wbg___wbindgen_debug_string_adfb662ae34724b6 = function(arg0, arg1) { - const ptr1 = passStringToWasm0(debugString(getObject(arg1)), wasm.__wbindgen_export, wasm.__wbindgen_export2), len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4, len1, !0), getDataViewMemory0().setInt32(arg0 + 0, ptr1, !0); - }, imports.wbg.__wbg___wbindgen_in_0d3e1e8f0c669317 = function(arg0, arg1) { - return getObject(arg0) in getObject(arg1); - }, imports.wbg.__wbg___wbindgen_is_bigint_0e1a2e3f55cfae27 = function(arg0) { - return "bigint" == typeof getObject(arg0); - }, imports.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd = function(arg0) { - return "function" == typeof getObject(arg0); - }, imports.wbg.__wbg___wbindgen_is_object_ce774f3490692386 = function(arg0) { - const val = getObject(arg0); - return "object" == typeof val && null !== val; - }, imports.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269 = function(arg0) { - return void 0 === getObject(arg0); - }, imports.wbg.__wbg___wbindgen_jsval_eq_b6101cc9cef1fe36 = function(arg0, arg1) { - return getObject(arg0) === getObject(arg1); - }, imports.wbg.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d = function(arg0, arg1) { - return getObject(arg0) == getObject(arg1); - }, imports.wbg.__wbg___wbindgen_number_get_9619185a74197f95 = function(arg0, arg1) { - const obj = getObject(arg1), ret = "number" == typeof obj ? obj : void 0; - getDataViewMemory0().setFloat64(arg0 + 8, isLikeNone(ret) ? 0 : ret, !0), getDataViewMemory0().setInt32(arg0 + 0, !isLikeNone(ret), !0); - }, imports.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42 = function(arg0, arg1) { - const obj = getObject(arg1), ret = "string" == typeof obj ? obj : void 0; - var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2), len1 = WASM_VECTOR_LEN; - getDataViewMemory0().setInt32(arg0 + 4, len1, !0), getDataViewMemory0().setInt32(arg0 + 0, ptr1, !0); - }, imports.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e = function(arg0, arg1) { - throw new Error(getStringFromWasm0(arg0, arg1)); - }, imports.wbg.__wbg_call_abb4ff46ce38be40 = function() { - return handleError(function(arg0, arg1) { - return addHeapObject(getObject(arg0).call(getObject(arg1))); - }, arguments); - }, imports.wbg.__wbg_done_62ea16af4ce34b24 = function(arg0) { - return getObject(arg0).done; - }, imports.wbg.__wbg_error_7bc7d576a6aaf855 = function(arg0) {}, imports.wbg.__wbg_get_6b7bd52aca3f9671 = function(arg0, arg1) { - return addHeapObject(getObject(arg0)[arg1 >>> 0]); - }, imports.wbg.__wbg_get_af9dab7e9603ea93 = function() { - return handleError(function(arg0, arg1) { - return addHeapObject(Reflect.get(getObject(arg0), getObject(arg1))); - }, arguments); - }, imports.wbg.__wbg_get_with_ref_key_1dc361bd10053bfe = function(arg0, arg1) { - return addHeapObject(getObject(arg0)[getObject(arg1)]); - }, imports.wbg.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355 = function(arg0) { - let result; - try { - result = getObject(arg0) instanceof ArrayBuffer; - } catch (_) { - result = !1; - } - return result; - }, imports.wbg.__wbg_instanceof_Uint8Array_da54ccc9d3e09434 = function(arg0) { - let result; - try { - result = getObject(arg0) instanceof Uint8Array; - } catch (_) { - result = !1; - } - return result; - }, imports.wbg.__wbg_isArray_51fd9e6422c0a395 = function(arg0) { - return Array.isArray(getObject(arg0)); - }, imports.wbg.__wbg_isSafeInteger_ae7d3f054d55fa16 = function(arg0) { - return Number.isSafeInteger(getObject(arg0)); - }, imports.wbg.__wbg_iterator_27b7c8b35ab3e86b = function() { - return addHeapObject(Symbol.iterator); - }, imports.wbg.__wbg_js_click_element_2fe1e774f3d232c7 = function(arg0) { - js_click_element(arg0); - }, imports.wbg.__wbg_length_22ac23eaec9d8053 = function(arg0) { - return getObject(arg0).length; - }, imports.wbg.__wbg_length_d45040a40c570362 = function(arg0) { - return getObject(arg0).length; - }, imports.wbg.__wbg_new_1ba21ce319a06297 = function() { - return addHeapObject(new Object); - }, imports.wbg.__wbg_new_25f239778d6112b9 = function() { - return addHeapObject(new Array); - }, imports.wbg.__wbg_new_6421f6084cc5bc5a = function(arg0) { - return addHeapObject(new Uint8Array(getObject(arg0))); - }, imports.wbg.__wbg_next_138a17bbf04e926c = function(arg0) { - return addHeapObject(getObject(arg0).next); - }, imports.wbg.__wbg_next_3cfe5c0fe2a4cc53 = function() { - return handleError(function(arg0) { - return addHeapObject(getObject(arg0).next()); - }, arguments); - }, imports.wbg.__wbg_prototypesetcall_dfe9b766cdc1f1fd = function(arg0, arg1, arg2) { - Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2)); - }, imports.wbg.__wbg_set_3f1d0b984ed272ed = function(arg0, arg1, arg2) { - getObject(arg0)[takeObject(arg1)] = takeObject(arg2); - }, imports.wbg.__wbg_set_7df433eea03a5c14 = function(arg0, arg1, arg2) { - getObject(arg0)[arg1 >>> 0] = takeObject(arg2); - }, imports.wbg.__wbg_value_57b7b035e117f7ee = function(arg0) { - return addHeapObject(getObject(arg0).value); - }, imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) { - return addHeapObject(getStringFromWasm0(arg0, arg1)); - }, imports.wbg.__wbindgen_cast_4625c577ab2ec9ee = function(arg0) { - return addHeapObject(BigInt.asUintN(64, arg0)); - }, imports.wbg.__wbindgen_cast_d6cd19b81560fd6e = function(arg0) { - return addHeapObject(arg0); - }, imports.wbg.__wbindgen_object_clone_ref = function(arg0) { - return addHeapObject(getObject(arg0)); - }, imports.wbg.__wbindgen_object_drop_ref = function(arg0) { - takeObject(arg0); - }, imports; -} - -function __wbg_finalize_init(instance, module) { - return wasm = instance.exports, __wbg_init.__wbindgen_wasm_module = module, cachedDataViewMemory0 = null, - cachedUint8ArrayMemory0 = null, wasm; -} - function initSync(module) { if (void 0 !== wasm) return wasm; void 0 !== module && Object.getPrototypeOf(module) === Object.prototype && ({module: module} = module); @@ -310,7 +360,7 @@ function initSync(module) { async function __wbg_init(module_or_path) { if (void 0 !== wasm) return wasm; - void 0 !== module_or_path && Object.getPrototypeOf(module_or_path) === Object.prototype && ({module_or_path: module_or_path} = module_or_path), + void 0 !== module_or_path && Object.getPrototypeOf(module_or_path) === Object.prototype && ({module_or_path: module_or_path} = module_or_path), void 0 === module_or_path && (module_or_path = new URL("sentience_core_bg.wasm", import.meta.url)); const imports = __wbg_get_imports(); ("string" == typeof module_or_path || "function" == typeof Request && module_or_path instanceof Request || "function" == typeof URL && module_or_path instanceof URL) && (module_or_path = fetch(module_or_path)); @@ -318,6 +368,4 @@ async function __wbg_init(module_or_path) { return __wbg_finalize_init(instance, module); } -export { initSync }; - -export default __wbg_init; +export { initSync, __wbg_init as default }; \ No newline at end of file diff --git a/sentience/extension/pkg/sentience_core_bg.wasm b/sentience/extension/pkg/sentience_core_bg.wasm index 71ba055..e6284e4 100644 Binary files a/sentience/extension/pkg/sentience_core_bg.wasm and b/sentience/extension/pkg/sentience_core_bg.wasm differ diff --git a/sentience/extension/release.json b/sentience/extension/release.json index c6e5899..30f0ebb 100644 --- a/sentience/extension/release.json +++ b/sentience/extension/release.json @@ -1,9 +1,9 @@ { - "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/276563152", - "assets_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/276563152/assets", - "upload_url": "https://uploads.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/276563152/assets{?name,label}", - "html_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/tag/v2.4.1", - "id": 276563152, + "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/276945051", + "assets_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/276945051/assets", + "upload_url": "https://uploads.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/276945051/assets{?name,label}", + "html_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/tag/v2.5.0", + "id": 276945051, "author": { "login": "rcholic", "id": 135060, @@ -25,21 +25,21 @@ "user_view_type": "public", "site_admin": false }, - "node_id": "RE_kwDOQshiJ84QfATQ", - "tag_name": "v2.4.1", + "node_id": "RE_kwDOQshiJ84Qgdib", + "tag_name": "v2.5.0", "target_commitish": "main", - "name": "Release v2.4.1", + "name": "Release v2.5.0", "draft": false, "immutable": false, "prerelease": false, - "created_at": "2026-01-14T01:02:36Z", - "updated_at": "2026-01-14T01:04:42Z", - "published_at": "2026-01-14T01:04:00Z", + "created_at": "2026-01-15T05:36:52Z", + "updated_at": "2026-01-15T05:37:59Z", + "published_at": "2026-01-15T05:37:19Z", "assets": [ { - "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/assets/340210571", - "id": 340210571, - "node_id": "RA_kwDOQshiJ84URzOL", + "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/assets/340810705", + "id": 340810705, + "node_id": "RA_kwDOQshiJ84UUFvR", "name": "extension-files.tar.gz", "label": "", "uploader": { @@ -65,17 +65,17 @@ }, "content_type": "application/gzip", "state": "uploaded", - "size": 74389, - "digest": "sha256:ed8aeac5d364186b1a6b255aa3aeb5b562f204830f75402d528f2c7e6d819cfd", - "download_count": 4, - "created_at": "2026-01-14T01:04:41Z", - "updated_at": "2026-01-14T01:04:42Z", - "browser_download_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/download/v2.4.1/extension-files.tar.gz" + "size": 75548, + "digest": "sha256:8cfe2dd1bc2b927b9fbbc7c670b72943cb3704f830bce147606c9dd8b24ccc20", + "download_count": 0, + "created_at": "2026-01-15T05:37:59Z", + "updated_at": "2026-01-15T05:37:59Z", + "browser_download_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/download/v2.5.0/extension-files.tar.gz" }, { - "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/assets/340210572", - "id": 340210572, - "node_id": "RA_kwDOQshiJ84URzOM", + "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/assets/340810706", + "id": 340810706, + "node_id": "RA_kwDOQshiJ84UUFvS", "name": "extension-package.zip", "label": "", "uploader": { @@ -101,15 +101,15 @@ }, "content_type": "application/zip", "state": "uploaded", - "size": 76376, - "digest": "sha256:7f209ac1eac7d1a3be1a12248bf523f82a47f6767501dba7dc01660ed218763e", + "size": 77323, + "digest": "sha256:6be50503ddda9f0457b05b4399159de5e456d3fa3c5a6f6f18d8d287d52b5546", "download_count": 0, - "created_at": "2026-01-14T01:04:41Z", - "updated_at": "2026-01-14T01:04:42Z", - "browser_download_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/download/v2.4.1/extension-package.zip" + "created_at": "2026-01-15T05:37:59Z", + "updated_at": "2026-01-15T05:37:59Z", + "browser_download_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/download/v2.5.0/extension-package.zip" } ], - "tarball_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/tarball/v2.4.1", - "zipball_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/zipball/v2.4.1", + "tarball_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/tarball/v2.5.0", + "zipball_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/zipball/v2.5.0", "body": "" }