sentienceapi 0.95.0 → 0.96.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 +51 -56
- package/dist/agent-runtime.d.ts +28 -0
- package/dist/agent-runtime.d.ts.map +1 -1
- package/dist/agent-runtime.js +200 -19
- package/dist/agent-runtime.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/llm-provider.d.ts +14 -0
- package/dist/llm-provider.d.ts.map +1 -1
- package/dist/llm-provider.js +79 -0
- package/dist/llm-provider.js.map +1 -1
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +91 -4
- package/dist/query.js.map +1 -1
- package/dist/snapshot.js +4 -0
- package/dist/snapshot.js.map +1 -1
- package/dist/types.d.ts +33 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/verification.d.ts +8 -0
- package/dist/verification.d.ts.map +1 -1
- package/dist/verification.js +192 -4
- package/dist/verification.js.map +1 -1
- package/package.json +1 -1
- package/src/extension/injected_api.js +90 -9
- package/src/extension/pkg/sentience_core.d.ts +22 -22
- package/src/extension/pkg/sentience_core.js +192 -144
- package/src/extension/pkg/sentience_core_bg.wasm +0 -0
- package/src/extension/release.json +30 -30
package/README.md
CHANGED
|
@@ -26,7 +26,16 @@ npm run build
|
|
|
26
26
|
Use `AgentRuntime` to add Jest-style assertions to your agent loops. Verify browser state, check task completion, and get clear feedback on what's working:
|
|
27
27
|
|
|
28
28
|
```typescript
|
|
29
|
-
import {
|
|
29
|
+
import {
|
|
30
|
+
SentienceBrowser,
|
|
31
|
+
AgentRuntime,
|
|
32
|
+
urlContains,
|
|
33
|
+
exists,
|
|
34
|
+
allOf,
|
|
35
|
+
isEnabled,
|
|
36
|
+
isChecked,
|
|
37
|
+
valueEquals,
|
|
38
|
+
} from 'sentienceapi';
|
|
30
39
|
import { createTracer } from 'sentienceapi';
|
|
31
40
|
import { Page } from 'playwright';
|
|
32
41
|
|
|
@@ -52,6 +61,20 @@ runtime.assert(urlContains('example.com'), 'on_correct_domain');
|
|
|
52
61
|
runtime.assert(exists('role=heading'), 'has_heading');
|
|
53
62
|
runtime.assert(allOf([exists('role=button'), exists('role=link')]), 'has_interactive_elements');
|
|
54
63
|
|
|
64
|
+
// v1: state-aware assertions (when Gateway refinement is enabled)
|
|
65
|
+
runtime.assert(isEnabled('role=button'), 'button_enabled');
|
|
66
|
+
runtime.assert(isChecked("role=checkbox name~'subscribe'"), 'subscribe_checked_if_present');
|
|
67
|
+
runtime.assert(
|
|
68
|
+
valueEquals("role=textbox name~'email'", 'user@example.com'),
|
|
69
|
+
'email_value_if_present'
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
// v2: retry loop with snapshot confidence gating + exhaustion
|
|
73
|
+
const ok = await runtime
|
|
74
|
+
.check(exists('role=heading'), 'heading_eventually_visible', true)
|
|
75
|
+
.eventually({ timeoutMs: 10_000, pollMs: 250, minConfidence: 0.7, maxSnapshotAttempts: 3 });
|
|
76
|
+
console.log('eventually() result:', ok);
|
|
77
|
+
|
|
55
78
|
// Check task completion
|
|
56
79
|
if (runtime.assertDone(exists("text~'Example'"), 'task_complete')) {
|
|
57
80
|
console.log('✅ Task completed!');
|
|
@@ -60,7 +83,7 @@ if (runtime.assertDone(exists("text~'Example'"), 'task_complete')) {
|
|
|
60
83
|
console.log(`Task done: ${runtime.isTaskDone}`);
|
|
61
84
|
```
|
|
62
85
|
|
|
63
|
-
**See
|
|
86
|
+
**See examples:** [`examples/asserts/`](examples/asserts/)
|
|
64
87
|
|
|
65
88
|
## 🚀 Quick Start: Choose Your Abstraction Level
|
|
66
89
|
|
|
@@ -316,69 +339,41 @@ console.log(`Task done: ${runtime.isTaskDone}`);
|
|
|
316
339
|
---
|
|
317
340
|
|
|
318
341
|
<details>
|
|
319
|
-
<summary><h2>💼 Real-World Example:
|
|
342
|
+
<summary><h2>💼 Real-World Example: Assertion-driven navigation</h2></summary>
|
|
320
343
|
|
|
321
|
-
This example
|
|
344
|
+
This example shows how to use **assertions + `.eventually()`** to make an agent loop resilient:
|
|
322
345
|
|
|
323
346
|
```typescript
|
|
324
|
-
import { SentienceBrowser,
|
|
347
|
+
import { SentienceBrowser, AgentRuntime, urlContains, exists } from 'sentienceapi';
|
|
348
|
+
import { createTracer } from 'sentienceapi';
|
|
325
349
|
|
|
326
350
|
async function main() {
|
|
327
|
-
const browser =
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
el.bbox.y < 600 // First row
|
|
349
|
-
);
|
|
350
|
-
|
|
351
|
-
if (products.length > 0) {
|
|
352
|
-
// Sort by position (left to right, top to bottom)
|
|
353
|
-
products.sort((a, b) => a.bbox.y - b.bbox.y || a.bbox.x - b.bbox.x);
|
|
354
|
-
const firstProduct = products[0];
|
|
355
|
-
|
|
356
|
-
console.log(`Clicking: ${firstProduct.text}`);
|
|
357
|
-
const result = await click(browser, firstProduct.id);
|
|
358
|
-
|
|
359
|
-
// Wait for product page
|
|
360
|
-
await browser.getPage().waitForLoadState('networkidle');
|
|
361
|
-
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
362
|
-
|
|
363
|
-
// Find and click "Add to Cart" button
|
|
364
|
-
const productSnap = await snapshot(browser);
|
|
365
|
-
const addToCart = find(productSnap, 'role=button text~"add to cart"');
|
|
366
|
-
|
|
367
|
-
if (addToCart) {
|
|
368
|
-
const cartResult = await click(browser, addToCart.id);
|
|
369
|
-
console.log(`Added to cart: ${cartResult.success}`);
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
} finally {
|
|
373
|
-
await browser.close();
|
|
374
|
-
}
|
|
351
|
+
const browser = await SentienceBrowser.create({ apiKey: process.env.SENTIENCE_API_KEY });
|
|
352
|
+
const tracer = await createTracer({ runId: 'verified-run', uploadTrace: false });
|
|
353
|
+
|
|
354
|
+
const adapter = {
|
|
355
|
+
snapshot: async (_page: any, options?: Record<string, any>) => {
|
|
356
|
+
return await browser.snapshot(options);
|
|
357
|
+
},
|
|
358
|
+
};
|
|
359
|
+
const runtime = new AgentRuntime(adapter as any, browser.getPage() as any, tracer);
|
|
360
|
+
|
|
361
|
+
await browser.getPage().goto('https://example.com');
|
|
362
|
+
runtime.beginStep('Verify we are on the right page');
|
|
363
|
+
|
|
364
|
+
await runtime
|
|
365
|
+
.check(urlContains('example.com'), 'on_domain', true)
|
|
366
|
+
.eventually({ timeoutMs: 10_000, pollMs: 250, minConfidence: 0.7, maxSnapshotAttempts: 3 });
|
|
367
|
+
|
|
368
|
+
runtime.assert(exists('role=heading'), 'heading_present');
|
|
369
|
+
|
|
370
|
+
await tracer.close();
|
|
371
|
+
await browser.close();
|
|
375
372
|
}
|
|
376
373
|
|
|
377
|
-
main();
|
|
374
|
+
main().catch(console.error);
|
|
378
375
|
```
|
|
379
376
|
|
|
380
|
-
**📖 See the complete tutorial:** [Amazon Shopping Guide](../docs/AMAZON_SHOPPING_GUIDE.md)
|
|
381
|
-
|
|
382
377
|
</details>
|
|
383
378
|
|
|
384
379
|
---
|
package/dist/agent-runtime.d.ts
CHANGED
|
@@ -41,6 +41,7 @@ import { Page } from 'playwright';
|
|
|
41
41
|
import { Snapshot } from './types';
|
|
42
42
|
import { Predicate } from './verification';
|
|
43
43
|
import { Tracer } from './tracing/tracer';
|
|
44
|
+
import { LLMProvider } from './llm-provider';
|
|
44
45
|
interface BrowserLike {
|
|
45
46
|
snapshot(page: Page, options?: Record<string, any>): Promise<Snapshot>;
|
|
46
47
|
}
|
|
@@ -54,6 +55,30 @@ export interface AssertionRecord {
|
|
|
54
55
|
reason: string;
|
|
55
56
|
details: Record<string, any>;
|
|
56
57
|
}
|
|
58
|
+
export interface EventuallyOptions {
|
|
59
|
+
timeoutMs?: number;
|
|
60
|
+
pollMs?: number;
|
|
61
|
+
snapshotOptions?: Record<string, any>;
|
|
62
|
+
/** If set, `.eventually()` will treat snapshots below this confidence as failures and resnapshot. */
|
|
63
|
+
minConfidence?: number;
|
|
64
|
+
/** Max number of snapshot attempts to get above minConfidence before declaring exhaustion. */
|
|
65
|
+
maxSnapshotAttempts?: number;
|
|
66
|
+
/** Optional: vision fallback provider used after snapshot exhaustion (last resort). */
|
|
67
|
+
visionProvider?: LLMProvider;
|
|
68
|
+
/** Optional: override vision system prompt (YES/NO only). */
|
|
69
|
+
visionSystemPrompt?: string;
|
|
70
|
+
/** Optional: override vision user prompt (YES/NO only). */
|
|
71
|
+
visionUserPrompt?: string;
|
|
72
|
+
}
|
|
73
|
+
export declare class AssertionHandle {
|
|
74
|
+
private runtime;
|
|
75
|
+
private predicate;
|
|
76
|
+
private label;
|
|
77
|
+
private required;
|
|
78
|
+
constructor(runtime: AgentRuntime, predicate: Predicate, label: string, required: boolean);
|
|
79
|
+
once(): boolean;
|
|
80
|
+
eventually(options?: EventuallyOptions): Promise<boolean>;
|
|
81
|
+
}
|
|
57
82
|
/**
|
|
58
83
|
* Runtime wrapper for agent verification loops.
|
|
59
84
|
*
|
|
@@ -83,6 +108,9 @@ export declare class AgentRuntime {
|
|
|
83
108
|
/** Task completion tracking */
|
|
84
109
|
private taskDone;
|
|
85
110
|
private taskDoneLabel;
|
|
111
|
+
private static similarity;
|
|
112
|
+
_recordOutcome(outcome: ReturnType<Predicate>, label: string, required: boolean, extra: Record<string, any> | null, recordInStep: boolean): void;
|
|
113
|
+
check(predicate: Predicate, label: string, required?: boolean): AssertionHandle;
|
|
86
114
|
/**
|
|
87
115
|
* Create a new AgentRuntime.
|
|
88
116
|
*
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/agent-runtime.js
CHANGED
|
@@ -39,8 +39,142 @@
|
|
|
39
39
|
* ```
|
|
40
40
|
*/
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.AgentRuntime = void 0;
|
|
42
|
+
exports.AgentRuntime = exports.AssertionHandle = void 0;
|
|
43
43
|
const uuid_1 = require("uuid");
|
|
44
|
+
class AssertionHandle {
|
|
45
|
+
constructor(runtime, predicate, label, required) {
|
|
46
|
+
this.runtime = runtime;
|
|
47
|
+
this.predicate = predicate;
|
|
48
|
+
this.label = label;
|
|
49
|
+
this.required = required;
|
|
50
|
+
}
|
|
51
|
+
once() {
|
|
52
|
+
return this.runtime.assert(this.predicate, this.label, this.required);
|
|
53
|
+
}
|
|
54
|
+
async eventually(options = {}) {
|
|
55
|
+
const timeoutMs = options.timeoutMs ?? 10000;
|
|
56
|
+
const pollMs = options.pollMs ?? 250;
|
|
57
|
+
const snapshotOptions = options.snapshotOptions;
|
|
58
|
+
const minConfidence = options.minConfidence;
|
|
59
|
+
const maxSnapshotAttempts = options.maxSnapshotAttempts ?? 3;
|
|
60
|
+
const visionProvider = options.visionProvider;
|
|
61
|
+
const visionSystemPrompt = options.visionSystemPrompt;
|
|
62
|
+
const visionUserPrompt = options.visionUserPrompt;
|
|
63
|
+
const deadline = Date.now() + timeoutMs;
|
|
64
|
+
let attempt = 0;
|
|
65
|
+
let snapshotAttempt = 0;
|
|
66
|
+
let lastOutcome = null;
|
|
67
|
+
while (true) {
|
|
68
|
+
attempt += 1;
|
|
69
|
+
await this.runtime.snapshot(snapshotOptions);
|
|
70
|
+
snapshotAttempt += 1;
|
|
71
|
+
const diagnostics = this.runtime.lastSnapshot?.diagnostics;
|
|
72
|
+
const confidence = diagnostics?.confidence;
|
|
73
|
+
if (typeof minConfidence === 'number' &&
|
|
74
|
+
typeof confidence === 'number' &&
|
|
75
|
+
Number.isFinite(confidence) &&
|
|
76
|
+
confidence < minConfidence) {
|
|
77
|
+
lastOutcome = {
|
|
78
|
+
passed: false,
|
|
79
|
+
reason: `Snapshot confidence ${confidence.toFixed(3)} < minConfidence ${minConfidence.toFixed(3)}`,
|
|
80
|
+
details: {
|
|
81
|
+
reason_code: 'snapshot_low_confidence',
|
|
82
|
+
confidence,
|
|
83
|
+
min_confidence: minConfidence,
|
|
84
|
+
snapshot_attempt: snapshotAttempt,
|
|
85
|
+
diagnostics,
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
this.runtime._recordOutcome(lastOutcome, this.label, this.required, { eventually: true, attempt, snapshot_attempt: snapshotAttempt, final: false }, false);
|
|
89
|
+
if (snapshotAttempt >= maxSnapshotAttempts) {
|
|
90
|
+
// Optional: vision fallback after snapshot exhaustion (last resort).
|
|
91
|
+
// Keeps the assertion surface invariant; only perception changes.
|
|
92
|
+
if (visionProvider && visionProvider.supportsVision?.()) {
|
|
93
|
+
try {
|
|
94
|
+
const buf = (await this.runtime.page.screenshot({ type: 'png' }));
|
|
95
|
+
const imageBase64 = Buffer.from(buf).toString('base64');
|
|
96
|
+
const sys = visionSystemPrompt ?? 'You are a strict visual verifier. Answer only YES or NO.';
|
|
97
|
+
const user = visionUserPrompt ??
|
|
98
|
+
`Given the screenshot, is the following condition satisfied?\n\n${this.label}\n\nAnswer YES or NO.`;
|
|
99
|
+
const resp = await visionProvider.generateWithImage(sys, user, imageBase64, {
|
|
100
|
+
temperature: 0.0,
|
|
101
|
+
});
|
|
102
|
+
const text = (resp.content || '').trim().toLowerCase();
|
|
103
|
+
const passed = text.startsWith('yes');
|
|
104
|
+
const finalOutcome = {
|
|
105
|
+
passed,
|
|
106
|
+
reason: passed ? 'vision_fallback_yes' : 'vision_fallback_no',
|
|
107
|
+
details: {
|
|
108
|
+
reason_code: passed ? 'vision_fallback_pass' : 'vision_fallback_fail',
|
|
109
|
+
vision_response: resp.content,
|
|
110
|
+
min_confidence: minConfidence,
|
|
111
|
+
snapshot_attempts: snapshotAttempt,
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
this.runtime._recordOutcome(finalOutcome, this.label, this.required, {
|
|
115
|
+
eventually: true,
|
|
116
|
+
attempt,
|
|
117
|
+
snapshot_attempt: snapshotAttempt,
|
|
118
|
+
final: true,
|
|
119
|
+
vision_fallback: true,
|
|
120
|
+
}, true);
|
|
121
|
+
return passed;
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
// fall through to snapshot_exhausted
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
const finalOutcome = {
|
|
128
|
+
passed: false,
|
|
129
|
+
reason: `Snapshot exhausted after ${snapshotAttempt} attempt(s) below minConfidence ${minConfidence.toFixed(3)}`,
|
|
130
|
+
details: {
|
|
131
|
+
reason_code: 'snapshot_exhausted',
|
|
132
|
+
confidence,
|
|
133
|
+
min_confidence: minConfidence,
|
|
134
|
+
snapshot_attempts: snapshotAttempt,
|
|
135
|
+
diagnostics,
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
this.runtime._recordOutcome(finalOutcome, this.label, this.required, {
|
|
139
|
+
eventually: true,
|
|
140
|
+
attempt,
|
|
141
|
+
snapshot_attempt: snapshotAttempt,
|
|
142
|
+
final: true,
|
|
143
|
+
exhausted: true,
|
|
144
|
+
}, true);
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
if (Date.now() >= deadline) {
|
|
148
|
+
this.runtime._recordOutcome(lastOutcome, this.label, this.required, {
|
|
149
|
+
eventually: true,
|
|
150
|
+
attempt,
|
|
151
|
+
snapshot_attempt: snapshotAttempt,
|
|
152
|
+
final: true,
|
|
153
|
+
timeout: true,
|
|
154
|
+
}, true);
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
await new Promise(resolve => setTimeout(resolve, pollMs));
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
lastOutcome = this.predicate(this.runtime.ctx());
|
|
161
|
+
// Emit attempt event (not recorded in step_end)
|
|
162
|
+
this.runtime._recordOutcome(lastOutcome, this.label, this.required, { eventually: true, attempt, final: false }, false);
|
|
163
|
+
if (lastOutcome.passed) {
|
|
164
|
+
// Record final success once
|
|
165
|
+
this.runtime._recordOutcome(lastOutcome, this.label, this.required, { eventually: true, attempt, final: true }, true);
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
if (Date.now() >= deadline) {
|
|
169
|
+
// Record final failure once
|
|
170
|
+
this.runtime._recordOutcome(lastOutcome, this.label, this.required, { eventually: true, attempt, final: true, timeout: true }, true);
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
await new Promise(resolve => setTimeout(resolve, pollMs));
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
exports.AssertionHandle = AssertionHandle;
|
|
44
178
|
/**
|
|
45
179
|
* Runtime wrapper for agent verification loops.
|
|
46
180
|
*
|
|
@@ -53,6 +187,70 @@ const uuid_1 = require("uuid");
|
|
|
53
187
|
* to the tracer for Studio timeline display.
|
|
54
188
|
*/
|
|
55
189
|
class AgentRuntime {
|
|
190
|
+
static similarity(a, b) {
|
|
191
|
+
const s1 = a.toLowerCase();
|
|
192
|
+
const s2 = b.toLowerCase();
|
|
193
|
+
if (!s1 || !s2)
|
|
194
|
+
return 0;
|
|
195
|
+
if (s1 === s2)
|
|
196
|
+
return 1;
|
|
197
|
+
// Bigram overlap (cheap, robust enough for suggestions)
|
|
198
|
+
const bigrams = (s) => {
|
|
199
|
+
const out = [];
|
|
200
|
+
for (let i = 0; i < s.length - 1; i++)
|
|
201
|
+
out.push(s.slice(i, i + 2));
|
|
202
|
+
return out;
|
|
203
|
+
};
|
|
204
|
+
const a2 = bigrams(s1);
|
|
205
|
+
const b2 = bigrams(s2);
|
|
206
|
+
const setB = new Set(b2);
|
|
207
|
+
let common = 0;
|
|
208
|
+
for (const g of a2)
|
|
209
|
+
if (setB.has(g))
|
|
210
|
+
common += 1;
|
|
211
|
+
return (2 * common) / (a2.length + b2.length + 1e-9);
|
|
212
|
+
}
|
|
213
|
+
_recordOutcome(outcome, label, required, extra, recordInStep) {
|
|
214
|
+
const details = { ...(outcome.details || {}) };
|
|
215
|
+
// Failure intelligence: nearest matches for selector-driven assertions
|
|
216
|
+
if (!outcome.passed && this.lastSnapshot && typeof details.selector === 'string') {
|
|
217
|
+
const selector = details.selector;
|
|
218
|
+
const scored = [];
|
|
219
|
+
for (const el of this.lastSnapshot.elements) {
|
|
220
|
+
const hay = el.name ?? el.text ?? '';
|
|
221
|
+
if (!hay)
|
|
222
|
+
continue;
|
|
223
|
+
const score = AgentRuntime.similarity(selector, hay);
|
|
224
|
+
scored.push({ score, el });
|
|
225
|
+
}
|
|
226
|
+
scored.sort((x, y) => y.score - x.score);
|
|
227
|
+
details.nearest_matches = scored.slice(0, 3).map(({ score, el }) => ({
|
|
228
|
+
id: el.id,
|
|
229
|
+
role: el.role,
|
|
230
|
+
text: (el.text ?? '').toString().slice(0, 80),
|
|
231
|
+
name: (el.name ?? '').toString().slice(0, 80),
|
|
232
|
+
score: Math.round(score * 10000) / 10000,
|
|
233
|
+
}));
|
|
234
|
+
}
|
|
235
|
+
const record = {
|
|
236
|
+
label,
|
|
237
|
+
passed: outcome.passed,
|
|
238
|
+
required,
|
|
239
|
+
reason: outcome.reason,
|
|
240
|
+
details,
|
|
241
|
+
...(extra || {}),
|
|
242
|
+
};
|
|
243
|
+
if (recordInStep) {
|
|
244
|
+
this.assertionsThisStep.push(record);
|
|
245
|
+
}
|
|
246
|
+
this.tracer.emit('verification', {
|
|
247
|
+
kind: 'assert',
|
|
248
|
+
...record,
|
|
249
|
+
}, this.stepId || undefined);
|
|
250
|
+
}
|
|
251
|
+
check(predicate, label, required = false) {
|
|
252
|
+
return new AssertionHandle(this, predicate, label, required);
|
|
253
|
+
}
|
|
56
254
|
/**
|
|
57
255
|
* Create a new AgentRuntime.
|
|
58
256
|
*
|
|
@@ -145,24 +343,7 @@ class AgentRuntime {
|
|
|
145
343
|
*/
|
|
146
344
|
assert(predicate, label, required = false) {
|
|
147
345
|
const outcome = predicate(this.ctx());
|
|
148
|
-
|
|
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);
|
|
346
|
+
this._recordOutcome(outcome, label, required, null, true);
|
|
166
347
|
return outcome.passed;
|
|
167
348
|
}
|
|
168
349
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -22,8 +22,8 @@ export { SentienceAgent, AgentActResult, HistoryEntry, TokenStats } from './agen
|
|
|
22
22
|
export { SentienceVisualAgent } from './visual-agent';
|
|
23
23
|
export { ConversationalAgent, ExecutionPlan, PlanStep, StepResult, ConversationEntry, ActionType, ActionParameters, } from './conversational-agent';
|
|
24
24
|
export { Tracer, TraceSink, JsonlTraceSink, TraceEvent, TraceEventData } from './tracing';
|
|
25
|
-
export { AssertOutcome, AssertContext, Predicate, urlMatches, urlContains, exists, notExists, elementCount, allOf, anyOf, custom, } from './verification';
|
|
26
|
-
export { AgentRuntime, AssertionRecord } from './agent-runtime';
|
|
25
|
+
export { AssertOutcome, AssertContext, Predicate, urlMatches, urlContains, exists, notExists, elementCount, allOf, anyOf, custom, isEnabled, isDisabled, isChecked, isUnchecked, valueEquals, valueContains, isExpanded, isCollapsed, } from './verification';
|
|
26
|
+
export { AgentRuntime, AssertionHandle, AssertionRecord, EventuallyOptions } from './agent-runtime';
|
|
27
27
|
export { OrdinalIntent, OrdinalKind, detectOrdinalIntent, selectByOrdinal, boostOrdinalElements, } from './ordinal';
|
|
28
28
|
export * as backends from './backends';
|
|
29
29
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EACL,WAAW,EACX,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG1F,OAAO,EACL,aAAa,EACb,aAAa,EACb,SAAS,EACT,UAAU,EACV,WAAW,EACX,MAAM,EACN,SAAS,EACT,YAAY,EACZ,KAAK,EACL,KAAK,EACL,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EACL,WAAW,EACX,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG1F,OAAO,EACL,aAAa,EACb,aAAa,EACb,SAAS,EACT,UAAU,EACV,WAAW,EACX,MAAM,EACN,SAAS,EACT,YAAY,EACZ,KAAK,EACL,KAAK,EACL,MAAM,EACN,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpG,OAAO,EACL,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,oBAAoB,GACrB,MAAM,WAAW,CAAC;AAGnB,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -39,7 +39,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
39
39
|
};
|
|
40
40
|
})();
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.
|
|
42
|
+
exports.isExpanded = exports.valueContains = exports.valueEquals = exports.isUnchecked = exports.isChecked = exports.isDisabled = exports.isEnabled = exports.custom = exports.anyOf = exports.allOf = exports.elementCount = exports.notExists = exports.exists = exports.urlContains = exports.urlMatches = exports.JsonlTraceSink = exports.TraceSink = exports.Tracer = exports.ConversationalAgent = exports.SentienceVisualAgent = exports.SentienceAgent = exports.GLMProvider = exports.AnthropicProvider = exports.OpenAIProvider = exports.LLMProvider = exports.getGridBounds = exports.saveStorageState = exports.findTextRect = exports.clearOverlay = exports.showOverlay = exports.screenshot = exports.read = exports.generate = exports.ScriptGenerator = exports.record = exports.Recorder = exports.inspect = exports.Inspector = exports.Expectation = exports.expect = exports.waitFor = exports.clickRect = exports.press = exports.typeText = exports.click = exports.parseSelector = exports.find = exports.query = exports.snapshot = exports.SentienceBrowser = void 0;
|
|
43
|
+
exports.backends = exports.boostOrdinalElements = exports.selectByOrdinal = exports.detectOrdinalIntent = exports.AssertionHandle = exports.AgentRuntime = exports.isCollapsed = void 0;
|
|
43
44
|
var browser_1 = require("./browser");
|
|
44
45
|
Object.defineProperty(exports, "SentienceBrowser", { enumerable: true, get: function () { return browser_1.SentienceBrowser; } });
|
|
45
46
|
var snapshot_1 = require("./snapshot");
|
|
@@ -110,8 +111,17 @@ Object.defineProperty(exports, "elementCount", { enumerable: true, get: function
|
|
|
110
111
|
Object.defineProperty(exports, "allOf", { enumerable: true, get: function () { return verification_1.allOf; } });
|
|
111
112
|
Object.defineProperty(exports, "anyOf", { enumerable: true, get: function () { return verification_1.anyOf; } });
|
|
112
113
|
Object.defineProperty(exports, "custom", { enumerable: true, get: function () { return verification_1.custom; } });
|
|
114
|
+
Object.defineProperty(exports, "isEnabled", { enumerable: true, get: function () { return verification_1.isEnabled; } });
|
|
115
|
+
Object.defineProperty(exports, "isDisabled", { enumerable: true, get: function () { return verification_1.isDisabled; } });
|
|
116
|
+
Object.defineProperty(exports, "isChecked", { enumerable: true, get: function () { return verification_1.isChecked; } });
|
|
117
|
+
Object.defineProperty(exports, "isUnchecked", { enumerable: true, get: function () { return verification_1.isUnchecked; } });
|
|
118
|
+
Object.defineProperty(exports, "valueEquals", { enumerable: true, get: function () { return verification_1.valueEquals; } });
|
|
119
|
+
Object.defineProperty(exports, "valueContains", { enumerable: true, get: function () { return verification_1.valueContains; } });
|
|
120
|
+
Object.defineProperty(exports, "isExpanded", { enumerable: true, get: function () { return verification_1.isExpanded; } });
|
|
121
|
+
Object.defineProperty(exports, "isCollapsed", { enumerable: true, get: function () { return verification_1.isCollapsed; } });
|
|
113
122
|
var agent_runtime_1 = require("./agent-runtime");
|
|
114
123
|
Object.defineProperty(exports, "AgentRuntime", { enumerable: true, get: function () { return agent_runtime_1.AgentRuntime; } });
|
|
124
|
+
Object.defineProperty(exports, "AssertionHandle", { enumerable: true, get: function () { return agent_runtime_1.AssertionHandle; } });
|
|
115
125
|
// Ordinal Support (Phase 3)
|
|
116
126
|
var ordinal_1 = require("./ordinal");
|
|
117
127
|
Object.defineProperty(exports, "detectOrdinalIntent", { enumerable: true, get: function () { return ordinal_1.detectOrdinalIntent; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qCAA6C;AAApC,2GAAA,gBAAgB,OAAA;AACzB,uCAAuD;AAA9C,oGAAA,QAAQ,OAAA;AACjB,iCAAqD;AAA5C,8FAAA,KAAK,OAAA;AAAE,6FAAA,IAAI,OAAA;AAAE,sGAAA,aAAa,OAAA;AACnC,qCAAmF;AAA1E,gGAAA,KAAK,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,gGAAA,KAAK,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,oGAAA,SAAS,OAAA;AACpD,+BAAiC;AAAxB,+FAAA,OAAO,OAAA;AAChB,mCAA+C;AAAtC,gGAAA,MAAM,OAAA;AAAE,qGAAA,WAAW,OAAA;AAC5B,yCAAiD;AAAxC,sGAAA,SAAS,OAAA;AAAE,oGAAA,OAAO,OAAA;AAC3B,uCAAgE;AAAvD,oGAAA,QAAQ,OAAA;AAAoB,kGAAA,MAAM,OAAA;AAC3C,yCAAwD;AAA/C,4GAAA,eAAe,OAAA;AAAE,qGAAA,QAAQ,OAAA;AAClC,+BAAuD;AAA9C,4FAAA,IAAI,OAAA;AACb,2CAA6D;AAApD,wGAAA,UAAU,OAAA;AACnB,qCAAsD;AAA7C,sGAAA,WAAW,OAAA;AAAE,uGAAA,YAAY,OAAA;AAClC,2CAA4C;AAAnC,0GAAA,YAAY,OAAA;AACrB,0CAAwB;AACxB,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA;AACzB,iDAAmD;AAA1C,2GAAA,aAAa,OAAA;AAEtB,wBAAwB;AACxB,+CAMwB;AALtB,2GAAA,WAAW,OAAA;AAEX,8GAAA,cAAc,OAAA;AACd,iHAAA,iBAAiB,OAAA;AACjB,2GAAA,WAAW,OAAA;AAEb,iCAAmF;AAA1E,uGAAA,cAAc,OAAA;AACvB,+CAAsD;AAA7C,oHAAA,oBAAoB,OAAA;AAE7B,uCAAuC;AACvC,+DAQgC;AAP9B,2HAAA,mBAAmB,OAAA;AASrB,0BAA0B;AAC1B,qCAA0F;AAAjF,iGAAA,MAAM,OAAA;AAAE,oGAAA,SAAS,OAAA;AAAE,yGAAA,cAAc,OAAA;AAE1C,4CAA4C;AAC5C,+CAoBwB;AAhBtB,0GAAA,UAAU,OAAA;AACV,2GAAA,WAAW,OAAA;AACX,sGAAA,MAAM,OAAA;AACN,yGAAA,SAAS,OAAA;AACT,4GAAA,YAAY,OAAA;AACZ,qGAAA,KAAK,OAAA;AACL,qGAAA,KAAK,OAAA;AACL,sGAAA,MAAM,OAAA;AACN,yGAAA,SAAS,OAAA;AACT,0GAAA,UAAU,OAAA;AACV,yGAAA,SAAS,OAAA;AACT,2GAAA,WAAW,OAAA;AACX,2GAAA,WAAW,OAAA;AACX,6GAAA,aAAa,OAAA;AACb,0GAAA,UAAU,OAAA;AACV,2GAAA,WAAW,OAAA;AAEb,iDAAoG;AAA3F,6GAAA,YAAY,OAAA;AAAE,gHAAA,eAAe,OAAA;AAEtC,4BAA4B;AAC5B,qCAMmB;AAHjB,8GAAA,mBAAmB,OAAA;AACnB,0GAAA,eAAe,OAAA;AACf,+GAAA,oBAAoB,OAAA;AAGtB,qCAAqC;AACrC,uDAAuC"}
|
package/dist/llm-provider.d.ts
CHANGED
|
@@ -32,6 +32,16 @@ export declare abstract class LLMProvider {
|
|
|
32
32
|
* Get the model name/identifier
|
|
33
33
|
*/
|
|
34
34
|
abstract get modelName(): string;
|
|
35
|
+
/**
|
|
36
|
+
* Whether this provider supports image input for vision tasks.
|
|
37
|
+
* Override in subclasses that support vision-capable models.
|
|
38
|
+
*/
|
|
39
|
+
supportsVision(): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Generate with image input (vision-capable models only).
|
|
42
|
+
* Override in subclasses that support vision.
|
|
43
|
+
*/
|
|
44
|
+
generateWithImage(systemPrompt: string, userPrompt: string, imageBase64: string, options?: Record<string, any>): Promise<LLMResponse>;
|
|
35
45
|
}
|
|
36
46
|
/**
|
|
37
47
|
* OpenAI Provider (GPT-4, GPT-4o, etc.)
|
|
@@ -43,6 +53,8 @@ export declare class OpenAIProvider extends LLMProvider {
|
|
|
43
53
|
constructor(apiKey: string, model?: string);
|
|
44
54
|
generate(systemPrompt: string, userPrompt: string, options?: Record<string, any>): Promise<LLMResponse>;
|
|
45
55
|
supportsJsonMode(): boolean;
|
|
56
|
+
supportsVision(): boolean;
|
|
57
|
+
generateWithImage(systemPrompt: string, userPrompt: string, imageBase64: string, options?: Record<string, any>): Promise<LLMResponse>;
|
|
46
58
|
get modelName(): string;
|
|
47
59
|
}
|
|
48
60
|
/**
|
|
@@ -55,6 +67,8 @@ export declare class AnthropicProvider extends LLMProvider {
|
|
|
55
67
|
constructor(apiKey: string, model?: string);
|
|
56
68
|
generate(systemPrompt: string, userPrompt: string, options?: Record<string, any>): Promise<LLMResponse>;
|
|
57
69
|
supportsJsonMode(): boolean;
|
|
70
|
+
supportsVision(): boolean;
|
|
71
|
+
generateWithImage(systemPrompt: string, userPrompt: string, imageBase64: string, options?: Record<string, any>): Promise<LLMResponse>;
|
|
58
72
|
get modelName(): string;
|
|
59
73
|
}
|
|
60
74
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-provider.d.ts","sourceRoot":"","sources":["../src/llm-provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,8BAAsB,WAAW;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CACf,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAElB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,OAAO,CAAC,WAAW,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,gBAAgB,IAAI,OAAO;IAEpC;;OAEG;IACH,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"llm-provider.d.ts","sourceRoot":"","sources":["../src/llm-provider.ts"],"names":[],"mappings":"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"}
|