Skip to content

Commit b5cf83c

Browse files
author
SentienceDEV
committed
updated readme
1 parent f4600c3 commit b5cf83c

File tree

5 files changed

+30
-16
lines changed

5 files changed

+30
-16
lines changed

examples/asserts/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,3 @@ python examples/asserts/v1_state_assertions.py
1313
python examples/asserts/v2_eventually_min_confidence.py
1414
python examples/asserts/v2_vision_fallback.py
1515
```
16-

examples/asserts/eventually_min_confidence.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import asyncio
1111
import os
1212

13-
from sentience import AsyncSentienceBrowser, AgentRuntime
13+
from sentience import AgentRuntime, AsyncSentienceBrowser
1414
from sentience.tracing import JsonlTraceSink, Tracer
1515
from sentience.verification import exists
1616

@@ -21,7 +21,9 @@ async def main() -> None:
2121

2222
async with AsyncSentienceBrowser(headless=True) as browser:
2323
page = await browser.new_page()
24-
runtime = await AgentRuntime.from_sentience_browser(browser=browser, page=page, tracer=tracer)
24+
runtime = await AgentRuntime.from_sentience_browser(
25+
browser=browser, page=page, tracer=tracer
26+
)
2527
if sentience_api_key:
2628
runtime.sentience_api_key = sentience_api_key
2729

@@ -46,4 +48,3 @@ async def main() -> None:
4648

4749
if __name__ == "__main__":
4850
asyncio.run(main())
49-

examples/asserts/state_assertions.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import asyncio
1212
import os
1313

14-
from sentience import AsyncSentienceBrowser, AgentRuntime
14+
from sentience import AgentRuntime, AsyncSentienceBrowser
1515
from sentience.tracing import JsonlTraceSink, Tracer
1616
from sentience.verification import (
1717
exists,
@@ -30,7 +30,9 @@ async def main() -> None:
3030

3131
async with AsyncSentienceBrowser(headless=True) as browser:
3232
page = await browser.new_page()
33-
runtime = await AgentRuntime.from_sentience_browser(browser=browser, page=page, tracer=tracer)
33+
runtime = await AgentRuntime.from_sentience_browser(
34+
browser=browser, page=page, tracer=tracer
35+
)
3436

3537
# If you have a Pro/Enterprise key, set it on the runtime so snapshots use the Gateway.
3638
# (This improves selector quality and unlocks state-aware fields for assertions.)
@@ -44,10 +46,16 @@ async def main() -> None:
4446
# v1: state-aware assertions (examples)
4547
runtime.assert_(exists("role=heading"), label="has_heading")
4648
runtime.assert_(is_enabled("role=link"), label="some_link_enabled")
47-
runtime.assert_(is_disabled("role=button text~'continue'"), label="continue_disabled_if_present")
48-
runtime.assert_(is_checked("role=checkbox name~'subscribe'"), label="subscribe_checked_if_present")
49+
runtime.assert_(
50+
is_disabled("role=button text~'continue'"), label="continue_disabled_if_present"
51+
)
52+
runtime.assert_(
53+
is_checked("role=checkbox name~'subscribe'"), label="subscribe_checked_if_present"
54+
)
4955
runtime.assert_(is_expanded("role=button name~'more'"), label="more_is_expanded_if_present")
50-
runtime.assert_(value_contains("role=textbox name~'email'", "@"), label="email_has_at_if_present")
56+
runtime.assert_(
57+
value_contains("role=textbox name~'email'", "@"), label="email_has_at_if_present"
58+
)
5159

5260
# Failure intelligence: if something fails you’ll see:
5361
# - details.reason_code
@@ -58,4 +66,3 @@ async def main() -> None:
5866

5967
if __name__ == "__main__":
6068
asyncio.run(main())
61-

examples/asserts/vision_fallback.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,29 +13,35 @@
1313
import asyncio
1414
import os
1515

16-
from sentience import AsyncSentienceBrowser, AgentRuntime
16+
from sentience import AgentRuntime, AsyncSentienceBrowser
1717
from sentience.llm_provider import OpenAIProvider
1818
from sentience.tracing import JsonlTraceSink, Tracer
1919
from sentience.verification import exists
2020

2121

2222
async def main() -> None:
23-
tracer = Tracer(run_id="asserts-v2-vision", sink=JsonlTraceSink("trace_asserts_v2_vision.jsonl"))
23+
tracer = Tracer(
24+
run_id="asserts-v2-vision", sink=JsonlTraceSink("trace_asserts_v2_vision.jsonl")
25+
)
2426
sentience_api_key = os.getenv("SENTIENCE_API_KEY")
2527

2628
# Any provider implementing supports_vision() + generate_with_image() works.
2729
vision = OpenAIProvider(api_key=os.getenv("OPENAI_API_KEY"), model="gpt-4o")
2830

2931
async with AsyncSentienceBrowser(headless=True) as browser:
3032
page = await browser.new_page()
31-
runtime = await AgentRuntime.from_sentience_browser(browser=browser, page=page, tracer=tracer)
33+
runtime = await AgentRuntime.from_sentience_browser(
34+
browser=browser, page=page, tracer=tracer
35+
)
3236
if sentience_api_key:
3337
runtime.sentience_api_key = sentience_api_key
3438

3539
await page.goto("https://example.com")
3640
runtime.begin_step("Assert v2 vision fallback")
3741

38-
ok = await runtime.check(exists("text~'Example Domain'"), label="example_domain_text").eventually(
42+
ok = await runtime.check(
43+
exists("text~'Example Domain'"), label="example_domain_text"
44+
).eventually(
3945
timeout_s=10.0,
4046
poll_s=0.25,
4147
min_confidence=0.7,
@@ -50,4 +56,3 @@ async def main() -> None:
5056

5157
if __name__ == "__main__":
5258
asyncio.run(main())
53-

sentience/models.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,9 @@ def get_grid_bounds(self, grid_id: int | None = None) -> list[GridInfo]:
250250
if max_dominant_count > 0:
251251
# Find grid(s) with highest count
252252
dominant_grids = [
253-
gid for gid, (count, _total) in grid_dominant_counts.items() if count == max_dominant_count
253+
gid
254+
for gid, (count, _total) in grid_dominant_counts.items()
255+
if count == max_dominant_count
254256
]
255257
# If multiple grids tie, prefer the one with highest percentage
256258
if len(dominant_grids) > 1:

0 commit comments

Comments
 (0)