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.
@@ -119,14 +119,39 @@ module Stagehand
119
119
  attr_writer :ignore_selectors
120
120
 
121
121
  # Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
122
- sig { returns(T.nilable(T.any(Stagehand::ModelConfig, String))) }
122
+ sig do
123
+ returns(
124
+ T.nilable(
125
+ T.any(
126
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject,
127
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject,
128
+ String
129
+ )
130
+ )
131
+ )
132
+ end
123
133
  attr_reader :model
124
134
 
125
135
  sig do
126
- params(model: T.any(Stagehand::ModelConfig::OrHash, String)).void
136
+ params(
137
+ model:
138
+ T.any(
139
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::OrHash,
140
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::OrHash,
141
+ String
142
+ )
143
+ ).void
127
144
  end
128
145
  attr_writer :model
129
146
 
147
+ # When true, include a screenshot of the current viewport in the extraction LLM
148
+ # call. Defaults to false.
149
+ sig { returns(T.nilable(T::Boolean)) }
150
+ attr_reader :screenshot
151
+
152
+ sig { params(screenshot: T::Boolean).void }
153
+ attr_writer :screenshot
154
+
130
155
  # CSS selector to scope extraction to a specific element
131
156
  sig { returns(T.nilable(String)) }
132
157
  attr_reader :selector
@@ -144,7 +169,13 @@ module Stagehand
144
169
  sig do
145
170
  params(
146
171
  ignore_selectors: T::Array[String],
147
- model: T.any(Stagehand::ModelConfig::OrHash, String),
172
+ model:
173
+ T.any(
174
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::OrHash,
175
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::OrHash,
176
+ String
177
+ ),
178
+ screenshot: T::Boolean,
148
179
  selector: String,
149
180
  timeout: Float
150
181
  ).returns(T.attached_class)
@@ -154,6 +185,9 @@ module Stagehand
154
185
  ignore_selectors: nil,
155
186
  # Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
156
187
  model: nil,
188
+ # When true, include a screenshot of the current viewport in the extraction LLM
189
+ # call. Defaults to false.
190
+ screenshot: nil,
157
191
  # CSS selector to scope extraction to a specific element
158
192
  selector: nil,
159
193
  # Timeout in ms for the extraction
@@ -165,7 +199,13 @@ module Stagehand
165
199
  override.returns(
166
200
  {
167
201
  ignore_selectors: T::Array[String],
168
- model: T.any(Stagehand::ModelConfig, String),
202
+ model:
203
+ T.any(
204
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject,
205
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject,
206
+ String
207
+ ),
208
+ screenshot: T::Boolean,
169
209
  selector: String,
170
210
  timeout: Float
171
211
  }
@@ -178,7 +218,682 @@ module Stagehand
178
218
  module Model
179
219
  extend Stagehand::Internal::Type::Union
180
220
 
181
- Variants = T.type_alias { T.any(Stagehand::ModelConfig, String) }
221
+ Variants =
222
+ T.type_alias do
223
+ T.any(
224
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject,
225
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject,
226
+ String
227
+ )
228
+ end
229
+
230
+ class VertexModelConfigObject < Stagehand::Internal::Type::BaseModel
231
+ OrHash =
232
+ T.type_alias do
233
+ T.any(
234
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject,
235
+ Stagehand::Internal::AnyHash
236
+ )
237
+ end
238
+
239
+ # Vertex provider authentication configuration
240
+ sig do
241
+ returns(
242
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth
243
+ )
244
+ end
245
+ attr_reader :auth
246
+
247
+ sig do
248
+ params(
249
+ auth:
250
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::OrHash
251
+ ).void
252
+ end
253
+ attr_writer :auth
254
+
255
+ # Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
256
+ sig { returns(String) }
257
+ attr_accessor :model_name
258
+
259
+ # Vertex AI model provider
260
+ sig { returns(Symbol) }
261
+ attr_accessor :provider
262
+
263
+ # Vertex provider-specific model configuration
264
+ sig do
265
+ returns(
266
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions
267
+ )
268
+ end
269
+ attr_reader :provider_options
270
+
271
+ sig do
272
+ params(
273
+ provider_options:
274
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::OrHash
275
+ ).void
276
+ end
277
+ attr_writer :provider_options
278
+
279
+ # API key for the model provider
280
+ sig { returns(T.nilable(String)) }
281
+ attr_reader :api_key
282
+
283
+ sig { params(api_key: String).void }
284
+ attr_writer :api_key
285
+
286
+ # Base URL for the model provider
287
+ sig { returns(T.nilable(String)) }
288
+ attr_reader :base_url
289
+
290
+ sig { params(base_url: String).void }
291
+ attr_writer :base_url
292
+
293
+ # Custom headers sent with every request to the model provider
294
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
295
+ attr_reader :headers
296
+
297
+ sig { params(headers: T::Hash[Symbol, String]).void }
298
+ attr_writer :headers
299
+
300
+ sig do
301
+ params(
302
+ auth:
303
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::OrHash,
304
+ model_name: String,
305
+ provider_options:
306
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::OrHash,
307
+ api_key: String,
308
+ base_url: String,
309
+ headers: T::Hash[Symbol, String],
310
+ provider: Symbol
311
+ ).returns(T.attached_class)
312
+ end
313
+ def self.new(
314
+ # Vertex provider authentication configuration
315
+ auth:,
316
+ # Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
317
+ model_name:,
318
+ # Vertex provider-specific model configuration
319
+ provider_options:,
320
+ # API key for the model provider
321
+ api_key: nil,
322
+ # Base URL for the model provider
323
+ base_url: nil,
324
+ # Custom headers sent with every request to the model provider
325
+ headers: nil,
326
+ # Vertex AI model provider
327
+ provider: :vertex
328
+ )
329
+ end
330
+
331
+ sig do
332
+ override.returns(
333
+ {
334
+ auth:
335
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth,
336
+ model_name: String,
337
+ provider: Symbol,
338
+ provider_options:
339
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions,
340
+ api_key: String,
341
+ base_url: String,
342
+ headers: T::Hash[Symbol, String]
343
+ }
344
+ )
345
+ end
346
+ def to_hash
347
+ end
348
+
349
+ class Auth < Stagehand::Internal::Type::BaseModel
350
+ OrHash =
351
+ T.type_alias do
352
+ T.any(
353
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth,
354
+ Stagehand::Internal::AnyHash
355
+ )
356
+ end
357
+
358
+ # Google Cloud service account credentials
359
+ sig do
360
+ returns(
361
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials
362
+ )
363
+ end
364
+ attr_reader :credentials
365
+
366
+ sig do
367
+ params(
368
+ credentials:
369
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::OrHash
370
+ ).void
371
+ end
372
+ attr_writer :credentials
373
+
374
+ # Use inline Google Cloud service account credentials for provider authentication
375
+ sig { returns(Symbol) }
376
+ attr_accessor :type
377
+
378
+ # Google Cloud project ID used by google-auth-library
379
+ sig { returns(T.nilable(String)) }
380
+ attr_reader :project_id
381
+
382
+ sig { params(project_id: String).void }
383
+ attr_writer :project_id
384
+
385
+ # Google auth scopes for the desired API request
386
+ sig do
387
+ returns(
388
+ T.nilable(
389
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Scopes::Variants
390
+ )
391
+ )
392
+ end
393
+ attr_reader :scopes
394
+
395
+ sig do
396
+ params(
397
+ scopes:
398
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Scopes::Variants
399
+ ).void
400
+ end
401
+ attr_writer :scopes
402
+
403
+ # Google Cloud universe domain
404
+ sig { returns(T.nilable(String)) }
405
+ attr_reader :universe_domain
406
+
407
+ sig { params(universe_domain: String).void }
408
+ attr_writer :universe_domain
409
+
410
+ # Vertex provider authentication configuration
411
+ sig do
412
+ params(
413
+ credentials:
414
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::OrHash,
415
+ project_id: String,
416
+ scopes:
417
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Scopes::Variants,
418
+ universe_domain: String,
419
+ type: Symbol
420
+ ).returns(T.attached_class)
421
+ end
422
+ def self.new(
423
+ # Google Cloud service account credentials
424
+ credentials:,
425
+ # Google Cloud project ID used by google-auth-library
426
+ project_id: nil,
427
+ # Google auth scopes for the desired API request
428
+ scopes: nil,
429
+ # Google Cloud universe domain
430
+ universe_domain: nil,
431
+ # Use inline Google Cloud service account credentials for provider authentication
432
+ type: :googleServiceAccount
433
+ )
434
+ end
435
+
436
+ sig do
437
+ override.returns(
438
+ {
439
+ credentials:
440
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials,
441
+ type: Symbol,
442
+ project_id: String,
443
+ scopes:
444
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Scopes::Variants,
445
+ universe_domain: String
446
+ }
447
+ )
448
+ end
449
+ def to_hash
450
+ end
451
+
452
+ class Credentials < Stagehand::Internal::Type::BaseModel
453
+ OrHash =
454
+ T.type_alias do
455
+ T.any(
456
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials,
457
+ Stagehand::Internal::AnyHash
458
+ )
459
+ end
460
+
461
+ sig { returns(String) }
462
+ attr_accessor :client_email
463
+
464
+ sig { returns(String) }
465
+ attr_accessor :private_key
466
+
467
+ sig { returns(T.nilable(String)) }
468
+ attr_reader :auth_provider_x509_cert_url
469
+
470
+ sig { params(auth_provider_x509_cert_url: String).void }
471
+ attr_writer :auth_provider_x509_cert_url
472
+
473
+ sig { returns(T.nilable(String)) }
474
+ attr_reader :auth_uri
475
+
476
+ sig { params(auth_uri: String).void }
477
+ attr_writer :auth_uri
478
+
479
+ sig { returns(T.nilable(String)) }
480
+ attr_reader :client_id
481
+
482
+ sig { params(client_id: String).void }
483
+ attr_writer :client_id
484
+
485
+ sig { returns(T.nilable(String)) }
486
+ attr_reader :client_x509_cert_url
487
+
488
+ sig { params(client_x509_cert_url: String).void }
489
+ attr_writer :client_x509_cert_url
490
+
491
+ sig { returns(T.nilable(String)) }
492
+ attr_reader :private_key_id
493
+
494
+ sig { params(private_key_id: String).void }
495
+ attr_writer :private_key_id
496
+
497
+ sig { returns(T.nilable(String)) }
498
+ attr_reader :project_id
499
+
500
+ sig { params(project_id: String).void }
501
+ attr_writer :project_id
502
+
503
+ sig { returns(T.nilable(String)) }
504
+ attr_reader :token_uri
505
+
506
+ sig { params(token_uri: String).void }
507
+ attr_writer :token_uri
508
+
509
+ sig do
510
+ returns(
511
+ T.nilable(
512
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol
513
+ )
514
+ )
515
+ end
516
+ attr_reader :type
517
+
518
+ sig do
519
+ params(
520
+ type:
521
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol
522
+ ).void
523
+ end
524
+ attr_writer :type
525
+
526
+ sig { returns(T.nilable(String)) }
527
+ attr_reader :universe_domain
528
+
529
+ sig { params(universe_domain: String).void }
530
+ attr_writer :universe_domain
531
+
532
+ # Google Cloud service account credentials
533
+ sig do
534
+ params(
535
+ client_email: String,
536
+ private_key: String,
537
+ auth_provider_x509_cert_url: String,
538
+ auth_uri: String,
539
+ client_id: String,
540
+ client_x509_cert_url: String,
541
+ private_key_id: String,
542
+ project_id: String,
543
+ token_uri: String,
544
+ type:
545
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol,
546
+ universe_domain: String
547
+ ).returns(T.attached_class)
548
+ end
549
+ def self.new(
550
+ client_email:,
551
+ private_key:,
552
+ auth_provider_x509_cert_url: nil,
553
+ auth_uri: nil,
554
+ client_id: nil,
555
+ client_x509_cert_url: nil,
556
+ private_key_id: nil,
557
+ project_id: nil,
558
+ token_uri: nil,
559
+ type: nil,
560
+ universe_domain: nil
561
+ )
562
+ end
563
+
564
+ sig do
565
+ override.returns(
566
+ {
567
+ client_email: String,
568
+ private_key: String,
569
+ auth_provider_x509_cert_url: String,
570
+ auth_uri: String,
571
+ client_id: String,
572
+ client_x509_cert_url: String,
573
+ private_key_id: String,
574
+ project_id: String,
575
+ token_uri: String,
576
+ type:
577
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol,
578
+ universe_domain: String
579
+ }
580
+ )
581
+ end
582
+ def to_hash
583
+ end
584
+
585
+ module Type
586
+ extend Stagehand::Internal::Type::Enum
587
+
588
+ TaggedSymbol =
589
+ T.type_alias do
590
+ T.all(
591
+ Symbol,
592
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type
593
+ )
594
+ end
595
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
596
+
597
+ SERVICE_ACCOUNT =
598
+ T.let(
599
+ :service_account,
600
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type::TaggedSymbol
601
+ )
602
+
603
+ sig do
604
+ override.returns(
605
+ T::Array[
606
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type::TaggedSymbol
607
+ ]
608
+ )
609
+ end
610
+ def self.values
611
+ end
612
+ end
613
+ end
614
+
615
+ # Google auth scopes for the desired API request
616
+ module Scopes
617
+ extend Stagehand::Internal::Type::Union
618
+
619
+ Variants = T.type_alias { T.any(String, T::Array[String]) }
620
+
621
+ sig do
622
+ override.returns(
623
+ T::Array[
624
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Scopes::Variants
625
+ ]
626
+ )
627
+ end
628
+ def self.variants
629
+ end
630
+
631
+ StringArray =
632
+ T.let(
633
+ Stagehand::Internal::Type::ArrayOf[String],
634
+ Stagehand::Internal::Type::Converter
635
+ )
636
+ end
637
+ end
638
+
639
+ class ProviderOptions < Stagehand::Internal::Type::BaseModel
640
+ OrHash =
641
+ T.type_alias do
642
+ T.any(
643
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions,
644
+ Stagehand::Internal::AnyHash
645
+ )
646
+ end
647
+
648
+ # Vertex AI provider-specific settings
649
+ sig do
650
+ returns(
651
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::Vertex
652
+ )
653
+ end
654
+ attr_reader :vertex
655
+
656
+ sig do
657
+ params(
658
+ vertex:
659
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::Vertex::OrHash
660
+ ).void
661
+ end
662
+ attr_writer :vertex
663
+
664
+ # Vertex provider-specific model configuration
665
+ sig do
666
+ params(
667
+ vertex:
668
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::Vertex::OrHash
669
+ ).returns(T.attached_class)
670
+ end
671
+ def self.new(
672
+ # Vertex AI provider-specific settings
673
+ vertex:
674
+ )
675
+ end
676
+
677
+ sig do
678
+ override.returns(
679
+ {
680
+ vertex:
681
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::Vertex
682
+ }
683
+ )
684
+ end
685
+ def to_hash
686
+ end
687
+
688
+ class Vertex < Stagehand::Internal::Type::BaseModel
689
+ OrHash =
690
+ T.type_alias do
691
+ T.any(
692
+ Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::Vertex,
693
+ Stagehand::Internal::AnyHash
694
+ )
695
+ end
696
+
697
+ # Google Cloud location for Vertex AI models
698
+ sig { returns(String) }
699
+ attr_accessor :location
700
+
701
+ # Google Cloud project ID for Vertex AI models
702
+ sig { returns(String) }
703
+ attr_accessor :project
704
+
705
+ # Base URL for the Vertex AI provider
706
+ sig { returns(T.nilable(String)) }
707
+ attr_reader :base_url
708
+
709
+ sig { params(base_url: String).void }
710
+ attr_writer :base_url
711
+
712
+ # Custom headers sent with every request to the Vertex AI provider
713
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
714
+ attr_reader :headers
715
+
716
+ sig { params(headers: T::Hash[Symbol, String]).void }
717
+ attr_writer :headers
718
+
719
+ # Vertex AI provider-specific settings
720
+ sig do
721
+ params(
722
+ location: String,
723
+ project: String,
724
+ base_url: String,
725
+ headers: T::Hash[Symbol, String]
726
+ ).returns(T.attached_class)
727
+ end
728
+ def self.new(
729
+ # Google Cloud location for Vertex AI models
730
+ location:,
731
+ # Google Cloud project ID for Vertex AI models
732
+ project:,
733
+ # Base URL for the Vertex AI provider
734
+ base_url: nil,
735
+ # Custom headers sent with every request to the Vertex AI provider
736
+ headers: nil
737
+ )
738
+ end
739
+
740
+ sig do
741
+ override.returns(
742
+ {
743
+ location: String,
744
+ project: String,
745
+ base_url: String,
746
+ headers: T::Hash[Symbol, String]
747
+ }
748
+ )
749
+ end
750
+ def to_hash
751
+ end
752
+ end
753
+ end
754
+ end
755
+
756
+ class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel
757
+ OrHash =
758
+ T.type_alias do
759
+ T.any(
760
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject,
761
+ Stagehand::Internal::AnyHash
762
+ )
763
+ end
764
+
765
+ # Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
766
+ sig { returns(String) }
767
+ attr_accessor :model_name
768
+
769
+ # API key for the model provider
770
+ sig { returns(T.nilable(String)) }
771
+ attr_reader :api_key
772
+
773
+ sig { params(api_key: String).void }
774
+ attr_writer :api_key
775
+
776
+ # Base URL for the model provider
777
+ sig { returns(T.nilable(String)) }
778
+ attr_reader :base_url
779
+
780
+ sig { params(base_url: String).void }
781
+ attr_writer :base_url
782
+
783
+ # Custom headers sent with every request to the model provider
784
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
785
+ attr_reader :headers
786
+
787
+ sig { params(headers: T::Hash[Symbol, String]).void }
788
+ attr_writer :headers
789
+
790
+ # AI provider for the model (or provide a baseURL endpoint instead)
791
+ sig do
792
+ returns(
793
+ T.nilable(
794
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::OrSymbol
795
+ )
796
+ )
797
+ end
798
+ attr_reader :provider
799
+
800
+ sig do
801
+ params(
802
+ provider:
803
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::OrSymbol
804
+ ).void
805
+ end
806
+ attr_writer :provider
807
+
808
+ sig do
809
+ params(
810
+ model_name: String,
811
+ api_key: String,
812
+ base_url: String,
813
+ headers: T::Hash[Symbol, String],
814
+ provider:
815
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::OrSymbol
816
+ ).returns(T.attached_class)
817
+ end
818
+ def self.new(
819
+ # Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
820
+ model_name:,
821
+ # API key for the model provider
822
+ api_key: nil,
823
+ # Base URL for the model provider
824
+ base_url: nil,
825
+ # Custom headers sent with every request to the model provider
826
+ headers: nil,
827
+ # AI provider for the model (or provide a baseURL endpoint instead)
828
+ provider: nil
829
+ )
830
+ end
831
+
832
+ sig do
833
+ override.returns(
834
+ {
835
+ model_name: String,
836
+ api_key: String,
837
+ base_url: String,
838
+ headers: T::Hash[Symbol, String],
839
+ provider:
840
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::OrSymbol
841
+ }
842
+ )
843
+ end
844
+ def to_hash
845
+ end
846
+
847
+ # AI provider for the model (or provide a baseURL endpoint instead)
848
+ module Provider
849
+ extend Stagehand::Internal::Type::Enum
850
+
851
+ TaggedSymbol =
852
+ T.type_alias do
853
+ T.all(
854
+ Symbol,
855
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider
856
+ )
857
+ end
858
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
859
+
860
+ OPENAI =
861
+ T.let(
862
+ :openai,
863
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::TaggedSymbol
864
+ )
865
+ ANTHROPIC =
866
+ T.let(
867
+ :anthropic,
868
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::TaggedSymbol
869
+ )
870
+ GOOGLE =
871
+ T.let(
872
+ :google,
873
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::TaggedSymbol
874
+ )
875
+ MICROSOFT =
876
+ T.let(
877
+ :microsoft,
878
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::TaggedSymbol
879
+ )
880
+ BEDROCK =
881
+ T.let(
882
+ :bedrock,
883
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::TaggedSymbol
884
+ )
885
+
886
+ sig do
887
+ override.returns(
888
+ T::Array[
889
+ Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::TaggedSymbol
890
+ ]
891
+ )
892
+ end
893
+ def self.values
894
+ end
895
+ end
896
+ end
182
897
 
183
898
  sig do
184
899
  override.returns(