Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
720bcd6
feat(sdk-v2): Python SDK skeleton — connect/search/rent/heartbeat/rec…
May 5, 2026
0b7f51e
feat(sdk): Browser CDP + Chat modules (tasks 129-130)
May 5, 2026
136514e
feat(sdk): real-signup smoke examples (task 131)
May 5, 2026
3706723
fix(sdk): replace phantom relay.* domains with real WS endpoints (#144)
May 5, 2026
a34eafc
feat: fix rent correlation via FIFO rent_pending queue, drop event_id…
May 6, 2026
2a2a572
feat: SDK 2.2.0 — ConnectOptions, fix /api/browsers/search, BrowserOp…
May 7, 2026
b31f648
fix(sdk): 2.2.1 — basic_auth only for WS, not REST; Bearer always wins
May 7, 2026
6874e50
fix: Match.chat_topic_id as str|None, remove int type hints
May 7, 2026
4c1697d
fix: _on_message validates payload['message'] nested dict
May 7, 2026
2b9cbd2
fix(models): ChatMessage schema matches chat-service v2 payload, add …
May 7, 2026
0bae5dc
fix(sdk): chat history URL, send_image schema, provider_offline fail-…
May 8, 2026
7cc6c0c
sdk: ProviderDisconnected exception + provider disconnect/reconnect c…
May 8, 2026
577bda7
fix: test_chat_image — chat_topic_id str, base64→data_b64 field name
May 8, 2026
5c439b1
sdk: browser.profile.export()/import_() — cookies + storage snapshot/…
May 8, 2026
00dfd9f
fix: chat.history() path — GET /messages?topic_id=<id> (was /topics/<…
May 8, 2026
8e4fa14
feat(sdk): raise ProviderOffline on rent.error provider_offline
May 8, 2026
4ffba72
fix(sdk): error-mapping — AuthFailed on 4403, ProviderOffline on -101…
May 8, 2026
89ee8f8
feat(smoke): rewrite integration smoke tests for SDK 2.2.0
May 8, 2026
4bd027c
examples: discover provider via search() instead of hardcoded SCHEDUL…
May 8, 2026
7c6d3a3
feat(sdk): high-level Browser methods with Human Mode integration
May 9, 2026
6bf5a58
feat(client): masking_mode=True default on rent, opt-out via masking_…
May 9, 2026
5def17f
feat(client): fingerprint=True default on rent, opt-out via fingerpri…
May 9, 2026
a756718
feat(browser): add release() alias for close() — rental metaphor (v2.…
May 12, 2026
3a6b9ee
feat(browser): screenshot(format=) param — base64 dict (default) or p…
May 12, 2026
28fe044
feat(type): click at last pointer before typing when humanizer active
May 12, 2026
590ea24
feat: add ceki-browser CLI + Client.resume + Browser.snapshot
May 12, 2026
bde6cd5
fix(snapshot): filter already-seen chat messages client-side
May 12, 2026
771aa4b
feat(cli): add 10 subcommands for full SDK parity
May 12, 2026
670878e
feat: add upload command for file input automation
May 12, 2026
bd8bb6c
feat: persist fingerprint in profile (schema_version=2) + rent(finger…
May 13, 2026
e2f979c
test: E2E fingerprint persistence across two sequential rents
May 13, 2026
e117150
fix: graceful fallback when Browser.getFingerprint unavailable (ext <…
May 13, 2026
539e6f5
feat: full-page screenshot support (--full / full_page=True)
May 13, 2026
f08aeed
feat: replace Input.insertText with Input.dispatchKeyEvent in type()
May 14, 2026
a4ecb7e
fix: rent WS payload sends browser_id, add Browser.browser_id property
May 15, 2026
d5f23fc
feat: add Client.disconnect() for resume-pattern
May 15, 2026
3587ea3
fix(cli): use client.disconnect() instead of raw _ws.close()
May 15, 2026
b47ae54
fix: test_rent_flow schedule_id→browser_id in WS payload assertions
May 15, 2026
118ba0f
fix: rent timeout 60s → 90s to outlast relay offer_timeout (60s)
May 15, 2026
8d1c4c5
feat: client.my_browsers() + BrowserOption profile_mode/allowed_domai…
May 16, 2026
ae8cb85
fix: dispatch generic {type:error} as CekiError instead of plain Exce…
May 16, 2026
63628b0
feat: user_events dispatch + on_user_event callback API
May 16, 2026
67bd86a
feat: add mode param to Client.rent ('incognito'|'main')
May 16, 2026
4955864
feat: send match_ack on requires_ack match
May 17, 2026
a54622d
feat: add request_captcha method + CaptchaResult + CLI command
May 18, 2026
b4da9b2
feat: switch captcha SDK to agent routes, expose correction_id
May 18, 2026
d109bca
fix: deadline fields as integer-seconds duration
May 18, 2026
d3fdfeb
chore: migrate _create_captcha_event to POST /api/agent/sessions/{eve…
May 18, 2026
02ee40a
feat: add list_sessions() + CLI sessions command
May 18, 2026
e941340
fix(browser): cancel pending CDP futures on close() timeout — prevent…
May 20, 2026
13f56d9
docs(readme): replace CLI section with standardized reference
May 20, 2026
74b86b3
chore: remove internal URLs and credentials from README
May 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
380 changes: 212 additions & 168 deletions README.md

Large diffs are not rendered by default.

96 changes: 45 additions & 51 deletions ceki_browser/__init__.py
Original file line number Diff line number Diff line change
@@ -1,58 +1,52 @@
from .chat_direct import ChatClient
from .client import Browser
from .humanize import HumanProfile, Humanizer
from .errors import (
AuthError,
CekiBrowserError,
CommandTimeout,
HumanActionDeclined,
HumanActionTimeout,
NavigationTimeout,
NoMatchError,
from ._browser import Browser
from ._captcha import CaptchaResult
from ._client import Client
from ._connect import ConnectOptions, connect
from ._profile import BrowserProfile
from ._exceptions import (
AuthFailed,
CaptchaError,
CaptchaTimeoutError,
CdpUnrecoverable,
CekiError,
ConnectionLost,
InsufficientFunds,
NotOwner,
ProviderDisconnected,
ProviderNotVerified,
RateLimited,
SessionEndedError,
)
from .chat import ChatAPI
from .session import Session
from .transport_rtc import RTCTransport
from .types import (
ChatMessage,
HtmlResult,
HumanActionResult,
NavigateResult,
QueryResult,
ScreenshotResult,
TypingEvent,
RateLimitExceeded,
SessionEnded,
SessionExpired,
SessionNotFound,
)
from ._models import BrowserOption, ChatMessage, Match, ReadReceipt, SessionInfo, Snapshot
from .humanize import HumanProfile

__version__ = "2.15.1"
__all__ = [
"connect",
"ConnectOptions",
"Client",
"Browser",
"ChatAPI",
"ChatClient",
"HumanProfile",
"Humanizer",
"Session",
"RTCTransport",
"AuthError",
"CekiBrowserError",
"CommandTimeout",
"HumanActionDeclined",
"HumanActionTimeout",
"NavigationTimeout",
"ProviderDisconnected",
"ProviderNotVerified",
"NoMatchError",
"RateLimited",
"SessionEndedError",
"BrowserOption",
"Match",
"ChatMessage",
"HtmlResult",
"HumanActionResult",
"NavigateResult",
"QueryResult",
"ScreenshotResult",
"TypingEvent",
"ReadReceipt",
"RateLimitExceeded",
"InsufficientFunds",
"SessionEnded",
"CdpUnrecoverable",
"AuthFailed",
"ConnectionLost",
"ProviderDisconnected",
"SessionNotFound",
"SessionExpired",
"NotOwner",
"SessionInfo",
"Snapshot",
"BrowserProfile",
"CekiError",
"HumanProfile",
"CaptchaResult",
"CaptchaError",
"CaptchaTimeoutError",
]

__version__ = "0.3.0"
Loading
Loading