hyperbrowser 0.49.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()
@@ -92,6 +92,19 @@ from .scrape import (
92
92
  StartScrapeJobParams,
93
93
  StartScrapeJobResponse,
94
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
+ )
95
108
  from .session import (
96
109
  BasicResponse,
97
110
  CreateSessionParams,
@@ -215,4 +228,16 @@ __all__ = [
215
228
  "UploadFileResponse",
216
229
  # team
217
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",
218
243
  ]
@@ -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.49.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=aI4bTkfnlqXNr2x2LmrkKYtvC_pmWfnkK262CC6x39g,5300
33
+ hyperbrowser/models/__init__.py,sha256=U5ODeAV1UnAaXS-90vmswz_fYm6VhrvYgG6ekPzxVaI,5911
32
34
  hyperbrowser/models/agents/browser_use.py,sha256=Na3av_EivqOCtEjd-Bfm68sp3H_tr_cE8q1oFCjagUU,6303
33
35
  hyperbrowser/models/agents/claude_computer_use.py,sha256=j7hBYwdOh_gljNk84_omEX2Wgtt3RbujlX6bH7JfdzE,3194
34
36
  hyperbrowser/models/agents/cua.py,sha256=5w0nCwoixctA8-GJRCazJ_k243Own6sKkrjpnce86cw,3492
35
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.49.0.dist-info/LICENSE,sha256=NbSXeOZ2JKnPpkyLBYkfPqt9eWNy-Lx3xb4sjsSR9mI,1069
52
- hyperbrowser-0.49.0.dist-info/METADATA,sha256=FulmXAULPA73kFG2IVeDCjlXfw6winGsuI7x2pB3Ch8,3578
53
- hyperbrowser-0.49.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
54
- hyperbrowser-0.49.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,,