hyperbrowser 0.89.1__tar.gz → 0.89.3__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.89.1 → hyperbrowser-0.89.3}/PKG-INFO +12 -2
  2. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/README.md +11 -1
  3. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/sandbox.py +12 -0
  4. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/sandbox.py +12 -0
  5. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/consts.py +4 -1
  6. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/sandbox.py +17 -0
  7. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/pyproject.toml +1 -1
  8. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/LICENSE +0 -0
  9. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/__init__.py +0 -0
  10. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/async_client.py +0 -0
  11. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/base.py +0 -0
  12. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/agents/__init__.py +0 -0
  13. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/agents/browser_use.py +0 -0
  14. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/agents/claude_computer_use.py +0 -0
  15. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/agents/cua.py +0 -0
  16. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/agents/gemini_computer_use.py +0 -0
  17. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/agents/hyper_agent.py +0 -0
  18. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/computer_action.py +0 -0
  19. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/crawl.py +0 -0
  20. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/extension.py +0 -0
  21. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/extract.py +0 -0
  22. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/profile.py +0 -0
  23. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/sandboxes/__init__.py +0 -0
  24. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_files.py +0 -0
  25. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_processes.py +0 -0
  26. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_terminal.py +0 -0
  27. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_transport.py +0 -0
  28. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/scrape.py +0 -0
  29. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/session.py +0 -0
  30. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/team.py +0 -0
  31. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/web/__init__.py +0 -0
  32. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/web/batch_fetch.py +0 -0
  33. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/async_manager/web/crawl.py +0 -0
  34. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sandboxes/__init__.py +0 -0
  35. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sandboxes/shared.py +0 -0
  36. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/agents/__init__.py +0 -0
  37. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/agents/browser_use.py +0 -0
  38. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/agents/claude_computer_use.py +0 -0
  39. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/agents/cua.py +0 -0
  40. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/agents/gemini_computer_use.py +0 -0
  41. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/agents/hyper_agent.py +0 -0
  42. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/computer_action.py +0 -0
  43. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/crawl.py +0 -0
  44. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/extension.py +0 -0
  45. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/extract.py +0 -0
  46. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/profile.py +0 -0
  47. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/sandboxes/__init__.py +0 -0
  48. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_files.py +0 -0
  49. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_processes.py +0 -0
  50. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_terminal.py +0 -0
  51. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_transport.py +0 -0
  52. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/scrape.py +0 -0
  53. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/session.py +0 -0
  54. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/team.py +0 -0
  55. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/web/__init__.py +0 -0
  56. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/web/batch_fetch.py +0 -0
  57. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/managers/sync_manager/web/crawl.py +0 -0
  58. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/client/sync.py +0 -0
  59. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/config.py +0 -0
  60. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/exceptions.py +0 -0
  61. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/__init__.py +0 -0
  62. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/agents/browser_use.py +0 -0
  63. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/agents/claude_computer_use.py +0 -0
  64. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/agents/cua.py +0 -0
  65. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/agents/gemini_computer_use.py +0 -0
  66. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/agents/hyper_agent.py +0 -0
  67. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/computer_action.py +0 -0
  68. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/crawl.py +0 -0
  69. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/extension.py +0 -0
  70. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/extract.py +0 -0
  71. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/profile.py +0 -0
  72. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/scrape.py +0 -0
  73. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/session.py +0 -0
  74. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/team.py +0 -0
  75. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/web/batch_fetch.py +0 -0
  76. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/web/common.py +0 -0
  77. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/web/crawl.py +0 -0
  78. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/web/fetch.py +0 -0
  79. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/models/web/search.py +0 -0
  80. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/sandbox_common.py +0 -0
  81. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/tools/__init__.py +0 -0
  82. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/tools/anthropic.py +0 -0
  83. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/tools/openai.py +0 -0
  84. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/tools/schema.py +0 -0
  85. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/transport/async_transport.py +0 -0
  86. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/transport/base.py +0 -0
  87. {hyperbrowser-0.89.1 → hyperbrowser-0.89.3}/hyperbrowser/transport/sync.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hyperbrowser
3
- Version: 0.89.1
3
+ Version: 0.89.3
4
4
  Summary: Python SDK for hyperbrowser
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -141,15 +141,21 @@ client = Hyperbrowser(api_key="test-key")
141
141
  sandbox = client.sandboxes.create(
142
142
  CreateSandboxParams(
143
143
  image_name="node",
144
+ cpu=4,
145
+ memory_mib=4096,
146
+ disk_mib=8192,
144
147
  exposed_ports=[SandboxExposeParams(port=3000, auth=True)],
145
148
  )
146
149
  )
147
150
 
148
151
  print(sandbox.exposed_ports[0].browser_url)
152
+ print(sandbox.cpu, sandbox.memory_mib, sandbox.disk_mib)
149
153
  sandbox.stop()
150
154
  client.close()
151
155
  ```
152
156
 
157
+ `cpu`, `memory_mib`, and `disk_mib` are only supported for image launches.
158
+
153
159
  ### List sandboxes with filters
154
160
 
155
161
  ```python
@@ -190,7 +196,11 @@ from hyperbrowser import Hyperbrowser
190
196
  from hyperbrowser.models import CreateSandboxParams, SandboxExposeParams
191
197
 
192
198
  client = Hyperbrowser(api_key="test-key")
193
- sandbox = client.sandboxes.create(CreateSandboxParams(image_name="node"))
199
+ sandbox = client.sandboxes.create(
200
+ CreateSandboxParams(
201
+ image_name="node", cpu=2, memory_mib=2048, disk_mib=8192
202
+ )
203
+ )
194
204
 
195
205
  result = sandbox.expose(SandboxExposeParams(port=8080, auth=True))
196
206
  print(result.url, result.browser_url)
@@ -115,15 +115,21 @@ client = Hyperbrowser(api_key="test-key")
115
115
  sandbox = client.sandboxes.create(
116
116
  CreateSandboxParams(
117
117
  image_name="node",
118
+ cpu=4,
119
+ memory_mib=4096,
120
+ disk_mib=8192,
118
121
  exposed_ports=[SandboxExposeParams(port=3000, auth=True)],
119
122
  )
120
123
  )
121
124
 
122
125
  print(sandbox.exposed_ports[0].browser_url)
126
+ print(sandbox.cpu, sandbox.memory_mib, sandbox.disk_mib)
123
127
  sandbox.stop()
124
128
  client.close()
125
129
  ```
126
130
 
131
+ `cpu`, `memory_mib`, and `disk_mib` are only supported for image launches.
132
+
127
133
  ### List sandboxes with filters
128
134
 
129
135
  ```python
@@ -164,7 +170,11 @@ from hyperbrowser import Hyperbrowser
164
170
  from hyperbrowser.models import CreateSandboxParams, SandboxExposeParams
165
171
 
166
172
  client = Hyperbrowser(api_key="test-key")
167
- sandbox = client.sandboxes.create(CreateSandboxParams(image_name="node"))
173
+ sandbox = client.sandboxes.create(
174
+ CreateSandboxParams(
175
+ image_name="node", cpu=2, memory_mib=2048, disk_mib=8192
176
+ )
177
+ )
168
178
 
169
179
  result = sandbox.expose(SandboxExposeParams(port=8080, auth=True))
170
180
  print(result.url, result.browser_url)
@@ -114,6 +114,18 @@ class SandboxHandle:
114
114
  def session_url(self) -> str:
115
115
  return self._detail.session_url
116
116
 
117
+ @property
118
+ def cpu(self):
119
+ return self._detail.cpu
120
+
121
+ @property
122
+ def memory_mib(self):
123
+ return self._detail.memory_mib
124
+
125
+ @property
126
+ def disk_mib(self):
127
+ return self._detail.disk_mib
128
+
117
129
  @property
118
130
  def exposed_ports(self):
119
131
  return self._detail.exposed_ports
@@ -114,6 +114,18 @@ class SandboxHandle:
114
114
  def session_url(self) -> str:
115
115
  return self._detail.session_url
116
116
 
117
+ @property
118
+ def cpu(self):
119
+ return self._detail.cpu
120
+
121
+ @property
122
+ def memory_mib(self):
123
+ return self._detail.memory_mib
124
+
125
+ @property
126
+ def disk_mib(self):
127
+ return self._detail.disk_mib
128
+
117
129
  @property
118
130
  def exposed_ports(self):
119
131
  return self._detail.exposed_ports
@@ -70,7 +70,10 @@ ClaudeComputerUseLlm = Literal[
70
70
  "claude-3-7-sonnet-20250219",
71
71
  ]
72
72
  CuaLlm = Literal["computer-use-preview", "gpt-5.4", "gpt-5.4-mini"]
73
- GeminiComputerUseLlm = Literal["gemini-2.5-computer-use-preview-10-2025",]
73
+ GeminiComputerUseLlm = Literal[
74
+ "gemini-3-flash-preview",
75
+ "gemini-2.5-computer-use-preview-10-2025",
76
+ ]
74
77
  SessionRegion = Literal[
75
78
  "us-central",
76
79
  "asia-south",
@@ -116,6 +116,9 @@ class Sandbox(SandboxBaseModel):
116
116
  session_url: str = Field(alias="sessionUrl")
117
117
  duration: int
118
118
  proxy_bytes_used: Optional[int] = Field(default=None, alias="proxyBytesUsed")
119
+ cpu: Optional[int] = Field(default=None, alias="vcpus")
120
+ memory_mib: Optional[int] = Field(default=None, alias="memMiB")
121
+ disk_mib: Optional[int] = Field(default=None, alias="diskSizeMiB")
119
122
  runtime: SandboxRuntimeTarget
120
123
  exposed_ports: List[SandboxExposeResult] = Field(
121
124
  default_factory=list,
@@ -128,6 +131,9 @@ class Sandbox(SandboxBaseModel):
128
131
  "data_consumed",
129
132
  "proxy_data_consumed",
130
133
  "proxy_bytes_used",
134
+ "cpu",
135
+ "memory_mib",
136
+ "disk_mib",
131
137
  mode="before",
132
138
  )
133
139
  @classmethod
@@ -177,6 +183,11 @@ class CreateSandboxParams(SandboxBaseModel):
177
183
  timeout_minutes: Optional[int] = Field(
178
184
  default=None, serialization_alias="timeoutMinutes"
179
185
  )
186
+ cpu: Optional[int] = Field(default=None, ge=1, serialization_alias="vcpus")
187
+ memory_mib: Optional[int] = Field(default=None, ge=1, serialization_alias="memMiB")
188
+ disk_mib: Optional[int] = Field(
189
+ default=None, ge=1, serialization_alias="diskSizeMiB"
190
+ )
180
191
 
181
192
  @model_validator(mode="after")
182
193
  def validate_launch_source(self):
@@ -191,6 +202,12 @@ class CreateSandboxParams(SandboxBaseModel):
191
202
  raise ValueError(
192
203
  "Provide exactly one start source: snapshot_name or image_name"
193
204
  )
205
+ if self.snapshot_name and any(
206
+ value is not None for value in (self.cpu, self.memory_mib, self.disk_mib)
207
+ ):
208
+ raise ValueError(
209
+ "cpu, memory_mib, and disk_mib are only supported for image launches"
210
+ )
194
211
  return self
195
212
 
196
213
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "hyperbrowser"
3
- version = "0.89.1"
3
+ version = "0.89.3"
4
4
  description = "Python SDK for hyperbrowser"
5
5
  authors = ["Nikhil Shahi <nshahi1998@gmail.com>"]
6
6
  license = "MIT"
File without changes