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,1703 @@
1
+ # typed: strong
2
+
3
+ module Stagehand
4
+ module Models
5
+ class SessionStartParams < Stagehand::Internal::Type::BaseModel
6
+ extend Stagehand::Internal::Type::RequestParameters::Converter
7
+ include Stagehand::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Stagehand::SessionStartParams, Stagehand::Internal::AnyHash)
12
+ end
13
+
14
+ # Model name to use for AI operations
15
+ sig { returns(String) }
16
+ attr_accessor :model_name
17
+
18
+ # Timeout in ms for act operations (deprecated, v2 only)
19
+ sig { returns(T.nilable(Float)) }
20
+ attr_reader :act_timeout_ms
21
+
22
+ sig { params(act_timeout_ms: Float).void }
23
+ attr_writer :act_timeout_ms
24
+
25
+ sig { returns(T.nilable(Stagehand::SessionStartParams::Browser)) }
26
+ attr_reader :browser
27
+
28
+ sig do
29
+ params(browser: Stagehand::SessionStartParams::Browser::OrHash).void
30
+ end
31
+ attr_writer :browser
32
+
33
+ sig do
34
+ returns(
35
+ T.nilable(
36
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams
37
+ )
38
+ )
39
+ end
40
+ attr_reader :browserbase_session_create_params
41
+
42
+ sig do
43
+ params(
44
+ browserbase_session_create_params:
45
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::OrHash
46
+ ).void
47
+ end
48
+ attr_writer :browserbase_session_create_params
49
+
50
+ # Existing Browserbase session ID to resume
51
+ sig { returns(T.nilable(String)) }
52
+ attr_reader :browserbase_session_id
53
+
54
+ sig { params(browserbase_session_id: String).void }
55
+ attr_writer :browserbase_session_id
56
+
57
+ # Timeout in ms to wait for DOM to settle
58
+ sig { returns(T.nilable(Float)) }
59
+ attr_reader :dom_settle_timeout_ms
60
+
61
+ sig { params(dom_settle_timeout_ms: Float).void }
62
+ attr_writer :dom_settle_timeout_ms
63
+
64
+ sig { returns(T.nilable(T::Boolean)) }
65
+ attr_reader :experimental
66
+
67
+ sig { params(experimental: T::Boolean).void }
68
+ attr_writer :experimental
69
+
70
+ # Enable self-healing for failed actions
71
+ sig { returns(T.nilable(T::Boolean)) }
72
+ attr_reader :self_heal
73
+
74
+ sig { params(self_heal: T::Boolean).void }
75
+ attr_writer :self_heal
76
+
77
+ # Custom system prompt for AI operations
78
+ sig { returns(T.nilable(String)) }
79
+ attr_reader :system_prompt
80
+
81
+ sig { params(system_prompt: String).void }
82
+ attr_writer :system_prompt
83
+
84
+ # Logging verbosity level (0=quiet, 1=normal, 2=debug)
85
+ sig do
86
+ returns(T.nilable(Stagehand::SessionStartParams::Verbose::OrFloat))
87
+ end
88
+ attr_reader :verbose
89
+
90
+ sig do
91
+ params(verbose: Stagehand::SessionStartParams::Verbose::OrFloat).void
92
+ end
93
+ attr_writer :verbose
94
+
95
+ # Wait for captcha solves (deprecated, v2 only)
96
+ sig { returns(T.nilable(T::Boolean)) }
97
+ attr_reader :wait_for_captcha_solves
98
+
99
+ sig { params(wait_for_captcha_solves: T::Boolean).void }
100
+ attr_writer :wait_for_captcha_solves
101
+
102
+ # Whether to stream the response via SSE
103
+ sig do
104
+ returns(
105
+ T.nilable(Stagehand::SessionStartParams::XStreamResponse::OrSymbol)
106
+ )
107
+ end
108
+ attr_reader :x_stream_response
109
+
110
+ sig do
111
+ params(
112
+ x_stream_response:
113
+ Stagehand::SessionStartParams::XStreamResponse::OrSymbol
114
+ ).void
115
+ end
116
+ attr_writer :x_stream_response
117
+
118
+ sig do
119
+ params(
120
+ model_name: String,
121
+ act_timeout_ms: Float,
122
+ browser: Stagehand::SessionStartParams::Browser::OrHash,
123
+ browserbase_session_create_params:
124
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::OrHash,
125
+ browserbase_session_id: String,
126
+ dom_settle_timeout_ms: Float,
127
+ experimental: T::Boolean,
128
+ self_heal: T::Boolean,
129
+ system_prompt: String,
130
+ verbose: Stagehand::SessionStartParams::Verbose::OrFloat,
131
+ wait_for_captcha_solves: T::Boolean,
132
+ x_stream_response:
133
+ Stagehand::SessionStartParams::XStreamResponse::OrSymbol,
134
+ request_options: Stagehand::RequestOptions::OrHash
135
+ ).returns(T.attached_class)
136
+ end
137
+ def self.new(
138
+ # Model name to use for AI operations
139
+ model_name:,
140
+ # Timeout in ms for act operations (deprecated, v2 only)
141
+ act_timeout_ms: nil,
142
+ browser: nil,
143
+ browserbase_session_create_params: nil,
144
+ # Existing Browserbase session ID to resume
145
+ browserbase_session_id: nil,
146
+ # Timeout in ms to wait for DOM to settle
147
+ dom_settle_timeout_ms: nil,
148
+ experimental: nil,
149
+ # Enable self-healing for failed actions
150
+ self_heal: nil,
151
+ # Custom system prompt for AI operations
152
+ system_prompt: nil,
153
+ # Logging verbosity level (0=quiet, 1=normal, 2=debug)
154
+ verbose: nil,
155
+ # Wait for captcha solves (deprecated, v2 only)
156
+ wait_for_captcha_solves: nil,
157
+ # Whether to stream the response via SSE
158
+ x_stream_response: nil,
159
+ request_options: {}
160
+ )
161
+ end
162
+
163
+ sig do
164
+ override.returns(
165
+ {
166
+ model_name: String,
167
+ act_timeout_ms: Float,
168
+ browser: Stagehand::SessionStartParams::Browser,
169
+ browserbase_session_create_params:
170
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams,
171
+ browserbase_session_id: String,
172
+ dom_settle_timeout_ms: Float,
173
+ experimental: T::Boolean,
174
+ self_heal: T::Boolean,
175
+ system_prompt: String,
176
+ verbose: Stagehand::SessionStartParams::Verbose::OrFloat,
177
+ wait_for_captcha_solves: T::Boolean,
178
+ x_stream_response:
179
+ Stagehand::SessionStartParams::XStreamResponse::OrSymbol,
180
+ request_options: Stagehand::RequestOptions
181
+ }
182
+ )
183
+ end
184
+ def to_hash
185
+ end
186
+
187
+ class Browser < Stagehand::Internal::Type::BaseModel
188
+ OrHash =
189
+ T.type_alias do
190
+ T.any(
191
+ Stagehand::SessionStartParams::Browser,
192
+ Stagehand::Internal::AnyHash
193
+ )
194
+ end
195
+
196
+ # Chrome DevTools Protocol URL for connecting to existing browser
197
+ sig { returns(T.nilable(String)) }
198
+ attr_reader :cdp_url
199
+
200
+ sig { params(cdp_url: String).void }
201
+ attr_writer :cdp_url
202
+
203
+ sig do
204
+ returns(
205
+ T.nilable(Stagehand::SessionStartParams::Browser::LaunchOptions)
206
+ )
207
+ end
208
+ attr_reader :launch_options
209
+
210
+ sig do
211
+ params(
212
+ launch_options:
213
+ Stagehand::SessionStartParams::Browser::LaunchOptions::OrHash
214
+ ).void
215
+ end
216
+ attr_writer :launch_options
217
+
218
+ # Browser type to use
219
+ sig do
220
+ returns(
221
+ T.nilable(Stagehand::SessionStartParams::Browser::Type::OrSymbol)
222
+ )
223
+ end
224
+ attr_reader :type
225
+
226
+ sig do
227
+ params(
228
+ type: Stagehand::SessionStartParams::Browser::Type::OrSymbol
229
+ ).void
230
+ end
231
+ attr_writer :type
232
+
233
+ sig do
234
+ params(
235
+ cdp_url: String,
236
+ launch_options:
237
+ Stagehand::SessionStartParams::Browser::LaunchOptions::OrHash,
238
+ type: Stagehand::SessionStartParams::Browser::Type::OrSymbol
239
+ ).returns(T.attached_class)
240
+ end
241
+ def self.new(
242
+ # Chrome DevTools Protocol URL for connecting to existing browser
243
+ cdp_url: nil,
244
+ launch_options: nil,
245
+ # Browser type to use
246
+ type: nil
247
+ )
248
+ end
249
+
250
+ sig do
251
+ override.returns(
252
+ {
253
+ cdp_url: String,
254
+ launch_options:
255
+ Stagehand::SessionStartParams::Browser::LaunchOptions,
256
+ type: Stagehand::SessionStartParams::Browser::Type::OrSymbol
257
+ }
258
+ )
259
+ end
260
+ def to_hash
261
+ end
262
+
263
+ class LaunchOptions < Stagehand::Internal::Type::BaseModel
264
+ OrHash =
265
+ T.type_alias do
266
+ T.any(
267
+ Stagehand::SessionStartParams::Browser::LaunchOptions,
268
+ Stagehand::Internal::AnyHash
269
+ )
270
+ end
271
+
272
+ sig { returns(T.nilable(T::Boolean)) }
273
+ attr_reader :accept_downloads
274
+
275
+ sig { params(accept_downloads: T::Boolean).void }
276
+ attr_writer :accept_downloads
277
+
278
+ sig { returns(T.nilable(T::Array[String])) }
279
+ attr_reader :args
280
+
281
+ sig { params(args: T::Array[String]).void }
282
+ attr_writer :args
283
+
284
+ sig { returns(T.nilable(String)) }
285
+ attr_reader :cdp_url
286
+
287
+ sig { params(cdp_url: String).void }
288
+ attr_writer :cdp_url
289
+
290
+ sig { returns(T.nilable(T::Boolean)) }
291
+ attr_reader :chromium_sandbox
292
+
293
+ sig { params(chromium_sandbox: T::Boolean).void }
294
+ attr_writer :chromium_sandbox
295
+
296
+ sig { returns(T.nilable(Float)) }
297
+ attr_reader :connect_timeout_ms
298
+
299
+ sig { params(connect_timeout_ms: Float).void }
300
+ attr_writer :connect_timeout_ms
301
+
302
+ sig { returns(T.nilable(Float)) }
303
+ attr_reader :device_scale_factor
304
+
305
+ sig { params(device_scale_factor: Float).void }
306
+ attr_writer :device_scale_factor
307
+
308
+ sig { returns(T.nilable(T::Boolean)) }
309
+ attr_reader :devtools
310
+
311
+ sig { params(devtools: T::Boolean).void }
312
+ attr_writer :devtools
313
+
314
+ sig { returns(T.nilable(String)) }
315
+ attr_reader :downloads_path
316
+
317
+ sig { params(downloads_path: String).void }
318
+ attr_writer :downloads_path
319
+
320
+ sig { returns(T.nilable(String)) }
321
+ attr_reader :executable_path
322
+
323
+ sig { params(executable_path: String).void }
324
+ attr_writer :executable_path
325
+
326
+ sig { returns(T.nilable(T::Boolean)) }
327
+ attr_reader :has_touch
328
+
329
+ sig { params(has_touch: T::Boolean).void }
330
+ attr_writer :has_touch
331
+
332
+ sig { returns(T.nilable(T::Boolean)) }
333
+ attr_reader :headless
334
+
335
+ sig { params(headless: T::Boolean).void }
336
+ attr_writer :headless
337
+
338
+ sig do
339
+ returns(
340
+ T.nilable(
341
+ Stagehand::SessionStartParams::Browser::LaunchOptions::IgnoreDefaultArgs::Variants
342
+ )
343
+ )
344
+ end
345
+ attr_reader :ignore_default_args
346
+
347
+ sig do
348
+ params(
349
+ ignore_default_args:
350
+ Stagehand::SessionStartParams::Browser::LaunchOptions::IgnoreDefaultArgs::Variants
351
+ ).void
352
+ end
353
+ attr_writer :ignore_default_args
354
+
355
+ sig { returns(T.nilable(T::Boolean)) }
356
+ attr_reader :ignore_https_errors
357
+
358
+ sig { params(ignore_https_errors: T::Boolean).void }
359
+ attr_writer :ignore_https_errors
360
+
361
+ sig { returns(T.nilable(String)) }
362
+ attr_reader :locale
363
+
364
+ sig { params(locale: String).void }
365
+ attr_writer :locale
366
+
367
+ sig { returns(T.nilable(Float)) }
368
+ attr_reader :port
369
+
370
+ sig { params(port: Float).void }
371
+ attr_writer :port
372
+
373
+ sig { returns(T.nilable(T::Boolean)) }
374
+ attr_reader :preserve_user_data_dir
375
+
376
+ sig { params(preserve_user_data_dir: T::Boolean).void }
377
+ attr_writer :preserve_user_data_dir
378
+
379
+ sig do
380
+ returns(
381
+ T.nilable(
382
+ Stagehand::SessionStartParams::Browser::LaunchOptions::Proxy
383
+ )
384
+ )
385
+ end
386
+ attr_reader :proxy
387
+
388
+ sig do
389
+ params(
390
+ proxy:
391
+ Stagehand::SessionStartParams::Browser::LaunchOptions::Proxy::OrHash
392
+ ).void
393
+ end
394
+ attr_writer :proxy
395
+
396
+ sig { returns(T.nilable(String)) }
397
+ attr_reader :user_data_dir
398
+
399
+ sig { params(user_data_dir: String).void }
400
+ attr_writer :user_data_dir
401
+
402
+ sig do
403
+ returns(
404
+ T.nilable(
405
+ Stagehand::SessionStartParams::Browser::LaunchOptions::Viewport
406
+ )
407
+ )
408
+ end
409
+ attr_reader :viewport
410
+
411
+ sig do
412
+ params(
413
+ viewport:
414
+ Stagehand::SessionStartParams::Browser::LaunchOptions::Viewport::OrHash
415
+ ).void
416
+ end
417
+ attr_writer :viewport
418
+
419
+ sig do
420
+ params(
421
+ accept_downloads: T::Boolean,
422
+ args: T::Array[String],
423
+ cdp_url: String,
424
+ chromium_sandbox: T::Boolean,
425
+ connect_timeout_ms: Float,
426
+ device_scale_factor: Float,
427
+ devtools: T::Boolean,
428
+ downloads_path: String,
429
+ executable_path: String,
430
+ has_touch: T::Boolean,
431
+ headless: T::Boolean,
432
+ ignore_default_args:
433
+ Stagehand::SessionStartParams::Browser::LaunchOptions::IgnoreDefaultArgs::Variants,
434
+ ignore_https_errors: T::Boolean,
435
+ locale: String,
436
+ port: Float,
437
+ preserve_user_data_dir: T::Boolean,
438
+ proxy:
439
+ Stagehand::SessionStartParams::Browser::LaunchOptions::Proxy::OrHash,
440
+ user_data_dir: String,
441
+ viewport:
442
+ Stagehand::SessionStartParams::Browser::LaunchOptions::Viewport::OrHash
443
+ ).returns(T.attached_class)
444
+ end
445
+ def self.new(
446
+ accept_downloads: nil,
447
+ args: nil,
448
+ cdp_url: nil,
449
+ chromium_sandbox: nil,
450
+ connect_timeout_ms: nil,
451
+ device_scale_factor: nil,
452
+ devtools: nil,
453
+ downloads_path: nil,
454
+ executable_path: nil,
455
+ has_touch: nil,
456
+ headless: nil,
457
+ ignore_default_args: nil,
458
+ ignore_https_errors: nil,
459
+ locale: nil,
460
+ port: nil,
461
+ preserve_user_data_dir: nil,
462
+ proxy: nil,
463
+ user_data_dir: nil,
464
+ viewport: nil
465
+ )
466
+ end
467
+
468
+ sig do
469
+ override.returns(
470
+ {
471
+ accept_downloads: T::Boolean,
472
+ args: T::Array[String],
473
+ cdp_url: String,
474
+ chromium_sandbox: T::Boolean,
475
+ connect_timeout_ms: Float,
476
+ device_scale_factor: Float,
477
+ devtools: T::Boolean,
478
+ downloads_path: String,
479
+ executable_path: String,
480
+ has_touch: T::Boolean,
481
+ headless: T::Boolean,
482
+ ignore_default_args:
483
+ Stagehand::SessionStartParams::Browser::LaunchOptions::IgnoreDefaultArgs::Variants,
484
+ ignore_https_errors: T::Boolean,
485
+ locale: String,
486
+ port: Float,
487
+ preserve_user_data_dir: T::Boolean,
488
+ proxy:
489
+ Stagehand::SessionStartParams::Browser::LaunchOptions::Proxy,
490
+ user_data_dir: String,
491
+ viewport:
492
+ Stagehand::SessionStartParams::Browser::LaunchOptions::Viewport
493
+ }
494
+ )
495
+ end
496
+ def to_hash
497
+ end
498
+
499
+ module IgnoreDefaultArgs
500
+ extend Stagehand::Internal::Type::Union
501
+
502
+ Variants = T.type_alias { T.any(T::Boolean, T::Array[String]) }
503
+
504
+ sig do
505
+ override.returns(
506
+ T::Array[
507
+ Stagehand::SessionStartParams::Browser::LaunchOptions::IgnoreDefaultArgs::Variants
508
+ ]
509
+ )
510
+ end
511
+ def self.variants
512
+ end
513
+
514
+ StringArray =
515
+ T.let(
516
+ Stagehand::Internal::Type::ArrayOf[String],
517
+ Stagehand::Internal::Type::Converter
518
+ )
519
+ end
520
+
521
+ class Proxy < Stagehand::Internal::Type::BaseModel
522
+ OrHash =
523
+ T.type_alias do
524
+ T.any(
525
+ Stagehand::SessionStartParams::Browser::LaunchOptions::Proxy,
526
+ Stagehand::Internal::AnyHash
527
+ )
528
+ end
529
+
530
+ sig { returns(String) }
531
+ attr_accessor :server
532
+
533
+ sig { returns(T.nilable(String)) }
534
+ attr_reader :bypass
535
+
536
+ sig { params(bypass: String).void }
537
+ attr_writer :bypass
538
+
539
+ sig { returns(T.nilable(String)) }
540
+ attr_reader :password
541
+
542
+ sig { params(password: String).void }
543
+ attr_writer :password
544
+
545
+ sig { returns(T.nilable(String)) }
546
+ attr_reader :username
547
+
548
+ sig { params(username: String).void }
549
+ attr_writer :username
550
+
551
+ sig do
552
+ params(
553
+ server: String,
554
+ bypass: String,
555
+ password: String,
556
+ username: String
557
+ ).returns(T.attached_class)
558
+ end
559
+ def self.new(server:, bypass: nil, password: nil, username: nil)
560
+ end
561
+
562
+ sig do
563
+ override.returns(
564
+ {
565
+ server: String,
566
+ bypass: String,
567
+ password: String,
568
+ username: String
569
+ }
570
+ )
571
+ end
572
+ def to_hash
573
+ end
574
+ end
575
+
576
+ class Viewport < Stagehand::Internal::Type::BaseModel
577
+ OrHash =
578
+ T.type_alias do
579
+ T.any(
580
+ Stagehand::SessionStartParams::Browser::LaunchOptions::Viewport,
581
+ Stagehand::Internal::AnyHash
582
+ )
583
+ end
584
+
585
+ sig { returns(Float) }
586
+ attr_accessor :height
587
+
588
+ sig { returns(Float) }
589
+ attr_accessor :width
590
+
591
+ sig do
592
+ params(height: Float, width: Float).returns(T.attached_class)
593
+ end
594
+ def self.new(height:, width:)
595
+ end
596
+
597
+ sig { override.returns({ height: Float, width: Float }) }
598
+ def to_hash
599
+ end
600
+ end
601
+ end
602
+
603
+ # Browser type to use
604
+ module Type
605
+ extend Stagehand::Internal::Type::Enum
606
+
607
+ TaggedSymbol =
608
+ T.type_alias do
609
+ T.all(Symbol, Stagehand::SessionStartParams::Browser::Type)
610
+ end
611
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
612
+
613
+ LOCAL =
614
+ T.let(
615
+ :local,
616
+ Stagehand::SessionStartParams::Browser::Type::TaggedSymbol
617
+ )
618
+ BROWSERBASE =
619
+ T.let(
620
+ :browserbase,
621
+ Stagehand::SessionStartParams::Browser::Type::TaggedSymbol
622
+ )
623
+
624
+ sig do
625
+ override.returns(
626
+ T::Array[
627
+ Stagehand::SessionStartParams::Browser::Type::TaggedSymbol
628
+ ]
629
+ )
630
+ end
631
+ def self.values
632
+ end
633
+ end
634
+ end
635
+
636
+ class BrowserbaseSessionCreateParams < Stagehand::Internal::Type::BaseModel
637
+ OrHash =
638
+ T.type_alias do
639
+ T.any(
640
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams,
641
+ Stagehand::Internal::AnyHash
642
+ )
643
+ end
644
+
645
+ sig do
646
+ returns(
647
+ T.nilable(
648
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings
649
+ )
650
+ )
651
+ end
652
+ attr_reader :browser_settings
653
+
654
+ sig do
655
+ params(
656
+ browser_settings:
657
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::OrHash
658
+ ).void
659
+ end
660
+ attr_writer :browser_settings
661
+
662
+ sig { returns(T.nilable(String)) }
663
+ attr_reader :extension_id
664
+
665
+ sig { params(extension_id: String).void }
666
+ attr_writer :extension_id
667
+
668
+ sig { returns(T.nilable(T::Boolean)) }
669
+ attr_reader :keep_alive
670
+
671
+ sig { params(keep_alive: T::Boolean).void }
672
+ attr_writer :keep_alive
673
+
674
+ sig { returns(T.nilable(String)) }
675
+ attr_reader :project_id
676
+
677
+ sig { params(project_id: String).void }
678
+ attr_writer :project_id
679
+
680
+ sig do
681
+ returns(
682
+ T.nilable(
683
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::Variants
684
+ )
685
+ )
686
+ end
687
+ attr_reader :proxies
688
+
689
+ sig do
690
+ params(
691
+ proxies:
692
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::Variants
693
+ ).void
694
+ end
695
+ attr_writer :proxies
696
+
697
+ sig do
698
+ returns(
699
+ T.nilable(
700
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Region::OrSymbol
701
+ )
702
+ )
703
+ end
704
+ attr_reader :region
705
+
706
+ sig do
707
+ params(
708
+ region:
709
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Region::OrSymbol
710
+ ).void
711
+ end
712
+ attr_writer :region
713
+
714
+ sig { returns(T.nilable(Float)) }
715
+ attr_reader :timeout
716
+
717
+ sig { params(timeout: Float).void }
718
+ attr_writer :timeout
719
+
720
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
721
+ attr_reader :user_metadata
722
+
723
+ sig { params(user_metadata: T::Hash[Symbol, T.anything]).void }
724
+ attr_writer :user_metadata
725
+
726
+ sig do
727
+ params(
728
+ browser_settings:
729
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::OrHash,
730
+ extension_id: String,
731
+ keep_alive: T::Boolean,
732
+ project_id: String,
733
+ proxies:
734
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::Variants,
735
+ region:
736
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Region::OrSymbol,
737
+ timeout: Float,
738
+ user_metadata: T::Hash[Symbol, T.anything]
739
+ ).returns(T.attached_class)
740
+ end
741
+ def self.new(
742
+ browser_settings: nil,
743
+ extension_id: nil,
744
+ keep_alive: nil,
745
+ project_id: nil,
746
+ proxies: nil,
747
+ region: nil,
748
+ timeout: nil,
749
+ user_metadata: nil
750
+ )
751
+ end
752
+
753
+ sig do
754
+ override.returns(
755
+ {
756
+ browser_settings:
757
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings,
758
+ extension_id: String,
759
+ keep_alive: T::Boolean,
760
+ project_id: String,
761
+ proxies:
762
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::Variants,
763
+ region:
764
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Region::OrSymbol,
765
+ timeout: Float,
766
+ user_metadata: T::Hash[Symbol, T.anything]
767
+ }
768
+ )
769
+ end
770
+ def to_hash
771
+ end
772
+
773
+ class BrowserSettings < Stagehand::Internal::Type::BaseModel
774
+ OrHash =
775
+ T.type_alias do
776
+ T.any(
777
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings,
778
+ Stagehand::Internal::AnyHash
779
+ )
780
+ end
781
+
782
+ sig { returns(T.nilable(T::Boolean)) }
783
+ attr_reader :advanced_stealth
784
+
785
+ sig { params(advanced_stealth: T::Boolean).void }
786
+ attr_writer :advanced_stealth
787
+
788
+ sig { returns(T.nilable(T::Boolean)) }
789
+ attr_reader :block_ads
790
+
791
+ sig { params(block_ads: T::Boolean).void }
792
+ attr_writer :block_ads
793
+
794
+ sig do
795
+ returns(
796
+ T.nilable(
797
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Context
798
+ )
799
+ )
800
+ end
801
+ attr_reader :context
802
+
803
+ sig do
804
+ params(
805
+ context:
806
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Context::OrHash
807
+ ).void
808
+ end
809
+ attr_writer :context
810
+
811
+ sig { returns(T.nilable(String)) }
812
+ attr_reader :extension_id
813
+
814
+ sig { params(extension_id: String).void }
815
+ attr_writer :extension_id
816
+
817
+ sig do
818
+ returns(
819
+ T.nilable(
820
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint
821
+ )
822
+ )
823
+ end
824
+ attr_reader :fingerprint
825
+
826
+ sig do
827
+ params(
828
+ fingerprint:
829
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OrHash
830
+ ).void
831
+ end
832
+ attr_writer :fingerprint
833
+
834
+ sig { returns(T.nilable(T::Boolean)) }
835
+ attr_reader :log_session
836
+
837
+ sig { params(log_session: T::Boolean).void }
838
+ attr_writer :log_session
839
+
840
+ sig { returns(T.nilable(T::Boolean)) }
841
+ attr_reader :record_session
842
+
843
+ sig { params(record_session: T::Boolean).void }
844
+ attr_writer :record_session
845
+
846
+ sig { returns(T.nilable(T::Boolean)) }
847
+ attr_reader :solve_captchas
848
+
849
+ sig { params(solve_captchas: T::Boolean).void }
850
+ attr_writer :solve_captchas
851
+
852
+ sig do
853
+ returns(
854
+ T.nilable(
855
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Viewport
856
+ )
857
+ )
858
+ end
859
+ attr_reader :viewport
860
+
861
+ sig do
862
+ params(
863
+ viewport:
864
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Viewport::OrHash
865
+ ).void
866
+ end
867
+ attr_writer :viewport
868
+
869
+ sig do
870
+ params(
871
+ advanced_stealth: T::Boolean,
872
+ block_ads: T::Boolean,
873
+ context:
874
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Context::OrHash,
875
+ extension_id: String,
876
+ fingerprint:
877
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OrHash,
878
+ log_session: T::Boolean,
879
+ record_session: T::Boolean,
880
+ solve_captchas: T::Boolean,
881
+ viewport:
882
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Viewport::OrHash
883
+ ).returns(T.attached_class)
884
+ end
885
+ def self.new(
886
+ advanced_stealth: nil,
887
+ block_ads: nil,
888
+ context: nil,
889
+ extension_id: nil,
890
+ fingerprint: nil,
891
+ log_session: nil,
892
+ record_session: nil,
893
+ solve_captchas: nil,
894
+ viewport: nil
895
+ )
896
+ end
897
+
898
+ sig do
899
+ override.returns(
900
+ {
901
+ advanced_stealth: T::Boolean,
902
+ block_ads: T::Boolean,
903
+ context:
904
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Context,
905
+ extension_id: String,
906
+ fingerprint:
907
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint,
908
+ log_session: T::Boolean,
909
+ record_session: T::Boolean,
910
+ solve_captchas: T::Boolean,
911
+ viewport:
912
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Viewport
913
+ }
914
+ )
915
+ end
916
+ def to_hash
917
+ end
918
+
919
+ class Context < Stagehand::Internal::Type::BaseModel
920
+ OrHash =
921
+ T.type_alias do
922
+ T.any(
923
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Context,
924
+ Stagehand::Internal::AnyHash
925
+ )
926
+ end
927
+
928
+ sig { returns(String) }
929
+ attr_accessor :id
930
+
931
+ sig { returns(T.nilable(T::Boolean)) }
932
+ attr_reader :persist
933
+
934
+ sig { params(persist: T::Boolean).void }
935
+ attr_writer :persist
936
+
937
+ sig do
938
+ params(id: String, persist: T::Boolean).returns(T.attached_class)
939
+ end
940
+ def self.new(id:, persist: nil)
941
+ end
942
+
943
+ sig { override.returns({ id: String, persist: T::Boolean }) }
944
+ def to_hash
945
+ end
946
+ end
947
+
948
+ class Fingerprint < Stagehand::Internal::Type::BaseModel
949
+ OrHash =
950
+ T.type_alias do
951
+ T.any(
952
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint,
953
+ Stagehand::Internal::AnyHash
954
+ )
955
+ end
956
+
957
+ sig do
958
+ returns(
959
+ T.nilable(
960
+ T::Array[
961
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Browser::OrSymbol
962
+ ]
963
+ )
964
+ )
965
+ end
966
+ attr_reader :browsers
967
+
968
+ sig do
969
+ params(
970
+ browsers:
971
+ T::Array[
972
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Browser::OrSymbol
973
+ ]
974
+ ).void
975
+ end
976
+ attr_writer :browsers
977
+
978
+ sig do
979
+ returns(
980
+ T.nilable(
981
+ T::Array[
982
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Device::OrSymbol
983
+ ]
984
+ )
985
+ )
986
+ end
987
+ attr_reader :devices
988
+
989
+ sig do
990
+ params(
991
+ devices:
992
+ T::Array[
993
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Device::OrSymbol
994
+ ]
995
+ ).void
996
+ end
997
+ attr_writer :devices
998
+
999
+ sig do
1000
+ returns(
1001
+ T.nilable(
1002
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::HTTPVersion::OrSymbol
1003
+ )
1004
+ )
1005
+ end
1006
+ attr_reader :http_version
1007
+
1008
+ sig do
1009
+ params(
1010
+ http_version:
1011
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::HTTPVersion::OrSymbol
1012
+ ).void
1013
+ end
1014
+ attr_writer :http_version
1015
+
1016
+ sig { returns(T.nilable(T::Array[String])) }
1017
+ attr_reader :locales
1018
+
1019
+ sig { params(locales: T::Array[String]).void }
1020
+ attr_writer :locales
1021
+
1022
+ sig do
1023
+ returns(
1024
+ T.nilable(
1025
+ T::Array[
1026
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OperatingSystem::OrSymbol
1027
+ ]
1028
+ )
1029
+ )
1030
+ end
1031
+ attr_reader :operating_systems
1032
+
1033
+ sig do
1034
+ params(
1035
+ operating_systems:
1036
+ T::Array[
1037
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OperatingSystem::OrSymbol
1038
+ ]
1039
+ ).void
1040
+ end
1041
+ attr_writer :operating_systems
1042
+
1043
+ sig do
1044
+ returns(
1045
+ T.nilable(
1046
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Screen
1047
+ )
1048
+ )
1049
+ end
1050
+ attr_reader :screen
1051
+
1052
+ sig do
1053
+ params(
1054
+ screen:
1055
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Screen::OrHash
1056
+ ).void
1057
+ end
1058
+ attr_writer :screen
1059
+
1060
+ sig do
1061
+ params(
1062
+ browsers:
1063
+ T::Array[
1064
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Browser::OrSymbol
1065
+ ],
1066
+ devices:
1067
+ T::Array[
1068
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Device::OrSymbol
1069
+ ],
1070
+ http_version:
1071
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::HTTPVersion::OrSymbol,
1072
+ locales: T::Array[String],
1073
+ operating_systems:
1074
+ T::Array[
1075
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OperatingSystem::OrSymbol
1076
+ ],
1077
+ screen:
1078
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Screen::OrHash
1079
+ ).returns(T.attached_class)
1080
+ end
1081
+ def self.new(
1082
+ browsers: nil,
1083
+ devices: nil,
1084
+ http_version: nil,
1085
+ locales: nil,
1086
+ operating_systems: nil,
1087
+ screen: nil
1088
+ )
1089
+ end
1090
+
1091
+ sig do
1092
+ override.returns(
1093
+ {
1094
+ browsers:
1095
+ T::Array[
1096
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Browser::OrSymbol
1097
+ ],
1098
+ devices:
1099
+ T::Array[
1100
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Device::OrSymbol
1101
+ ],
1102
+ http_version:
1103
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::HTTPVersion::OrSymbol,
1104
+ locales: T::Array[String],
1105
+ operating_systems:
1106
+ T::Array[
1107
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OperatingSystem::OrSymbol
1108
+ ],
1109
+ screen:
1110
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Screen
1111
+ }
1112
+ )
1113
+ end
1114
+ def to_hash
1115
+ end
1116
+
1117
+ module Browser
1118
+ extend Stagehand::Internal::Type::Enum
1119
+
1120
+ TaggedSymbol =
1121
+ T.type_alias do
1122
+ T.all(
1123
+ Symbol,
1124
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Browser
1125
+ )
1126
+ end
1127
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1128
+
1129
+ CHROME =
1130
+ T.let(
1131
+ :chrome,
1132
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Browser::TaggedSymbol
1133
+ )
1134
+ EDGE =
1135
+ T.let(
1136
+ :edge,
1137
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Browser::TaggedSymbol
1138
+ )
1139
+ FIREFOX =
1140
+ T.let(
1141
+ :firefox,
1142
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Browser::TaggedSymbol
1143
+ )
1144
+ SAFARI =
1145
+ T.let(
1146
+ :safari,
1147
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Browser::TaggedSymbol
1148
+ )
1149
+
1150
+ sig do
1151
+ override.returns(
1152
+ T::Array[
1153
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Browser::TaggedSymbol
1154
+ ]
1155
+ )
1156
+ end
1157
+ def self.values
1158
+ end
1159
+ end
1160
+
1161
+ module Device
1162
+ extend Stagehand::Internal::Type::Enum
1163
+
1164
+ TaggedSymbol =
1165
+ T.type_alias do
1166
+ T.all(
1167
+ Symbol,
1168
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Device
1169
+ )
1170
+ end
1171
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1172
+
1173
+ DESKTOP =
1174
+ T.let(
1175
+ :desktop,
1176
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Device::TaggedSymbol
1177
+ )
1178
+ MOBILE =
1179
+ T.let(
1180
+ :mobile,
1181
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Device::TaggedSymbol
1182
+ )
1183
+
1184
+ sig do
1185
+ override.returns(
1186
+ T::Array[
1187
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Device::TaggedSymbol
1188
+ ]
1189
+ )
1190
+ end
1191
+ def self.values
1192
+ end
1193
+ end
1194
+
1195
+ module HTTPVersion
1196
+ extend Stagehand::Internal::Type::Enum
1197
+
1198
+ TaggedSymbol =
1199
+ T.type_alias do
1200
+ T.all(
1201
+ Symbol,
1202
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::HTTPVersion
1203
+ )
1204
+ end
1205
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1206
+
1207
+ HTTP_VERSION_1 =
1208
+ T.let(
1209
+ :"1",
1210
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::HTTPVersion::TaggedSymbol
1211
+ )
1212
+ HTTP_VERSION_2 =
1213
+ T.let(
1214
+ :"2",
1215
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::HTTPVersion::TaggedSymbol
1216
+ )
1217
+
1218
+ sig do
1219
+ override.returns(
1220
+ T::Array[
1221
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::HTTPVersion::TaggedSymbol
1222
+ ]
1223
+ )
1224
+ end
1225
+ def self.values
1226
+ end
1227
+ end
1228
+
1229
+ module OperatingSystem
1230
+ extend Stagehand::Internal::Type::Enum
1231
+
1232
+ TaggedSymbol =
1233
+ T.type_alias do
1234
+ T.all(
1235
+ Symbol,
1236
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OperatingSystem
1237
+ )
1238
+ end
1239
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1240
+
1241
+ ANDROID =
1242
+ T.let(
1243
+ :android,
1244
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OperatingSystem::TaggedSymbol
1245
+ )
1246
+ IOS =
1247
+ T.let(
1248
+ :ios,
1249
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OperatingSystem::TaggedSymbol
1250
+ )
1251
+ LINUX =
1252
+ T.let(
1253
+ :linux,
1254
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OperatingSystem::TaggedSymbol
1255
+ )
1256
+ MACOS =
1257
+ T.let(
1258
+ :macos,
1259
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OperatingSystem::TaggedSymbol
1260
+ )
1261
+ WINDOWS =
1262
+ T.let(
1263
+ :windows,
1264
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OperatingSystem::TaggedSymbol
1265
+ )
1266
+
1267
+ sig do
1268
+ override.returns(
1269
+ T::Array[
1270
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OperatingSystem::TaggedSymbol
1271
+ ]
1272
+ )
1273
+ end
1274
+ def self.values
1275
+ end
1276
+ end
1277
+
1278
+ class Screen < Stagehand::Internal::Type::BaseModel
1279
+ OrHash =
1280
+ T.type_alias do
1281
+ T.any(
1282
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::Screen,
1283
+ Stagehand::Internal::AnyHash
1284
+ )
1285
+ end
1286
+
1287
+ sig { returns(T.nilable(Float)) }
1288
+ attr_reader :max_height
1289
+
1290
+ sig { params(max_height: Float).void }
1291
+ attr_writer :max_height
1292
+
1293
+ sig { returns(T.nilable(Float)) }
1294
+ attr_reader :max_width
1295
+
1296
+ sig { params(max_width: Float).void }
1297
+ attr_writer :max_width
1298
+
1299
+ sig { returns(T.nilable(Float)) }
1300
+ attr_reader :min_height
1301
+
1302
+ sig { params(min_height: Float).void }
1303
+ attr_writer :min_height
1304
+
1305
+ sig { returns(T.nilable(Float)) }
1306
+ attr_reader :min_width
1307
+
1308
+ sig { params(min_width: Float).void }
1309
+ attr_writer :min_width
1310
+
1311
+ sig do
1312
+ params(
1313
+ max_height: Float,
1314
+ max_width: Float,
1315
+ min_height: Float,
1316
+ min_width: Float
1317
+ ).returns(T.attached_class)
1318
+ end
1319
+ def self.new(
1320
+ max_height: nil,
1321
+ max_width: nil,
1322
+ min_height: nil,
1323
+ min_width: nil
1324
+ )
1325
+ end
1326
+
1327
+ sig do
1328
+ override.returns(
1329
+ {
1330
+ max_height: Float,
1331
+ max_width: Float,
1332
+ min_height: Float,
1333
+ min_width: Float
1334
+ }
1335
+ )
1336
+ end
1337
+ def to_hash
1338
+ end
1339
+ end
1340
+ end
1341
+
1342
+ class Viewport < Stagehand::Internal::Type::BaseModel
1343
+ OrHash =
1344
+ T.type_alias do
1345
+ T.any(
1346
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Viewport,
1347
+ Stagehand::Internal::AnyHash
1348
+ )
1349
+ end
1350
+
1351
+ sig { returns(T.nilable(Float)) }
1352
+ attr_reader :height
1353
+
1354
+ sig { params(height: Float).void }
1355
+ attr_writer :height
1356
+
1357
+ sig { returns(T.nilable(Float)) }
1358
+ attr_reader :width
1359
+
1360
+ sig { params(width: Float).void }
1361
+ attr_writer :width
1362
+
1363
+ sig do
1364
+ params(height: Float, width: Float).returns(T.attached_class)
1365
+ end
1366
+ def self.new(height: nil, width: nil)
1367
+ end
1368
+
1369
+ sig { override.returns({ height: Float, width: Float }) }
1370
+ def to_hash
1371
+ end
1372
+ end
1373
+ end
1374
+
1375
+ module Proxies
1376
+ extend Stagehand::Internal::Type::Union
1377
+
1378
+ Variants =
1379
+ T.type_alias do
1380
+ T.any(
1381
+ T::Boolean,
1382
+ T::Array[
1383
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Variants
1384
+ ]
1385
+ )
1386
+ end
1387
+
1388
+ module ProxyConfigList
1389
+ extend Stagehand::Internal::Type::Union
1390
+
1391
+ Variants =
1392
+ T.type_alias do
1393
+ T.any(
1394
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase,
1395
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::External
1396
+ )
1397
+ end
1398
+
1399
+ class Browserbase < Stagehand::Internal::Type::BaseModel
1400
+ OrHash =
1401
+ T.type_alias do
1402
+ T.any(
1403
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase,
1404
+ Stagehand::Internal::AnyHash
1405
+ )
1406
+ end
1407
+
1408
+ sig { returns(Symbol) }
1409
+ attr_accessor :type
1410
+
1411
+ sig { returns(T.nilable(String)) }
1412
+ attr_reader :domain_pattern
1413
+
1414
+ sig { params(domain_pattern: String).void }
1415
+ attr_writer :domain_pattern
1416
+
1417
+ sig do
1418
+ returns(
1419
+ T.nilable(
1420
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase::Geolocation
1421
+ )
1422
+ )
1423
+ end
1424
+ attr_reader :geolocation
1425
+
1426
+ sig do
1427
+ params(
1428
+ geolocation:
1429
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase::Geolocation::OrHash
1430
+ ).void
1431
+ end
1432
+ attr_writer :geolocation
1433
+
1434
+ sig do
1435
+ params(
1436
+ domain_pattern: String,
1437
+ geolocation:
1438
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase::Geolocation::OrHash,
1439
+ type: Symbol
1440
+ ).returns(T.attached_class)
1441
+ end
1442
+ def self.new(
1443
+ domain_pattern: nil,
1444
+ geolocation: nil,
1445
+ type: :browserbase
1446
+ )
1447
+ end
1448
+
1449
+ sig do
1450
+ override.returns(
1451
+ {
1452
+ type: Symbol,
1453
+ domain_pattern: String,
1454
+ geolocation:
1455
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase::Geolocation
1456
+ }
1457
+ )
1458
+ end
1459
+ def to_hash
1460
+ end
1461
+
1462
+ class Geolocation < Stagehand::Internal::Type::BaseModel
1463
+ OrHash =
1464
+ T.type_alias do
1465
+ T.any(
1466
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Browserbase::Geolocation,
1467
+ Stagehand::Internal::AnyHash
1468
+ )
1469
+ end
1470
+
1471
+ sig { returns(String) }
1472
+ attr_accessor :country
1473
+
1474
+ sig { returns(T.nilable(String)) }
1475
+ attr_reader :city
1476
+
1477
+ sig { params(city: String).void }
1478
+ attr_writer :city
1479
+
1480
+ sig { returns(T.nilable(String)) }
1481
+ attr_reader :state
1482
+
1483
+ sig { params(state: String).void }
1484
+ attr_writer :state
1485
+
1486
+ sig do
1487
+ params(country: String, city: String, state: String).returns(
1488
+ T.attached_class
1489
+ )
1490
+ end
1491
+ def self.new(country:, city: nil, state: nil)
1492
+ end
1493
+
1494
+ sig do
1495
+ override.returns(
1496
+ { country: String, city: String, state: String }
1497
+ )
1498
+ end
1499
+ def to_hash
1500
+ end
1501
+ end
1502
+ end
1503
+
1504
+ class External < Stagehand::Internal::Type::BaseModel
1505
+ OrHash =
1506
+ T.type_alias do
1507
+ T.any(
1508
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::External,
1509
+ Stagehand::Internal::AnyHash
1510
+ )
1511
+ end
1512
+
1513
+ sig { returns(String) }
1514
+ attr_accessor :server
1515
+
1516
+ sig { returns(Symbol) }
1517
+ attr_accessor :type
1518
+
1519
+ sig { returns(T.nilable(String)) }
1520
+ attr_reader :domain_pattern
1521
+
1522
+ sig { params(domain_pattern: String).void }
1523
+ attr_writer :domain_pattern
1524
+
1525
+ sig { returns(T.nilable(String)) }
1526
+ attr_reader :password
1527
+
1528
+ sig { params(password: String).void }
1529
+ attr_writer :password
1530
+
1531
+ sig { returns(T.nilable(String)) }
1532
+ attr_reader :username
1533
+
1534
+ sig { params(username: String).void }
1535
+ attr_writer :username
1536
+
1537
+ sig do
1538
+ params(
1539
+ server: String,
1540
+ domain_pattern: String,
1541
+ password: String,
1542
+ username: String,
1543
+ type: Symbol
1544
+ ).returns(T.attached_class)
1545
+ end
1546
+ def self.new(
1547
+ server:,
1548
+ domain_pattern: nil,
1549
+ password: nil,
1550
+ username: nil,
1551
+ type: :external
1552
+ )
1553
+ end
1554
+
1555
+ sig do
1556
+ override.returns(
1557
+ {
1558
+ server: String,
1559
+ type: Symbol,
1560
+ domain_pattern: String,
1561
+ password: String,
1562
+ username: String
1563
+ }
1564
+ )
1565
+ end
1566
+ def to_hash
1567
+ end
1568
+ end
1569
+
1570
+ sig do
1571
+ override.returns(
1572
+ T::Array[
1573
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList::Variants
1574
+ ]
1575
+ )
1576
+ end
1577
+ def self.variants
1578
+ end
1579
+ end
1580
+
1581
+ sig do
1582
+ override.returns(
1583
+ T::Array[
1584
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::Variants
1585
+ ]
1586
+ )
1587
+ end
1588
+ def self.variants
1589
+ end
1590
+
1591
+ ProxyConfigListArray =
1592
+ T.let(
1593
+ Stagehand::Internal::Type::ArrayOf[
1594
+ union:
1595
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Proxies::ProxyConfigList
1596
+ ],
1597
+ Stagehand::Internal::Type::Converter
1598
+ )
1599
+ end
1600
+
1601
+ module Region
1602
+ extend Stagehand::Internal::Type::Enum
1603
+
1604
+ TaggedSymbol =
1605
+ T.type_alias do
1606
+ T.all(
1607
+ Symbol,
1608
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Region
1609
+ )
1610
+ end
1611
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1612
+
1613
+ US_WEST_2 =
1614
+ T.let(
1615
+ :"us-west-2",
1616
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Region::TaggedSymbol
1617
+ )
1618
+ US_EAST_1 =
1619
+ T.let(
1620
+ :"us-east-1",
1621
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Region::TaggedSymbol
1622
+ )
1623
+ EU_CENTRAL_1 =
1624
+ T.let(
1625
+ :"eu-central-1",
1626
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Region::TaggedSymbol
1627
+ )
1628
+ AP_SOUTHEAST_1 =
1629
+ T.let(
1630
+ :"ap-southeast-1",
1631
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Region::TaggedSymbol
1632
+ )
1633
+
1634
+ sig do
1635
+ override.returns(
1636
+ T::Array[
1637
+ Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::Region::TaggedSymbol
1638
+ ]
1639
+ )
1640
+ end
1641
+ def self.values
1642
+ end
1643
+ end
1644
+ end
1645
+
1646
+ # Logging verbosity level (0=quiet, 1=normal, 2=debug)
1647
+ module Verbose
1648
+ extend Stagehand::Internal::Type::Enum
1649
+
1650
+ TaggedFloat =
1651
+ T.type_alias { T.all(Float, Stagehand::SessionStartParams::Verbose) }
1652
+ OrFloat = T.type_alias { Float }
1653
+
1654
+ VERBOSE_0 =
1655
+ T.let(0, Stagehand::SessionStartParams::Verbose::TaggedFloat)
1656
+ VERBOSE_1 =
1657
+ T.let(1, Stagehand::SessionStartParams::Verbose::TaggedFloat)
1658
+ VERBOSE_2 =
1659
+ T.let(2, Stagehand::SessionStartParams::Verbose::TaggedFloat)
1660
+
1661
+ sig do
1662
+ override.returns(
1663
+ T::Array[Stagehand::SessionStartParams::Verbose::TaggedFloat]
1664
+ )
1665
+ end
1666
+ def self.values
1667
+ end
1668
+ end
1669
+
1670
+ # Whether to stream the response via SSE
1671
+ module XStreamResponse
1672
+ extend Stagehand::Internal::Type::Enum
1673
+
1674
+ TaggedSymbol =
1675
+ T.type_alias do
1676
+ T.all(Symbol, Stagehand::SessionStartParams::XStreamResponse)
1677
+ end
1678
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1679
+
1680
+ TRUE =
1681
+ T.let(
1682
+ :true,
1683
+ Stagehand::SessionStartParams::XStreamResponse::TaggedSymbol
1684
+ )
1685
+ FALSE =
1686
+ T.let(
1687
+ :false,
1688
+ Stagehand::SessionStartParams::XStreamResponse::TaggedSymbol
1689
+ )
1690
+
1691
+ sig do
1692
+ override.returns(
1693
+ T::Array[
1694
+ Stagehand::SessionStartParams::XStreamResponse::TaggedSymbol
1695
+ ]
1696
+ )
1697
+ end
1698
+ def self.values
1699
+ end
1700
+ end
1701
+ end
1702
+ end
1703
+ end