Skip to content

Commit 9de186f

Browse files
author
SentienceDEV
committed
predicate readme
1 parent 263b463 commit 9de186f

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,15 @@ This is the smallest useful pattern: snapshot → assert → act → assert-done
4747
```python
4848
import asyncio
4949

50-
from predicate import AgentRuntime, AsyncSentienceBrowser
50+
from predicate import AgentRuntime, AsyncPredicateBrowser
5151
from predicate.tracing import JsonlTraceSink, Tracer
5252
from predicate.verification import exists, url_contains
5353

5454

5555
async def main() -> None:
5656
tracer = Tracer(run_id="demo", sink=JsonlTraceSink("trace.jsonl"))
5757

58-
async with AsyncSentienceBrowser() as browser:
58+
async with AsyncPredicateBrowser() as browser:
5959
page = await browser.new_page()
6060
await page.goto("https://example.com")
6161

@@ -78,21 +78,21 @@ if __name__ == "__main__":
7878
asyncio.run(main())
7979
```
8080

81-
## SentienceDebugger: attach to your existing agent framework (sidecar mode)
81+
## PredicateDebugger: attach to your existing agent framework (sidecar mode)
8282

8383
If you already have an agent loop (LangGraph, browser-use, custom planner/executor), you can keep it and attach Predicate as a **verifier + trace layer**.
8484

8585
Key idea: your agent still decides and executes actions — Predicate **snapshots and verifies outcomes**.
8686

8787
```python
88-
from predicate import SentienceDebugger, create_tracer
88+
from predicate import PredicateDebugger, create_tracer
8989
from predicate.verification import exists, url_contains
9090

9191

9292
async def run_existing_agent(page) -> None:
9393
# page: playwright.async_api.Page (owned by your agent/framework)
9494
tracer = create_tracer(run_id="run-123") # local JSONL by default
95-
dbg = SentienceDebugger.attach(page, tracer=tracer)
95+
dbg = PredicateDebugger.attach(page, tracer=tracer)
9696

9797
async with dbg.step("agent_step: navigate + verify"):
9898
# 1) Let your framework do whatever it does
@@ -111,11 +111,11 @@ async def run_existing_agent(page) -> None:
111111
If you want Predicate to drive the loop end-to-end, you can use the SDK primitives directly: take a snapshot, select elements, act, then verify.
112112

113113
```python
114-
from predicate import SentienceBrowser, snapshot, find, click, type_text, wait_for
114+
from predicate import PredicateBrowser, snapshot, find, click, type_text, wait_for
115115

116116

117117
def login_example() -> None:
118-
with SentienceBrowser() as browser:
118+
with PredicateBrowser() as browser:
119119
browser.page.goto("https://example.com/login")
120120

121121
snap = snapshot(browser)
@@ -185,7 +185,7 @@ tools_for_llm = registry.llm_tools()
185185
Chrome permission prompts are outside the DOM and can be invisible to snapshots. Prefer setting a policy **before navigation**.
186186

187187
```python
188-
from predicate import AsyncSentienceBrowser, PermissionPolicy
188+
from predicate import AsyncPredicateBrowser, PermissionPolicy
189189

190190
policy = PermissionPolicy(
191191
default="clear",
@@ -194,7 +194,7 @@ policy = PermissionPolicy(
194194
origin="https://example.com",
195195
)
196196

197-
async with AsyncSentienceBrowser(permission_policy=policy) as browser:
197+
async with AsyncPredicateBrowser(permission_policy=policy) as browser:
198198
...
199199
```
200200

0 commit comments

Comments
 (0)