stagehand 0.0.3 → 3.5.2
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 +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +185 -0
- data/README.md +394 -31
- data/SECURITY.md +23 -0
- data/lib/stagehand/client.rb +126 -0
- data/lib/stagehand/errors.rb +228 -0
- data/lib/stagehand/file_part.rb +58 -0
- data/lib/stagehand/internal/stream.rb +56 -0
- data/lib/stagehand/internal/transport/base_client.rb +575 -0
- data/lib/stagehand/internal/transport/pooled_net_requester.rb +210 -0
- data/lib/stagehand/internal/type/array_of.rb +168 -0
- data/lib/stagehand/internal/type/base_model.rb +531 -0
- data/lib/stagehand/internal/type/base_page.rb +55 -0
- data/lib/stagehand/internal/type/base_stream.rb +83 -0
- data/lib/stagehand/internal/type/boolean.rb +77 -0
- data/lib/stagehand/internal/type/converter.rb +327 -0
- data/lib/stagehand/internal/type/enum.rb +131 -0
- data/lib/stagehand/internal/type/file_input.rb +111 -0
- data/lib/stagehand/internal/type/hash_of.rb +188 -0
- data/lib/stagehand/internal/type/request_parameters.rb +42 -0
- data/lib/stagehand/internal/type/union.rb +237 -0
- data/lib/stagehand/internal/type/unknown.rb +81 -0
- data/lib/stagehand/internal/util.rb +920 -0
- data/lib/stagehand/internal.rb +20 -0
- data/lib/stagehand/local.rb +439 -0
- data/lib/stagehand/models/action.rb +50 -0
- data/lib/stagehand/models/model_config.rb +55 -0
- data/lib/stagehand/models/session_act_params.rb +112 -0
- data/lib/stagehand/models/session_act_response.rb +127 -0
- data/lib/stagehand/models/session_end_params.rb +33 -0
- data/lib/stagehand/models/session_end_response.rb +17 -0
- data/lib/stagehand/models/session_execute_params.rb +212 -0
- data/lib/stagehand/models/session_execute_response.rb +212 -0
- data/lib/stagehand/models/session_extract_params.rb +107 -0
- data/lib/stagehand/models/session_extract_response.rb +46 -0
- data/lib/stagehand/models/session_navigate_params.rb +107 -0
- data/lib/stagehand/models/session_navigate_response.rb +44 -0
- data/lib/stagehand/models/session_observe_params.rb +99 -0
- data/lib/stagehand/models/session_observe_response.rb +91 -0
- data/lib/stagehand/models/session_replay_params.rb +33 -0
- data/lib/stagehand/models/session_replay_response.rb +100 -0
- data/lib/stagehand/models/session_start_params.rb +762 -0
- data/lib/stagehand/models/session_start_response.rb +55 -0
- data/lib/stagehand/models/stream_event.rb +120 -0
- data/lib/stagehand/models.rb +63 -0
- data/lib/stagehand/request_options.rb +77 -0
- data/lib/stagehand/resources/sessions.rb +488 -0
- data/lib/stagehand/version.rb +3 -1
- data/lib/stagehand.rb +74 -21
- data/manifest.yaml +17 -0
- data/rbi/stagehand/client.rbi +89 -0
- data/rbi/stagehand/errors.rbi +205 -0
- data/rbi/stagehand/file_part.rbi +37 -0
- data/rbi/stagehand/internal/stream.rbi +20 -0
- data/rbi/stagehand/internal/transport/base_client.rbi +314 -0
- data/rbi/stagehand/internal/transport/pooled_net_requester.rbi +83 -0
- data/rbi/stagehand/internal/type/array_of.rbi +104 -0
- data/rbi/stagehand/internal/type/base_model.rbi +308 -0
- data/rbi/stagehand/internal/type/base_page.rbi +42 -0
- data/rbi/stagehand/internal/type/base_stream.rbi +75 -0
- data/rbi/stagehand/internal/type/boolean.rbi +58 -0
- data/rbi/stagehand/internal/type/converter.rbi +216 -0
- data/rbi/stagehand/internal/type/enum.rbi +82 -0
- data/rbi/stagehand/internal/type/file_input.rbi +59 -0
- data/rbi/stagehand/internal/type/hash_of.rbi +104 -0
- data/rbi/stagehand/internal/type/request_parameters.rbi +29 -0
- data/rbi/stagehand/internal/type/union.rbi +128 -0
- data/rbi/stagehand/internal/type/unknown.rbi +58 -0
- data/rbi/stagehand/internal/util.rbi +487 -0
- data/rbi/stagehand/internal.rbi +18 -0
- data/rbi/stagehand/models/action.rbi +77 -0
- data/rbi/stagehand/models/model_config.rbi +94 -0
- data/rbi/stagehand/models/session_act_params.rbi +204 -0
- data/rbi/stagehand/models/session_act_response.rbi +250 -0
- data/rbi/stagehand/models/session_end_params.rbi +87 -0
- data/rbi/stagehand/models/session_end_response.rbi +30 -0
- data/rbi/stagehand/models/session_execute_params.rbi +440 -0
- data/rbi/stagehand/models/session_execute_response.rbi +414 -0
- data/rbi/stagehand/models/session_extract_params.rbi +209 -0
- data/rbi/stagehand/models/session_extract_response.rbi +91 -0
- data/rbi/stagehand/models/session_navigate_params.rbi +240 -0
- data/rbi/stagehand/models/session_navigate_response.rbi +91 -0
- data/rbi/stagehand/models/session_observe_params.rbi +198 -0
- data/rbi/stagehand/models/session_observe_response.rbi +184 -0
- data/rbi/stagehand/models/session_replay_params.rbi +89 -0
- data/rbi/stagehand/models/session_replay_response.rbi +286 -0
- data/rbi/stagehand/models/session_start_params.rbi +1703 -0
- data/rbi/stagehand/models/session_start_response.rbi +102 -0
- data/rbi/stagehand/models/stream_event.rbi +237 -0
- data/rbi/stagehand/models.rbi +25 -0
- data/rbi/stagehand/request_options.rbi +59 -0
- data/rbi/stagehand/resources/sessions.rbi +421 -0
- data/rbi/stagehand/version.rbi +5 -0
- data/sig/stagehand/client.rbs +41 -0
- data/sig/stagehand/errors.rbs +117 -0
- data/sig/stagehand/file_part.rbs +21 -0
- data/sig/stagehand/internal/stream.rbs +9 -0
- data/sig/stagehand/internal/transport/base_client.rbs +133 -0
- data/sig/stagehand/internal/transport/pooled_net_requester.rbs +48 -0
- data/sig/stagehand/internal/type/array_of.rbs +48 -0
- data/sig/stagehand/internal/type/base_model.rbs +102 -0
- data/sig/stagehand/internal/type/base_page.rbs +24 -0
- data/sig/stagehand/internal/type/base_stream.rbs +38 -0
- data/sig/stagehand/internal/type/boolean.rbs +26 -0
- data/sig/stagehand/internal/type/converter.rbs +79 -0
- data/sig/stagehand/internal/type/enum.rbs +32 -0
- data/sig/stagehand/internal/type/file_input.rbs +25 -0
- data/sig/stagehand/internal/type/hash_of.rbs +48 -0
- data/sig/stagehand/internal/type/request_parameters.rbs +19 -0
- data/sig/stagehand/internal/type/union.rbs +52 -0
- data/sig/stagehand/internal/type/unknown.rbs +26 -0
- data/sig/stagehand/internal/util.rbs +185 -0
- data/sig/stagehand/internal.rbs +9 -0
- data/sig/stagehand/models/action.rbs +46 -0
- data/sig/stagehand/models/model_config.rbs +56 -0
- data/sig/stagehand/models/session_act_params.rbs +111 -0
- data/sig/stagehand/models/session_act_response.rbs +121 -0
- data/sig/stagehand/models/session_end_params.rbs +41 -0
- data/sig/stagehand/models/session_end_response.rbs +13 -0
- data/sig/stagehand/models/session_execute_params.rbs +193 -0
- data/sig/stagehand/models/session_execute_response.rbs +215 -0
- data/sig/stagehand/models/session_extract_params.rbs +112 -0
- data/sig/stagehand/models/session_extract_response.rbs +36 -0
- data/sig/stagehand/models/session_navigate_params.rbs +114 -0
- data/sig/stagehand/models/session_navigate_response.rbs +36 -0
- data/sig/stagehand/models/session_observe_params.rbs +105 -0
- data/sig/stagehand/models/session_observe_response.rbs +89 -0
- data/sig/stagehand/models/session_replay_params.rbs +41 -0
- data/sig/stagehand/models/session_replay_response.rbs +137 -0
- data/sig/stagehand/models/session_start_params.rbs +866 -0
- data/sig/stagehand/models/session_start_response.rbs +44 -0
- data/sig/stagehand/models/stream_event.rbs +109 -0
- data/sig/stagehand/models.rbs +23 -0
- data/sig/stagehand/request_options.rbs +34 -0
- data/sig/stagehand/resources/sessions.rbs +121 -0
- data/sig/stagehand/version.rbs +3 -0
- metadata +173 -42
- data/.gitignore +0 -16
- data/Gemfile +0 -4
- data/Rakefile +0 -10
- data/lib/stagehand/railtie.rb +0 -14
- data/spec/spec_helper.rb +0 -7
- data/spec/stagehand_spec.rb +0 -15
- data/stagehand.gemspec +0 -24
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
class SessionActParams < Stagehand::Internal::Type::BaseModel
|
|
6
|
+
extend Stagehand::Internal::Type::RequestParameters::Converter
|
|
7
|
+
include Stagehand::Internal::Type::RequestParameters
|
|
8
|
+
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(Stagehand::SessionActParams, Stagehand::Internal::AnyHash)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Natural language instruction or Action object
|
|
15
|
+
sig { returns(T.any(String, Stagehand::Action)) }
|
|
16
|
+
attr_accessor :input
|
|
17
|
+
|
|
18
|
+
# Target frame ID for the action
|
|
19
|
+
sig { returns(T.nilable(String)) }
|
|
20
|
+
attr_accessor :frame_id
|
|
21
|
+
|
|
22
|
+
sig { returns(T.nilable(Stagehand::SessionActParams::Options)) }
|
|
23
|
+
attr_reader :options
|
|
24
|
+
|
|
25
|
+
sig { params(options: Stagehand::SessionActParams::Options::OrHash).void }
|
|
26
|
+
attr_writer :options
|
|
27
|
+
|
|
28
|
+
# Whether to stream the response via SSE
|
|
29
|
+
sig do
|
|
30
|
+
returns(
|
|
31
|
+
T.nilable(Stagehand::SessionActParams::XStreamResponse::OrSymbol)
|
|
32
|
+
)
|
|
33
|
+
end
|
|
34
|
+
attr_reader :x_stream_response
|
|
35
|
+
|
|
36
|
+
sig do
|
|
37
|
+
params(
|
|
38
|
+
x_stream_response:
|
|
39
|
+
Stagehand::SessionActParams::XStreamResponse::OrSymbol
|
|
40
|
+
).void
|
|
41
|
+
end
|
|
42
|
+
attr_writer :x_stream_response
|
|
43
|
+
|
|
44
|
+
sig do
|
|
45
|
+
params(
|
|
46
|
+
input: T.any(String, Stagehand::Action::OrHash),
|
|
47
|
+
frame_id: T.nilable(String),
|
|
48
|
+
options: Stagehand::SessionActParams::Options::OrHash,
|
|
49
|
+
x_stream_response:
|
|
50
|
+
Stagehand::SessionActParams::XStreamResponse::OrSymbol,
|
|
51
|
+
request_options: Stagehand::RequestOptions::OrHash
|
|
52
|
+
).returns(T.attached_class)
|
|
53
|
+
end
|
|
54
|
+
def self.new(
|
|
55
|
+
# Natural language instruction or Action object
|
|
56
|
+
input:,
|
|
57
|
+
# Target frame ID for the action
|
|
58
|
+
frame_id: nil,
|
|
59
|
+
options: nil,
|
|
60
|
+
# Whether to stream the response via SSE
|
|
61
|
+
x_stream_response: nil,
|
|
62
|
+
request_options: {}
|
|
63
|
+
)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
sig do
|
|
67
|
+
override.returns(
|
|
68
|
+
{
|
|
69
|
+
input: T.any(String, Stagehand::Action),
|
|
70
|
+
frame_id: T.nilable(String),
|
|
71
|
+
options: Stagehand::SessionActParams::Options,
|
|
72
|
+
x_stream_response:
|
|
73
|
+
Stagehand::SessionActParams::XStreamResponse::OrSymbol,
|
|
74
|
+
request_options: Stagehand::RequestOptions
|
|
75
|
+
}
|
|
76
|
+
)
|
|
77
|
+
end
|
|
78
|
+
def to_hash
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Natural language instruction or Action object
|
|
82
|
+
module Input
|
|
83
|
+
extend Stagehand::Internal::Type::Union
|
|
84
|
+
|
|
85
|
+
Variants = T.type_alias { T.any(String, Stagehand::Action) }
|
|
86
|
+
|
|
87
|
+
sig do
|
|
88
|
+
override.returns(
|
|
89
|
+
T::Array[Stagehand::SessionActParams::Input::Variants]
|
|
90
|
+
)
|
|
91
|
+
end
|
|
92
|
+
def self.variants
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
class Options < Stagehand::Internal::Type::BaseModel
|
|
97
|
+
OrHash =
|
|
98
|
+
T.type_alias do
|
|
99
|
+
T.any(
|
|
100
|
+
Stagehand::SessionActParams::Options,
|
|
101
|
+
Stagehand::Internal::AnyHash
|
|
102
|
+
)
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
106
|
+
sig { returns(T.nilable(T.any(Stagehand::ModelConfig, String))) }
|
|
107
|
+
attr_reader :model
|
|
108
|
+
|
|
109
|
+
sig do
|
|
110
|
+
params(model: T.any(Stagehand::ModelConfig::OrHash, String)).void
|
|
111
|
+
end
|
|
112
|
+
attr_writer :model
|
|
113
|
+
|
|
114
|
+
# Timeout in ms for the action
|
|
115
|
+
sig { returns(T.nilable(Float)) }
|
|
116
|
+
attr_reader :timeout
|
|
117
|
+
|
|
118
|
+
sig { params(timeout: Float).void }
|
|
119
|
+
attr_writer :timeout
|
|
120
|
+
|
|
121
|
+
# Variables to substitute in the action instruction
|
|
122
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
123
|
+
attr_reader :variables
|
|
124
|
+
|
|
125
|
+
sig { params(variables: T::Hash[Symbol, String]).void }
|
|
126
|
+
attr_writer :variables
|
|
127
|
+
|
|
128
|
+
sig do
|
|
129
|
+
params(
|
|
130
|
+
model: T.any(Stagehand::ModelConfig::OrHash, String),
|
|
131
|
+
timeout: Float,
|
|
132
|
+
variables: T::Hash[Symbol, String]
|
|
133
|
+
).returns(T.attached_class)
|
|
134
|
+
end
|
|
135
|
+
def self.new(
|
|
136
|
+
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
137
|
+
model: nil,
|
|
138
|
+
# Timeout in ms for the action
|
|
139
|
+
timeout: nil,
|
|
140
|
+
# Variables to substitute in the action instruction
|
|
141
|
+
variables: nil
|
|
142
|
+
)
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
sig do
|
|
146
|
+
override.returns(
|
|
147
|
+
{
|
|
148
|
+
model: T.any(Stagehand::ModelConfig, String),
|
|
149
|
+
timeout: Float,
|
|
150
|
+
variables: T::Hash[Symbol, String]
|
|
151
|
+
}
|
|
152
|
+
)
|
|
153
|
+
end
|
|
154
|
+
def to_hash
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
158
|
+
module Model
|
|
159
|
+
extend Stagehand::Internal::Type::Union
|
|
160
|
+
|
|
161
|
+
Variants = T.type_alias { T.any(Stagehand::ModelConfig, String) }
|
|
162
|
+
|
|
163
|
+
sig do
|
|
164
|
+
override.returns(
|
|
165
|
+
T::Array[Stagehand::SessionActParams::Options::Model::Variants]
|
|
166
|
+
)
|
|
167
|
+
end
|
|
168
|
+
def self.variants
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
# Whether to stream the response via SSE
|
|
174
|
+
module XStreamResponse
|
|
175
|
+
extend Stagehand::Internal::Type::Enum
|
|
176
|
+
|
|
177
|
+
TaggedSymbol =
|
|
178
|
+
T.type_alias do
|
|
179
|
+
T.all(Symbol, Stagehand::SessionActParams::XStreamResponse)
|
|
180
|
+
end
|
|
181
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
182
|
+
|
|
183
|
+
TRUE =
|
|
184
|
+
T.let(
|
|
185
|
+
:true,
|
|
186
|
+
Stagehand::SessionActParams::XStreamResponse::TaggedSymbol
|
|
187
|
+
)
|
|
188
|
+
FALSE =
|
|
189
|
+
T.let(
|
|
190
|
+
:false,
|
|
191
|
+
Stagehand::SessionActParams::XStreamResponse::TaggedSymbol
|
|
192
|
+
)
|
|
193
|
+
|
|
194
|
+
sig do
|
|
195
|
+
override.returns(
|
|
196
|
+
T::Array[Stagehand::SessionActParams::XStreamResponse::TaggedSymbol]
|
|
197
|
+
)
|
|
198
|
+
end
|
|
199
|
+
def self.values
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
end
|
|
204
|
+
end
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
class SessionActResponse < Stagehand::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
Stagehand::Models::SessionActResponse,
|
|
10
|
+
Stagehand::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
sig { returns(Stagehand::Models::SessionActResponse::Data) }
|
|
15
|
+
attr_reader :data
|
|
16
|
+
|
|
17
|
+
sig do
|
|
18
|
+
params(data: Stagehand::Models::SessionActResponse::Data::OrHash).void
|
|
19
|
+
end
|
|
20
|
+
attr_writer :data
|
|
21
|
+
|
|
22
|
+
# Indicates whether the request was successful
|
|
23
|
+
sig { returns(T::Boolean) }
|
|
24
|
+
attr_accessor :success
|
|
25
|
+
|
|
26
|
+
sig do
|
|
27
|
+
params(
|
|
28
|
+
data: Stagehand::Models::SessionActResponse::Data::OrHash,
|
|
29
|
+
success: T::Boolean
|
|
30
|
+
).returns(T.attached_class)
|
|
31
|
+
end
|
|
32
|
+
def self.new(
|
|
33
|
+
data:,
|
|
34
|
+
# Indicates whether the request was successful
|
|
35
|
+
success:
|
|
36
|
+
)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
sig do
|
|
40
|
+
override.returns(
|
|
41
|
+
{
|
|
42
|
+
data: Stagehand::Models::SessionActResponse::Data,
|
|
43
|
+
success: T::Boolean
|
|
44
|
+
}
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
def to_hash
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
class Data < Stagehand::Internal::Type::BaseModel
|
|
51
|
+
OrHash =
|
|
52
|
+
T.type_alias do
|
|
53
|
+
T.any(
|
|
54
|
+
Stagehand::Models::SessionActResponse::Data,
|
|
55
|
+
Stagehand::Internal::AnyHash
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
sig { returns(Stagehand::Models::SessionActResponse::Data::Result) }
|
|
60
|
+
attr_reader :result
|
|
61
|
+
|
|
62
|
+
sig do
|
|
63
|
+
params(
|
|
64
|
+
result: Stagehand::Models::SessionActResponse::Data::Result::OrHash
|
|
65
|
+
).void
|
|
66
|
+
end
|
|
67
|
+
attr_writer :result
|
|
68
|
+
|
|
69
|
+
# Action ID for tracking
|
|
70
|
+
sig { returns(T.nilable(String)) }
|
|
71
|
+
attr_reader :action_id
|
|
72
|
+
|
|
73
|
+
sig { params(action_id: String).void }
|
|
74
|
+
attr_writer :action_id
|
|
75
|
+
|
|
76
|
+
sig do
|
|
77
|
+
params(
|
|
78
|
+
result: Stagehand::Models::SessionActResponse::Data::Result::OrHash,
|
|
79
|
+
action_id: String
|
|
80
|
+
).returns(T.attached_class)
|
|
81
|
+
end
|
|
82
|
+
def self.new(
|
|
83
|
+
result:,
|
|
84
|
+
# Action ID for tracking
|
|
85
|
+
action_id: nil
|
|
86
|
+
)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
sig do
|
|
90
|
+
override.returns(
|
|
91
|
+
{
|
|
92
|
+
result: Stagehand::Models::SessionActResponse::Data::Result,
|
|
93
|
+
action_id: String
|
|
94
|
+
}
|
|
95
|
+
)
|
|
96
|
+
end
|
|
97
|
+
def to_hash
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
class Result < Stagehand::Internal::Type::BaseModel
|
|
101
|
+
OrHash =
|
|
102
|
+
T.type_alias do
|
|
103
|
+
T.any(
|
|
104
|
+
Stagehand::Models::SessionActResponse::Data::Result,
|
|
105
|
+
Stagehand::Internal::AnyHash
|
|
106
|
+
)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Description of the action that was performed
|
|
110
|
+
sig { returns(String) }
|
|
111
|
+
attr_accessor :action_description
|
|
112
|
+
|
|
113
|
+
# List of actions that were executed
|
|
114
|
+
sig do
|
|
115
|
+
returns(
|
|
116
|
+
T::Array[
|
|
117
|
+
Stagehand::Models::SessionActResponse::Data::Result::Action
|
|
118
|
+
]
|
|
119
|
+
)
|
|
120
|
+
end
|
|
121
|
+
attr_accessor :actions
|
|
122
|
+
|
|
123
|
+
# Human-readable result message
|
|
124
|
+
sig { returns(String) }
|
|
125
|
+
attr_accessor :message
|
|
126
|
+
|
|
127
|
+
# Whether the action completed successfully
|
|
128
|
+
sig { returns(T::Boolean) }
|
|
129
|
+
attr_accessor :success
|
|
130
|
+
|
|
131
|
+
sig do
|
|
132
|
+
params(
|
|
133
|
+
action_description: String,
|
|
134
|
+
actions:
|
|
135
|
+
T::Array[
|
|
136
|
+
Stagehand::Models::SessionActResponse::Data::Result::Action::OrHash
|
|
137
|
+
],
|
|
138
|
+
message: String,
|
|
139
|
+
success: T::Boolean
|
|
140
|
+
).returns(T.attached_class)
|
|
141
|
+
end
|
|
142
|
+
def self.new(
|
|
143
|
+
# Description of the action that was performed
|
|
144
|
+
action_description:,
|
|
145
|
+
# List of actions that were executed
|
|
146
|
+
actions:,
|
|
147
|
+
# Human-readable result message
|
|
148
|
+
message:,
|
|
149
|
+
# Whether the action completed successfully
|
|
150
|
+
success:
|
|
151
|
+
)
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
sig do
|
|
155
|
+
override.returns(
|
|
156
|
+
{
|
|
157
|
+
action_description: String,
|
|
158
|
+
actions:
|
|
159
|
+
T::Array[
|
|
160
|
+
Stagehand::Models::SessionActResponse::Data::Result::Action
|
|
161
|
+
],
|
|
162
|
+
message: String,
|
|
163
|
+
success: T::Boolean
|
|
164
|
+
}
|
|
165
|
+
)
|
|
166
|
+
end
|
|
167
|
+
def to_hash
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
class Action < Stagehand::Internal::Type::BaseModel
|
|
171
|
+
OrHash =
|
|
172
|
+
T.type_alias do
|
|
173
|
+
T.any(
|
|
174
|
+
Stagehand::Models::SessionActResponse::Data::Result::Action,
|
|
175
|
+
Stagehand::Internal::AnyHash
|
|
176
|
+
)
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
# Human-readable description of the action
|
|
180
|
+
sig { returns(String) }
|
|
181
|
+
attr_accessor :description
|
|
182
|
+
|
|
183
|
+
# CSS selector or XPath for the element
|
|
184
|
+
sig { returns(String) }
|
|
185
|
+
attr_accessor :selector
|
|
186
|
+
|
|
187
|
+
# Arguments to pass to the method
|
|
188
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
189
|
+
attr_reader :arguments
|
|
190
|
+
|
|
191
|
+
sig { params(arguments: T::Array[String]).void }
|
|
192
|
+
attr_writer :arguments
|
|
193
|
+
|
|
194
|
+
# Backend node ID for the element
|
|
195
|
+
sig { returns(T.nilable(Float)) }
|
|
196
|
+
attr_reader :backend_node_id
|
|
197
|
+
|
|
198
|
+
sig { params(backend_node_id: Float).void }
|
|
199
|
+
attr_writer :backend_node_id
|
|
200
|
+
|
|
201
|
+
# The method to execute (click, fill, etc.)
|
|
202
|
+
sig { returns(T.nilable(String)) }
|
|
203
|
+
attr_reader :method_
|
|
204
|
+
|
|
205
|
+
sig { params(method_: String).void }
|
|
206
|
+
attr_writer :method_
|
|
207
|
+
|
|
208
|
+
# Action object returned by observe and used by act
|
|
209
|
+
sig do
|
|
210
|
+
params(
|
|
211
|
+
description: String,
|
|
212
|
+
selector: String,
|
|
213
|
+
arguments: T::Array[String],
|
|
214
|
+
backend_node_id: Float,
|
|
215
|
+
method_: String
|
|
216
|
+
).returns(T.attached_class)
|
|
217
|
+
end
|
|
218
|
+
def self.new(
|
|
219
|
+
# Human-readable description of the action
|
|
220
|
+
description:,
|
|
221
|
+
# CSS selector or XPath for the element
|
|
222
|
+
selector:,
|
|
223
|
+
# Arguments to pass to the method
|
|
224
|
+
arguments: nil,
|
|
225
|
+
# Backend node ID for the element
|
|
226
|
+
backend_node_id: nil,
|
|
227
|
+
# The method to execute (click, fill, etc.)
|
|
228
|
+
method_: nil
|
|
229
|
+
)
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
sig do
|
|
233
|
+
override.returns(
|
|
234
|
+
{
|
|
235
|
+
description: String,
|
|
236
|
+
selector: String,
|
|
237
|
+
arguments: T::Array[String],
|
|
238
|
+
backend_node_id: Float,
|
|
239
|
+
method_: String
|
|
240
|
+
}
|
|
241
|
+
)
|
|
242
|
+
end
|
|
243
|
+
def to_hash
|
|
244
|
+
end
|
|
245
|
+
end
|
|
246
|
+
end
|
|
247
|
+
end
|
|
248
|
+
end
|
|
249
|
+
end
|
|
250
|
+
end
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
class SessionEndParams < Stagehand::Internal::Type::BaseModel
|
|
6
|
+
extend Stagehand::Internal::Type::RequestParameters::Converter
|
|
7
|
+
include Stagehand::Internal::Type::RequestParameters
|
|
8
|
+
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(Stagehand::SessionEndParams, Stagehand::Internal::AnyHash)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Whether to stream the response via SSE
|
|
15
|
+
sig do
|
|
16
|
+
returns(
|
|
17
|
+
T.nilable(Stagehand::SessionEndParams::XStreamResponse::OrSymbol)
|
|
18
|
+
)
|
|
19
|
+
end
|
|
20
|
+
attr_reader :x_stream_response
|
|
21
|
+
|
|
22
|
+
sig do
|
|
23
|
+
params(
|
|
24
|
+
x_stream_response:
|
|
25
|
+
Stagehand::SessionEndParams::XStreamResponse::OrSymbol
|
|
26
|
+
).void
|
|
27
|
+
end
|
|
28
|
+
attr_writer :x_stream_response
|
|
29
|
+
|
|
30
|
+
sig do
|
|
31
|
+
params(
|
|
32
|
+
x_stream_response:
|
|
33
|
+
Stagehand::SessionEndParams::XStreamResponse::OrSymbol,
|
|
34
|
+
request_options: Stagehand::RequestOptions::OrHash
|
|
35
|
+
).returns(T.attached_class)
|
|
36
|
+
end
|
|
37
|
+
def self.new(
|
|
38
|
+
# Whether to stream the response via SSE
|
|
39
|
+
x_stream_response: nil,
|
|
40
|
+
request_options: {}
|
|
41
|
+
)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
sig do
|
|
45
|
+
override.returns(
|
|
46
|
+
{
|
|
47
|
+
x_stream_response:
|
|
48
|
+
Stagehand::SessionEndParams::XStreamResponse::OrSymbol,
|
|
49
|
+
request_options: Stagehand::RequestOptions
|
|
50
|
+
}
|
|
51
|
+
)
|
|
52
|
+
end
|
|
53
|
+
def to_hash
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Whether to stream the response via SSE
|
|
57
|
+
module XStreamResponse
|
|
58
|
+
extend Stagehand::Internal::Type::Enum
|
|
59
|
+
|
|
60
|
+
TaggedSymbol =
|
|
61
|
+
T.type_alias do
|
|
62
|
+
T.all(Symbol, Stagehand::SessionEndParams::XStreamResponse)
|
|
63
|
+
end
|
|
64
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
65
|
+
|
|
66
|
+
TRUE =
|
|
67
|
+
T.let(
|
|
68
|
+
:true,
|
|
69
|
+
Stagehand::SessionEndParams::XStreamResponse::TaggedSymbol
|
|
70
|
+
)
|
|
71
|
+
FALSE =
|
|
72
|
+
T.let(
|
|
73
|
+
:false,
|
|
74
|
+
Stagehand::SessionEndParams::XStreamResponse::TaggedSymbol
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
sig do
|
|
78
|
+
override.returns(
|
|
79
|
+
T::Array[Stagehand::SessionEndParams::XStreamResponse::TaggedSymbol]
|
|
80
|
+
)
|
|
81
|
+
end
|
|
82
|
+
def self.values
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
class SessionEndResponse < Stagehand::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
Stagehand::Models::SessionEndResponse,
|
|
10
|
+
Stagehand::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Indicates whether the request was successful
|
|
15
|
+
sig { returns(T::Boolean) }
|
|
16
|
+
attr_accessor :success
|
|
17
|
+
|
|
18
|
+
sig { params(success: T::Boolean).returns(T.attached_class) }
|
|
19
|
+
def self.new(
|
|
20
|
+
# Indicates whether the request was successful
|
|
21
|
+
success:
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
sig { override.returns({ success: T::Boolean }) }
|
|
26
|
+
def to_hash
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|