Skip to content

Commit 2a06287

Browse files
author
SentienceDEV
committed
predicate readme
1 parent 61fdcce commit 2a06287

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

README.md

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,6 @@ Use the new `Predicate*` class names for all new code:
4242
- `PredicateDebugger`
4343
- `backends.PredicateContext`
4444

45-
The legacy `Sentience*` names are still available as runtime aliases for compatibility, but are now soft-deprecated and planned for removal after **1-2 releases**.
46-
47-
Mapping:
48-
49-
- `SentienceBrowser` -> `PredicateBrowser`
50-
- `SentienceAgent` -> `PredicateAgent`
51-
- `SentienceVisualAgent` -> `PredicateVisualAgent`
52-
- `SentienceDebugger` -> `PredicateDebugger`
53-
- `backends.SentienceContext` -> `backends.PredicateContext`
54-
5545
## Conceptual example (why this exists)
5646

5747
- Steps are **gated by verifiable UI assertions**
@@ -61,22 +51,22 @@ Mapping:
6151
## Quickstart: a verification-first loop
6252

6353
```ts
64-
import { SentienceBrowser, AgentRuntime } from '@predicatelabs/sdk';
54+
import { PredicateBrowser, AgentRuntime } from '@predicatelabs/sdk';
6555
import { JsonlTraceSink, Tracer } from '@predicatelabs/sdk';
6656
import { exists, urlContains } from '@predicatelabs/sdk';
6757
import type { Page } from 'playwright';
6858

6959
async function main(): Promise<void> {
7060
const tracer = new Tracer('demo', new JsonlTraceSink('trace.jsonl'));
7161

72-
const browser = new SentienceBrowser();
62+
const browser = new PredicateBrowser();
7363
await browser.start();
7464
const page = browser.getPage();
7565
if (!page) throw new Error('no page');
7666

7767
await page.goto('https://example.com');
7868

79-
// AgentRuntime needs a snapshot provider; SentienceBrowser.snapshot() does not depend on Page,
69+
// AgentRuntime needs a snapshot provider; PredicateBrowser.snapshot() does not depend on Page,
8070
// so we wrap it to fit the runtime interface.
8171
const runtime = new AgentRuntime(
8272
{ snapshot: async (_page: Page, options?: Record<string, any>) => browser.snapshot(options) },
@@ -98,19 +88,19 @@ async function main(): Promise<void> {
9888
void main();
9989
```
10090

101-
## SentienceDebugger: attach to your existing agent framework (sidecar mode)
91+
## PredicateDebugger: attach to your existing agent framework (sidecar mode)
10292

10393
If you already have an agent loop (LangGraph, custom planner/executor), keep it and attach Sentience as a **verifier + trace layer**.
10494

10595
Key idea: your agent still executes actions — Sentience **snapshots and verifies outcomes**.
10696

10797
```ts
10898
import type { Page } from 'playwright';
109-
import { SentienceDebugger, Tracer, JsonlTraceSink, exists, urlContains } from '@predicatelabs/sdk';
99+
import { PredicateDebugger, Tracer, JsonlTraceSink, exists, urlContains } from '@predicatelabs/sdk';
110100

111101
async function runExistingAgent(page: Page): Promise<void> {
112102
const tracer = new Tracer('run-123', new JsonlTraceSink('trace.jsonl'));
113-
const dbg = SentienceDebugger.attach(page, tracer);
103+
const dbg = PredicateDebugger.attach(page, tracer);
114104

115105
await dbg.step('agent_step: navigate + verify', async () => {
116106
// 1) Let your framework do whatever it does
@@ -133,10 +123,10 @@ async function runExistingAgent(page: Page): Promise<void> {
133123
If you want Sentience to drive the loop end-to-end, you can use the SDK primitives directly: take a snapshot, select elements, act, then verify.
134124

135125
```ts
136-
import { SentienceBrowser, snapshot, find, typeText, click, waitFor } from '@predicatelabs/sdk';
126+
import { PredicateBrowser, snapshot, find, typeText, click, waitFor } from '@predicatelabs/sdk';
137127

138128
async function loginExample(): Promise<void> {
139-
const browser = new SentienceBrowser();
129+
const browser = new PredicateBrowser();
140130
await browser.start();
141131
const page = browser.getPage();
142132
if (!page) throw new Error('no page');
@@ -205,7 +195,7 @@ const toolsForLLM = registry.llmTools();
205195
Chrome permission prompts are outside the DOM and can be invisible to snapshots. Prefer setting a policy **before navigation**.
206196

207197
```ts
208-
import { SentienceBrowser } from '@predicatelabs/sdk';
198+
import { PredicateBrowser } from '@predicatelabs/sdk';
209199
import type { PermissionPolicy } from '@predicatelabs/sdk';
210200

211201
const policy: PermissionPolicy = {
@@ -216,7 +206,7 @@ const policy: PermissionPolicy = {
216206
};
217207

218208
// `permissionPolicy` is the last constructor argument; pass `keepAlive` right before it.
219-
const browser = new SentienceBrowser(
209+
const browser = new PredicateBrowser(
220210
undefined,
221211
undefined,
222212
undefined,

0 commit comments

Comments
 (0)