stagehand 3.20.0 → 3.21.0

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.
@@ -69,9 +69,16 @@ module Stagehand
69
69
  # @!attribute model
70
70
  # Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
71
71
  #
72
- # @return [Stagehand::Models::ModelConfig, String, nil]
72
+ # @return [Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::GenericModelConfigObject, String, nil]
73
73
  optional :model, union: -> { Stagehand::SessionExtractParams::Options::Model }
74
74
 
75
+ # @!attribute screenshot
76
+ # When true, include a screenshot of the current viewport in the extraction LLM
77
+ # call. Defaults to false.
78
+ #
79
+ # @return [Boolean, nil]
80
+ optional :screenshot, Stagehand::Internal::Type::Boolean
81
+
75
82
  # @!attribute selector
76
83
  # CSS selector to scope extraction to a specific element
77
84
  #
@@ -84,10 +91,15 @@ module Stagehand
84
91
  # @return [Float, nil]
85
92
  optional :timeout, Float
86
93
 
87
- # @!method initialize(ignore_selectors: nil, model: nil, selector: nil, timeout: nil)
94
+ # @!method initialize(ignore_selectors: nil, model: nil, screenshot: nil, selector: nil, timeout: nil)
95
+ # Some parameter documentations has been truncated, see
96
+ # {Stagehand::Models::SessionExtractParams::Options} for more details.
97
+ #
88
98
  # @param ignore_selectors [Array<String>] Selectors for elements and subtrees that should be excluded from extraction
89
99
  #
90
- # @param model [Stagehand::Models::ModelConfig, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
100
+ # @param model [Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::GenericModelConfigObject, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
101
+ #
102
+ # @param screenshot [Boolean] When true, include a screenshot of the current viewport in the extraction LLM ca
91
103
  #
92
104
  # @param selector [String] CSS selector to scope extraction to a specific element
93
105
  #
@@ -99,12 +111,339 @@ module Stagehand
99
111
  module Model
100
112
  extend Stagehand::Internal::Type::Union
101
113
 
102
- variant -> { Stagehand::ModelConfig }
114
+ variant -> { Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject }
115
+
116
+ variant -> { Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject }
103
117
 
104
118
  variant String
105
119
 
120
+ class VertexModelConfigObject < Stagehand::Internal::Type::BaseModel
121
+ # @!attribute auth
122
+ # Vertex provider authentication configuration
123
+ #
124
+ # @return [Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth]
125
+ required :auth, -> { Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth }
126
+
127
+ # @!attribute model_name
128
+ # Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
129
+ #
130
+ # @return [String]
131
+ required :model_name, String, api_name: :modelName
132
+
133
+ # @!attribute provider
134
+ # Vertex AI model provider
135
+ #
136
+ # @return [Symbol, :vertex]
137
+ required :provider, const: :vertex
138
+
139
+ # @!attribute provider_options
140
+ # Vertex provider-specific model configuration
141
+ #
142
+ # @return [Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions]
143
+ required :provider_options,
144
+ -> {
145
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions
146
+ },
147
+ api_name: :providerOptions
148
+
149
+ # @!attribute api_key
150
+ # API key for the model provider
151
+ #
152
+ # @return [String, nil]
153
+ optional :api_key, String, api_name: :apiKey
154
+
155
+ # @!attribute base_url
156
+ # Base URL for the model provider
157
+ #
158
+ # @return [String, nil]
159
+ optional :base_url, String, api_name: :baseURL
160
+
161
+ # @!attribute headers
162
+ # Custom headers sent with every request to the model provider
163
+ #
164
+ # @return [Hash{Symbol=>String}, nil]
165
+ optional :headers, Stagehand::Internal::Type::HashOf[String]
166
+
167
+ # @!method initialize(auth:, model_name:, provider_options:, api_key: nil, base_url: nil, headers: nil, provider: :vertex)
168
+ # @param auth [Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth] Vertex provider authentication configuration
169
+ #
170
+ # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
171
+ #
172
+ # @param provider_options [Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions] Vertex provider-specific model configuration
173
+ #
174
+ # @param api_key [String] API key for the model provider
175
+ #
176
+ # @param base_url [String] Base URL for the model provider
177
+ #
178
+ # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider
179
+ #
180
+ # @param provider [Symbol, :vertex] Vertex AI model provider
181
+
182
+ # @see Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject#auth
183
+ class Auth < Stagehand::Internal::Type::BaseModel
184
+ # @!attribute credentials
185
+ # Google Cloud service account credentials
186
+ #
187
+ # @return [Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials]
188
+ required :credentials,
189
+ -> { Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials }
190
+
191
+ # @!attribute type
192
+ # Use inline Google Cloud service account credentials for provider authentication
193
+ #
194
+ # @return [Symbol, :googleServiceAccount]
195
+ required :type, const: :googleServiceAccount
196
+
197
+ # @!attribute project_id
198
+ # Google Cloud project ID used by google-auth-library
199
+ #
200
+ # @return [String, nil]
201
+ optional :project_id, String, api_name: :projectId
202
+
203
+ # @!attribute scopes
204
+ # Google auth scopes for the desired API request
205
+ #
206
+ # @return [String, Array<String>, nil]
207
+ optional :scopes,
208
+ union: -> { Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Scopes }
209
+
210
+ # @!attribute universe_domain
211
+ # Google Cloud universe domain
212
+ #
213
+ # @return [String, nil]
214
+ optional :universe_domain, String, api_name: :universeDomain
215
+
216
+ # @!method initialize(credentials:, project_id: nil, scopes: nil, universe_domain: nil, type: :googleServiceAccount)
217
+ # Vertex provider authentication configuration
218
+ #
219
+ # @param credentials [Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials] Google Cloud service account credentials
220
+ #
221
+ # @param project_id [String] Google Cloud project ID used by google-auth-library
222
+ #
223
+ # @param scopes [String, Array<String>] Google auth scopes for the desired API request
224
+ #
225
+ # @param universe_domain [String] Google Cloud universe domain
226
+ #
227
+ # @param type [Symbol, :googleServiceAccount] Use inline Google Cloud service account credentials for provider authentication
228
+
229
+ # @see Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth#credentials
230
+ class Credentials < Stagehand::Internal::Type::BaseModel
231
+ # @!attribute client_email
232
+ #
233
+ # @return [String]
234
+ required :client_email, String
235
+
236
+ # @!attribute private_key
237
+ #
238
+ # @return [String]
239
+ required :private_key, String
240
+
241
+ # @!attribute auth_provider_x509_cert_url
242
+ #
243
+ # @return [String, nil]
244
+ optional :auth_provider_x509_cert_url, String
245
+
246
+ # @!attribute auth_uri
247
+ #
248
+ # @return [String, nil]
249
+ optional :auth_uri, String
250
+
251
+ # @!attribute client_id
252
+ #
253
+ # @return [String, nil]
254
+ optional :client_id, String
255
+
256
+ # @!attribute client_x509_cert_url
257
+ #
258
+ # @return [String, nil]
259
+ optional :client_x509_cert_url, String
260
+
261
+ # @!attribute private_key_id
262
+ #
263
+ # @return [String, nil]
264
+ optional :private_key_id, String
265
+
266
+ # @!attribute project_id
267
+ #
268
+ # @return [String, nil]
269
+ optional :project_id, String
270
+
271
+ # @!attribute token_uri
272
+ #
273
+ # @return [String, nil]
274
+ optional :token_uri, String
275
+
276
+ # @!attribute type
277
+ #
278
+ # @return [Symbol, Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type, nil]
279
+ optional :type,
280
+ enum: -> { Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type }
281
+
282
+ # @!attribute universe_domain
283
+ #
284
+ # @return [String, nil]
285
+ optional :universe_domain, String
286
+
287
+ # @!method initialize(client_email:, private_key:, auth_provider_x509_cert_url: nil, auth_uri: nil, client_id: nil, client_x509_cert_url: nil, private_key_id: nil, project_id: nil, token_uri: nil, type: nil, universe_domain: nil)
288
+ # Google Cloud service account credentials
289
+ #
290
+ # @param client_email [String]
291
+ # @param private_key [String]
292
+ # @param auth_provider_x509_cert_url [String]
293
+ # @param auth_uri [String]
294
+ # @param client_id [String]
295
+ # @param client_x509_cert_url [String]
296
+ # @param private_key_id [String]
297
+ # @param project_id [String]
298
+ # @param token_uri [String]
299
+ # @param type [Symbol, Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type]
300
+ # @param universe_domain [String]
301
+
302
+ # @see Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials#type
303
+ module Type
304
+ extend Stagehand::Internal::Type::Enum
305
+
306
+ SERVICE_ACCOUNT = :service_account
307
+
308
+ # @!method self.values
309
+ # @return [Array<Symbol>]
310
+ end
311
+ end
312
+
313
+ # Google auth scopes for the desired API request
314
+ #
315
+ # @see Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth#scopes
316
+ module Scopes
317
+ extend Stagehand::Internal::Type::Union
318
+
319
+ variant String
320
+
321
+ variant -> { Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Scopes::StringArray }
322
+
323
+ # @!method self.variants
324
+ # @return [Array(String, Array<String>)]
325
+
326
+ # @type [Stagehand::Internal::Type::Converter]
327
+ StringArray = Stagehand::Internal::Type::ArrayOf[String]
328
+ end
329
+ end
330
+
331
+ # @see Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject#provider_options
332
+ class ProviderOptions < Stagehand::Internal::Type::BaseModel
333
+ # @!attribute vertex
334
+ # Vertex AI provider-specific settings
335
+ #
336
+ # @return [Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::Vertex]
337
+ required :vertex,
338
+ -> { Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::Vertex }
339
+
340
+ # @!method initialize(vertex:)
341
+ # Vertex provider-specific model configuration
342
+ #
343
+ # @param vertex [Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::Vertex] Vertex AI provider-specific settings
344
+
345
+ # @see Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions#vertex
346
+ class Vertex < Stagehand::Internal::Type::BaseModel
347
+ # @!attribute location
348
+ # Google Cloud location for Vertex AI models
349
+ #
350
+ # @return [String]
351
+ required :location, String
352
+
353
+ # @!attribute project
354
+ # Google Cloud project ID for Vertex AI models
355
+ #
356
+ # @return [String]
357
+ required :project, String
358
+
359
+ # @!attribute base_url
360
+ # Base URL for the Vertex AI provider
361
+ #
362
+ # @return [String, nil]
363
+ optional :base_url, String, api_name: :baseURL
364
+
365
+ # @!attribute headers
366
+ # Custom headers sent with every request to the Vertex AI provider
367
+ #
368
+ # @return [Hash{Symbol=>String}, nil]
369
+ optional :headers, Stagehand::Internal::Type::HashOf[String]
370
+
371
+ # @!method initialize(location:, project:, base_url: nil, headers: nil)
372
+ # Vertex AI provider-specific settings
373
+ #
374
+ # @param location [String] Google Cloud location for Vertex AI models
375
+ #
376
+ # @param project [String] Google Cloud project ID for Vertex AI models
377
+ #
378
+ # @param base_url [String] Base URL for the Vertex AI provider
379
+ #
380
+ # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Vertex AI provider
381
+ end
382
+ end
383
+ end
384
+
385
+ class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel
386
+ # @!attribute model_name
387
+ # Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
388
+ #
389
+ # @return [String]
390
+ required :model_name, String, api_name: :modelName
391
+
392
+ # @!attribute api_key
393
+ # API key for the model provider
394
+ #
395
+ # @return [String, nil]
396
+ optional :api_key, String, api_name: :apiKey
397
+
398
+ # @!attribute base_url
399
+ # Base URL for the model provider
400
+ #
401
+ # @return [String, nil]
402
+ optional :base_url, String, api_name: :baseURL
403
+
404
+ # @!attribute headers
405
+ # Custom headers sent with every request to the model provider
406
+ #
407
+ # @return [Hash{Symbol=>String}, nil]
408
+ optional :headers, Stagehand::Internal::Type::HashOf[String]
409
+
410
+ # @!attribute provider
411
+ # AI provider for the model (or provide a baseURL endpoint instead)
412
+ #
413
+ # @return [Symbol, Stagehand::Models::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider, nil]
414
+ optional :provider,
415
+ enum: -> { Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider }
416
+
417
+ # @!method initialize(model_name:, api_key: nil, base_url: nil, headers: nil, provider: nil)
418
+ # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
419
+ #
420
+ # @param api_key [String] API key for the model provider
421
+ #
422
+ # @param base_url [String] Base URL for the model provider
423
+ #
424
+ # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider
425
+ #
426
+ # @param provider [Symbol, Stagehand::Models::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider] AI provider for the model (or provide a baseURL endpoint instead)
427
+
428
+ # AI provider for the model (or provide a baseURL endpoint instead)
429
+ #
430
+ # @see Stagehand::Models::SessionExtractParams::Options::Model::GenericModelConfigObject#provider
431
+ module Provider
432
+ extend Stagehand::Internal::Type::Enum
433
+
434
+ OPENAI = :openai
435
+ ANTHROPIC = :anthropic
436
+ GOOGLE = :google
437
+ MICROSOFT = :microsoft
438
+ BEDROCK = :bedrock
439
+
440
+ # @!method self.values
441
+ # @return [Array<Symbol>]
442
+ end
443
+ end
444
+
106
445
  # @!method self.variants
107
- # @return [Array(Stagehand::Models::ModelConfig, String)]
446
+ # @return [Array(Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::GenericModelConfigObject, String)]
108
447
  end
109
448
  end
110
449