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.
Files changed (145) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +185 -0
  4. data/README.md +394 -31
  5. data/SECURITY.md +23 -0
  6. data/lib/stagehand/client.rb +126 -0
  7. data/lib/stagehand/errors.rb +228 -0
  8. data/lib/stagehand/file_part.rb +58 -0
  9. data/lib/stagehand/internal/stream.rb +56 -0
  10. data/lib/stagehand/internal/transport/base_client.rb +575 -0
  11. data/lib/stagehand/internal/transport/pooled_net_requester.rb +210 -0
  12. data/lib/stagehand/internal/type/array_of.rb +168 -0
  13. data/lib/stagehand/internal/type/base_model.rb +531 -0
  14. data/lib/stagehand/internal/type/base_page.rb +55 -0
  15. data/lib/stagehand/internal/type/base_stream.rb +83 -0
  16. data/lib/stagehand/internal/type/boolean.rb +77 -0
  17. data/lib/stagehand/internal/type/converter.rb +327 -0
  18. data/lib/stagehand/internal/type/enum.rb +131 -0
  19. data/lib/stagehand/internal/type/file_input.rb +111 -0
  20. data/lib/stagehand/internal/type/hash_of.rb +188 -0
  21. data/lib/stagehand/internal/type/request_parameters.rb +42 -0
  22. data/lib/stagehand/internal/type/union.rb +237 -0
  23. data/lib/stagehand/internal/type/unknown.rb +81 -0
  24. data/lib/stagehand/internal/util.rb +920 -0
  25. data/lib/stagehand/internal.rb +20 -0
  26. data/lib/stagehand/local.rb +439 -0
  27. data/lib/stagehand/models/action.rb +50 -0
  28. data/lib/stagehand/models/model_config.rb +55 -0
  29. data/lib/stagehand/models/session_act_params.rb +112 -0
  30. data/lib/stagehand/models/session_act_response.rb +127 -0
  31. data/lib/stagehand/models/session_end_params.rb +33 -0
  32. data/lib/stagehand/models/session_end_response.rb +17 -0
  33. data/lib/stagehand/models/session_execute_params.rb +212 -0
  34. data/lib/stagehand/models/session_execute_response.rb +212 -0
  35. data/lib/stagehand/models/session_extract_params.rb +107 -0
  36. data/lib/stagehand/models/session_extract_response.rb +46 -0
  37. data/lib/stagehand/models/session_navigate_params.rb +107 -0
  38. data/lib/stagehand/models/session_navigate_response.rb +44 -0
  39. data/lib/stagehand/models/session_observe_params.rb +99 -0
  40. data/lib/stagehand/models/session_observe_response.rb +91 -0
  41. data/lib/stagehand/models/session_replay_params.rb +33 -0
  42. data/lib/stagehand/models/session_replay_response.rb +100 -0
  43. data/lib/stagehand/models/session_start_params.rb +762 -0
  44. data/lib/stagehand/models/session_start_response.rb +55 -0
  45. data/lib/stagehand/models/stream_event.rb +120 -0
  46. data/lib/stagehand/models.rb +63 -0
  47. data/lib/stagehand/request_options.rb +77 -0
  48. data/lib/stagehand/resources/sessions.rb +488 -0
  49. data/lib/stagehand/version.rb +3 -1
  50. data/lib/stagehand.rb +74 -21
  51. data/manifest.yaml +17 -0
  52. data/rbi/stagehand/client.rbi +89 -0
  53. data/rbi/stagehand/errors.rbi +205 -0
  54. data/rbi/stagehand/file_part.rbi +37 -0
  55. data/rbi/stagehand/internal/stream.rbi +20 -0
  56. data/rbi/stagehand/internal/transport/base_client.rbi +314 -0
  57. data/rbi/stagehand/internal/transport/pooled_net_requester.rbi +83 -0
  58. data/rbi/stagehand/internal/type/array_of.rbi +104 -0
  59. data/rbi/stagehand/internal/type/base_model.rbi +308 -0
  60. data/rbi/stagehand/internal/type/base_page.rbi +42 -0
  61. data/rbi/stagehand/internal/type/base_stream.rbi +75 -0
  62. data/rbi/stagehand/internal/type/boolean.rbi +58 -0
  63. data/rbi/stagehand/internal/type/converter.rbi +216 -0
  64. data/rbi/stagehand/internal/type/enum.rbi +82 -0
  65. data/rbi/stagehand/internal/type/file_input.rbi +59 -0
  66. data/rbi/stagehand/internal/type/hash_of.rbi +104 -0
  67. data/rbi/stagehand/internal/type/request_parameters.rbi +29 -0
  68. data/rbi/stagehand/internal/type/union.rbi +128 -0
  69. data/rbi/stagehand/internal/type/unknown.rbi +58 -0
  70. data/rbi/stagehand/internal/util.rbi +487 -0
  71. data/rbi/stagehand/internal.rbi +18 -0
  72. data/rbi/stagehand/models/action.rbi +77 -0
  73. data/rbi/stagehand/models/model_config.rbi +94 -0
  74. data/rbi/stagehand/models/session_act_params.rbi +204 -0
  75. data/rbi/stagehand/models/session_act_response.rbi +250 -0
  76. data/rbi/stagehand/models/session_end_params.rbi +87 -0
  77. data/rbi/stagehand/models/session_end_response.rbi +30 -0
  78. data/rbi/stagehand/models/session_execute_params.rbi +440 -0
  79. data/rbi/stagehand/models/session_execute_response.rbi +414 -0
  80. data/rbi/stagehand/models/session_extract_params.rbi +209 -0
  81. data/rbi/stagehand/models/session_extract_response.rbi +91 -0
  82. data/rbi/stagehand/models/session_navigate_params.rbi +240 -0
  83. data/rbi/stagehand/models/session_navigate_response.rbi +91 -0
  84. data/rbi/stagehand/models/session_observe_params.rbi +198 -0
  85. data/rbi/stagehand/models/session_observe_response.rbi +184 -0
  86. data/rbi/stagehand/models/session_replay_params.rbi +89 -0
  87. data/rbi/stagehand/models/session_replay_response.rbi +286 -0
  88. data/rbi/stagehand/models/session_start_params.rbi +1703 -0
  89. data/rbi/stagehand/models/session_start_response.rbi +102 -0
  90. data/rbi/stagehand/models/stream_event.rbi +237 -0
  91. data/rbi/stagehand/models.rbi +25 -0
  92. data/rbi/stagehand/request_options.rbi +59 -0
  93. data/rbi/stagehand/resources/sessions.rbi +421 -0
  94. data/rbi/stagehand/version.rbi +5 -0
  95. data/sig/stagehand/client.rbs +41 -0
  96. data/sig/stagehand/errors.rbs +117 -0
  97. data/sig/stagehand/file_part.rbs +21 -0
  98. data/sig/stagehand/internal/stream.rbs +9 -0
  99. data/sig/stagehand/internal/transport/base_client.rbs +133 -0
  100. data/sig/stagehand/internal/transport/pooled_net_requester.rbs +48 -0
  101. data/sig/stagehand/internal/type/array_of.rbs +48 -0
  102. data/sig/stagehand/internal/type/base_model.rbs +102 -0
  103. data/sig/stagehand/internal/type/base_page.rbs +24 -0
  104. data/sig/stagehand/internal/type/base_stream.rbs +38 -0
  105. data/sig/stagehand/internal/type/boolean.rbs +26 -0
  106. data/sig/stagehand/internal/type/converter.rbs +79 -0
  107. data/sig/stagehand/internal/type/enum.rbs +32 -0
  108. data/sig/stagehand/internal/type/file_input.rbs +25 -0
  109. data/sig/stagehand/internal/type/hash_of.rbs +48 -0
  110. data/sig/stagehand/internal/type/request_parameters.rbs +19 -0
  111. data/sig/stagehand/internal/type/union.rbs +52 -0
  112. data/sig/stagehand/internal/type/unknown.rbs +26 -0
  113. data/sig/stagehand/internal/util.rbs +185 -0
  114. data/sig/stagehand/internal.rbs +9 -0
  115. data/sig/stagehand/models/action.rbs +46 -0
  116. data/sig/stagehand/models/model_config.rbs +56 -0
  117. data/sig/stagehand/models/session_act_params.rbs +111 -0
  118. data/sig/stagehand/models/session_act_response.rbs +121 -0
  119. data/sig/stagehand/models/session_end_params.rbs +41 -0
  120. data/sig/stagehand/models/session_end_response.rbs +13 -0
  121. data/sig/stagehand/models/session_execute_params.rbs +193 -0
  122. data/sig/stagehand/models/session_execute_response.rbs +215 -0
  123. data/sig/stagehand/models/session_extract_params.rbs +112 -0
  124. data/sig/stagehand/models/session_extract_response.rbs +36 -0
  125. data/sig/stagehand/models/session_navigate_params.rbs +114 -0
  126. data/sig/stagehand/models/session_navigate_response.rbs +36 -0
  127. data/sig/stagehand/models/session_observe_params.rbs +105 -0
  128. data/sig/stagehand/models/session_observe_response.rbs +89 -0
  129. data/sig/stagehand/models/session_replay_params.rbs +41 -0
  130. data/sig/stagehand/models/session_replay_response.rbs +137 -0
  131. data/sig/stagehand/models/session_start_params.rbs +866 -0
  132. data/sig/stagehand/models/session_start_response.rbs +44 -0
  133. data/sig/stagehand/models/stream_event.rbs +109 -0
  134. data/sig/stagehand/models.rbs +23 -0
  135. data/sig/stagehand/request_options.rbs +34 -0
  136. data/sig/stagehand/resources/sessions.rbs +121 -0
  137. data/sig/stagehand/version.rbs +3 -0
  138. metadata +173 -42
  139. data/.gitignore +0 -16
  140. data/Gemfile +0 -4
  141. data/Rakefile +0 -10
  142. data/lib/stagehand/railtie.rb +0 -14
  143. data/spec/spec_helper.rb +0 -7
  144. data/spec/stagehand_spec.rb +0 -15
  145. data/stagehand.gemspec +0 -24
@@ -0,0 +1,89 @@
1
+ # typed: strong
2
+
3
+ module Stagehand
4
+ module Models
5
+ class SessionReplayParams < 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::SessionReplayParams, Stagehand::Internal::AnyHash)
12
+ end
13
+
14
+ # Whether to stream the response via SSE
15
+ sig do
16
+ returns(
17
+ T.nilable(Stagehand::SessionReplayParams::XStreamResponse::OrSymbol)
18
+ )
19
+ end
20
+ attr_reader :x_stream_response
21
+
22
+ sig do
23
+ params(
24
+ x_stream_response:
25
+ Stagehand::SessionReplayParams::XStreamResponse::OrSymbol
26
+ ).void
27
+ end
28
+ attr_writer :x_stream_response
29
+
30
+ sig do
31
+ params(
32
+ x_stream_response:
33
+ Stagehand::SessionReplayParams::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::SessionReplayParams::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::SessionReplayParams::XStreamResponse)
63
+ end
64
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
65
+
66
+ TRUE =
67
+ T.let(
68
+ :true,
69
+ Stagehand::SessionReplayParams::XStreamResponse::TaggedSymbol
70
+ )
71
+ FALSE =
72
+ T.let(
73
+ :false,
74
+ Stagehand::SessionReplayParams::XStreamResponse::TaggedSymbol
75
+ )
76
+
77
+ sig do
78
+ override.returns(
79
+ T::Array[
80
+ Stagehand::SessionReplayParams::XStreamResponse::TaggedSymbol
81
+ ]
82
+ )
83
+ end
84
+ def self.values
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,286 @@
1
+ # typed: strong
2
+
3
+ module Stagehand
4
+ module Models
5
+ class SessionReplayResponse < Stagehand::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Stagehand::Models::SessionReplayResponse,
10
+ Stagehand::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(Stagehand::Models::SessionReplayResponse::Data) }
15
+ attr_reader :data
16
+
17
+ sig do
18
+ params(
19
+ data: Stagehand::Models::SessionReplayResponse::Data::OrHash
20
+ ).void
21
+ end
22
+ attr_writer :data
23
+
24
+ # Indicates whether the request was successful
25
+ sig { returns(T::Boolean) }
26
+ attr_accessor :success
27
+
28
+ sig do
29
+ params(
30
+ data: Stagehand::Models::SessionReplayResponse::Data::OrHash,
31
+ success: T::Boolean
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(
35
+ data:,
36
+ # Indicates whether the request was successful
37
+ success:
38
+ )
39
+ end
40
+
41
+ sig do
42
+ override.returns(
43
+ {
44
+ data: Stagehand::Models::SessionReplayResponse::Data,
45
+ success: T::Boolean
46
+ }
47
+ )
48
+ end
49
+ def to_hash
50
+ end
51
+
52
+ class Data < Stagehand::Internal::Type::BaseModel
53
+ OrHash =
54
+ T.type_alias do
55
+ T.any(
56
+ Stagehand::Models::SessionReplayResponse::Data,
57
+ Stagehand::Internal::AnyHash
58
+ )
59
+ end
60
+
61
+ sig do
62
+ returns(
63
+ T.nilable(
64
+ T::Array[Stagehand::Models::SessionReplayResponse::Data::Page]
65
+ )
66
+ )
67
+ end
68
+ attr_reader :pages
69
+
70
+ sig do
71
+ params(
72
+ pages:
73
+ T::Array[
74
+ Stagehand::Models::SessionReplayResponse::Data::Page::OrHash
75
+ ]
76
+ ).void
77
+ end
78
+ attr_writer :pages
79
+
80
+ sig do
81
+ params(
82
+ pages:
83
+ T::Array[
84
+ Stagehand::Models::SessionReplayResponse::Data::Page::OrHash
85
+ ]
86
+ ).returns(T.attached_class)
87
+ end
88
+ def self.new(pages: nil)
89
+ end
90
+
91
+ sig do
92
+ override.returns(
93
+ {
94
+ pages:
95
+ T::Array[Stagehand::Models::SessionReplayResponse::Data::Page]
96
+ }
97
+ )
98
+ end
99
+ def to_hash
100
+ end
101
+
102
+ class Page < Stagehand::Internal::Type::BaseModel
103
+ OrHash =
104
+ T.type_alias do
105
+ T.any(
106
+ Stagehand::Models::SessionReplayResponse::Data::Page,
107
+ Stagehand::Internal::AnyHash
108
+ )
109
+ end
110
+
111
+ sig do
112
+ returns(
113
+ T.nilable(
114
+ T::Array[
115
+ Stagehand::Models::SessionReplayResponse::Data::Page::Action
116
+ ]
117
+ )
118
+ )
119
+ end
120
+ attr_reader :actions
121
+
122
+ sig do
123
+ params(
124
+ actions:
125
+ T::Array[
126
+ Stagehand::Models::SessionReplayResponse::Data::Page::Action::OrHash
127
+ ]
128
+ ).void
129
+ end
130
+ attr_writer :actions
131
+
132
+ sig do
133
+ params(
134
+ actions:
135
+ T::Array[
136
+ Stagehand::Models::SessionReplayResponse::Data::Page::Action::OrHash
137
+ ]
138
+ ).returns(T.attached_class)
139
+ end
140
+ def self.new(actions: nil)
141
+ end
142
+
143
+ sig do
144
+ override.returns(
145
+ {
146
+ actions:
147
+ T::Array[
148
+ Stagehand::Models::SessionReplayResponse::Data::Page::Action
149
+ ]
150
+ }
151
+ )
152
+ end
153
+ def to_hash
154
+ end
155
+
156
+ class Action < Stagehand::Internal::Type::BaseModel
157
+ OrHash =
158
+ T.type_alias do
159
+ T.any(
160
+ Stagehand::Models::SessionReplayResponse::Data::Page::Action,
161
+ Stagehand::Internal::AnyHash
162
+ )
163
+ end
164
+
165
+ sig { returns(T.nilable(String)) }
166
+ attr_reader :method_
167
+
168
+ sig { params(method_: String).void }
169
+ attr_writer :method_
170
+
171
+ sig do
172
+ returns(
173
+ T.nilable(
174
+ Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage
175
+ )
176
+ )
177
+ end
178
+ attr_reader :token_usage
179
+
180
+ sig do
181
+ params(
182
+ token_usage:
183
+ Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage::OrHash
184
+ ).void
185
+ end
186
+ attr_writer :token_usage
187
+
188
+ sig do
189
+ params(
190
+ method_: String,
191
+ token_usage:
192
+ Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage::OrHash
193
+ ).returns(T.attached_class)
194
+ end
195
+ def self.new(method_: nil, token_usage: nil)
196
+ end
197
+
198
+ sig do
199
+ override.returns(
200
+ {
201
+ method_: String,
202
+ token_usage:
203
+ Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage
204
+ }
205
+ )
206
+ end
207
+ def to_hash
208
+ end
209
+
210
+ class TokenUsage < Stagehand::Internal::Type::BaseModel
211
+ OrHash =
212
+ T.type_alias do
213
+ T.any(
214
+ Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage,
215
+ Stagehand::Internal::AnyHash
216
+ )
217
+ end
218
+
219
+ sig { returns(T.nilable(Float)) }
220
+ attr_reader :cached_input_tokens
221
+
222
+ sig { params(cached_input_tokens: Float).void }
223
+ attr_writer :cached_input_tokens
224
+
225
+ sig { returns(T.nilable(Float)) }
226
+ attr_reader :input_tokens
227
+
228
+ sig { params(input_tokens: Float).void }
229
+ attr_writer :input_tokens
230
+
231
+ sig { returns(T.nilable(Float)) }
232
+ attr_reader :output_tokens
233
+
234
+ sig { params(output_tokens: Float).void }
235
+ attr_writer :output_tokens
236
+
237
+ sig { returns(T.nilable(Float)) }
238
+ attr_reader :reasoning_tokens
239
+
240
+ sig { params(reasoning_tokens: Float).void }
241
+ attr_writer :reasoning_tokens
242
+
243
+ sig { returns(T.nilable(Float)) }
244
+ attr_reader :time_ms
245
+
246
+ sig { params(time_ms: Float).void }
247
+ attr_writer :time_ms
248
+
249
+ sig do
250
+ params(
251
+ cached_input_tokens: Float,
252
+ input_tokens: Float,
253
+ output_tokens: Float,
254
+ reasoning_tokens: Float,
255
+ time_ms: Float
256
+ ).returns(T.attached_class)
257
+ end
258
+ def self.new(
259
+ cached_input_tokens: nil,
260
+ input_tokens: nil,
261
+ output_tokens: nil,
262
+ reasoning_tokens: nil,
263
+ time_ms: nil
264
+ )
265
+ end
266
+
267
+ sig do
268
+ override.returns(
269
+ {
270
+ cached_input_tokens: Float,
271
+ input_tokens: Float,
272
+ output_tokens: Float,
273
+ reasoning_tokens: Float,
274
+ time_ms: Float
275
+ }
276
+ )
277
+ end
278
+ def to_hash
279
+ end
280
+ end
281
+ end
282
+ end
283
+ end
284
+ end
285
+ end
286
+ end