hyperbrowser 0.48.0__py3-none-any.whl → 0.50.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of hyperbrowser might be problematic. Click here for more details.

@@ -11,6 +11,7 @@ from .managers.async_manager.profile import ProfileManager
11
11
  from .managers.async_manager.scrape import ScrapeManager
12
12
  from .managers.async_manager.session import SessionManager
13
13
  from .managers.async_manager.team import TeamManager
14
+ from .managers.async_manager.computer_action import ComputerActionManager
14
15
 
15
16
 
16
17
  class AsyncHyperbrowser(HyperbrowserBase):
@@ -33,6 +34,7 @@ class AsyncHyperbrowser(HyperbrowserBase):
33
34
  self.extensions = ExtensionManager(self)
34
35
  self.agents = Agents(self)
35
36
  self.team = TeamManager(self)
37
+ self.computer_action = ComputerActionManager(self)
36
38
 
37
39
  async def close(self) -> None:
38
40
  await self.transport.close()
@@ -0,0 +1,120 @@
1
+ from pydantic import BaseModel
2
+ from typing import Union, List
3
+ from hyperbrowser.models import (
4
+ SessionDetail,
5
+ ComputerActionParams,
6
+ ComputerActionResponse,
7
+ ClickActionParams,
8
+ DragActionParams,
9
+ PressKeysActionParams,
10
+ MoveMouseActionParams,
11
+ ScreenshotActionParams,
12
+ ScrollActionParams,
13
+ TypeTextActionParams,
14
+ Coordinate,
15
+ )
16
+
17
+
18
+ class ComputerActionManager:
19
+ def __init__(self, client):
20
+ self._client = client
21
+
22
+ async def _execute_request(
23
+ self, session: Union[SessionDetail, str], params: ComputerActionParams
24
+ ) -> ComputerActionResponse:
25
+ if isinstance(session, str):
26
+ session = await self._client.sessions.get(session)
27
+
28
+ if not session.computer_action_endpoint:
29
+ raise ValueError("Computer action endpoint not available for this session")
30
+
31
+ if isinstance(params, BaseModel):
32
+ payload = params.model_dump(by_alias=True, exclude_none=True)
33
+ else:
34
+ payload = params
35
+
36
+ response = await self._client.transport.post(
37
+ session.computer_action_endpoint,
38
+ data=payload,
39
+ )
40
+ return ComputerActionResponse(**response.data)
41
+
42
+ async def click(
43
+ self,
44
+ session: Union[SessionDetail, str],
45
+ x: int,
46
+ y: int,
47
+ button: str = "left",
48
+ num_clicks: int = 1,
49
+ return_screenshot: bool = False,
50
+ ) -> ComputerActionResponse:
51
+ params = ClickActionParams(
52
+ x=x,
53
+ y=y,
54
+ button=button,
55
+ num_clicks=num_clicks,
56
+ return_screenshot=return_screenshot,
57
+ )
58
+ return await self._execute_request(session, params)
59
+
60
+ async def type_text(
61
+ self,
62
+ session: Union[SessionDetail, str],
63
+ text: str,
64
+ return_screenshot: bool = False,
65
+ ) -> ComputerActionResponse:
66
+ params = TypeTextActionParams(text=text, return_screenshot=return_screenshot)
67
+ return await self._execute_request(session, params)
68
+
69
+ async def screenshot(
70
+ self,
71
+ session: Union[SessionDetail, str],
72
+ ) -> ComputerActionResponse:
73
+ params = ScreenshotActionParams()
74
+ return await self._execute_request(session, params)
75
+
76
+ async def press_keys(
77
+ self,
78
+ session: Union[SessionDetail, str],
79
+ keys: List[str],
80
+ return_screenshot: bool = False,
81
+ ) -> ComputerActionResponse:
82
+ params = PressKeysActionParams(keys=keys, return_screenshot=return_screenshot)
83
+ return await self._execute_request(session, params)
84
+
85
+ async def drag(
86
+ self,
87
+ session: Union[SessionDetail, str],
88
+ path: List[Coordinate],
89
+ return_screenshot: bool = False,
90
+ ) -> ComputerActionResponse:
91
+ params = DragActionParams(path=path, return_screenshot=return_screenshot)
92
+ return await self._execute_request(session, params)
93
+
94
+ async def move_mouse(
95
+ self,
96
+ session: Union[SessionDetail, str],
97
+ x: int,
98
+ y: int,
99
+ return_screenshot: bool = False,
100
+ ) -> ComputerActionResponse:
101
+ params = MoveMouseActionParams(x=x, y=y, return_screenshot=return_screenshot)
102
+ return await self._execute_request(session, params)
103
+
104
+ async def scroll(
105
+ self,
106
+ session: Union[SessionDetail, str],
107
+ x: int,
108
+ y: int,
109
+ scroll_x: int,
110
+ scroll_y: int,
111
+ return_screenshot: bool = False,
112
+ ) -> ComputerActionResponse:
113
+ params = ScrollActionParams(
114
+ x=x,
115
+ y=y,
116
+ scroll_x=scroll_x,
117
+ scroll_y=scroll_y,
118
+ return_screenshot=return_screenshot,
119
+ )
120
+ return await self._execute_request(session, params)
@@ -0,0 +1,120 @@
1
+ from pydantic import BaseModel
2
+ from typing import Union, List
3
+ from hyperbrowser.models import (
4
+ SessionDetail,
5
+ ComputerActionParams,
6
+ ComputerActionResponse,
7
+ ClickActionParams,
8
+ DragActionParams,
9
+ PressKeysActionParams,
10
+ MoveMouseActionParams,
11
+ ScreenshotActionParams,
12
+ ScrollActionParams,
13
+ TypeTextActionParams,
14
+ Coordinate,
15
+ )
16
+
17
+
18
+ class ComputerActionManager:
19
+ def __init__(self, client):
20
+ self._client = client
21
+
22
+ def _execute_request(
23
+ self, session: Union[SessionDetail, str], params: ComputerActionParams
24
+ ) -> ComputerActionResponse:
25
+ if isinstance(session, str):
26
+ session = self._client.sessions.get(session)
27
+
28
+ if not session.computer_action_endpoint:
29
+ raise ValueError("Computer action endpoint not available for this session")
30
+
31
+ if isinstance(params, BaseModel):
32
+ payload = params.model_dump(by_alias=True, exclude_none=True)
33
+ else:
34
+ payload = params
35
+
36
+ response = self._client.transport.post(
37
+ session.computer_action_endpoint,
38
+ data=payload,
39
+ )
40
+ return ComputerActionResponse(**response.data)
41
+
42
+ def click(
43
+ self,
44
+ session: Union[SessionDetail, str],
45
+ x: int,
46
+ y: int,
47
+ button: str = "left",
48
+ num_clicks: int = 1,
49
+ return_screenshot: bool = False,
50
+ ) -> ComputerActionResponse:
51
+ params = ClickActionParams(
52
+ x=x,
53
+ y=y,
54
+ button=button,
55
+ num_clicks=num_clicks,
56
+ return_screenshot=return_screenshot,
57
+ )
58
+ return self._execute_request(session, params)
59
+
60
+ def type_text(
61
+ self,
62
+ session: Union[SessionDetail, str],
63
+ text: str,
64
+ return_screenshot: bool = False,
65
+ ) -> ComputerActionResponse:
66
+ params = TypeTextActionParams(text=text, return_screenshot=return_screenshot)
67
+ return self._execute_request(session, params)
68
+
69
+ def screenshot(
70
+ self,
71
+ session: Union[SessionDetail, str],
72
+ ) -> ComputerActionResponse:
73
+ params = ScreenshotActionParams()
74
+ return self._execute_request(session, params)
75
+
76
+ def press_keys(
77
+ self,
78
+ session: Union[SessionDetail, str],
79
+ keys: List[str],
80
+ return_screenshot: bool = False,
81
+ ) -> ComputerActionResponse:
82
+ params = PressKeysActionParams(keys=keys, return_screenshot=return_screenshot)
83
+ return self._execute_request(session, params)
84
+
85
+ def drag(
86
+ self,
87
+ session: Union[SessionDetail, str],
88
+ path: List[Coordinate],
89
+ return_screenshot: bool = False,
90
+ ) -> ComputerActionResponse:
91
+ params = DragActionParams(path=path, return_screenshot=return_screenshot)
92
+ return self._execute_request(session, params)
93
+
94
+ def move_mouse(
95
+ self,
96
+ session: Union[SessionDetail, str],
97
+ x: int,
98
+ y: int,
99
+ return_screenshot: bool = False,
100
+ ) -> ComputerActionResponse:
101
+ params = MoveMouseActionParams(x=x, y=y, return_screenshot=return_screenshot)
102
+ return self._execute_request(session, params)
103
+
104
+ def scroll(
105
+ self,
106
+ session: Union[SessionDetail, str],
107
+ x: int,
108
+ y: int,
109
+ scroll_x: int,
110
+ scroll_y: int,
111
+ return_screenshot: bool = False,
112
+ ) -> ComputerActionResponse:
113
+ params = ScrollActionParams(
114
+ x=x,
115
+ y=y,
116
+ scroll_x=scroll_x,
117
+ scroll_y=scroll_y,
118
+ return_screenshot=return_screenshot,
119
+ )
120
+ return self._execute_request(session, params)
@@ -11,6 +11,7 @@ from .managers.sync_manager.profile import ProfileManager
11
11
  from .managers.sync_manager.scrape import ScrapeManager
12
12
  from .managers.sync_manager.session import SessionManager
13
13
  from .managers.sync_manager.team import TeamManager
14
+ from .managers.sync_manager.computer_action import ComputerActionManager
14
15
 
15
16
 
16
17
  class Hyperbrowser(HyperbrowserBase):
@@ -33,6 +34,7 @@ class Hyperbrowser(HyperbrowserBase):
33
34
  self.extensions = ExtensionManager(self)
34
35
  self.agents = Agents(self)
35
36
  self.team = TeamManager(self)
37
+ self.computer_action = ComputerActionManager(self)
36
38
 
37
39
  def close(self) -> None:
38
40
  self.transport.close()
@@ -4,6 +4,7 @@ from .agents.browser_use import (
4
4
  BrowserUseTaskStatusResponse,
5
5
  StartBrowserUseTaskParams,
6
6
  StartBrowserUseTaskResponse,
7
+ BrowserUseApiKeys,
7
8
  )
8
9
  from .agents.claude_computer_use import (
9
10
  ClaudeComputerUseTaskData,
@@ -11,6 +12,7 @@ from .agents.claude_computer_use import (
11
12
  ClaudeComputerUseTaskStatusResponse,
12
13
  StartClaudeComputerUseTaskParams,
13
14
  StartClaudeComputerUseTaskResponse,
15
+ ClaudeComputerUseApiKeys,
14
16
  )
15
17
  from .agents.cua import (
16
18
  CuaTaskData,
@@ -18,6 +20,7 @@ from .agents.cua import (
18
20
  CuaTaskStatusResponse,
19
21
  StartCuaTaskParams,
20
22
  StartCuaTaskResponse,
23
+ CuaApiKeys,
21
24
  )
22
25
  from .agents.hyper_agent import (
23
26
  HyperAgentActionOutput,
@@ -29,6 +32,7 @@ from .agents.hyper_agent import (
29
32
  HyperAgentTaskStatusResponse,
30
33
  StartHyperAgentTaskParams,
31
34
  StartHyperAgentTaskResponse,
35
+ HyperAgentApiKeys,
32
36
  )
33
37
  from .consts import (
34
38
  ISO639_1,
@@ -88,6 +92,19 @@ from .scrape import (
88
92
  StartScrapeJobParams,
89
93
  StartScrapeJobResponse,
90
94
  )
95
+ from .computer_action import (
96
+ ClickActionParams,
97
+ ComputerAction,
98
+ ComputerActionParams,
99
+ ComputerActionResponse,
100
+ Coordinate,
101
+ DragActionParams,
102
+ MoveMouseActionParams,
103
+ PressKeysActionParams,
104
+ ScreenshotActionParams,
105
+ ScrollActionParams,
106
+ TypeTextActionParams,
107
+ )
91
108
  from .session import (
92
109
  BasicResponse,
93
110
  CreateSessionParams,
@@ -151,6 +168,10 @@ __all__ = [
151
168
  "CuaTaskStatusResponse",
152
169
  "StartCuaTaskParams",
153
170
  "StartCuaTaskResponse",
171
+ "BrowserUseApiKeys",
172
+ "ClaudeComputerUseApiKeys",
173
+ "CuaApiKeys",
174
+ "HyperAgentApiKeys",
154
175
  # crawl
155
176
  "CrawledPage",
156
177
  "CrawlJobResponse",
@@ -207,4 +228,16 @@ __all__ = [
207
228
  "UploadFileResponse",
208
229
  # team
209
230
  "TeamCreditInfo",
231
+ # computer action
232
+ "ClickActionParams",
233
+ "ComputerAction",
234
+ "ComputerActionParams",
235
+ "ComputerActionResponse",
236
+ "Coordinate",
237
+ "DragActionParams",
238
+ "MoveMouseActionParams",
239
+ "PressKeysActionParams",
240
+ "ScreenshotActionParams",
241
+ "ScrollActionParams",
242
+ "TypeTextActionParams",
210
243
  ]
@@ -8,6 +8,20 @@ from ..session import CreateSessionParams
8
8
  BrowserUseTaskStatus = Literal["pending", "running", "completed", "failed", "stopped"]
9
9
 
10
10
 
11
+ class BrowserUseApiKeys(BaseModel):
12
+ """
13
+ API keys for the browser use task.
14
+ """
15
+
16
+ model_config = ConfigDict(
17
+ populate_by_alias=True,
18
+ )
19
+
20
+ openai: Optional[str] = Field(default=None, serialization_alias="openai")
21
+ anthropic: Optional[str] = Field(default=None, serialization_alias="anthropic")
22
+ google: Optional[str] = Field(default=None, serialization_alias="google")
23
+
24
+
11
25
  class StartBrowserUseTaskParams(BaseModel):
12
26
  """
13
27
  Parameters for creating a new browser use task.
@@ -62,6 +76,12 @@ class StartBrowserUseTaskParams(BaseModel):
62
76
  session_options: Optional[CreateSessionParams] = Field(
63
77
  default=None, serialization_alias="sessionOptions"
64
78
  )
79
+ use_custom_api_keys: Optional[bool] = Field(
80
+ default=None, serialization_alias="useCustomApiKeys"
81
+ )
82
+ api_keys: Optional[BrowserUseApiKeys] = Field(
83
+ default=None, serialization_alias="apiKeys"
84
+ )
65
85
 
66
86
 
67
87
  class StartBrowserUseTaskResponse(BaseModel):
@@ -10,6 +10,18 @@ ClaudeComputerUseTaskStatus = Literal[
10
10
  ]
11
11
 
12
12
 
13
+ class ClaudeComputerUseApiKeys(BaseModel):
14
+ """
15
+ API keys for the Claude Computer Use task.
16
+ """
17
+
18
+ model_config = ConfigDict(
19
+ populate_by_alias=True,
20
+ )
21
+
22
+ anthropic: Optional[str] = Field(default=None, serialization_alias="anthropic")
23
+
24
+
13
25
  class StartClaudeComputerUseTaskParams(BaseModel):
14
26
  """
15
27
  Parameters for creating a new Claude Computer Use task.
@@ -30,6 +42,12 @@ class StartClaudeComputerUseTaskParams(BaseModel):
30
42
  session_options: Optional[CreateSessionParams] = Field(
31
43
  default=None, serialization_alias="sessionOptions"
32
44
  )
45
+ use_custom_api_keys: Optional[bool] = Field(
46
+ default=None, serialization_alias="useCustomApiKeys"
47
+ )
48
+ api_keys: Optional[ClaudeComputerUseApiKeys] = Field(
49
+ default=None, serialization_alias="apiKeys"
50
+ )
33
51
 
34
52
 
35
53
  class StartClaudeComputerUseTaskResponse(BaseModel):
@@ -7,6 +7,18 @@ from ..session import CreateSessionParams
7
7
  CuaTaskStatus = Literal["pending", "running", "completed", "failed", "stopped"]
8
8
 
9
9
 
10
+ class CuaApiKeys(BaseModel):
11
+ """
12
+ API keys for the CUA task.
13
+ """
14
+
15
+ model_config = ConfigDict(
16
+ populate_by_alias=True,
17
+ )
18
+
19
+ openai: Optional[str] = Field(default=None, serialization_alias="openai")
20
+
21
+
10
22
  class StartCuaTaskParams(BaseModel):
11
23
  """
12
24
  Parameters for creating a new CUA task.
@@ -26,6 +38,10 @@ class StartCuaTaskParams(BaseModel):
26
38
  session_options: Optional[CreateSessionParams] = Field(
27
39
  default=None, serialization_alias="sessionOptions"
28
40
  )
41
+ use_custom_api_keys: Optional[bool] = Field(
42
+ default=None, serialization_alias="useCustomApiKeys"
43
+ )
44
+ api_keys: Optional[CuaApiKeys] = Field(default=None, serialization_alias="apiKeys")
29
45
 
30
46
 
31
47
  class StartCuaTaskResponse(BaseModel):
@@ -8,6 +8,20 @@ from ..session import CreateSessionParams
8
8
  HyperAgentTaskStatus = Literal["pending", "running", "completed", "failed", "stopped"]
9
9
 
10
10
 
11
+ class HyperAgentApiKeys(BaseModel):
12
+ """
13
+ API keys for the HyperAgent task.
14
+ """
15
+
16
+ model_config = ConfigDict(
17
+ populate_by_alias=True,
18
+ )
19
+
20
+ openai: Optional[str] = Field(default=None, serialization_alias="openai")
21
+ anthropic: Optional[str] = Field(default=None, serialization_alias="anthropic")
22
+ google: Optional[str] = Field(default=None, serialization_alias="google")
23
+
24
+
11
25
  class StartHyperAgentTaskParams(BaseModel):
12
26
  """
13
27
  Parameters for creating a new HyperAgent task.
@@ -27,6 +41,12 @@ class StartHyperAgentTaskParams(BaseModel):
27
41
  session_options: Optional[CreateSessionParams] = Field(
28
42
  default=None, serialization_alias="sessionOptions"
29
43
  )
44
+ use_custom_api_keys: Optional[bool] = Field(
45
+ default=None, serialization_alias="useCustomApiKeys"
46
+ )
47
+ api_keys: Optional[HyperAgentApiKeys] = Field(
48
+ default=None, serialization_alias="apiKeys"
49
+ )
30
50
 
31
51
 
32
52
  class StartHyperAgentTaskResponse(BaseModel):
@@ -0,0 +1,135 @@
1
+ from enum import Enum
2
+ from typing import List, Literal, Optional, Union
3
+ from pydantic import BaseModel, ConfigDict, Field
4
+
5
+
6
+ class ComputerAction(str, Enum):
7
+ """Computer action types."""
8
+
9
+ CLICK = "click"
10
+ DRAG = "drag"
11
+ PRESS_KEYS = "press_keys"
12
+ MOVE_MOUSE = "move_mouse"
13
+ SCREENSHOT = "screenshot"
14
+ SCROLL = "scroll"
15
+ TYPE_TEXT = "type_text"
16
+
17
+
18
+ class Coordinate(BaseModel):
19
+ """Coordinate model for drag actions."""
20
+
21
+ x: int
22
+ y: int
23
+
24
+
25
+ class ClickActionParams(BaseModel):
26
+ """Parameters for click action."""
27
+
28
+ model_config = ConfigDict(use_enum_values=True)
29
+
30
+ action: Literal[ComputerAction.CLICK] = ComputerAction.CLICK
31
+ x: int
32
+ y: int
33
+ button: Literal["left", "right", "middle", "back", "forward", "wheel"] = Field(
34
+ default="left"
35
+ )
36
+ num_clicks: int = Field(serialization_alias="numClicks", default=1)
37
+ return_screenshot: bool = Field(
38
+ serialization_alias="returnScreenshot", default=False
39
+ )
40
+
41
+
42
+ class DragActionParams(BaseModel):
43
+ """Parameters for drag action."""
44
+
45
+ model_config = ConfigDict(use_enum_values=True)
46
+
47
+ action: Literal[ComputerAction.DRAG] = ComputerAction.DRAG
48
+ path: List[Coordinate]
49
+ return_screenshot: bool = Field(
50
+ serialization_alias="returnScreenshot", default=False
51
+ )
52
+
53
+
54
+ class PressKeysActionParams(BaseModel):
55
+ """Parameters for press keys action."""
56
+
57
+ model_config = ConfigDict(use_enum_values=True)
58
+
59
+ action: Literal[ComputerAction.PRESS_KEYS] = ComputerAction.PRESS_KEYS
60
+ keys: List[str]
61
+ return_screenshot: bool = Field(
62
+ serialization_alias="returnScreenshot", default=False
63
+ )
64
+
65
+
66
+ class MoveMouseActionParams(BaseModel):
67
+ """Parameters for move mouse action."""
68
+
69
+ model_config = ConfigDict(use_enum_values=True)
70
+
71
+ action: Literal[ComputerAction.MOVE_MOUSE] = ComputerAction.MOVE_MOUSE
72
+ x: int = Field(ge=0)
73
+ y: int = Field(ge=0)
74
+ return_screenshot: bool = Field(
75
+ serialization_alias="returnScreenshot", default=False
76
+ )
77
+
78
+
79
+ class ScreenshotActionParams(BaseModel):
80
+ """Parameters for screenshot action."""
81
+
82
+ model_config = ConfigDict(use_enum_values=True)
83
+
84
+ action: Literal[ComputerAction.SCREENSHOT] = ComputerAction.SCREENSHOT
85
+
86
+
87
+ class ScrollActionParams(BaseModel):
88
+ """Parameters for scroll action."""
89
+
90
+ model_config = ConfigDict(use_enum_values=True)
91
+
92
+ action: Literal[ComputerAction.SCROLL] = ComputerAction.SCROLL
93
+ x: int
94
+ y: int
95
+ scroll_x: int = Field(serialization_alias="scrollX")
96
+ scroll_y: int = Field(serialization_alias="scrollY")
97
+ return_screenshot: bool = Field(
98
+ serialization_alias="returnScreenshot", default=False
99
+ )
100
+
101
+
102
+ class TypeTextActionParams(BaseModel):
103
+ """Parameters for type text action."""
104
+
105
+ model_config = ConfigDict(use_enum_values=True)
106
+
107
+ action: Literal[ComputerAction.TYPE_TEXT] = ComputerAction.TYPE_TEXT
108
+ text: str
109
+ return_screenshot: bool = Field(
110
+ serialization_alias="returnScreenshot", default=False
111
+ )
112
+
113
+
114
+ ComputerActionParams = Union[
115
+ ClickActionParams,
116
+ DragActionParams,
117
+ PressKeysActionParams,
118
+ MoveMouseActionParams,
119
+ ScreenshotActionParams,
120
+ ScrollActionParams,
121
+ TypeTextActionParams,
122
+ ]
123
+
124
+
125
+ class ComputerActionResponse(BaseModel):
126
+ """Response from computer action API."""
127
+
128
+ model_config = ConfigDict(
129
+ populate_by_alias=True,
130
+ )
131
+
132
+ success: bool
133
+ screenshot: Optional[str] = None
134
+ error: Optional[str] = None
135
+ message: Optional[str] = None
@@ -1,5 +1,6 @@
1
1
  from datetime import datetime
2
2
  from typing import Any, List, Literal, Optional, Union
3
+ from .computer_action import ComputerActionParams, ComputerActionResponse
3
4
 
4
5
  from pydantic import BaseModel, ConfigDict, Field, field_validator
5
6
 
@@ -64,6 +65,9 @@ class SessionDetail(Session):
64
65
  )
65
66
 
66
67
  ws_endpoint: Optional[str] = Field(alias="wsEndpoint", default=None)
68
+ computer_action_endpoint: Optional[str] = Field(
69
+ alias="computerActionEndpoint", default=None
70
+ )
67
71
  live_url: str = Field(alias="liveUrl")
68
72
  token: str = Field(alias="token")
69
73
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: hyperbrowser
3
- Version: 0.48.0
3
+ Version: 0.50.0
4
4
  Summary: Python SDK for hyperbrowser
5
5
  License: MIT
6
6
  Author: Nikhil Shahi
@@ -1,11 +1,12 @@
1
1
  hyperbrowser/__init__.py,sha256=zWGcLhqhvWy6BTwuNpzWK1-0LpIn311ks-4U9nrsb7Y,187
2
- hyperbrowser/client/async_client.py,sha256=hMjpmWlRAhbmv4F3Eh-xaPFl12YoRiWQAjJDJ0y_fDw,1565
2
+ hyperbrowser/client/async_client.py,sha256=CcgSBu3YbSZZ4jthRqXnOMlgMMGCJzAGAymyovL7n1k,1698
3
3
  hyperbrowser/client/base.py,sha256=2nkTdGfRWjW3grqAuYez-IuD69SAAJ5qklCKNeAYd6A,1268
4
4
  hyperbrowser/client/managers/async_manager/agents/__init__.py,sha256=GUkUBxoqW6vchz3-yNlUaE8TdEClNdp3RliHYMT1fsE,432
5
5
  hyperbrowser/client/managers/async_manager/agents/browser_use.py,sha256=wizo6f_GpZyP8z6nXbqgX57i2cJMm12GDt1yEmPXF1A,2863
6
6
  hyperbrowser/client/managers/async_manager/agents/claude_computer_use.py,sha256=gTnX8r3rETyLMsDy_4nO0oB5cDdHHN9s-y7xw-4ekqc,2657
7
7
  hyperbrowser/client/managers/async_manager/agents/cua.py,sha256=e43QgSLi0LvGd9cOirsRETcit0MXvvtLA2cNv16xH0s,2337
8
8
  hyperbrowser/client/managers/async_manager/agents/hyper_agent.py,sha256=VzPTrvlYX_CZohoCD6Z8Cf1itDZ6BLKmrzpjv6YGs88,2501
9
+ hyperbrowser/client/managers/async_manager/computer_action.py,sha256=W9Ezfe7vRt1xtAXI7nBxLsYC6iTT7wjg2jn0OFpF7E4,3711
9
10
  hyperbrowser/client/managers/async_manager/crawl.py,sha256=3EW-QauFPaW92XJk0mQU7f0-xgCdKKEc6WaPeM5exlA,4417
10
11
  hyperbrowser/client/managers/async_manager/extension.py,sha256=a-xYtXXdCspukYtsguRgjEoQ8E_kzzA2tQAJtIyCtAs,1439
11
12
  hyperbrowser/client/managers/async_manager/extract.py,sha256=wZO696_3Mse3tnsHgpSXibo6IfwcO5K1lWstcO_2GjQ,2492
@@ -18,6 +19,7 @@ hyperbrowser/client/managers/sync_manager/agents/browser_use.py,sha256=HXl8GM47D
18
19
  hyperbrowser/client/managers/sync_manager/agents/claude_computer_use.py,sha256=6mAaqDjKrLrxRaGZfZSgC7wYVyDQeWZEE6K6wLrnTXk,2557
19
20
  hyperbrowser/client/managers/sync_manager/agents/cua.py,sha256=rh3JyXWzh9SvSLkDBtWGVUd2KMx27MyLMuNPnRwvbxk,2253
20
21
  hyperbrowser/client/managers/sync_manager/agents/hyper_agent.py,sha256=UgB_eEa7PODGoTegulJzJDPBr2VQ-hIT0yA0z7BfYtk,2403
22
+ hyperbrowser/client/managers/sync_manager/computer_action.py,sha256=H-oD6A_dcmbrFrUQ8nw6QCNg4MV1jDy7cPeCJNfg_kY,3609
21
23
  hyperbrowser/client/managers/sync_manager/crawl.py,sha256=mk5G7NGrneU47P2lbOlI7dkAZ9PMMPwPjIYGSO5yR-Y,4349
22
24
  hyperbrowser/client/managers/sync_manager/extension.py,sha256=1YoyTZtMo43trl9jAsXv95aor0nBHiJEmLva39jFW-k,1415
23
25
  hyperbrowser/client/managers/sync_manager/extract.py,sha256=rNSxAMR95_nL4qHuatPSzXrYFUGbLQE1xm9Us1myy9s,2391
@@ -25,21 +27,22 @@ hyperbrowser/client/managers/sync_manager/profile.py,sha256=P6pQXeDiW40PN_XZJMzd
25
27
  hyperbrowser/client/managers/sync_manager/scrape.py,sha256=aNsTNZyPwzwCz6oCqzfoOWJm3qXUjwIIO68lIaCGzWE,6381
26
28
  hyperbrowser/client/managers/sync_manager/session.py,sha256=81sjAXPc3w3F1bI0if6z02wHrS5HYsStDQTpqUpk6Fo,3330
27
29
  hyperbrowser/client/managers/sync_manager/team.py,sha256=VKuKXpbGBZ-iwTDAlO0U0yvi2Ig4iJhafjx0e9xV_tk,341
28
- hyperbrowser/client/sync.py,sha256=S7v9GlrJig2iuRBFX9NPOzxWBDoEM13Pp18CT6vTXUw,1387
30
+ hyperbrowser/client/sync.py,sha256=Oi-d4upNRkAUS5T5LcJPun5hL6FPbODn_PcM1AERCrg,1519
29
31
  hyperbrowser/config.py,sha256=7P-sbcvqXVr8Qzubo5O6jJgzcCgB5DdwbeIgEjRZNlY,623
30
32
  hyperbrowser/exceptions.py,sha256=SUUkptK2OL36xDORYmSicaTYR7pMbxeWAjAgz35xnM8,1171
31
- hyperbrowser/models/__init__.py,sha256=lCYd9g7411AwoNaOVG1DQShoD847Dm1l8y8HHzsLXRM,5108
32
- hyperbrowser/models/agents/browser_use.py,sha256=hxQ_ZKmS6qvC4u8hC--GRAG45OoCByo8vA_6W7AXuRI,5674
33
- hyperbrowser/models/agents/claude_computer_use.py,sha256=gLP4ap9GzyZc9AS8o3nCT5xJ8sqGcOqgPdEVAAKVZAw,2699
34
- hyperbrowser/models/agents/cua.py,sha256=ao7AA6NBet31duCZLI5aiWydNiiHvgQTPxkxHR5r2Cw,3061
35
- hyperbrowser/models/agents/hyper_agent.py,sha256=bqRc9yWuwj3yRv6p--mbNSICRL-Qlj5tR7E_A7kozQk,3100
33
+ hyperbrowser/models/__init__.py,sha256=U5ODeAV1UnAaXS-90vmswz_fYm6VhrvYgG6ekPzxVaI,5911
34
+ hyperbrowser/models/agents/browser_use.py,sha256=Na3av_EivqOCtEjd-Bfm68sp3H_tr_cE8q1oFCjagUU,6303
35
+ hyperbrowser/models/agents/claude_computer_use.py,sha256=j7hBYwdOh_gljNk84_omEX2Wgtt3RbujlX6bH7JfdzE,3194
36
+ hyperbrowser/models/agents/cua.py,sha256=5w0nCwoixctA8-GJRCazJ_k243Own6sKkrjpnce86cw,3492
37
+ hyperbrowser/models/agents/hyper_agent.py,sha256=tHca1Xw6sHekF0SAL1buKMjeUjwmm8qciKFCWsJ1q0g,3728
38
+ hyperbrowser/models/computer_action.py,sha256=9CvnlfqwarBCjfek62_1gpRmeupU_3IhEnhkQ3iK8yw,3488
36
39
  hyperbrowser/models/consts.py,sha256=eJVHFIKqhb9AbJkbP7OY71fxI7bv3OhH1S040X2n0oc,6907
37
40
  hyperbrowser/models/crawl.py,sha256=XUS5Ja-Abl8gMyDtLIsRaEKa_taSOORMLOFCdAPgGaI,2820
38
41
  hyperbrowser/models/extension.py,sha256=nXjKXKt9R7RxyZ4hd3EvfqZsEGy_ufh1r5j2mqCLykQ,804
39
42
  hyperbrowser/models/extract.py,sha256=DXg0HtO44plAtcFOmqUpdp9P93tq45U2fLWxn5jdjAw,1745
40
43
  hyperbrowser/models/profile.py,sha256=GF0esQwru0oOs9sQ9DCuO8VX4GKPgRgKCVP8s7g0Pig,1846
41
44
  hyperbrowser/models/scrape.py,sha256=iMsUuMx3UFtSci6TVUpcH5ytbgwiImIXjviVcGZ_gBQ,5048
42
- hyperbrowser/models/session.py,sha256=LqHG9UcNs6zMP1O9gnCG58L4Tc2-e6EtapXsF7F4BPc,7840
45
+ hyperbrowser/models/session.py,sha256=E55mux8YpujIPNpZJPQyMgmRn5Q45Oc9xYMaINGr0nM,8026
43
46
  hyperbrowser/models/team.py,sha256=dPBFL3TPO0AF_UzqP4sENMPhku_5j00uwC24zG558MU,338
44
47
  hyperbrowser/tools/__init__.py,sha256=L-2xveBbSuIBQBQhJmXGCLNYEUq_XHDdgz_gBAsmQZo,4605
45
48
  hyperbrowser/tools/anthropic.py,sha256=bo8jn2ROHCp_hpX1_cjkCk7qU0LmuBr_gvlvM0f5OMc,2699
@@ -48,7 +51,7 @@ hyperbrowser/tools/schema.py,sha256=YFUAoQjx_SpjezS3UQdTCCn4xMdN3CgEeKAlulkIATc,
48
51
  hyperbrowser/transport/async_transport.py,sha256=6HKoeM5TutIqraEscEWobvSPWF3iVKh2hPflGNKwykw,4128
49
52
  hyperbrowser/transport/base.py,sha256=ildpMrDiM8nvrSGrH2LTOafmB17T7PQB_NQ1ODA378U,1703
50
53
  hyperbrowser/transport/sync.py,sha256=aUVpxWF8sqSycLNKxVNEZvlsZSoqc1eHgPK1Y1QA1u8,3422
51
- hyperbrowser-0.48.0.dist-info/LICENSE,sha256=NbSXeOZ2JKnPpkyLBYkfPqt9eWNy-Lx3xb4sjsSR9mI,1069
52
- hyperbrowser-0.48.0.dist-info/METADATA,sha256=LcrtpRNF4FRkpVJN0iUMhGd5gbst7_5hWgEOn4DZMjQ,3578
53
- hyperbrowser-0.48.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
54
- hyperbrowser-0.48.0.dist-info/RECORD,,
54
+ hyperbrowser-0.50.0.dist-info/LICENSE,sha256=NbSXeOZ2JKnPpkyLBYkfPqt9eWNy-Lx3xb4sjsSR9mI,1069
55
+ hyperbrowser-0.50.0.dist-info/METADATA,sha256=J09fHmsIpKmKG7Pvrr2HAR4jy4FpI6MLasMDpQozrOc,3578
56
+ hyperbrowser-0.50.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
57
+ hyperbrowser-0.50.0.dist-info/RECORD,,