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.
@@ -73,7 +73,7 @@ module Stagehand
73
73
  # tool execution (observe/act calls within agent tools). If not specified,
74
74
  # inherits from the main model configuration.
75
75
  #
76
- # @return [Stagehand::Models::ModelConfig, String, nil]
76
+ # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject, String, nil]
77
77
  optional :execution_model,
78
78
  union: -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel },
79
79
  api_name: :executionModel
@@ -87,7 +87,7 @@ module Stagehand
87
87
  # @!attribute model
88
88
  # Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
89
89
  #
90
- # @return [Stagehand::Models::ModelConfig, String, nil]
90
+ # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject, String, nil]
91
91
  optional :model, union: -> { Stagehand::SessionExecuteParams::AgentConfig::Model }
92
92
 
93
93
  # @!attribute provider
@@ -108,11 +108,11 @@ module Stagehand
108
108
  #
109
109
  # @param cua [Boolean] Deprecated. Use mode: 'cua' instead. If both are provided, mode takes precedence
110
110
  #
111
- # @param execution_model [Stagehand::Models::ModelConfig, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano') for
111
+ # @param execution_model [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano') for
112
112
  #
113
113
  # @param mode [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Mode] Tool mode for the agent (dom, hybrid, cua). If set, overrides cua.
114
114
  #
115
- # @param model [Stagehand::Models::ModelConfig, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
115
+ # @param model [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
116
116
  #
117
117
  # @param provider [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Provider] AI provider for the agent (legacy, use model: openai/gpt-5-nano instead)
118
118
  #
@@ -126,12 +126,340 @@ module Stagehand
126
126
  module ExecutionModel
127
127
  extend Stagehand::Internal::Type::Union
128
128
 
129
- variant -> { Stagehand::ModelConfig }
129
+ variant -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject }
130
+
131
+ variant -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject }
130
132
 
131
133
  variant String
132
134
 
135
+ class VertexModelConfigObject < Stagehand::Internal::Type::BaseModel
136
+ # @!attribute auth
137
+ # Vertex provider authentication configuration
138
+ #
139
+ # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::Auth]
140
+ required :auth,
141
+ -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::Auth }
142
+
143
+ # @!attribute model_name
144
+ # Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
145
+ #
146
+ # @return [String]
147
+ required :model_name, String, api_name: :modelName
148
+
149
+ # @!attribute provider
150
+ # Vertex AI model provider
151
+ #
152
+ # @return [Symbol, :vertex]
153
+ required :provider, const: :vertex
154
+
155
+ # @!attribute provider_options
156
+ # Vertex provider-specific model configuration
157
+ #
158
+ # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::ProviderOptions]
159
+ required :provider_options,
160
+ -> {
161
+ Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::ProviderOptions
162
+ },
163
+ api_name: :providerOptions
164
+
165
+ # @!attribute api_key
166
+ # API key for the model provider
167
+ #
168
+ # @return [String, nil]
169
+ optional :api_key, String, api_name: :apiKey
170
+
171
+ # @!attribute base_url
172
+ # Base URL for the model provider
173
+ #
174
+ # @return [String, nil]
175
+ optional :base_url, String, api_name: :baseURL
176
+
177
+ # @!attribute headers
178
+ # Custom headers sent with every request to the model provider
179
+ #
180
+ # @return [Hash{Symbol=>String}, nil]
181
+ optional :headers, Stagehand::Internal::Type::HashOf[String]
182
+
183
+ # @!method initialize(auth:, model_name:, provider_options:, api_key: nil, base_url: nil, headers: nil, provider: :vertex)
184
+ # @param auth [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::Auth] Vertex provider authentication configuration
185
+ #
186
+ # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
187
+ #
188
+ # @param provider_options [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::ProviderOptions] Vertex provider-specific model configuration
189
+ #
190
+ # @param api_key [String] API key for the model provider
191
+ #
192
+ # @param base_url [String] Base URL for the model provider
193
+ #
194
+ # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider
195
+ #
196
+ # @param provider [Symbol, :vertex] Vertex AI model provider
197
+
198
+ # @see Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject#auth
199
+ class Auth < Stagehand::Internal::Type::BaseModel
200
+ # @!attribute credentials
201
+ # Google Cloud service account credentials
202
+ #
203
+ # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::Auth::Credentials]
204
+ required :credentials,
205
+ -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::Auth::Credentials }
206
+
207
+ # @!attribute type
208
+ # Use inline Google Cloud service account credentials for provider authentication
209
+ #
210
+ # @return [Symbol, :googleServiceAccount]
211
+ required :type, const: :googleServiceAccount
212
+
213
+ # @!attribute project_id
214
+ # Google Cloud project ID used by google-auth-library
215
+ #
216
+ # @return [String, nil]
217
+ optional :project_id, String, api_name: :projectId
218
+
219
+ # @!attribute scopes
220
+ # Google auth scopes for the desired API request
221
+ #
222
+ # @return [String, Array<String>, nil]
223
+ optional :scopes,
224
+ union: -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::Auth::Scopes }
225
+
226
+ # @!attribute universe_domain
227
+ # Google Cloud universe domain
228
+ #
229
+ # @return [String, nil]
230
+ optional :universe_domain, String, api_name: :universeDomain
231
+
232
+ # @!method initialize(credentials:, project_id: nil, scopes: nil, universe_domain: nil, type: :googleServiceAccount)
233
+ # Vertex provider authentication configuration
234
+ #
235
+ # @param credentials [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::Auth::Credentials] Google Cloud service account credentials
236
+ #
237
+ # @param project_id [String] Google Cloud project ID used by google-auth-library
238
+ #
239
+ # @param scopes [String, Array<String>] Google auth scopes for the desired API request
240
+ #
241
+ # @param universe_domain [String] Google Cloud universe domain
242
+ #
243
+ # @param type [Symbol, :googleServiceAccount] Use inline Google Cloud service account credentials for provider authentication
244
+
245
+ # @see Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::Auth#credentials
246
+ class Credentials < Stagehand::Internal::Type::BaseModel
247
+ # @!attribute client_email
248
+ #
249
+ # @return [String]
250
+ required :client_email, String
251
+
252
+ # @!attribute private_key
253
+ #
254
+ # @return [String]
255
+ required :private_key, String
256
+
257
+ # @!attribute auth_provider_x509_cert_url
258
+ #
259
+ # @return [String, nil]
260
+ optional :auth_provider_x509_cert_url, String
261
+
262
+ # @!attribute auth_uri
263
+ #
264
+ # @return [String, nil]
265
+ optional :auth_uri, String
266
+
267
+ # @!attribute client_id
268
+ #
269
+ # @return [String, nil]
270
+ optional :client_id, String
271
+
272
+ # @!attribute client_x509_cert_url
273
+ #
274
+ # @return [String, nil]
275
+ optional :client_x509_cert_url, String
276
+
277
+ # @!attribute private_key_id
278
+ #
279
+ # @return [String, nil]
280
+ optional :private_key_id, String
281
+
282
+ # @!attribute project_id
283
+ #
284
+ # @return [String, nil]
285
+ optional :project_id, String
286
+
287
+ # @!attribute token_uri
288
+ #
289
+ # @return [String, nil]
290
+ optional :token_uri, String
291
+
292
+ # @!attribute type
293
+ #
294
+ # @return [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::Auth::Credentials::Type, nil]
295
+ optional :type,
296
+ enum: -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::Auth::Credentials::Type }
297
+
298
+ # @!attribute universe_domain
299
+ #
300
+ # @return [String, nil]
301
+ optional :universe_domain, String
302
+
303
+ # @!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)
304
+ # Google Cloud service account credentials
305
+ #
306
+ # @param client_email [String]
307
+ # @param private_key [String]
308
+ # @param auth_provider_x509_cert_url [String]
309
+ # @param auth_uri [String]
310
+ # @param client_id [String]
311
+ # @param client_x509_cert_url [String]
312
+ # @param private_key_id [String]
313
+ # @param project_id [String]
314
+ # @param token_uri [String]
315
+ # @param type [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::Auth::Credentials::Type]
316
+ # @param universe_domain [String]
317
+
318
+ # @see Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::Auth::Credentials#type
319
+ module Type
320
+ extend Stagehand::Internal::Type::Enum
321
+
322
+ SERVICE_ACCOUNT = :service_account
323
+
324
+ # @!method self.values
325
+ # @return [Array<Symbol>]
326
+ end
327
+ end
328
+
329
+ # Google auth scopes for the desired API request
330
+ #
331
+ # @see Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::Auth#scopes
332
+ module Scopes
333
+ extend Stagehand::Internal::Type::Union
334
+
335
+ variant String
336
+
337
+ variant -> { Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::Auth::Scopes::StringArray }
338
+
339
+ # @!method self.variants
340
+ # @return [Array(String, Array<String>)]
341
+
342
+ # @type [Stagehand::Internal::Type::Converter]
343
+ StringArray = Stagehand::Internal::Type::ArrayOf[String]
344
+ end
345
+ end
346
+
347
+ # @see Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject#provider_options
348
+ class ProviderOptions < Stagehand::Internal::Type::BaseModel
349
+ # @!attribute vertex
350
+ # Vertex AI provider-specific settings
351
+ #
352
+ # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::ProviderOptions::Vertex]
353
+ required :vertex,
354
+ -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::ProviderOptions::Vertex }
355
+
356
+ # @!method initialize(vertex:)
357
+ # Vertex provider-specific model configuration
358
+ #
359
+ # @param vertex [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::ProviderOptions::Vertex] Vertex AI provider-specific settings
360
+
361
+ # @see Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::ProviderOptions#vertex
362
+ class Vertex < Stagehand::Internal::Type::BaseModel
363
+ # @!attribute location
364
+ # Google Cloud location for Vertex AI models
365
+ #
366
+ # @return [String]
367
+ required :location, String
368
+
369
+ # @!attribute project
370
+ # Google Cloud project ID for Vertex AI models
371
+ #
372
+ # @return [String]
373
+ required :project, String
374
+
375
+ # @!attribute base_url
376
+ # Base URL for the Vertex AI provider
377
+ #
378
+ # @return [String, nil]
379
+ optional :base_url, String, api_name: :baseURL
380
+
381
+ # @!attribute headers
382
+ # Custom headers sent with every request to the Vertex AI provider
383
+ #
384
+ # @return [Hash{Symbol=>String}, nil]
385
+ optional :headers, Stagehand::Internal::Type::HashOf[String]
386
+
387
+ # @!method initialize(location:, project:, base_url: nil, headers: nil)
388
+ # Vertex AI provider-specific settings
389
+ #
390
+ # @param location [String] Google Cloud location for Vertex AI models
391
+ #
392
+ # @param project [String] Google Cloud project ID for Vertex AI models
393
+ #
394
+ # @param base_url [String] Base URL for the Vertex AI provider
395
+ #
396
+ # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Vertex AI provider
397
+ end
398
+ end
399
+ end
400
+
401
+ class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel
402
+ # @!attribute model_name
403
+ # Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
404
+ #
405
+ # @return [String]
406
+ required :model_name, String, api_name: :modelName
407
+
408
+ # @!attribute api_key
409
+ # API key for the model provider
410
+ #
411
+ # @return [String, nil]
412
+ optional :api_key, String, api_name: :apiKey
413
+
414
+ # @!attribute base_url
415
+ # Base URL for the model provider
416
+ #
417
+ # @return [String, nil]
418
+ optional :base_url, String, api_name: :baseURL
419
+
420
+ # @!attribute headers
421
+ # Custom headers sent with every request to the model provider
422
+ #
423
+ # @return [Hash{Symbol=>String}, nil]
424
+ optional :headers, Stagehand::Internal::Type::HashOf[String]
425
+
426
+ # @!attribute provider
427
+ # AI provider for the model (or provide a baseURL endpoint instead)
428
+ #
429
+ # @return [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider, nil]
430
+ optional :provider,
431
+ enum: -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider }
432
+
433
+ # @!method initialize(model_name:, api_key: nil, base_url: nil, headers: nil, provider: nil)
434
+ # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
435
+ #
436
+ # @param api_key [String] API key for the model provider
437
+ #
438
+ # @param base_url [String] Base URL for the model provider
439
+ #
440
+ # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider
441
+ #
442
+ # @param provider [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider] AI provider for the model (or provide a baseURL endpoint instead)
443
+
444
+ # AI provider for the model (or provide a baseURL endpoint instead)
445
+ #
446
+ # @see Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject#provider
447
+ module Provider
448
+ extend Stagehand::Internal::Type::Enum
449
+
450
+ OPENAI = :openai
451
+ ANTHROPIC = :anthropic
452
+ GOOGLE = :google
453
+ MICROSOFT = :microsoft
454
+ BEDROCK = :bedrock
455
+
456
+ # @!method self.values
457
+ # @return [Array<Symbol>]
458
+ end
459
+ end
460
+
133
461
  # @!method self.variants
134
- # @return [Array(Stagehand::Models::ModelConfig, String)]
462
+ # @return [Array(Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject, String)]
135
463
  end
136
464
 
137
465
  # Tool mode for the agent (dom, hybrid, cua). If set, overrides cua.
@@ -154,12 +482,339 @@ module Stagehand
154
482
  module Model
155
483
  extend Stagehand::Internal::Type::Union
156
484
 
157
- variant -> { Stagehand::ModelConfig }
485
+ variant -> { Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject }
486
+
487
+ variant -> { Stagehand::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject }
158
488
 
159
489
  variant String
160
490
 
491
+ class VertexModelConfigObject < Stagehand::Internal::Type::BaseModel
492
+ # @!attribute auth
493
+ # Vertex provider authentication configuration
494
+ #
495
+ # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth]
496
+ required :auth, -> { Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth }
497
+
498
+ # @!attribute model_name
499
+ # Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
500
+ #
501
+ # @return [String]
502
+ required :model_name, String, api_name: :modelName
503
+
504
+ # @!attribute provider
505
+ # Vertex AI model provider
506
+ #
507
+ # @return [Symbol, :vertex]
508
+ required :provider, const: :vertex
509
+
510
+ # @!attribute provider_options
511
+ # Vertex provider-specific model configuration
512
+ #
513
+ # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions]
514
+ required :provider_options,
515
+ -> {
516
+ Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions
517
+ },
518
+ api_name: :providerOptions
519
+
520
+ # @!attribute api_key
521
+ # API key for the model provider
522
+ #
523
+ # @return [String, nil]
524
+ optional :api_key, String, api_name: :apiKey
525
+
526
+ # @!attribute base_url
527
+ # Base URL for the model provider
528
+ #
529
+ # @return [String, nil]
530
+ optional :base_url, String, api_name: :baseURL
531
+
532
+ # @!attribute headers
533
+ # Custom headers sent with every request to the model provider
534
+ #
535
+ # @return [Hash{Symbol=>String}, nil]
536
+ optional :headers, Stagehand::Internal::Type::HashOf[String]
537
+
538
+ # @!method initialize(auth:, model_name:, provider_options:, api_key: nil, base_url: nil, headers: nil, provider: :vertex)
539
+ # @param auth [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth] Vertex provider authentication configuration
540
+ #
541
+ # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
542
+ #
543
+ # @param provider_options [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions] Vertex provider-specific model configuration
544
+ #
545
+ # @param api_key [String] API key for the model provider
546
+ #
547
+ # @param base_url [String] Base URL for the model provider
548
+ #
549
+ # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider
550
+ #
551
+ # @param provider [Symbol, :vertex] Vertex AI model provider
552
+
553
+ # @see Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject#auth
554
+ class Auth < Stagehand::Internal::Type::BaseModel
555
+ # @!attribute credentials
556
+ # Google Cloud service account credentials
557
+ #
558
+ # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials]
559
+ required :credentials,
560
+ -> { Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials }
561
+
562
+ # @!attribute type
563
+ # Use inline Google Cloud service account credentials for provider authentication
564
+ #
565
+ # @return [Symbol, :googleServiceAccount]
566
+ required :type, const: :googleServiceAccount
567
+
568
+ # @!attribute project_id
569
+ # Google Cloud project ID used by google-auth-library
570
+ #
571
+ # @return [String, nil]
572
+ optional :project_id, String, api_name: :projectId
573
+
574
+ # @!attribute scopes
575
+ # Google auth scopes for the desired API request
576
+ #
577
+ # @return [String, Array<String>, nil]
578
+ optional :scopes,
579
+ union: -> { Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Scopes }
580
+
581
+ # @!attribute universe_domain
582
+ # Google Cloud universe domain
583
+ #
584
+ # @return [String, nil]
585
+ optional :universe_domain, String, api_name: :universeDomain
586
+
587
+ # @!method initialize(credentials:, project_id: nil, scopes: nil, universe_domain: nil, type: :googleServiceAccount)
588
+ # Vertex provider authentication configuration
589
+ #
590
+ # @param credentials [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials] Google Cloud service account credentials
591
+ #
592
+ # @param project_id [String] Google Cloud project ID used by google-auth-library
593
+ #
594
+ # @param scopes [String, Array<String>] Google auth scopes for the desired API request
595
+ #
596
+ # @param universe_domain [String] Google Cloud universe domain
597
+ #
598
+ # @param type [Symbol, :googleServiceAccount] Use inline Google Cloud service account credentials for provider authentication
599
+
600
+ # @see Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth#credentials
601
+ class Credentials < Stagehand::Internal::Type::BaseModel
602
+ # @!attribute client_email
603
+ #
604
+ # @return [String]
605
+ required :client_email, String
606
+
607
+ # @!attribute private_key
608
+ #
609
+ # @return [String]
610
+ required :private_key, String
611
+
612
+ # @!attribute auth_provider_x509_cert_url
613
+ #
614
+ # @return [String, nil]
615
+ optional :auth_provider_x509_cert_url, String
616
+
617
+ # @!attribute auth_uri
618
+ #
619
+ # @return [String, nil]
620
+ optional :auth_uri, String
621
+
622
+ # @!attribute client_id
623
+ #
624
+ # @return [String, nil]
625
+ optional :client_id, String
626
+
627
+ # @!attribute client_x509_cert_url
628
+ #
629
+ # @return [String, nil]
630
+ optional :client_x509_cert_url, String
631
+
632
+ # @!attribute private_key_id
633
+ #
634
+ # @return [String, nil]
635
+ optional :private_key_id, String
636
+
637
+ # @!attribute project_id
638
+ #
639
+ # @return [String, nil]
640
+ optional :project_id, String
641
+
642
+ # @!attribute token_uri
643
+ #
644
+ # @return [String, nil]
645
+ optional :token_uri, String
646
+
647
+ # @!attribute type
648
+ #
649
+ # @return [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type, nil]
650
+ optional :type,
651
+ enum: -> { Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type }
652
+
653
+ # @!attribute universe_domain
654
+ #
655
+ # @return [String, nil]
656
+ optional :universe_domain, String
657
+
658
+ # @!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)
659
+ # Google Cloud service account credentials
660
+ #
661
+ # @param client_email [String]
662
+ # @param private_key [String]
663
+ # @param auth_provider_x509_cert_url [String]
664
+ # @param auth_uri [String]
665
+ # @param client_id [String]
666
+ # @param client_x509_cert_url [String]
667
+ # @param private_key_id [String]
668
+ # @param project_id [String]
669
+ # @param token_uri [String]
670
+ # @param type [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type]
671
+ # @param universe_domain [String]
672
+
673
+ # @see Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials#type
674
+ module Type
675
+ extend Stagehand::Internal::Type::Enum
676
+
677
+ SERVICE_ACCOUNT = :service_account
678
+
679
+ # @!method self.values
680
+ # @return [Array<Symbol>]
681
+ end
682
+ end
683
+
684
+ # Google auth scopes for the desired API request
685
+ #
686
+ # @see Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth#scopes
687
+ module Scopes
688
+ extend Stagehand::Internal::Type::Union
689
+
690
+ variant String
691
+
692
+ variant -> { Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Scopes::StringArray }
693
+
694
+ # @!method self.variants
695
+ # @return [Array(String, Array<String>)]
696
+
697
+ # @type [Stagehand::Internal::Type::Converter]
698
+ StringArray = Stagehand::Internal::Type::ArrayOf[String]
699
+ end
700
+ end
701
+
702
+ # @see Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject#provider_options
703
+ class ProviderOptions < Stagehand::Internal::Type::BaseModel
704
+ # @!attribute vertex
705
+ # Vertex AI provider-specific settings
706
+ #
707
+ # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::Vertex]
708
+ required :vertex,
709
+ -> { Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::Vertex }
710
+
711
+ # @!method initialize(vertex:)
712
+ # Vertex provider-specific model configuration
713
+ #
714
+ # @param vertex [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::Vertex] Vertex AI provider-specific settings
715
+
716
+ # @see Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions#vertex
717
+ class Vertex < Stagehand::Internal::Type::BaseModel
718
+ # @!attribute location
719
+ # Google Cloud location for Vertex AI models
720
+ #
721
+ # @return [String]
722
+ required :location, String
723
+
724
+ # @!attribute project
725
+ # Google Cloud project ID for Vertex AI models
726
+ #
727
+ # @return [String]
728
+ required :project, String
729
+
730
+ # @!attribute base_url
731
+ # Base URL for the Vertex AI provider
732
+ #
733
+ # @return [String, nil]
734
+ optional :base_url, String, api_name: :baseURL
735
+
736
+ # @!attribute headers
737
+ # Custom headers sent with every request to the Vertex AI provider
738
+ #
739
+ # @return [Hash{Symbol=>String}, nil]
740
+ optional :headers, Stagehand::Internal::Type::HashOf[String]
741
+
742
+ # @!method initialize(location:, project:, base_url: nil, headers: nil)
743
+ # Vertex AI provider-specific settings
744
+ #
745
+ # @param location [String] Google Cloud location for Vertex AI models
746
+ #
747
+ # @param project [String] Google Cloud project ID for Vertex AI models
748
+ #
749
+ # @param base_url [String] Base URL for the Vertex AI provider
750
+ #
751
+ # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Vertex AI provider
752
+ end
753
+ end
754
+ end
755
+
756
+ class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel
757
+ # @!attribute model_name
758
+ # Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
759
+ #
760
+ # @return [String]
761
+ required :model_name, String, api_name: :modelName
762
+
763
+ # @!attribute api_key
764
+ # API key for the model provider
765
+ #
766
+ # @return [String, nil]
767
+ optional :api_key, String, api_name: :apiKey
768
+
769
+ # @!attribute base_url
770
+ # Base URL for the model provider
771
+ #
772
+ # @return [String, nil]
773
+ optional :base_url, String, api_name: :baseURL
774
+
775
+ # @!attribute headers
776
+ # Custom headers sent with every request to the model provider
777
+ #
778
+ # @return [Hash{Symbol=>String}, nil]
779
+ optional :headers, Stagehand::Internal::Type::HashOf[String]
780
+
781
+ # @!attribute provider
782
+ # AI provider for the model (or provide a baseURL endpoint instead)
783
+ #
784
+ # @return [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject::Provider, nil]
785
+ optional :provider,
786
+ enum: -> { Stagehand::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject::Provider }
787
+
788
+ # @!method initialize(model_name:, api_key: nil, base_url: nil, headers: nil, provider: nil)
789
+ # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
790
+ #
791
+ # @param api_key [String] API key for the model provider
792
+ #
793
+ # @param base_url [String] Base URL for the model provider
794
+ #
795
+ # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider
796
+ #
797
+ # @param provider [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject::Provider] AI provider for the model (or provide a baseURL endpoint instead)
798
+
799
+ # AI provider for the model (or provide a baseURL endpoint instead)
800
+ #
801
+ # @see Stagehand::Models::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject#provider
802
+ module Provider
803
+ extend Stagehand::Internal::Type::Enum
804
+
805
+ OPENAI = :openai
806
+ ANTHROPIC = :anthropic
807
+ GOOGLE = :google
808
+ MICROSOFT = :microsoft
809
+ BEDROCK = :bedrock
810
+
811
+ # @!method self.values
812
+ # @return [Array<Symbol>]
813
+ end
814
+ end
815
+
161
816
  # @!method self.variants
162
- # @return [Array(Stagehand::Models::ModelConfig, String)]
817
+ # @return [Array(Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject, String)]
163
818
  end
164
819
 
165
820
  # AI provider for the agent (legacy, use model: openai/gpt-5-nano instead)