hyperbrowser 0.93.2__tar.gz → 0.93.3__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.
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/PKG-INFO +1 -1
- {hyperbrowser-0.93.2/hyperbrowser/client/managers/sync_manager → hyperbrowser-0.93.3/hyperbrowser/client/managers/async_manager}/agents/__init__.py +2 -0
- hyperbrowser-0.93.3/hyperbrowser/client/managers/async_manager/agents/grok_computer_use.py +71 -0
- {hyperbrowser-0.93.2/hyperbrowser/client/managers/async_manager → hyperbrowser-0.93.3/hyperbrowser/client/managers/sync_manager}/agents/__init__.py +2 -0
- hyperbrowser-0.93.3/hyperbrowser/client/managers/sync_manager/agents/grok_computer_use.py +71 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/__init__.py +22 -0
- hyperbrowser-0.93.3/hyperbrowser/models/agents/grok_computer_use.py +150 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/consts.py +8 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/pyproject.toml +1 -1
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/LICENSE +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/README.md +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/__init__.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/async_client.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/base.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/agents/browser_use.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/agents/claude_computer_use.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/agents/cua.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/agents/gemini_computer_use.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/agents/hyper_agent.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/computer_action.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/crawl.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/extension.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/extract.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/profile.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/sandbox.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/sandboxes/__init__.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_files.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_processes.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_terminal.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_transport.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/scrape.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/session.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/team.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/volume.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/web/__init__.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/web/batch_fetch.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/web/crawl.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sandboxes/__init__.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sandboxes/image_build.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sandboxes/shared.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/agents/browser_use.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/agents/claude_computer_use.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/agents/cua.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/agents/gemini_computer_use.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/agents/hyper_agent.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/computer_action.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/crawl.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/extension.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/extract.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/profile.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/sandbox.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/sandboxes/__init__.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_files.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_processes.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_terminal.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_transport.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/scrape.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/session.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/team.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/volume.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/web/__init__.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/web/batch_fetch.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/web/crawl.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/sync.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/config.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/exceptions.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/_parsers.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/agents/browser_use.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/agents/claude_computer_use.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/agents/cua.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/agents/gemini_computer_use.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/agents/hyper_agent.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/computer_action.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/crawl.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/extension.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/extract.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/profile.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/sandbox.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/scrape.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/session.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/team.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/volume.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/web/batch_fetch.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/web/branding.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/web/common.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/web/crawl.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/web/fetch.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/web/search.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/sandbox_common.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/tools/__init__.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/tools/anthropic.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/tools/openai.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/tools/schema.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/transport/async_transport.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/transport/base.py +0 -0
- {hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/transport/sync.py +0 -0
|
@@ -3,6 +3,7 @@ from .cua import CuaManager
|
|
|
3
3
|
from .claude_computer_use import ClaudeComputerUseManager
|
|
4
4
|
from .hyper_agent import HyperAgentManager
|
|
5
5
|
from .gemini_computer_use import GeminiComputerUseManager
|
|
6
|
+
from .grok_computer_use import GrokComputerUseManager
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
class Agents:
|
|
@@ -12,3 +13,4 @@ class Agents:
|
|
|
12
13
|
self.claude_computer_use = ClaudeComputerUseManager(client)
|
|
13
14
|
self.hyper_agent = HyperAgentManager(client)
|
|
14
15
|
self.gemini_computer_use = GeminiComputerUseManager(client)
|
|
16
|
+
self.grok_computer_use = GrokComputerUseManager(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
|
+
GrokComputerUseTaskResponse,
|
|
9
|
+
GrokComputerUseTaskStatusResponse,
|
|
10
|
+
StartGrokComputerUseTaskParams,
|
|
11
|
+
StartGrokComputerUseTaskResponse,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class GrokComputerUseManager:
|
|
16
|
+
def __init__(self, client):
|
|
17
|
+
self._client = client
|
|
18
|
+
|
|
19
|
+
async def start(
|
|
20
|
+
self, params: StartGrokComputerUseTaskParams
|
|
21
|
+
) -> StartGrokComputerUseTaskResponse:
|
|
22
|
+
response = await self._client.transport.post(
|
|
23
|
+
self._client._build_url("/task/grok-computer-use"),
|
|
24
|
+
data=params.model_dump(exclude_none=True, by_alias=True),
|
|
25
|
+
)
|
|
26
|
+
return StartGrokComputerUseTaskResponse(**response.data)
|
|
27
|
+
|
|
28
|
+
async def get(self, job_id: str) -> GrokComputerUseTaskResponse:
|
|
29
|
+
response = await self._client.transport.get(
|
|
30
|
+
self._client._build_url(f"/task/grok-computer-use/{job_id}")
|
|
31
|
+
)
|
|
32
|
+
return GrokComputerUseTaskResponse(**response.data)
|
|
33
|
+
|
|
34
|
+
async def get_status(self, job_id: str) -> GrokComputerUseTaskStatusResponse:
|
|
35
|
+
response = await self._client.transport.get(
|
|
36
|
+
self._client._build_url(f"/task/grok-computer-use/{job_id}/status")
|
|
37
|
+
)
|
|
38
|
+
return GrokComputerUseTaskStatusResponse(**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/grok-computer-use/{job_id}/stop")
|
|
43
|
+
)
|
|
44
|
+
return BasicResponse(**response.data)
|
|
45
|
+
|
|
46
|
+
async def start_and_wait(
|
|
47
|
+
self, params: StartGrokComputerUseTaskParams
|
|
48
|
+
) -> GrokComputerUseTaskResponse:
|
|
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 Grok 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 Grok Computer Use task job {job_id} after {POLLING_ATTEMPTS} attempts: {e}"
|
|
70
|
+
)
|
|
71
|
+
await asyncio.sleep(2)
|
|
@@ -3,6 +3,7 @@ from .cua import CuaManager
|
|
|
3
3
|
from .claude_computer_use import ClaudeComputerUseManager
|
|
4
4
|
from .hyper_agent import HyperAgentManager
|
|
5
5
|
from .gemini_computer_use import GeminiComputerUseManager
|
|
6
|
+
from .grok_computer_use import GrokComputerUseManager
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
class Agents:
|
|
@@ -12,3 +13,4 @@ class Agents:
|
|
|
12
13
|
self.claude_computer_use = ClaudeComputerUseManager(client)
|
|
13
14
|
self.hyper_agent = HyperAgentManager(client)
|
|
14
15
|
self.gemini_computer_use = GeminiComputerUseManager(client)
|
|
16
|
+
self.grok_computer_use = GrokComputerUseManager(client)
|
|
@@ -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
|
+
GrokComputerUseTaskResponse,
|
|
9
|
+
GrokComputerUseTaskStatusResponse,
|
|
10
|
+
StartGrokComputerUseTaskParams,
|
|
11
|
+
StartGrokComputerUseTaskResponse,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class GrokComputerUseManager:
|
|
16
|
+
def __init__(self, client):
|
|
17
|
+
self._client = client
|
|
18
|
+
|
|
19
|
+
def start(
|
|
20
|
+
self, params: StartGrokComputerUseTaskParams
|
|
21
|
+
) -> StartGrokComputerUseTaskResponse:
|
|
22
|
+
response = self._client.transport.post(
|
|
23
|
+
self._client._build_url("/task/grok-computer-use"),
|
|
24
|
+
data=params.model_dump(exclude_none=True, by_alias=True),
|
|
25
|
+
)
|
|
26
|
+
return StartGrokComputerUseTaskResponse(**response.data)
|
|
27
|
+
|
|
28
|
+
def get(self, job_id: str) -> GrokComputerUseTaskResponse:
|
|
29
|
+
response = self._client.transport.get(
|
|
30
|
+
self._client._build_url(f"/task/grok-computer-use/{job_id}")
|
|
31
|
+
)
|
|
32
|
+
return GrokComputerUseTaskResponse(**response.data)
|
|
33
|
+
|
|
34
|
+
def get_status(self, job_id: str) -> GrokComputerUseTaskStatusResponse:
|
|
35
|
+
response = self._client.transport.get(
|
|
36
|
+
self._client._build_url(f"/task/grok-computer-use/{job_id}/status")
|
|
37
|
+
)
|
|
38
|
+
return GrokComputerUseTaskStatusResponse(**response.data)
|
|
39
|
+
|
|
40
|
+
def stop(self, job_id: str) -> BasicResponse:
|
|
41
|
+
response = self._client.transport.put(
|
|
42
|
+
self._client._build_url(f"/task/grok-computer-use/{job_id}/stop")
|
|
43
|
+
)
|
|
44
|
+
return BasicResponse(**response.data)
|
|
45
|
+
|
|
46
|
+
def start_and_wait(
|
|
47
|
+
self, params: StartGrokComputerUseTaskParams
|
|
48
|
+
) -> GrokComputerUseTaskResponse:
|
|
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 Grok 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 Grok Computer Use task job {job_id} after {POLLING_ATTEMPTS} attempts: {e}"
|
|
70
|
+
)
|
|
71
|
+
time.sleep(2)
|
|
@@ -117,6 +117,16 @@ from .agents.gemini_computer_use import (
|
|
|
117
117
|
StartGeminiComputerUseTaskResponse,
|
|
118
118
|
GeminiComputerUseApiKeys,
|
|
119
119
|
)
|
|
120
|
+
from .agents.grok_computer_use import (
|
|
121
|
+
GrokComputerUseTaskStatus,
|
|
122
|
+
GrokComputerUseStepResponse,
|
|
123
|
+
GrokComputerUseTaskData,
|
|
124
|
+
GrokComputerUseTaskResponse,
|
|
125
|
+
GrokComputerUseTaskStatusResponse,
|
|
126
|
+
StartGrokComputerUseTaskParams,
|
|
127
|
+
StartGrokComputerUseTaskResponse,
|
|
128
|
+
GrokComputerUseApiKeys,
|
|
129
|
+
)
|
|
120
130
|
from .agents.cua import (
|
|
121
131
|
CuaTaskData,
|
|
122
132
|
CuaTaskResponse,
|
|
@@ -147,6 +157,8 @@ from .consts import (
|
|
|
147
157
|
BrowserUseLlm,
|
|
148
158
|
ClaudeComputerUseLlm,
|
|
149
159
|
CuaLlm,
|
|
160
|
+
GrokComputerUseLlm,
|
|
161
|
+
GrokReasoningEffort,
|
|
150
162
|
Country,
|
|
151
163
|
DownloadsStatus,
|
|
152
164
|
FetchScreenshotFormat,
|
|
@@ -458,6 +470,13 @@ __all__ = [
|
|
|
458
470
|
"GeminiComputerUseTaskStatusResponse",
|
|
459
471
|
"StartGeminiComputerUseTaskParams",
|
|
460
472
|
"StartGeminiComputerUseTaskResponse",
|
|
473
|
+
"GrokComputerUseTaskStatus",
|
|
474
|
+
"GrokComputerUseStepResponse",
|
|
475
|
+
"GrokComputerUseTaskData",
|
|
476
|
+
"GrokComputerUseTaskResponse",
|
|
477
|
+
"GrokComputerUseTaskStatusResponse",
|
|
478
|
+
"StartGrokComputerUseTaskParams",
|
|
479
|
+
"StartGrokComputerUseTaskResponse",
|
|
461
480
|
"CuaTaskStatus",
|
|
462
481
|
"CuaTaskData",
|
|
463
482
|
"CuaTaskResponse",
|
|
@@ -467,8 +486,11 @@ __all__ = [
|
|
|
467
486
|
"BrowserUseApiKeys",
|
|
468
487
|
"ClaudeComputerUseApiKeys",
|
|
469
488
|
"GeminiComputerUseApiKeys",
|
|
489
|
+
"GrokComputerUseApiKeys",
|
|
470
490
|
"CuaApiKeys",
|
|
471
491
|
"HyperAgentApiKeys",
|
|
492
|
+
"GrokComputerUseLlm",
|
|
493
|
+
"GrokReasoningEffort",
|
|
472
494
|
"HyperAgentOutputV110",
|
|
473
495
|
"HyperAgentStepV110",
|
|
474
496
|
# crawl
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
from typing import Any, Literal, Optional
|
|
2
|
+
|
|
3
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
4
|
+
|
|
5
|
+
from .cua import CuaStepIncompleteDetails, CuaStepReasoning, CuaStepResponseError
|
|
6
|
+
from ..session import CreateSessionParams
|
|
7
|
+
from ..consts import GrokComputerUseLlm, GrokReasoningEffort
|
|
8
|
+
|
|
9
|
+
GrokComputerUseTaskStatus = Literal[
|
|
10
|
+
"pending", "running", "completed", "failed", "stopped"
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class GrokComputerUseApiKeys(BaseModel):
|
|
15
|
+
"""
|
|
16
|
+
API keys for the Grok Computer Use task.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
model_config = ConfigDict(
|
|
20
|
+
populate_by_alias=True,
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
xai: Optional[str] = Field(default=None, serialization_alias="xai")
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class StartGrokComputerUseTaskParams(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
Parameters for creating a new Grok Computer Use task.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
model_config = ConfigDict(
|
|
32
|
+
populate_by_alias=True,
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
task: str
|
|
36
|
+
llm: Optional[GrokComputerUseLlm] = Field(default=None, serialization_alias="llm")
|
|
37
|
+
reasoning_effort: Optional[GrokReasoningEffort] = Field(
|
|
38
|
+
default=None, serialization_alias="reasoningEffort"
|
|
39
|
+
)
|
|
40
|
+
session_id: Optional[str] = Field(default=None, serialization_alias="sessionId")
|
|
41
|
+
max_failures: Optional[int] = Field(default=None, serialization_alias="maxFailures")
|
|
42
|
+
max_steps: Optional[int] = Field(default=None, serialization_alias="maxSteps")
|
|
43
|
+
keep_browser_open: Optional[bool] = Field(
|
|
44
|
+
default=None, serialization_alias="keepBrowserOpen"
|
|
45
|
+
)
|
|
46
|
+
session_options: Optional[CreateSessionParams] = Field(
|
|
47
|
+
default=None, serialization_alias="sessionOptions"
|
|
48
|
+
)
|
|
49
|
+
use_custom_api_keys: Optional[bool] = Field(
|
|
50
|
+
default=None, serialization_alias="useCustomApiKeys"
|
|
51
|
+
)
|
|
52
|
+
api_keys: Optional[GrokComputerUseApiKeys] = Field(
|
|
53
|
+
default=None, serialization_alias="apiKeys"
|
|
54
|
+
)
|
|
55
|
+
use_computer_action: Optional[bool] = Field(
|
|
56
|
+
default=None, serialization_alias="useComputerAction"
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class StartGrokComputerUseTaskResponse(BaseModel):
|
|
61
|
+
"""
|
|
62
|
+
Response from starting a Grok Computer Use task.
|
|
63
|
+
"""
|
|
64
|
+
|
|
65
|
+
model_config = ConfigDict(
|
|
66
|
+
populate_by_alias=True,
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
job_id: str = Field(alias="jobId")
|
|
70
|
+
live_url: Optional[str] = Field(default=None, alias="liveUrl")
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class GrokComputerUseTaskStatusResponse(BaseModel):
|
|
74
|
+
"""
|
|
75
|
+
Response from getting a Grok Computer Use task status.
|
|
76
|
+
"""
|
|
77
|
+
|
|
78
|
+
model_config = ConfigDict(
|
|
79
|
+
populate_by_alias=True,
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
status: GrokComputerUseTaskStatus
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
class GrokComputerUseStepResponse(BaseModel):
|
|
86
|
+
"""
|
|
87
|
+
Response from a single Grok Computer Use step.
|
|
88
|
+
"""
|
|
89
|
+
|
|
90
|
+
model_config = ConfigDict(
|
|
91
|
+
populate_by_alias=True,
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
created_at: Optional[int] = Field(default=None, serialization_alias="created_at")
|
|
95
|
+
completed_at: Optional[int] = Field(
|
|
96
|
+
default=None, serialization_alias="completed_at"
|
|
97
|
+
)
|
|
98
|
+
output_text: Optional[str] = Field(default=None, serialization_alias="output_text")
|
|
99
|
+
error: Optional[CuaStepResponseError] = Field(
|
|
100
|
+
default=None, serialization_alias="error"
|
|
101
|
+
)
|
|
102
|
+
incomplete_details: Optional[CuaStepIncompleteDetails] = Field(
|
|
103
|
+
default=None, serialization_alias="incomplete_details"
|
|
104
|
+
)
|
|
105
|
+
model: Optional[str] = Field(default=None, serialization_alias="model")
|
|
106
|
+
output: Optional[list[Any]] = Field(default=None, serialization_alias="output")
|
|
107
|
+
reasoning: Optional[CuaStepReasoning] = Field(
|
|
108
|
+
default=None, serialization_alias="reasoning"
|
|
109
|
+
)
|
|
110
|
+
status: Optional[str] = Field(default=None, serialization_alias="status")
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
class GrokComputerUseTaskData(BaseModel):
|
|
114
|
+
model_config = ConfigDict(
|
|
115
|
+
populate_by_alias=True,
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
steps: list[GrokComputerUseStepResponse]
|
|
119
|
+
final_result: Optional[str] = Field(default=None, alias="finalResult")
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class GrokComputerUseTaskMetadata(BaseModel):
|
|
123
|
+
model_config = ConfigDict(
|
|
124
|
+
populate_by_alias=True,
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
input_tokens: Optional[int] = Field(default=None, alias="inputTokens")
|
|
128
|
+
output_tokens: Optional[int] = Field(default=None, alias="outputTokens")
|
|
129
|
+
num_task_steps_completed: Optional[int] = Field(
|
|
130
|
+
default=None, alias="numTaskStepsCompleted"
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
class GrokComputerUseTaskResponse(BaseModel):
|
|
135
|
+
"""
|
|
136
|
+
Response from a Grok Computer Use task.
|
|
137
|
+
"""
|
|
138
|
+
|
|
139
|
+
model_config = ConfigDict(
|
|
140
|
+
populate_by_alias=True,
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
job_id: str = Field(alias="jobId")
|
|
144
|
+
status: GrokComputerUseTaskStatus
|
|
145
|
+
metadata: Optional[GrokComputerUseTaskMetadata] = Field(
|
|
146
|
+
default=None, alias="metadata"
|
|
147
|
+
)
|
|
148
|
+
data: Optional[GrokComputerUseTaskData] = Field(default=None, alias="data")
|
|
149
|
+
error: Optional[str] = Field(default=None, alias="error")
|
|
150
|
+
live_url: Optional[str] = Field(default=None, alias="liveUrl")
|
|
@@ -86,10 +86,18 @@ CuaLlm = Literal[
|
|
|
86
86
|
"gpt-5.4-mini",
|
|
87
87
|
]
|
|
88
88
|
GeminiComputerUseLlm = Literal[
|
|
89
|
+
"gemini-3.6-flash",
|
|
89
90
|
"gemini-3.5-flash",
|
|
91
|
+
"gemini-3.5-flash-lite",
|
|
90
92
|
"gemini-3-flash-preview",
|
|
91
93
|
"gemini-2.5-computer-use-preview-10-2025",
|
|
92
94
|
]
|
|
95
|
+
GrokComputerUseLlm = Literal["grok-4.5",]
|
|
96
|
+
GrokReasoningEffort = Literal[
|
|
97
|
+
"low",
|
|
98
|
+
"medium",
|
|
99
|
+
"high",
|
|
100
|
+
]
|
|
93
101
|
SessionRegion = Literal[
|
|
94
102
|
"us-central",
|
|
95
103
|
"asia-south",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/agents/cua.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/crawl.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/extension.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/extract.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/profile.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/sandbox.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/scrape.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/session.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/team.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/volume.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/async_manager/web/crawl.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sandboxes/__init__.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sandboxes/image_build.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sandboxes/shared.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/agents/cua.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/crawl.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/extension.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/extract.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/profile.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/sandbox.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/scrape.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/session.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/team.py
RENAMED
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/volume.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/client/managers/sync_manager/web/crawl.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/agents/claude_computer_use.py
RENAMED
|
File without changes
|
|
File without changes
|
{hyperbrowser-0.93.2 → hyperbrowser-0.93.3}/hyperbrowser/models/agents/gemini_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
|
|
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
|