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,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