hyperbrowser 0.30.0__py3-none-any.whl → 0.32.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of hyperbrowser might be problematic. Click here for more details.

@@ -6,6 +6,7 @@ from .managers.async_manager.session import SessionManager
6
6
  from .managers.async_manager.scrape import ScrapeManager
7
7
  from .managers.async_manager.crawl import CrawlManager
8
8
  from .managers.async_manager.extension import ExtensionManager
9
+ from .managers.async_manager.beta import Beta
9
10
  from .base import HyperbrowserBase
10
11
  from ..transport.async_transport import AsyncTransport
11
12
  from ..config import ClientConfig
@@ -29,6 +30,7 @@ class AsyncHyperbrowser(HyperbrowserBase):
29
30
  self.extract = ExtractManager(self)
30
31
  self.profiles = ProfileManager(self)
31
32
  self.extensions = ExtensionManager(self)
33
+ self.beta = Beta(self)
32
34
 
33
35
  async def close(self) -> None:
34
36
  await self.transport.close()
@@ -0,0 +1,6 @@
1
+ from .agents import Agents
2
+
3
+
4
+ class Beta:
5
+ def __init__(self, client):
6
+ self.agents = Agents(client)
@@ -0,0 +1,5 @@
1
+ class Agents:
2
+ def __init__(self, client):
3
+ from .browser_use import BrowserUseManager
4
+
5
+ self.browser_use = BrowserUseManager(client)
@@ -0,0 +1,69 @@
1
+ import asyncio
2
+ from hyperbrowser.exceptions import HyperbrowserError
3
+ from ......models import (
4
+ POLLING_ATTEMPTS,
5
+ BasicResponse,
6
+ StartBrowserUseTaskParams,
7
+ StartBrowserUseTaskResponse,
8
+ BrowserUseTaskStatusResponse,
9
+ BrowserUseTaskResponse,
10
+ )
11
+
12
+
13
+ class BrowserUseManager:
14
+ def __init__(self, client):
15
+ self._client = client
16
+
17
+ async def start(
18
+ self, params: StartBrowserUseTaskParams
19
+ ) -> StartBrowserUseTaskResponse:
20
+ response = await self._client.transport.post(
21
+ self._client._build_url("/task/browser-use"),
22
+ data=params.model_dump(exclude_none=True, by_alias=True),
23
+ )
24
+ return StartBrowserUseTaskResponse(**response.data)
25
+
26
+ async def get(self, job_id: str) -> BrowserUseTaskResponse:
27
+ response = await self._client.transport.get(
28
+ self._client._build_url(f"/task/browser-use/{job_id}")
29
+ )
30
+ return BrowserUseTaskResponse(**response.data)
31
+
32
+ async def get_status(self, job_id: str) -> BrowserUseTaskStatusResponse:
33
+ response = await self._client.transport.get(
34
+ self._client._build_url(f"/task/browser-use/{job_id}/status")
35
+ )
36
+ return BrowserUseTaskStatusResponse(**response.data)
37
+
38
+ async def stop(self, job_id: str) -> BasicResponse:
39
+ response = await self._client.transport.put(
40
+ self._client._build_url(f"/task/browser-use/{job_id}/stop")
41
+ )
42
+ return BasicResponse(**response.data)
43
+
44
+ async def start_and_wait(
45
+ self, params: StartBrowserUseTaskParams
46
+ ) -> BrowserUseTaskResponse:
47
+ job_start_resp = await self.start(params)
48
+ job_id = job_start_resp.job_id
49
+ if not job_id:
50
+ raise HyperbrowserError("Failed to start browser-use task job")
51
+
52
+ failures = 0
53
+ while True:
54
+ try:
55
+ job_response = await self.get_status(job_id)
56
+ if (
57
+ job_response.status == "completed"
58
+ or job_response.status == "failed"
59
+ or job_response.status == "stopped"
60
+ ):
61
+ return await self.get(job_id)
62
+ failures = 0
63
+ except Exception as e:
64
+ failures += 1
65
+ if failures >= POLLING_ATTEMPTS:
66
+ raise HyperbrowserError(
67
+ f"Failed to poll browser-use task job {job_id} after {POLLING_ATTEMPTS} attempts: {e}"
68
+ )
69
+ await asyncio.sleep(2)
@@ -0,0 +1,6 @@
1
+ from .agents import Agents
2
+
3
+
4
+ class Beta:
5
+ def __init__(self, client):
6
+ self.agents = Agents(client)
@@ -0,0 +1,5 @@
1
+ class Agents:
2
+ def __init__(self, client):
3
+ from .browser_use import BrowserUseManager
4
+
5
+ self.browser_use = BrowserUseManager(client)
@@ -0,0 +1,67 @@
1
+ import time
2
+ from hyperbrowser.exceptions import HyperbrowserError
3
+ from ......models import (
4
+ POLLING_ATTEMPTS,
5
+ BasicResponse,
6
+ StartBrowserUseTaskParams,
7
+ StartBrowserUseTaskResponse,
8
+ BrowserUseTaskStatusResponse,
9
+ BrowserUseTaskResponse,
10
+ )
11
+
12
+
13
+ class BrowserUseManager:
14
+ def __init__(self, client):
15
+ self._client = client
16
+
17
+ def start(self, params: StartBrowserUseTaskParams) -> StartBrowserUseTaskResponse:
18
+ response = self._client.transport.post(
19
+ self._client._build_url("/task/browser-use"),
20
+ data=params.model_dump(exclude_none=True, by_alias=True),
21
+ )
22
+ return StartBrowserUseTaskResponse(**response.data)
23
+
24
+ def get(self, job_id: str) -> BrowserUseTaskResponse:
25
+ response = self._client.transport.get(
26
+ self._client._build_url(f"/task/browser-use/{job_id}")
27
+ )
28
+ return BrowserUseTaskResponse(**response.data)
29
+
30
+ def get_status(self, job_id: str) -> BrowserUseTaskStatusResponse:
31
+ response = self._client.transport.get(
32
+ self._client._build_url(f"/task/browser-use/{job_id}/status")
33
+ )
34
+ return BrowserUseTaskStatusResponse(**response.data)
35
+
36
+ def stop(self, job_id: str) -> BasicResponse:
37
+ response = self._client.transport.put(
38
+ self._client._build_url(f"/task/browser-use/{job_id}/stop")
39
+ )
40
+ return BasicResponse(**response.data)
41
+
42
+ def start_and_wait(
43
+ self, params: StartBrowserUseTaskParams
44
+ ) -> BrowserUseTaskResponse:
45
+ job_start_resp = self.start(params)
46
+ job_id = job_start_resp.job_id
47
+ if not job_id:
48
+ raise HyperbrowserError("Failed to start browser-use task job")
49
+
50
+ failures = 0
51
+ while True:
52
+ try:
53
+ job_response = self.get_status(job_id)
54
+ if (
55
+ job_response.status == "completed"
56
+ or job_response.status == "failed"
57
+ or job_response.status == "stopped"
58
+ ):
59
+ return self.get(job_id)
60
+ failures = 0
61
+ except Exception as e:
62
+ failures += 1
63
+ if failures >= POLLING_ATTEMPTS:
64
+ raise HyperbrowserError(
65
+ f"Failed to poll browser-use task job {job_id} after {POLLING_ATTEMPTS} attempts: {e}"
66
+ )
67
+ time.sleep(2)
@@ -5,6 +5,7 @@ from .managers.sync_manager.profile import ProfileManager
5
5
  from .managers.sync_manager.session import SessionManager
6
6
  from .managers.sync_manager.scrape import ScrapeManager
7
7
  from .managers.sync_manager.crawl import CrawlManager
8
+ from .managers.sync_manager.beta import Beta
8
9
  from .managers.sync_manager.extension import ExtensionManager
9
10
  from .base import HyperbrowserBase
10
11
  from ..transport.sync import SyncTransport
@@ -29,6 +30,7 @@ class Hyperbrowser(HyperbrowserBase):
29
30
  self.extract = ExtractManager(self)
30
31
  self.profiles = ProfileManager(self)
31
32
  self.extensions = ExtensionManager(self)
33
+ self.beta = Beta(self)
32
34
 
33
35
  def close(self) -> None:
34
36
  self.transport.close()
hyperbrowser/config.py CHANGED
@@ -8,7 +8,7 @@ class ClientConfig:
8
8
  """Configuration for the Hyperbrowser client"""
9
9
 
10
10
  api_key: str
11
- base_url: str = "https://api.hyperbrowser.com"
11
+ base_url: str = "https://app.hyperbrowser.ai"
12
12
 
13
13
  @classmethod
14
14
  def from_env(cls) -> "ClientConfig":
@@ -17,6 +17,6 @@ class ClientConfig:
17
17
  raise ValueError("HYPERBROWSER_API_KEY environment variable is required")
18
18
 
19
19
  base_url = os.environ.get(
20
- "HYPERBROWSER_BASE_URL", "https://api.hyperbrowser.com"
20
+ "HYPERBROWSER_BASE_URL", "https://app.hyperbrowser.ai"
21
21
  )
22
22
  return cls(api_key=api_key, base_url=base_url)
@@ -0,0 +1,142 @@
1
+ from .consts import (
2
+ ScrapeFormat,
3
+ ScrapeWaitUntil,
4
+ ScrapePageStatus,
5
+ ScrapeScreenshotFormat,
6
+ RecordingStatus,
7
+ DownloadsStatus,
8
+ POLLING_ATTEMPTS,
9
+ Country,
10
+ OperatingSystem,
11
+ Platform,
12
+ ISO639_1,
13
+ State,
14
+ BrowserUseLlm,
15
+ )
16
+ from .crawl import (
17
+ CrawlJobStatus,
18
+ CrawlPageStatus,
19
+ StartCrawlJobParams,
20
+ StartCrawlJobResponse,
21
+ CrawledPage,
22
+ GetCrawlJobParams,
23
+ CrawlJobResponse,
24
+ )
25
+ from .extension import CreateExtensionParams, ExtensionResponse
26
+ from .extract import (
27
+ ExtractJobStatus,
28
+ StartExtractJobParams,
29
+ StartExtractJobResponse,
30
+ ExtractJobResponse,
31
+ )
32
+ from .profile import (
33
+ CreateProfileResponse,
34
+ ProfileResponse,
35
+ ProfileListParams,
36
+ ProfileListResponse,
37
+ )
38
+ from .scrape import (
39
+ ScrapeJobStatus,
40
+ ScreenshotOptions,
41
+ ScrapeOptions,
42
+ StartScrapeJobParams,
43
+ StartScrapeJobResponse,
44
+ ScrapeJobData,
45
+ ScrapeJobResponse,
46
+ StartBatchScrapeJobParams,
47
+ ScrapedPage,
48
+ GetBatchScrapeJobParams,
49
+ StartBatchScrapeJobResponse,
50
+ BatchScrapeJobResponse,
51
+ )
52
+ from .session import (
53
+ SessionStatus,
54
+ BasicResponse,
55
+ Session,
56
+ SessionDetail,
57
+ SessionListParams,
58
+ SessionListResponse,
59
+ ScreenConfig,
60
+ CreateSessionProfile,
61
+ CreateSessionParams,
62
+ SessionRecording,
63
+ GetSessionRecordingUrlResponse,
64
+ GetSessionDownloadsUrlResponse,
65
+ )
66
+ from .beta.agents.browser_use import (
67
+ StartBrowserUseTaskParams,
68
+ StartBrowserUseTaskResponse,
69
+ BrowserUseTaskStatusResponse,
70
+ BrowserUseTaskData,
71
+ BrowserUseTaskResponse,
72
+ )
73
+
74
+ __all__ = [
75
+ # consts
76
+ "BrowserUseLlm",
77
+ "ScrapeFormat",
78
+ "ScrapeWaitUntil",
79
+ "ScrapePageStatus",
80
+ "ScrapeScreenshotFormat",
81
+ "RecordingStatus",
82
+ "DownloadsStatus",
83
+ "POLLING_ATTEMPTS",
84
+ "Country",
85
+ "OperatingSystem",
86
+ "Platform",
87
+ "ISO639_1",
88
+ "State",
89
+ # crawl
90
+ "CrawlJobStatus",
91
+ "CrawlPageStatus",
92
+ "StartCrawlJobParams",
93
+ "StartCrawlJobResponse",
94
+ "CrawledPage",
95
+ "GetCrawlJobParams",
96
+ "CrawlJobResponse",
97
+ # extension
98
+ "CreateExtensionParams",
99
+ "ExtensionResponse",
100
+ # extract
101
+ "ExtractJobStatus",
102
+ "StartExtractJobParams",
103
+ "StartExtractJobResponse",
104
+ "ExtractJobResponse",
105
+ # profile
106
+ "CreateProfileResponse",
107
+ "ProfileResponse",
108
+ "ProfileListParams",
109
+ "ProfileListResponse",
110
+ # scrape
111
+ "ScrapeJobStatus",
112
+ "ScreenshotOptions",
113
+ "ScrapeOptions",
114
+ "StartScrapeJobParams",
115
+ "StartScrapeJobResponse",
116
+ "ScrapeJobData",
117
+ "ScrapeJobResponse",
118
+ "StartBatchScrapeJobParams",
119
+ "ScrapedPage",
120
+ "GetBatchScrapeJobParams",
121
+ "StartBatchScrapeJobResponse",
122
+ "BatchScrapeJobResponse",
123
+ # session
124
+ "SessionStatus",
125
+ "BasicResponse",
126
+ "Session",
127
+ "SessionDetail",
128
+ "SessionListParams",
129
+ "SessionListResponse",
130
+ "ScreenConfig",
131
+ "CreateSessionProfile",
132
+ "CreateSessionParams",
133
+ "SessionRecording",
134
+ "GetSessionRecordingUrlResponse",
135
+ "GetSessionDownloadsUrlResponse",
136
+ # agents
137
+ "StartBrowserUseTaskParams",
138
+ "StartBrowserUseTaskResponse",
139
+ "BrowserUseTaskStatusResponse",
140
+ "BrowserUseTaskData",
141
+ "BrowserUseTaskResponse",
142
+ ]
@@ -0,0 +1,184 @@
1
+ from typing import Literal, Optional, Union
2
+ from pydantic import BaseModel, ConfigDict, Field
3
+
4
+ from ...consts import BrowserUseLlm
5
+ from ...session import CreateSessionParams
6
+
7
+ BrowserUseTaskStatus = Literal["pending", "running", "completed", "failed", "stopped"]
8
+
9
+
10
+ class StartBrowserUseTaskParams(BaseModel):
11
+ """
12
+ Parameters for creating a new browser use task.
13
+ """
14
+
15
+ model_config = ConfigDict(
16
+ populate_by_alias=True,
17
+ )
18
+
19
+ task: str
20
+ llm: Optional[BrowserUseLlm] = Field(default=None, serialization_alias="llm")
21
+ session_id: Optional[str] = Field(default=None, serialization_alias="sessionId")
22
+ validate_output: Optional[bool] = Field(
23
+ default=None, serialization_alias="validateOutput"
24
+ )
25
+ use_vision: Optional[bool] = Field(default=None, serialization_alias="useVision")
26
+ use_vision_for_planner: Optional[bool] = Field(
27
+ default=None, serialization_alias="useVisionForPlanner"
28
+ )
29
+ max_actions_per_step: Optional[int] = Field(
30
+ default=None, serialization_alias="maxActionsPerStep"
31
+ )
32
+ max_input_tokens: Optional[int] = Field(
33
+ default=None, serialization_alias="maxInputTokens"
34
+ )
35
+ planner_llm: Optional[BrowserUseLlm] = Field(
36
+ default=None, serialization_alias="plannerLlm"
37
+ )
38
+ page_extraction_llm: Optional[BrowserUseLlm] = Field(
39
+ default=None, serialization_alias="pageExtractionLlm"
40
+ )
41
+ planner_interval: Optional[int] = Field(
42
+ default=None, serialization_alias="plannerInterval"
43
+ )
44
+ max_steps: Optional[int] = Field(default=None, serialization_alias="maxSteps")
45
+ keep_browser_open: Optional[bool] = Field(
46
+ default=None, serialization_alias="keepBrowserOpen"
47
+ )
48
+ session_options: Optional[CreateSessionParams] = Field(
49
+ default=None, serialization_alias="sessionOptions"
50
+ )
51
+
52
+
53
+ class StartBrowserUseTaskResponse(BaseModel):
54
+ """
55
+ Response from starting a browser use task.
56
+ """
57
+
58
+ model_config = ConfigDict(
59
+ populate_by_alias=True,
60
+ )
61
+
62
+ job_id: str = Field(alias="jobId")
63
+ live_url: Optional[str] = Field(default=None, alias="liveUrl")
64
+
65
+
66
+ class BrowserUseTaskStatusResponse(BaseModel):
67
+ """
68
+ Response from getting a browser use task status.
69
+ """
70
+
71
+ model_config = ConfigDict(
72
+ populate_by_alias=True,
73
+ )
74
+
75
+ status: BrowserUseTaskStatus
76
+
77
+
78
+ class BrowserUseAgentBrain(BaseModel):
79
+ evaluation_previous_goal: str
80
+ memory: str
81
+ next_goal: str
82
+
83
+
84
+ class BrowserUseAgentOutput(BaseModel):
85
+ current_state: BrowserUseAgentBrain
86
+ action: list[dict]
87
+
88
+
89
+ class BrowserUseActionResult(BaseModel):
90
+ is_done: Optional[bool] = False
91
+ success: Optional[bool] = None
92
+ extracted_content: Optional[str] = None
93
+ error: Optional[str] = None
94
+ include_in_memory: bool = False
95
+
96
+
97
+ class BrowserUseStepMetadata(BaseModel):
98
+ step_start_time: float
99
+ step_end_time: float
100
+ input_tokens: int
101
+ step_number: int
102
+
103
+
104
+ class BrowserUseTabInfo(BaseModel):
105
+ page_id: int
106
+ url: str
107
+ title: str
108
+
109
+
110
+ class BrowserUseCoordinates(BaseModel):
111
+ x: int
112
+ y: int
113
+
114
+
115
+ class BrowserUseCoordinateSet(BaseModel):
116
+ top_left: BrowserUseCoordinates
117
+ top_right: BrowserUseCoordinates
118
+ bottom_left: BrowserUseCoordinates
119
+ bottom_right: BrowserUseCoordinates
120
+ center: BrowserUseCoordinates
121
+ width: int
122
+ height: int
123
+
124
+
125
+ class BrowserUseViewportInfo(BaseModel):
126
+ scroll_x: int
127
+ scroll_y: int
128
+ width: int
129
+ height: int
130
+
131
+
132
+ class BrowserUseDOMHistoryElement(BaseModel):
133
+ tag_name: str
134
+ xpath: str
135
+ highlight_index: Optional[int]
136
+ entire_parent_branch_path: list[str]
137
+ attributes: dict[str, str]
138
+ shadow_root: bool = False
139
+ css_selector: Optional[str] = None
140
+ page_coordinates: Optional[BrowserUseCoordinateSet] = None
141
+ viewport_coordinates: Optional[BrowserUseCoordinateSet] = None
142
+ viewport_info: Optional[BrowserUseViewportInfo] = None
143
+
144
+
145
+ class BrowserUseBrowserStateHistory(BaseModel):
146
+ url: str
147
+ title: str
148
+ tabs: list[BrowserUseTabInfo]
149
+ interacted_element: Union[
150
+ list[Union[BrowserUseDOMHistoryElement, None]], list[None]
151
+ ]
152
+ screenshot: Optional[str] = None
153
+
154
+
155
+ class BrowserUseAgentHistory(BaseModel):
156
+ model_output: Union[BrowserUseAgentOutput, None]
157
+ result: list[BrowserUseActionResult]
158
+ state: BrowserUseBrowserStateHistory
159
+ metadata: Optional[BrowserUseStepMetadata] = None
160
+
161
+
162
+ class BrowserUseTaskData(BaseModel):
163
+ model_config = ConfigDict(
164
+ populate_by_alias=True,
165
+ )
166
+
167
+ steps: list[BrowserUseAgentHistory]
168
+ final_result: Optional[str] = Field(default=None, alias="finalResult")
169
+
170
+
171
+ class BrowserUseTaskResponse(BaseModel):
172
+ """
173
+ Response from a browser use task.
174
+ """
175
+
176
+ model_config = ConfigDict(
177
+ populate_by_alias=True,
178
+ )
179
+
180
+ job_id: str = Field(alias="jobId")
181
+ status: BrowserUseTaskStatus
182
+ data: Optional[BrowserUseTaskData] = Field(default=None, alias="data")
183
+ error: Optional[str] = Field(default=None, alias="error")
184
+ live_url: Optional[str] = Field(default=None, alias="liveUrl")
@@ -13,6 +13,15 @@ DownloadsStatus = Literal[
13
13
 
14
14
  POLLING_ATTEMPTS = 5
15
15
 
16
+ BrowserUseLlm = Literal[
17
+ "gpt-4o",
18
+ "gpt-4o-mini",
19
+ "claude-3-7-sonnet-20250219",
20
+ "claude-3-5-sonnet-20241022",
21
+ "claude-3-5-haiku-20241022",
22
+ "gemini-2.0-flash",
23
+ ]
24
+
16
25
  Country = Literal[
17
26
  "AD",
18
27
  "AE",
@@ -55,4 +55,4 @@ class ExtractJobResponse(BaseModel):
55
55
  job_id: str = Field(alias="jobId")
56
56
  status: ExtractJobStatus
57
57
  error: Optional[str] = None
58
- data: Optional[Any] = None
58
+ data: Optional[dict] = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: hyperbrowser
3
- Version: 0.30.0
3
+ Version: 0.32.0
4
4
  Summary: Python SDK for hyperbrowser
5
5
  License: MIT
6
6
  Author: Nikhil Shahi
@@ -1,25 +1,33 @@
1
1
  hyperbrowser/__init__.py,sha256=zWGcLhqhvWy6BTwuNpzWK1-0LpIn311ks-4U9nrsb7Y,187
2
- hyperbrowser/client/async_client.py,sha256=L7mbzg_wOVMneOm6-bA5XaBoVWUmybuRogE4YEMR5Bg,1389
2
+ hyperbrowser/client/async_client.py,sha256=CfANIK2rXVKPaxCTVtTxXvISrYeBFae6qMy_fUr7oZE,1466
3
3
  hyperbrowser/client/base.py,sha256=9gFma7RdvJBUlDCqr8tZd315UPrjn4ldU4B0-Y-L4O4,1268
4
+ hyperbrowser/client/managers/async_manager/beta/__init__.py,sha256=cRTeKvEogiUUK3WS02YKWM-sU6LCzXoALYclWgM0E_U,110
5
+ hyperbrowser/client/managers/async_manager/beta/agents/__init__.py,sha256=GVDrShmJtGJt2r2BxJ_aZiWLz3M5D54MJvOIgOhBPv4,151
6
+ hyperbrowser/client/managers/async_manager/beta/agents/browser_use.py,sha256=d1jEvkwOoNbAXDOv2IH7pdWrwGzSWrz3Us4skQM2Dew,2510
4
7
  hyperbrowser/client/managers/async_manager/crawl.py,sha256=n0KhHarVpPFwjjlc9UnhSfD5vvdC2kpcXHVr8vPiKxE,3870
5
8
  hyperbrowser/client/managers/async_manager/extension.py,sha256=a-xYtXXdCspukYtsguRgjEoQ8E_kzzA2tQAJtIyCtAs,1439
6
9
  hyperbrowser/client/managers/async_manager/extract.py,sha256=9p8dGLYmoow7smnQ0BTRN6diDmIayjW-EPRGzzvheZk,2102
7
10
  hyperbrowser/client/managers/async_manager/profile.py,sha256=f2uX2GGYdgL0fyzB0jnI-L-nWleqG6cwZ0pc1K1zdQY,1244
8
11
  hyperbrowser/client/managers/async_manager/scrape.py,sha256=Lr6oicTX3U1xooczUVQlsq2mzIhAKEW-A9909ZdSzKc,5720
9
12
  hyperbrowser/client/managers/async_manager/session.py,sha256=jO9Z2MSooG9eTmdsOWiNU0mFYdrxh5HirNnFqgwDIn0,2330
13
+ hyperbrowser/client/managers/sync_manager/beta/__init__.py,sha256=cRTeKvEogiUUK3WS02YKWM-sU6LCzXoALYclWgM0E_U,110
14
+ hyperbrowser/client/managers/sync_manager/beta/agents/__init__.py,sha256=GVDrShmJtGJt2r2BxJ_aZiWLz3M5D54MJvOIgOhBPv4,151
15
+ hyperbrowser/client/managers/sync_manager/beta/agents/browser_use.py,sha256=OSYDCO9huA90RMyZy28-_VOjeibBT0sHlbyf77FCTT4,2412
10
16
  hyperbrowser/client/managers/sync_manager/crawl.py,sha256=uAVmjhUbamVnzAAyfswq1bdBR5c7JrfGVvPdVmmw4R8,3799
11
17
  hyperbrowser/client/managers/sync_manager/extension.py,sha256=1YoyTZtMo43trl9jAsXv95aor0nBHiJEmLva39jFW-k,1415
12
18
  hyperbrowser/client/managers/sync_manager/extract.py,sha256=XocMKC0qAarRpE12KU4m_mi1KhUOHp3-TK4dLeiIn6E,2034
13
19
  hyperbrowser/client/managers/sync_manager/profile.py,sha256=va6mlhQ5SKZa-viEGFNzV6UBZEP5SqwVp32_oxC_NzM,1196
14
20
  hyperbrowser/client/managers/sync_manager/scrape.py,sha256=y4YB-NusXRi3brE7jBGRBHGANY-_-aHMBirKuuU6mdg,5579
15
21
  hyperbrowser/client/managers/sync_manager/session.py,sha256=aE4T9LWbOKcKCnh04n3rwnjeyus73Z47otrdCGTTKSM,2224
16
- hyperbrowser/client/sync.py,sha256=HgglJY9pNdW987OzNO_5dSZgj1AfAqovCmY99WYQD2E,1213
17
- hyperbrowser/config.py,sha256=2J6GYNR_83vzJZ6jEV-LXO1U-q6DHIrfyAU0WrUPhw8,625
22
+ hyperbrowser/client/sync.py,sha256=WK0KqoJb7ZHBVy50TYis7LENvA3KRQk45OzIZcxwWe8,1289
23
+ hyperbrowser/config.py,sha256=6xtUiVXy7MQMiARAsadP62U46tL0wzVMDuGmQBcH_LQ,623
18
24
  hyperbrowser/exceptions.py,sha256=SUUkptK2OL36xDORYmSicaTYR7pMbxeWAjAgz35xnM8,1171
19
- hyperbrowser/models/consts.py,sha256=yEPR3_Kmx44KDA3HC7p_96fTVIfNs2VwVfltIwe5Kgg,6415
25
+ hyperbrowser/models/__init__.py,sha256=G6Fdm7UQ_3Sz85hRgklA76vwThbyDE47-lTthqHjb88,3195
26
+ hyperbrowser/models/beta/agents/browser_use.py,sha256=41MtRecftO5gE6WjPpr8jfP42B9Nv5OEj57UQB-hT3Y,5048
27
+ hyperbrowser/models/consts.py,sha256=KdwLaRPMXv1U_oWwfGv8Kmml7Nygy-d1qH-IvAT2U_E,6601
20
28
  hyperbrowser/models/crawl.py,sha256=22hP_DPZMfa2MAfOeJ90qj5CH4rr7VtQT1gCQqO8jO8,2610
21
29
  hyperbrowser/models/extension.py,sha256=nXjKXKt9R7RxyZ4hd3EvfqZsEGy_ufh1r5j2mqCLykQ,804
22
- hyperbrowser/models/extract.py,sha256=Thq1wQhXlS-dh4442JLDONGOYix06s3gjWSnP1OuyN4,1528
30
+ hyperbrowser/models/extract.py,sha256=kkcM7DXkwnFJ7d_JZMDAb4VAlQdh-snJktFpJs92z8U,1529
23
31
  hyperbrowser/models/profile.py,sha256=KRb_LNxxW00AsD_thzzthFS51vInJawt1RcoNz4Q9i8,1322
24
32
  hyperbrowser/models/scrape.py,sha256=ZdVNN4rh7EKLh-O1Ou5aU_OgTNxC9pFQlkG-Q2fR-Z4,4611
25
33
  hyperbrowser/models/session.py,sha256=i1NkrQWNlKziDd98ySdrUUH7XSv6qOa2cmiK5vV7VeI,6730
@@ -30,7 +38,7 @@ hyperbrowser/tools/schema.py,sha256=cR2MUX8TvUyN8TnCyeX0pccp4AmPjrdaKzuAXRThOJo,
30
38
  hyperbrowser/transport/async_transport.py,sha256=6HKoeM5TutIqraEscEWobvSPWF3iVKh2hPflGNKwykw,4128
31
39
  hyperbrowser/transport/base.py,sha256=ildpMrDiM8nvrSGrH2LTOafmB17T7PQB_NQ1ODA378U,1703
32
40
  hyperbrowser/transport/sync.py,sha256=aUVpxWF8sqSycLNKxVNEZvlsZSoqc1eHgPK1Y1QA1u8,3422
33
- hyperbrowser-0.30.0.dist-info/LICENSE,sha256=6rUGKlyKb_1ZAH7h7YITYAAUNFN3MNGGKCyfrw49NLE,1071
34
- hyperbrowser-0.30.0.dist-info/METADATA,sha256=EdPIlQtwBgME4yioEdu6GUiJcEHt87woh5MVLQRHE3s,3438
35
- hyperbrowser-0.30.0.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
36
- hyperbrowser-0.30.0.dist-info/RECORD,,
41
+ hyperbrowser-0.32.0.dist-info/LICENSE,sha256=6rUGKlyKb_1ZAH7h7YITYAAUNFN3MNGGKCyfrw49NLE,1071
42
+ hyperbrowser-0.32.0.dist-info/METADATA,sha256=rxEInDkCZjDhAMsDvmHUe-VwXSEBimHmfhxAF6XrHQQ,3438
43
+ hyperbrowser-0.32.0.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
44
+ hyperbrowser-0.32.0.dist-info/RECORD,,