hyperbrowser 0.60.0__py3-none-any.whl → 0.62.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.

@@ -2,6 +2,7 @@ from .browser_use import BrowserUseManager
2
2
  from .cua import CuaManager
3
3
  from .claude_computer_use import ClaudeComputerUseManager
4
4
  from .hyper_agent import HyperAgentManager
5
+ from .gemini_computer_use import GeminiComputerUseManager
5
6
 
6
7
 
7
8
  class Agents:
@@ -10,3 +11,4 @@ class Agents:
10
11
  self.cua = CuaManager(client)
11
12
  self.claude_computer_use = ClaudeComputerUseManager(client)
12
13
  self.hyper_agent = HyperAgentManager(client)
14
+ self.gemini_computer_use = GeminiComputerUseManager(client)
@@ -0,0 +1,71 @@
1
+ import asyncio
2
+
3
+ from hyperbrowser.exceptions import HyperbrowserError
4
+
5
+ from .....models import (
6
+ POLLING_ATTEMPTS,
7
+ BasicResponse,
8
+ GeminiComputerUseTaskResponse,
9
+ GeminiComputerUseTaskStatusResponse,
10
+ StartGeminiComputerUseTaskParams,
11
+ StartGeminiComputerUseTaskResponse,
12
+ )
13
+
14
+
15
+ class GeminiComputerUseManager:
16
+ def __init__(self, client):
17
+ self._client = client
18
+
19
+ async def start(
20
+ self, params: StartGeminiComputerUseTaskParams
21
+ ) -> StartGeminiComputerUseTaskResponse:
22
+ response = await self._client.transport.post(
23
+ self._client._build_url("/task/gemini-computer-use"),
24
+ data=params.model_dump(exclude_none=True, by_alias=True),
25
+ )
26
+ return StartGeminiComputerUseTaskResponse(**response.data)
27
+
28
+ async def get(self, job_id: str) -> GeminiComputerUseTaskResponse:
29
+ response = await self._client.transport.get(
30
+ self._client._build_url(f"/task/gemini-computer-use/{job_id}")
31
+ )
32
+ return GeminiComputerUseTaskResponse(**response.data)
33
+
34
+ async def get_status(self, job_id: str) -> GeminiComputerUseTaskStatusResponse:
35
+ response = await self._client.transport.get(
36
+ self._client._build_url(f"/task/gemini-computer-use/{job_id}/status")
37
+ )
38
+ return GeminiComputerUseTaskStatusResponse(**response.data)
39
+
40
+ async def stop(self, job_id: str) -> BasicResponse:
41
+ response = await self._client.transport.put(
42
+ self._client._build_url(f"/task/gemini-computer-use/{job_id}/stop")
43
+ )
44
+ return BasicResponse(**response.data)
45
+
46
+ async def start_and_wait(
47
+ self, params: StartGeminiComputerUseTaskParams
48
+ ) -> GeminiComputerUseTaskResponse:
49
+ job_start_resp = await self.start(params)
50
+ job_id = job_start_resp.job_id
51
+ if not job_id:
52
+ raise HyperbrowserError("Failed to start Gemini Computer Use task job")
53
+
54
+ failures = 0
55
+ while True:
56
+ try:
57
+ job_response = await self.get_status(job_id)
58
+ if (
59
+ job_response.status == "completed"
60
+ or job_response.status == "failed"
61
+ or job_response.status == "stopped"
62
+ ):
63
+ return await self.get(job_id)
64
+ failures = 0
65
+ except Exception as e:
66
+ failures += 1
67
+ if failures >= POLLING_ATTEMPTS:
68
+ raise HyperbrowserError(
69
+ f"Failed to poll Gemini Computer Use task job {job_id} after {POLLING_ATTEMPTS} attempts: {e}"
70
+ )
71
+ await asyncio.sleep(2)
@@ -2,6 +2,7 @@ from .browser_use import BrowserUseManager
2
2
  from .cua import CuaManager
3
3
  from .claude_computer_use import ClaudeComputerUseManager
4
4
  from .hyper_agent import HyperAgentManager
5
+ from .gemini_computer_use import GeminiComputerUseManager
5
6
 
6
7
 
7
8
  class Agents:
@@ -10,3 +11,4 @@ class Agents:
10
11
  self.cua = CuaManager(client)
11
12
  self.claude_computer_use = ClaudeComputerUseManager(client)
12
13
  self.hyper_agent = HyperAgentManager(client)
14
+ self.gemini_computer_use = GeminiComputerUseManager(client)
@@ -49,7 +49,7 @@ class ClaudeComputerUseManager:
49
49
  job_start_resp = self.start(params)
50
50
  job_id = job_start_resp.job_id
51
51
  if not job_id:
52
- raise HyperbrowserError("Failed to start CUA task job")
52
+ raise HyperbrowserError("Failed to start Claude Computer Use task job")
53
53
 
54
54
  failures = 0
55
55
  while True:
@@ -0,0 +1,71 @@
1
+ import time
2
+
3
+ from hyperbrowser.exceptions import HyperbrowserError
4
+
5
+ from .....models import (
6
+ POLLING_ATTEMPTS,
7
+ BasicResponse,
8
+ GeminiComputerUseTaskResponse,
9
+ GeminiComputerUseTaskStatusResponse,
10
+ StartGeminiComputerUseTaskParams,
11
+ StartGeminiComputerUseTaskResponse,
12
+ )
13
+
14
+
15
+ class GeminiComputerUseManager:
16
+ def __init__(self, client):
17
+ self._client = client
18
+
19
+ def start(
20
+ self, params: StartGeminiComputerUseTaskParams
21
+ ) -> StartGeminiComputerUseTaskResponse:
22
+ response = self._client.transport.post(
23
+ self._client._build_url("/task/gemini-computer-use"),
24
+ data=params.model_dump(exclude_none=True, by_alias=True),
25
+ )
26
+ return StartGeminiComputerUseTaskResponse(**response.data)
27
+
28
+ def get(self, job_id: str) -> GeminiComputerUseTaskResponse:
29
+ response = self._client.transport.get(
30
+ self._client._build_url(f"/task/gemini-computer-use/{job_id}")
31
+ )
32
+ return GeminiComputerUseTaskResponse(**response.data)
33
+
34
+ def get_status(self, job_id: str) -> GeminiComputerUseTaskStatusResponse:
35
+ response = self._client.transport.get(
36
+ self._client._build_url(f"/task/gemini-computer-use/{job_id}/status")
37
+ )
38
+ return GeminiComputerUseTaskStatusResponse(**response.data)
39
+
40
+ def stop(self, job_id: str) -> BasicResponse:
41
+ response = self._client.transport.put(
42
+ self._client._build_url(f"/task/gemini-computer-use/{job_id}/stop")
43
+ )
44
+ return BasicResponse(**response.data)
45
+
46
+ def start_and_wait(
47
+ self, params: StartGeminiComputerUseTaskParams
48
+ ) -> GeminiComputerUseTaskResponse:
49
+ job_start_resp = self.start(params)
50
+ job_id = job_start_resp.job_id
51
+ if not job_id:
52
+ raise HyperbrowserError("Failed to start Gemini Computer Use task job")
53
+
54
+ failures = 0
55
+ while True:
56
+ try:
57
+ job_response = self.get_status(job_id)
58
+ if (
59
+ job_response.status == "completed"
60
+ or job_response.status == "failed"
61
+ or job_response.status == "stopped"
62
+ ):
63
+ return self.get(job_id)
64
+ failures = 0
65
+ except Exception as e:
66
+ failures += 1
67
+ if failures >= POLLING_ATTEMPTS:
68
+ raise HyperbrowserError(
69
+ f"Failed to poll Gemini Computer Use task job {job_id} after {POLLING_ATTEMPTS} attempts: {e}"
70
+ )
71
+ time.sleep(2)
@@ -7,6 +7,8 @@ from .agents.browser_use import (
7
7
  BrowserUseApiKeys,
8
8
  )
9
9
  from .agents.claude_computer_use import (
10
+ ClaudeComputerUseTaskStatus,
11
+ ClaudeComputerUseStepResponse,
10
12
  ClaudeComputerUseTaskData,
11
13
  ClaudeComputerUseTaskResponse,
12
14
  ClaudeComputerUseTaskStatusResponse,
@@ -14,6 +16,16 @@ from .agents.claude_computer_use import (
14
16
  StartClaudeComputerUseTaskResponse,
15
17
  ClaudeComputerUseApiKeys,
16
18
  )
19
+ from .agents.gemini_computer_use import (
20
+ GeminiComputerUseTaskStatus,
21
+ GeminiComputerUseStepResponse,
22
+ GeminiComputerUseTaskData,
23
+ GeminiComputerUseTaskResponse,
24
+ GeminiComputerUseTaskStatusResponse,
25
+ StartGeminiComputerUseTaskParams,
26
+ StartGeminiComputerUseTaskResponse,
27
+ GeminiComputerUseApiKeys,
28
+ )
17
29
  from .agents.cua import (
18
30
  CuaTaskData,
19
31
  CuaTaskResponse,
@@ -51,6 +63,7 @@ from .consts import (
51
63
  ScrapeWaitUntil,
52
64
  SessionEventLogType,
53
65
  State,
66
+ SessionRegion,
54
67
  )
55
68
  from .crawl import (
56
69
  CrawledPage,
@@ -123,7 +136,10 @@ from .session import (
123
136
  SessionEventLog,
124
137
  SessionEventLogListParams,
125
138
  SessionEventLogListResponse,
139
+ SessionProfile,
140
+ SessionLaunchState,
126
141
  UploadFileResponse,
142
+ ImageCaptchaParam,
127
143
  )
128
144
  from .team import TeamCreditInfo
129
145
 
@@ -145,6 +161,7 @@ __all__ = [
145
161
  "ScrapeWaitUntil",
146
162
  "SessionEventLogType",
147
163
  "State",
164
+ "SessionRegion",
148
165
  # agents
149
166
  "HyperAgentTaskStatus",
150
167
  "HyperAgentActionOutput",
@@ -162,11 +179,19 @@ __all__ = [
162
179
  "StartBrowserUseTaskParams",
163
180
  "StartBrowserUseTaskResponse",
164
181
  "ClaudeComputerUseTaskStatus",
182
+ "ClaudeComputerUseStepResponse",
165
183
  "ClaudeComputerUseTaskData",
166
184
  "ClaudeComputerUseTaskResponse",
167
185
  "ClaudeComputerUseTaskStatusResponse",
168
186
  "StartClaudeComputerUseTaskParams",
169
187
  "StartClaudeComputerUseTaskResponse",
188
+ "GeminiComputerUseTaskStatus",
189
+ "GeminiComputerUseStepResponse",
190
+ "GeminiComputerUseTaskData",
191
+ "GeminiComputerUseTaskResponse",
192
+ "GeminiComputerUseTaskStatusResponse",
193
+ "StartGeminiComputerUseTaskParams",
194
+ "StartGeminiComputerUseTaskResponse",
170
195
  "CuaTaskStatus",
171
196
  "CuaTaskData",
172
197
  "CuaTaskResponse",
@@ -175,6 +200,7 @@ __all__ = [
175
200
  "StartCuaTaskResponse",
176
201
  "BrowserUseApiKeys",
177
202
  "ClaudeComputerUseApiKeys",
203
+ "GeminiComputerUseApiKeys",
178
204
  "CuaApiKeys",
179
205
  "HyperAgentApiKeys",
180
206
  # crawl
@@ -233,7 +259,10 @@ __all__ = [
233
259
  "SessionEventLog",
234
260
  "SessionEventLogListParams",
235
261
  "SessionEventLogListResponse",
262
+ "SessionProfile",
263
+ "SessionLaunchState",
236
264
  "UploadFileResponse",
265
+ "ImageCaptchaParam",
237
266
  # team
238
267
  "TeamCreditInfo",
239
268
  # computer action
@@ -0,0 +1,117 @@
1
+ from typing import Any, Literal, Optional
2
+
3
+ from pydantic import BaseModel, ConfigDict, Field
4
+
5
+ from ..session import CreateSessionParams
6
+ from ..consts import GeminiComputerUseLlm
7
+
8
+ GeminiComputerUseTaskStatus = Literal[
9
+ "pending", "running", "completed", "failed", "stopped"
10
+ ]
11
+
12
+
13
+ class GeminiComputerUseApiKeys(BaseModel):
14
+ """
15
+ API keys for the Gemini Computer Use task.
16
+ """
17
+
18
+ model_config = ConfigDict(
19
+ populate_by_alias=True,
20
+ )
21
+
22
+ google: Optional[str] = Field(default=None, serialization_alias="google")
23
+
24
+
25
+ class StartGeminiComputerUseTaskParams(BaseModel):
26
+ """
27
+ Parameters for creating a new Gemini Computer Use task.
28
+ """
29
+
30
+ model_config = ConfigDict(
31
+ populate_by_alias=True,
32
+ )
33
+
34
+ task: str
35
+ llm: Optional[GeminiComputerUseLlm] = Field(default=None, serialization_alias="llm")
36
+ session_id: Optional[str] = Field(default=None, serialization_alias="sessionId")
37
+ max_failures: Optional[int] = Field(default=None, serialization_alias="maxFailures")
38
+ max_steps: Optional[int] = Field(default=None, serialization_alias="maxSteps")
39
+ keep_browser_open: Optional[bool] = Field(
40
+ default=None, serialization_alias="keepBrowserOpen"
41
+ )
42
+ session_options: Optional[CreateSessionParams] = Field(
43
+ default=None, serialization_alias="sessionOptions"
44
+ )
45
+ use_custom_api_keys: Optional[bool] = Field(
46
+ default=None, serialization_alias="useCustomApiKeys"
47
+ )
48
+ api_keys: Optional[GeminiComputerUseApiKeys] = Field(
49
+ default=None, serialization_alias="apiKeys"
50
+ )
51
+
52
+
53
+ class StartGeminiComputerUseTaskResponse(BaseModel):
54
+ """
55
+ Response from starting a Gemini Computer 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 GeminiComputerUseTaskStatusResponse(BaseModel):
67
+ """
68
+ Response from getting a Gemini Computer Use task status.
69
+ """
70
+
71
+ model_config = ConfigDict(
72
+ populate_by_alias=True,
73
+ )
74
+
75
+ status: GeminiComputerUseTaskStatus
76
+
77
+
78
+ class GeminiComputerUseStepResponse(BaseModel):
79
+ """
80
+ Response from a single Gemini Computer Use step.
81
+ """
82
+
83
+ model_config = ConfigDict(
84
+ populate_by_alias=True,
85
+ )
86
+
87
+ candidates: Optional[list[Any]] = Field(
88
+ default=None, serialization_alias="candidates"
89
+ )
90
+ model_version: Optional[str] = Field(
91
+ default=None, serialization_alias="modelVersion"
92
+ )
93
+
94
+
95
+ class GeminiComputerUseTaskData(BaseModel):
96
+ model_config = ConfigDict(
97
+ populate_by_alias=True,
98
+ )
99
+
100
+ steps: list[GeminiComputerUseStepResponse]
101
+ final_result: Optional[str] = Field(default=None, alias="finalResult")
102
+
103
+
104
+ class GeminiComputerUseTaskResponse(BaseModel):
105
+ """
106
+ Response from a Gemini Computer Use task.
107
+ """
108
+
109
+ model_config = ConfigDict(
110
+ populate_by_alias=True,
111
+ )
112
+
113
+ job_id: str = Field(alias="jobId")
114
+ status: GeminiComputerUseTaskStatus
115
+ data: Optional[GeminiComputerUseTaskData] = Field(default=None, alias="data")
116
+ error: Optional[str] = Field(default=None, alias="error")
117
+ live_url: Optional[str] = Field(default=None, alias="liveUrl")
@@ -43,6 +43,7 @@ ClaudeComputerUseLlm = Literal[
43
43
  "claude-sonnet-4-20250514",
44
44
  "claude-3-7-sonnet-20250219",
45
45
  ]
46
+ GeminiComputerUseLlm = Literal["gemini-2.5-computer-use-preview-10-2025",]
46
47
  SessionRegion = Literal[
47
48
  "us-central",
48
49
  "asia-south",
@@ -27,6 +27,62 @@ class BasicResponse(BaseModel):
27
27
  success: bool
28
28
 
29
29
 
30
+ class ScreenConfig(BaseModel):
31
+ """
32
+ Screen configuration parameters for browser session.
33
+ """
34
+
35
+ width: int = Field(default=1280, serialization_alias="width")
36
+ height: int = Field(default=720, serialization_alias="height")
37
+
38
+
39
+ class SessionProfile(BaseModel):
40
+ model_config = ConfigDict(
41
+ populate_by_alias=True,
42
+ )
43
+
44
+ id: str = Field(alias="id")
45
+ persist_changes: Optional[bool] = Field(
46
+ default=None, alias="persistChanges", serialization_alias="persistChanges"
47
+ )
48
+
49
+
50
+ class SessionLaunchState(BaseModel):
51
+ model_config = ConfigDict(
52
+ populate_by_alias=True,
53
+ )
54
+
55
+ use_ultra_stealth: Optional[bool] = Field(default=None, alias="useUltraStealth")
56
+ use_stealth: Optional[bool] = Field(default=None, alias="useStealth")
57
+ use_proxy: Optional[bool] = Field(default=None, alias="useProxy")
58
+ solve_captchas: Optional[bool] = Field(default=None, alias="solveCaptchas")
59
+ adblock: Optional[bool] = Field(default=None, alias="adblock")
60
+ trackers: Optional[bool] = Field(default=None, alias="trackers")
61
+ annoyances: Optional[bool] = Field(default=None, alias="annoyances")
62
+ screen: Optional[ScreenConfig] = Field(default=None, alias="screen")
63
+ enable_web_recording: Optional[bool] = Field(
64
+ default=None, alias="enableWebRecording"
65
+ )
66
+ enable_video_web_recording: Optional[bool] = Field(
67
+ default=None, alias="enableVideoWebRecording"
68
+ )
69
+ enable_log_capture: Optional[bool] = Field(default=None, alias="enableLogCapture")
70
+ accept_cookies: Optional[bool] = Field(default=None, alias="acceptCookies")
71
+ profile: Optional[SessionProfile] = Field(default=None, alias="profile")
72
+ static_ip_id: Optional[str] = Field(default=None, alias="staticIpId")
73
+ save_downloads: Optional[bool] = Field(default=None, alias="saveDownloads")
74
+ enable_window_manager: Optional[bool] = Field(
75
+ default=None, alias="enableWindowManager"
76
+ )
77
+ enable_window_manager_taskbar: Optional[bool] = Field(
78
+ default=None, alias="enableWindowManagerTaskbar"
79
+ )
80
+ view_only_live_view: Optional[bool] = Field(default=None, alias="viewOnlyLiveView")
81
+ disable_password_manager: Optional[bool] = Field(
82
+ default=None, alias="disablePasswordManager"
83
+ )
84
+
85
+
30
86
  class Session(BaseModel):
31
87
  """
32
88
  Represents a basic session in the Hyperbrowser system.
@@ -46,6 +102,9 @@ class Session(BaseModel):
46
102
  duration: Optional[int] = None
47
103
  session_url: str = Field(alias="sessionUrl")
48
104
  proxy_data_consumed: str = Field(alias="proxyDataConsumed")
105
+ launch_state: Optional[SessionLaunchState] = Field(
106
+ default=None, alias="launchState"
107
+ )
49
108
 
50
109
  @field_validator("start_time", "end_time", mode="before")
51
110
  @classmethod
@@ -114,15 +173,6 @@ class SessionListResponse(BaseModel):
114
173
  return -(-self.total_count // self.per_page)
115
174
 
116
175
 
117
- class ScreenConfig(BaseModel):
118
- """
119
- Screen configuration parameters for browser session.
120
- """
121
-
122
- width: int = Field(default=1280, serialization_alias="width")
123
- height: int = Field(default=720, serialization_alias="height")
124
-
125
-
126
176
  class CreateSessionProfile(BaseModel):
127
177
  """
128
178
  Profile configuration parameters for browser session.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hyperbrowser
3
- Version: 0.60.0
3
+ Version: 0.62.0
4
4
  Summary: Python SDK for hyperbrowser
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -1,10 +1,11 @@
1
1
  hyperbrowser/__init__.py,sha256=zWGcLhqhvWy6BTwuNpzWK1-0LpIn311ks-4U9nrsb7Y,187
2
2
  hyperbrowser/client/async_client.py,sha256=CcgSBu3YbSZZ4jthRqXnOMlgMMGCJzAGAymyovL7n1k,1698
3
3
  hyperbrowser/client/base.py,sha256=2nkTdGfRWjW3grqAuYez-IuD69SAAJ5qklCKNeAYd6A,1268
4
- hyperbrowser/client/managers/async_manager/agents/__init__.py,sha256=GUkUBxoqW6vchz3-yNlUaE8TdEClNdp3RliHYMT1fsE,432
4
+ hyperbrowser/client/managers/async_manager/agents/__init__.py,sha256=tjHfycKN020IJsbuLh3iEhN0UDXp8TMz5141YTKIc5o,558
5
5
  hyperbrowser/client/managers/async_manager/agents/browser_use.py,sha256=wizo6f_GpZyP8z6nXbqgX57i2cJMm12GDt1yEmPXF1A,2863
6
6
  hyperbrowser/client/managers/async_manager/agents/claude_computer_use.py,sha256=gTnX8r3rETyLMsDy_4nO0oB5cDdHHN9s-y7xw-4ekqc,2657
7
7
  hyperbrowser/client/managers/async_manager/agents/cua.py,sha256=e43QgSLi0LvGd9cOirsRETcit0MXvvtLA2cNv16xH0s,2337
8
+ hyperbrowser/client/managers/async_manager/agents/gemini_computer_use.py,sha256=S3qYI9UYh0a35EfUNcUQ1hhZnMtOuyS1V7NkgLrtGkk,2657
8
9
  hyperbrowser/client/managers/async_manager/agents/hyper_agent.py,sha256=VzPTrvlYX_CZohoCD6Z8Cf1itDZ6BLKmrzpjv6YGs88,2501
9
10
  hyperbrowser/client/managers/async_manager/computer_action.py,sha256=W9Ezfe7vRt1xtAXI7nBxLsYC6iTT7wjg2jn0OFpF7E4,3711
10
11
  hyperbrowser/client/managers/async_manager/crawl.py,sha256=3EW-QauFPaW92XJk0mQU7f0-xgCdKKEc6WaPeM5exlA,4417
@@ -14,10 +15,11 @@ hyperbrowser/client/managers/async_manager/profile.py,sha256=cQ4cYVwL83heQwEnQiB
14
15
  hyperbrowser/client/managers/async_manager/scrape.py,sha256=akVgbatTTHDFkmxugxcQpIPEwjSPm7VloJVDdbAPRh0,6560
15
16
  hyperbrowser/client/managers/async_manager/session.py,sha256=2PLXcwvh38ouX3ctOtizhOlmK0NH4HEtH5rKXaxEH8w,4166
16
17
  hyperbrowser/client/managers/async_manager/team.py,sha256=DHRd7igcuMG16WfM1-nSnpqaSNvwEzBnTGv7wRuaRdI,353
17
- hyperbrowser/client/managers/sync_manager/agents/__init__.py,sha256=GUkUBxoqW6vchz3-yNlUaE8TdEClNdp3RliHYMT1fsE,432
18
+ hyperbrowser/client/managers/sync_manager/agents/__init__.py,sha256=tjHfycKN020IJsbuLh3iEhN0UDXp8TMz5141YTKIc5o,558
18
19
  hyperbrowser/client/managers/sync_manager/agents/browser_use.py,sha256=HXl8GM47DZuK4A-3DpwbLDJCnzEL8ndn9YfDAEljZFk,2765
19
- hyperbrowser/client/managers/sync_manager/agents/claude_computer_use.py,sha256=6mAaqDjKrLrxRaGZfZSgC7wYVyDQeWZEE6K6wLrnTXk,2557
20
+ hyperbrowser/client/managers/sync_manager/agents/claude_computer_use.py,sha256=p8zK7IgL6vHz7qzDZQoK2YswJjoKVwL2arIDC0Jdy50,2573
20
21
  hyperbrowser/client/managers/sync_manager/agents/cua.py,sha256=rh3JyXWzh9SvSLkDBtWGVUd2KMx27MyLMuNPnRwvbxk,2253
22
+ hyperbrowser/client/managers/sync_manager/agents/gemini_computer_use.py,sha256=qgNdoDASsh2XMM_oINawrKKpIXsITR3RzHZr3MfxsTs,2573
21
23
  hyperbrowser/client/managers/sync_manager/agents/hyper_agent.py,sha256=UgB_eEa7PODGoTegulJzJDPBr2VQ-hIT0yA0z7BfYtk,2403
22
24
  hyperbrowser/client/managers/sync_manager/computer_action.py,sha256=H-oD6A_dcmbrFrUQ8nw6QCNg4MV1jDy7cPeCJNfg_kY,3609
23
25
  hyperbrowser/client/managers/sync_manager/crawl.py,sha256=mk5G7NGrneU47P2lbOlI7dkAZ9PMMPwPjIYGSO5yR-Y,4349
@@ -30,19 +32,20 @@ hyperbrowser/client/managers/sync_manager/team.py,sha256=VKuKXpbGBZ-iwTDAlO0U0yv
30
32
  hyperbrowser/client/sync.py,sha256=Oi-d4upNRkAUS5T5LcJPun5hL6FPbODn_PcM1AERCrg,1519
31
33
  hyperbrowser/config.py,sha256=7P-sbcvqXVr8Qzubo5O6jJgzcCgB5DdwbeIgEjRZNlY,623
32
34
  hyperbrowser/exceptions.py,sha256=SUUkptK2OL36xDORYmSicaTYR7pMbxeWAjAgz35xnM8,1171
33
- hyperbrowser/models/__init__.py,sha256=eV1jGe1fu1NbMJDR8CqftJPR5byM4Bi0UK-XCTejeLk,6139
35
+ hyperbrowser/models/__init__.py,sha256=eSXNPEx0jB6uehKIapIyB9Zn3hVgbbzm296pTbQtrGI,7050
34
36
  hyperbrowser/models/agents/browser_use.py,sha256=Na3av_EivqOCtEjd-Bfm68sp3H_tr_cE8q1oFCjagUU,6303
35
37
  hyperbrowser/models/agents/claude_computer_use.py,sha256=RflxYn2Js4TQQsAM3liTBoWJkIViYjOuBVFOPR4sTho,3311
36
38
  hyperbrowser/models/agents/cua.py,sha256=mDFC3hVWQ3OS9wpjRTPdJgXaIOLDw00GGPD_pURo8Tw,3609
39
+ hyperbrowser/models/agents/gemini_computer_use.py,sha256=54uM6G3hTsGiZ2xRFmSZ5TDiUsmRLxiE85N1iNfNPDM,3225
37
40
  hyperbrowser/models/agents/hyper_agent.py,sha256=tHca1Xw6sHekF0SAL1buKMjeUjwmm8qciKFCWsJ1q0g,3728
38
41
  hyperbrowser/models/computer_action.py,sha256=9CvnlfqwarBCjfek62_1gpRmeupU_3IhEnhkQ3iK8yw,3488
39
- hyperbrowser/models/consts.py,sha256=OhrEjpObj6pBaiKBh8r27T_K12c3nR0RQNplwqNPWQA,7175
42
+ hyperbrowser/models/consts.py,sha256=2jor-sjVM7WSMd4x5upN7YO1ABL-9EbNzes7NcS6qXk,7250
40
43
  hyperbrowser/models/crawl.py,sha256=XUS5Ja-Abl8gMyDtLIsRaEKa_taSOORMLOFCdAPgGaI,2820
41
44
  hyperbrowser/models/extension.py,sha256=nXjKXKt9R7RxyZ4hd3EvfqZsEGy_ufh1r5j2mqCLykQ,804
42
45
  hyperbrowser/models/extract.py,sha256=DXg0HtO44plAtcFOmqUpdp9P93tq45U2fLWxn5jdjAw,1745
43
46
  hyperbrowser/models/profile.py,sha256=GF0esQwru0oOs9sQ9DCuO8VX4GKPgRgKCVP8s7g0Pig,1846
44
47
  hyperbrowser/models/scrape.py,sha256=iMsUuMx3UFtSci6TVUpcH5ytbgwiImIXjviVcGZ_gBQ,5048
45
- hyperbrowser/models/session.py,sha256=wfy6Vo34uYl04KisqBIwG05VN69fCgfw6gzcQn_Q4ZA,10409
48
+ hyperbrowser/models/session.py,sha256=-1MbPc4hTe9j-bKdsoqFpYuGFo1g41dkS6zU8iV9wRE,12533
46
49
  hyperbrowser/models/team.py,sha256=dPBFL3TPO0AF_UzqP4sENMPhku_5j00uwC24zG558MU,338
47
50
  hyperbrowser/tools/__init__.py,sha256=L-2xveBbSuIBQBQhJmXGCLNYEUq_XHDdgz_gBAsmQZo,4605
48
51
  hyperbrowser/tools/anthropic.py,sha256=bo8jn2ROHCp_hpX1_cjkCk7qU0LmuBr_gvlvM0f5OMc,2699
@@ -51,7 +54,7 @@ hyperbrowser/tools/schema.py,sha256=YFUAoQjx_SpjezS3UQdTCCn4xMdN3CgEeKAlulkIATc,
51
54
  hyperbrowser/transport/async_transport.py,sha256=6HKoeM5TutIqraEscEWobvSPWF3iVKh2hPflGNKwykw,4128
52
55
  hyperbrowser/transport/base.py,sha256=ildpMrDiM8nvrSGrH2LTOafmB17T7PQB_NQ1ODA378U,1703
53
56
  hyperbrowser/transport/sync.py,sha256=aUVpxWF8sqSycLNKxVNEZvlsZSoqc1eHgPK1Y1QA1u8,3422
54
- hyperbrowser-0.60.0.dist-info/METADATA,sha256=Bmk3nPJwMMmrkL1J5OMgNOXoP9jdsXUhuIP8gwB4STc,3651
55
- hyperbrowser-0.60.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
56
- hyperbrowser-0.60.0.dist-info/licenses/LICENSE,sha256=NbSXeOZ2JKnPpkyLBYkfPqt9eWNy-Lx3xb4sjsSR9mI,1069
57
- hyperbrowser-0.60.0.dist-info/RECORD,,
57
+ hyperbrowser-0.62.0.dist-info/METADATA,sha256=dlKq5gpbi0q4XETap69JJ1D278H4jyvi4ykbFNtoONA,3651
58
+ hyperbrowser-0.62.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
59
+ hyperbrowser-0.62.0.dist-info/licenses/LICENSE,sha256=NbSXeOZ2JKnPpkyLBYkfPqt9eWNy-Lx3xb4sjsSR9mI,1069
60
+ hyperbrowser-0.62.0.dist-info/RECORD,,