stagehand 0.0.3 → 3.5.2

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 (145) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +185 -0
  4. data/README.md +394 -31
  5. data/SECURITY.md +23 -0
  6. data/lib/stagehand/client.rb +126 -0
  7. data/lib/stagehand/errors.rb +228 -0
  8. data/lib/stagehand/file_part.rb +58 -0
  9. data/lib/stagehand/internal/stream.rb +56 -0
  10. data/lib/stagehand/internal/transport/base_client.rb +575 -0
  11. data/lib/stagehand/internal/transport/pooled_net_requester.rb +210 -0
  12. data/lib/stagehand/internal/type/array_of.rb +168 -0
  13. data/lib/stagehand/internal/type/base_model.rb +531 -0
  14. data/lib/stagehand/internal/type/base_page.rb +55 -0
  15. data/lib/stagehand/internal/type/base_stream.rb +83 -0
  16. data/lib/stagehand/internal/type/boolean.rb +77 -0
  17. data/lib/stagehand/internal/type/converter.rb +327 -0
  18. data/lib/stagehand/internal/type/enum.rb +131 -0
  19. data/lib/stagehand/internal/type/file_input.rb +111 -0
  20. data/lib/stagehand/internal/type/hash_of.rb +188 -0
  21. data/lib/stagehand/internal/type/request_parameters.rb +42 -0
  22. data/lib/stagehand/internal/type/union.rb +237 -0
  23. data/lib/stagehand/internal/type/unknown.rb +81 -0
  24. data/lib/stagehand/internal/util.rb +920 -0
  25. data/lib/stagehand/internal.rb +20 -0
  26. data/lib/stagehand/local.rb +439 -0
  27. data/lib/stagehand/models/action.rb +50 -0
  28. data/lib/stagehand/models/model_config.rb +55 -0
  29. data/lib/stagehand/models/session_act_params.rb +112 -0
  30. data/lib/stagehand/models/session_act_response.rb +127 -0
  31. data/lib/stagehand/models/session_end_params.rb +33 -0
  32. data/lib/stagehand/models/session_end_response.rb +17 -0
  33. data/lib/stagehand/models/session_execute_params.rb +212 -0
  34. data/lib/stagehand/models/session_execute_response.rb +212 -0
  35. data/lib/stagehand/models/session_extract_params.rb +107 -0
  36. data/lib/stagehand/models/session_extract_response.rb +46 -0
  37. data/lib/stagehand/models/session_navigate_params.rb +107 -0
  38. data/lib/stagehand/models/session_navigate_response.rb +44 -0
  39. data/lib/stagehand/models/session_observe_params.rb +99 -0
  40. data/lib/stagehand/models/session_observe_response.rb +91 -0
  41. data/lib/stagehand/models/session_replay_params.rb +33 -0
  42. data/lib/stagehand/models/session_replay_response.rb +100 -0
  43. data/lib/stagehand/models/session_start_params.rb +762 -0
  44. data/lib/stagehand/models/session_start_response.rb +55 -0
  45. data/lib/stagehand/models/stream_event.rb +120 -0
  46. data/lib/stagehand/models.rb +63 -0
  47. data/lib/stagehand/request_options.rb +77 -0
  48. data/lib/stagehand/resources/sessions.rb +488 -0
  49. data/lib/stagehand/version.rb +3 -1
  50. data/lib/stagehand.rb +74 -21
  51. data/manifest.yaml +17 -0
  52. data/rbi/stagehand/client.rbi +89 -0
  53. data/rbi/stagehand/errors.rbi +205 -0
  54. data/rbi/stagehand/file_part.rbi +37 -0
  55. data/rbi/stagehand/internal/stream.rbi +20 -0
  56. data/rbi/stagehand/internal/transport/base_client.rbi +314 -0
  57. data/rbi/stagehand/internal/transport/pooled_net_requester.rbi +83 -0
  58. data/rbi/stagehand/internal/type/array_of.rbi +104 -0
  59. data/rbi/stagehand/internal/type/base_model.rbi +308 -0
  60. data/rbi/stagehand/internal/type/base_page.rbi +42 -0
  61. data/rbi/stagehand/internal/type/base_stream.rbi +75 -0
  62. data/rbi/stagehand/internal/type/boolean.rbi +58 -0
  63. data/rbi/stagehand/internal/type/converter.rbi +216 -0
  64. data/rbi/stagehand/internal/type/enum.rbi +82 -0
  65. data/rbi/stagehand/internal/type/file_input.rbi +59 -0
  66. data/rbi/stagehand/internal/type/hash_of.rbi +104 -0
  67. data/rbi/stagehand/internal/type/request_parameters.rbi +29 -0
  68. data/rbi/stagehand/internal/type/union.rbi +128 -0
  69. data/rbi/stagehand/internal/type/unknown.rbi +58 -0
  70. data/rbi/stagehand/internal/util.rbi +487 -0
  71. data/rbi/stagehand/internal.rbi +18 -0
  72. data/rbi/stagehand/models/action.rbi +77 -0
  73. data/rbi/stagehand/models/model_config.rbi +94 -0
  74. data/rbi/stagehand/models/session_act_params.rbi +204 -0
  75. data/rbi/stagehand/models/session_act_response.rbi +250 -0
  76. data/rbi/stagehand/models/session_end_params.rbi +87 -0
  77. data/rbi/stagehand/models/session_end_response.rbi +30 -0
  78. data/rbi/stagehand/models/session_execute_params.rbi +440 -0
  79. data/rbi/stagehand/models/session_execute_response.rbi +414 -0
  80. data/rbi/stagehand/models/session_extract_params.rbi +209 -0
  81. data/rbi/stagehand/models/session_extract_response.rbi +91 -0
  82. data/rbi/stagehand/models/session_navigate_params.rbi +240 -0
  83. data/rbi/stagehand/models/session_navigate_response.rbi +91 -0
  84. data/rbi/stagehand/models/session_observe_params.rbi +198 -0
  85. data/rbi/stagehand/models/session_observe_response.rbi +184 -0
  86. data/rbi/stagehand/models/session_replay_params.rbi +89 -0
  87. data/rbi/stagehand/models/session_replay_response.rbi +286 -0
  88. data/rbi/stagehand/models/session_start_params.rbi +1703 -0
  89. data/rbi/stagehand/models/session_start_response.rbi +102 -0
  90. data/rbi/stagehand/models/stream_event.rbi +237 -0
  91. data/rbi/stagehand/models.rbi +25 -0
  92. data/rbi/stagehand/request_options.rbi +59 -0
  93. data/rbi/stagehand/resources/sessions.rbi +421 -0
  94. data/rbi/stagehand/version.rbi +5 -0
  95. data/sig/stagehand/client.rbs +41 -0
  96. data/sig/stagehand/errors.rbs +117 -0
  97. data/sig/stagehand/file_part.rbs +21 -0
  98. data/sig/stagehand/internal/stream.rbs +9 -0
  99. data/sig/stagehand/internal/transport/base_client.rbs +133 -0
  100. data/sig/stagehand/internal/transport/pooled_net_requester.rbs +48 -0
  101. data/sig/stagehand/internal/type/array_of.rbs +48 -0
  102. data/sig/stagehand/internal/type/base_model.rbs +102 -0
  103. data/sig/stagehand/internal/type/base_page.rbs +24 -0
  104. data/sig/stagehand/internal/type/base_stream.rbs +38 -0
  105. data/sig/stagehand/internal/type/boolean.rbs +26 -0
  106. data/sig/stagehand/internal/type/converter.rbs +79 -0
  107. data/sig/stagehand/internal/type/enum.rbs +32 -0
  108. data/sig/stagehand/internal/type/file_input.rbs +25 -0
  109. data/sig/stagehand/internal/type/hash_of.rbs +48 -0
  110. data/sig/stagehand/internal/type/request_parameters.rbs +19 -0
  111. data/sig/stagehand/internal/type/union.rbs +52 -0
  112. data/sig/stagehand/internal/type/unknown.rbs +26 -0
  113. data/sig/stagehand/internal/util.rbs +185 -0
  114. data/sig/stagehand/internal.rbs +9 -0
  115. data/sig/stagehand/models/action.rbs +46 -0
  116. data/sig/stagehand/models/model_config.rbs +56 -0
  117. data/sig/stagehand/models/session_act_params.rbs +111 -0
  118. data/sig/stagehand/models/session_act_response.rbs +121 -0
  119. data/sig/stagehand/models/session_end_params.rbs +41 -0
  120. data/sig/stagehand/models/session_end_response.rbs +13 -0
  121. data/sig/stagehand/models/session_execute_params.rbs +193 -0
  122. data/sig/stagehand/models/session_execute_response.rbs +215 -0
  123. data/sig/stagehand/models/session_extract_params.rbs +112 -0
  124. data/sig/stagehand/models/session_extract_response.rbs +36 -0
  125. data/sig/stagehand/models/session_navigate_params.rbs +114 -0
  126. data/sig/stagehand/models/session_navigate_response.rbs +36 -0
  127. data/sig/stagehand/models/session_observe_params.rbs +105 -0
  128. data/sig/stagehand/models/session_observe_response.rbs +89 -0
  129. data/sig/stagehand/models/session_replay_params.rbs +41 -0
  130. data/sig/stagehand/models/session_replay_response.rbs +137 -0
  131. data/sig/stagehand/models/session_start_params.rbs +866 -0
  132. data/sig/stagehand/models/session_start_response.rbs +44 -0
  133. data/sig/stagehand/models/stream_event.rbs +109 -0
  134. data/sig/stagehand/models.rbs +23 -0
  135. data/sig/stagehand/request_options.rbs +34 -0
  136. data/sig/stagehand/resources/sessions.rbs +121 -0
  137. data/sig/stagehand/version.rbs +3 -0
  138. metadata +173 -42
  139. data/.gitignore +0 -16
  140. data/Gemfile +0 -4
  141. data/Rakefile +0 -10
  142. data/lib/stagehand/railtie.rb +0 -14
  143. data/spec/spec_helper.rb +0 -7
  144. data/spec/stagehand_spec.rb +0 -15
  145. data/stagehand.gemspec +0 -24
@@ -0,0 +1,762 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Stagehand
4
+ module Models
5
+ # @see Stagehand::Resources::Sessions#start
6
+ class SessionStartParams < Stagehand::Internal::Type::BaseModel
7
+ extend Stagehand::Internal::Type::RequestParameters::Converter
8
+ include Stagehand::Internal::Type::RequestParameters
9
+
10
+ # @!attribute model_name
11
+ # Model name to use for AI operations
12
+ #
13
+ # @return [String]
14
+ required :model_name, String, api_name: :modelName
15
+
16
+ # @!attribute act_timeout_ms
17
+ # Timeout in ms for act operations (deprecated, v2 only)
18
+ #
19
+ # @return [Float, nil]
20
+ optional :act_timeout_ms, Float, api_name: :actTimeoutMs
21
+
22
+ # @!attribute browser
23
+ #
24
+ # @return [Stagehand::Models::SessionStartParams::Browser, nil]
25
+ optional :browser, -> { Stagehand::SessionStartParams::Browser }
26
+
27
+ # @!attribute browserbase_session_create_params
28
+ #
29
+ # @return [Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams, nil]
30
+ optional :browserbase_session_create_params,
31
+ -> { Stagehand::SessionStartParams::BrowserbaseSessionCreateParams },
32
+ api_name: :browserbaseSessionCreateParams
33
+
34
+ # @!attribute browserbase_session_id
35
+ # Existing Browserbase session ID to resume
36
+ #
37
+ # @return [String, nil]
38
+ optional :browserbase_session_id, String, api_name: :browserbaseSessionID
39
+
40
+ # @!attribute dom_settle_timeout_ms
41
+ # Timeout in ms to wait for DOM to settle
42
+ #
43
+ # @return [Float, nil]
44
+ optional :dom_settle_timeout_ms, Float, api_name: :domSettleTimeoutMs
45
+
46
+ # @!attribute experimental
47
+ #
48
+ # @return [Boolean, nil]
49
+ optional :experimental, Stagehand::Internal::Type::Boolean
50
+
51
+ # @!attribute self_heal
52
+ # Enable self-healing for failed actions
53
+ #
54
+ # @return [Boolean, nil]
55
+ optional :self_heal, Stagehand::Internal::Type::Boolean, api_name: :selfHeal
56
+
57
+ # @!attribute system_prompt
58
+ # Custom system prompt for AI operations
59
+ #
60
+ # @return [String, nil]
61
+ optional :system_prompt, String, api_name: :systemPrompt
62
+
63
+ # @!attribute verbose
64
+ # Logging verbosity level (0=quiet, 1=normal, 2=debug)
65
+ #
66
+ # @return [Float, Stagehand::Models::SessionStartParams::Verbose, nil]
67
+ optional :verbose, enum: -> { Stagehand::SessionStartParams::Verbose }
68
+
69
+ # @!attribute wait_for_captcha_solves
70
+ # Wait for captcha solves (deprecated, v2 only)
71
+ #
72
+ # @return [Boolean, nil]
73
+ optional :wait_for_captcha_solves, Stagehand::Internal::Type::Boolean, api_name: :waitForCaptchaSolves
74
+
75
+ # @!attribute x_stream_response
76
+ # Whether to stream the response via SSE
77
+ #
78
+ # @return [Symbol, Stagehand::Models::SessionStartParams::XStreamResponse, nil]
79
+ optional :x_stream_response, enum: -> { Stagehand::SessionStartParams::XStreamResponse }
80
+
81
+ # @!method initialize(model_name:, act_timeout_ms: nil, browser: nil, browserbase_session_create_params: nil, browserbase_session_id: nil, dom_settle_timeout_ms: nil, experimental: nil, self_heal: nil, system_prompt: nil, verbose: nil, wait_for_captcha_solves: nil, x_stream_response: nil, request_options: {})
82
+ # @param model_name [String] Model name to use for AI operations
83
+ #
84
+ # @param act_timeout_ms [Float] Timeout in ms for act operations (deprecated, v2 only)
85
+ #
86
+ # @param browser [Stagehand::Models::SessionStartParams::Browser]
87
+ #
88
+ # @param browserbase_session_create_params [Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams]
89
+ #
90
+ # @param browserbase_session_id [String] Existing Browserbase session ID to resume
91
+ #
92
+ # @param dom_settle_timeout_ms [Float] Timeout in ms to wait for DOM to settle
93
+ #
94
+ # @param experimental [Boolean]
95
+ #
96
+ # @param self_heal [Boolean] Enable self-healing for failed actions
97
+ #
98
+ # @param system_prompt [String] Custom system prompt for AI operations
99
+ #
100
+ # @param verbose [Float, Stagehand::Models::SessionStartParams::Verbose] Logging verbosity level (0=quiet, 1=normal, 2=debug)
101
+ #
102
+ # @param wait_for_captcha_solves [Boolean] Wait for captcha solves (deprecated, v2 only)
103
+ #
104
+ # @param x_stream_response [Symbol, Stagehand::Models::SessionStartParams::XStreamResponse] Whether to stream the response via SSE
105
+ #
106
+ # @param request_options [Stagehand::RequestOptions, Hash{Symbol=>Object}]
107
+
108
+ class Browser < Stagehand::Internal::Type::BaseModel
109
+ # @!attribute cdp_url
110
+ # Chrome DevTools Protocol URL for connecting to existing browser
111
+ #
112
+ # @return [String, nil]
113
+ optional :cdp_url, String, api_name: :cdpUrl
114
+
115
+ # @!attribute launch_options
116
+ #
117
+ # @return [Stagehand::Models::SessionStartParams::Browser::LaunchOptions, nil]
118
+ optional :launch_options,
119
+ -> { Stagehand::SessionStartParams::Browser::LaunchOptions },
120
+ api_name: :launchOptions
121
+
122
+ # @!attribute type
123
+ # Browser type to use
124
+ #
125
+ # @return [Symbol, Stagehand::Models::SessionStartParams::Browser::Type, nil]
126
+ optional :type, enum: -> { Stagehand::SessionStartParams::Browser::Type }
127
+
128
+ # @!method initialize(cdp_url: nil, launch_options: nil, type: nil)
129
+ # @param cdp_url [String] Chrome DevTools Protocol URL for connecting to existing browser
130
+ #
131
+ # @param launch_options [Stagehand::Models::SessionStartParams::Browser::LaunchOptions]
132
+ #
133
+ # @param type [Symbol, Stagehand::Models::SessionStartParams::Browser::Type] Browser type to use
134
+
135
+ # @see Stagehand::Models::SessionStartParams::Browser#launch_options
136
+ class LaunchOptions < Stagehand::Internal::Type::BaseModel
137
+ # @!attribute accept_downloads
138
+ #
139
+ # @return [Boolean, nil]
140
+ optional :accept_downloads, Stagehand::Internal::Type::Boolean, api_name: :acceptDownloads
141
+
142
+ # @!attribute args
143
+ #
144
+ # @return [Array<String>, nil]
145
+ optional :args, Stagehand::Internal::Type::ArrayOf[String]
146
+
147
+ # @!attribute cdp_url
148
+ #
149
+ # @return [String, nil]
150
+ optional :cdp_url, String, api_name: :cdpUrl
151
+
152
+ # @!attribute chromium_sandbox
153
+ #
154
+ # @return [Boolean, nil]
155
+ optional :chromium_sandbox, Stagehand::Internal::Type::Boolean, api_name: :chromiumSandbox
156
+
157
+ # @!attribute connect_timeout_ms
158
+ #
159
+ # @return [Float, nil]
160
+ optional :connect_timeout_ms, Float, api_name: :connectTimeoutMs
161
+
162
+ # @!attribute device_scale_factor
163
+ #
164
+ # @return [Float, nil]
165
+ optional :device_scale_factor, Float, api_name: :deviceScaleFactor
166
+
167
+ # @!attribute devtools
168
+ #
169
+ # @return [Boolean, nil]
170
+ optional :devtools, Stagehand::Internal::Type::Boolean
171
+
172
+ # @!attribute downloads_path
173
+ #
174
+ # @return [String, nil]
175
+ optional :downloads_path, String, api_name: :downloadsPath
176
+
177
+ # @!attribute executable_path
178
+ #
179
+ # @return [String, nil]
180
+ optional :executable_path, String, api_name: :executablePath
181
+
182
+ # @!attribute has_touch
183
+ #
184
+ # @return [Boolean, nil]
185
+ optional :has_touch, Stagehand::Internal::Type::Boolean, api_name: :hasTouch
186
+
187
+ # @!attribute headless
188
+ #
189
+ # @return [Boolean, nil]
190
+ optional :headless, Stagehand::Internal::Type::Boolean
191
+
192
+ # @!attribute ignore_default_args
193
+ #
194
+ # @return [Boolean, Array<String>, nil]
195
+ optional :ignore_default_args,
196
+ union: -> { Stagehand::SessionStartParams::Browser::LaunchOptions::IgnoreDefaultArgs },
197
+ api_name: :ignoreDefaultArgs
198
+
199
+ # @!attribute ignore_https_errors
200
+ #
201
+ # @return [Boolean, nil]
202
+ optional :ignore_https_errors, Stagehand::Internal::Type::Boolean, api_name: :ignoreHTTPSErrors
203
+
204
+ # @!attribute locale
205
+ #
206
+ # @return [String, nil]
207
+ optional :locale, String
208
+
209
+ # @!attribute port
210
+ #
211
+ # @return [Float, nil]
212
+ optional :port, Float
213
+
214
+ # @!attribute preserve_user_data_dir
215
+ #
216
+ # @return [Boolean, nil]
217
+ optional :preserve_user_data_dir, Stagehand::Internal::Type::Boolean, api_name: :preserveUserDataDir
218
+
219
+ # @!attribute proxy
220
+ #
221
+ # @return [Stagehand::Models::SessionStartParams::Browser::LaunchOptions::Proxy, nil]
222
+ optional :proxy, -> { Stagehand::SessionStartParams::Browser::LaunchOptions::Proxy }
223
+
224
+ # @!attribute user_data_dir
225
+ #
226
+ # @return [String, nil]
227
+ optional :user_data_dir, String, api_name: :userDataDir
228
+
229
+ # @!attribute viewport
230
+ #
231
+ # @return [Stagehand::Models::SessionStartParams::Browser::LaunchOptions::Viewport, nil]
232
+ optional :viewport, -> { Stagehand::SessionStartParams::Browser::LaunchOptions::Viewport }
233
+
234
+ # @!method initialize(accept_downloads: nil, args: nil, cdp_url: nil, chromium_sandbox: nil, connect_timeout_ms: nil, device_scale_factor: nil, devtools: nil, downloads_path: nil, executable_path: nil, has_touch: nil, headless: nil, ignore_default_args: nil, ignore_https_errors: nil, locale: nil, port: nil, preserve_user_data_dir: nil, proxy: nil, user_data_dir: nil, viewport: nil)
235
+ # @param accept_downloads [Boolean]
236
+ # @param args [Array<String>]
237
+ # @param cdp_url [String]
238
+ # @param chromium_sandbox [Boolean]
239
+ # @param connect_timeout_ms [Float]
240
+ # @param device_scale_factor [Float]
241
+ # @param devtools [Boolean]
242
+ # @param downloads_path [String]
243
+ # @param executable_path [String]
244
+ # @param has_touch [Boolean]
245
+ # @param headless [Boolean]
246
+ # @param ignore_default_args [Boolean, Array<String>]
247
+ # @param ignore_https_errors [Boolean]
248
+ # @param locale [String]
249
+ # @param port [Float]
250
+ # @param preserve_user_data_dir [Boolean]
251
+ # @param proxy [Stagehand::Models::SessionStartParams::Browser::LaunchOptions::Proxy]
252
+ # @param user_data_dir [String]
253
+ # @param viewport [Stagehand::Models::SessionStartParams::Browser::LaunchOptions::Viewport]
254
+
255
+ # @see Stagehand::Models::SessionStartParams::Browser::LaunchOptions#ignore_default_args
256
+ module IgnoreDefaultArgs
257
+ extend Stagehand::Internal::Type::Union
258
+
259
+ variant Stagehand::Internal::Type::Boolean
260
+
261
+ variant -> { Stagehand::Models::SessionStartParams::Browser::LaunchOptions::IgnoreDefaultArgs::StringArray }
262
+
263
+ # @!method self.variants
264
+ # @return [Array(Boolean, Array<String>)]
265
+
266
+ # @type [Stagehand::Internal::Type::Converter]
267
+ StringArray = Stagehand::Internal::Type::ArrayOf[String]
268
+ end
269
+
270
+ # @see Stagehand::Models::SessionStartParams::Browser::LaunchOptions#proxy
271
+ class Proxy < Stagehand::Internal::Type::BaseModel
272
+ # @!attribute server
273
+ #
274
+ # @return [String]
275
+ required :server, String
276
+
277
+ # @!attribute bypass
278
+ #
279
+ # @return [String, nil]
280
+ optional :bypass, String
281
+
282
+ # @!attribute password
283
+ #
284
+ # @return [String, nil]
285
+ optional :password, String
286
+
287
+ # @!attribute username
288
+ #
289
+ # @return [String, nil]
290
+ optional :username, String
291
+
292
+ # @!method initialize(server:, bypass: nil, password: nil, username: nil)
293
+ # @param server [String]
294
+ # @param bypass [String]
295
+ # @param password [String]
296
+ # @param username [String]
297
+ end
298
+
299
+ # @see Stagehand::Models::SessionStartParams::Browser::LaunchOptions#viewport
300
+ class Viewport < Stagehand::Internal::Type::BaseModel
301
+ # @!attribute height
302
+ #
303
+ # @return [Float]
304
+ required :height, Float
305
+
306
+ # @!attribute width
307
+ #
308
+ # @return [Float]
309
+ required :width, Float
310
+
311
+ # @!method initialize(height:, width:)
312
+ # @param height [Float]
313
+ # @param width [Float]
314
+ end
315
+ end
316
+
317
+ # Browser type to use
318
+ #
319
+ # @see Stagehand::Models::SessionStartParams::Browser#type
320
+ module Type
321
+ extend Stagehand::Internal::Type::Enum
322
+
323
+ LOCAL = :local
324
+ BROWSERBASE = :browserbase
325
+
326
+ # @!method self.values
327
+ # @return [Array<Symbol>]
328
+ end
329
+ end
330
+
331
+ class BrowserbaseSessionCreateParams < Stagehand::Internal::Type::BaseModel
332
+ # @!attribute browser_settings
333
+ #
334
+ # @return [Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings, nil]
335
+ optional :browser_settings,
336
+ -> { Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings },
337
+ api_name: :browserSettings
338
+
339
+ # @!attribute extension_id
340
+ #
341
+ # @return [String, nil]
342
+ optional :extension_id, String, api_name: :extensionId
343
+
344
+ # @!attribute keep_alive
345
+ #
346
+ # @return [Boolean, nil]
347
+ optional :keep_alive, Stagehand::Internal::Type::Boolean, api_name: :keepAlive
348
+
349
+ # @!attribute project_id
350
+ #
351
+ # @return [String, nil]
352
+ optional :project_id, String, api_name: :projectId
353
+
354
+ # @!attribute proxies
355
+ #
356
+ # @return [Boolean, Array<Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase, Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::External>, nil]
357
+ optional :proxies, union: -> { Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies }
358
+
359
+ # @!attribute region
360
+ #
361
+ # @return [Symbol, Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::Region, nil]
362
+ optional :region, enum: -> { Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Region }
363
+
364
+ # @!attribute timeout
365
+ #
366
+ # @return [Float, nil]
367
+ optional :timeout, Float
368
+
369
+ # @!attribute user_metadata
370
+ #
371
+ # @return [Hash{Symbol=>Object}, nil]
372
+ optional :user_metadata,
373
+ Stagehand::Internal::Type::HashOf[Stagehand::Internal::Type::Unknown],
374
+ api_name: :userMetadata
375
+
376
+ # @!method initialize(browser_settings: nil, extension_id: nil, keep_alive: nil, project_id: nil, proxies: nil, region: nil, timeout: nil, user_metadata: nil)
377
+ # @param browser_settings [Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings]
378
+ # @param extension_id [String]
379
+ # @param keep_alive [Boolean]
380
+ # @param project_id [String]
381
+ # @param proxies [Boolean, Array<Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase, Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::External>]
382
+ # @param region [Symbol, Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::Region]
383
+ # @param timeout [Float]
384
+ # @param user_metadata [Hash{Symbol=>Object}]
385
+
386
+ # @see Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams#browser_settings
387
+ class BrowserSettings < Stagehand::Internal::Type::BaseModel
388
+ # @!attribute advanced_stealth
389
+ #
390
+ # @return [Boolean, nil]
391
+ optional :advanced_stealth, Stagehand::Internal::Type::Boolean, api_name: :advancedStealth
392
+
393
+ # @!attribute block_ads
394
+ #
395
+ # @return [Boolean, nil]
396
+ optional :block_ads, Stagehand::Internal::Type::Boolean, api_name: :blockAds
397
+
398
+ # @!attribute context
399
+ #
400
+ # @return [Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Context, nil]
401
+ optional :context,
402
+ -> { Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Context }
403
+
404
+ # @!attribute extension_id
405
+ #
406
+ # @return [String, nil]
407
+ optional :extension_id, String, api_name: :extensionId
408
+
409
+ # @!attribute fingerprint
410
+ #
411
+ # @return [Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint, nil]
412
+ optional :fingerprint,
413
+ -> { Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint }
414
+
415
+ # @!attribute log_session
416
+ #
417
+ # @return [Boolean, nil]
418
+ optional :log_session, Stagehand::Internal::Type::Boolean, api_name: :logSession
419
+
420
+ # @!attribute record_session
421
+ #
422
+ # @return [Boolean, nil]
423
+ optional :record_session, Stagehand::Internal::Type::Boolean, api_name: :recordSession
424
+
425
+ # @!attribute solve_captchas
426
+ #
427
+ # @return [Boolean, nil]
428
+ optional :solve_captchas, Stagehand::Internal::Type::Boolean, api_name: :solveCaptchas
429
+
430
+ # @!attribute viewport
431
+ #
432
+ # @return [Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Viewport, nil]
433
+ optional :viewport,
434
+ -> { Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Viewport }
435
+
436
+ # @!method initialize(advanced_stealth: nil, block_ads: nil, context: nil, extension_id: nil, fingerprint: nil, log_session: nil, record_session: nil, solve_captchas: nil, viewport: nil)
437
+ # @param advanced_stealth [Boolean]
438
+ # @param block_ads [Boolean]
439
+ # @param context [Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Context]
440
+ # @param extension_id [String]
441
+ # @param fingerprint [Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint]
442
+ # @param log_session [Boolean]
443
+ # @param record_session [Boolean]
444
+ # @param solve_captchas [Boolean]
445
+ # @param viewport [Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Viewport]
446
+
447
+ # @see Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings#context
448
+ class Context < Stagehand::Internal::Type::BaseModel
449
+ # @!attribute id
450
+ #
451
+ # @return [String]
452
+ required :id, String
453
+
454
+ # @!attribute persist
455
+ #
456
+ # @return [Boolean, nil]
457
+ optional :persist, Stagehand::Internal::Type::Boolean
458
+
459
+ # @!method initialize(id:, persist: nil)
460
+ # @param id [String]
461
+ # @param persist [Boolean]
462
+ end
463
+
464
+ # @see Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings#fingerprint
465
+ class Fingerprint < Stagehand::Internal::Type::BaseModel
466
+ # @!attribute browsers
467
+ #
468
+ # @return [Array<Symbol, Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Browser>, nil]
469
+ optional :browsers,
470
+ -> { Stagehand::Internal::Type::ArrayOf[enum: Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Browser] }
471
+
472
+ # @!attribute devices
473
+ #
474
+ # @return [Array<Symbol, Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Device>, nil]
475
+ optional :devices,
476
+ -> { Stagehand::Internal::Type::ArrayOf[enum: Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Device] }
477
+
478
+ # @!attribute http_version
479
+ #
480
+ # @return [Symbol, Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::HTTPVersion, nil]
481
+ optional :http_version,
482
+ enum: -> {
483
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::HTTPVersion
484
+ },
485
+ api_name: :httpVersion
486
+
487
+ # @!attribute locales
488
+ #
489
+ # @return [Array<String>, nil]
490
+ optional :locales, Stagehand::Internal::Type::ArrayOf[String]
491
+
492
+ # @!attribute operating_systems
493
+ #
494
+ # @return [Array<Symbol, Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OperatingSystem>, nil]
495
+ optional :operating_systems,
496
+ -> do
497
+ Stagehand::Internal::Type::ArrayOf[
498
+ enum: Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OperatingSystem
499
+ ]
500
+ end,
501
+ api_name: :operatingSystems
502
+
503
+ # @!attribute screen
504
+ #
505
+ # @return [Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Screen, nil]
506
+ optional :screen,
507
+ -> { Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Screen }
508
+
509
+ # @!method initialize(browsers: nil, devices: nil, http_version: nil, locales: nil, operating_systems: nil, screen: nil)
510
+ # @param browsers [Array<Symbol, Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Browser>]
511
+ # @param devices [Array<Symbol, Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Device>]
512
+ # @param http_version [Symbol, Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::HTTPVersion]
513
+ # @param locales [Array<String>]
514
+ # @param operating_systems [Array<Symbol, Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OperatingSystem>]
515
+ # @param screen [Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Screen]
516
+
517
+ module Browser
518
+ extend Stagehand::Internal::Type::Enum
519
+
520
+ CHROME = :chrome
521
+ EDGE = :edge
522
+ FIREFOX = :firefox
523
+ SAFARI = :safari
524
+
525
+ # @!method self.values
526
+ # @return [Array<Symbol>]
527
+ end
528
+
529
+ module Device
530
+ extend Stagehand::Internal::Type::Enum
531
+
532
+ DESKTOP = :desktop
533
+ MOBILE = :mobile
534
+
535
+ # @!method self.values
536
+ # @return [Array<Symbol>]
537
+ end
538
+
539
+ # @see Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint#http_version
540
+ module HTTPVersion
541
+ extend Stagehand::Internal::Type::Enum
542
+
543
+ HTTP_VERSION_1 = :"1"
544
+ HTTP_VERSION_2 = :"2"
545
+
546
+ # @!method self.values
547
+ # @return [Array<Symbol>]
548
+ end
549
+
550
+ module OperatingSystem
551
+ extend Stagehand::Internal::Type::Enum
552
+
553
+ ANDROID = :android
554
+ IOS = :ios
555
+ LINUX = :linux
556
+ MACOS = :macos
557
+ WINDOWS = :windows
558
+
559
+ # @!method self.values
560
+ # @return [Array<Symbol>]
561
+ end
562
+
563
+ # @see Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint#screen
564
+ class Screen < Stagehand::Internal::Type::BaseModel
565
+ # @!attribute max_height
566
+ #
567
+ # @return [Float, nil]
568
+ optional :max_height, Float, api_name: :maxHeight
569
+
570
+ # @!attribute max_width
571
+ #
572
+ # @return [Float, nil]
573
+ optional :max_width, Float, api_name: :maxWidth
574
+
575
+ # @!attribute min_height
576
+ #
577
+ # @return [Float, nil]
578
+ optional :min_height, Float, api_name: :minHeight
579
+
580
+ # @!attribute min_width
581
+ #
582
+ # @return [Float, nil]
583
+ optional :min_width, Float, api_name: :minWidth
584
+
585
+ # @!method initialize(max_height: nil, max_width: nil, min_height: nil, min_width: nil)
586
+ # @param max_height [Float]
587
+ # @param max_width [Float]
588
+ # @param min_height [Float]
589
+ # @param min_width [Float]
590
+ end
591
+ end
592
+
593
+ # @see Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings#viewport
594
+ class Viewport < Stagehand::Internal::Type::BaseModel
595
+ # @!attribute height
596
+ #
597
+ # @return [Float, nil]
598
+ optional :height, Float
599
+
600
+ # @!attribute width
601
+ #
602
+ # @return [Float, nil]
603
+ optional :width, Float
604
+
605
+ # @!method initialize(height: nil, width: nil)
606
+ # @param height [Float]
607
+ # @param width [Float]
608
+ end
609
+ end
610
+
611
+ # @see Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams#proxies
612
+ module Proxies
613
+ extend Stagehand::Internal::Type::Union
614
+
615
+ variant Stagehand::Internal::Type::Boolean
616
+
617
+ variant -> { Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigListArray }
618
+
619
+ module ProxyConfigList
620
+ extend Stagehand::Internal::Type::Union
621
+
622
+ discriminator :type
623
+
624
+ variant :browserbase,
625
+ -> { Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase }
626
+
627
+ variant :external,
628
+ -> { Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::External }
629
+
630
+ class Browserbase < Stagehand::Internal::Type::BaseModel
631
+ # @!attribute type
632
+ #
633
+ # @return [Symbol, :browserbase]
634
+ required :type, const: :browserbase
635
+
636
+ # @!attribute domain_pattern
637
+ #
638
+ # @return [String, nil]
639
+ optional :domain_pattern, String, api_name: :domainPattern
640
+
641
+ # @!attribute geolocation
642
+ #
643
+ # @return [Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase::Geolocation, nil]
644
+ optional :geolocation,
645
+ -> { Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase::Geolocation }
646
+
647
+ # @!method initialize(domain_pattern: nil, geolocation: nil, type: :browserbase)
648
+ # @param domain_pattern [String]
649
+ # @param geolocation [Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase::Geolocation]
650
+ # @param type [Symbol, :browserbase]
651
+
652
+ # @see Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase#geolocation
653
+ class Geolocation < Stagehand::Internal::Type::BaseModel
654
+ # @!attribute country
655
+ #
656
+ # @return [String]
657
+ required :country, String
658
+
659
+ # @!attribute city
660
+ #
661
+ # @return [String, nil]
662
+ optional :city, String
663
+
664
+ # @!attribute state
665
+ #
666
+ # @return [String, nil]
667
+ optional :state, String
668
+
669
+ # @!method initialize(country:, city: nil, state: nil)
670
+ # @param country [String]
671
+ # @param city [String]
672
+ # @param state [String]
673
+ end
674
+ end
675
+
676
+ class External < Stagehand::Internal::Type::BaseModel
677
+ # @!attribute server
678
+ #
679
+ # @return [String]
680
+ required :server, String
681
+
682
+ # @!attribute type
683
+ #
684
+ # @return [Symbol, :external]
685
+ required :type, const: :external
686
+
687
+ # @!attribute domain_pattern
688
+ #
689
+ # @return [String, nil]
690
+ optional :domain_pattern, String, api_name: :domainPattern
691
+
692
+ # @!attribute password
693
+ #
694
+ # @return [String, nil]
695
+ optional :password, String
696
+
697
+ # @!attribute username
698
+ #
699
+ # @return [String, nil]
700
+ optional :username, String
701
+
702
+ # @!method initialize(server:, domain_pattern: nil, password: nil, username: nil, type: :external)
703
+ # @param server [String]
704
+ # @param domain_pattern [String]
705
+ # @param password [String]
706
+ # @param username [String]
707
+ # @param type [Symbol, :external]
708
+ end
709
+
710
+ # @!method self.variants
711
+ # @return [Array(Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase, Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::External)]
712
+ end
713
+
714
+ # @!method self.variants
715
+ # @return [Array(Boolean, Array<Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase, Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::External>)]
716
+
717
+ # @type [Stagehand::Internal::Type::Converter]
718
+ ProxyConfigListArray =
719
+ Stagehand::Internal::Type::ArrayOf[union: -> {
720
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList
721
+ }]
722
+ end
723
+
724
+ # @see Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams#region
725
+ module Region
726
+ extend Stagehand::Internal::Type::Enum
727
+
728
+ US_WEST_2 = :"us-west-2"
729
+ US_EAST_1 = :"us-east-1"
730
+ EU_CENTRAL_1 = :"eu-central-1"
731
+ AP_SOUTHEAST_1 = :"ap-southeast-1"
732
+
733
+ # @!method self.values
734
+ # @return [Array<Symbol>]
735
+ end
736
+ end
737
+
738
+ # Logging verbosity level (0=quiet, 1=normal, 2=debug)
739
+ module Verbose
740
+ extend Stagehand::Internal::Type::Enum
741
+
742
+ VERBOSE_0 = 0
743
+ VERBOSE_1 = 1
744
+ VERBOSE_2 = 2
745
+
746
+ # @!method self.values
747
+ # @return [Array<Float>]
748
+ end
749
+
750
+ # Whether to stream the response via SSE
751
+ module XStreamResponse
752
+ extend Stagehand::Internal::Type::Enum
753
+
754
+ TRUE = :true
755
+ FALSE = :false
756
+
757
+ # @!method self.values
758
+ # @return [Array<Symbol>]
759
+ end
760
+ end
761
+ end
762
+ end