stagehand 3.7.0 → 3.18.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 +33 -0
- data/README.md +2 -0
- data/lib/stagehand/internal/stream.rb +2 -11
- data/lib/stagehand/internal/util.rb +31 -0
- data/lib/stagehand/local.rb +5 -5
- data/lib/stagehand/models/model_config.rb +9 -1
- data/lib/stagehand/models/session_act_params.rb +63 -5
- data/lib/stagehand/models/session_end_params.rb +9 -1
- data/lib/stagehand/models/session_execute_params.rb +26 -2
- data/lib/stagehand/models/session_extract_params.rb +9 -1
- data/lib/stagehand/models/session_navigate_params.rb +9 -1
- data/lib/stagehand/models/session_observe_params.rb +69 -2
- data/lib/stagehand/models/session_replay_params.rb +9 -1
- data/lib/stagehand/models/session_start_params.rb +7 -1
- data/lib/stagehand/models/stream_event.rb +2 -1
- data/lib/stagehand/version.rb +1 -1
- data/rbi/stagehand/internal/util.rbi +20 -0
- data/rbi/stagehand/models/model_config.rbi +11 -0
- data/rbi/stagehand/models/session_act_params.rbi +144 -6
- data/rbi/stagehand/models/session_end_params.rbi +8 -0
- data/rbi/stagehand/models/session_execute_params.rbi +33 -3
- data/rbi/stagehand/models/session_extract_params.rbi +8 -0
- data/rbi/stagehand/models/session_navigate_params.rbi +8 -0
- data/rbi/stagehand/models/session_observe_params.rbi +156 -3
- data/rbi/stagehand/models/session_replay_params.rbi +8 -0
- data/rbi/stagehand/models/session_start_params.rbi +9 -0
- data/rbi/stagehand/models/stream_event.rbi +2 -1
- data/sig/stagehand/internal/util.rbs +10 -0
- data/sig/stagehand/models/model_config.rbs +7 -0
- data/sig/stagehand/models/session_act_params.rbs +56 -5
- data/sig/stagehand/models/session_end_params.rbs +5 -0
- data/sig/stagehand/models/session_execute_params.rbs +26 -3
- data/sig/stagehand/models/session_extract_params.rbs +5 -0
- data/sig/stagehand/models/session_navigate_params.rbs +5 -0
- data/sig/stagehand/models/session_observe_params.rbs +61 -3
- data/sig/stagehand/models/session_replay_params.rbs +5 -0
- data/sig/stagehand/models/session_start_params.rbs +7 -0
- metadata +2 -2
|
@@ -11,6 +11,10 @@ module Stagehand
|
|
|
11
11
|
T.any(Stagehand::SessionActParams, Stagehand::Internal::AnyHash)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
# Unique session identifier
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_accessor :id
|
|
17
|
+
|
|
14
18
|
# Natural language instruction or Action object
|
|
15
19
|
sig { returns(T.any(String, Stagehand::Action)) }
|
|
16
20
|
attr_accessor :input
|
|
@@ -43,6 +47,7 @@ module Stagehand
|
|
|
43
47
|
|
|
44
48
|
sig do
|
|
45
49
|
params(
|
|
50
|
+
id: String,
|
|
46
51
|
input: T.any(String, Stagehand::Action::OrHash),
|
|
47
52
|
frame_id: T.nilable(String),
|
|
48
53
|
options: Stagehand::SessionActParams::Options::OrHash,
|
|
@@ -52,6 +57,8 @@ module Stagehand
|
|
|
52
57
|
).returns(T.attached_class)
|
|
53
58
|
end
|
|
54
59
|
def self.new(
|
|
60
|
+
# Unique session identifier
|
|
61
|
+
id:,
|
|
55
62
|
# Natural language instruction or Action object
|
|
56
63
|
input:,
|
|
57
64
|
# Target frame ID for the action
|
|
@@ -66,6 +73,7 @@ module Stagehand
|
|
|
66
73
|
sig do
|
|
67
74
|
override.returns(
|
|
68
75
|
{
|
|
76
|
+
id: String,
|
|
69
77
|
input: T.any(String, Stagehand::Action),
|
|
70
78
|
frame_id: T.nilable(String),
|
|
71
79
|
options: Stagehand::SessionActParams::Options,
|
|
@@ -118,18 +126,55 @@ module Stagehand
|
|
|
118
126
|
sig { params(timeout: Float).void }
|
|
119
127
|
attr_writer :timeout
|
|
120
128
|
|
|
121
|
-
# Variables to substitute in the action instruction
|
|
122
|
-
|
|
129
|
+
# Variables to substitute in the action instruction. Accepts flat primitives or {
|
|
130
|
+
# value, description? } objects.
|
|
131
|
+
sig do
|
|
132
|
+
returns(
|
|
133
|
+
T.nilable(
|
|
134
|
+
T::Hash[
|
|
135
|
+
Symbol,
|
|
136
|
+
T.any(
|
|
137
|
+
String,
|
|
138
|
+
Float,
|
|
139
|
+
T::Boolean,
|
|
140
|
+
Stagehand::SessionActParams::Options::Variable::UnionMember3
|
|
141
|
+
)
|
|
142
|
+
]
|
|
143
|
+
)
|
|
144
|
+
)
|
|
145
|
+
end
|
|
123
146
|
attr_reader :variables
|
|
124
147
|
|
|
125
|
-
sig
|
|
148
|
+
sig do
|
|
149
|
+
params(
|
|
150
|
+
variables:
|
|
151
|
+
T::Hash[
|
|
152
|
+
Symbol,
|
|
153
|
+
T.any(
|
|
154
|
+
String,
|
|
155
|
+
Float,
|
|
156
|
+
T::Boolean,
|
|
157
|
+
Stagehand::SessionActParams::Options::Variable::UnionMember3::OrHash
|
|
158
|
+
)
|
|
159
|
+
]
|
|
160
|
+
).void
|
|
161
|
+
end
|
|
126
162
|
attr_writer :variables
|
|
127
163
|
|
|
128
164
|
sig do
|
|
129
165
|
params(
|
|
130
166
|
model: T.any(Stagehand::ModelConfig::OrHash, String),
|
|
131
167
|
timeout: Float,
|
|
132
|
-
variables:
|
|
168
|
+
variables:
|
|
169
|
+
T::Hash[
|
|
170
|
+
Symbol,
|
|
171
|
+
T.any(
|
|
172
|
+
String,
|
|
173
|
+
Float,
|
|
174
|
+
T::Boolean,
|
|
175
|
+
Stagehand::SessionActParams::Options::Variable::UnionMember3::OrHash
|
|
176
|
+
)
|
|
177
|
+
]
|
|
133
178
|
).returns(T.attached_class)
|
|
134
179
|
end
|
|
135
180
|
def self.new(
|
|
@@ -137,7 +182,8 @@ module Stagehand
|
|
|
137
182
|
model: nil,
|
|
138
183
|
# Timeout in ms for the action
|
|
139
184
|
timeout: nil,
|
|
140
|
-
# Variables to substitute in the action instruction
|
|
185
|
+
# Variables to substitute in the action instruction. Accepts flat primitives or {
|
|
186
|
+
# value, description? } objects.
|
|
141
187
|
variables: nil
|
|
142
188
|
)
|
|
143
189
|
end
|
|
@@ -147,7 +193,16 @@ module Stagehand
|
|
|
147
193
|
{
|
|
148
194
|
model: T.any(Stagehand::ModelConfig, String),
|
|
149
195
|
timeout: Float,
|
|
150
|
-
variables:
|
|
196
|
+
variables:
|
|
197
|
+
T::Hash[
|
|
198
|
+
Symbol,
|
|
199
|
+
T.any(
|
|
200
|
+
String,
|
|
201
|
+
Float,
|
|
202
|
+
T::Boolean,
|
|
203
|
+
Stagehand::SessionActParams::Options::Variable::UnionMember3
|
|
204
|
+
)
|
|
205
|
+
]
|
|
151
206
|
}
|
|
152
207
|
)
|
|
153
208
|
end
|
|
@@ -168,6 +223,89 @@ module Stagehand
|
|
|
168
223
|
def self.variants
|
|
169
224
|
end
|
|
170
225
|
end
|
|
226
|
+
|
|
227
|
+
module Variable
|
|
228
|
+
extend Stagehand::Internal::Type::Union
|
|
229
|
+
|
|
230
|
+
Variants =
|
|
231
|
+
T.type_alias do
|
|
232
|
+
T.any(
|
|
233
|
+
String,
|
|
234
|
+
Float,
|
|
235
|
+
T::Boolean,
|
|
236
|
+
Stagehand::SessionActParams::Options::Variable::UnionMember3
|
|
237
|
+
)
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
class UnionMember3 < Stagehand::Internal::Type::BaseModel
|
|
241
|
+
OrHash =
|
|
242
|
+
T.type_alias do
|
|
243
|
+
T.any(
|
|
244
|
+
Stagehand::SessionActParams::Options::Variable::UnionMember3,
|
|
245
|
+
Stagehand::Internal::AnyHash
|
|
246
|
+
)
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
sig do
|
|
250
|
+
returns(
|
|
251
|
+
Stagehand::SessionActParams::Options::Variable::UnionMember3::Value::Variants
|
|
252
|
+
)
|
|
253
|
+
end
|
|
254
|
+
attr_accessor :value
|
|
255
|
+
|
|
256
|
+
sig { returns(T.nilable(String)) }
|
|
257
|
+
attr_reader :description
|
|
258
|
+
|
|
259
|
+
sig { params(description: String).void }
|
|
260
|
+
attr_writer :description
|
|
261
|
+
|
|
262
|
+
sig do
|
|
263
|
+
params(
|
|
264
|
+
value:
|
|
265
|
+
Stagehand::SessionActParams::Options::Variable::UnionMember3::Value::Variants,
|
|
266
|
+
description: String
|
|
267
|
+
).returns(T.attached_class)
|
|
268
|
+
end
|
|
269
|
+
def self.new(value:, description: nil)
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
sig do
|
|
273
|
+
override.returns(
|
|
274
|
+
{
|
|
275
|
+
value:
|
|
276
|
+
Stagehand::SessionActParams::Options::Variable::UnionMember3::Value::Variants,
|
|
277
|
+
description: String
|
|
278
|
+
}
|
|
279
|
+
)
|
|
280
|
+
end
|
|
281
|
+
def to_hash
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
module Value
|
|
285
|
+
extend Stagehand::Internal::Type::Union
|
|
286
|
+
|
|
287
|
+
Variants = T.type_alias { T.any(String, Float, T::Boolean) }
|
|
288
|
+
|
|
289
|
+
sig do
|
|
290
|
+
override.returns(
|
|
291
|
+
T::Array[
|
|
292
|
+
Stagehand::SessionActParams::Options::Variable::UnionMember3::Value::Variants
|
|
293
|
+
]
|
|
294
|
+
)
|
|
295
|
+
end
|
|
296
|
+
def self.variants
|
|
297
|
+
end
|
|
298
|
+
end
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
sig do
|
|
302
|
+
override.returns(
|
|
303
|
+
T::Array[Stagehand::SessionActParams::Options::Variable::Variants]
|
|
304
|
+
)
|
|
305
|
+
end
|
|
306
|
+
def self.variants
|
|
307
|
+
end
|
|
308
|
+
end
|
|
171
309
|
end
|
|
172
310
|
|
|
173
311
|
# Whether to stream the response via SSE
|
|
@@ -11,6 +11,10 @@ module Stagehand
|
|
|
11
11
|
T.any(Stagehand::SessionEndParams, Stagehand::Internal::AnyHash)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
# Unique session identifier
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_accessor :id
|
|
17
|
+
|
|
14
18
|
# Whether to stream the response via SSE
|
|
15
19
|
sig do
|
|
16
20
|
returns(
|
|
@@ -29,12 +33,15 @@ module Stagehand
|
|
|
29
33
|
|
|
30
34
|
sig do
|
|
31
35
|
params(
|
|
36
|
+
id: String,
|
|
32
37
|
x_stream_response:
|
|
33
38
|
Stagehand::SessionEndParams::XStreamResponse::OrSymbol,
|
|
34
39
|
request_options: Stagehand::RequestOptions::OrHash
|
|
35
40
|
).returns(T.attached_class)
|
|
36
41
|
end
|
|
37
42
|
def self.new(
|
|
43
|
+
# Unique session identifier
|
|
44
|
+
id:,
|
|
38
45
|
# Whether to stream the response via SSE
|
|
39
46
|
x_stream_response: nil,
|
|
40
47
|
request_options: {}
|
|
@@ -44,6 +51,7 @@ module Stagehand
|
|
|
44
51
|
sig do
|
|
45
52
|
override.returns(
|
|
46
53
|
{
|
|
54
|
+
id: String,
|
|
47
55
|
x_stream_response:
|
|
48
56
|
Stagehand::SessionEndParams::XStreamResponse::OrSymbol,
|
|
49
57
|
request_options: Stagehand::RequestOptions
|
|
@@ -11,6 +11,10 @@ module Stagehand
|
|
|
11
11
|
T.any(Stagehand::SessionExecuteParams, Stagehand::Internal::AnyHash)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
# Unique session identifier
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_accessor :id
|
|
17
|
+
|
|
14
18
|
sig { returns(Stagehand::SessionExecuteParams::AgentConfig) }
|
|
15
19
|
attr_reader :agent_config
|
|
16
20
|
|
|
@@ -61,6 +65,7 @@ module Stagehand
|
|
|
61
65
|
|
|
62
66
|
sig do
|
|
63
67
|
params(
|
|
68
|
+
id: String,
|
|
64
69
|
agent_config: Stagehand::SessionExecuteParams::AgentConfig::OrHash,
|
|
65
70
|
execute_options:
|
|
66
71
|
Stagehand::SessionExecuteParams::ExecuteOptions::OrHash,
|
|
@@ -72,6 +77,8 @@ module Stagehand
|
|
|
72
77
|
).returns(T.attached_class)
|
|
73
78
|
end
|
|
74
79
|
def self.new(
|
|
80
|
+
# Unique session identifier
|
|
81
|
+
id:,
|
|
75
82
|
agent_config:,
|
|
76
83
|
execute_options:,
|
|
77
84
|
# Target frame ID for the agent
|
|
@@ -87,6 +94,7 @@ module Stagehand
|
|
|
87
94
|
sig do
|
|
88
95
|
override.returns(
|
|
89
96
|
{
|
|
97
|
+
id: String,
|
|
90
98
|
agent_config: Stagehand::SessionExecuteParams::AgentConfig,
|
|
91
99
|
execute_options: Stagehand::SessionExecuteParams::ExecuteOptions,
|
|
92
100
|
frame_id: T.nilable(String),
|
|
@@ -379,11 +387,27 @@ module Stagehand
|
|
|
379
387
|
sig { params(max_steps: Float).void }
|
|
380
388
|
attr_writer :max_steps
|
|
381
389
|
|
|
390
|
+
# Timeout in milliseconds for each agent tool call
|
|
391
|
+
sig { returns(T.nilable(Float)) }
|
|
392
|
+
attr_reader :tool_timeout
|
|
393
|
+
|
|
394
|
+
sig { params(tool_timeout: Float).void }
|
|
395
|
+
attr_writer :tool_timeout
|
|
396
|
+
|
|
397
|
+
# Whether to enable the web search tool powered by Browserbase Search API
|
|
398
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
399
|
+
attr_reader :use_search
|
|
400
|
+
|
|
401
|
+
sig { params(use_search: T::Boolean).void }
|
|
402
|
+
attr_writer :use_search
|
|
403
|
+
|
|
382
404
|
sig do
|
|
383
405
|
params(
|
|
384
406
|
instruction: String,
|
|
385
407
|
highlight_cursor: T::Boolean,
|
|
386
|
-
max_steps: Float
|
|
408
|
+
max_steps: Float,
|
|
409
|
+
tool_timeout: Float,
|
|
410
|
+
use_search: T::Boolean
|
|
387
411
|
).returns(T.attached_class)
|
|
388
412
|
end
|
|
389
413
|
def self.new(
|
|
@@ -392,7 +416,11 @@ module Stagehand
|
|
|
392
416
|
# Whether to visually highlight the cursor during execution
|
|
393
417
|
highlight_cursor: nil,
|
|
394
418
|
# Maximum number of steps the agent can take
|
|
395
|
-
max_steps: nil
|
|
419
|
+
max_steps: nil,
|
|
420
|
+
# Timeout in milliseconds for each agent tool call
|
|
421
|
+
tool_timeout: nil,
|
|
422
|
+
# Whether to enable the web search tool powered by Browserbase Search API
|
|
423
|
+
use_search: nil
|
|
396
424
|
)
|
|
397
425
|
end
|
|
398
426
|
|
|
@@ -401,7 +429,9 @@ module Stagehand
|
|
|
401
429
|
{
|
|
402
430
|
instruction: String,
|
|
403
431
|
highlight_cursor: T::Boolean,
|
|
404
|
-
max_steps: Float
|
|
432
|
+
max_steps: Float,
|
|
433
|
+
tool_timeout: Float,
|
|
434
|
+
use_search: T::Boolean
|
|
405
435
|
}
|
|
406
436
|
)
|
|
407
437
|
end
|
|
@@ -11,6 +11,10 @@ module Stagehand
|
|
|
11
11
|
T.any(Stagehand::SessionExtractParams, Stagehand::Internal::AnyHash)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
# Unique session identifier
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_accessor :id
|
|
17
|
+
|
|
14
18
|
# Target frame ID for the extraction
|
|
15
19
|
sig { returns(T.nilable(String)) }
|
|
16
20
|
attr_accessor :frame_id
|
|
@@ -55,6 +59,7 @@ module Stagehand
|
|
|
55
59
|
|
|
56
60
|
sig do
|
|
57
61
|
params(
|
|
62
|
+
id: String,
|
|
58
63
|
frame_id: T.nilable(String),
|
|
59
64
|
instruction: String,
|
|
60
65
|
options: Stagehand::SessionExtractParams::Options::OrHash,
|
|
@@ -65,6 +70,8 @@ module Stagehand
|
|
|
65
70
|
).returns(T.attached_class)
|
|
66
71
|
end
|
|
67
72
|
def self.new(
|
|
73
|
+
# Unique session identifier
|
|
74
|
+
id:,
|
|
68
75
|
# Target frame ID for the extraction
|
|
69
76
|
frame_id: nil,
|
|
70
77
|
# Natural language instruction for what to extract
|
|
@@ -81,6 +88,7 @@ module Stagehand
|
|
|
81
88
|
sig do
|
|
82
89
|
override.returns(
|
|
83
90
|
{
|
|
91
|
+
id: String,
|
|
84
92
|
frame_id: T.nilable(String),
|
|
85
93
|
instruction: String,
|
|
86
94
|
options: Stagehand::SessionExtractParams::Options,
|
|
@@ -11,6 +11,10 @@ module Stagehand
|
|
|
11
11
|
T.any(Stagehand::SessionNavigateParams, Stagehand::Internal::AnyHash)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
# Unique session identifier
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_accessor :id
|
|
17
|
+
|
|
14
18
|
# URL to navigate to
|
|
15
19
|
sig { returns(String) }
|
|
16
20
|
attr_accessor :url
|
|
@@ -52,6 +56,7 @@ module Stagehand
|
|
|
52
56
|
|
|
53
57
|
sig do
|
|
54
58
|
params(
|
|
59
|
+
id: String,
|
|
55
60
|
url: String,
|
|
56
61
|
frame_id: T.nilable(String),
|
|
57
62
|
options: Stagehand::SessionNavigateParams::Options::OrHash,
|
|
@@ -62,6 +67,8 @@ module Stagehand
|
|
|
62
67
|
).returns(T.attached_class)
|
|
63
68
|
end
|
|
64
69
|
def self.new(
|
|
70
|
+
# Unique session identifier
|
|
71
|
+
id:,
|
|
65
72
|
# URL to navigate to
|
|
66
73
|
url:,
|
|
67
74
|
# Target frame ID for the navigation
|
|
@@ -78,6 +85,7 @@ module Stagehand
|
|
|
78
85
|
sig do
|
|
79
86
|
override.returns(
|
|
80
87
|
{
|
|
88
|
+
id: String,
|
|
81
89
|
url: String,
|
|
82
90
|
frame_id: T.nilable(String),
|
|
83
91
|
options: Stagehand::SessionNavigateParams::Options,
|
|
@@ -11,6 +11,10 @@ module Stagehand
|
|
|
11
11
|
T.any(Stagehand::SessionObserveParams, Stagehand::Internal::AnyHash)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
# Unique session identifier
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_accessor :id
|
|
17
|
+
|
|
14
18
|
# Target frame ID for the observation
|
|
15
19
|
sig { returns(T.nilable(String)) }
|
|
16
20
|
attr_accessor :frame_id
|
|
@@ -48,6 +52,7 @@ module Stagehand
|
|
|
48
52
|
|
|
49
53
|
sig do
|
|
50
54
|
params(
|
|
55
|
+
id: String,
|
|
51
56
|
frame_id: T.nilable(String),
|
|
52
57
|
instruction: String,
|
|
53
58
|
options: Stagehand::SessionObserveParams::Options::OrHash,
|
|
@@ -57,6 +62,8 @@ module Stagehand
|
|
|
57
62
|
).returns(T.attached_class)
|
|
58
63
|
end
|
|
59
64
|
def self.new(
|
|
65
|
+
# Unique session identifier
|
|
66
|
+
id:,
|
|
60
67
|
# Target frame ID for the observation
|
|
61
68
|
frame_id: nil,
|
|
62
69
|
# Natural language instruction for what actions to find
|
|
@@ -71,6 +78,7 @@ module Stagehand
|
|
|
71
78
|
sig do
|
|
72
79
|
override.returns(
|
|
73
80
|
{
|
|
81
|
+
id: String,
|
|
74
82
|
frame_id: T.nilable(String),
|
|
75
83
|
instruction: String,
|
|
76
84
|
options: Stagehand::SessionObserveParams::Options,
|
|
@@ -115,11 +123,57 @@ module Stagehand
|
|
|
115
123
|
sig { params(timeout: Float).void }
|
|
116
124
|
attr_writer :timeout
|
|
117
125
|
|
|
126
|
+
# Variables whose names are exposed to the model so observe() returns
|
|
127
|
+
# %variableName% placeholders in suggested action arguments instead of literal
|
|
128
|
+
# values. Accepts flat primitives or { value, description? } objects.
|
|
129
|
+
sig do
|
|
130
|
+
returns(
|
|
131
|
+
T.nilable(
|
|
132
|
+
T::Hash[
|
|
133
|
+
Symbol,
|
|
134
|
+
T.any(
|
|
135
|
+
String,
|
|
136
|
+
Float,
|
|
137
|
+
T::Boolean,
|
|
138
|
+
Stagehand::SessionObserveParams::Options::Variable::UnionMember3
|
|
139
|
+
)
|
|
140
|
+
]
|
|
141
|
+
)
|
|
142
|
+
)
|
|
143
|
+
end
|
|
144
|
+
attr_reader :variables
|
|
145
|
+
|
|
146
|
+
sig do
|
|
147
|
+
params(
|
|
148
|
+
variables:
|
|
149
|
+
T::Hash[
|
|
150
|
+
Symbol,
|
|
151
|
+
T.any(
|
|
152
|
+
String,
|
|
153
|
+
Float,
|
|
154
|
+
T::Boolean,
|
|
155
|
+
Stagehand::SessionObserveParams::Options::Variable::UnionMember3::OrHash
|
|
156
|
+
)
|
|
157
|
+
]
|
|
158
|
+
).void
|
|
159
|
+
end
|
|
160
|
+
attr_writer :variables
|
|
161
|
+
|
|
118
162
|
sig do
|
|
119
163
|
params(
|
|
120
164
|
model: T.any(Stagehand::ModelConfig::OrHash, String),
|
|
121
165
|
selector: String,
|
|
122
|
-
timeout: Float
|
|
166
|
+
timeout: Float,
|
|
167
|
+
variables:
|
|
168
|
+
T::Hash[
|
|
169
|
+
Symbol,
|
|
170
|
+
T.any(
|
|
171
|
+
String,
|
|
172
|
+
Float,
|
|
173
|
+
T::Boolean,
|
|
174
|
+
Stagehand::SessionObserveParams::Options::Variable::UnionMember3::OrHash
|
|
175
|
+
)
|
|
176
|
+
]
|
|
123
177
|
).returns(T.attached_class)
|
|
124
178
|
end
|
|
125
179
|
def self.new(
|
|
@@ -128,7 +182,11 @@ module Stagehand
|
|
|
128
182
|
# CSS selector to scope observation to a specific element
|
|
129
183
|
selector: nil,
|
|
130
184
|
# Timeout in ms for the observation
|
|
131
|
-
timeout: nil
|
|
185
|
+
timeout: nil,
|
|
186
|
+
# Variables whose names are exposed to the model so observe() returns
|
|
187
|
+
# %variableName% placeholders in suggested action arguments instead of literal
|
|
188
|
+
# values. Accepts flat primitives or { value, description? } objects.
|
|
189
|
+
variables: nil
|
|
132
190
|
)
|
|
133
191
|
end
|
|
134
192
|
|
|
@@ -137,7 +195,17 @@ module Stagehand
|
|
|
137
195
|
{
|
|
138
196
|
model: T.any(Stagehand::ModelConfig, String),
|
|
139
197
|
selector: String,
|
|
140
|
-
timeout: Float
|
|
198
|
+
timeout: Float,
|
|
199
|
+
variables:
|
|
200
|
+
T::Hash[
|
|
201
|
+
Symbol,
|
|
202
|
+
T.any(
|
|
203
|
+
String,
|
|
204
|
+
Float,
|
|
205
|
+
T::Boolean,
|
|
206
|
+
Stagehand::SessionObserveParams::Options::Variable::UnionMember3
|
|
207
|
+
)
|
|
208
|
+
]
|
|
141
209
|
}
|
|
142
210
|
)
|
|
143
211
|
end
|
|
@@ -160,6 +228,91 @@ module Stagehand
|
|
|
160
228
|
def self.variants
|
|
161
229
|
end
|
|
162
230
|
end
|
|
231
|
+
|
|
232
|
+
module Variable
|
|
233
|
+
extend Stagehand::Internal::Type::Union
|
|
234
|
+
|
|
235
|
+
Variants =
|
|
236
|
+
T.type_alias do
|
|
237
|
+
T.any(
|
|
238
|
+
String,
|
|
239
|
+
Float,
|
|
240
|
+
T::Boolean,
|
|
241
|
+
Stagehand::SessionObserveParams::Options::Variable::UnionMember3
|
|
242
|
+
)
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
class UnionMember3 < Stagehand::Internal::Type::BaseModel
|
|
246
|
+
OrHash =
|
|
247
|
+
T.type_alias do
|
|
248
|
+
T.any(
|
|
249
|
+
Stagehand::SessionObserveParams::Options::Variable::UnionMember3,
|
|
250
|
+
Stagehand::Internal::AnyHash
|
|
251
|
+
)
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
sig do
|
|
255
|
+
returns(
|
|
256
|
+
Stagehand::SessionObserveParams::Options::Variable::UnionMember3::Value::Variants
|
|
257
|
+
)
|
|
258
|
+
end
|
|
259
|
+
attr_accessor :value
|
|
260
|
+
|
|
261
|
+
sig { returns(T.nilable(String)) }
|
|
262
|
+
attr_reader :description
|
|
263
|
+
|
|
264
|
+
sig { params(description: String).void }
|
|
265
|
+
attr_writer :description
|
|
266
|
+
|
|
267
|
+
sig do
|
|
268
|
+
params(
|
|
269
|
+
value:
|
|
270
|
+
Stagehand::SessionObserveParams::Options::Variable::UnionMember3::Value::Variants,
|
|
271
|
+
description: String
|
|
272
|
+
).returns(T.attached_class)
|
|
273
|
+
end
|
|
274
|
+
def self.new(value:, description: nil)
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
sig do
|
|
278
|
+
override.returns(
|
|
279
|
+
{
|
|
280
|
+
value:
|
|
281
|
+
Stagehand::SessionObserveParams::Options::Variable::UnionMember3::Value::Variants,
|
|
282
|
+
description: String
|
|
283
|
+
}
|
|
284
|
+
)
|
|
285
|
+
end
|
|
286
|
+
def to_hash
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
module Value
|
|
290
|
+
extend Stagehand::Internal::Type::Union
|
|
291
|
+
|
|
292
|
+
Variants = T.type_alias { T.any(String, Float, T::Boolean) }
|
|
293
|
+
|
|
294
|
+
sig do
|
|
295
|
+
override.returns(
|
|
296
|
+
T::Array[
|
|
297
|
+
Stagehand::SessionObserveParams::Options::Variable::UnionMember3::Value::Variants
|
|
298
|
+
]
|
|
299
|
+
)
|
|
300
|
+
end
|
|
301
|
+
def self.variants
|
|
302
|
+
end
|
|
303
|
+
end
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
sig do
|
|
307
|
+
override.returns(
|
|
308
|
+
T::Array[
|
|
309
|
+
Stagehand::SessionObserveParams::Options::Variable::Variants
|
|
310
|
+
]
|
|
311
|
+
)
|
|
312
|
+
end
|
|
313
|
+
def self.variants
|
|
314
|
+
end
|
|
315
|
+
end
|
|
163
316
|
end
|
|
164
317
|
|
|
165
318
|
# Whether to stream the response via SSE
|
|
@@ -11,6 +11,10 @@ module Stagehand
|
|
|
11
11
|
T.any(Stagehand::SessionReplayParams, Stagehand::Internal::AnyHash)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
# Unique session identifier
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_accessor :id
|
|
17
|
+
|
|
14
18
|
# Whether to stream the response via SSE
|
|
15
19
|
sig do
|
|
16
20
|
returns(
|
|
@@ -29,12 +33,15 @@ module Stagehand
|
|
|
29
33
|
|
|
30
34
|
sig do
|
|
31
35
|
params(
|
|
36
|
+
id: String,
|
|
32
37
|
x_stream_response:
|
|
33
38
|
Stagehand::SessionReplayParams::XStreamResponse::OrSymbol,
|
|
34
39
|
request_options: Stagehand::RequestOptions::OrHash
|
|
35
40
|
).returns(T.attached_class)
|
|
36
41
|
end
|
|
37
42
|
def self.new(
|
|
43
|
+
# Unique session identifier
|
|
44
|
+
id:,
|
|
38
45
|
# Whether to stream the response via SSE
|
|
39
46
|
x_stream_response: nil,
|
|
40
47
|
request_options: {}
|
|
@@ -44,6 +51,7 @@ module Stagehand
|
|
|
44
51
|
sig do
|
|
45
52
|
override.returns(
|
|
46
53
|
{
|
|
54
|
+
id: String,
|
|
47
55
|
x_stream_response:
|
|
48
56
|
Stagehand::SessionReplayParams::XStreamResponse::OrSymbol,
|
|
49
57
|
request_options: Stagehand::RequestOptions
|
|
@@ -281,6 +281,12 @@ module Stagehand
|
|
|
281
281
|
sig { params(args: T::Array[String]).void }
|
|
282
282
|
attr_writer :args
|
|
283
283
|
|
|
284
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
285
|
+
attr_reader :cdp_headers
|
|
286
|
+
|
|
287
|
+
sig { params(cdp_headers: T::Hash[Symbol, String]).void }
|
|
288
|
+
attr_writer :cdp_headers
|
|
289
|
+
|
|
284
290
|
sig { returns(T.nilable(String)) }
|
|
285
291
|
attr_reader :cdp_url
|
|
286
292
|
|
|
@@ -420,6 +426,7 @@ module Stagehand
|
|
|
420
426
|
params(
|
|
421
427
|
accept_downloads: T::Boolean,
|
|
422
428
|
args: T::Array[String],
|
|
429
|
+
cdp_headers: T::Hash[Symbol, String],
|
|
423
430
|
cdp_url: String,
|
|
424
431
|
chromium_sandbox: T::Boolean,
|
|
425
432
|
connect_timeout_ms: Float,
|
|
@@ -445,6 +452,7 @@ module Stagehand
|
|
|
445
452
|
def self.new(
|
|
446
453
|
accept_downloads: nil,
|
|
447
454
|
args: nil,
|
|
455
|
+
cdp_headers: nil,
|
|
448
456
|
cdp_url: nil,
|
|
449
457
|
chromium_sandbox: nil,
|
|
450
458
|
connect_timeout_ms: nil,
|
|
@@ -470,6 +478,7 @@ module Stagehand
|
|
|
470
478
|
{
|
|
471
479
|
accept_downloads: T::Boolean,
|
|
472
480
|
args: T::Array[String],
|
|
481
|
+
cdp_headers: T::Hash[Symbol, String],
|
|
473
482
|
cdp_url: String,
|
|
474
483
|
chromium_sandbox: T::Boolean,
|
|
475
484
|
connect_timeout_ms: Float,
|
|
@@ -20,7 +20,8 @@ module Stagehand
|
|
|
20
20
|
attr_accessor :type
|
|
21
21
|
|
|
22
22
|
# Server-Sent Event emitted during streaming responses. Events are sent as
|
|
23
|
-
# `
|
|
23
|
+
# `event: <status>\ndata: <JSON>\n\n`, where the JSON payload has the shape
|
|
24
|
+
# `{ data, type, id }`.
|
|
24
25
|
sig do
|
|
25
26
|
params(
|
|
26
27
|
id: String,
|