From 4e3f8acec4eea5e6764642cc662f1ff7848e6d07 Mon Sep 17 00:00:00 2001 From: rcholic Date: Sun, 18 Jan 2026 17:17:56 +0000 Subject: [PATCH] chore: sync extension files from sentience-chrome v2.6.0 --- sentience/extension/injected_api.js | 50 +++++++++++++-- sentience/extension/manifest.json | 2 +- .../extension/pkg/sentience_core_bg.wasm | Bin 108711 -> 112142 bytes sentience/extension/release.json | 60 +++++++++--------- 4 files changed, 75 insertions(+), 37 deletions(-) diff --git a/sentience/extension/injected_api.js b/sentience/extension/injected_api.js index abaee4b..0778094 100644 --- a/sentience/extension/injected_api.js +++ b/sentience/extension/injected_api.js @@ -157,6 +157,21 @@ } return null; } + function normalizeNearbyText(text) { + return text ? text.replace(/\s+/g, " ").trim() : ""; + } + function isInteractableElement(el) { + if (!el || !el.tagName) return !1; + const tag = el.tagName.toLowerCase(), role = el.getAttribute ? el.getAttribute("role") : null, hasTabIndex = !!el.hasAttribute && el.hasAttribute("tabindex"), hasHref = "A" === el.tagName && !!el.hasAttribute && el.hasAttribute("href"); + if ([ "button", "input", "textarea", "select", "option", "details", "summary", "a" ].includes(tag)) return !("a" === tag && !hasHref); + if (role && [ "button", "link", "tab", "menuitem", "checkbox", "radio", "switch", "slider", "combobox", "textbox", "searchbox", "spinbutton" ].includes(role.toLowerCase())) return !0; + if (hasTabIndex) return !0; + if (el.onclick || el.onkeydown || el.onkeypress || el.onkeyup) return !0; + if (el.getAttribute) { + if (el.getAttribute("onclick") || el.getAttribute("onkeydown") || el.getAttribute("onkeypress") || el.getAttribute("onkeyup")) return !0; + } + return !1; + } function getText(el) { if (el.getAttribute("aria-label")) return el.getAttribute("aria-label"); if ("INPUT" === el.tagName) { @@ -391,11 +406,7 @@ }), textVal = semanticText.text || getText(el), inferredRole = function(el, options = {}) { const {enableInference: enableInference = !0} = options; if (!enableInference) return null; - if (!function(el) { - if (!el || !el.tagName) return !1; - const tag = el.tagName.toLowerCase(), role = el.getAttribute ? el.getAttribute("role") : null, hasTabIndex = !!el.hasAttribute && el.hasAttribute("tabindex"), hasHref = "A" === el.tagName && !!el.hasAttribute && el.hasAttribute("href"); - return [ "button", "input", "textarea", "select", "option", "details", "summary", "a" ].includes(tag) ? !("a" === tag && !hasHref) : !(!role || ![ "button", "link", "tab", "menuitem", "checkbox", "radio", "switch", "slider", "combobox", "textbox", "searchbox", "spinbutton" ].includes(role.toLowerCase())) || (!!hasTabIndex || (!!(el.onclick || el.onkeydown || el.onkeypress || el.onkeyup) || !(!el.getAttribute || !(el.getAttribute("onclick") || el.getAttribute("onkeydown") || el.getAttribute("onkeypress") || el.getAttribute("onkeyup"))))); - }(el)) return null; + if (!isInteractableElement(el)) return null; const hasAriaLabel = el.getAttribute ? el.getAttribute("aria-label") : null, hasExplicitRole = el.getAttribute ? el.getAttribute("role") : null; if (hasAriaLabel || hasExplicitRole) return null; const tag = el.tagName.toLowerCase(); @@ -478,7 +489,33 @@ } const title = el.getAttribute("title"); return title && title.trim() ? title.trim().substring(0, 200) : ""; - }(el) || null); + }(el) || null), nearbyText = isInteractableElement(el) ? function(el, options = {}) { + if (!el) return null; + const maxLen = "number" == typeof options.maxLen ? options.maxLen : 80, ownText = normalizeNearbyText(el.innerText || ""), candidates = [], collect = node => { + if (!node) return; + let text = ""; + try { + text = normalizeNearbyText(node.innerText || node.textContent || ""); + } catch (e) { + text = ""; + } + text && text !== ownText && candidates.push(text); + }; + if (collect(el.previousElementSibling), collect(el.nextElementSibling), 0 === candidates.length && el.parentElement) { + let parentText = ""; + try { + parentText = normalizeNearbyText(el.parentElement.innerText || ""); + } catch (e) { + parentText = ""; + } + parentText && parentText !== ownText && parentText.length <= 120 && candidates.push(parentText); + } + if (0 === candidates.length) return null; + let text = candidates[0]; + return text.length > maxLen && (text = text.slice(0, maxLen).trim()), text || null; + }(el, { + maxLen: 80 + }) : null; rawData.push({ id: idx, tag: tagName, @@ -509,6 +546,7 @@ 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, + nearby_text: toSafeString(nearbyText), href: toSafeString(el.href || el.getAttribute("href") || el.closest && el.closest("a")?.href || null), class: toSafeString(getClassName(el)), value: null !== safeValue ? toSafeString(safeValue) : null, diff --git a/sentience/extension/manifest.json b/sentience/extension/manifest.json index b497bf3..1be2d29 100644 --- a/sentience/extension/manifest.json +++ b/sentience/extension/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Sentience Semantic Visual Grounding Extractor", - "version": "2.4.1", + "version": "2.6.0", "description": "Extract semantic visual grounding data from web pages", "permissions": ["activeTab", "scripting"], "host_permissions": [""], diff --git a/sentience/extension/pkg/sentience_core_bg.wasm b/sentience/extension/pkg/sentience_core_bg.wasm index e6284e4563e29183ccde81e5daba43f9ca51220d..a802ced0fcfc3b72a57d6d63436f443173a21c29 100644 GIT binary patch delta 33985 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