sentienceapi 0.95.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of sentienceapi might be problematic. Click here for more details.

Files changed (82) hide show
  1. sentience/__init__.py +253 -0
  2. sentience/_extension_loader.py +195 -0
  3. sentience/action_executor.py +215 -0
  4. sentience/actions.py +1020 -0
  5. sentience/agent.py +1181 -0
  6. sentience/agent_config.py +46 -0
  7. sentience/agent_runtime.py +424 -0
  8. sentience/asserts/__init__.py +70 -0
  9. sentience/asserts/expect.py +621 -0
  10. sentience/asserts/query.py +383 -0
  11. sentience/async_api.py +108 -0
  12. sentience/backends/__init__.py +137 -0
  13. sentience/backends/actions.py +343 -0
  14. sentience/backends/browser_use_adapter.py +241 -0
  15. sentience/backends/cdp_backend.py +393 -0
  16. sentience/backends/exceptions.py +211 -0
  17. sentience/backends/playwright_backend.py +194 -0
  18. sentience/backends/protocol.py +216 -0
  19. sentience/backends/sentience_context.py +469 -0
  20. sentience/backends/snapshot.py +427 -0
  21. sentience/base_agent.py +196 -0
  22. sentience/browser.py +1215 -0
  23. sentience/browser_evaluator.py +299 -0
  24. sentience/canonicalization.py +207 -0
  25. sentience/cli.py +130 -0
  26. sentience/cloud_tracing.py +807 -0
  27. sentience/constants.py +6 -0
  28. sentience/conversational_agent.py +543 -0
  29. sentience/element_filter.py +136 -0
  30. sentience/expect.py +188 -0
  31. sentience/extension/background.js +104 -0
  32. sentience/extension/content.js +161 -0
  33. sentience/extension/injected_api.js +914 -0
  34. sentience/extension/manifest.json +36 -0
  35. sentience/extension/pkg/sentience_core.d.ts +51 -0
  36. sentience/extension/pkg/sentience_core.js +323 -0
  37. sentience/extension/pkg/sentience_core_bg.wasm +0 -0
  38. sentience/extension/pkg/sentience_core_bg.wasm.d.ts +10 -0
  39. sentience/extension/release.json +115 -0
  40. sentience/formatting.py +15 -0
  41. sentience/generator.py +202 -0
  42. sentience/inspector.py +367 -0
  43. sentience/llm_interaction_handler.py +191 -0
  44. sentience/llm_provider.py +875 -0
  45. sentience/llm_provider_utils.py +120 -0
  46. sentience/llm_response_builder.py +153 -0
  47. sentience/models.py +846 -0
  48. sentience/ordinal.py +280 -0
  49. sentience/overlay.py +222 -0
  50. sentience/protocols.py +228 -0
  51. sentience/query.py +303 -0
  52. sentience/read.py +188 -0
  53. sentience/recorder.py +589 -0
  54. sentience/schemas/trace_v1.json +335 -0
  55. sentience/screenshot.py +100 -0
  56. sentience/sentience_methods.py +86 -0
  57. sentience/snapshot.py +706 -0
  58. sentience/snapshot_diff.py +126 -0
  59. sentience/text_search.py +262 -0
  60. sentience/trace_event_builder.py +148 -0
  61. sentience/trace_file_manager.py +197 -0
  62. sentience/trace_indexing/__init__.py +27 -0
  63. sentience/trace_indexing/index_schema.py +199 -0
  64. sentience/trace_indexing/indexer.py +414 -0
  65. sentience/tracer_factory.py +322 -0
  66. sentience/tracing.py +449 -0
  67. sentience/utils/__init__.py +40 -0
  68. sentience/utils/browser.py +46 -0
  69. sentience/utils/element.py +257 -0
  70. sentience/utils/formatting.py +59 -0
  71. sentience/utils.py +296 -0
  72. sentience/verification.py +380 -0
  73. sentience/visual_agent.py +2058 -0
  74. sentience/wait.py +139 -0
  75. sentienceapi-0.95.0.dist-info/METADATA +984 -0
  76. sentienceapi-0.95.0.dist-info/RECORD +82 -0
  77. sentienceapi-0.95.0.dist-info/WHEEL +5 -0
  78. sentienceapi-0.95.0.dist-info/entry_points.txt +2 -0
  79. sentienceapi-0.95.0.dist-info/licenses/LICENSE +24 -0
  80. sentienceapi-0.95.0.dist-info/licenses/LICENSE-APACHE +201 -0
  81. sentienceapi-0.95.0.dist-info/licenses/LICENSE-MIT +21 -0
  82. sentienceapi-0.95.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,36 @@
1
+ {
2
+ "manifest_version": 3,
3
+ "name": "Sentience Semantic Visual Grounding Extractor",
4
+ "version": "2.4.1",
5
+ "description": "Extract semantic visual grounding data from web pages",
6
+ "permissions": ["activeTab", "scripting"],
7
+ "host_permissions": ["<all_urls>"],
8
+ "background": {
9
+ "service_worker": "background.js",
10
+ "type": "module"
11
+ },
12
+ "web_accessible_resources": [
13
+ {
14
+ "resources": ["pkg/*"],
15
+ "matches": ["<all_urls>"]
16
+ }
17
+ ],
18
+ "content_scripts": [
19
+ {
20
+ "matches": ["<all_urls>"],
21
+ "js": ["content.js"],
22
+ "run_at": "document_start",
23
+ "all_frames": true
24
+ },
25
+ {
26
+ "matches": ["<all_urls>"],
27
+ "js": ["injected_api.js"],
28
+ "run_at": "document_idle",
29
+ "world": "MAIN",
30
+ "all_frames": true
31
+ }
32
+ ],
33
+ "content_security_policy": {
34
+ "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'"
35
+ }
36
+ }
@@ -0,0 +1,51 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+
4
+ export function analyze_page(val: any): any;
5
+
6
+ export function analyze_page_with_options(val: any, options: any): any;
7
+
8
+ export function decide_and_act(_raw_elements: any): void;
9
+
10
+ /**
11
+ * Prune raw elements before sending to API
12
+ * This is a "dumb" filter that reduces payload size without leaking proprietary IP
13
+ * Filters out: tiny elements, invisible elements, non-interactive wrapper divs
14
+ * Amazon: 5000-6000 elements -> ~200-400 elements (~95% reduction)
15
+ */
16
+ export function prune_for_api(val: any): any;
17
+
18
+ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
19
+
20
+ export interface InitOutput {
21
+ readonly memory: WebAssembly.Memory;
22
+ readonly analyze_page: (a: number) => number;
23
+ readonly analyze_page_with_options: (a: number, b: number) => number;
24
+ readonly decide_and_act: (a: number) => void;
25
+ readonly prune_for_api: (a: number) => number;
26
+ readonly __wbindgen_export: (a: number, b: number) => number;
27
+ readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
28
+ readonly __wbindgen_export3: (a: number) => void;
29
+ }
30
+
31
+ export type SyncInitInput = BufferSource | WebAssembly.Module;
32
+
33
+ /**
34
+ * Instantiates the given `module`, which can either be bytes or
35
+ * a precompiled `WebAssembly.Module`.
36
+ *
37
+ * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
38
+ *
39
+ * @returns {InitOutput}
40
+ */
41
+ export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
42
+
43
+ /**
44
+ * If `module_or_path` is {RequestInfo} or {URL}, makes a request and
45
+ * for everything else, calls `WebAssembly.instantiate` directly.
46
+ *
47
+ * @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
48
+ *
49
+ * @returns {Promise<InitOutput>}
50
+ */
51
+ export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
@@ -0,0 +1,323 @@
1
+ let wasm;
2
+
3
+ function addHeapObject(obj) {
4
+ heap_next === heap.length && heap.push(heap.length + 1);
5
+ const idx = heap_next;
6
+ return heap_next = heap[idx], heap[idx] = obj, idx;
7
+ }
8
+
9
+ function debugString(val) {
10
+ const type = typeof val;
11
+ if ("number" == type || "boolean" == type || null == val) return `${val}`;
12
+ if ("string" == type) return `"${val}"`;
13
+ if ("symbol" == type) {
14
+ const description = val.description;
15
+ return null == description ? "Symbol" : `Symbol(${description})`;
16
+ }
17
+ if ("function" == type) {
18
+ const name = val.name;
19
+ return "string" == typeof name && name.length > 0 ? `Function(${name})` : "Function";
20
+ }
21
+ if (Array.isArray(val)) {
22
+ const length = val.length;
23
+ let debug = "[";
24
+ length > 0 && (debug += debugString(val[0]));
25
+ for (let i = 1; i < length; i++) debug += ", " + debugString(val[i]);
26
+ return debug += "]", debug;
27
+ }
28
+ const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
29
+ let className;
30
+ if (!(builtInMatches && builtInMatches.length > 1)) return toString.call(val);
31
+ if (className = builtInMatches[1], "Object" == className) try {
32
+ return "Object(" + JSON.stringify(val) + ")";
33
+ } catch (_) {
34
+ return "Object";
35
+ }
36
+ return val instanceof Error ? `${val.name}: ${val.message}\n${val.stack}` : className;
37
+ }
38
+
39
+ function dropObject(idx) {
40
+ idx < 132 || (heap[idx] = heap_next, heap_next = idx);
41
+ }
42
+
43
+ function getArrayU8FromWasm0(ptr, len) {
44
+ return ptr >>>= 0, getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
45
+ }
46
+
47
+ let cachedDataViewMemory0 = null;
48
+
49
+ function getDataViewMemory0() {
50
+ return (null === cachedDataViewMemory0 || !0 === cachedDataViewMemory0.buffer.detached || void 0 === cachedDataViewMemory0.buffer.detached && cachedDataViewMemory0.buffer !== wasm.memory.buffer) && (cachedDataViewMemory0 = new DataView(wasm.memory.buffer)),
51
+ cachedDataViewMemory0;
52
+ }
53
+
54
+ function getStringFromWasm0(ptr, len) {
55
+ return decodeText(ptr >>>= 0, len);
56
+ }
57
+
58
+ let cachedUint8ArrayMemory0 = null;
59
+
60
+ function getUint8ArrayMemory0() {
61
+ return null !== cachedUint8ArrayMemory0 && 0 !== cachedUint8ArrayMemory0.byteLength || (cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer)),
62
+ cachedUint8ArrayMemory0;
63
+ }
64
+
65
+ function getObject(idx) {
66
+ return heap[idx];
67
+ }
68
+
69
+ function handleError(f, args) {
70
+ try {
71
+ return f.apply(this, args);
72
+ } catch (e) {
73
+ wasm.__wbindgen_export3(addHeapObject(e));
74
+ }
75
+ }
76
+
77
+ let heap = new Array(128).fill(void 0);
78
+
79
+ heap.push(void 0, null, !0, !1);
80
+
81
+ let heap_next = heap.length;
82
+
83
+ function isLikeNone(x) {
84
+ return null == x;
85
+ }
86
+
87
+ function passStringToWasm0(arg, malloc, realloc) {
88
+ if (void 0 === realloc) {
89
+ const buf = cachedTextEncoder.encode(arg), ptr = malloc(buf.length, 1) >>> 0;
90
+ return getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf), WASM_VECTOR_LEN = buf.length,
91
+ ptr;
92
+ }
93
+ let len = arg.length, ptr = malloc(len, 1) >>> 0;
94
+ const mem = getUint8ArrayMemory0();
95
+ let offset = 0;
96
+ for (;offset < len; offset++) {
97
+ const code = arg.charCodeAt(offset);
98
+ if (code > 127) break;
99
+ mem[ptr + offset] = code;
100
+ }
101
+ if (offset !== len) {
102
+ 0 !== offset && (arg = arg.slice(offset)), ptr = realloc(ptr, len, len = offset + 3 * arg.length, 1) >>> 0;
103
+ const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
104
+ offset += cachedTextEncoder.encodeInto(arg, view).written, ptr = realloc(ptr, len, offset, 1) >>> 0;
105
+ }
106
+ return WASM_VECTOR_LEN = offset, ptr;
107
+ }
108
+
109
+ function takeObject(idx) {
110
+ const ret = getObject(idx);
111
+ return dropObject(idx), ret;
112
+ }
113
+
114
+ let cachedTextDecoder = new TextDecoder("utf-8", {
115
+ ignoreBOM: !0,
116
+ fatal: !0
117
+ });
118
+
119
+ cachedTextDecoder.decode();
120
+
121
+ const MAX_SAFARI_DECODE_BYTES = 2146435072;
122
+
123
+ let numBytesDecoded = 0;
124
+
125
+ function decodeText(ptr, len) {
126
+ return numBytesDecoded += len, numBytesDecoded >= MAX_SAFARI_DECODE_BYTES && (cachedTextDecoder = new TextDecoder("utf-8", {
127
+ ignoreBOM: !0,
128
+ fatal: !0
129
+ }), cachedTextDecoder.decode(), numBytesDecoded = len), cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
130
+ }
131
+
132
+ const cachedTextEncoder = new TextEncoder;
133
+
134
+ "encodeInto" in cachedTextEncoder || (cachedTextEncoder.encodeInto = function(arg, view) {
135
+ const buf = cachedTextEncoder.encode(arg);
136
+ return view.set(buf), {
137
+ read: arg.length,
138
+ written: buf.length
139
+ };
140
+ });
141
+
142
+ let WASM_VECTOR_LEN = 0;
143
+
144
+ export function analyze_page(val) {
145
+ return takeObject(wasm.analyze_page(addHeapObject(val)));
146
+ }
147
+
148
+ export function analyze_page_with_options(val, options) {
149
+ return takeObject(wasm.analyze_page_with_options(addHeapObject(val), addHeapObject(options)));
150
+ }
151
+
152
+ export function decide_and_act(_raw_elements) {
153
+ wasm.decide_and_act(addHeapObject(_raw_elements));
154
+ }
155
+
156
+ export function prune_for_api(val) {
157
+ return takeObject(wasm.prune_for_api(addHeapObject(val)));
158
+ }
159
+
160
+ const EXPECTED_RESPONSE_TYPES = new Set([ "basic", "cors", "default" ]);
161
+
162
+ async function __wbg_load(module, imports) {
163
+ if ("function" == typeof Response && module instanceof Response) {
164
+ if ("function" == typeof WebAssembly.instantiateStreaming) try {
165
+ return await WebAssembly.instantiateStreaming(module, imports);
166
+ } catch (e) {
167
+ if (!(module.ok && EXPECTED_RESPONSE_TYPES.has(module.type)) || "application/wasm" === module.headers.get("Content-Type")) throw e;
168
+ }
169
+ const bytes = await module.arrayBuffer();
170
+ return await WebAssembly.instantiate(bytes, imports);
171
+ }
172
+ {
173
+ const instance = await WebAssembly.instantiate(module, imports);
174
+ return instance instanceof WebAssembly.Instance ? {
175
+ instance: instance,
176
+ module: module
177
+ } : instance;
178
+ }
179
+ }
180
+
181
+ function __wbg_get_imports() {
182
+ const imports = {
183
+ wbg: {}
184
+ };
185
+ return imports.wbg.__wbg_Error_52673b7de5a0ca89 = function(arg0, arg1) {
186
+ return addHeapObject(Error(getStringFromWasm0(arg0, arg1)));
187
+ }, imports.wbg.__wbg_Number_2d1dcfcf4ec51736 = function(arg0) {
188
+ return Number(getObject(arg0));
189
+ }, imports.wbg.__wbg___wbindgen_bigint_get_as_i64_6e32f5e6aff02e1d = function(arg0, arg1) {
190
+ const v = getObject(arg1), ret = "bigint" == typeof v ? v : void 0;
191
+ getDataViewMemory0().setBigInt64(arg0 + 8, isLikeNone(ret) ? BigInt(0) : ret, !0),
192
+ getDataViewMemory0().setInt32(arg0 + 0, !isLikeNone(ret), !0);
193
+ }, imports.wbg.__wbg___wbindgen_boolean_get_dea25b33882b895b = function(arg0) {
194
+ const v = getObject(arg0), ret = "boolean" == typeof v ? v : void 0;
195
+ return isLikeNone(ret) ? 16777215 : ret ? 1 : 0;
196
+ }, imports.wbg.__wbg___wbindgen_debug_string_adfb662ae34724b6 = function(arg0, arg1) {
197
+ const ptr1 = passStringToWasm0(debugString(getObject(arg1)), wasm.__wbindgen_export, wasm.__wbindgen_export2), len1 = WASM_VECTOR_LEN;
198
+ getDataViewMemory0().setInt32(arg0 + 4, len1, !0), getDataViewMemory0().setInt32(arg0 + 0, ptr1, !0);
199
+ }, imports.wbg.__wbg___wbindgen_in_0d3e1e8f0c669317 = function(arg0, arg1) {
200
+ return getObject(arg0) in getObject(arg1);
201
+ }, imports.wbg.__wbg___wbindgen_is_bigint_0e1a2e3f55cfae27 = function(arg0) {
202
+ return "bigint" == typeof getObject(arg0);
203
+ }, imports.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd = function(arg0) {
204
+ return "function" == typeof getObject(arg0);
205
+ }, imports.wbg.__wbg___wbindgen_is_object_ce774f3490692386 = function(arg0) {
206
+ const val = getObject(arg0);
207
+ return "object" == typeof val && null !== val;
208
+ }, imports.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269 = function(arg0) {
209
+ return void 0 === getObject(arg0);
210
+ }, imports.wbg.__wbg___wbindgen_jsval_eq_b6101cc9cef1fe36 = function(arg0, arg1) {
211
+ return getObject(arg0) === getObject(arg1);
212
+ }, imports.wbg.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d = function(arg0, arg1) {
213
+ return getObject(arg0) == getObject(arg1);
214
+ }, imports.wbg.__wbg___wbindgen_number_get_9619185a74197f95 = function(arg0, arg1) {
215
+ const obj = getObject(arg1), ret = "number" == typeof obj ? obj : void 0;
216
+ getDataViewMemory0().setFloat64(arg0 + 8, isLikeNone(ret) ? 0 : ret, !0), getDataViewMemory0().setInt32(arg0 + 0, !isLikeNone(ret), !0);
217
+ }, imports.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42 = function(arg0, arg1) {
218
+ const obj = getObject(arg1), ret = "string" == typeof obj ? obj : void 0;
219
+ var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2), len1 = WASM_VECTOR_LEN;
220
+ getDataViewMemory0().setInt32(arg0 + 4, len1, !0), getDataViewMemory0().setInt32(arg0 + 0, ptr1, !0);
221
+ }, imports.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e = function(arg0, arg1) {
222
+ throw new Error(getStringFromWasm0(arg0, arg1));
223
+ }, imports.wbg.__wbg_call_abb4ff46ce38be40 = function() {
224
+ return handleError(function(arg0, arg1) {
225
+ return addHeapObject(getObject(arg0).call(getObject(arg1)));
226
+ }, arguments);
227
+ }, imports.wbg.__wbg_done_62ea16af4ce34b24 = function(arg0) {
228
+ return getObject(arg0).done;
229
+ }, imports.wbg.__wbg_error_7bc7d576a6aaf855 = function(arg0) {}, imports.wbg.__wbg_get_6b7bd52aca3f9671 = function(arg0, arg1) {
230
+ return addHeapObject(getObject(arg0)[arg1 >>> 0]);
231
+ }, imports.wbg.__wbg_get_af9dab7e9603ea93 = function() {
232
+ return handleError(function(arg0, arg1) {
233
+ return addHeapObject(Reflect.get(getObject(arg0), getObject(arg1)));
234
+ }, arguments);
235
+ }, imports.wbg.__wbg_get_with_ref_key_1dc361bd10053bfe = function(arg0, arg1) {
236
+ return addHeapObject(getObject(arg0)[getObject(arg1)]);
237
+ }, imports.wbg.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355 = function(arg0) {
238
+ let result;
239
+ try {
240
+ result = getObject(arg0) instanceof ArrayBuffer;
241
+ } catch (_) {
242
+ result = !1;
243
+ }
244
+ return result;
245
+ }, imports.wbg.__wbg_instanceof_Uint8Array_da54ccc9d3e09434 = function(arg0) {
246
+ let result;
247
+ try {
248
+ result = getObject(arg0) instanceof Uint8Array;
249
+ } catch (_) {
250
+ result = !1;
251
+ }
252
+ return result;
253
+ }, imports.wbg.__wbg_isArray_51fd9e6422c0a395 = function(arg0) {
254
+ return Array.isArray(getObject(arg0));
255
+ }, imports.wbg.__wbg_isSafeInteger_ae7d3f054d55fa16 = function(arg0) {
256
+ return Number.isSafeInteger(getObject(arg0));
257
+ }, imports.wbg.__wbg_iterator_27b7c8b35ab3e86b = function() {
258
+ return addHeapObject(Symbol.iterator);
259
+ }, imports.wbg.__wbg_js_click_element_2fe1e774f3d232c7 = function(arg0) {
260
+ js_click_element(arg0);
261
+ }, imports.wbg.__wbg_length_22ac23eaec9d8053 = function(arg0) {
262
+ return getObject(arg0).length;
263
+ }, imports.wbg.__wbg_length_d45040a40c570362 = function(arg0) {
264
+ return getObject(arg0).length;
265
+ }, imports.wbg.__wbg_new_1ba21ce319a06297 = function() {
266
+ return addHeapObject(new Object);
267
+ }, imports.wbg.__wbg_new_25f239778d6112b9 = function() {
268
+ return addHeapObject(new Array);
269
+ }, imports.wbg.__wbg_new_6421f6084cc5bc5a = function(arg0) {
270
+ return addHeapObject(new Uint8Array(getObject(arg0)));
271
+ }, imports.wbg.__wbg_next_138a17bbf04e926c = function(arg0) {
272
+ return addHeapObject(getObject(arg0).next);
273
+ }, imports.wbg.__wbg_next_3cfe5c0fe2a4cc53 = function() {
274
+ return handleError(function(arg0) {
275
+ return addHeapObject(getObject(arg0).next());
276
+ }, arguments);
277
+ }, imports.wbg.__wbg_prototypesetcall_dfe9b766cdc1f1fd = function(arg0, arg1, arg2) {
278
+ Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));
279
+ }, imports.wbg.__wbg_set_3f1d0b984ed272ed = function(arg0, arg1, arg2) {
280
+ getObject(arg0)[takeObject(arg1)] = takeObject(arg2);
281
+ }, imports.wbg.__wbg_set_7df433eea03a5c14 = function(arg0, arg1, arg2) {
282
+ getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
283
+ }, imports.wbg.__wbg_value_57b7b035e117f7ee = function(arg0) {
284
+ return addHeapObject(getObject(arg0).value);
285
+ }, imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {
286
+ return addHeapObject(getStringFromWasm0(arg0, arg1));
287
+ }, imports.wbg.__wbindgen_cast_4625c577ab2ec9ee = function(arg0) {
288
+ return addHeapObject(BigInt.asUintN(64, arg0));
289
+ }, imports.wbg.__wbindgen_cast_d6cd19b81560fd6e = function(arg0) {
290
+ return addHeapObject(arg0);
291
+ }, imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
292
+ return addHeapObject(getObject(arg0));
293
+ }, imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
294
+ takeObject(arg0);
295
+ }, imports;
296
+ }
297
+
298
+ function __wbg_finalize_init(instance, module) {
299
+ return wasm = instance.exports, __wbg_init.__wbindgen_wasm_module = module, cachedDataViewMemory0 = null,
300
+ cachedUint8ArrayMemory0 = null, wasm;
301
+ }
302
+
303
+ function initSync(module) {
304
+ if (void 0 !== wasm) return wasm;
305
+ void 0 !== module && Object.getPrototypeOf(module) === Object.prototype && ({module: module} = module);
306
+ const imports = __wbg_get_imports();
307
+ module instanceof WebAssembly.Module || (module = new WebAssembly.Module(module));
308
+ return __wbg_finalize_init(new WebAssembly.Instance(module, imports), module);
309
+ }
310
+
311
+ async function __wbg_init(module_or_path) {
312
+ if (void 0 !== wasm) return wasm;
313
+ void 0 !== module_or_path && Object.getPrototypeOf(module_or_path) === Object.prototype && ({module_or_path: module_or_path} = module_or_path),
314
+ void 0 === module_or_path && (module_or_path = new URL("sentience_core_bg.wasm", import.meta.url));
315
+ const imports = __wbg_get_imports();
316
+ ("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));
317
+ const {instance: instance, module: module} = await __wbg_load(await module_or_path, imports);
318
+ return __wbg_finalize_init(instance, module);
319
+ }
320
+
321
+ export { initSync };
322
+
323
+ export default __wbg_init;
@@ -0,0 +1,10 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export const memory: WebAssembly.Memory;
4
+ export const analyze_page: (a: number) => number;
5
+ export const analyze_page_with_options: (a: number, b: number) => number;
6
+ export const decide_and_act: (a: number) => void;
7
+ export const prune_for_api: (a: number) => number;
8
+ export const __wbindgen_export: (a: number, b: number) => number;
9
+ export const __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
10
+ export const __wbindgen_export3: (a: number) => void;
@@ -0,0 +1,115 @@
1
+ {
2
+ "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/276563152",
3
+ "assets_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/276563152/assets",
4
+ "upload_url": "https://uploads.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/276563152/assets{?name,label}",
5
+ "html_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/tag/v2.4.1",
6
+ "id": 276563152,
7
+ "author": {
8
+ "login": "rcholic",
9
+ "id": 135060,
10
+ "node_id": "MDQ6VXNlcjEzNTA2MA==",
11
+ "avatar_url": "https://avatars.githubusercontent.com/u/135060?v=4",
12
+ "gravatar_id": "",
13
+ "url": "https://api.github.com/users/rcholic",
14
+ "html_url": "https://github.com/rcholic",
15
+ "followers_url": "https://api.github.com/users/rcholic/followers",
16
+ "following_url": "https://api.github.com/users/rcholic/following{/other_user}",
17
+ "gists_url": "https://api.github.com/users/rcholic/gists{/gist_id}",
18
+ "starred_url": "https://api.github.com/users/rcholic/starred{/owner}{/repo}",
19
+ "subscriptions_url": "https://api.github.com/users/rcholic/subscriptions",
20
+ "organizations_url": "https://api.github.com/users/rcholic/orgs",
21
+ "repos_url": "https://api.github.com/users/rcholic/repos",
22
+ "events_url": "https://api.github.com/users/rcholic/events{/privacy}",
23
+ "received_events_url": "https://api.github.com/users/rcholic/received_events",
24
+ "type": "User",
25
+ "user_view_type": "public",
26
+ "site_admin": false
27
+ },
28
+ "node_id": "RE_kwDOQshiJ84QfATQ",
29
+ "tag_name": "v2.4.1",
30
+ "target_commitish": "main",
31
+ "name": "Release v2.4.1",
32
+ "draft": false,
33
+ "immutable": false,
34
+ "prerelease": false,
35
+ "created_at": "2026-01-14T01:02:36Z",
36
+ "updated_at": "2026-01-14T01:04:42Z",
37
+ "published_at": "2026-01-14T01:04:00Z",
38
+ "assets": [
39
+ {
40
+ "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/assets/340210571",
41
+ "id": 340210571,
42
+ "node_id": "RA_kwDOQshiJ84URzOL",
43
+ "name": "extension-files.tar.gz",
44
+ "label": "",
45
+ "uploader": {
46
+ "login": "github-actions[bot]",
47
+ "id": 41898282,
48
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
49
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
50
+ "gravatar_id": "",
51
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
52
+ "html_url": "https://github.com/apps/github-actions",
53
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
54
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
55
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
56
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
57
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
58
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
59
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
60
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
61
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
62
+ "type": "Bot",
63
+ "user_view_type": "public",
64
+ "site_admin": false
65
+ },
66
+ "content_type": "application/gzip",
67
+ "state": "uploaded",
68
+ "size": 74389,
69
+ "digest": "sha256:ed8aeac5d364186b1a6b255aa3aeb5b562f204830f75402d528f2c7e6d819cfd",
70
+ "download_count": 2,
71
+ "created_at": "2026-01-14T01:04:41Z",
72
+ "updated_at": "2026-01-14T01:04:42Z",
73
+ "browser_download_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/download/v2.4.1/extension-files.tar.gz"
74
+ },
75
+ {
76
+ "url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/assets/340210572",
77
+ "id": 340210572,
78
+ "node_id": "RA_kwDOQshiJ84URzOM",
79
+ "name": "extension-package.zip",
80
+ "label": "",
81
+ "uploader": {
82
+ "login": "github-actions[bot]",
83
+ "id": 41898282,
84
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
85
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
86
+ "gravatar_id": "",
87
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
88
+ "html_url": "https://github.com/apps/github-actions",
89
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
90
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
91
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
92
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
93
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
94
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
95
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
96
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
97
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
98
+ "type": "Bot",
99
+ "user_view_type": "public",
100
+ "site_admin": false
101
+ },
102
+ "content_type": "application/zip",
103
+ "state": "uploaded",
104
+ "size": 76376,
105
+ "digest": "sha256:7f209ac1eac7d1a3be1a12248bf523f82a47f6767501dba7dc01660ed218763e",
106
+ "download_count": 0,
107
+ "created_at": "2026-01-14T01:04:41Z",
108
+ "updated_at": "2026-01-14T01:04:42Z",
109
+ "browser_download_url": "https://github.com/SentienceAPI/Sentience-Geometry-Chrome-Extension/releases/download/v2.4.1/extension-package.zip"
110
+ }
111
+ ],
112
+ "tarball_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/tarball/v2.4.1",
113
+ "zipball_url": "https://api.github.com/repos/SentienceAPI/Sentience-Geometry-Chrome-Extension/zipball/v2.4.1",
114
+ "body": ""
115
+ }
@@ -0,0 +1,15 @@
1
+ """
2
+ Snapshot formatting utilities for LLM prompts.
3
+
4
+ DEPRECATED: This module is maintained for backward compatibility only.
5
+ New code should import from sentience.utils.formatting or sentience directly:
6
+
7
+ from sentience.utils.formatting import format_snapshot_for_llm
8
+ # or
9
+ from sentience import format_snapshot_for_llm
10
+ """
11
+
12
+ # Re-export from new location for backward compatibility
13
+ from .utils.formatting import format_snapshot_for_llm
14
+
15
+ __all__ = ["format_snapshot_for_llm"]