From 1fadc99a18330d91867d3730c3b290bb45c29d08 Mon Sep 17 00:00:00 2001 From: rcholic Date: Fri, 23 Jan 2026 06:15:26 +0000 Subject: [PATCH] chore: sync extension files from sentience-chrome v2.8.3 --- src/extension/background.js | 2 +- src/extension/injected_api.js | 108 ++++++++++++++++++++++++---------- src/extension/manifest.json | 2 +- src/extension/release.json | 92 ++++++++++++++--------------- 4 files changed, 125 insertions(+), 79 deletions(-) diff --git a/src/extension/background.js b/src/extension/background.js index 2923f555..b5192d95 100644 --- a/src/extension/background.js +++ b/src/extension/background.js @@ -1,4 +1,4 @@ -import init, { analyze_page_with_options, analyze_page, prune_for_api } from "../pkg/sentience_core.js"; +import init, { analyze_page_with_options, analyze_page, prune_for_api } from "./pkg/sentience_core.js"; let wasmReady = !1, wasmInitPromise = null; diff --git a/src/extension/injected_api.js b/src/extension/injected_api.js index da5363b5..12ad84b1 100644 --- a/src/extension/injected_api.js +++ b/src/extension/injected_api.js @@ -792,38 +792,84 @@ } }); } catch (error) {} - const processed = await function(rawData, options) { - return new Promise((resolve, reject) => { - const requestId = Math.random().toString(36).substring(7); - let resolved = !1; - const timeout = setTimeout(() => { - resolved || (resolved = !0, window.removeEventListener("message", listener), reject(new Error("WASM processing timeout - extension may be unresponsive. Try reloading the extension."))); - }, 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), - e.data.error ? reject(new Error(e.data.error)) : resolve({ - elements: e.data.elements, - raw_elements: e.data.raw_elements, - duration: e.data.duration - }); + const fallbackElementsFromRaw = raw => (raw || []).map(r => { + const rect = r && r.rect || { + x: 0, + y: 0, + width: 0, + height: 0 + }, attrs = r && r.attributes || {}, role = attrs.role || r && (r.inferred_role || r.inferredRole) || (r && "a" === r.tag ? "link" : "generic"), href = attrs.href || r && r.href || null, isClickable = "link" === role || "button" === role || "textbox" === role || "checkbox" === role || "radio" === role || "combobox" === role || !!href; + return { + id: Number(r && r.id || 0), + role: String(role || "generic"), + text: r && (r.text || r.semantic_text || r.semanticText) || null, + importance: 1, + bbox: { + x: Number(rect.x || 0), + y: Number(rect.y || 0), + width: Number(rect.width || 0), + height: Number(rect.height || 0) + }, + visual_cues: { + is_primary: !1, + is_clickable: !!isClickable + }, + in_viewport: !0, + is_occluded: !(!r || !r.occluded && !r.is_occluded), + z_index: 0, + name: attrs.aria_label || attrs.ariaLabel || null, + value: r && r.value || null, + input_type: attrs.type_ || attrs.type || null, + checked: "boolean" == typeof (r && r.checked) ? r.checked : null, + disabled: "boolean" == typeof (r && r.disabled) ? r.disabled : null, + expanded: "boolean" == typeof (r && r.expanded) ? r.expanded : null + }; + }); + let processed = null; + try { + processed = await function(rawData, options) { + return new Promise((resolve, reject) => { + const requestId = Math.random().toString(36).substring(7); + let resolved = !1; + const timeout = setTimeout(() => { + resolved || (resolved = !0, window.removeEventListener("message", listener), reject(new Error("WASM processing timeout - extension may be unresponsive. Try reloading the extension."))); + }, 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), + e.data.error ? reject(new Error(e.data.error)) : resolve({ + elements: e.data.elements, + raw_elements: e.data.raw_elements, + duration: e.data.duration + }); + } + }; + window.addEventListener("message", listener); + try { + window.postMessage({ + type: "SENTIENCE_SNAPSHOT_REQUEST", + requestId: requestId, + rawData: rawData, + options: options + }, "*"); + } catch (error) { + resolved || (resolved = !0, clearTimeout(timeout), window.removeEventListener("message", listener), + reject(new Error(`Failed to send snapshot request: ${error.message}`))); } - }; - window.addEventListener("message", listener); - try { - window.postMessage({ - type: "SENTIENCE_SNAPSHOT_REQUEST", - requestId: requestId, - rawData: rawData, - options: options - }, "*"); - } catch (error) { - resolved || (resolved = !0, clearTimeout(timeout), window.removeEventListener("message", listener), - reject(new Error(`Failed to send snapshot request: ${error.message}`))); - } - }); - }(allRawElements, options); - if (!processed || !processed.elements) throw new Error("WASM processing returned invalid result"); + }); + }(allRawElements, options); + } catch (error) { + processed = { + elements: fallbackElementsFromRaw(allRawElements), + raw_elements: allRawElements, + duration: null + }; + } + processed && processed.elements || (processed = { + elements: fallbackElementsFromRaw(allRawElements), + raw_elements: allRawElements, + duration: null + }); let screenshot = null; options.screenshot && (screenshot = await function(options) { return new Promise(resolve => { diff --git a/src/extension/manifest.json b/src/extension/manifest.json index 35e2dc8c..55838cac 100644 --- a/src/extension/manifest.json +++ b/src/extension/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Sentience Semantic Visual Grounding Extractor", - "version": "2.8.1", + "version": "2.8.3", "description": "Extract semantic visual grounding data from web pages", "permissions": ["activeTab", "scripting"], "host_permissions": [""], diff --git a/src/extension/release.json b/src/extension/release.json index 7a6c71ce..9bac1706 100644 --- a/src/extension/release.json +++ b/src/extension/release.json @@ -1,45 +1,45 @@ { - "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/279238797", - "assets_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/279238797/assets", - "upload_url": "https://uploads.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/279238797/assets{?name,label}", - "html_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/tag/v2.8.1", - "id": 279238797, + "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/279250819", + "assets_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/279250819/assets", + "upload_url": "https://uploads.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/279250819/assets{?name,label}", + "html_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/tag/v2.8.3", + "id": 279250819, "author": { - "login": "rcholic", - "id": 135060, - "node_id": "MDQ6VXNlcjEzNTA2MA==", - "avatar_url": "https://avatars.githubusercontent.com/u/135060?v=4", + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", "gravatar_id": "", - "url": "https://api.github.com/users/rcholic", - "html_url": "https://github.com/rcholic", - "followers_url": "https://api.github.com/users/rcholic/followers", - "following_url": "https://api.github.com/users/rcholic/following{/other_user}", - "gists_url": "https://api.github.com/users/rcholic/gists{/gist_id}", - "starred_url": "https://api.github.com/users/rcholic/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/rcholic/subscriptions", - "organizations_url": "https://api.github.com/users/rcholic/orgs", - "repos_url": "https://api.github.com/users/rcholic/repos", - "events_url": "https://api.github.com/users/rcholic/events{/privacy}", - "received_events_url": "https://api.github.com/users/rcholic/received_events", - "type": "User", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", "user_view_type": "public", "site_admin": false }, - "node_id": "RE_kwDOQshiJ84QpNiN", - "tag_name": "v2.8.1", + "node_id": "RE_kwDOQshiJ84QpQeD", + "tag_name": "v2.8.3", "target_commitish": "main", - "name": "Release v2.8.1", + "name": "Release v2.8.3", "draft": false, "immutable": false, "prerelease": false, - "created_at": "2026-01-23T04:58:13Z", - "updated_at": "2026-01-23T05:00:02Z", - "published_at": "2026-01-23T04:58:45Z", + "created_at": "2026-01-23T06:12:02Z", + "updated_at": "2026-01-23T06:14:22Z", + "published_at": "2026-01-23T06:13:11Z", "assets": [ { - "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/assets/344633711", - "id": 344633711, - "node_id": "RA_kwDOQshiJ84UirFv", + "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/assets/344654926", + "id": 344654926, + "node_id": "RA_kwDOQshiJ84UiwRO", "name": "extension-files.tar.gz", "label": "", "uploader": { @@ -65,17 +65,17 @@ }, "content_type": "application/gzip", "state": "uploaded", - "size": 78755, - "digest": "sha256:436c0c5b8bbe34988b2dd43fccc0d8b0675f1d1d6f1a5164e30740b5bdccaf21", + "size": 79317, + "digest": "sha256:0d8979ec6c3cde0fb679501f89e5fdb0db8d547661b1da7d6299f28262ad1fc4", "download_count": 0, - "created_at": "2026-01-23T05:00:02Z", - "updated_at": "2026-01-23T05:00:02Z", - "browser_download_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/download/v2.8.1/extension-files.tar.gz" + "created_at": "2026-01-23T06:13:12Z", + "updated_at": "2026-01-23T06:13:12Z", + "browser_download_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/download/v2.8.3/extension-files.tar.gz" }, { - "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/assets/344633712", - "id": 344633712, - "node_id": "RA_kwDOQshiJ84UirFw", + "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/assets/344654925", + "id": 344654925, + "node_id": "RA_kwDOQshiJ84UiwRN", "name": "extension-package.zip", "label": "", "uploader": { @@ -101,15 +101,15 @@ }, "content_type": "application/zip", "state": "uploaded", - "size": 80234, - "digest": "sha256:238136c6dee79502b6fa71980af14bb9f4552b63d836de61867051a0e75b797b", + "size": 80784, + "digest": "sha256:cc80691d6efc868a9d4009fe1b8bdb94f33017666a7d2db429a1f4aaee978616", "download_count": 0, - "created_at": "2026-01-23T05:00:02Z", - "updated_at": "2026-01-23T05:00:02Z", - "browser_download_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/download/v2.8.1/extension-package.zip" + "created_at": "2026-01-23T06:13:12Z", + "updated_at": "2026-01-23T06:13:12Z", + "browser_download_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/download/v2.8.3/extension-package.zip" } ], - "tarball_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/tarball/v2.8.1", - "zipball_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/zipball/v2.8.1", - "body": "" + "tarball_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/tarball/v2.8.3", + "zipball_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/zipball/v2.8.3", + "body": "**Full Changelog**: https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/compare/v2.8.2...v2.8.3" }