hyperbrowser 1.12.0__tar.gz → 1.12.1__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 (132) hide show
  1. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/PKG-INFO +42 -1
  2. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/README.md +41 -0
  3. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/__init__.py +10 -0
  4. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/agents/gemini_computer_use.py +4 -1
  5. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/consts.py +8 -0
  6. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/session.py +69 -0
  7. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/__init__.py +4 -0
  8. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/agents.py +2 -0
  9. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/session.py +18 -1
  10. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/pyproject.toml +1 -1
  11. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/LICENSE +0 -0
  12. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/__init__.py +0 -0
  13. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/build_context.py +0 -0
  14. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/_request.py +0 -0
  15. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/async_client.py +0 -0
  16. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/base.py +0 -0
  17. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/agents/__init__.py +0 -0
  18. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/agents/browser_use.py +0 -0
  19. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/agents/claude_computer_use.py +0 -0
  20. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/agents/cua.py +0 -0
  21. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/agents/gemini_computer_use.py +0 -0
  22. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/agents/grok_computer_use.py +0 -0
  23. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/agents/hyper_agent.py +0 -0
  24. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/agents/jev_computer_use.py +0 -0
  25. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/agents/meta_computer_use.py +0 -0
  26. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/computer_action.py +0 -0
  27. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/crawl.py +0 -0
  28. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/extension.py +0 -0
  29. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/extract.py +0 -0
  30. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/profile.py +0 -0
  31. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/sandbox.py +0 -0
  32. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/sandboxes/__init__.py +0 -0
  33. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_files.py +0 -0
  34. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_processes.py +0 -0
  35. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_terminal.py +0 -0
  36. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/sandboxes/sandbox_transport.py +0 -0
  37. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/scrape.py +0 -0
  38. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/secret.py +0 -0
  39. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/session.py +0 -0
  40. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/team.py +0 -0
  41. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/volume.py +0 -0
  42. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/web/__init__.py +0 -0
  43. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/web/batch_fetch.py +0 -0
  44. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/web/crawl.py +0 -0
  45. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/async_manager/webmcp.py +0 -0
  46. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sandboxes/__init__.py +0 -0
  47. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sandboxes/dockerfile_analysis.py +0 -0
  48. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sandboxes/dockerignore.py +0 -0
  49. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sandboxes/image_build.py +0 -0
  50. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sandboxes/image_resolution.py +0 -0
  51. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sandboxes/process_output.py +0 -0
  52. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sandboxes/shared.py +0 -0
  53. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/agents/__init__.py +0 -0
  54. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/agents/browser_use.py +0 -0
  55. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/agents/claude_computer_use.py +0 -0
  56. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/agents/cua.py +0 -0
  57. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/agents/gemini_computer_use.py +0 -0
  58. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/agents/grok_computer_use.py +0 -0
  59. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/agents/hyper_agent.py +0 -0
  60. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/agents/jev_computer_use.py +0 -0
  61. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/agents/meta_computer_use.py +0 -0
  62. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/computer_action.py +0 -0
  63. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/crawl.py +0 -0
  64. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/extension.py +0 -0
  65. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/extract.py +0 -0
  66. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/profile.py +0 -0
  67. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/sandbox.py +0 -0
  68. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/sandboxes/__init__.py +0 -0
  69. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_files.py +0 -0
  70. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_processes.py +0 -0
  71. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_terminal.py +0 -0
  72. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/sandboxes/sandbox_transport.py +0 -0
  73. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/scrape.py +0 -0
  74. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/secret.py +0 -0
  75. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/session.py +0 -0
  76. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/team.py +0 -0
  77. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/volume.py +0 -0
  78. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/web/__init__.py +0 -0
  79. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/web/batch_fetch.py +0 -0
  80. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/web/crawl.py +0 -0
  81. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/managers/sync_manager/webmcp.py +0 -0
  82. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/client/sync.py +0 -0
  83. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/config.py +0 -0
  84. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/exceptions.py +0 -0
  85. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/image_builds.py +0 -0
  86. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/_parsers.py +0 -0
  87. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/agents/browser_use.py +0 -0
  88. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/agents/claude_computer_use.py +0 -0
  89. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/agents/cua.py +0 -0
  90. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/agents/grok_computer_use.py +0 -0
  91. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/agents/hyper_agent.py +0 -0
  92. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/agents/jev_computer_use.py +0 -0
  93. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/agents/meta_computer_use.py +0 -0
  94. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/computer_action.py +0 -0
  95. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/crawl.py +0 -0
  96. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/extension.py +0 -0
  97. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/extract.py +0 -0
  98. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/profile.py +0 -0
  99. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/sandbox.py +0 -0
  100. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/scrape.py +0 -0
  101. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/secret.py +0 -0
  102. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/team.py +0 -0
  103. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/volume.py +0 -0
  104. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/web/batch_fetch.py +0 -0
  105. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/web/branding.py +0 -0
  106. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/web/common.py +0 -0
  107. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/web/crawl.py +0 -0
  108. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/web/fetch.py +0 -0
  109. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/web/search.py +0 -0
  110. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/models/webmcp.py +0 -0
  111. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/py.typed +0 -0
  112. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/sandbox_common.py +0 -0
  113. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/secrets_common.py +0 -0
  114. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/tools/__init__.py +0 -0
  115. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/tools/anthropic.py +0 -0
  116. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/tools/openai.py +0 -0
  117. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/tools/schema.py +0 -0
  118. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/transport/async_transport.py +0 -0
  119. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/transport/base.py +0 -0
  120. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/transport/sync.py +0 -0
  121. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/_json.py +0 -0
  122. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/computer_action.py +0 -0
  123. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/crawl.py +0 -0
  124. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/extension.py +0 -0
  125. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/extract.py +0 -0
  126. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/profile.py +0 -0
  127. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/sandbox.py +0 -0
  128. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/scrape.py +0 -0
  129. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/secret.py +0 -0
  130. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/volume.py +0 -0
  131. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/web.py +0 -0
  132. {hyperbrowser-1.12.0 → hyperbrowser-1.12.1}/hyperbrowser/types/webmcp.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hyperbrowser
3
- Version: 1.12.0
3
+ Version: 1.12.1
4
4
  Summary: Python SDK for hyperbrowser
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -97,6 +97,47 @@ Pydantic request/response models in `hyperbrowser.models`.
97
97
  See the [WebMCP guide](https://hyperbrowser.ai/docs/sessions/webmcp) for complete
98
98
  examples, cancellation behavior, human submission, and limits.
99
99
 
100
+ ## Web Bot Auth
101
+
102
+ A session can sign its requests with Web Bot Auth so websites can verify that they
103
+ come from Hyperbrowser. Web Bot Auth is enabled for teams on request.
104
+
105
+ ```python
106
+ session = client.sessions.create({"web_bot_auth": True})
107
+ print(session.launch_state.web_bot_auth.signature_agent) # https://www.hyperbrowser.ai
108
+
109
+ # Sign only requests to these hosts and their subdomains:
110
+ client.sessions.create({"web_bot_auth": {"only_domains": ["example.com"]}})
111
+ ```
112
+
113
+ Agent tasks accept `web_bot_auth` in `session_options`; scrape, crawl, and extract
114
+ jobs do not. It cannot be combined with `use_ultra_stealth` or
115
+ `start_from_snapshot`. See the
116
+ [Web Bot Auth guide](https://hyperbrowser.ai/docs/sessions/web-bot-auth).
117
+
118
+ ## Proxy routes
119
+
120
+ `proxy_routes` sends some hosts' traffic straight out instead of through the
121
+ session's proxy, or the other way round. The first route that matches a host
122
+ decides; hosts that no route matches use the proxy. Proxy routes require
123
+ `use_proxy` and are enabled for teams on request.
124
+
125
+ ```python
126
+ session = client.sessions.create({
127
+ "use_proxy": True,
128
+ "proxy_routes": [
129
+ {"match": "api.example.com", "proxy": "default"}, # stays on the proxy
130
+ {"match": ["*.example.com", "cdn.example.net"], "proxy": "direct"},
131
+ ],
132
+ })
133
+ ```
134
+
135
+ A pattern is a hostname, `*.example.com` (its subdomains, not `example.com`
136
+ itself), or `*` (every host). Proxy routes only apply to `client.sessions.create`
137
+ and cannot be combined with `allow_internet_access=False`, `allow_out`, or
138
+ `deny_out`. See the
139
+ [proxy routes guide](https://hyperbrowser.ai/docs/sessions/proxy-routes).
140
+
100
141
  ## Usage
101
142
 
102
143
  Hyperbrowser 1.0 accepts plain dictionaries for request parameters. Method
@@ -68,6 +68,47 @@ Pydantic request/response models in `hyperbrowser.models`.
68
68
  See the [WebMCP guide](https://hyperbrowser.ai/docs/sessions/webmcp) for complete
69
69
  examples, cancellation behavior, human submission, and limits.
70
70
 
71
+ ## Web Bot Auth
72
+
73
+ A session can sign its requests with Web Bot Auth so websites can verify that they
74
+ come from Hyperbrowser. Web Bot Auth is enabled for teams on request.
75
+
76
+ ```python
77
+ session = client.sessions.create({"web_bot_auth": True})
78
+ print(session.launch_state.web_bot_auth.signature_agent) # https://www.hyperbrowser.ai
79
+
80
+ # Sign only requests to these hosts and their subdomains:
81
+ client.sessions.create({"web_bot_auth": {"only_domains": ["example.com"]}})
82
+ ```
83
+
84
+ Agent tasks accept `web_bot_auth` in `session_options`; scrape, crawl, and extract
85
+ jobs do not. It cannot be combined with `use_ultra_stealth` or
86
+ `start_from_snapshot`. See the
87
+ [Web Bot Auth guide](https://hyperbrowser.ai/docs/sessions/web-bot-auth).
88
+
89
+ ## Proxy routes
90
+
91
+ `proxy_routes` sends some hosts' traffic straight out instead of through the
92
+ session's proxy, or the other way round. The first route that matches a host
93
+ decides; hosts that no route matches use the proxy. Proxy routes require
94
+ `use_proxy` and are enabled for teams on request.
95
+
96
+ ```python
97
+ session = client.sessions.create({
98
+ "use_proxy": True,
99
+ "proxy_routes": [
100
+ {"match": "api.example.com", "proxy": "default"}, # stays on the proxy
101
+ {"match": ["*.example.com", "cdn.example.net"], "proxy": "direct"},
102
+ ],
103
+ })
104
+ ```
105
+
106
+ A pattern is a hostname, `*.example.com` (its subdomains, not `example.com`
107
+ itself), or `*` (every host). Proxy routes only apply to `client.sessions.create`
108
+ and cannot be combined with `allow_internet_access=False`, `allow_out`, or
109
+ `deny_out`. See the
110
+ [proxy routes guide](https://hyperbrowser.ai/docs/sessions/proxy-routes).
111
+
71
112
  ## Usage
72
113
 
73
114
  Hyperbrowser 1.0 accepts plain dictionaries for request parameters. Method
@@ -195,6 +195,8 @@ from .consts import (
195
195
  ClaudeComputerUseReasoningEffort,
196
196
  CuaLlm,
197
197
  CuaReasoningEffort,
198
+ GeminiComputerUseLlm,
199
+ GeminiComputerUseReasoningEffort,
198
200
  GrokComputerUseLlm,
199
201
  GrokReasoningEffort,
200
202
  MetaComputerUseLlm,
@@ -343,6 +345,9 @@ from .session import (
343
345
  SessionProfile,
344
346
  SessionLaunchState,
345
347
  StartSessionFromSnapshotParams,
348
+ WebBotAuthParams,
349
+ ProxyRoute,
350
+ SessionWebBotAuth,
346
351
  UploadFileResponse,
347
352
  ImageCaptchaParam,
348
353
  CaptchaSolverType,
@@ -492,6 +497,8 @@ __all__ = [
492
497
  "ClaudeComputerUseReasoningEffort",
493
498
  "CuaLlm",
494
499
  "CuaReasoningEffort",
500
+ "GeminiComputerUseLlm",
501
+ "GeminiComputerUseReasoningEffort",
495
502
  "Country",
496
503
  "DownloadsStatus",
497
504
  "FetchScreenshotFormat",
@@ -704,6 +711,9 @@ __all__ = [
704
711
  "SessionProfile",
705
712
  "SessionLaunchState",
706
713
  "StartSessionFromSnapshotParams",
714
+ "WebBotAuthParams",
715
+ "ProxyRoute",
716
+ "SessionWebBotAuth",
707
717
  "UploadFileResponse",
708
718
  "ImageCaptchaParam",
709
719
  "CaptchaSolverType",
@@ -5,7 +5,7 @@ from typing import Any, List, Literal, Optional
5
5
  from pydantic import BaseModel, ConfigDict, Field
6
6
 
7
7
  from ..session import CreateSessionParams
8
- from ..consts import GeminiComputerUseLlm
8
+ from ..consts import GeminiComputerUseLlm, GeminiComputerUseReasoningEffort
9
9
 
10
10
  GeminiComputerUseTaskStatus = Literal[
11
11
  "pending", "running", "completed", "failed", "stopped"
@@ -35,6 +35,9 @@ class StartGeminiComputerUseTaskParams(BaseModel):
35
35
 
36
36
  task: str
37
37
  llm: Optional[GeminiComputerUseLlm] = Field(default=None, serialization_alias="llm")
38
+ reasoning_effort: Optional[GeminiComputerUseReasoningEffort] = Field(
39
+ default=None, serialization_alias="reasoningEffort"
40
+ )
38
41
  session_id: Optional[str] = Field(default=None, serialization_alias="sessionId")
39
42
  max_failures: Optional[int] = Field(default=None, serialization_alias="maxFailures")
40
43
  max_steps: Optional[int] = Field(default=None, serialization_alias="maxSteps")
@@ -115,6 +115,7 @@ CuaReasoningEffort = Literal[
115
115
  "max",
116
116
  ]
117
117
  GeminiComputerUseLlm = Literal[
118
+ "gemini-4-argon",
118
119
  "gemini-3.8-flash",
119
120
  "gemini-3.7-flash",
120
121
  "gemini-3.6-flash",
@@ -123,6 +124,13 @@ GeminiComputerUseLlm = Literal[
123
124
  "gemini-3-flash-preview",
124
125
  "gemini-2.5-computer-use-preview-10-2025",
125
126
  ]
127
+ # Gemini 4 Argon, 3.8 Flash, and 3.7 Flash do not support "minimal".
128
+ GeminiComputerUseReasoningEffort = Literal[
129
+ "minimal",
130
+ "low",
131
+ "medium",
132
+ "high",
133
+ ]
126
134
  GrokComputerUseLlm = Literal[
127
135
  "grok-4.7",
128
136
  "grok-4.6",
@@ -62,6 +62,21 @@ class SessionProfile(BaseModel):
62
62
  )
63
63
 
64
64
 
65
+ class SessionWebBotAuth(BaseModel):
66
+ """
67
+ How a session signs its requests with Web Bot Auth.
68
+ """
69
+
70
+ model_config = ConfigDict(
71
+ populate_by_alias=True,
72
+ )
73
+
74
+ signature_agent: str = Field(alias="signatureAgent")
75
+ """The identity the session signs as, e.g. "https://www.hyperbrowser.ai"."""
76
+ only_domains: Optional[List[str]] = Field(default=None, alias="onlyDomains")
77
+ """Present when signing is limited to these hostnames and their subdomains."""
78
+
79
+
65
80
  class UpdateSessionProfileParams(BaseModel):
66
81
  """
67
82
  Parameters for updating session profile persistence settings.
@@ -130,6 +145,8 @@ class SessionLaunchState(BaseModel):
130
145
  )
131
146
 
132
147
  enable_web_mcp: Optional[bool] = Field(default=None, alias="enableWebMcp")
148
+ web_bot_auth: Optional[SessionWebBotAuth] = Field(default=None, alias="webBotAuth")
149
+ """Present only for a session that signs its requests with Web Bot Auth."""
133
150
 
134
151
  use_ultra_stealth: Optional[bool] = Field(default=None, alias="useUltraStealth")
135
152
  use_stealth: Optional[bool] = Field(default=None, alias="useStealth")
@@ -404,6 +421,40 @@ class StartSessionFromSnapshotParams(BaseModel):
404
421
  snapshot_id: str = Field(serialization_alias="snapshotId")
405
422
 
406
423
 
424
+ class WebBotAuthParams(BaseModel):
425
+ """
426
+ Limits Web Bot Auth signing to some hosts.
427
+ """
428
+
429
+ # An unknown key (such as "onlyDomains") is an error rather than dropped:
430
+ # dropping it would sign requests to every host.
431
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
432
+
433
+ only_domains: Optional[List[str]] = Field(
434
+ default=None, serialization_alias="onlyDomains"
435
+ )
436
+ """Sign only requests to these hostnames (e.g. "example.com") and their
437
+ subdomains. No scheme, port or path; at most 50.
438
+ """
439
+
440
+
441
+ class ProxyRoute(BaseModel):
442
+ """
443
+ Sends traffic for matching hosts through the session's proxy or straight out.
444
+ """
445
+
446
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
447
+
448
+ match: Union[str, List[str]]
449
+ """A hostname, "*.example.com" (subdomains, not example.com itself) or "*"
450
+ (every host), or a list of them.
451
+ """
452
+ proxy: Literal["direct", "default"]
453
+ """Where the traffic goes: "direct" sends it straight out of the browser's
454
+ machine, and "default" sends it through the session's proxy.
455
+ """
456
+
457
+
407
458
  class CreateSessionParams(BaseModel):
408
459
  """
409
460
  Parameters for creating a new browser session.
@@ -416,6 +467,24 @@ class CreateSessionParams(BaseModel):
416
467
  enable_web_mcp: Optional[bool] = Field(
417
468
  default=None, serialization_alias="enableWebMcp"
418
469
  )
470
+ web_bot_auth: Optional[Union[bool, WebBotAuthParams]] = Field(
471
+ default=None, serialization_alias="webBotAuth"
472
+ )
473
+ """Sign the session's requests with Web Bot Auth so websites can verify they
474
+ come from Hyperbrowser. Pass WebBotAuthParams(only_domains=[...]) to sign only
475
+ for those hosts. Requires Web Bot Auth to be enabled for your team; works for
476
+ sessions and agent tasks, and cannot be combined with use_ultra_stealth or
477
+ start_from_snapshot.
478
+ """
479
+ proxy_routes: Optional[List[ProxyRoute]] = Field(
480
+ default=None, serialization_alias="proxyRoutes"
481
+ )
482
+ """Choose, per host, whether the session's traffic goes through its proxy or
483
+ straight out. The first route that matches a host decides; hosts that no
484
+ route matches use the proxy. Requires use_proxy and proxy routes to be
485
+ enabled for your team, only applies when creating a session, and cannot be
486
+ combined with allow_internet_access=False, allow_out or deny_out.
487
+ """
419
488
 
420
489
  use_ultra_stealth: bool = Field(
421
490
  default=False, serialization_alias="useUltraStealth"
@@ -147,6 +147,8 @@ from .session import (
147
147
  SessionListParams,
148
148
  SessionStatus,
149
149
  StartSessionFromSnapshotParams,
150
+ WebBotAuthParams,
151
+ ProxyRoute,
150
152
  UpdateSessionProfileParams,
151
153
  UpdateSessionProxyLocationParams,
152
154
  UpdateSessionProxyParams,
@@ -323,6 +325,8 @@ __all__ = [
323
325
  "SessionListParams",
324
326
  "SessionStatus",
325
327
  "StartSessionFromSnapshotParams",
328
+ "WebBotAuthParams",
329
+ "ProxyRoute",
326
330
  "UpdateSessionProfileParams",
327
331
  "UpdateSessionProxyLocationParams",
328
332
  "UpdateSessionProxyParams",
@@ -10,6 +10,7 @@ from hyperbrowser.models.consts import (
10
10
  CuaLlm,
11
11
  CuaReasoningEffort,
12
12
  GeminiComputerUseLlm,
13
+ GeminiComputerUseReasoningEffort,
13
14
  GrokComputerUseLlm,
14
15
  GrokReasoningEffort,
15
16
  MetaComputerUseLlm,
@@ -92,6 +93,7 @@ class StartGeminiComputerUseTaskParams(TypedDict, total=False):
92
93
 
93
94
  task: Required[str]
94
95
  llm: Optional[GeminiComputerUseLlm]
96
+ reasoning_effort: Optional[GeminiComputerUseReasoningEffort]
95
97
  session_id: Optional[str]
96
98
  max_failures: Optional[int]
97
99
  max_steps: Optional[int]
@@ -1,4 +1,4 @@
1
- from typing import List, Literal, Optional
1
+ from typing import List, Literal, Optional, Union
2
2
 
3
3
  from typing_extensions import Required, TypedDict
4
4
 
@@ -114,10 +114,27 @@ class StartSessionFromSnapshotParams(TypedDict):
114
114
  snapshot_id: str
115
115
 
116
116
 
117
+ class WebBotAuthParams(TypedDict, total=False):
118
+ """Hosts to limit Web Bot Auth signing to: hostnames such as "example.com",
119
+ each also covering its subdomains."""
120
+
121
+ only_domains: List[str]
122
+
123
+
124
+ class ProxyRoute(TypedDict):
125
+ """Sends traffic for matching hosts through the session's proxy ("default")
126
+ or straight out ("direct"). A pattern is a hostname, "*.example.com" or "*"."""
127
+
128
+ match: Union[str, List[str]]
129
+ proxy: Literal["direct", "default"]
130
+
131
+
117
132
  class CreateSessionParams(TypedDict, total=False):
118
133
  """Configuration for creating a browser session."""
119
134
 
120
135
  enable_web_mcp: Optional[bool]
136
+ web_bot_auth: Optional[Union[bool, WebBotAuthParams]]
137
+ proxy_routes: Optional[List[ProxyRoute]]
121
138
  use_ultra_stealth: bool
122
139
  use_stealth: bool
123
140
  use_proxy: bool
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "hyperbrowser"
3
- version = "1.12.0"
3
+ version = "1.12.1"
4
4
  description = "Python SDK for hyperbrowser"
5
5
  authors = ["Nikhil Shahi <nshahi1998@gmail.com>"]
6
6
  license = "MIT"
File without changes