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