hyperbrowser 0.56.0__tar.gz → 0.58.0__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.

Potentially problematic release.


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

Files changed (57) hide show
  1. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/PKG-INFO +4 -2
  2. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/async_manager/session.py +20 -0
  3. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/sync_manager/session.py +20 -0
  4. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/models/__init__.py +8 -0
  5. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/models/consts.py +2 -0
  6. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/models/session.py +50 -1
  7. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/pyproject.toml +1 -1
  8. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/LICENSE +0 -0
  9. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/README.md +0 -0
  10. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/__init__.py +0 -0
  11. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/async_client.py +0 -0
  12. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/base.py +0 -0
  13. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/async_manager/agents/__init__.py +0 -0
  14. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/async_manager/agents/browser_use.py +0 -0
  15. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/async_manager/agents/claude_computer_use.py +0 -0
  16. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/async_manager/agents/cua.py +0 -0
  17. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/async_manager/agents/hyper_agent.py +0 -0
  18. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/async_manager/computer_action.py +0 -0
  19. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/async_manager/crawl.py +0 -0
  20. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/async_manager/extension.py +0 -0
  21. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/async_manager/extract.py +0 -0
  22. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/async_manager/profile.py +0 -0
  23. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/async_manager/scrape.py +0 -0
  24. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/async_manager/team.py +0 -0
  25. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/sync_manager/agents/__init__.py +0 -0
  26. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/sync_manager/agents/browser_use.py +0 -0
  27. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/sync_manager/agents/claude_computer_use.py +0 -0
  28. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/sync_manager/agents/cua.py +0 -0
  29. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/sync_manager/agents/hyper_agent.py +0 -0
  30. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/sync_manager/computer_action.py +0 -0
  31. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/sync_manager/crawl.py +0 -0
  32. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/sync_manager/extension.py +0 -0
  33. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/sync_manager/extract.py +0 -0
  34. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/sync_manager/profile.py +0 -0
  35. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/sync_manager/scrape.py +0 -0
  36. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/managers/sync_manager/team.py +0 -0
  37. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/client/sync.py +0 -0
  38. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/config.py +0 -0
  39. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/exceptions.py +0 -0
  40. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/models/agents/browser_use.py +0 -0
  41. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/models/agents/claude_computer_use.py +0 -0
  42. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/models/agents/cua.py +0 -0
  43. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/models/agents/hyper_agent.py +0 -0
  44. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/models/computer_action.py +0 -0
  45. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/models/crawl.py +0 -0
  46. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/models/extension.py +0 -0
  47. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/models/extract.py +0 -0
  48. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/models/profile.py +0 -0
  49. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/models/scrape.py +0 -0
  50. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/models/team.py +0 -0
  51. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/tools/__init__.py +0 -0
  52. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/tools/anthropic.py +0 -0
  53. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/tools/openai.py +0 -0
  54. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/tools/schema.py +0 -0
  55. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/transport/async_transport.py +0 -0
  56. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/transport/base.py +0 -0
  57. {hyperbrowser-0.56.0 → hyperbrowser-0.58.0}/hyperbrowser/transport/sync.py +0 -0
@@ -1,8 +1,9 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: hyperbrowser
3
- Version: 0.56.0
3
+ Version: 0.58.0
4
4
  Summary: Python SDK for hyperbrowser
5
5
  License: MIT
6
+ License-File: LICENSE
6
7
  Author: Nikhil Shahi
7
8
  Author-email: nshahi1998@gmail.com
8
9
  Requires-Python: >=3.8,<4.0
@@ -14,6 +15,7 @@ Classifier: Programming Language :: Python :: 3.10
14
15
  Classifier: Programming Language :: Python :: 3.11
15
16
  Classifier: Programming Language :: Python :: 3.12
16
17
  Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
17
19
  Requires-Dist: httpx (>=0.23.0,<1)
18
20
  Requires-Dist: jsonref (>=1.1.0)
19
21
  Requires-Dist: pydantic (>=2.0,<3)
@@ -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
 
@@ -39,6 +40,7 @@ ClaudeComputerUseLlm = Literal[
39
40
  SessionRegion = Literal[
40
41
  "us-central",
41
42
  "asia-south",
43
+ "us-dev",
42
44
  ]
43
45
 
44
46
  Country = Literal[
@@ -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,6 +148,9 @@ class CreateSessionParams(BaseModel):
147
148
  populate_by_alias=True,
148
149
  )
149
150
 
151
+ use_ultra_stealth: bool = Field(
152
+ default=False, serialization_alias="useUltraStealth"
153
+ )
150
154
  use_stealth: bool = Field(default=False, serialization_alias="useStealth")
151
155
  use_proxy: bool = Field(default=False, serialization_alias="useProxy")
152
156
  proxy_server: Optional[str] = Field(default=None, serialization_alias="proxyServer")
@@ -279,3 +283,48 @@ class UploadFileResponse(BaseModel):
279
283
  )
280
284
 
281
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
  [tool.poetry]
2
2
  name = "hyperbrowser"
3
- version = "0.56.0"
3
+ version = "0.58.0"
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