Skip to content

Commit 8020867

Browse files
author
SentienceDev
committed
Phase 2: full integration with backend protocol
1 parent 9c62a9e commit 8020867

File tree

8 files changed

+1244
-40
lines changed

8 files changed

+1244
-40
lines changed

sentience/__init__.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,25 @@
1616
from .agent_config import AgentConfig
1717
from .agent_runtime import AgentRuntime
1818

19+
# Backend-agnostic actions (aliased to avoid conflict with existing actions)
1920
# Browser backends (for browser-use integration)
2021
from .backends import (
2122
BrowserBackendV0,
2223
BrowserUseAdapter,
2324
BrowserUseCDPTransport,
25+
CachedSnapshot,
2426
CDPBackendV0,
2527
CDPTransport,
2628
LayoutMetrics,
29+
PlaywrightBackend,
2730
ViewportInfo,
2831
)
32+
from .backends import click as backend_click
33+
from .backends import scroll as backend_scroll
34+
from .backends import scroll_to_element as backend_scroll_to_element
35+
from .backends import snapshot as backend_snapshot
36+
from .backends import type_text as backend_type_text
37+
from .backends import wait_for_stable as backend_wait_for_stable
2938

3039
# Agent Layer (Phase 1 & 2)
3140
from .base_agent import BaseAgent
@@ -123,10 +132,19 @@
123132
"BrowserBackendV0",
124133
"CDPTransport",
125134
"CDPBackendV0",
135+
"PlaywrightBackend",
126136
"BrowserUseAdapter",
127137
"BrowserUseCDPTransport",
128138
"ViewportInfo",
129139
"LayoutMetrics",
140+
"backend_snapshot",
141+
"CachedSnapshot",
142+
# Backend-agnostic actions (prefixed to avoid conflicts)
143+
"backend_click",
144+
"backend_type_text",
145+
"backend_scroll",
146+
"backend_scroll_to_element",
147+
"backend_wait_for_stable",
130148
# Core SDK
131149
"SentienceBrowser",
132150
"Snapshot",

sentience/backends/__init__.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
For browser-use integration:
1313
from browser_use import BrowserSession, BrowserProfile
1414
from sentience import get_extension_dir
15-
from sentience.backends import BrowserUseAdapter, CDPBackendV0
15+
from sentience.backends import BrowserUseAdapter, snapshot, click, type_text
1616
1717
# Setup browser-use with Sentience extension
1818
profile = BrowserProfile(args=[f"--load-extension={get_extension_dir()}"])
@@ -23,13 +23,18 @@
2323
adapter = BrowserUseAdapter(session)
2424
backend = await adapter.create_backend()
2525
26-
# Use backend for precise operations
27-
await backend.mouse_click(100, 200)
26+
# Take snapshot and interact
27+
snap = await snapshot(backend)
28+
element = find(snap, 'role=button[name="Submit"]')
29+
await click(backend, element.bbox)
2830
"""
2931

32+
from .actions import click, scroll, scroll_to_element, type_text, wait_for_stable
3033
from .browser_use_adapter import BrowserUseAdapter, BrowserUseCDPTransport
3134
from .cdp_backend import CDPBackendV0, CDPTransport
35+
from .playwright_backend import PlaywrightBackend
3236
from .protocol_v0 import BrowserBackendV0, LayoutMetrics, ViewportInfo
37+
from .snapshot import CachedSnapshot, snapshot
3338

3439
__all__ = [
3540
# Protocol
@@ -40,7 +45,17 @@
4045
# CDP Backend
4146
"CDPTransport",
4247
"CDPBackendV0",
48+
# Playwright Backend
49+
"PlaywrightBackend",
4350
# browser-use adapter
4451
"BrowserUseAdapter",
4552
"BrowserUseCDPTransport",
53+
# Backend-agnostic functions
54+
"snapshot",
55+
"CachedSnapshot",
56+
"click",
57+
"type_text",
58+
"scroll",
59+
"scroll_to_element",
60+
"wait_for_stable",
4661
]

0 commit comments

Comments
 (0)