hyperbrowser 0.93.2__tar.gz → 0.93.4__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.
Files changed (96) hide show
  1. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/PKG-INFO +1 -1
  2. {hyperbrowser-0.93.2/hyperbrowser/client/managers/sync_manager → hyperbrowser-0.93.4/hyperbrowser/client/managers/async_manager}/agents/__init__.py +2 -0
  3. hyperbrowser-0.93.4/hyperbrowser/client/managers/async_manager/agents/grok_computer_use.py +71 -0
  4. {hyperbrowser-0.93.2/hyperbrowser/client/managers/async_manager → hyperbrowser-0.93.4/hyperbrowser/client/managers/sync_manager}/agents/__init__.py +2 -0
  5. hyperbrowser-0.93.4/hyperbrowser/client/managers/sync_manager/agents/grok_computer_use.py +71 -0
  6. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/__init__.py +22 -0
  7. hyperbrowser-0.93.4/hyperbrowser/models/agents/grok_computer_use.py +150 -0
  8. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/consts.py +9 -0
  9. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/pyproject.toml +1 -1
  10. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/LICENSE +0 -0
  11. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/README.md +0 -0
  12. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/__init__.py +0 -0
  13. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/async_client.py +0 -0
  14. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/base.py +0 -0
  15. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/agents/browser_use.py +0 -0
  16. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/agents/claude_computer_use.py +0 -0
  17. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/agents/cua.py +0 -0
  18. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/agents/gemini_computer_use.py +0 -0
  19. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/agents/hyper_agent.py +0 -0
  20. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/computer_action.py +0 -0
  21. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/crawl.py +0 -0
  22. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/extension.py +0 -0
  23. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/extract.py +0 -0
  24. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/profile.py +0 -0
  25. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/sandbox.py +0 -0
  26. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/sandboxes/__init__.py +0 -0
  27. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_files.py +0 -0
  28. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_processes.py +0 -0
  29. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_terminal.py +0 -0
  30. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_transport.py +0 -0
  31. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/scrape.py +0 -0
  32. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/session.py +0 -0
  33. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/team.py +0 -0
  34. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/volume.py +0 -0
  35. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/web/__init__.py +0 -0
  36. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/web/batch_fetch.py +0 -0
  37. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/async_manager/web/crawl.py +0 -0
  38. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sandboxes/__init__.py +0 -0
  39. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sandboxes/image_build.py +0 -0
  40. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sandboxes/shared.py +0 -0
  41. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/agents/browser_use.py +0 -0
  42. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/agents/claude_computer_use.py +0 -0
  43. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/agents/cua.py +0 -0
  44. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/agents/gemini_computer_use.py +0 -0
  45. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/agents/hyper_agent.py +0 -0
  46. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/computer_action.py +0 -0
  47. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/crawl.py +0 -0
  48. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/extension.py +0 -0
  49. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/extract.py +0 -0
  50. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/profile.py +0 -0
  51. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/sandbox.py +0 -0
  52. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/sandboxes/__init__.py +0 -0
  53. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_files.py +0 -0
  54. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_processes.py +0 -0
  55. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_terminal.py +0 -0
  56. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_transport.py +0 -0
  57. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/scrape.py +0 -0
  58. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/session.py +0 -0
  59. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/team.py +0 -0
  60. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/volume.py +0 -0
  61. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/web/__init__.py +0 -0
  62. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/web/batch_fetch.py +0 -0
  63. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/managers/sync_manager/web/crawl.py +0 -0
  64. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/client/sync.py +0 -0
  65. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/config.py +0 -0
  66. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/exceptions.py +0 -0
  67. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/_parsers.py +0 -0
  68. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/agents/browser_use.py +0 -0
  69. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/agents/claude_computer_use.py +0 -0
  70. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/agents/cua.py +0 -0
  71. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/agents/gemini_computer_use.py +0 -0
  72. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/agents/hyper_agent.py +0 -0
  73. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/computer_action.py +0 -0
  74. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/crawl.py +0 -0
  75. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/extension.py +0 -0
  76. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/extract.py +0 -0
  77. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/profile.py +0 -0
  78. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/sandbox.py +0 -0
  79. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/scrape.py +0 -0
  80. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/session.py +0 -0
  81. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/team.py +0 -0
  82. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/volume.py +0 -0
  83. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/web/batch_fetch.py +0 -0
  84. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/web/branding.py +0 -0
  85. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/web/common.py +0 -0
  86. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/web/crawl.py +0 -0
  87. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/web/fetch.py +0 -0
  88. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/models/web/search.py +0 -0
  89. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/sandbox_common.py +0 -0
  90. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/tools/__init__.py +0 -0
  91. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/tools/anthropic.py +0 -0
  92. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/tools/openai.py +0 -0
  93. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/tools/schema.py +0 -0
  94. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/transport/async_transport.py +0 -0
  95. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/transport/base.py +0 -0
  96. {hyperbrowser-0.93.2 → hyperbrowser-0.93.4}/hyperbrowser/transport/sync.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hyperbrowser
3
- Version: 0.93.2
3
+ Version: 0.93.4
4
4
  Summary: Python SDK for hyperbrowser
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -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")
@@ -65,6 +65,7 @@ HyperAgentLlm = Literal[
65
65
  "gemini-3-flash-preview",
66
66
  ]
67
67
  ClaudeComputerUseLlm = Literal[
68
+ "claude-opus-5",
68
69
  "claude-opus-4-5",
69
70
  "claude-opus-4-6",
70
71
  "claude-opus-4-7",
@@ -86,10 +87,18 @@ CuaLlm = Literal[
86
87
  "gpt-5.4-mini",
87
88
  ]
88
89
  GeminiComputerUseLlm = Literal[
90
+ "gemini-3.6-flash",
89
91
  "gemini-3.5-flash",
92
+ "gemini-3.5-flash-lite",
90
93
  "gemini-3-flash-preview",
91
94
  "gemini-2.5-computer-use-preview-10-2025",
92
95
  ]
96
+ GrokComputerUseLlm = Literal["grok-4.5",]
97
+ GrokReasoningEffort = Literal[
98
+ "low",
99
+ "medium",
100
+ "high",
101
+ ]
93
102
  SessionRegion = Literal[
94
103
  "us-central",
95
104
  "asia-south",
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "hyperbrowser"
3
- version = "0.93.2"
3
+ version = "0.93.4"
4
4
  description = "Python SDK for hyperbrowser"
5
5
  authors = ["Nikhil Shahi <nshahi1998@gmail.com>"]
6
6
  license = "MIT"
File without changes
File without changes