hyperbrowser 0.86.0__tar.gz → 0.87.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.
Files changed (87) hide show
  1. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/PKG-INFO +1 -1
  2. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/sandbox.py +33 -0
  3. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/sandbox.py +33 -0
  4. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/__init__.py +12 -0
  5. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/sandbox.py +49 -4
  6. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/pyproject.toml +1 -1
  7. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/LICENSE +0 -0
  8. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/README.md +0 -0
  9. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/__init__.py +0 -0
  10. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/async_client.py +0 -0
  11. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/base.py +0 -0
  12. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/agents/__init__.py +0 -0
  13. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/agents/browser_use.py +0 -0
  14. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/agents/claude_computer_use.py +0 -0
  15. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/agents/cua.py +0 -0
  16. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/agents/gemini_computer_use.py +0 -0
  17. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/agents/hyper_agent.py +0 -0
  18. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/computer_action.py +0 -0
  19. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/crawl.py +0 -0
  20. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/extension.py +0 -0
  21. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/extract.py +0 -0
  22. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/profile.py +0 -0
  23. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/sandboxes/__init__.py +0 -0
  24. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_files.py +0 -0
  25. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_processes.py +0 -0
  26. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_terminal.py +0 -0
  27. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_transport.py +0 -0
  28. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/scrape.py +0 -0
  29. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/session.py +0 -0
  30. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/team.py +0 -0
  31. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/web/__init__.py +0 -0
  32. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/web/batch_fetch.py +0 -0
  33. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/async_manager/web/crawl.py +0 -0
  34. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sandboxes/__init__.py +0 -0
  35. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sandboxes/shared.py +0 -0
  36. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/agents/__init__.py +0 -0
  37. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/agents/browser_use.py +0 -0
  38. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/agents/claude_computer_use.py +0 -0
  39. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/agents/cua.py +0 -0
  40. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/agents/gemini_computer_use.py +0 -0
  41. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/agents/hyper_agent.py +0 -0
  42. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/computer_action.py +0 -0
  43. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/crawl.py +0 -0
  44. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/extension.py +0 -0
  45. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/extract.py +0 -0
  46. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/profile.py +0 -0
  47. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/sandboxes/__init__.py +0 -0
  48. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_files.py +0 -0
  49. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_processes.py +0 -0
  50. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_terminal.py +0 -0
  51. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_transport.py +0 -0
  52. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/scrape.py +0 -0
  53. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/session.py +0 -0
  54. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/team.py +0 -0
  55. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/web/__init__.py +0 -0
  56. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/web/batch_fetch.py +0 -0
  57. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/managers/sync_manager/web/crawl.py +0 -0
  58. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/client/sync.py +0 -0
  59. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/config.py +0 -0
  60. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/exceptions.py +0 -0
  61. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/agents/browser_use.py +0 -0
  62. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/agents/claude_computer_use.py +0 -0
  63. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/agents/cua.py +0 -0
  64. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/agents/gemini_computer_use.py +0 -0
  65. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/agents/hyper_agent.py +0 -0
  66. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/computer_action.py +0 -0
  67. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/consts.py +0 -0
  68. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/crawl.py +0 -0
  69. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/extension.py +0 -0
  70. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/extract.py +0 -0
  71. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/profile.py +0 -0
  72. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/scrape.py +0 -0
  73. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/session.py +0 -0
  74. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/team.py +0 -0
  75. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/web/batch_fetch.py +0 -0
  76. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/web/common.py +0 -0
  77. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/web/crawl.py +0 -0
  78. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/web/fetch.py +0 -0
  79. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/models/web/search.py +0 -0
  80. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/sandbox_common.py +0 -0
  81. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/tools/__init__.py +0 -0
  82. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/tools/anthropic.py +0 -0
  83. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/tools/openai.py +0 -0
  84. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/tools/schema.py +0 -0
  85. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/transport/async_transport.py +0 -0
  86. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/transport/base.py +0 -0
  87. {hyperbrowser-0.86.0 → hyperbrowser-0.87.0}/hyperbrowser/transport/sync.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hyperbrowser
3
- Version: 0.86.0
3
+ Version: 0.87.0
4
4
  Summary: Python SDK for hyperbrowser
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -7,9 +7,14 @@ from ....models.sandbox import (
7
7
  SandboxExecParams,
8
8
  SandboxExposeParams,
9
9
  SandboxExposeResult,
10
+ SandboxImageListResponse,
11
+ SandboxListParams,
12
+ SandboxListResponse,
10
13
  SandboxMemorySnapshotParams,
11
14
  SandboxMemorySnapshotResult,
12
15
  SandboxRuntimeSession,
16
+ SandboxSnapshotListParams,
17
+ SandboxSnapshotListResponse,
13
18
  StartSandboxFromSnapshotParams,
14
19
  )
15
20
  from ....models.session import BasicResponse
@@ -288,6 +293,34 @@ class SandboxManager:
288
293
  await sandbox.connect()
289
294
  return sandbox
290
295
 
296
+ async def list(
297
+ self, params: SandboxListParams = SandboxListParams()
298
+ ) -> SandboxListResponse:
299
+ if not isinstance(params, SandboxListParams):
300
+ raise TypeError("params must be a SandboxListParams instance")
301
+ payload = await self._request(
302
+ "GET",
303
+ "/sandboxes",
304
+ params=params.model_dump(exclude_none=True, by_alias=True),
305
+ )
306
+ return SandboxListResponse(**payload)
307
+
308
+ async def list_images(self) -> SandboxImageListResponse:
309
+ payload = await self._request("GET", "/images")
310
+ return SandboxImageListResponse(**payload)
311
+
312
+ async def list_snapshots(
313
+ self, params: SandboxSnapshotListParams = SandboxSnapshotListParams()
314
+ ) -> SandboxSnapshotListResponse:
315
+ if not isinstance(params, SandboxSnapshotListParams):
316
+ raise TypeError("params must be a SandboxSnapshotListParams instance")
317
+ payload = await self._request(
318
+ "GET",
319
+ "/snapshots",
320
+ params=params.model_dump(exclude_none=True, by_alias=True),
321
+ )
322
+ return SandboxSnapshotListResponse(**payload)
323
+
291
324
  async def stop(self, sandbox_id: str) -> BasicResponse:
292
325
  payload = await self._request("PUT", f"/sandbox/{sandbox_id}/stop")
293
326
  return BasicResponse(**payload)
@@ -7,9 +7,14 @@ from ....models.sandbox import (
7
7
  SandboxExecParams,
8
8
  SandboxExposeParams,
9
9
  SandboxExposeResult,
10
+ SandboxImageListResponse,
11
+ SandboxListParams,
12
+ SandboxListResponse,
10
13
  SandboxMemorySnapshotParams,
11
14
  SandboxMemorySnapshotResult,
12
15
  SandboxRuntimeSession,
16
+ SandboxSnapshotListParams,
17
+ SandboxSnapshotListResponse,
13
18
  StartSandboxFromSnapshotParams,
14
19
  )
15
20
  from ....models.session import BasicResponse
@@ -288,6 +293,34 @@ class SandboxManager:
288
293
  sandbox.connect()
289
294
  return sandbox
290
295
 
296
+ def list(
297
+ self, params: SandboxListParams = SandboxListParams()
298
+ ) -> SandboxListResponse:
299
+ if not isinstance(params, SandboxListParams):
300
+ raise TypeError("params must be a SandboxListParams instance")
301
+ payload = self._request(
302
+ "GET",
303
+ "/sandboxes",
304
+ params=params.model_dump(exclude_none=True, by_alias=True),
305
+ )
306
+ return SandboxListResponse(**payload)
307
+
308
+ def list_images(self) -> SandboxImageListResponse:
309
+ payload = self._request("GET", "/images")
310
+ return SandboxImageListResponse(**payload)
311
+
312
+ def list_snapshots(
313
+ self, params: SandboxSnapshotListParams = SandboxSnapshotListParams()
314
+ ) -> SandboxSnapshotListResponse:
315
+ if not isinstance(params, SandboxSnapshotListParams):
316
+ raise TypeError("params must be a SandboxSnapshotListParams instance")
317
+ payload = self._request(
318
+ "GET",
319
+ "/snapshots",
320
+ params=params.model_dump(exclude_none=True, by_alias=True),
321
+ )
322
+ return SandboxSnapshotListResponse(**payload)
323
+
291
324
  def stop(self, sandbox_id: str) -> BasicResponse:
292
325
  payload = self._request("PUT", f"/sandbox/{sandbox_id}/stop")
293
326
  return BasicResponse(**payload)
@@ -246,6 +246,12 @@ from .sandbox import (
246
246
  StartSandboxFromSnapshotParams,
247
247
  SandboxListParams,
248
248
  SandboxListResponse,
249
+ SandboxImageListResponse,
250
+ SandboxImageSummary,
251
+ SandboxSnapshotStatus,
252
+ SandboxSnapshotListResponse,
253
+ SandboxSnapshotSummary,
254
+ SandboxSnapshotListParams,
249
255
  SandboxMemorySnapshotParams,
250
256
  SandboxMemorySnapshotResult,
251
257
  SandboxExposeParams,
@@ -490,6 +496,12 @@ __all__ = [
490
496
  "StartSandboxFromSnapshotParams",
491
497
  "SandboxListParams",
492
498
  "SandboxListResponse",
499
+ "SandboxImageListResponse",
500
+ "SandboxImageSummary",
501
+ "SandboxSnapshotStatus",
502
+ "SandboxSnapshotListResponse",
503
+ "SandboxSnapshotSummary",
504
+ "SandboxSnapshotListParams",
493
505
  "SandboxMemorySnapshotParams",
494
506
  "SandboxMemorySnapshotResult",
495
507
  "SandboxExposeParams",
@@ -23,6 +23,7 @@ SandboxProcessStatus = Literal[
23
23
  "killed",
24
24
  "timed_out",
25
25
  ]
26
+ SandboxSnapshotStatus = Literal["creating", "created", "failed"]
26
27
  SandboxFileType = Literal["file", "dir"]
27
28
  SandboxFileEncoding = Literal["utf8", "base64"]
28
29
  SandboxFileReadFormat = Literal["text", "bytes", "blob", "stream"]
@@ -164,10 +165,9 @@ class StartSandboxFromSnapshotParams(CreateSandboxParams):
164
165
 
165
166
 
166
167
  class SandboxListParams(SandboxBaseModel):
167
- status: Optional[SandboxStatus] = None
168
- page: Optional[int] = None
169
- limit: Optional[int] = None
170
- search: Optional[str] = None
168
+ status: Optional[SandboxStatus] = Field(default=None, exclude=None)
169
+ page: int = Field(default=1, ge=1)
170
+ limit: int = Field(default=10, ge=1)
171
171
 
172
172
 
173
173
  class SandboxListResponse(SandboxBaseModel):
@@ -177,6 +177,51 @@ class SandboxListResponse(SandboxBaseModel):
177
177
  per_page: int = Field(alias="perPage")
178
178
 
179
179
 
180
+ class SandboxImageSummary(SandboxBaseModel):
181
+ id: str
182
+ image_name: str = Field(alias="imageName")
183
+ namespace: str
184
+ uploaded: bool
185
+ created_at: datetime = Field(alias="createdAt")
186
+ updated_at: datetime = Field(alias="updatedAt")
187
+
188
+
189
+ class SandboxImageListResponse(SandboxBaseModel):
190
+ images: List[SandboxImageSummary]
191
+ # TODO: add pagination metadata when /api/images supports it.
192
+ # total_count: Optional[int] = Field(default=None, alias="totalCount")
193
+ # page: Optional[int] = None
194
+ # per_page: Optional[int] = Field(default=None, alias="perPage")
195
+
196
+
197
+ class SandboxSnapshotSummary(SandboxBaseModel):
198
+ id: str
199
+ snapshot_name: str = Field(alias="snapshotName")
200
+ namespace: str
201
+ image_namespace: str = Field(alias="imageNamespace")
202
+ image_name: str = Field(alias="imageName")
203
+ image_id: str = Field(alias="imageId")
204
+ status: SandboxSnapshotStatus
205
+ compatibility_tag: Optional[str] = Field(default=None, alias="compatibilityTag")
206
+ metadata: Dict[str, object]
207
+ uploaded: bool
208
+ created_at: datetime = Field(alias="createdAt")
209
+ updated_at: datetime = Field(alias="updatedAt")
210
+
211
+
212
+ class SandboxSnapshotListParams(SandboxBaseModel):
213
+ status: Optional[SandboxSnapshotStatus] = Field(default=None, exclude=None)
214
+ limit: Optional[int] = Field(default=None, ge=1)
215
+
216
+
217
+ class SandboxSnapshotListResponse(SandboxBaseModel):
218
+ snapshots: List[SandboxSnapshotSummary]
219
+ # TODO: add pagination metadata when /api/snapshots supports it.
220
+ # total_count: Optional[int] = Field(default=None, alias="totalCount")
221
+ # page: Optional[int] = None
222
+ # per_page: Optional[int] = Field(default=None, alias="perPage")
223
+
224
+
180
225
  class SandboxMemorySnapshotParams(SandboxBaseModel):
181
226
  snapshot_name: Optional[str] = Field(
182
227
  default=None, serialization_alias="snapshotName"
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "hyperbrowser"
3
- version = "0.86.0"
3
+ version = "0.87.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