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.
- hyperbrowser/client/async_client.py +2 -0
- hyperbrowser/client/managers/async_manager/computer_action.py +120 -0
- hyperbrowser/client/managers/sync_manager/computer_action.py +120 -0
- hyperbrowser/client/sync.py +2 -0
- hyperbrowser/models/__init__.py +25 -0
- hyperbrowser/models/computer_action.py +135 -0
- hyperbrowser/models/session.py +4 -0
- {hyperbrowser-0.49.0.dist-info → hyperbrowser-0.50.0.dist-info}/METADATA +1 -1
- {hyperbrowser-0.49.0.dist-info → hyperbrowser-0.50.0.dist-info}/RECORD +11 -8
- {hyperbrowser-0.49.0.dist-info → hyperbrowser-0.50.0.dist-info}/LICENSE +0 -0
- {hyperbrowser-0.49.0.dist-info → hyperbrowser-0.50.0.dist-info}/WHEEL +0 -0
|
@@ -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)
|
hyperbrowser/client/sync.py
CHANGED
|
@@ -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()
|
hyperbrowser/models/__init__.py
CHANGED
|
@@ -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
|
hyperbrowser/models/session.py
CHANGED
|
@@ -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,11 +1,12 @@
|
|
|
1
1
|
hyperbrowser/__init__.py,sha256=zWGcLhqhvWy6BTwuNpzWK1-0LpIn311ks-4U9nrsb7Y,187
|
|
2
|
-
hyperbrowser/client/async_client.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
52
|
-
hyperbrowser-0.
|
|
53
|
-
hyperbrowser-0.
|
|
54
|
-
hyperbrowser-0.
|
|
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,,
|
|
File without changes
|
|
File without changes
|