stagehand 3.18.0 → 3.20.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +45 -0
- data/README.md +5 -6
- data/lib/stagehand/client.rb +25 -13
- data/lib/stagehand/internal/util.rb +22 -7
- data/lib/stagehand/local.rb +3 -12
- data/lib/stagehand/models/session_execute_params.rb +56 -1
- data/lib/stagehand/models/session_extract_params.rb +9 -1
- data/lib/stagehand/models/session_start_params.rb +56 -2
- data/lib/stagehand/resources/sessions.rb +16 -4
- data/lib/stagehand/version.rb +1 -1
- data/rbi/stagehand/client.rbi +6 -6
- data/rbi/stagehand/internal/util.rbi +8 -0
- data/rbi/stagehand/models/session_execute_params.rbi +144 -3
- data/rbi/stagehand/models/session_extract_params.rbi +11 -0
- data/rbi/stagehand/models/session_start_params.rbi +102 -0
- data/sig/stagehand/internal/util.rbs +4 -0
- data/sig/stagehand/models/session_execute_params.rbs +56 -3
- data/sig/stagehand/models/session_extract_params.rbs +7 -0
- data/sig/stagehand/models/session_start_params.rbs +44 -0
- metadata +2 -2
|
@@ -148,12 +148,20 @@ module Stagehand
|
|
|
148
148
|
end
|
|
149
149
|
end
|
|
150
150
|
|
|
151
|
+
# https://www.rfc-editor.org/rfc/rfc3986.html#section-3.3
|
|
152
|
+
RFC_3986_NOT_PCHARS = T.let(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/, Regexp)
|
|
153
|
+
|
|
151
154
|
class << self
|
|
152
155
|
# @api private
|
|
153
156
|
sig { params(uri: URI::Generic).returns(String) }
|
|
154
157
|
def uri_origin(uri)
|
|
155
158
|
end
|
|
156
159
|
|
|
160
|
+
# @api private
|
|
161
|
+
sig { params(path: T.any(String, Integer)).returns(String) }
|
|
162
|
+
def encode_path(path)
|
|
163
|
+
end
|
|
164
|
+
|
|
157
165
|
# @api private
|
|
158
166
|
sig { params(path: T.any(String, T::Array[String])).returns(String) }
|
|
159
167
|
def interpolate_path(path)
|
|
@@ -401,13 +401,57 @@ module Stagehand
|
|
|
401
401
|
sig { params(use_search: T::Boolean).void }
|
|
402
402
|
attr_writer :use_search
|
|
403
403
|
|
|
404
|
+
# Variables available to the agent via %variableName% syntax in supported tools
|
|
405
|
+
sig do
|
|
406
|
+
returns(
|
|
407
|
+
T.nilable(
|
|
408
|
+
T::Hash[
|
|
409
|
+
Symbol,
|
|
410
|
+
T.any(
|
|
411
|
+
String,
|
|
412
|
+
Float,
|
|
413
|
+
T::Boolean,
|
|
414
|
+
Stagehand::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3
|
|
415
|
+
)
|
|
416
|
+
]
|
|
417
|
+
)
|
|
418
|
+
)
|
|
419
|
+
end
|
|
420
|
+
attr_reader :variables
|
|
421
|
+
|
|
422
|
+
sig do
|
|
423
|
+
params(
|
|
424
|
+
variables:
|
|
425
|
+
T::Hash[
|
|
426
|
+
Symbol,
|
|
427
|
+
T.any(
|
|
428
|
+
String,
|
|
429
|
+
Float,
|
|
430
|
+
T::Boolean,
|
|
431
|
+
Stagehand::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3::OrHash
|
|
432
|
+
)
|
|
433
|
+
]
|
|
434
|
+
).void
|
|
435
|
+
end
|
|
436
|
+
attr_writer :variables
|
|
437
|
+
|
|
404
438
|
sig do
|
|
405
439
|
params(
|
|
406
440
|
instruction: String,
|
|
407
441
|
highlight_cursor: T::Boolean,
|
|
408
442
|
max_steps: Float,
|
|
409
443
|
tool_timeout: Float,
|
|
410
|
-
use_search: T::Boolean
|
|
444
|
+
use_search: T::Boolean,
|
|
445
|
+
variables:
|
|
446
|
+
T::Hash[
|
|
447
|
+
Symbol,
|
|
448
|
+
T.any(
|
|
449
|
+
String,
|
|
450
|
+
Float,
|
|
451
|
+
T::Boolean,
|
|
452
|
+
Stagehand::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3::OrHash
|
|
453
|
+
)
|
|
454
|
+
]
|
|
411
455
|
).returns(T.attached_class)
|
|
412
456
|
end
|
|
413
457
|
def self.new(
|
|
@@ -420,7 +464,9 @@ module Stagehand
|
|
|
420
464
|
# Timeout in milliseconds for each agent tool call
|
|
421
465
|
tool_timeout: nil,
|
|
422
466
|
# Whether to enable the web search tool powered by Browserbase Search API
|
|
423
|
-
use_search: nil
|
|
467
|
+
use_search: nil,
|
|
468
|
+
# Variables available to the agent via %variableName% syntax in supported tools
|
|
469
|
+
variables: nil
|
|
424
470
|
)
|
|
425
471
|
end
|
|
426
472
|
|
|
@@ -431,12 +477,107 @@ module Stagehand
|
|
|
431
477
|
highlight_cursor: T::Boolean,
|
|
432
478
|
max_steps: Float,
|
|
433
479
|
tool_timeout: Float,
|
|
434
|
-
use_search: T::Boolean
|
|
480
|
+
use_search: T::Boolean,
|
|
481
|
+
variables:
|
|
482
|
+
T::Hash[
|
|
483
|
+
Symbol,
|
|
484
|
+
T.any(
|
|
485
|
+
String,
|
|
486
|
+
Float,
|
|
487
|
+
T::Boolean,
|
|
488
|
+
Stagehand::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3
|
|
489
|
+
)
|
|
490
|
+
]
|
|
435
491
|
}
|
|
436
492
|
)
|
|
437
493
|
end
|
|
438
494
|
def to_hash
|
|
439
495
|
end
|
|
496
|
+
|
|
497
|
+
module Variable
|
|
498
|
+
extend Stagehand::Internal::Type::Union
|
|
499
|
+
|
|
500
|
+
Variants =
|
|
501
|
+
T.type_alias do
|
|
502
|
+
T.any(
|
|
503
|
+
String,
|
|
504
|
+
Float,
|
|
505
|
+
T::Boolean,
|
|
506
|
+
Stagehand::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3
|
|
507
|
+
)
|
|
508
|
+
end
|
|
509
|
+
|
|
510
|
+
class UnionMember3 < Stagehand::Internal::Type::BaseModel
|
|
511
|
+
OrHash =
|
|
512
|
+
T.type_alias do
|
|
513
|
+
T.any(
|
|
514
|
+
Stagehand::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3,
|
|
515
|
+
Stagehand::Internal::AnyHash
|
|
516
|
+
)
|
|
517
|
+
end
|
|
518
|
+
|
|
519
|
+
sig do
|
|
520
|
+
returns(
|
|
521
|
+
Stagehand::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3::Value::Variants
|
|
522
|
+
)
|
|
523
|
+
end
|
|
524
|
+
attr_accessor :value
|
|
525
|
+
|
|
526
|
+
sig { returns(T.nilable(String)) }
|
|
527
|
+
attr_reader :description
|
|
528
|
+
|
|
529
|
+
sig { params(description: String).void }
|
|
530
|
+
attr_writer :description
|
|
531
|
+
|
|
532
|
+
sig do
|
|
533
|
+
params(
|
|
534
|
+
value:
|
|
535
|
+
Stagehand::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3::Value::Variants,
|
|
536
|
+
description: String
|
|
537
|
+
).returns(T.attached_class)
|
|
538
|
+
end
|
|
539
|
+
def self.new(value:, description: nil)
|
|
540
|
+
end
|
|
541
|
+
|
|
542
|
+
sig do
|
|
543
|
+
override.returns(
|
|
544
|
+
{
|
|
545
|
+
value:
|
|
546
|
+
Stagehand::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3::Value::Variants,
|
|
547
|
+
description: String
|
|
548
|
+
}
|
|
549
|
+
)
|
|
550
|
+
end
|
|
551
|
+
def to_hash
|
|
552
|
+
end
|
|
553
|
+
|
|
554
|
+
module Value
|
|
555
|
+
extend Stagehand::Internal::Type::Union
|
|
556
|
+
|
|
557
|
+
Variants = T.type_alias { T.any(String, Float, T::Boolean) }
|
|
558
|
+
|
|
559
|
+
sig do
|
|
560
|
+
override.returns(
|
|
561
|
+
T::Array[
|
|
562
|
+
Stagehand::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3::Value::Variants
|
|
563
|
+
]
|
|
564
|
+
)
|
|
565
|
+
end
|
|
566
|
+
def self.variants
|
|
567
|
+
end
|
|
568
|
+
end
|
|
569
|
+
end
|
|
570
|
+
|
|
571
|
+
sig do
|
|
572
|
+
override.returns(
|
|
573
|
+
T::Array[
|
|
574
|
+
Stagehand::SessionExecuteParams::ExecuteOptions::Variable::Variants
|
|
575
|
+
]
|
|
576
|
+
)
|
|
577
|
+
end
|
|
578
|
+
def self.variants
|
|
579
|
+
end
|
|
580
|
+
end
|
|
440
581
|
end
|
|
441
582
|
|
|
442
583
|
# Whether to stream the response via SSE
|
|
@@ -111,6 +111,13 @@ module Stagehand
|
|
|
111
111
|
)
|
|
112
112
|
end
|
|
113
113
|
|
|
114
|
+
# Selectors for elements and subtrees that should be excluded from extraction
|
|
115
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
116
|
+
attr_reader :ignore_selectors
|
|
117
|
+
|
|
118
|
+
sig { params(ignore_selectors: T::Array[String]).void }
|
|
119
|
+
attr_writer :ignore_selectors
|
|
120
|
+
|
|
114
121
|
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
115
122
|
sig { returns(T.nilable(T.any(Stagehand::ModelConfig, String))) }
|
|
116
123
|
attr_reader :model
|
|
@@ -136,12 +143,15 @@ module Stagehand
|
|
|
136
143
|
|
|
137
144
|
sig do
|
|
138
145
|
params(
|
|
146
|
+
ignore_selectors: T::Array[String],
|
|
139
147
|
model: T.any(Stagehand::ModelConfig::OrHash, String),
|
|
140
148
|
selector: String,
|
|
141
149
|
timeout: Float
|
|
142
150
|
).returns(T.attached_class)
|
|
143
151
|
end
|
|
144
152
|
def self.new(
|
|
153
|
+
# Selectors for elements and subtrees that should be excluded from extraction
|
|
154
|
+
ignore_selectors: nil,
|
|
145
155
|
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
146
156
|
model: nil,
|
|
147
157
|
# CSS selector to scope extraction to a specific element
|
|
@@ -154,6 +164,7 @@ module Stagehand
|
|
|
154
164
|
sig do
|
|
155
165
|
override.returns(
|
|
156
166
|
{
|
|
167
|
+
ignore_selectors: T::Array[String],
|
|
157
168
|
model: T.any(Stagehand::ModelConfig, String),
|
|
158
169
|
selector: String,
|
|
159
170
|
timeout: Float
|
|
@@ -680,6 +680,8 @@ module Stagehand
|
|
|
680
680
|
sig { params(keep_alive: T::Boolean).void }
|
|
681
681
|
attr_writer :keep_alive
|
|
682
682
|
|
|
683
|
+
# Deprecated. Browserbase API keys are now project-scoped, so this field is no
|
|
684
|
+
# longer required.
|
|
683
685
|
sig { returns(T.nilable(String)) }
|
|
684
686
|
attr_reader :project_id
|
|
685
687
|
|
|
@@ -751,6 +753,8 @@ module Stagehand
|
|
|
751
753
|
browser_settings: nil,
|
|
752
754
|
extension_id: nil,
|
|
753
755
|
keep_alive: nil,
|
|
756
|
+
# Deprecated. Browserbase API keys are now project-scoped, so this field is no
|
|
757
|
+
# longer required.
|
|
754
758
|
project_id: nil,
|
|
755
759
|
proxies: nil,
|
|
756
760
|
region: nil,
|
|
@@ -800,6 +804,18 @@ module Stagehand
|
|
|
800
804
|
sig { params(block_ads: T::Boolean).void }
|
|
801
805
|
attr_writer :block_ads
|
|
802
806
|
|
|
807
|
+
sig { returns(T.nilable(String)) }
|
|
808
|
+
attr_reader :captcha_image_selector
|
|
809
|
+
|
|
810
|
+
sig { params(captcha_image_selector: String).void }
|
|
811
|
+
attr_writer :captcha_image_selector
|
|
812
|
+
|
|
813
|
+
sig { returns(T.nilable(String)) }
|
|
814
|
+
attr_reader :captcha_input_selector
|
|
815
|
+
|
|
816
|
+
sig { params(captcha_input_selector: String).void }
|
|
817
|
+
attr_writer :captcha_input_selector
|
|
818
|
+
|
|
803
819
|
sig do
|
|
804
820
|
returns(
|
|
805
821
|
T.nilable(
|
|
@@ -846,6 +862,23 @@ module Stagehand
|
|
|
846
862
|
sig { params(log_session: T::Boolean).void }
|
|
847
863
|
attr_writer :log_session
|
|
848
864
|
|
|
865
|
+
sig do
|
|
866
|
+
returns(
|
|
867
|
+
T.nilable(
|
|
868
|
+
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Os::OrSymbol
|
|
869
|
+
)
|
|
870
|
+
)
|
|
871
|
+
end
|
|
872
|
+
attr_reader :os
|
|
873
|
+
|
|
874
|
+
sig do
|
|
875
|
+
params(
|
|
876
|
+
os:
|
|
877
|
+
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Os::OrSymbol
|
|
878
|
+
).void
|
|
879
|
+
end
|
|
880
|
+
attr_writer :os
|
|
881
|
+
|
|
849
882
|
sig { returns(T.nilable(T::Boolean)) }
|
|
850
883
|
attr_reader :record_session
|
|
851
884
|
|
|
@@ -858,6 +891,12 @@ module Stagehand
|
|
|
858
891
|
sig { params(solve_captchas: T::Boolean).void }
|
|
859
892
|
attr_writer :solve_captchas
|
|
860
893
|
|
|
894
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
895
|
+
attr_reader :verified
|
|
896
|
+
|
|
897
|
+
sig { params(verified: T::Boolean).void }
|
|
898
|
+
attr_writer :verified
|
|
899
|
+
|
|
861
900
|
sig do
|
|
862
901
|
returns(
|
|
863
902
|
T.nilable(
|
|
@@ -879,14 +918,19 @@ module Stagehand
|
|
|
879
918
|
params(
|
|
880
919
|
advanced_stealth: T::Boolean,
|
|
881
920
|
block_ads: T::Boolean,
|
|
921
|
+
captcha_image_selector: String,
|
|
922
|
+
captcha_input_selector: String,
|
|
882
923
|
context:
|
|
883
924
|
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Context::OrHash,
|
|
884
925
|
extension_id: String,
|
|
885
926
|
fingerprint:
|
|
886
927
|
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint::OrHash,
|
|
887
928
|
log_session: T::Boolean,
|
|
929
|
+
os:
|
|
930
|
+
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Os::OrSymbol,
|
|
888
931
|
record_session: T::Boolean,
|
|
889
932
|
solve_captchas: T::Boolean,
|
|
933
|
+
verified: T::Boolean,
|
|
890
934
|
viewport:
|
|
891
935
|
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Viewport::OrHash
|
|
892
936
|
).returns(T.attached_class)
|
|
@@ -894,12 +938,16 @@ module Stagehand
|
|
|
894
938
|
def self.new(
|
|
895
939
|
advanced_stealth: nil,
|
|
896
940
|
block_ads: nil,
|
|
941
|
+
captcha_image_selector: nil,
|
|
942
|
+
captcha_input_selector: nil,
|
|
897
943
|
context: nil,
|
|
898
944
|
extension_id: nil,
|
|
899
945
|
fingerprint: nil,
|
|
900
946
|
log_session: nil,
|
|
947
|
+
os: nil,
|
|
901
948
|
record_session: nil,
|
|
902
949
|
solve_captchas: nil,
|
|
950
|
+
verified: nil,
|
|
903
951
|
viewport: nil
|
|
904
952
|
)
|
|
905
953
|
end
|
|
@@ -909,14 +957,19 @@ module Stagehand
|
|
|
909
957
|
{
|
|
910
958
|
advanced_stealth: T::Boolean,
|
|
911
959
|
block_ads: T::Boolean,
|
|
960
|
+
captcha_image_selector: String,
|
|
961
|
+
captcha_input_selector: String,
|
|
912
962
|
context:
|
|
913
963
|
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Context,
|
|
914
964
|
extension_id: String,
|
|
915
965
|
fingerprint:
|
|
916
966
|
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint,
|
|
917
967
|
log_session: T::Boolean,
|
|
968
|
+
os:
|
|
969
|
+
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Os::OrSymbol,
|
|
918
970
|
record_session: T::Boolean,
|
|
919
971
|
solve_captchas: T::Boolean,
|
|
972
|
+
verified: T::Boolean,
|
|
920
973
|
viewport:
|
|
921
974
|
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Viewport
|
|
922
975
|
}
|
|
@@ -1348,6 +1401,55 @@ module Stagehand
|
|
|
1348
1401
|
end
|
|
1349
1402
|
end
|
|
1350
1403
|
|
|
1404
|
+
module Os
|
|
1405
|
+
extend Stagehand::Internal::Type::Enum
|
|
1406
|
+
|
|
1407
|
+
TaggedSymbol =
|
|
1408
|
+
T.type_alias do
|
|
1409
|
+
T.all(
|
|
1410
|
+
Symbol,
|
|
1411
|
+
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Os
|
|
1412
|
+
)
|
|
1413
|
+
end
|
|
1414
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1415
|
+
|
|
1416
|
+
WINDOWS =
|
|
1417
|
+
T.let(
|
|
1418
|
+
:windows,
|
|
1419
|
+
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Os::TaggedSymbol
|
|
1420
|
+
)
|
|
1421
|
+
MAC =
|
|
1422
|
+
T.let(
|
|
1423
|
+
:mac,
|
|
1424
|
+
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Os::TaggedSymbol
|
|
1425
|
+
)
|
|
1426
|
+
LINUX =
|
|
1427
|
+
T.let(
|
|
1428
|
+
:linux,
|
|
1429
|
+
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Os::TaggedSymbol
|
|
1430
|
+
)
|
|
1431
|
+
MOBILE =
|
|
1432
|
+
T.let(
|
|
1433
|
+
:mobile,
|
|
1434
|
+
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Os::TaggedSymbol
|
|
1435
|
+
)
|
|
1436
|
+
TABLET =
|
|
1437
|
+
T.let(
|
|
1438
|
+
:tablet,
|
|
1439
|
+
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Os::TaggedSymbol
|
|
1440
|
+
)
|
|
1441
|
+
|
|
1442
|
+
sig do
|
|
1443
|
+
override.returns(
|
|
1444
|
+
T::Array[
|
|
1445
|
+
Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Os::TaggedSymbol
|
|
1446
|
+
]
|
|
1447
|
+
)
|
|
1448
|
+
end
|
|
1449
|
+
def self.values
|
|
1450
|
+
end
|
|
1451
|
+
end
|
|
1452
|
+
|
|
1351
1453
|
class Viewport < Stagehand::Internal::Type::BaseModel
|
|
1352
1454
|
OrHash =
|
|
1353
1455
|
T.type_alias do
|
|
@@ -45,8 +45,12 @@ module Stagehand
|
|
|
45
45
|
-> top?
|
|
46
46
|
} -> top?
|
|
47
47
|
|
|
48
|
+
RFC_3986_NOT_PCHARS: Regexp
|
|
49
|
+
|
|
48
50
|
def self?.uri_origin: (URI::Generic uri) -> String
|
|
49
51
|
|
|
52
|
+
def self?.encode_path: (String | Integer path) -> String
|
|
53
|
+
|
|
50
54
|
def self?.interpolate_path: (String | ::Array[String] path) -> String
|
|
51
55
|
|
|
52
56
|
def self?.decode_query: (String? query) -> ::Hash[String, ::Array[String]]
|
|
@@ -163,7 +163,8 @@ module Stagehand
|
|
|
163
163
|
highlight_cursor: bool,
|
|
164
164
|
max_steps: Float,
|
|
165
165
|
tool_timeout: Float,
|
|
166
|
-
use_search: bool
|
|
166
|
+
use_search: bool,
|
|
167
|
+
variables: ::Hash[Symbol, Stagehand::Models::SessionExecuteParams::ExecuteOptions::variable]
|
|
167
168
|
}
|
|
168
169
|
|
|
169
170
|
class ExecuteOptions < Stagehand::Internal::Type::BaseModel
|
|
@@ -185,12 +186,19 @@ module Stagehand
|
|
|
185
186
|
|
|
186
187
|
def use_search=: (bool) -> bool
|
|
187
188
|
|
|
189
|
+
attr_reader variables: ::Hash[Symbol, Stagehand::Models::SessionExecuteParams::ExecuteOptions::variable]?
|
|
190
|
+
|
|
191
|
+
def variables=: (
|
|
192
|
+
::Hash[Symbol, Stagehand::Models::SessionExecuteParams::ExecuteOptions::variable]
|
|
193
|
+
) -> ::Hash[Symbol, Stagehand::Models::SessionExecuteParams::ExecuteOptions::variable]
|
|
194
|
+
|
|
188
195
|
def initialize: (
|
|
189
196
|
instruction: String,
|
|
190
197
|
?highlight_cursor: bool,
|
|
191
198
|
?max_steps: Float,
|
|
192
199
|
?tool_timeout: Float,
|
|
193
|
-
?use_search: bool
|
|
200
|
+
?use_search: bool,
|
|
201
|
+
?variables: ::Hash[Symbol, Stagehand::Models::SessionExecuteParams::ExecuteOptions::variable]
|
|
194
202
|
) -> void
|
|
195
203
|
|
|
196
204
|
def to_hash: -> {
|
|
@@ -198,8 +206,53 @@ module Stagehand
|
|
|
198
206
|
highlight_cursor: bool,
|
|
199
207
|
max_steps: Float,
|
|
200
208
|
tool_timeout: Float,
|
|
201
|
-
use_search: bool
|
|
209
|
+
use_search: bool,
|
|
210
|
+
variables: ::Hash[Symbol, Stagehand::Models::SessionExecuteParams::ExecuteOptions::variable]
|
|
202
211
|
}
|
|
212
|
+
|
|
213
|
+
type variable =
|
|
214
|
+
String
|
|
215
|
+
| Float
|
|
216
|
+
| bool
|
|
217
|
+
| Stagehand::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3
|
|
218
|
+
|
|
219
|
+
module Variable
|
|
220
|
+
extend Stagehand::Internal::Type::Union
|
|
221
|
+
|
|
222
|
+
type union_member3 =
|
|
223
|
+
{
|
|
224
|
+
value: Stagehand::Models::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3::value,
|
|
225
|
+
description: String
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
class UnionMember3 < Stagehand::Internal::Type::BaseModel
|
|
229
|
+
attr_accessor value: Stagehand::Models::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3::value
|
|
230
|
+
|
|
231
|
+
attr_reader description: String?
|
|
232
|
+
|
|
233
|
+
def description=: (String) -> String
|
|
234
|
+
|
|
235
|
+
def initialize: (
|
|
236
|
+
value: Stagehand::Models::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3::value,
|
|
237
|
+
?description: String
|
|
238
|
+
) -> void
|
|
239
|
+
|
|
240
|
+
def to_hash: -> {
|
|
241
|
+
value: Stagehand::Models::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3::value,
|
|
242
|
+
description: String
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
type value = String | Float | bool
|
|
246
|
+
|
|
247
|
+
module Value
|
|
248
|
+
extend Stagehand::Internal::Type::Union
|
|
249
|
+
|
|
250
|
+
def self?.variants: -> ::Array[Stagehand::Models::SessionExecuteParams::ExecuteOptions::Variable::UnionMember3::value]
|
|
251
|
+
end
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
def self?.variants: -> ::Array[Stagehand::Models::SessionExecuteParams::ExecuteOptions::variable]
|
|
255
|
+
end
|
|
203
256
|
end
|
|
204
257
|
|
|
205
258
|
type x_stream_response = :true | :false
|
|
@@ -61,12 +61,17 @@ module Stagehand
|
|
|
61
61
|
|
|
62
62
|
type options =
|
|
63
63
|
{
|
|
64
|
+
ignore_selectors: ::Array[String],
|
|
64
65
|
model: Stagehand::Models::SessionExtractParams::Options::model,
|
|
65
66
|
selector: String,
|
|
66
67
|
timeout: Float
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
class Options < Stagehand::Internal::Type::BaseModel
|
|
71
|
+
attr_reader ignore_selectors: ::Array[String]?
|
|
72
|
+
|
|
73
|
+
def ignore_selectors=: (::Array[String]) -> ::Array[String]
|
|
74
|
+
|
|
70
75
|
attr_reader model: Stagehand::Models::SessionExtractParams::Options::model?
|
|
71
76
|
|
|
72
77
|
def model=: (
|
|
@@ -82,12 +87,14 @@ module Stagehand
|
|
|
82
87
|
def timeout=: (Float) -> Float
|
|
83
88
|
|
|
84
89
|
def initialize: (
|
|
90
|
+
?ignore_selectors: ::Array[String],
|
|
85
91
|
?model: Stagehand::Models::SessionExtractParams::Options::model,
|
|
86
92
|
?selector: String,
|
|
87
93
|
?timeout: Float
|
|
88
94
|
) -> void
|
|
89
95
|
|
|
90
96
|
def to_hash: -> {
|
|
97
|
+
ignore_selectors: ::Array[String],
|
|
91
98
|
model: Stagehand::Models::SessionExtractParams::Options::model,
|
|
92
99
|
selector: String,
|
|
93
100
|
timeout: Float
|
|
@@ -450,12 +450,16 @@ module Stagehand
|
|
|
450
450
|
{
|
|
451
451
|
advanced_stealth: bool,
|
|
452
452
|
block_ads: bool,
|
|
453
|
+
captcha_image_selector: String,
|
|
454
|
+
captcha_input_selector: String,
|
|
453
455
|
context: Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Context,
|
|
454
456
|
extension_id: String,
|
|
455
457
|
fingerprint: Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint,
|
|
456
458
|
log_session: bool,
|
|
459
|
+
os: Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::os,
|
|
457
460
|
record_session: bool,
|
|
458
461
|
solve_captchas: bool,
|
|
462
|
+
verified: bool,
|
|
459
463
|
viewport: Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Viewport
|
|
460
464
|
}
|
|
461
465
|
|
|
@@ -468,6 +472,14 @@ module Stagehand
|
|
|
468
472
|
|
|
469
473
|
def block_ads=: (bool) -> bool
|
|
470
474
|
|
|
475
|
+
attr_reader captcha_image_selector: String?
|
|
476
|
+
|
|
477
|
+
def captcha_image_selector=: (String) -> String
|
|
478
|
+
|
|
479
|
+
attr_reader captcha_input_selector: String?
|
|
480
|
+
|
|
481
|
+
def captcha_input_selector=: (String) -> String
|
|
482
|
+
|
|
471
483
|
attr_reader context: Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Context?
|
|
472
484
|
|
|
473
485
|
def context=: (
|
|
@@ -488,6 +500,12 @@ module Stagehand
|
|
|
488
500
|
|
|
489
501
|
def log_session=: (bool) -> bool
|
|
490
502
|
|
|
503
|
+
attr_reader os: Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::os?
|
|
504
|
+
|
|
505
|
+
def os=: (
|
|
506
|
+
Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::os
|
|
507
|
+
) -> Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::os
|
|
508
|
+
|
|
491
509
|
attr_reader record_session: bool?
|
|
492
510
|
|
|
493
511
|
def record_session=: (bool) -> bool
|
|
@@ -496,6 +514,10 @@ module Stagehand
|
|
|
496
514
|
|
|
497
515
|
def solve_captchas=: (bool) -> bool
|
|
498
516
|
|
|
517
|
+
attr_reader verified: bool?
|
|
518
|
+
|
|
519
|
+
def verified=: (bool) -> bool
|
|
520
|
+
|
|
499
521
|
attr_reader viewport: Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Viewport?
|
|
500
522
|
|
|
501
523
|
def viewport=: (
|
|
@@ -505,24 +527,32 @@ module Stagehand
|
|
|
505
527
|
def initialize: (
|
|
506
528
|
?advanced_stealth: bool,
|
|
507
529
|
?block_ads: bool,
|
|
530
|
+
?captcha_image_selector: String,
|
|
531
|
+
?captcha_input_selector: String,
|
|
508
532
|
?context: Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Context,
|
|
509
533
|
?extension_id: String,
|
|
510
534
|
?fingerprint: Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint,
|
|
511
535
|
?log_session: bool,
|
|
536
|
+
?os: Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::os,
|
|
512
537
|
?record_session: bool,
|
|
513
538
|
?solve_captchas: bool,
|
|
539
|
+
?verified: bool,
|
|
514
540
|
?viewport: Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Viewport
|
|
515
541
|
) -> void
|
|
516
542
|
|
|
517
543
|
def to_hash: -> {
|
|
518
544
|
advanced_stealth: bool,
|
|
519
545
|
block_ads: bool,
|
|
546
|
+
captcha_image_selector: String,
|
|
547
|
+
captcha_input_selector: String,
|
|
520
548
|
context: Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Context,
|
|
521
549
|
extension_id: String,
|
|
522
550
|
fingerprint: Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Fingerprint,
|
|
523
551
|
log_session: bool,
|
|
552
|
+
os: Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::os,
|
|
524
553
|
record_session: bool,
|
|
525
554
|
solve_captchas: bool,
|
|
555
|
+
verified: bool,
|
|
526
556
|
viewport: Stagehand::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::Viewport
|
|
527
557
|
}
|
|
528
558
|
|
|
@@ -693,6 +723,20 @@ module Stagehand
|
|
|
693
723
|
end
|
|
694
724
|
end
|
|
695
725
|
|
|
726
|
+
type os = :windows | :mac | :linux | :mobile | :tablet
|
|
727
|
+
|
|
728
|
+
module Os
|
|
729
|
+
extend Stagehand::Internal::Type::Enum
|
|
730
|
+
|
|
731
|
+
WINDOWS: :windows
|
|
732
|
+
MAC: :mac
|
|
733
|
+
LINUX: :linux
|
|
734
|
+
MOBILE: :mobile
|
|
735
|
+
TABLET: :tablet
|
|
736
|
+
|
|
737
|
+
def self?.values: -> ::Array[Stagehand::Models::SessionStartParams::BrowserbaseSessionCreateParams::BrowserSettings::os]
|
|
738
|
+
end
|
|
739
|
+
|
|
696
740
|
type viewport = { height: Float, width: Float }
|
|
697
741
|
|
|
698
742
|
class Viewport < Stagehand::Internal::Type::BaseModel
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: stagehand
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.20.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Stagehand
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-05-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cgi
|