@@ -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' ;
6555import { JsonlTraceSink , Tracer } from ' @predicatelabs/sdk' ;
6656import { exists , urlContains } from ' @predicatelabs/sdk' ;
6757import type { Page } from ' playwright' ;
6858
6959async 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> {
9888void main ();
9989```
10090
101- ## SentienceDebugger : attach to your existing agent framework (sidecar mode)
91+ ## PredicateDebugger : attach to your existing agent framework (sidecar mode)
10292
10393If you already have an agent loop (LangGraph, custom planner/executor), keep it and attach Sentience as a ** verifier + trace layer** .
10494
10595Key idea: your agent still executes actions — Sentience ** snapshots and verifies outcomes** .
10696
10797``` ts
10898import 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
111101async 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> {
133123If 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
138128async 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();
205195Chrome 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' ;
209199import type { PermissionPolicy } from ' @predicatelabs/sdk' ;
210200
211201const 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