hyperbrowser 1.4.4__tar.gz → 1.6.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.
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/PKG-INFO +1 -1
- {hyperbrowser-1.4.4/hyperbrowser/client/managers/sync_manager → hyperbrowser-1.6.0/hyperbrowser/client/managers/async_manager}/agents/__init__.py +2 -0
- hyperbrowser-1.6.0/hyperbrowser/client/managers/async_manager/agents/jev_computer_use.py +84 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/sandbox.py +21 -0
- {hyperbrowser-1.4.4/hyperbrowser/client/managers/async_manager → hyperbrowser-1.6.0/hyperbrowser/client/managers/sync_manager}/agents/__init__.py +2 -0
- hyperbrowser-1.6.0/hyperbrowser/client/managers/sync_manager/agents/jev_computer_use.py +84 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/sandbox.py +21 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/__init__.py +20 -0
- hyperbrowser-1.6.0/hyperbrowser/models/agents/jev_computer_use.py +119 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/consts.py +8 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/sandbox.py +7 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/types/__init__.py +4 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/types/agents.py +26 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/types/sandbox.py +3 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/pyproject.toml +1 -1
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/LICENSE +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/README.md +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/__init__.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/_request.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/async_client.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/base.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/agents/browser_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/agents/claude_computer_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/agents/cua.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/agents/gemini_computer_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/agents/grok_computer_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/agents/hyper_agent.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/agents/meta_computer_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/computer_action.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/crawl.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/extension.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/extract.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/profile.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/sandboxes/__init__.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_files.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_processes.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_terminal.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_transport.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/scrape.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/session.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/team.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/volume.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/web/__init__.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/web/batch_fetch.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/web/crawl.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sandboxes/__init__.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sandboxes/dockerfile_analysis.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sandboxes/dockerignore.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sandboxes/image_build.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sandboxes/shared.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/agents/browser_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/agents/claude_computer_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/agents/cua.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/agents/gemini_computer_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/agents/grok_computer_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/agents/hyper_agent.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/agents/meta_computer_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/computer_action.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/crawl.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/extension.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/extract.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/profile.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/sandboxes/__init__.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_files.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_processes.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_terminal.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_transport.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/scrape.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/session.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/team.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/volume.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/web/__init__.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/web/batch_fetch.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/web/crawl.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/sync.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/config.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/exceptions.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/_parsers.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/agents/browser_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/agents/claude_computer_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/agents/cua.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/agents/gemini_computer_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/agents/grok_computer_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/agents/hyper_agent.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/agents/meta_computer_use.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/computer_action.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/crawl.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/extension.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/extract.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/profile.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/scrape.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/session.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/team.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/volume.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/web/batch_fetch.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/web/branding.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/web/common.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/web/crawl.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/web/fetch.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/models/web/search.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/py.typed +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/sandbox_common.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/tools/__init__.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/tools/anthropic.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/tools/openai.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/tools/schema.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/transport/async_transport.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/transport/base.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/transport/sync.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/types/_json.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/types/computer_action.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/types/crawl.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/types/extension.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/types/extract.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/types/profile.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/types/scrape.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/types/session.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/types/volume.py +0 -0
- {hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/types/web.py +0 -0
|
@@ -4,6 +4,7 @@ from .claude_computer_use import ClaudeComputerUseManager
|
|
|
4
4
|
from .hyper_agent import HyperAgentManager
|
|
5
5
|
from .gemini_computer_use import GeminiComputerUseManager
|
|
6
6
|
from .grok_computer_use import GrokComputerUseManager
|
|
7
|
+
from .jev_computer_use import JevComputerUseManager
|
|
7
8
|
from .meta_computer_use import MetaComputerUseManager
|
|
8
9
|
|
|
9
10
|
|
|
@@ -15,4 +16,5 @@ class Agents:
|
|
|
15
16
|
self.hyper_agent = HyperAgentManager(client)
|
|
16
17
|
self.gemini_computer_use = GeminiComputerUseManager(client)
|
|
17
18
|
self.grok_computer_use = GrokComputerUseManager(client)
|
|
19
|
+
self.jev_computer_use = JevComputerUseManager(client)
|
|
18
20
|
self.meta_computer_use = MetaComputerUseManager(client)
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
from typing import Union
|
|
3
|
+
|
|
4
|
+
from hyperbrowser.client._request import dump_request
|
|
5
|
+
from hyperbrowser.exceptions import HyperbrowserError
|
|
6
|
+
from hyperbrowser.types import (
|
|
7
|
+
StartJevComputerUseTaskParams as StartJevComputerUseTaskParamsDict,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
from .....models import (
|
|
11
|
+
POLLING_ATTEMPTS,
|
|
12
|
+
BasicResponse,
|
|
13
|
+
JevComputerUseTaskResponse,
|
|
14
|
+
JevComputerUseTaskStatusResponse,
|
|
15
|
+
StartJevComputerUseTaskParams,
|
|
16
|
+
StartJevComputerUseTaskResponse,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class JevComputerUseManager:
|
|
21
|
+
def __init__(self, client):
|
|
22
|
+
self._client = client
|
|
23
|
+
|
|
24
|
+
async def start(
|
|
25
|
+
self,
|
|
26
|
+
params: Union[
|
|
27
|
+
StartJevComputerUseTaskParamsDict,
|
|
28
|
+
StartJevComputerUseTaskParams,
|
|
29
|
+
],
|
|
30
|
+
) -> StartJevComputerUseTaskResponse:
|
|
31
|
+
response = await self._client.transport.post(
|
|
32
|
+
self._client._build_url("/task/jev"),
|
|
33
|
+
data=dump_request(params, StartJevComputerUseTaskParams),
|
|
34
|
+
)
|
|
35
|
+
return StartJevComputerUseTaskResponse(**response.data)
|
|
36
|
+
|
|
37
|
+
async def get(self, job_id: str) -> JevComputerUseTaskResponse:
|
|
38
|
+
response = await self._client.transport.get(
|
|
39
|
+
self._client._build_url(f"/task/jev/{job_id}")
|
|
40
|
+
)
|
|
41
|
+
return JevComputerUseTaskResponse(**response.data)
|
|
42
|
+
|
|
43
|
+
async def get_status(self, job_id: str) -> JevComputerUseTaskStatusResponse:
|
|
44
|
+
response = await self._client.transport.get(
|
|
45
|
+
self._client._build_url(f"/task/jev/{job_id}/status")
|
|
46
|
+
)
|
|
47
|
+
return JevComputerUseTaskStatusResponse(**response.data)
|
|
48
|
+
|
|
49
|
+
async def stop(self, job_id: str) -> BasicResponse:
|
|
50
|
+
response = await self._client.transport.put(
|
|
51
|
+
self._client._build_url(f"/task/jev/{job_id}/stop")
|
|
52
|
+
)
|
|
53
|
+
return BasicResponse(**response.data)
|
|
54
|
+
|
|
55
|
+
async def start_and_wait(
|
|
56
|
+
self,
|
|
57
|
+
params: Union[
|
|
58
|
+
StartJevComputerUseTaskParamsDict,
|
|
59
|
+
StartJevComputerUseTaskParams,
|
|
60
|
+
],
|
|
61
|
+
) -> JevComputerUseTaskResponse:
|
|
62
|
+
job_start_resp = await self.start(params)
|
|
63
|
+
job_id = job_start_resp.job_id
|
|
64
|
+
if not job_id:
|
|
65
|
+
raise HyperbrowserError("Failed to start Jev Computer Use task job")
|
|
66
|
+
|
|
67
|
+
failures = 0
|
|
68
|
+
while True:
|
|
69
|
+
try:
|
|
70
|
+
job_response = await self.get_status(job_id)
|
|
71
|
+
if (
|
|
72
|
+
job_response.status == "completed"
|
|
73
|
+
or job_response.status == "failed"
|
|
74
|
+
or job_response.status == "stopped"
|
|
75
|
+
):
|
|
76
|
+
return await self.get(job_id)
|
|
77
|
+
failures = 0
|
|
78
|
+
except Exception as e:
|
|
79
|
+
failures += 1
|
|
80
|
+
if failures >= POLLING_ATTEMPTS:
|
|
81
|
+
raise HyperbrowserError(
|
|
82
|
+
f"Failed to poll Jev Computer Use task job {job_id} after {POLLING_ATTEMPTS} attempts: {e}"
|
|
83
|
+
)
|
|
84
|
+
await asyncio.sleep(2)
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/sandbox.py
RENAMED
|
@@ -583,6 +583,9 @@ class SandboxManager:
|
|
|
583
583
|
platform: str = IMAGE_BUILD_SOURCE_PLATFORM,
|
|
584
584
|
image_init: Optional[Union[SandboxImageInitDict, SandboxImageInit]] = None,
|
|
585
585
|
image_config_user: Optional[str] = None,
|
|
586
|
+
builder_cpus: Optional[int] = None,
|
|
587
|
+
builder_memory_mib: Optional[int] = None,
|
|
588
|
+
builder_scratch_mib: Optional[int] = None,
|
|
586
589
|
wait: bool = True,
|
|
587
590
|
poll_interval: float = 3.0,
|
|
588
591
|
wait_timeout: Optional[float] = 35 * 60,
|
|
@@ -652,6 +655,9 @@ class SandboxManager:
|
|
|
652
655
|
image_config_user=normalized_image_config_user,
|
|
653
656
|
image_init=normalized_image_init,
|
|
654
657
|
docker_image_manifest=packaged.manifest,
|
|
658
|
+
builder_cpus=builder_cpus,
|
|
659
|
+
builder_memory_mib=builder_memory_mib,
|
|
660
|
+
builder_scratch_mib=builder_scratch_mib,
|
|
655
661
|
)
|
|
656
662
|
)
|
|
657
663
|
build_id = create_result.build.id
|
|
@@ -719,6 +725,9 @@ class SandboxManager:
|
|
|
719
725
|
remote_full_context: bool,
|
|
720
726
|
image_init: Optional[Union[SandboxImageInitDict, SandboxImageInit]],
|
|
721
727
|
image_config_user: Optional[str],
|
|
728
|
+
builder_cpus: Optional[int],
|
|
729
|
+
builder_memory_mib: Optional[int],
|
|
730
|
+
builder_scratch_mib: Optional[int],
|
|
722
731
|
wait: bool,
|
|
723
732
|
poll_interval: float,
|
|
724
733
|
wait_timeout: Optional[float],
|
|
@@ -752,6 +761,9 @@ class SandboxManager:
|
|
|
752
761
|
image_config_user=image_config_user,
|
|
753
762
|
image_init=normalized_image_init,
|
|
754
763
|
context_manifest=packaged.manifest,
|
|
764
|
+
builder_cpus=builder_cpus,
|
|
765
|
+
builder_memory_mib=builder_memory_mib,
|
|
766
|
+
builder_scratch_mib=builder_scratch_mib,
|
|
755
767
|
)
|
|
756
768
|
)
|
|
757
769
|
build_id = create_result.build.id
|
|
@@ -794,6 +806,9 @@ class SandboxManager:
|
|
|
794
806
|
build_args: Optional[Dict[str, str]] = None,
|
|
795
807
|
image_init: Optional[Union[SandboxImageInitDict, SandboxImageInit]] = None,
|
|
796
808
|
image_config_user: Optional[str] = None,
|
|
809
|
+
builder_cpus: Optional[int] = None,
|
|
810
|
+
builder_memory_mib: Optional[int] = None,
|
|
811
|
+
builder_scratch_mib: Optional[int] = None,
|
|
797
812
|
wait: bool = True,
|
|
798
813
|
poll_interval: float = 3.0,
|
|
799
814
|
wait_timeout: Optional[float] = 35 * 60,
|
|
@@ -814,6 +829,9 @@ class SandboxManager:
|
|
|
814
829
|
remote_full_context=remote_full_context,
|
|
815
830
|
image_init=image_init,
|
|
816
831
|
image_config_user=image_config_user,
|
|
832
|
+
builder_cpus=builder_cpus,
|
|
833
|
+
builder_memory_mib=builder_memory_mib,
|
|
834
|
+
builder_scratch_mib=builder_scratch_mib,
|
|
817
835
|
wait=wait,
|
|
818
836
|
poll_interval=poll_interval,
|
|
819
837
|
wait_timeout=wait_timeout,
|
|
@@ -837,6 +855,9 @@ class SandboxManager:
|
|
|
837
855
|
platform=platform,
|
|
838
856
|
image_init=image_init,
|
|
839
857
|
image_config_user=image_config_user,
|
|
858
|
+
builder_cpus=builder_cpus,
|
|
859
|
+
builder_memory_mib=builder_memory_mib,
|
|
860
|
+
builder_scratch_mib=builder_scratch_mib,
|
|
840
861
|
wait=wait,
|
|
841
862
|
poll_interval=poll_interval,
|
|
842
863
|
wait_timeout=wait_timeout,
|
|
@@ -4,6 +4,7 @@ from .claude_computer_use import ClaudeComputerUseManager
|
|
|
4
4
|
from .hyper_agent import HyperAgentManager
|
|
5
5
|
from .gemini_computer_use import GeminiComputerUseManager
|
|
6
6
|
from .grok_computer_use import GrokComputerUseManager
|
|
7
|
+
from .jev_computer_use import JevComputerUseManager
|
|
7
8
|
from .meta_computer_use import MetaComputerUseManager
|
|
8
9
|
|
|
9
10
|
|
|
@@ -15,4 +16,5 @@ class Agents:
|
|
|
15
16
|
self.hyper_agent = HyperAgentManager(client)
|
|
16
17
|
self.gemini_computer_use = GeminiComputerUseManager(client)
|
|
17
18
|
self.grok_computer_use = GrokComputerUseManager(client)
|
|
19
|
+
self.jev_computer_use = JevComputerUseManager(client)
|
|
18
20
|
self.meta_computer_use = MetaComputerUseManager(client)
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import time
|
|
2
|
+
from typing import Union
|
|
3
|
+
|
|
4
|
+
from hyperbrowser.client._request import dump_request
|
|
5
|
+
from hyperbrowser.exceptions import HyperbrowserError
|
|
6
|
+
from hyperbrowser.types import (
|
|
7
|
+
StartJevComputerUseTaskParams as StartJevComputerUseTaskParamsDict,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
from .....models import (
|
|
11
|
+
POLLING_ATTEMPTS,
|
|
12
|
+
BasicResponse,
|
|
13
|
+
JevComputerUseTaskResponse,
|
|
14
|
+
JevComputerUseTaskStatusResponse,
|
|
15
|
+
StartJevComputerUseTaskParams,
|
|
16
|
+
StartJevComputerUseTaskResponse,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class JevComputerUseManager:
|
|
21
|
+
def __init__(self, client):
|
|
22
|
+
self._client = client
|
|
23
|
+
|
|
24
|
+
def start(
|
|
25
|
+
self,
|
|
26
|
+
params: Union[
|
|
27
|
+
StartJevComputerUseTaskParamsDict,
|
|
28
|
+
StartJevComputerUseTaskParams,
|
|
29
|
+
],
|
|
30
|
+
) -> StartJevComputerUseTaskResponse:
|
|
31
|
+
response = self._client.transport.post(
|
|
32
|
+
self._client._build_url("/task/jev"),
|
|
33
|
+
data=dump_request(params, StartJevComputerUseTaskParams),
|
|
34
|
+
)
|
|
35
|
+
return StartJevComputerUseTaskResponse(**response.data)
|
|
36
|
+
|
|
37
|
+
def get(self, job_id: str) -> JevComputerUseTaskResponse:
|
|
38
|
+
response = self._client.transport.get(
|
|
39
|
+
self._client._build_url(f"/task/jev/{job_id}")
|
|
40
|
+
)
|
|
41
|
+
return JevComputerUseTaskResponse(**response.data)
|
|
42
|
+
|
|
43
|
+
def get_status(self, job_id: str) -> JevComputerUseTaskStatusResponse:
|
|
44
|
+
response = self._client.transport.get(
|
|
45
|
+
self._client._build_url(f"/task/jev/{job_id}/status")
|
|
46
|
+
)
|
|
47
|
+
return JevComputerUseTaskStatusResponse(**response.data)
|
|
48
|
+
|
|
49
|
+
def stop(self, job_id: str) -> BasicResponse:
|
|
50
|
+
response = self._client.transport.put(
|
|
51
|
+
self._client._build_url(f"/task/jev/{job_id}/stop")
|
|
52
|
+
)
|
|
53
|
+
return BasicResponse(**response.data)
|
|
54
|
+
|
|
55
|
+
def start_and_wait(
|
|
56
|
+
self,
|
|
57
|
+
params: Union[
|
|
58
|
+
StartJevComputerUseTaskParamsDict,
|
|
59
|
+
StartJevComputerUseTaskParams,
|
|
60
|
+
],
|
|
61
|
+
) -> JevComputerUseTaskResponse:
|
|
62
|
+
job_start_resp = self.start(params)
|
|
63
|
+
job_id = job_start_resp.job_id
|
|
64
|
+
if not job_id:
|
|
65
|
+
raise HyperbrowserError("Failed to start Jev Computer Use task job")
|
|
66
|
+
|
|
67
|
+
failures = 0
|
|
68
|
+
while True:
|
|
69
|
+
try:
|
|
70
|
+
job_response = self.get_status(job_id)
|
|
71
|
+
if (
|
|
72
|
+
job_response.status == "completed"
|
|
73
|
+
or job_response.status == "failed"
|
|
74
|
+
or job_response.status == "stopped"
|
|
75
|
+
):
|
|
76
|
+
return self.get(job_id)
|
|
77
|
+
failures = 0
|
|
78
|
+
except Exception as e:
|
|
79
|
+
failures += 1
|
|
80
|
+
if failures >= POLLING_ATTEMPTS:
|
|
81
|
+
raise HyperbrowserError(
|
|
82
|
+
f"Failed to poll Jev Computer Use task job {job_id} after {POLLING_ATTEMPTS} attempts: {e}"
|
|
83
|
+
)
|
|
84
|
+
time.sleep(2)
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/sandbox.py
RENAMED
|
@@ -575,6 +575,9 @@ class SandboxManager:
|
|
|
575
575
|
platform: str = IMAGE_BUILD_SOURCE_PLATFORM,
|
|
576
576
|
image_init: Optional[Union[SandboxImageInitDict, SandboxImageInit]] = None,
|
|
577
577
|
image_config_user: Optional[str] = None,
|
|
578
|
+
builder_cpus: Optional[int] = None,
|
|
579
|
+
builder_memory_mib: Optional[int] = None,
|
|
580
|
+
builder_scratch_mib: Optional[int] = None,
|
|
578
581
|
wait: bool = True,
|
|
579
582
|
poll_interval: float = 3.0,
|
|
580
583
|
wait_timeout: Optional[float] = 35 * 60,
|
|
@@ -642,6 +645,9 @@ class SandboxManager:
|
|
|
642
645
|
image_config_user=normalized_image_config_user,
|
|
643
646
|
image_init=normalized_image_init,
|
|
644
647
|
docker_image_manifest=packaged.manifest,
|
|
648
|
+
builder_cpus=builder_cpus,
|
|
649
|
+
builder_memory_mib=builder_memory_mib,
|
|
650
|
+
builder_scratch_mib=builder_scratch_mib,
|
|
645
651
|
)
|
|
646
652
|
)
|
|
647
653
|
build_id = create_result.build.id
|
|
@@ -705,6 +711,9 @@ class SandboxManager:
|
|
|
705
711
|
remote_full_context: bool,
|
|
706
712
|
image_init: Optional[Union[SandboxImageInitDict, SandboxImageInit]],
|
|
707
713
|
image_config_user: Optional[str],
|
|
714
|
+
builder_cpus: Optional[int],
|
|
715
|
+
builder_memory_mib: Optional[int],
|
|
716
|
+
builder_scratch_mib: Optional[int],
|
|
708
717
|
wait: bool,
|
|
709
718
|
poll_interval: float,
|
|
710
719
|
wait_timeout: Optional[float],
|
|
@@ -737,6 +746,9 @@ class SandboxManager:
|
|
|
737
746
|
image_config_user=image_config_user,
|
|
738
747
|
image_init=normalized_image_init,
|
|
739
748
|
context_manifest=packaged.manifest,
|
|
749
|
+
builder_cpus=builder_cpus,
|
|
750
|
+
builder_memory_mib=builder_memory_mib,
|
|
751
|
+
builder_scratch_mib=builder_scratch_mib,
|
|
740
752
|
)
|
|
741
753
|
)
|
|
742
754
|
build_id = create_result.build.id
|
|
@@ -778,6 +790,9 @@ class SandboxManager:
|
|
|
778
790
|
build_args: Optional[Dict[str, str]] = None,
|
|
779
791
|
image_init: Optional[Union[SandboxImageInitDict, SandboxImageInit]] = None,
|
|
780
792
|
image_config_user: Optional[str] = None,
|
|
793
|
+
builder_cpus: Optional[int] = None,
|
|
794
|
+
builder_memory_mib: Optional[int] = None,
|
|
795
|
+
builder_scratch_mib: Optional[int] = None,
|
|
781
796
|
wait: bool = True,
|
|
782
797
|
poll_interval: float = 3.0,
|
|
783
798
|
wait_timeout: Optional[float] = 35 * 60,
|
|
@@ -798,6 +813,9 @@ class SandboxManager:
|
|
|
798
813
|
remote_full_context=remote_full_context,
|
|
799
814
|
image_init=image_init,
|
|
800
815
|
image_config_user=image_config_user,
|
|
816
|
+
builder_cpus=builder_cpus,
|
|
817
|
+
builder_memory_mib=builder_memory_mib,
|
|
818
|
+
builder_scratch_mib=builder_scratch_mib,
|
|
801
819
|
wait=wait,
|
|
802
820
|
poll_interval=poll_interval,
|
|
803
821
|
wait_timeout=wait_timeout,
|
|
@@ -820,6 +838,9 @@ class SandboxManager:
|
|
|
820
838
|
platform=platform,
|
|
821
839
|
image_init=image_init,
|
|
822
840
|
image_config_user=image_config_user,
|
|
841
|
+
builder_cpus=builder_cpus,
|
|
842
|
+
builder_memory_mib=builder_memory_mib,
|
|
843
|
+
builder_scratch_mib=builder_scratch_mib,
|
|
823
844
|
wait=wait,
|
|
824
845
|
poll_interval=poll_interval,
|
|
825
846
|
wait_timeout=wait_timeout,
|
|
@@ -138,6 +138,15 @@ from .agents.meta_computer_use import (
|
|
|
138
138
|
StartMetaComputerUseTaskResponse,
|
|
139
139
|
MetaComputerUseApiKeys,
|
|
140
140
|
)
|
|
141
|
+
from .agents.jev_computer_use import (
|
|
142
|
+
JevComputerUseTaskStatus,
|
|
143
|
+
JevComputerUseTaskData,
|
|
144
|
+
JevComputerUseTaskResponse,
|
|
145
|
+
JevComputerUseTaskStatusResponse,
|
|
146
|
+
StartJevComputerUseTaskParams,
|
|
147
|
+
StartJevComputerUseTaskResponse,
|
|
148
|
+
JevComputerUseApiKeys,
|
|
149
|
+
)
|
|
141
150
|
from .agents.cua import (
|
|
142
151
|
CuaTaskData,
|
|
143
152
|
CuaTaskResponse,
|
|
@@ -175,6 +184,8 @@ from .consts import (
|
|
|
175
184
|
GrokReasoningEffort,
|
|
176
185
|
MetaComputerUseLlm,
|
|
177
186
|
MetaReasoningEffort,
|
|
187
|
+
JevComputerUseLlm,
|
|
188
|
+
JevTextLlm,
|
|
178
189
|
Country,
|
|
179
190
|
DownloadsStatus,
|
|
180
191
|
FetchScreenshotFormat,
|
|
@@ -521,6 +532,12 @@ __all__ = [
|
|
|
521
532
|
"MetaComputerUseTaskStatusResponse",
|
|
522
533
|
"StartMetaComputerUseTaskParams",
|
|
523
534
|
"StartMetaComputerUseTaskResponse",
|
|
535
|
+
"JevComputerUseTaskStatus",
|
|
536
|
+
"JevComputerUseTaskData",
|
|
537
|
+
"JevComputerUseTaskResponse",
|
|
538
|
+
"JevComputerUseTaskStatusResponse",
|
|
539
|
+
"StartJevComputerUseTaskParams",
|
|
540
|
+
"StartJevComputerUseTaskResponse",
|
|
524
541
|
"CuaTaskStatus",
|
|
525
542
|
"CuaTaskData",
|
|
526
543
|
"CuaTaskResponse",
|
|
@@ -531,6 +548,7 @@ __all__ = [
|
|
|
531
548
|
"ClaudeComputerUseApiKeys",
|
|
532
549
|
"GeminiComputerUseApiKeys",
|
|
533
550
|
"GrokComputerUseApiKeys",
|
|
551
|
+
"JevComputerUseApiKeys",
|
|
534
552
|
"MetaComputerUseApiKeys",
|
|
535
553
|
"CuaApiKeys",
|
|
536
554
|
"CuaBaseUrls",
|
|
@@ -539,6 +557,8 @@ __all__ = [
|
|
|
539
557
|
"GrokReasoningEffort",
|
|
540
558
|
"MetaComputerUseLlm",
|
|
541
559
|
"MetaReasoningEffort",
|
|
560
|
+
"JevComputerUseLlm",
|
|
561
|
+
"JevTextLlm",
|
|
542
562
|
"HyperAgentOutputV110",
|
|
543
563
|
"HyperAgentStepV110",
|
|
544
564
|
# crawl
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any, Dict, List, Literal, Optional
|
|
4
|
+
|
|
5
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
6
|
+
|
|
7
|
+
from ..session import CreateSessionParams
|
|
8
|
+
from ..consts import JevComputerUseLlm, JevTextLlm
|
|
9
|
+
|
|
10
|
+
JevComputerUseTaskStatus = Literal[
|
|
11
|
+
"pending", "running", "completed", "failed", "stopped"
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class JevComputerUseApiKeys(BaseModel):
|
|
16
|
+
"""
|
|
17
|
+
API keys for the Jev Computer Use task.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
model_config = ConfigDict(
|
|
21
|
+
populate_by_alias=True,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
jev: Optional[str] = Field(default=None, serialization_alias="jev")
|
|
25
|
+
google: Optional[str] = Field(default=None, serialization_alias="google")
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class StartJevComputerUseTaskParams(BaseModel):
|
|
29
|
+
"""
|
|
30
|
+
Parameters for creating a new Jev Computer Use task.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
model_config = ConfigDict(
|
|
34
|
+
populate_by_alias=True,
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
task: str
|
|
38
|
+
llm: Optional[JevComputerUseLlm] = Field(default=None, serialization_alias="llm")
|
|
39
|
+
text_llm: Optional[JevTextLlm] = Field(default=None, serialization_alias="textLlm")
|
|
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[JevComputerUseApiKeys] = Field(
|
|
53
|
+
default=None, serialization_alias="apiKeys"
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class StartJevComputerUseTaskResponse(BaseModel):
|
|
58
|
+
"""
|
|
59
|
+
Response from starting a Jev Computer Use task.
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
model_config = ConfigDict(
|
|
63
|
+
populate_by_alias=True,
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
job_id: str = Field(alias="jobId")
|
|
67
|
+
live_url: Optional[str] = Field(default=None, alias="liveUrl")
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class JevComputerUseTaskStatusResponse(BaseModel):
|
|
71
|
+
"""
|
|
72
|
+
Response from getting a Jev Computer Use task status.
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
model_config = ConfigDict(
|
|
76
|
+
populate_by_alias=True,
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
status: JevComputerUseTaskStatus
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class JevComputerUseTaskData(BaseModel):
|
|
83
|
+
model_config = ConfigDict(
|
|
84
|
+
populate_by_alias=True,
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
steps: List[Dict[str, Any]]
|
|
88
|
+
final_result: Optional[str] = Field(default=None, alias="finalResult")
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
class JevComputerUseTaskMetadata(BaseModel):
|
|
92
|
+
model_config = ConfigDict(
|
|
93
|
+
populate_by_alias=True,
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
input_tokens: Optional[int] = Field(default=None, alias="inputTokens")
|
|
97
|
+
output_tokens: Optional[int] = Field(default=None, alias="outputTokens")
|
|
98
|
+
num_task_steps_completed: Optional[int] = Field(
|
|
99
|
+
default=None, alias="numTaskStepsCompleted"
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class JevComputerUseTaskResponse(BaseModel):
|
|
104
|
+
"""
|
|
105
|
+
Response from a Jev Computer Use task.
|
|
106
|
+
"""
|
|
107
|
+
|
|
108
|
+
model_config = ConfigDict(
|
|
109
|
+
populate_by_alias=True,
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
job_id: str = Field(alias="jobId")
|
|
113
|
+
status: JevComputerUseTaskStatus
|
|
114
|
+
metadata: Optional[JevComputerUseTaskMetadata] = Field(
|
|
115
|
+
default=None, alias="metadata"
|
|
116
|
+
)
|
|
117
|
+
data: Optional[JevComputerUseTaskData] = Field(default=None, alias="data")
|
|
118
|
+
error: Optional[str] = Field(default=None, alias="error")
|
|
119
|
+
live_url: Optional[str] = Field(default=None, alias="liveUrl")
|
|
@@ -68,6 +68,7 @@ HyperAgentLlm = Literal[
|
|
|
68
68
|
"gemini-3-flash-preview",
|
|
69
69
|
]
|
|
70
70
|
ClaudeComputerUseLlm = Literal[
|
|
71
|
+
"claude-opus-5-5",
|
|
71
72
|
"claude-fable-5-1",
|
|
72
73
|
"claude-opus-5",
|
|
73
74
|
"claude-opus-4-5",
|
|
@@ -91,6 +92,8 @@ ClaudeComputerUseReasoningEffort = Literal[
|
|
|
91
92
|
CuaLlm = Literal[
|
|
92
93
|
"computer-use-preview",
|
|
93
94
|
"gpt-6-astra",
|
|
95
|
+
"gpt-6-sol",
|
|
96
|
+
"gpt-6-luna",
|
|
94
97
|
"gpt-5.6-sol",
|
|
95
98
|
"gpt-5.6-terra",
|
|
96
99
|
"gpt-5.6-luna",
|
|
@@ -138,6 +141,11 @@ MetaReasoningEffort = Literal[
|
|
|
138
141
|
"xhigh",
|
|
139
142
|
"max",
|
|
140
143
|
]
|
|
144
|
+
JevComputerUseLlm = Literal[
|
|
145
|
+
"jev-1.13.0",
|
|
146
|
+
"jev-latest",
|
|
147
|
+
]
|
|
148
|
+
JevTextLlm = Literal["gemini-3.5-flash-lite",]
|
|
141
149
|
SessionRegion = Literal[
|
|
142
150
|
"us",
|
|
143
151
|
"us-central",
|
|
@@ -421,6 +421,13 @@ class CreateSandboxImageBuildParams(SandboxBaseModel):
|
|
|
421
421
|
image_name: str = Field(serialization_alias="imageName")
|
|
422
422
|
input_sha256: str = Field(serialization_alias="inputSha256")
|
|
423
423
|
input_size_bytes: int = Field(serialization_alias="inputSizeBytes")
|
|
424
|
+
builder_cpus: Optional[int] = Field(default=None, ge=1, serialization_alias="vcpus")
|
|
425
|
+
builder_memory_mib: Optional[int] = Field(
|
|
426
|
+
default=None, ge=1, serialization_alias="memMiB"
|
|
427
|
+
)
|
|
428
|
+
builder_scratch_mib: Optional[int] = Field(
|
|
429
|
+
default=None, ge=1, serialization_alias="scratchMiB"
|
|
430
|
+
)
|
|
424
431
|
input_format: Optional[SandboxImageBuildInputFormat] = Field(
|
|
425
432
|
default=None,
|
|
426
433
|
serialization_alias="inputFormat",
|
|
@@ -20,6 +20,7 @@ from .agents import (
|
|
|
20
20
|
GeminiComputerUseApiKeys,
|
|
21
21
|
GrokComputerUseApiKeys,
|
|
22
22
|
HyperAgentApiKeys,
|
|
23
|
+
JevComputerUseApiKeys,
|
|
23
24
|
MetaComputerUseApiKeys,
|
|
24
25
|
StartBrowserUseTaskParams,
|
|
25
26
|
StartClaudeComputerUseTaskParams,
|
|
@@ -27,6 +28,7 @@ from .agents import (
|
|
|
27
28
|
StartGeminiComputerUseTaskParams,
|
|
28
29
|
StartGrokComputerUseTaskParams,
|
|
29
30
|
StartHyperAgentTaskParams,
|
|
31
|
+
StartJevComputerUseTaskParams,
|
|
30
32
|
StartMetaComputerUseTaskParams,
|
|
31
33
|
)
|
|
32
34
|
from .computer_action import (
|
|
@@ -186,6 +188,7 @@ __all__ = [
|
|
|
186
188
|
"GeminiComputerUseApiKeys",
|
|
187
189
|
"GrokComputerUseApiKeys",
|
|
188
190
|
"HyperAgentApiKeys",
|
|
191
|
+
"JevComputerUseApiKeys",
|
|
189
192
|
"MetaComputerUseApiKeys",
|
|
190
193
|
"StartBrowserUseTaskParams",
|
|
191
194
|
"StartClaudeComputerUseTaskParams",
|
|
@@ -193,6 +196,7 @@ __all__ = [
|
|
|
193
196
|
"StartGeminiComputerUseTaskParams",
|
|
194
197
|
"StartGrokComputerUseTaskParams",
|
|
195
198
|
"StartHyperAgentTaskParams",
|
|
199
|
+
"StartJevComputerUseTaskParams",
|
|
196
200
|
"StartMetaComputerUseTaskParams",
|
|
197
201
|
"ClickActionParams",
|
|
198
202
|
"ComputerActionMouseButton",
|
|
@@ -14,6 +14,8 @@ from hyperbrowser.models.consts import (
|
|
|
14
14
|
GrokReasoningEffort,
|
|
15
15
|
MetaComputerUseLlm,
|
|
16
16
|
MetaReasoningEffort,
|
|
17
|
+
JevComputerUseLlm,
|
|
18
|
+
JevTextLlm,
|
|
17
19
|
HyperAgentLlm,
|
|
18
20
|
HyperAgentVersion,
|
|
19
21
|
)
|
|
@@ -144,6 +146,28 @@ class StartMetaComputerUseTaskParams(TypedDict, total=False):
|
|
|
144
146
|
use_computer_action: Optional[bool]
|
|
145
147
|
|
|
146
148
|
|
|
149
|
+
class JevComputerUseApiKeys(TypedDict, total=False):
|
|
150
|
+
"""Provider API keys for a Jev Computer Use task."""
|
|
151
|
+
|
|
152
|
+
jev: Optional[str]
|
|
153
|
+
google: Optional[str]
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
class StartJevComputerUseTaskParams(TypedDict, total=False):
|
|
157
|
+
"""Parameters for starting a Jev Computer Use task."""
|
|
158
|
+
|
|
159
|
+
task: Required[str]
|
|
160
|
+
llm: Optional[JevComputerUseLlm]
|
|
161
|
+
text_llm: Optional[JevTextLlm]
|
|
162
|
+
session_id: Optional[str]
|
|
163
|
+
max_failures: Optional[int]
|
|
164
|
+
max_steps: Optional[int]
|
|
165
|
+
keep_browser_open: Optional[bool]
|
|
166
|
+
session_options: Optional[CreateSessionParams]
|
|
167
|
+
use_custom_api_keys: Optional[bool]
|
|
168
|
+
api_keys: Optional[JevComputerUseApiKeys]
|
|
169
|
+
|
|
170
|
+
|
|
147
171
|
class CuaApiKeys(TypedDict, total=False):
|
|
148
172
|
"""Provider API keys for an OpenAI CUA task."""
|
|
149
173
|
|
|
@@ -204,6 +228,7 @@ __all__ = [
|
|
|
204
228
|
"GeminiComputerUseApiKeys",
|
|
205
229
|
"GrokComputerUseApiKeys",
|
|
206
230
|
"HyperAgentApiKeys",
|
|
231
|
+
"JevComputerUseApiKeys",
|
|
207
232
|
"MetaComputerUseApiKeys",
|
|
208
233
|
"StartBrowserUseTaskParams",
|
|
209
234
|
"StartClaudeComputerUseTaskParams",
|
|
@@ -211,5 +236,6 @@ __all__ = [
|
|
|
211
236
|
"StartGeminiComputerUseTaskParams",
|
|
212
237
|
"StartGrokComputerUseTaskParams",
|
|
213
238
|
"StartHyperAgentTaskParams",
|
|
239
|
+
"StartJevComputerUseTaskParams",
|
|
214
240
|
"StartMetaComputerUseTaskParams",
|
|
215
241
|
]
|
|
@@ -208,6 +208,9 @@ class CreateSandboxImageBuildParams(TypedDict, total=False):
|
|
|
208
208
|
image_name: Required[str]
|
|
209
209
|
input_sha256: Required[str]
|
|
210
210
|
input_size_bytes: Required[int]
|
|
211
|
+
builder_cpus: Optional[int]
|
|
212
|
+
builder_memory_mib: Optional[int]
|
|
213
|
+
builder_scratch_mib: Optional[int]
|
|
211
214
|
input_format: SandboxImageBuildInputFormat
|
|
212
215
|
source_platform: SandboxImageBuildSourcePlatform
|
|
213
216
|
image_config_user: Optional[str]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/agents/cua.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/crawl.py
RENAMED
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/extension.py
RENAMED
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/extract.py
RENAMED
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/profile.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/scrape.py
RENAMED
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/session.py
RENAMED
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/team.py
RENAMED
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/volume.py
RENAMED
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/web/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/async_manager/web/crawl.py
RENAMED
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sandboxes/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sandboxes/dockerignore.py
RENAMED
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sandboxes/image_build.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/agents/cua.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/crawl.py
RENAMED
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/extension.py
RENAMED
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/extract.py
RENAMED
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/profile.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/scrape.py
RENAMED
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/session.py
RENAMED
|
File without changes
|
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/volume.py
RENAMED
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/hyperbrowser/client/managers/sync_manager/web/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{hyperbrowser-1.4.4 → hyperbrowser-1.6.0}/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
|
|
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
|
|
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
|