hyperbrowser 0.57.0__py3-none-any.whl → 0.58.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.

@@ -10,12 +10,32 @@ from ....models.session import (
10
10
  SessionListResponse,
11
11
  SessionRecording,
12
12
  UploadFileResponse,
13
+ SessionEventLogListParams,
14
+ SessionEventLogListResponse,
15
+ SessionEventLog,
13
16
  )
14
17
 
15
18
 
19
+ class SessionEventLogsManager:
20
+ def __init__(self, client):
21
+ self._client = client
22
+
23
+ async def list(
24
+ self,
25
+ session_id: str,
26
+ params: SessionEventLogListParams = SessionEventLogListParams(),
27
+ ) -> List[SessionEventLog]:
28
+ response = await self._client.transport.get(
29
+ self._client._build_url(f"/session/{session_id}/event-logs"),
30
+ params=params.model_dump(exclude_none=True, by_alias=True),
31
+ )
32
+ return SessionEventLogListResponse(**response.data)
33
+
34
+
16
35
  class SessionManager:
17
36
  def __init__(self, client):
18
37
  self._client = client
38
+ self.event_logs = SessionEventLogsManager(client)
19
39
 
20
40
  async def create(self, params: CreateSessionParams = None) -> SessionDetail:
21
41
  response = await self._client.transport.post(
@@ -10,12 +10,32 @@ from ....models.session import (
10
10
  SessionListResponse,
11
11
  SessionRecording,
12
12
  UploadFileResponse,
13
+ SessionEventLogListParams,
14
+ SessionEventLogListResponse,
15
+ SessionEventLog,
13
16
  )
14
17
 
15
18
 
19
+ class SessionEventLogsManager:
20
+ def __init__(self, client):
21
+ self._client = client
22
+
23
+ def list(
24
+ self,
25
+ session_id: str,
26
+ params: SessionEventLogListParams = SessionEventLogListParams(),
27
+ ) -> SessionEventLogListResponse:
28
+ response = self._client.transport.get(
29
+ self._client._build_url(f"/session/{session_id}/event-logs"),
30
+ params=params.model_dump(exclude_none=True, by_alias=True),
31
+ )
32
+ return SessionEventLogListResponse(**response.data)
33
+
34
+
16
35
  class SessionManager:
17
36
  def __init__(self, client):
18
37
  self._client = client
38
+ self.event_logs = SessionEventLogsManager(client)
19
39
 
20
40
  def create(self, params: CreateSessionParams = None) -> SessionDetail:
21
41
  response = self._client.transport.post(
@@ -49,6 +49,7 @@ from .consts import (
49
49
  ScrapePageStatus,
50
50
  ScrapeScreenshotFormat,
51
51
  ScrapeWaitUntil,
52
+ SessionEventLogType,
52
53
  State,
53
54
  )
54
55
  from .crawl import (
@@ -119,6 +120,9 @@ from .session import (
119
120
  SessionListResponse,
120
121
  SessionRecording,
121
122
  SessionStatus,
123
+ SessionEventLog,
124
+ SessionEventLogListParams,
125
+ SessionEventLogListResponse,
122
126
  UploadFileResponse,
123
127
  )
124
128
  from .team import TeamCreditInfo
@@ -139,6 +143,7 @@ __all__ = [
139
143
  "ScrapePageStatus",
140
144
  "ScrapeScreenshotFormat",
141
145
  "ScrapeWaitUntil",
146
+ "SessionEventLogType",
142
147
  "State",
143
148
  # agents
144
149
  "HyperAgentTaskStatus",
@@ -225,6 +230,9 @@ __all__ = [
225
230
  "SessionListResponse",
226
231
  "SessionRecording",
227
232
  "SessionStatus",
233
+ "SessionEventLog",
234
+ "SessionEventLogListParams",
235
+ "SessionEventLogListResponse",
228
236
  "UploadFileResponse",
229
237
  # team
230
238
  "TeamCreditInfo",
@@ -10,6 +10,7 @@ RecordingStatus = Literal[
10
10
  DownloadsStatus = Literal[
11
11
  "not_enabled", "pending", "in_progress", "completed", "failed"
12
12
  ]
13
+ SessionEventLogType = Literal["captcha_detected", "captcha_solved", "captcha_error"]
13
14
 
14
15
  POLLING_ATTEMPTS = 5
15
16
 
@@ -1,5 +1,5 @@
1
1
  from datetime import datetime
2
- from typing import Any, List, Literal, Optional, Union
2
+ from typing import Any, List, Literal, Optional, Union, Dict
3
3
  from .computer_action import ComputerActionParams, ComputerActionResponse
4
4
 
5
5
  from pydantic import BaseModel, ConfigDict, Field, field_validator
@@ -13,6 +13,7 @@ from hyperbrowser.models.consts import (
13
13
  RecordingStatus,
14
14
  State,
15
15
  SessionRegion,
16
+ SessionEventLogType,
16
17
  )
17
18
 
18
19
  SessionStatus = Literal["active", "closed", "error"]
@@ -147,7 +148,9 @@ class CreateSessionParams(BaseModel):
147
148
  populate_by_alias=True,
148
149
  )
149
150
 
150
- use_ultra_stealth: bool = Field(default=False, serialization_alias="useUltraStealth")
151
+ use_ultra_stealth: bool = Field(
152
+ default=False, serialization_alias="useUltraStealth"
153
+ )
151
154
  use_stealth: bool = Field(default=False, serialization_alias="useStealth")
152
155
  use_proxy: bool = Field(default=False, serialization_alias="useProxy")
153
156
  proxy_server: Optional[str] = Field(default=None, serialization_alias="proxyServer")
@@ -280,3 +283,48 @@ class UploadFileResponse(BaseModel):
280
283
  )
281
284
 
282
285
  message: str = Field(alias="message")
286
+
287
+
288
+ class SessionEventLog(BaseModel):
289
+ model_config = ConfigDict(
290
+ populate_by_alias=True,
291
+ )
292
+
293
+ id: str = Field(alias="id")
294
+ session_id: str = Field(alias="sessionId")
295
+ target_id: str = Field(alias="targetId")
296
+ page_url: str = Field(alias="pageUrl")
297
+ team_id: str = Field(alias="teamId")
298
+ type: SessionEventLogType = Field(alias="type")
299
+ metadata: Dict[str, Any] = Field(alias="metadata")
300
+ timestamp: int = Field(alias="timestamp")
301
+
302
+
303
+ class SessionEventLogListParams(BaseModel):
304
+ model_config = ConfigDict(
305
+ populate_by_alias=True,
306
+ )
307
+
308
+ page: Optional[int] = Field(default=None, serialization_alias="page")
309
+ limit: Optional[int] = Field(default=None, serialization_alias="limit")
310
+ start_timestamp: Optional[int] = Field(
311
+ default=None, serialization_alias="startTimestamp"
312
+ )
313
+ end_timestamp: Optional[int] = Field(
314
+ default=None, serialization_alias="endTimestamp"
315
+ )
316
+ target_id: Optional[str] = Field(default=None, serialization_alias="targetId")
317
+ types: Optional[List[SessionEventLogType]] = Field(
318
+ default=None, serialization_alias="types"
319
+ )
320
+
321
+
322
+ class SessionEventLogListResponse(BaseModel):
323
+ model_config = ConfigDict(
324
+ populate_by_alias=True,
325
+ )
326
+
327
+ data: List[SessionEventLog] = Field(alias="data")
328
+ total_count: int = Field(alias="totalCount")
329
+ page: int = Field(alias="page")
330
+ per_page: int = Field(alias="perPage")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hyperbrowser
3
- Version: 0.57.0
3
+ Version: 0.58.0
4
4
  Summary: Python SDK for hyperbrowser
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -12,7 +12,7 @@ hyperbrowser/client/managers/async_manager/extension.py,sha256=a-xYtXXdCspukYtsg
12
12
  hyperbrowser/client/managers/async_manager/extract.py,sha256=wZO696_3Mse3tnsHgpSXibo6IfwcO5K1lWstcO_2GjQ,2492
13
13
  hyperbrowser/client/managers/async_manager/profile.py,sha256=cQ4cYVwL83heQwEnQiBw0PHk1HWK7DWFXmmBnRXJt0E,1514
14
14
  hyperbrowser/client/managers/async_manager/scrape.py,sha256=akVgbatTTHDFkmxugxcQpIPEwjSPm7VloJVDdbAPRh0,6560
15
- hyperbrowser/client/managers/async_manager/session.py,sha256=-bp5wG8Is6J3NR4vIIFcFgpIjBK8GnOsWg09XddkWhg,3494
15
+ hyperbrowser/client/managers/async_manager/session.py,sha256=2PLXcwvh38ouX3ctOtizhOlmK0NH4HEtH5rKXaxEH8w,4166
16
16
  hyperbrowser/client/managers/async_manager/team.py,sha256=DHRd7igcuMG16WfM1-nSnpqaSNvwEzBnTGv7wRuaRdI,353
17
17
  hyperbrowser/client/managers/sync_manager/agents/__init__.py,sha256=GUkUBxoqW6vchz3-yNlUaE8TdEClNdp3RliHYMT1fsE,432
18
18
  hyperbrowser/client/managers/sync_manager/agents/browser_use.py,sha256=HXl8GM47DZuK4A-3DpwbLDJCnzEL8ndn9YfDAEljZFk,2765
@@ -25,24 +25,24 @@ hyperbrowser/client/managers/sync_manager/extension.py,sha256=1YoyTZtMo43trl9jAs
25
25
  hyperbrowser/client/managers/sync_manager/extract.py,sha256=rNSxAMR95_nL4qHuatPSzXrYFUGbLQE1xm9Us1myy9s,2391
26
26
  hyperbrowser/client/managers/sync_manager/profile.py,sha256=P6pQXeDiW40PN_XZJMzdr59FxwysFJ1fG1pOt5CbvtY,1466
27
27
  hyperbrowser/client/managers/sync_manager/scrape.py,sha256=aNsTNZyPwzwCz6oCqzfoOWJm3qXUjwIIO68lIaCGzWE,6381
28
- hyperbrowser/client/managers/sync_manager/session.py,sha256=81sjAXPc3w3F1bI0if6z02wHrS5HYsStDQTpqUpk6Fo,3330
28
+ hyperbrowser/client/managers/sync_manager/session.py,sha256=njiJZlHbkZ0vl1X8igWARkEEMHG1LIlCfQNhZJmtJIs,3996
29
29
  hyperbrowser/client/managers/sync_manager/team.py,sha256=VKuKXpbGBZ-iwTDAlO0U0yvi2Ig4iJhafjx0e9xV_tk,341
30
30
  hyperbrowser/client/sync.py,sha256=Oi-d4upNRkAUS5T5LcJPun5hL6FPbODn_PcM1AERCrg,1519
31
31
  hyperbrowser/config.py,sha256=7P-sbcvqXVr8Qzubo5O6jJgzcCgB5DdwbeIgEjRZNlY,623
32
32
  hyperbrowser/exceptions.py,sha256=SUUkptK2OL36xDORYmSicaTYR7pMbxeWAjAgz35xnM8,1171
33
- hyperbrowser/models/__init__.py,sha256=U5ODeAV1UnAaXS-90vmswz_fYm6VhrvYgG6ekPzxVaI,5911
33
+ hyperbrowser/models/__init__.py,sha256=eV1jGe1fu1NbMJDR8CqftJPR5byM4Bi0UK-XCTejeLk,6139
34
34
  hyperbrowser/models/agents/browser_use.py,sha256=Na3av_EivqOCtEjd-Bfm68sp3H_tr_cE8q1oFCjagUU,6303
35
35
  hyperbrowser/models/agents/claude_computer_use.py,sha256=RflxYn2Js4TQQsAM3liTBoWJkIViYjOuBVFOPR4sTho,3311
36
36
  hyperbrowser/models/agents/cua.py,sha256=mDFC3hVWQ3OS9wpjRTPdJgXaIOLDw00GGPD_pURo8Tw,3609
37
37
  hyperbrowser/models/agents/hyper_agent.py,sha256=tHca1Xw6sHekF0SAL1buKMjeUjwmm8qciKFCWsJ1q0g,3728
38
38
  hyperbrowser/models/computer_action.py,sha256=9CvnlfqwarBCjfek62_1gpRmeupU_3IhEnhkQ3iK8yw,3488
39
- hyperbrowser/models/consts.py,sha256=YKi3PNIQvpBEvyP7NO_uTfh118w8NFAX_AXNDY6Ikws,6984
39
+ hyperbrowser/models/consts.py,sha256=au5wkKgUpdnILGkUWjVizxvP7J-or8qYftiXtquPb_s,7069
40
40
  hyperbrowser/models/crawl.py,sha256=XUS5Ja-Abl8gMyDtLIsRaEKa_taSOORMLOFCdAPgGaI,2820
41
41
  hyperbrowser/models/extension.py,sha256=nXjKXKt9R7RxyZ4hd3EvfqZsEGy_ufh1r5j2mqCLykQ,804
42
42
  hyperbrowser/models/extract.py,sha256=DXg0HtO44plAtcFOmqUpdp9P93tq45U2fLWxn5jdjAw,1745
43
43
  hyperbrowser/models/profile.py,sha256=GF0esQwru0oOs9sQ9DCuO8VX4GKPgRgKCVP8s7g0Pig,1846
44
44
  hyperbrowser/models/scrape.py,sha256=iMsUuMx3UFtSci6TVUpcH5ytbgwiImIXjviVcGZ_gBQ,5048
45
- hyperbrowser/models/session.py,sha256=2c-s_2cbnzP8ZOSg9olIPdNlRspDguNt5MXbRxqmJX4,8775
45
+ hyperbrowser/models/session.py,sha256=z0j_QjZhT8MsaVEB5bE2vCLw7ARYwDO_kvgRyr8ljvs,10262
46
46
  hyperbrowser/models/team.py,sha256=dPBFL3TPO0AF_UzqP4sENMPhku_5j00uwC24zG558MU,338
47
47
  hyperbrowser/tools/__init__.py,sha256=L-2xveBbSuIBQBQhJmXGCLNYEUq_XHDdgz_gBAsmQZo,4605
48
48
  hyperbrowser/tools/anthropic.py,sha256=bo8jn2ROHCp_hpX1_cjkCk7qU0LmuBr_gvlvM0f5OMc,2699
@@ -51,7 +51,7 @@ hyperbrowser/tools/schema.py,sha256=YFUAoQjx_SpjezS3UQdTCCn4xMdN3CgEeKAlulkIATc,
51
51
  hyperbrowser/transport/async_transport.py,sha256=6HKoeM5TutIqraEscEWobvSPWF3iVKh2hPflGNKwykw,4128
52
52
  hyperbrowser/transport/base.py,sha256=ildpMrDiM8nvrSGrH2LTOafmB17T7PQB_NQ1ODA378U,1703
53
53
  hyperbrowser/transport/sync.py,sha256=aUVpxWF8sqSycLNKxVNEZvlsZSoqc1eHgPK1Y1QA1u8,3422
54
- hyperbrowser-0.57.0.dist-info/METADATA,sha256=EdA2qk2YXqd49bAWBS2WUHp2RHr08NTyauOuVUXSYL4,3651
55
- hyperbrowser-0.57.0.dist-info/WHEEL,sha256=M5asmiAlL6HEcOq52Yi5mmk9KmTVjY2RDPtO4p9DMrc,88
56
- hyperbrowser-0.57.0.dist-info/licenses/LICENSE,sha256=NbSXeOZ2JKnPpkyLBYkfPqt9eWNy-Lx3xb4sjsSR9mI,1069
57
- hyperbrowser-0.57.0.dist-info/RECORD,,
54
+ hyperbrowser-0.58.0.dist-info/METADATA,sha256=29X8wG3-Q4e5FSFYJz0IRvQZRV_4fEIs7lkNp26C2lg,3651
55
+ hyperbrowser-0.58.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
56
+ hyperbrowser-0.58.0.dist-info/licenses/LICENSE,sha256=NbSXeOZ2JKnPpkyLBYkfPqt9eWNy-Lx3xb4sjsSR9mI,1069
57
+ hyperbrowser-0.58.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.2.0
2
+ Generator: poetry-core 2.2.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any