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