hyperbrowser 0.60.0__tar.gz → 0.62.0__tar.gz
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.
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/PKG-INFO +1 -1
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/agents/__init__.py +2 -0
- hyperbrowser-0.62.0/hyperbrowser/client/managers/async_manager/agents/gemini_computer_use.py +71 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/agents/__init__.py +2 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/agents/claude_computer_use.py +1 -1
- hyperbrowser-0.62.0/hyperbrowser/client/managers/sync_manager/agents/gemini_computer_use.py +71 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/__init__.py +29 -0
- hyperbrowser-0.62.0/hyperbrowser/models/agents/gemini_computer_use.py +117 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/consts.py +1 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/session.py +59 -9
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/pyproject.toml +1 -1
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/LICENSE +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/README.md +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/__init__.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/async_client.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/base.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/agents/browser_use.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/agents/claude_computer_use.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/agents/cua.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/agents/hyper_agent.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/computer_action.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/crawl.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/extension.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/extract.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/profile.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/scrape.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/session.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/team.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/agents/browser_use.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/agents/cua.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/agents/hyper_agent.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/computer_action.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/crawl.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/extension.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/extract.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/profile.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/scrape.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/session.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/team.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/sync.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/config.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/exceptions.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/agents/browser_use.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/agents/claude_computer_use.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/agents/cua.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/agents/hyper_agent.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/computer_action.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/crawl.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/extension.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/extract.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/profile.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/scrape.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/team.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/tools/__init__.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/tools/anthropic.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/tools/openai.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/tools/schema.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/transport/async_transport.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/transport/base.py +0 -0
- {hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/transport/sync.py +0 -0
|
@@ -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
|
|
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")
|
|
@@ -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.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/agents/cua.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/crawl.py
RENAMED
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/extension.py
RENAMED
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/extract.py
RENAMED
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/profile.py
RENAMED
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/scrape.py
RENAMED
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/session.py
RENAMED
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/async_manager/team.py
RENAMED
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/agents/cua.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/crawl.py
RENAMED
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/extension.py
RENAMED
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/extract.py
RENAMED
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/profile.py
RENAMED
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/scrape.py
RENAMED
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/session.py
RENAMED
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/client/managers/sync_manager/team.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.60.0 → hyperbrowser-0.62.0}/hyperbrowser/models/agents/claude_computer_use.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|