@predicatelabs/sdk 0.99.9
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.
- package/LICENSE +24 -0
- package/README.md +252 -0
- package/dist/actions.d.ts +185 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +1120 -0
- package/dist/actions.js.map +1 -0
- package/dist/agent-runtime.d.ts +352 -0
- package/dist/agent-runtime.d.ts.map +1 -0
- package/dist/agent-runtime.js +1170 -0
- package/dist/agent-runtime.js.map +1 -0
- package/dist/agent.d.ts +164 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +408 -0
- package/dist/agent.js.map +1 -0
- package/dist/asserts/expect.d.ts +159 -0
- package/dist/asserts/expect.d.ts.map +1 -0
- package/dist/asserts/expect.js +547 -0
- package/dist/asserts/expect.js.map +1 -0
- package/dist/asserts/index.d.ts +58 -0
- package/dist/asserts/index.d.ts.map +1 -0
- package/dist/asserts/index.js +70 -0
- package/dist/asserts/index.js.map +1 -0
- package/dist/asserts/query.d.ts +199 -0
- package/dist/asserts/query.d.ts.map +1 -0
- package/dist/asserts/query.js +288 -0
- package/dist/asserts/query.js.map +1 -0
- package/dist/backends/actions.d.ts +119 -0
- package/dist/backends/actions.d.ts.map +1 -0
- package/dist/backends/actions.js +291 -0
- package/dist/backends/actions.js.map +1 -0
- package/dist/backends/browser-use-adapter.d.ts +131 -0
- package/dist/backends/browser-use-adapter.d.ts.map +1 -0
- package/dist/backends/browser-use-adapter.js +219 -0
- package/dist/backends/browser-use-adapter.js.map +1 -0
- package/dist/backends/cdp-backend.d.ts +66 -0
- package/dist/backends/cdp-backend.d.ts.map +1 -0
- package/dist/backends/cdp-backend.js +273 -0
- package/dist/backends/cdp-backend.js.map +1 -0
- package/dist/backends/index.d.ts +80 -0
- package/dist/backends/index.d.ts.map +1 -0
- package/dist/backends/index.js +101 -0
- package/dist/backends/index.js.map +1 -0
- package/dist/backends/protocol.d.ts +156 -0
- package/dist/backends/protocol.d.ts.map +1 -0
- package/dist/backends/protocol.js +16 -0
- package/dist/backends/protocol.js.map +1 -0
- package/dist/backends/sentience-context.d.ts +143 -0
- package/dist/backends/sentience-context.d.ts.map +1 -0
- package/dist/backends/sentience-context.js +359 -0
- package/dist/backends/sentience-context.js.map +1 -0
- package/dist/backends/snapshot.d.ts +188 -0
- package/dist/backends/snapshot.d.ts.map +1 -0
- package/dist/backends/snapshot.js +360 -0
- package/dist/backends/snapshot.js.map +1 -0
- package/dist/browser.d.ts +154 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +920 -0
- package/dist/browser.js.map +1 -0
- package/dist/canonicalization.d.ts +126 -0
- package/dist/canonicalization.d.ts.map +1 -0
- package/dist/canonicalization.js +161 -0
- package/dist/canonicalization.js.map +1 -0
- package/dist/captcha/strategies.d.ts +12 -0
- package/dist/captcha/strategies.d.ts.map +1 -0
- package/dist/captcha/strategies.js +43 -0
- package/dist/captcha/strategies.js.map +1 -0
- package/dist/captcha/types.d.ts +45 -0
- package/dist/captcha/types.d.ts.map +1 -0
- package/dist/captcha/types.js +12 -0
- package/dist/captcha/types.js.map +1 -0
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +422 -0
- package/dist/cli.js.map +1 -0
- package/dist/conversational-agent.d.ts +123 -0
- package/dist/conversational-agent.d.ts.map +1 -0
- package/dist/conversational-agent.js +341 -0
- package/dist/conversational-agent.js.map +1 -0
- package/dist/cursor-policy.d.ts +41 -0
- package/dist/cursor-policy.d.ts.map +1 -0
- package/dist/cursor-policy.js +81 -0
- package/dist/cursor-policy.js.map +1 -0
- package/dist/debugger.d.ts +28 -0
- package/dist/debugger.d.ts.map +1 -0
- package/dist/debugger.js +107 -0
- package/dist/debugger.js.map +1 -0
- package/dist/expect.d.ts +16 -0
- package/dist/expect.d.ts.map +1 -0
- package/dist/expect.js +67 -0
- package/dist/expect.js.map +1 -0
- package/dist/failure-artifacts.d.ts +95 -0
- package/dist/failure-artifacts.d.ts.map +1 -0
- package/dist/failure-artifacts.js +805 -0
- package/dist/failure-artifacts.js.map +1 -0
- package/dist/generator.d.ts +16 -0
- package/dist/generator.d.ts.map +1 -0
- package/dist/generator.js +205 -0
- package/dist/generator.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +160 -0
- package/dist/index.js.map +1 -0
- package/dist/inspector.d.ts +13 -0
- package/dist/inspector.d.ts.map +1 -0
- package/dist/inspector.js +153 -0
- package/dist/inspector.js.map +1 -0
- package/dist/llm-provider.d.ts +144 -0
- package/dist/llm-provider.d.ts.map +1 -0
- package/dist/llm-provider.js +460 -0
- package/dist/llm-provider.js.map +1 -0
- package/dist/ordinal.d.ts +90 -0
- package/dist/ordinal.d.ts.map +1 -0
- package/dist/ordinal.js +249 -0
- package/dist/ordinal.js.map +1 -0
- package/dist/overlay.d.ts +63 -0
- package/dist/overlay.d.ts.map +1 -0
- package/dist/overlay.js +102 -0
- package/dist/overlay.js.map +1 -0
- package/dist/protocols/browser-protocol.d.ts +79 -0
- package/dist/protocols/browser-protocol.d.ts.map +1 -0
- package/dist/protocols/browser-protocol.js +9 -0
- package/dist/protocols/browser-protocol.js.map +1 -0
- package/dist/query.d.ts +66 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +482 -0
- package/dist/query.js.map +1 -0
- package/dist/read.d.ts +47 -0
- package/dist/read.d.ts.map +1 -0
- package/dist/read.js +128 -0
- package/dist/read.js.map +1 -0
- package/dist/recorder.d.ts +44 -0
- package/dist/recorder.d.ts.map +1 -0
- package/dist/recorder.js +262 -0
- package/dist/recorder.js.map +1 -0
- package/dist/runtime-agent.d.ts +72 -0
- package/dist/runtime-agent.d.ts.map +1 -0
- package/dist/runtime-agent.js +357 -0
- package/dist/runtime-agent.js.map +1 -0
- package/dist/screenshot.d.ts +17 -0
- package/dist/screenshot.d.ts.map +1 -0
- package/dist/screenshot.js +40 -0
- package/dist/screenshot.js.map +1 -0
- package/dist/snapshot-diff.d.ts +23 -0
- package/dist/snapshot-diff.d.ts.map +1 -0
- package/dist/snapshot-diff.js +119 -0
- package/dist/snapshot-diff.js.map +1 -0
- package/dist/snapshot.d.ts +47 -0
- package/dist/snapshot.d.ts.map +1 -0
- package/dist/snapshot.js +358 -0
- package/dist/snapshot.js.map +1 -0
- package/dist/textSearch.d.ts +64 -0
- package/dist/textSearch.d.ts.map +1 -0
- package/dist/textSearch.js +113 -0
- package/dist/textSearch.js.map +1 -0
- package/dist/tools/context.d.ts +18 -0
- package/dist/tools/context.d.ts.map +1 -0
- package/dist/tools/context.js +40 -0
- package/dist/tools/context.js.map +1 -0
- package/dist/tools/defaults.d.ts +5 -0
- package/dist/tools/defaults.d.ts.map +1 -0
- package/dist/tools/defaults.js +368 -0
- package/dist/tools/defaults.js.map +1 -0
- package/dist/tools/filesystem.d.ts +12 -0
- package/dist/tools/filesystem.d.ts.map +1 -0
- package/dist/tools/filesystem.js +137 -0
- package/dist/tools/filesystem.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +15 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/registry.d.ts +38 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +100 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tracing/cloud-sink.d.ts +189 -0
- package/dist/tracing/cloud-sink.d.ts.map +1 -0
- package/dist/tracing/cloud-sink.js +1067 -0
- package/dist/tracing/cloud-sink.js.map +1 -0
- package/dist/tracing/index-schema.d.ts +231 -0
- package/dist/tracing/index-schema.d.ts.map +1 -0
- package/dist/tracing/index-schema.js +235 -0
- package/dist/tracing/index-schema.js.map +1 -0
- package/dist/tracing/index.d.ts +12 -0
- package/dist/tracing/index.d.ts.map +1 -0
- package/dist/tracing/index.js +28 -0
- package/dist/tracing/index.js.map +1 -0
- package/dist/tracing/indexer.d.ts +20 -0
- package/dist/tracing/indexer.d.ts.map +1 -0
- package/dist/tracing/indexer.js +347 -0
- package/dist/tracing/indexer.js.map +1 -0
- package/dist/tracing/jsonl-sink.d.ts +51 -0
- package/dist/tracing/jsonl-sink.d.ts.map +1 -0
- package/dist/tracing/jsonl-sink.js +329 -0
- package/dist/tracing/jsonl-sink.js.map +1 -0
- package/dist/tracing/sink.d.ts +25 -0
- package/dist/tracing/sink.d.ts.map +1 -0
- package/dist/tracing/sink.js +15 -0
- package/dist/tracing/sink.js.map +1 -0
- package/dist/tracing/tracer-factory.d.ts +102 -0
- package/dist/tracing/tracer-factory.d.ts.map +1 -0
- package/dist/tracing/tracer-factory.js +375 -0
- package/dist/tracing/tracer-factory.js.map +1 -0
- package/dist/tracing/tracer.d.ts +140 -0
- package/dist/tracing/tracer.d.ts.map +1 -0
- package/dist/tracing/tracer.js +336 -0
- package/dist/tracing/tracer.js.map +1 -0
- package/dist/tracing/types.d.ts +203 -0
- package/dist/tracing/types.d.ts.map +1 -0
- package/dist/tracing/types.js +8 -0
- package/dist/tracing/types.js.map +1 -0
- package/dist/types.d.ts +422 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/action-executor.d.ts +25 -0
- package/dist/utils/action-executor.d.ts.map +1 -0
- package/dist/utils/action-executor.js +121 -0
- package/dist/utils/action-executor.js.map +1 -0
- package/dist/utils/browser-evaluator.d.ts +76 -0
- package/dist/utils/browser-evaluator.d.ts.map +1 -0
- package/dist/utils/browser-evaluator.js +130 -0
- package/dist/utils/browser-evaluator.js.map +1 -0
- package/dist/utils/browser.d.ts +30 -0
- package/dist/utils/browser.d.ts.map +1 -0
- package/dist/utils/browser.js +75 -0
- package/dist/utils/browser.js.map +1 -0
- package/dist/utils/element-filter.d.ts +76 -0
- package/dist/utils/element-filter.d.ts.map +1 -0
- package/dist/utils/element-filter.js +195 -0
- package/dist/utils/element-filter.js.map +1 -0
- package/dist/utils/grid-utils.d.ts +37 -0
- package/dist/utils/grid-utils.d.ts.map +1 -0
- package/dist/utils/grid-utils.js +283 -0
- package/dist/utils/grid-utils.js.map +1 -0
- package/dist/utils/llm-interaction-handler.d.ts +41 -0
- package/dist/utils/llm-interaction-handler.d.ts.map +1 -0
- package/dist/utils/llm-interaction-handler.js +171 -0
- package/dist/utils/llm-interaction-handler.js.map +1 -0
- package/dist/utils/llm-response-builder.d.ts +56 -0
- package/dist/utils/llm-response-builder.d.ts.map +1 -0
- package/dist/utils/llm-response-builder.js +130 -0
- package/dist/utils/llm-response-builder.js.map +1 -0
- package/dist/utils/selector-utils.d.ts +12 -0
- package/dist/utils/selector-utils.d.ts.map +1 -0
- package/dist/utils/selector-utils.js +32 -0
- package/dist/utils/selector-utils.js.map +1 -0
- package/dist/utils/snapshot-event-builder.d.ts +28 -0
- package/dist/utils/snapshot-event-builder.d.ts.map +1 -0
- package/dist/utils/snapshot-event-builder.js +88 -0
- package/dist/utils/snapshot-event-builder.js.map +1 -0
- package/dist/utils/snapshot-processor.d.ts +27 -0
- package/dist/utils/snapshot-processor.d.ts.map +1 -0
- package/dist/utils/snapshot-processor.js +47 -0
- package/dist/utils/snapshot-processor.js.map +1 -0
- package/dist/utils/trace-event-builder.d.ts +122 -0
- package/dist/utils/trace-event-builder.d.ts.map +1 -0
- package/dist/utils/trace-event-builder.js +365 -0
- package/dist/utils/trace-event-builder.js.map +1 -0
- package/dist/utils/trace-file-manager.d.ts +70 -0
- package/dist/utils/trace-file-manager.d.ts.map +1 -0
- package/dist/utils/trace-file-manager.js +194 -0
- package/dist/utils/trace-file-manager.js.map +1 -0
- package/dist/utils/zod.d.ts +5 -0
- package/dist/utils/zod.d.ts.map +1 -0
- package/dist/utils/zod.js +80 -0
- package/dist/utils/zod.js.map +1 -0
- package/dist/utils.d.ts +8 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +13 -0
- package/dist/utils.js.map +1 -0
- package/dist/verification.d.ts +194 -0
- package/dist/verification.d.ts.map +1 -0
- package/dist/verification.js +530 -0
- package/dist/verification.js.map +1 -0
- package/dist/vision-executor.d.ts +18 -0
- package/dist/vision-executor.d.ts.map +1 -0
- package/dist/vision-executor.js +60 -0
- package/dist/vision-executor.js.map +1 -0
- package/dist/visual-agent.d.ts +120 -0
- package/dist/visual-agent.d.ts.map +1 -0
- package/dist/visual-agent.js +796 -0
- package/dist/visual-agent.js.map +1 -0
- package/dist/wait.d.ts +35 -0
- package/dist/wait.d.ts.map +1 -0
- package/dist/wait.js +76 -0
- package/dist/wait.js.map +1 -0
- package/package.json +94 -0
- package/spec/README.md +72 -0
- package/spec/SNAPSHOT_V1.md +208 -0
- package/spec/sdk-types.md +259 -0
- package/spec/snapshot.schema.json +148 -0
- package/src/extension/background.js +104 -0
- package/src/extension/content.js +162 -0
- package/src/extension/injected_api.js +1399 -0
- package/src/extension/manifest.json +36 -0
- package/src/extension/pkg/README.md +1340 -0
- package/src/extension/pkg/package.json +15 -0
- package/src/extension/pkg/sentience_core.d.ts +51 -0
- package/src/extension/pkg/sentience_core.js +371 -0
- package/src/extension/pkg/sentience_core_bg.wasm +0 -0
- package/src/extension/pkg/sentience_core_bg.wasm.d.ts +10 -0
- package/src/extension/release.json +116 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentience-context.js","sourceRoot":"","sources":["../../src/backends/sentience-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend-agnostic snapshot for browser-use integration.
|
|
3
|
+
*
|
|
4
|
+
* Takes Sentience snapshots using BrowserBackend protocol,
|
|
5
|
+
* enabling element grounding with browser-use or other frameworks.
|
|
6
|
+
*
|
|
7
|
+
* Usage with browser-use:
|
|
8
|
+
* import { BrowserUseAdapter } from './backends/browser-use-adapter';
|
|
9
|
+
* import { snapshot, CachedSnapshot } from './backends/snapshot';
|
|
10
|
+
*
|
|
11
|
+
* const adapter = new BrowserUseAdapter(session);
|
|
12
|
+
* const backend = await adapter.createBackend();
|
|
13
|
+
*
|
|
14
|
+
* // Take snapshot
|
|
15
|
+
* const snap = await snapshot(backend);
|
|
16
|
+
* console.log(`Found ${snap.elements.length} elements`);
|
|
17
|
+
*
|
|
18
|
+
* // With caching (reuse if fresh)
|
|
19
|
+
* const cache = new CachedSnapshot(backend, 2000);
|
|
20
|
+
* const snap1 = await cache.get(); // Fresh snapshot
|
|
21
|
+
* const snap2 = await cache.get(); // Returns cached if < 2s old
|
|
22
|
+
* cache.invalidate(); // Force refresh on next get()
|
|
23
|
+
*/
|
|
24
|
+
import type { Snapshot } from '../types';
|
|
25
|
+
import type { BrowserBackend } from './protocol';
|
|
26
|
+
/**
|
|
27
|
+
* Error thrown when Sentience extension is not loaded.
|
|
28
|
+
*/
|
|
29
|
+
export declare class ExtensionNotLoadedError extends Error {
|
|
30
|
+
timeoutMs?: number | undefined;
|
|
31
|
+
diagnostics?: ExtensionDiagnostics | undefined;
|
|
32
|
+
constructor(message: string, timeoutMs?: number | undefined, diagnostics?: ExtensionDiagnostics | undefined);
|
|
33
|
+
static fromTimeout(timeoutMs: number, diagnostics?: ExtensionDiagnostics): ExtensionNotLoadedError;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Error thrown when snapshot operation fails.
|
|
37
|
+
*/
|
|
38
|
+
export declare class SnapshotError extends Error {
|
|
39
|
+
url?: string | undefined;
|
|
40
|
+
constructor(message: string, url?: string | undefined);
|
|
41
|
+
static fromNullResult(url?: string): SnapshotError;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Extension diagnostics for debugging.
|
|
45
|
+
*/
|
|
46
|
+
export interface ExtensionDiagnostics {
|
|
47
|
+
sentienceDefined?: boolean;
|
|
48
|
+
sentienceSnapshot?: boolean;
|
|
49
|
+
url?: string;
|
|
50
|
+
extensionId?: string | null;
|
|
51
|
+
hasContentScript?: boolean;
|
|
52
|
+
error?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Options for snapshot operations.
|
|
56
|
+
*/
|
|
57
|
+
export interface SnapshotOptions {
|
|
58
|
+
/** Maximum number of elements to return (default: 50) */
|
|
59
|
+
limit?: number;
|
|
60
|
+
/** Whether to capture screenshot (default: false) */
|
|
61
|
+
screenshot?: boolean | ScreenshotOptions;
|
|
62
|
+
/** Filter options for elements */
|
|
63
|
+
filter?: SnapshotFilter;
|
|
64
|
+
/** Show visual overlay on page */
|
|
65
|
+
showOverlay?: boolean;
|
|
66
|
+
/** Show visual overlay highlighting detected grids */
|
|
67
|
+
showGrid?: boolean;
|
|
68
|
+
/** Optional grid ID to show specific grid (only used if showGrid=true) */
|
|
69
|
+
gridId?: number | null;
|
|
70
|
+
/** Use server-side API (Pro/Enterprise tier) */
|
|
71
|
+
useApi?: boolean;
|
|
72
|
+
/** Gateway snapshot timeout (milliseconds) */
|
|
73
|
+
gatewayTimeoutMs?: number;
|
|
74
|
+
/** Canonical API key for server-side processing */
|
|
75
|
+
predicateApiKey?: string;
|
|
76
|
+
/** Backward-compatible API key alias */
|
|
77
|
+
sentienceApiKey?: string;
|
|
78
|
+
/** Goal/task description for ordinal support and gateway reranking */
|
|
79
|
+
goal?: string;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Screenshot options.
|
|
83
|
+
*/
|
|
84
|
+
export interface ScreenshotOptions {
|
|
85
|
+
format?: 'png' | 'jpeg';
|
|
86
|
+
quality?: number;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Filter options for snapshot.
|
|
90
|
+
*/
|
|
91
|
+
export interface SnapshotFilter {
|
|
92
|
+
clickable?: boolean;
|
|
93
|
+
visible?: boolean;
|
|
94
|
+
inViewport?: boolean;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Snapshot cache with staleness detection.
|
|
98
|
+
*
|
|
99
|
+
* Caches snapshots and returns cached version if still fresh.
|
|
100
|
+
* Useful for reducing redundant snapshot calls in action loops.
|
|
101
|
+
*
|
|
102
|
+
* Usage:
|
|
103
|
+
* const cache = new CachedSnapshot(backend, 2000);
|
|
104
|
+
*
|
|
105
|
+
* // First call takes fresh snapshot
|
|
106
|
+
* const snap1 = await cache.get();
|
|
107
|
+
*
|
|
108
|
+
* // Second call returns cached if < 2s old
|
|
109
|
+
* const snap2 = await cache.get();
|
|
110
|
+
*
|
|
111
|
+
* // Invalidate after actions that change DOM
|
|
112
|
+
* await click(backend, element.bbox);
|
|
113
|
+
* cache.invalidate();
|
|
114
|
+
*
|
|
115
|
+
* // Next get() will take fresh snapshot
|
|
116
|
+
* const snap3 = await cache.get();
|
|
117
|
+
*/
|
|
118
|
+
export declare class CachedSnapshot {
|
|
119
|
+
private backend;
|
|
120
|
+
private maxAgeMs;
|
|
121
|
+
private defaultOptions?;
|
|
122
|
+
private cached;
|
|
123
|
+
private cachedAt;
|
|
124
|
+
private cachedUrl;
|
|
125
|
+
/**
|
|
126
|
+
* Initialize cached snapshot.
|
|
127
|
+
*
|
|
128
|
+
* @param backend - BrowserBackend implementation
|
|
129
|
+
* @param maxAgeMs - Maximum cache age in milliseconds (default: 2000)
|
|
130
|
+
* @param options - Default snapshot options
|
|
131
|
+
*/
|
|
132
|
+
constructor(backend: BrowserBackend, maxAgeMs?: number, options?: SnapshotOptions);
|
|
133
|
+
/**
|
|
134
|
+
* Get snapshot, using cache if fresh.
|
|
135
|
+
*
|
|
136
|
+
* @param options - Override default options for this call
|
|
137
|
+
* @param forceRefresh - If true, always take fresh snapshot
|
|
138
|
+
* @returns Snapshot (cached or fresh)
|
|
139
|
+
*/
|
|
140
|
+
get(options?: SnapshotOptions, forceRefresh?: boolean): Promise<Snapshot>;
|
|
141
|
+
/**
|
|
142
|
+
* Invalidate cache, forcing refresh on next get().
|
|
143
|
+
*
|
|
144
|
+
* Call this after actions that modify the DOM.
|
|
145
|
+
*/
|
|
146
|
+
invalidate(): void;
|
|
147
|
+
/**
|
|
148
|
+
* Check if cache is stale and needs refresh.
|
|
149
|
+
*/
|
|
150
|
+
private isStale;
|
|
151
|
+
/**
|
|
152
|
+
* Check if a cached snapshot exists.
|
|
153
|
+
*/
|
|
154
|
+
get isCached(): boolean;
|
|
155
|
+
/**
|
|
156
|
+
* Get age of cached snapshot in milliseconds.
|
|
157
|
+
*/
|
|
158
|
+
get ageMs(): number;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Take a Sentience snapshot using the backend protocol.
|
|
162
|
+
*
|
|
163
|
+
* Requires:
|
|
164
|
+
* - Sentience extension loaded in browser (via --load-extension)
|
|
165
|
+
* - Extension injected window.sentience API
|
|
166
|
+
*
|
|
167
|
+
* @param backend - BrowserBackend implementation (CDPBackend, PlaywrightBackend, etc.)
|
|
168
|
+
* @param options - Snapshot options (limit, filter, screenshot, etc.)
|
|
169
|
+
* @returns Snapshot with elements, viewport, and optional screenshot
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* import { BrowserUseAdapter } from './backends/browser-use-adapter';
|
|
173
|
+
* import { snapshot } from './backends/snapshot';
|
|
174
|
+
*
|
|
175
|
+
* const adapter = new BrowserUseAdapter(session);
|
|
176
|
+
* const backend = await adapter.createBackend();
|
|
177
|
+
*
|
|
178
|
+
* // Basic snapshot (uses local extension)
|
|
179
|
+
* const snap = await snapshot(backend);
|
|
180
|
+
*
|
|
181
|
+
* // With options
|
|
182
|
+
* const snap = await snapshot(backend, {
|
|
183
|
+
* limit: 100,
|
|
184
|
+
* screenshot: true
|
|
185
|
+
* });
|
|
186
|
+
*/
|
|
187
|
+
export declare function snapshot(backend: BrowserBackend, options?: SnapshotOptions): Promise<Snapshot>;
|
|
188
|
+
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/backends/snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Backend-agnostic snapshot for browser-use integration.
|
|
4
|
+
*
|
|
5
|
+
* Takes Sentience snapshots using BrowserBackend protocol,
|
|
6
|
+
* enabling element grounding with browser-use or other frameworks.
|
|
7
|
+
*
|
|
8
|
+
* Usage with browser-use:
|
|
9
|
+
* import { BrowserUseAdapter } from './backends/browser-use-adapter';
|
|
10
|
+
* import { snapshot, CachedSnapshot } from './backends/snapshot';
|
|
11
|
+
*
|
|
12
|
+
* const adapter = new BrowserUseAdapter(session);
|
|
13
|
+
* const backend = await adapter.createBackend();
|
|
14
|
+
*
|
|
15
|
+
* // Take snapshot
|
|
16
|
+
* const snap = await snapshot(backend);
|
|
17
|
+
* console.log(`Found ${snap.elements.length} elements`);
|
|
18
|
+
*
|
|
19
|
+
* // With caching (reuse if fresh)
|
|
20
|
+
* const cache = new CachedSnapshot(backend, 2000);
|
|
21
|
+
* const snap1 = await cache.get(); // Fresh snapshot
|
|
22
|
+
* const snap2 = await cache.get(); // Returns cached if < 2s old
|
|
23
|
+
* cache.invalidate(); // Force refresh on next get()
|
|
24
|
+
*/
|
|
25
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
26
|
+
if (k2 === undefined) k2 = k;
|
|
27
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
28
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
29
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
30
|
+
}
|
|
31
|
+
Object.defineProperty(o, k2, desc);
|
|
32
|
+
}) : (function(o, m, k, k2) {
|
|
33
|
+
if (k2 === undefined) k2 = k;
|
|
34
|
+
o[k2] = m[k];
|
|
35
|
+
}));
|
|
36
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
37
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
38
|
+
}) : function(o, v) {
|
|
39
|
+
o["default"] = v;
|
|
40
|
+
});
|
|
41
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
42
|
+
var ownKeys = function(o) {
|
|
43
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
44
|
+
var ar = [];
|
|
45
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
46
|
+
return ar;
|
|
47
|
+
};
|
|
48
|
+
return ownKeys(o);
|
|
49
|
+
};
|
|
50
|
+
return function (mod) {
|
|
51
|
+
if (mod && mod.__esModule) return mod;
|
|
52
|
+
var result = {};
|
|
53
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
54
|
+
__setModuleDefault(result, mod);
|
|
55
|
+
return result;
|
|
56
|
+
};
|
|
57
|
+
})();
|
|
58
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
59
|
+
exports.CachedSnapshot = exports.SnapshotError = exports.ExtensionNotLoadedError = void 0;
|
|
60
|
+
exports.snapshot = snapshot;
|
|
61
|
+
/**
|
|
62
|
+
* Error thrown when Sentience extension is not loaded.
|
|
63
|
+
*/
|
|
64
|
+
class ExtensionNotLoadedError extends Error {
|
|
65
|
+
constructor(message, timeoutMs, diagnostics) {
|
|
66
|
+
super(message);
|
|
67
|
+
this.timeoutMs = timeoutMs;
|
|
68
|
+
this.diagnostics = diagnostics;
|
|
69
|
+
this.name = 'ExtensionNotLoadedError';
|
|
70
|
+
}
|
|
71
|
+
static fromTimeout(timeoutMs, diagnostics) {
|
|
72
|
+
let message = `Sentience extension not loaded after ${timeoutMs}ms. `;
|
|
73
|
+
message += 'Make sure to launch browser with --load-extension=<path-to-sentience-extension>';
|
|
74
|
+
if (diagnostics) {
|
|
75
|
+
message += `\n\nDiagnostics:\n${JSON.stringify(diagnostics, null, 2)}`;
|
|
76
|
+
}
|
|
77
|
+
return new ExtensionNotLoadedError(message, timeoutMs, diagnostics);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.ExtensionNotLoadedError = ExtensionNotLoadedError;
|
|
81
|
+
/**
|
|
82
|
+
* Error thrown when snapshot operation fails.
|
|
83
|
+
*/
|
|
84
|
+
class SnapshotError extends Error {
|
|
85
|
+
constructor(message, url) {
|
|
86
|
+
super(message);
|
|
87
|
+
this.url = url;
|
|
88
|
+
this.name = 'SnapshotError';
|
|
89
|
+
}
|
|
90
|
+
static fromNullResult(url) {
|
|
91
|
+
let message = 'window.sentience.snapshot() returned null.';
|
|
92
|
+
if (url) {
|
|
93
|
+
message += ` URL: ${url}`;
|
|
94
|
+
}
|
|
95
|
+
return new SnapshotError(message, url);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.SnapshotError = SnapshotError;
|
|
99
|
+
/**
|
|
100
|
+
* Snapshot cache with staleness detection.
|
|
101
|
+
*
|
|
102
|
+
* Caches snapshots and returns cached version if still fresh.
|
|
103
|
+
* Useful for reducing redundant snapshot calls in action loops.
|
|
104
|
+
*
|
|
105
|
+
* Usage:
|
|
106
|
+
* const cache = new CachedSnapshot(backend, 2000);
|
|
107
|
+
*
|
|
108
|
+
* // First call takes fresh snapshot
|
|
109
|
+
* const snap1 = await cache.get();
|
|
110
|
+
*
|
|
111
|
+
* // Second call returns cached if < 2s old
|
|
112
|
+
* const snap2 = await cache.get();
|
|
113
|
+
*
|
|
114
|
+
* // Invalidate after actions that change DOM
|
|
115
|
+
* await click(backend, element.bbox);
|
|
116
|
+
* cache.invalidate();
|
|
117
|
+
*
|
|
118
|
+
* // Next get() will take fresh snapshot
|
|
119
|
+
* const snap3 = await cache.get();
|
|
120
|
+
*/
|
|
121
|
+
class CachedSnapshot {
|
|
122
|
+
/**
|
|
123
|
+
* Initialize cached snapshot.
|
|
124
|
+
*
|
|
125
|
+
* @param backend - BrowserBackend implementation
|
|
126
|
+
* @param maxAgeMs - Maximum cache age in milliseconds (default: 2000)
|
|
127
|
+
* @param options - Default snapshot options
|
|
128
|
+
*/
|
|
129
|
+
constructor(backend, maxAgeMs = 2000, options) {
|
|
130
|
+
this.cached = null;
|
|
131
|
+
this.cachedAt = 0;
|
|
132
|
+
this.cachedUrl = null;
|
|
133
|
+
this.backend = backend;
|
|
134
|
+
this.maxAgeMs = maxAgeMs;
|
|
135
|
+
this.defaultOptions = options;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get snapshot, using cache if fresh.
|
|
139
|
+
*
|
|
140
|
+
* @param options - Override default options for this call
|
|
141
|
+
* @param forceRefresh - If true, always take fresh snapshot
|
|
142
|
+
* @returns Snapshot (cached or fresh)
|
|
143
|
+
*/
|
|
144
|
+
async get(options, forceRefresh = false) {
|
|
145
|
+
// Check if we need to refresh
|
|
146
|
+
if (forceRefresh || this.isStale()) {
|
|
147
|
+
this.cached = await snapshot(this.backend, options || this.defaultOptions);
|
|
148
|
+
this.cachedAt = Date.now();
|
|
149
|
+
this.cachedUrl = this.cached.url;
|
|
150
|
+
}
|
|
151
|
+
return this.cached;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Invalidate cache, forcing refresh on next get().
|
|
155
|
+
*
|
|
156
|
+
* Call this after actions that modify the DOM.
|
|
157
|
+
*/
|
|
158
|
+
invalidate() {
|
|
159
|
+
this.cached = null;
|
|
160
|
+
this.cachedAt = 0;
|
|
161
|
+
this.cachedUrl = null;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Check if cache is stale and needs refresh.
|
|
165
|
+
*/
|
|
166
|
+
isStale() {
|
|
167
|
+
if (this.cached === null) {
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
// Check age
|
|
171
|
+
const ageMs = Date.now() - this.cachedAt;
|
|
172
|
+
if (ageMs > this.maxAgeMs) {
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Check if a cached snapshot exists.
|
|
179
|
+
*/
|
|
180
|
+
get isCached() {
|
|
181
|
+
return this.cached !== null;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get age of cached snapshot in milliseconds.
|
|
185
|
+
*/
|
|
186
|
+
get ageMs() {
|
|
187
|
+
if (this.cached === null) {
|
|
188
|
+
return Infinity;
|
|
189
|
+
}
|
|
190
|
+
return Date.now() - this.cachedAt;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
exports.CachedSnapshot = CachedSnapshot;
|
|
194
|
+
/**
|
|
195
|
+
* Take a Sentience snapshot using the backend protocol.
|
|
196
|
+
*
|
|
197
|
+
* Requires:
|
|
198
|
+
* - Sentience extension loaded in browser (via --load-extension)
|
|
199
|
+
* - Extension injected window.sentience API
|
|
200
|
+
*
|
|
201
|
+
* @param backend - BrowserBackend implementation (CDPBackend, PlaywrightBackend, etc.)
|
|
202
|
+
* @param options - Snapshot options (limit, filter, screenshot, etc.)
|
|
203
|
+
* @returns Snapshot with elements, viewport, and optional screenshot
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* import { BrowserUseAdapter } from './backends/browser-use-adapter';
|
|
207
|
+
* import { snapshot } from './backends/snapshot';
|
|
208
|
+
*
|
|
209
|
+
* const adapter = new BrowserUseAdapter(session);
|
|
210
|
+
* const backend = await adapter.createBackend();
|
|
211
|
+
*
|
|
212
|
+
* // Basic snapshot (uses local extension)
|
|
213
|
+
* const snap = await snapshot(backend);
|
|
214
|
+
*
|
|
215
|
+
* // With options
|
|
216
|
+
* const snap = await snapshot(backend, {
|
|
217
|
+
* limit: 100,
|
|
218
|
+
* screenshot: true
|
|
219
|
+
* });
|
|
220
|
+
*/
|
|
221
|
+
async function snapshot(backend, options) {
|
|
222
|
+
const opts = options || {};
|
|
223
|
+
// Use local extension (Free tier)
|
|
224
|
+
return await snapshotViaExtension(backend, opts);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Wait for Sentience extension to inject window.sentience API.
|
|
228
|
+
*
|
|
229
|
+
* @param backend - BrowserBackend implementation
|
|
230
|
+
* @param timeoutMs - Maximum wait time
|
|
231
|
+
* @throws ExtensionNotLoadedError if extension not injected within timeout
|
|
232
|
+
*/
|
|
233
|
+
async function waitForExtension(backend, timeoutMs = 5000) {
|
|
234
|
+
const startTime = Date.now();
|
|
235
|
+
let pollCount = 0;
|
|
236
|
+
while (true) {
|
|
237
|
+
const elapsed = Date.now() - startTime;
|
|
238
|
+
pollCount++;
|
|
239
|
+
if (elapsed >= timeoutMs) {
|
|
240
|
+
// Gather diagnostics
|
|
241
|
+
let diagnostics;
|
|
242
|
+
try {
|
|
243
|
+
const diagDict = (await backend.eval(`
|
|
244
|
+
(() => ({
|
|
245
|
+
sentienceDefined: typeof window.sentience !== 'undefined',
|
|
246
|
+
sentienceSnapshot: typeof window.sentience?.snapshot === 'function',
|
|
247
|
+
url: window.location.href,
|
|
248
|
+
extensionId: document.documentElement.dataset.sentienceExtensionId || null,
|
|
249
|
+
hasContentScript: !!document.documentElement.dataset.sentienceExtensionId
|
|
250
|
+
}))()
|
|
251
|
+
`));
|
|
252
|
+
diagnostics = diagDict;
|
|
253
|
+
}
|
|
254
|
+
catch (e) {
|
|
255
|
+
diagnostics = {
|
|
256
|
+
error: `Could not gather diagnostics: ${e instanceof Error ? e.message : String(e)}`,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
throw ExtensionNotLoadedError.fromTimeout(timeoutMs, diagnostics);
|
|
260
|
+
}
|
|
261
|
+
// Check if extension is ready
|
|
262
|
+
try {
|
|
263
|
+
const ready = await backend.eval("typeof window.sentience !== 'undefined' && " +
|
|
264
|
+
"typeof window.sentience.snapshot === 'function'");
|
|
265
|
+
if (ready) {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
// Keep polling
|
|
271
|
+
}
|
|
272
|
+
await sleep(100);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Take snapshot using local extension (Free tier).
|
|
277
|
+
*/
|
|
278
|
+
async function snapshotViaExtension(backend, options) {
|
|
279
|
+
// Wait for extension injection
|
|
280
|
+
await waitForExtension(backend, 5000);
|
|
281
|
+
// Build options dict for extension API
|
|
282
|
+
const extOptions = buildExtensionOptions(options);
|
|
283
|
+
// Call extension's snapshot function
|
|
284
|
+
const result = (await backend.eval(`
|
|
285
|
+
(() => {
|
|
286
|
+
const options = ${JSON.stringify(extOptions)};
|
|
287
|
+
return window.sentience.snapshot(options);
|
|
288
|
+
})()
|
|
289
|
+
`));
|
|
290
|
+
if (result === null) {
|
|
291
|
+
// Try to get URL for better error message
|
|
292
|
+
let url;
|
|
293
|
+
try {
|
|
294
|
+
url = (await backend.eval('window.location.href'));
|
|
295
|
+
}
|
|
296
|
+
catch {
|
|
297
|
+
// Ignore
|
|
298
|
+
}
|
|
299
|
+
throw SnapshotError.fromNullResult(url);
|
|
300
|
+
}
|
|
301
|
+
// Show overlay if requested
|
|
302
|
+
if (options.showOverlay) {
|
|
303
|
+
const rawElements = result.raw_elements;
|
|
304
|
+
if (rawElements) {
|
|
305
|
+
await backend.eval(`
|
|
306
|
+
(() => {
|
|
307
|
+
if (window.sentience && window.sentience.showOverlay) {
|
|
308
|
+
window.sentience.showOverlay(${JSON.stringify(rawElements)}, null);
|
|
309
|
+
}
|
|
310
|
+
})()
|
|
311
|
+
`);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
// Show grid overlay if requested
|
|
315
|
+
if (options.showGrid) {
|
|
316
|
+
const { getGridBounds } = await Promise.resolve().then(() => __importStar(require('../utils/grid-utils')));
|
|
317
|
+
// Get all grids (don't filter by gridId here - we want to show all but highlight the target)
|
|
318
|
+
const grids = getGridBounds(result, undefined);
|
|
319
|
+
if (grids.length > 0) {
|
|
320
|
+
// Pass gridId as targetGridId to highlight it in red
|
|
321
|
+
const targetGridId = options.gridId ?? null;
|
|
322
|
+
await backend.eval(`
|
|
323
|
+
(() => {
|
|
324
|
+
if (window.sentience && window.sentience.showGrid) {
|
|
325
|
+
window.sentience.showGrid(${JSON.stringify(grids)}, ${targetGridId !== null ? targetGridId : 'null'});
|
|
326
|
+
} else {
|
|
327
|
+
console.warn('[SDK] showGrid not available in extension');
|
|
328
|
+
}
|
|
329
|
+
})()
|
|
330
|
+
`);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
return result;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Build options dict for extension API call.
|
|
337
|
+
*/
|
|
338
|
+
function buildExtensionOptions(options) {
|
|
339
|
+
const extOptions = {};
|
|
340
|
+
// Screenshot config
|
|
341
|
+
if (options.screenshot !== false && options.screenshot !== undefined) {
|
|
342
|
+
extOptions.screenshot = options.screenshot;
|
|
343
|
+
}
|
|
344
|
+
// Limit (only if not default)
|
|
345
|
+
if (options.limit !== undefined && options.limit !== 50) {
|
|
346
|
+
extOptions.limit = options.limit;
|
|
347
|
+
}
|
|
348
|
+
// Filter
|
|
349
|
+
if (options.filter !== undefined) {
|
|
350
|
+
extOptions.filter = options.filter;
|
|
351
|
+
}
|
|
352
|
+
return extOptions;
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Helper sleep function.
|
|
356
|
+
*/
|
|
357
|
+
function sleep(ms) {
|
|
358
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
359
|
+
}
|
|
360
|
+
//# sourceMappingURL=snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/backends/snapshot.ts"],"names":[],"mappings":"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"}
|