sentienceapi 0.92.2 → 0.93.0
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/README.md +152 -54
- package/dist/actions.d.ts +33 -1
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +81 -3
- package/dist/actions.js.map +1 -1
- package/dist/agent-runtime.d.ts +190 -0
- package/dist/agent-runtime.d.ts.map +1 -0
- package/dist/agent-runtime.js +257 -0
- package/dist/agent-runtime.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/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -1
- package/dist/index.js.map +1 -1
- 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/snapshot-diff.d.ts +8 -15
- package/dist/snapshot-diff.d.ts.map +1 -1
- package/dist/snapshot-diff.js +38 -43
- package/dist/snapshot-diff.js.map +1 -1
- package/dist/snapshot.js +2 -0
- package/dist/snapshot.js.map +1 -1
- package/dist/tracing/indexer.d.ts.map +1 -1
- package/dist/tracing/indexer.js +3 -46
- package/dist/tracing/indexer.js.map +1 -1
- package/dist/tracing/types.d.ts +19 -0
- package/dist/tracing/types.d.ts.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/verification.d.ts +177 -0
- package/dist/verification.d.ts.map +1 -0
- package/dist/verification.js +315 -0
- package/dist/verification.js.map +1 -0
- package/package.json +1 -1
- package/src/extension/injected_api.js +9 -2
- package/src/extension/manifest.json +1 -1
- package/src/extension/pkg/sentience_core_bg.wasm +0 -0
- package/src/extension/release.json +47 -46
package/dist/actions.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.click = click;
|
|
7
7
|
exports.typeText = typeText;
|
|
8
|
+
exports.scrollTo = scrollTo;
|
|
8
9
|
exports.press = press;
|
|
9
10
|
exports.clickRect = clickRect;
|
|
10
11
|
const snapshot_1 = require("./snapshot");
|
|
@@ -180,6 +181,7 @@ async function click(browser, elementId, useMouse = true, takeSnapshot = false)
|
|
|
180
181
|
* @param elementId - Element ID from snapshot (must be a text input element)
|
|
181
182
|
* @param text - Text to type
|
|
182
183
|
* @param takeSnapshot - Take snapshot after action (default: false)
|
|
184
|
+
* @param delayMs - Delay between keystrokes in milliseconds for human-like typing (default: 0)
|
|
183
185
|
* @returns ActionResult with success status, outcome, duration, and optional snapshot
|
|
184
186
|
*
|
|
185
187
|
* @example
|
|
@@ -187,11 +189,15 @@ async function click(browser, elementId, useMouse = true, takeSnapshot = false)
|
|
|
187
189
|
* const snap = await snapshot(browser);
|
|
188
190
|
* const searchBox = find(snap, 'role=searchbox');
|
|
189
191
|
* if (searchBox) {
|
|
192
|
+
* // Type instantly (default behavior)
|
|
190
193
|
* await typeText(browser, searchBox.id, 'Hello World');
|
|
194
|
+
*
|
|
195
|
+
* // Type with human-like delay (~10ms between keystrokes)
|
|
196
|
+
* await typeText(browser, searchBox.id, 'Hello World', false, 10);
|
|
191
197
|
* }
|
|
192
198
|
* ```
|
|
193
199
|
*/
|
|
194
|
-
async function typeText(browser, elementId, text, takeSnapshot = false) {
|
|
200
|
+
async function typeText(browser, elementId, text, takeSnapshot = false, delayMs = 0) {
|
|
195
201
|
const page = browser.getPage();
|
|
196
202
|
if (!page) {
|
|
197
203
|
throw new Error('Browser not started. Call start() first.');
|
|
@@ -215,8 +221,80 @@ async function typeText(browser, elementId, text, takeSnapshot = false) {
|
|
|
215
221
|
error: { code: 'focus_failed', reason: 'Element not found' },
|
|
216
222
|
};
|
|
217
223
|
}
|
|
218
|
-
// Type using Playwright keyboard
|
|
219
|
-
await page.keyboard.type(text);
|
|
224
|
+
// Type using Playwright keyboard with optional delay between keystrokes
|
|
225
|
+
await page.keyboard.type(text, { delay: delayMs });
|
|
226
|
+
const durationMs = Date.now() - startTime;
|
|
227
|
+
const urlAfter = page.url();
|
|
228
|
+
const urlChanged = urlBefore !== urlAfter;
|
|
229
|
+
const outcome = urlChanged ? 'navigated' : 'dom_updated';
|
|
230
|
+
let snapshotAfter;
|
|
231
|
+
if (takeSnapshot) {
|
|
232
|
+
snapshotAfter = await (0, snapshot_1.snapshot)(browser);
|
|
233
|
+
}
|
|
234
|
+
return {
|
|
235
|
+
success: true,
|
|
236
|
+
duration_ms: durationMs,
|
|
237
|
+
outcome,
|
|
238
|
+
url_changed: urlChanged,
|
|
239
|
+
snapshot_after: snapshotAfter,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Scroll an element into view
|
|
244
|
+
*
|
|
245
|
+
* Scrolls the page so that the specified element is visible in the viewport.
|
|
246
|
+
* Uses the element registry to find the element and scrollIntoView() to scroll it.
|
|
247
|
+
*
|
|
248
|
+
* @param browser - SentienceBrowser instance
|
|
249
|
+
* @param elementId - Element ID from snapshot to scroll into view
|
|
250
|
+
* @param behavior - Scroll behavior: 'smooth' for animated scroll, 'instant' for immediate (default: 'smooth')
|
|
251
|
+
* @param block - Vertical alignment: 'start', 'center', 'end', 'nearest' (default: 'center')
|
|
252
|
+
* @param takeSnapshot - Take snapshot after action (default: false)
|
|
253
|
+
* @returns ActionResult with success status, outcome, duration, and optional snapshot
|
|
254
|
+
*
|
|
255
|
+
* @example
|
|
256
|
+
* ```typescript
|
|
257
|
+
* const snap = await snapshot(browser);
|
|
258
|
+
* const button = find(snap, 'role=button[name="Submit"]');
|
|
259
|
+
* if (button) {
|
|
260
|
+
* // Scroll element into view with smooth animation
|
|
261
|
+
* await scrollTo(browser, button.id);
|
|
262
|
+
*
|
|
263
|
+
* // Scroll instantly to top of viewport
|
|
264
|
+
* await scrollTo(browser, button.id, 'instant', 'start');
|
|
265
|
+
* }
|
|
266
|
+
* ```
|
|
267
|
+
*/
|
|
268
|
+
async function scrollTo(browser, elementId, behavior = 'smooth', block = 'center', takeSnapshot = false) {
|
|
269
|
+
const page = browser.getPage();
|
|
270
|
+
if (!page) {
|
|
271
|
+
throw new Error('Browser not started. Call start() first.');
|
|
272
|
+
}
|
|
273
|
+
const startTime = Date.now();
|
|
274
|
+
const urlBefore = page.url();
|
|
275
|
+
// Scroll element into view using the element registry
|
|
276
|
+
const scrolled = await browser_evaluator_1.BrowserEvaluator.evaluate(page, (args) => {
|
|
277
|
+
const el = window.sentience_registry[args.id];
|
|
278
|
+
if (el && el.scrollIntoView) {
|
|
279
|
+
el.scrollIntoView({
|
|
280
|
+
behavior: args.behavior,
|
|
281
|
+
block: args.block,
|
|
282
|
+
inline: 'nearest',
|
|
283
|
+
});
|
|
284
|
+
return true;
|
|
285
|
+
}
|
|
286
|
+
return false;
|
|
287
|
+
}, { id: elementId, behavior, block });
|
|
288
|
+
if (!scrolled) {
|
|
289
|
+
return {
|
|
290
|
+
success: false,
|
|
291
|
+
duration_ms: Date.now() - startTime,
|
|
292
|
+
outcome: 'error',
|
|
293
|
+
error: { code: 'scroll_failed', reason: 'Element not found or not scrollable' },
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
// Wait a bit for scroll to complete (especially for smooth scrolling)
|
|
297
|
+
await page.waitForTimeout(behavior === 'smooth' ? 500 : 100);
|
|
220
298
|
const durationMs = Date.now() - startTime;
|
|
221
299
|
const urlAfter = page.url();
|
|
222
300
|
const urlChanged = urlBefore !== urlAfter;
|
package/dist/actions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent runtime for verification loop support.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a thin runtime wrapper that combines:
|
|
5
|
+
* 1. Browser session management
|
|
6
|
+
* 2. Snapshot/query helpers
|
|
7
|
+
* 3. Tracer for event emission
|
|
8
|
+
* 4. Assertion/verification methods
|
|
9
|
+
*
|
|
10
|
+
* The AgentRuntime is designed to be used in agent verification loops where
|
|
11
|
+
* you need to repeatedly take snapshots, execute actions, and verify results.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { SentienceBrowser } from './browser';
|
|
16
|
+
* import { AgentRuntime } from './agent-runtime';
|
|
17
|
+
* import { urlMatches, exists } from './verification';
|
|
18
|
+
* import { Tracer, JsonlTraceSink } from './tracing';
|
|
19
|
+
*
|
|
20
|
+
* const browser = await SentienceBrowser.create();
|
|
21
|
+
* const page = await browser.newPage();
|
|
22
|
+
* await page.goto("https://example.com");
|
|
23
|
+
*
|
|
24
|
+
* const sink = new JsonlTraceSink("trace.jsonl");
|
|
25
|
+
* const tracer = new Tracer("test-run", sink);
|
|
26
|
+
*
|
|
27
|
+
* const runtime = new AgentRuntime(browser, page, tracer);
|
|
28
|
+
*
|
|
29
|
+
* // Take snapshot and run assertions
|
|
30
|
+
* await runtime.snapshot();
|
|
31
|
+
* runtime.assert(urlMatches(/example\.com/), "on_homepage");
|
|
32
|
+
* runtime.assert(exists("role=button"), "has_buttons");
|
|
33
|
+
*
|
|
34
|
+
* // Check if task is done
|
|
35
|
+
* if (runtime.assertDone(exists("text~'Success'"), "task_complete")) {
|
|
36
|
+
* console.log("Task completed!");
|
|
37
|
+
* }
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
import { Page } from 'playwright';
|
|
41
|
+
import { Snapshot } from './types';
|
|
42
|
+
import { Predicate } from './verification';
|
|
43
|
+
import { Tracer } from './tracing/tracer';
|
|
44
|
+
interface BrowserLike {
|
|
45
|
+
snapshot(page: Page, options?: Record<string, any>): Promise<Snapshot>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Assertion record for accumulation and step_end emission.
|
|
49
|
+
*/
|
|
50
|
+
export interface AssertionRecord {
|
|
51
|
+
label: string;
|
|
52
|
+
passed: boolean;
|
|
53
|
+
required: boolean;
|
|
54
|
+
reason: string;
|
|
55
|
+
details: Record<string, any>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Runtime wrapper for agent verification loops.
|
|
59
|
+
*
|
|
60
|
+
* Provides ergonomic methods for:
|
|
61
|
+
* - snapshot(): Take page snapshot
|
|
62
|
+
* - assert(): Evaluate assertion predicates
|
|
63
|
+
* - assertDone(): Assert task completion (required assertion)
|
|
64
|
+
*
|
|
65
|
+
* The runtime manages assertion state per step and emits verification events
|
|
66
|
+
* to the tracer for Studio timeline display.
|
|
67
|
+
*/
|
|
68
|
+
export declare class AgentRuntime {
|
|
69
|
+
/** Browser instance for taking snapshots */
|
|
70
|
+
readonly browser: BrowserLike;
|
|
71
|
+
/** Playwright Page for browser interaction */
|
|
72
|
+
readonly page: Page;
|
|
73
|
+
/** Tracer for event emission */
|
|
74
|
+
readonly tracer: Tracer;
|
|
75
|
+
/** Current step identifier */
|
|
76
|
+
stepId: string | null;
|
|
77
|
+
/** Current step index (0-based) */
|
|
78
|
+
stepIndex: number;
|
|
79
|
+
/** Most recent snapshot (for assertion context) */
|
|
80
|
+
lastSnapshot: Snapshot | null;
|
|
81
|
+
/** Assertions accumulated during current step */
|
|
82
|
+
private assertionsThisStep;
|
|
83
|
+
/** Task completion tracking */
|
|
84
|
+
private taskDone;
|
|
85
|
+
private taskDoneLabel;
|
|
86
|
+
/**
|
|
87
|
+
* Create a new AgentRuntime.
|
|
88
|
+
*
|
|
89
|
+
* @param browser - Browser instance for taking snapshots
|
|
90
|
+
* @param page - Playwright Page for browser interaction
|
|
91
|
+
* @param tracer - Tracer for emitting verification events
|
|
92
|
+
*/
|
|
93
|
+
constructor(browser: BrowserLike, page: Page, tracer: Tracer);
|
|
94
|
+
/**
|
|
95
|
+
* Build assertion context from current state.
|
|
96
|
+
*/
|
|
97
|
+
private ctx;
|
|
98
|
+
/**
|
|
99
|
+
* Take a snapshot of the current page state.
|
|
100
|
+
*
|
|
101
|
+
* This updates lastSnapshot which is used as context for assertions.
|
|
102
|
+
*
|
|
103
|
+
* @param options - Options passed through to browser.snapshot()
|
|
104
|
+
* @returns Snapshot of current page state
|
|
105
|
+
*/
|
|
106
|
+
snapshot(options?: Record<string, any>): Promise<Snapshot>;
|
|
107
|
+
/**
|
|
108
|
+
* Begin a new step in the verification loop.
|
|
109
|
+
*
|
|
110
|
+
* This:
|
|
111
|
+
* - Generates a new stepId
|
|
112
|
+
* - Clears assertions from previous step
|
|
113
|
+
* - Increments stepIndex (or uses provided value)
|
|
114
|
+
*
|
|
115
|
+
* @param goal - Description of what this step aims to achieve
|
|
116
|
+
* @param stepIndex - Optional explicit step index (otherwise auto-increments)
|
|
117
|
+
* @returns Generated stepId
|
|
118
|
+
*/
|
|
119
|
+
beginStep(goal: string, stepIndex?: number): string;
|
|
120
|
+
/**
|
|
121
|
+
* Evaluate an assertion against current snapshot state.
|
|
122
|
+
*
|
|
123
|
+
* The assertion result is:
|
|
124
|
+
* 1. Accumulated for inclusion in step_end.data.verify.signals.assertions
|
|
125
|
+
* 2. Emitted as a dedicated 'verification' event for Studio timeline
|
|
126
|
+
*
|
|
127
|
+
* @param predicate - Predicate function to evaluate
|
|
128
|
+
* @param label - Human-readable label for this assertion
|
|
129
|
+
* @param required - If true, this assertion gates step success (default: false)
|
|
130
|
+
* @returns True if assertion passed, false otherwise
|
|
131
|
+
*/
|
|
132
|
+
assert(predicate: Predicate, label: string, required?: boolean): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Assert task completion (required assertion).
|
|
135
|
+
*
|
|
136
|
+
* This is a convenience wrapper for assert() with required=true.
|
|
137
|
+
* When the assertion passes, it marks the task as done.
|
|
138
|
+
*
|
|
139
|
+
* Use this for final verification that the agent's goal is complete.
|
|
140
|
+
*
|
|
141
|
+
* @param predicate - Predicate function to evaluate
|
|
142
|
+
* @param label - Human-readable label for this assertion
|
|
143
|
+
* @returns True if task is complete (assertion passed), false otherwise
|
|
144
|
+
*/
|
|
145
|
+
assertDone(predicate: Predicate, label: string): boolean;
|
|
146
|
+
/**
|
|
147
|
+
* Get assertions data for inclusion in step_end.data.verify.signals.
|
|
148
|
+
*
|
|
149
|
+
* This is called when building the step_end event to include
|
|
150
|
+
* assertion results in the trace.
|
|
151
|
+
*
|
|
152
|
+
* @returns Object with 'assertions', 'task_done', 'task_done_label' keys
|
|
153
|
+
*/
|
|
154
|
+
getAssertionsForStepEnd(): {
|
|
155
|
+
assertions: AssertionRecord[];
|
|
156
|
+
task_done?: boolean;
|
|
157
|
+
task_done_label?: string;
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Get and clear assertions for current step.
|
|
161
|
+
*
|
|
162
|
+
* Call this at step end to get accumulated assertions
|
|
163
|
+
* for the step_end event, then clear for next step.
|
|
164
|
+
*
|
|
165
|
+
* @returns List of assertion records from this step
|
|
166
|
+
*/
|
|
167
|
+
flushAssertions(): AssertionRecord[];
|
|
168
|
+
/**
|
|
169
|
+
* Check if task has been marked as done via assertDone().
|
|
170
|
+
*/
|
|
171
|
+
get isTaskDone(): boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Reset task_done state (for multi-task runs).
|
|
174
|
+
*/
|
|
175
|
+
resetTaskDone(): void;
|
|
176
|
+
/**
|
|
177
|
+
* Check if all assertions in current step passed.
|
|
178
|
+
*
|
|
179
|
+
* @returns True if all assertions passed (or no assertions made)
|
|
180
|
+
*/
|
|
181
|
+
allAssertionsPassed(): boolean;
|
|
182
|
+
/**
|
|
183
|
+
* Check if all required assertions in current step passed.
|
|
184
|
+
*
|
|
185
|
+
* @returns True if all required assertions passed (or no required assertions)
|
|
186
|
+
*/
|
|
187
|
+
requiredAssertionsPassed(): boolean;
|
|
188
|
+
}
|
|
189
|
+
export {};
|
|
190
|
+
//# sourceMappingURL=agent-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAiB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACxE;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACvB,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAK;IACtB,mDAAmD;IACnD,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAErC,iDAAiD;IACjD,OAAO,CAAC,kBAAkB,CAAyB;IACnD,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,aAAa,CAAuB;IAE5C;;;;;;OAMG;gBACS,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAM5D;;OAEG;IACH,OAAO,CAAC,GAAG;IAeX;;;;;;;OAOG;IACG,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKhE;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAiBnD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO;IA8B/E;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAsBxD;;;;;;;OAOG;IACH,uBAAuB,IAAI;QACzB,UAAU,EAAE,eAAe,EAAE,CAAC;QAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B;IAiBD;;;;;;;OAOG;IACH,eAAe,IAAI,eAAe,EAAE;IAMpC;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,aAAa,IAAI,IAAI;IAKrB;;;;OAIG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;;;OAIG;IACH,wBAAwB,IAAI,OAAO;CAIpC"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Agent runtime for verification loop support.
|
|
4
|
+
*
|
|
5
|
+
* This module provides a thin runtime wrapper that combines:
|
|
6
|
+
* 1. Browser session management
|
|
7
|
+
* 2. Snapshot/query helpers
|
|
8
|
+
* 3. Tracer for event emission
|
|
9
|
+
* 4. Assertion/verification methods
|
|
10
|
+
*
|
|
11
|
+
* The AgentRuntime is designed to be used in agent verification loops where
|
|
12
|
+
* you need to repeatedly take snapshots, execute actions, and verify results.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { SentienceBrowser } from './browser';
|
|
17
|
+
* import { AgentRuntime } from './agent-runtime';
|
|
18
|
+
* import { urlMatches, exists } from './verification';
|
|
19
|
+
* import { Tracer, JsonlTraceSink } from './tracing';
|
|
20
|
+
*
|
|
21
|
+
* const browser = await SentienceBrowser.create();
|
|
22
|
+
* const page = await browser.newPage();
|
|
23
|
+
* await page.goto("https://example.com");
|
|
24
|
+
*
|
|
25
|
+
* const sink = new JsonlTraceSink("trace.jsonl");
|
|
26
|
+
* const tracer = new Tracer("test-run", sink);
|
|
27
|
+
*
|
|
28
|
+
* const runtime = new AgentRuntime(browser, page, tracer);
|
|
29
|
+
*
|
|
30
|
+
* // Take snapshot and run assertions
|
|
31
|
+
* await runtime.snapshot();
|
|
32
|
+
* runtime.assert(urlMatches(/example\.com/), "on_homepage");
|
|
33
|
+
* runtime.assert(exists("role=button"), "has_buttons");
|
|
34
|
+
*
|
|
35
|
+
* // Check if task is done
|
|
36
|
+
* if (runtime.assertDone(exists("text~'Success'"), "task_complete")) {
|
|
37
|
+
* console.log("Task completed!");
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.AgentRuntime = void 0;
|
|
43
|
+
const uuid_1 = require("uuid");
|
|
44
|
+
/**
|
|
45
|
+
* Runtime wrapper for agent verification loops.
|
|
46
|
+
*
|
|
47
|
+
* Provides ergonomic methods for:
|
|
48
|
+
* - snapshot(): Take page snapshot
|
|
49
|
+
* - assert(): Evaluate assertion predicates
|
|
50
|
+
* - assertDone(): Assert task completion (required assertion)
|
|
51
|
+
*
|
|
52
|
+
* The runtime manages assertion state per step and emits verification events
|
|
53
|
+
* to the tracer for Studio timeline display.
|
|
54
|
+
*/
|
|
55
|
+
class AgentRuntime {
|
|
56
|
+
/**
|
|
57
|
+
* Create a new AgentRuntime.
|
|
58
|
+
*
|
|
59
|
+
* @param browser - Browser instance for taking snapshots
|
|
60
|
+
* @param page - Playwright Page for browser interaction
|
|
61
|
+
* @param tracer - Tracer for emitting verification events
|
|
62
|
+
*/
|
|
63
|
+
constructor(browser, page, tracer) {
|
|
64
|
+
/** Current step identifier */
|
|
65
|
+
this.stepId = null;
|
|
66
|
+
/** Current step index (0-based) */
|
|
67
|
+
this.stepIndex = 0;
|
|
68
|
+
/** Most recent snapshot (for assertion context) */
|
|
69
|
+
this.lastSnapshot = null;
|
|
70
|
+
/** Assertions accumulated during current step */
|
|
71
|
+
this.assertionsThisStep = [];
|
|
72
|
+
/** Task completion tracking */
|
|
73
|
+
this.taskDone = false;
|
|
74
|
+
this.taskDoneLabel = null;
|
|
75
|
+
this.browser = browser;
|
|
76
|
+
this.page = page;
|
|
77
|
+
this.tracer = tracer;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Build assertion context from current state.
|
|
81
|
+
*/
|
|
82
|
+
ctx() {
|
|
83
|
+
let url = null;
|
|
84
|
+
if (this.lastSnapshot) {
|
|
85
|
+
url = this.lastSnapshot.url;
|
|
86
|
+
}
|
|
87
|
+
else if (this.page) {
|
|
88
|
+
url = this.page.url();
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
snapshot: this.lastSnapshot,
|
|
92
|
+
url,
|
|
93
|
+
stepId: this.stepId,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Take a snapshot of the current page state.
|
|
98
|
+
*
|
|
99
|
+
* This updates lastSnapshot which is used as context for assertions.
|
|
100
|
+
*
|
|
101
|
+
* @param options - Options passed through to browser.snapshot()
|
|
102
|
+
* @returns Snapshot of current page state
|
|
103
|
+
*/
|
|
104
|
+
async snapshot(options) {
|
|
105
|
+
this.lastSnapshot = await this.browser.snapshot(this.page, options);
|
|
106
|
+
return this.lastSnapshot;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Begin a new step in the verification loop.
|
|
110
|
+
*
|
|
111
|
+
* This:
|
|
112
|
+
* - Generates a new stepId
|
|
113
|
+
* - Clears assertions from previous step
|
|
114
|
+
* - Increments stepIndex (or uses provided value)
|
|
115
|
+
*
|
|
116
|
+
* @param goal - Description of what this step aims to achieve
|
|
117
|
+
* @param stepIndex - Optional explicit step index (otherwise auto-increments)
|
|
118
|
+
* @returns Generated stepId
|
|
119
|
+
*/
|
|
120
|
+
beginStep(goal, stepIndex) {
|
|
121
|
+
// Clear previous step state
|
|
122
|
+
this.assertionsThisStep = [];
|
|
123
|
+
// Generate new stepId
|
|
124
|
+
this.stepId = (0, uuid_1.v4)();
|
|
125
|
+
// Update step index
|
|
126
|
+
if (stepIndex !== undefined) {
|
|
127
|
+
this.stepIndex = stepIndex;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
this.stepIndex += 1;
|
|
131
|
+
}
|
|
132
|
+
return this.stepId;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Evaluate an assertion against current snapshot state.
|
|
136
|
+
*
|
|
137
|
+
* The assertion result is:
|
|
138
|
+
* 1. Accumulated for inclusion in step_end.data.verify.signals.assertions
|
|
139
|
+
* 2. Emitted as a dedicated 'verification' event for Studio timeline
|
|
140
|
+
*
|
|
141
|
+
* @param predicate - Predicate function to evaluate
|
|
142
|
+
* @param label - Human-readable label for this assertion
|
|
143
|
+
* @param required - If true, this assertion gates step success (default: false)
|
|
144
|
+
* @returns True if assertion passed, false otherwise
|
|
145
|
+
*/
|
|
146
|
+
assert(predicate, label, required = false) {
|
|
147
|
+
const outcome = predicate(this.ctx());
|
|
148
|
+
const record = {
|
|
149
|
+
label,
|
|
150
|
+
passed: outcome.passed,
|
|
151
|
+
required,
|
|
152
|
+
reason: outcome.reason,
|
|
153
|
+
details: outcome.details,
|
|
154
|
+
};
|
|
155
|
+
this.assertionsThisStep.push(record);
|
|
156
|
+
// Emit dedicated verification event (Option B from design doc)
|
|
157
|
+
// This makes assertions visible in Studio timeline
|
|
158
|
+
this.tracer.emit('verification', {
|
|
159
|
+
kind: 'assert',
|
|
160
|
+
passed: outcome.passed,
|
|
161
|
+
label,
|
|
162
|
+
required,
|
|
163
|
+
reason: outcome.reason,
|
|
164
|
+
details: outcome.details,
|
|
165
|
+
}, this.stepId || undefined);
|
|
166
|
+
return outcome.passed;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Assert task completion (required assertion).
|
|
170
|
+
*
|
|
171
|
+
* This is a convenience wrapper for assert() with required=true.
|
|
172
|
+
* When the assertion passes, it marks the task as done.
|
|
173
|
+
*
|
|
174
|
+
* Use this for final verification that the agent's goal is complete.
|
|
175
|
+
*
|
|
176
|
+
* @param predicate - Predicate function to evaluate
|
|
177
|
+
* @param label - Human-readable label for this assertion
|
|
178
|
+
* @returns True if task is complete (assertion passed), false otherwise
|
|
179
|
+
*/
|
|
180
|
+
assertDone(predicate, label) {
|
|
181
|
+
const ok = this.assert(predicate, label, true);
|
|
182
|
+
if (ok) {
|
|
183
|
+
this.taskDone = true;
|
|
184
|
+
this.taskDoneLabel = label;
|
|
185
|
+
// Emit task_done verification event
|
|
186
|
+
this.tracer.emit('verification', {
|
|
187
|
+
kind: 'task_done',
|
|
188
|
+
passed: true,
|
|
189
|
+
label,
|
|
190
|
+
}, this.stepId || undefined);
|
|
191
|
+
}
|
|
192
|
+
return ok;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get assertions data for inclusion in step_end.data.verify.signals.
|
|
196
|
+
*
|
|
197
|
+
* This is called when building the step_end event to include
|
|
198
|
+
* assertion results in the trace.
|
|
199
|
+
*
|
|
200
|
+
* @returns Object with 'assertions', 'task_done', 'task_done_label' keys
|
|
201
|
+
*/
|
|
202
|
+
getAssertionsForStepEnd() {
|
|
203
|
+
const result = {
|
|
204
|
+
assertions: [...this.assertionsThisStep],
|
|
205
|
+
};
|
|
206
|
+
if (this.taskDone) {
|
|
207
|
+
result.task_done = true;
|
|
208
|
+
result.task_done_label = this.taskDoneLabel || undefined;
|
|
209
|
+
}
|
|
210
|
+
return result;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Get and clear assertions for current step.
|
|
214
|
+
*
|
|
215
|
+
* Call this at step end to get accumulated assertions
|
|
216
|
+
* for the step_end event, then clear for next step.
|
|
217
|
+
*
|
|
218
|
+
* @returns List of assertion records from this step
|
|
219
|
+
*/
|
|
220
|
+
flushAssertions() {
|
|
221
|
+
const assertions = [...this.assertionsThisStep];
|
|
222
|
+
this.assertionsThisStep = [];
|
|
223
|
+
return assertions;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Check if task has been marked as done via assertDone().
|
|
227
|
+
*/
|
|
228
|
+
get isTaskDone() {
|
|
229
|
+
return this.taskDone;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Reset task_done state (for multi-task runs).
|
|
233
|
+
*/
|
|
234
|
+
resetTaskDone() {
|
|
235
|
+
this.taskDone = false;
|
|
236
|
+
this.taskDoneLabel = null;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Check if all assertions in current step passed.
|
|
240
|
+
*
|
|
241
|
+
* @returns True if all assertions passed (or no assertions made)
|
|
242
|
+
*/
|
|
243
|
+
allAssertionsPassed() {
|
|
244
|
+
return this.assertionsThisStep.every(a => a.passed);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Check if all required assertions in current step passed.
|
|
248
|
+
*
|
|
249
|
+
* @returns True if all required assertions passed (or no required assertions)
|
|
250
|
+
*/
|
|
251
|
+
requiredAssertionsPassed() {
|
|
252
|
+
const required = this.assertionsThisStep.filter(a => a.required);
|
|
253
|
+
return required.every(a => a.passed);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
exports.AgentRuntime = AgentRuntime;
|
|
257
|
+
//# sourceMappingURL=agent-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
|