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,193 @@
1
+ module Stagehand
2
+ module Models
3
+ type session_execute_params =
4
+ {
5
+ agent_config: Stagehand::SessionExecuteParams::AgentConfig,
6
+ execute_options: Stagehand::SessionExecuteParams::ExecuteOptions,
7
+ frame_id: String?,
8
+ should_cache: bool,
9
+ x_stream_response: Stagehand::Models::SessionExecuteParams::x_stream_response
10
+ }
11
+ & Stagehand::Internal::Type::request_parameters
12
+
13
+ class SessionExecuteParams < Stagehand::Internal::Type::BaseModel
14
+ extend Stagehand::Internal::Type::RequestParameters::Converter
15
+ include Stagehand::Internal::Type::RequestParameters
16
+
17
+ attr_accessor agent_config: Stagehand::SessionExecuteParams::AgentConfig
18
+
19
+ attr_accessor execute_options: Stagehand::SessionExecuteParams::ExecuteOptions
20
+
21
+ attr_accessor frame_id: String?
22
+
23
+ attr_reader should_cache: bool?
24
+
25
+ def should_cache=: (bool) -> bool
26
+
27
+ attr_reader x_stream_response: Stagehand::Models::SessionExecuteParams::x_stream_response?
28
+
29
+ def x_stream_response=: (
30
+ Stagehand::Models::SessionExecuteParams::x_stream_response
31
+ ) -> Stagehand::Models::SessionExecuteParams::x_stream_response
32
+
33
+ def initialize: (
34
+ agent_config: Stagehand::SessionExecuteParams::AgentConfig,
35
+ execute_options: Stagehand::SessionExecuteParams::ExecuteOptions,
36
+ ?frame_id: String?,
37
+ ?should_cache: bool,
38
+ ?x_stream_response: Stagehand::Models::SessionExecuteParams::x_stream_response,
39
+ ?request_options: Stagehand::request_opts
40
+ ) -> void
41
+
42
+ def to_hash: -> {
43
+ agent_config: Stagehand::SessionExecuteParams::AgentConfig,
44
+ execute_options: Stagehand::SessionExecuteParams::ExecuteOptions,
45
+ frame_id: String?,
46
+ should_cache: bool,
47
+ x_stream_response: Stagehand::Models::SessionExecuteParams::x_stream_response,
48
+ request_options: Stagehand::RequestOptions
49
+ }
50
+
51
+ type agent_config =
52
+ {
53
+ cua: bool,
54
+ execution_model: Stagehand::Models::SessionExecuteParams::AgentConfig::execution_model,
55
+ mode: Stagehand::Models::SessionExecuteParams::AgentConfig::mode,
56
+ model: Stagehand::Models::SessionExecuteParams::AgentConfig::model,
57
+ provider: Stagehand::Models::SessionExecuteParams::AgentConfig::provider,
58
+ system_prompt: String
59
+ }
60
+
61
+ class AgentConfig < Stagehand::Internal::Type::BaseModel
62
+ attr_reader cua: bool?
63
+
64
+ def cua=: (bool) -> bool
65
+
66
+ attr_reader execution_model: Stagehand::Models::SessionExecuteParams::AgentConfig::execution_model?
67
+
68
+ def execution_model=: (
69
+ Stagehand::Models::SessionExecuteParams::AgentConfig::execution_model
70
+ ) -> Stagehand::Models::SessionExecuteParams::AgentConfig::execution_model
71
+
72
+ attr_reader mode: Stagehand::Models::SessionExecuteParams::AgentConfig::mode?
73
+
74
+ def mode=: (
75
+ Stagehand::Models::SessionExecuteParams::AgentConfig::mode
76
+ ) -> Stagehand::Models::SessionExecuteParams::AgentConfig::mode
77
+
78
+ attr_reader model: Stagehand::Models::SessionExecuteParams::AgentConfig::model?
79
+
80
+ def model=: (
81
+ Stagehand::Models::SessionExecuteParams::AgentConfig::model
82
+ ) -> Stagehand::Models::SessionExecuteParams::AgentConfig::model
83
+
84
+ attr_reader provider: Stagehand::Models::SessionExecuteParams::AgentConfig::provider?
85
+
86
+ def provider=: (
87
+ Stagehand::Models::SessionExecuteParams::AgentConfig::provider
88
+ ) -> Stagehand::Models::SessionExecuteParams::AgentConfig::provider
89
+
90
+ attr_reader system_prompt: String?
91
+
92
+ def system_prompt=: (String) -> String
93
+
94
+ def initialize: (
95
+ ?cua: bool,
96
+ ?execution_model: Stagehand::Models::SessionExecuteParams::AgentConfig::execution_model,
97
+ ?mode: Stagehand::Models::SessionExecuteParams::AgentConfig::mode,
98
+ ?model: Stagehand::Models::SessionExecuteParams::AgentConfig::model,
99
+ ?provider: Stagehand::Models::SessionExecuteParams::AgentConfig::provider,
100
+ ?system_prompt: String
101
+ ) -> void
102
+
103
+ def to_hash: -> {
104
+ cua: bool,
105
+ execution_model: Stagehand::Models::SessionExecuteParams::AgentConfig::execution_model,
106
+ mode: Stagehand::Models::SessionExecuteParams::AgentConfig::mode,
107
+ model: Stagehand::Models::SessionExecuteParams::AgentConfig::model,
108
+ provider: Stagehand::Models::SessionExecuteParams::AgentConfig::provider,
109
+ system_prompt: String
110
+ }
111
+
112
+ type execution_model = Stagehand::ModelConfig | String
113
+
114
+ module ExecutionModel
115
+ extend Stagehand::Internal::Type::Union
116
+
117
+ def self?.variants: -> ::Array[Stagehand::Models::SessionExecuteParams::AgentConfig::execution_model]
118
+ end
119
+
120
+ type mode = :dom | :hybrid | :cua
121
+
122
+ module Mode
123
+ extend Stagehand::Internal::Type::Enum
124
+
125
+ DOM: :dom
126
+ HYBRID: :hybrid
127
+ CUA: :cua
128
+
129
+ def self?.values: -> ::Array[Stagehand::Models::SessionExecuteParams::AgentConfig::mode]
130
+ end
131
+
132
+ type model = Stagehand::ModelConfig | String
133
+
134
+ module Model
135
+ extend Stagehand::Internal::Type::Union
136
+
137
+ def self?.variants: -> ::Array[Stagehand::Models::SessionExecuteParams::AgentConfig::model]
138
+ end
139
+
140
+ type provider = :openai | :anthropic | :google | :microsoft
141
+
142
+ module Provider
143
+ extend Stagehand::Internal::Type::Enum
144
+
145
+ OPENAI: :openai
146
+ ANTHROPIC: :anthropic
147
+ GOOGLE: :google
148
+ MICROSOFT: :microsoft
149
+
150
+ def self?.values: -> ::Array[Stagehand::Models::SessionExecuteParams::AgentConfig::provider]
151
+ end
152
+ end
153
+
154
+ type execute_options =
155
+ { instruction: String, highlight_cursor: bool, max_steps: Float }
156
+
157
+ class ExecuteOptions < Stagehand::Internal::Type::BaseModel
158
+ attr_accessor instruction: String
159
+
160
+ attr_reader highlight_cursor: bool?
161
+
162
+ def highlight_cursor=: (bool) -> bool
163
+
164
+ attr_reader max_steps: Float?
165
+
166
+ def max_steps=: (Float) -> Float
167
+
168
+ def initialize: (
169
+ instruction: String,
170
+ ?highlight_cursor: bool,
171
+ ?max_steps: Float
172
+ ) -> void
173
+
174
+ def to_hash: -> {
175
+ instruction: String,
176
+ highlight_cursor: bool,
177
+ max_steps: Float
178
+ }
179
+ end
180
+
181
+ type x_stream_response = :true | :false
182
+
183
+ module XStreamResponse
184
+ extend Stagehand::Internal::Type::Enum
185
+
186
+ TRUE: :true
187
+ FALSE: :false
188
+
189
+ def self?.values: -> ::Array[Stagehand::Models::SessionExecuteParams::x_stream_response]
190
+ end
191
+ end
192
+ end
193
+ end
@@ -0,0 +1,215 @@
1
+ module Stagehand
2
+ module Models
3
+ type session_execute_response =
4
+ { data: Stagehand::Models::SessionExecuteResponse::Data, success: bool }
5
+
6
+ class SessionExecuteResponse < Stagehand::Internal::Type::BaseModel
7
+ attr_accessor data: Stagehand::Models::SessionExecuteResponse::Data
8
+
9
+ attr_accessor success: bool
10
+
11
+ def initialize: (
12
+ data: Stagehand::Models::SessionExecuteResponse::Data,
13
+ success: bool
14
+ ) -> void
15
+
16
+ def to_hash: -> {
17
+ data: Stagehand::Models::SessionExecuteResponse::Data,
18
+ success: bool
19
+ }
20
+
21
+ type data =
22
+ {
23
+ result: Stagehand::Models::SessionExecuteResponse::Data::Result,
24
+ cache_entry: Stagehand::Models::SessionExecuteResponse::Data::CacheEntry
25
+ }
26
+
27
+ class Data < Stagehand::Internal::Type::BaseModel
28
+ attr_accessor result: Stagehand::Models::SessionExecuteResponse::Data::Result
29
+
30
+ attr_reader cache_entry: Stagehand::Models::SessionExecuteResponse::Data::CacheEntry?
31
+
32
+ def cache_entry=: (
33
+ Stagehand::Models::SessionExecuteResponse::Data::CacheEntry
34
+ ) -> Stagehand::Models::SessionExecuteResponse::Data::CacheEntry
35
+
36
+ def initialize: (
37
+ result: Stagehand::Models::SessionExecuteResponse::Data::Result,
38
+ ?cache_entry: Stagehand::Models::SessionExecuteResponse::Data::CacheEntry
39
+ ) -> void
40
+
41
+ def to_hash: -> {
42
+ result: Stagehand::Models::SessionExecuteResponse::Data::Result,
43
+ cache_entry: Stagehand::Models::SessionExecuteResponse::Data::CacheEntry
44
+ }
45
+
46
+ type result =
47
+ {
48
+ actions: ::Array[Stagehand::Models::SessionExecuteResponse::Data::Result::Action],
49
+ completed: bool,
50
+ message: String,
51
+ success: bool,
52
+ metadata: ::Hash[Symbol, top],
53
+ usage: Stagehand::Models::SessionExecuteResponse::Data::Result::Usage
54
+ }
55
+
56
+ class Result < Stagehand::Internal::Type::BaseModel
57
+ attr_accessor actions: ::Array[Stagehand::Models::SessionExecuteResponse::Data::Result::Action]
58
+
59
+ attr_accessor completed: bool
60
+
61
+ attr_accessor message: String
62
+
63
+ attr_accessor success: bool
64
+
65
+ attr_reader metadata: ::Hash[Symbol, top]?
66
+
67
+ def metadata=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top]
68
+
69
+ attr_reader usage: Stagehand::Models::SessionExecuteResponse::Data::Result::Usage?
70
+
71
+ def usage=: (
72
+ Stagehand::Models::SessionExecuteResponse::Data::Result::Usage
73
+ ) -> Stagehand::Models::SessionExecuteResponse::Data::Result::Usage
74
+
75
+ def initialize: (
76
+ actions: ::Array[Stagehand::Models::SessionExecuteResponse::Data::Result::Action],
77
+ completed: bool,
78
+ message: String,
79
+ success: bool,
80
+ ?metadata: ::Hash[Symbol, top],
81
+ ?usage: Stagehand::Models::SessionExecuteResponse::Data::Result::Usage
82
+ ) -> void
83
+
84
+ def to_hash: -> {
85
+ actions: ::Array[Stagehand::Models::SessionExecuteResponse::Data::Result::Action],
86
+ completed: bool,
87
+ message: String,
88
+ success: bool,
89
+ metadata: ::Hash[Symbol, top],
90
+ usage: Stagehand::Models::SessionExecuteResponse::Data::Result::Usage
91
+ }
92
+
93
+ type action =
94
+ {
95
+ type: String,
96
+ action: String,
97
+ instruction: String,
98
+ page_text: String,
99
+ page_url: String,
100
+ reasoning: String,
101
+ task_completed: bool,
102
+ time_ms: Float
103
+ }
104
+
105
+ class Action < Stagehand::Internal::Type::BaseModel
106
+ attr_accessor type: String
107
+
108
+ attr_reader action: String?
109
+
110
+ def action=: (String) -> String
111
+
112
+ attr_reader instruction: String?
113
+
114
+ def instruction=: (String) -> String
115
+
116
+ attr_reader page_text: String?
117
+
118
+ def page_text=: (String) -> String
119
+
120
+ attr_reader page_url: String?
121
+
122
+ def page_url=: (String) -> String
123
+
124
+ attr_reader reasoning: String?
125
+
126
+ def reasoning=: (String) -> String
127
+
128
+ attr_reader task_completed: bool?
129
+
130
+ def task_completed=: (bool) -> bool
131
+
132
+ attr_reader time_ms: Float?
133
+
134
+ def time_ms=: (Float) -> Float
135
+
136
+ def initialize: (
137
+ type: String,
138
+ ?action: String,
139
+ ?instruction: String,
140
+ ?page_text: String,
141
+ ?page_url: String,
142
+ ?reasoning: String,
143
+ ?task_completed: bool,
144
+ ?time_ms: Float
145
+ ) -> void
146
+
147
+ def to_hash: -> {
148
+ type: String,
149
+ action: String,
150
+ instruction: String,
151
+ page_text: String,
152
+ page_url: String,
153
+ reasoning: String,
154
+ task_completed: bool,
155
+ time_ms: Float
156
+ }
157
+ end
158
+
159
+ type usage =
160
+ {
161
+ inference_time_ms: Float,
162
+ input_tokens: Float,
163
+ output_tokens: Float,
164
+ cached_input_tokens: Float,
165
+ reasoning_tokens: Float
166
+ }
167
+
168
+ class Usage < Stagehand::Internal::Type::BaseModel
169
+ attr_accessor inference_time_ms: Float
170
+
171
+ attr_accessor input_tokens: Float
172
+
173
+ attr_accessor output_tokens: Float
174
+
175
+ attr_reader cached_input_tokens: Float?
176
+
177
+ def cached_input_tokens=: (Float) -> Float
178
+
179
+ attr_reader reasoning_tokens: Float?
180
+
181
+ def reasoning_tokens=: (Float) -> Float
182
+
183
+ def initialize: (
184
+ inference_time_ms: Float,
185
+ input_tokens: Float,
186
+ output_tokens: Float,
187
+ ?cached_input_tokens: Float,
188
+ ?reasoning_tokens: Float
189
+ ) -> void
190
+
191
+ def to_hash: -> {
192
+ inference_time_ms: Float,
193
+ input_tokens: Float,
194
+ output_tokens: Float,
195
+ cached_input_tokens: Float,
196
+ reasoning_tokens: Float
197
+ }
198
+ end
199
+ end
200
+
201
+ type cache_entry = { cache_key: String, entry: top }
202
+
203
+ class CacheEntry < Stagehand::Internal::Type::BaseModel
204
+ attr_accessor cache_key: String
205
+
206
+ attr_accessor entry: top
207
+
208
+ def initialize: (cache_key: String, entry: top) -> void
209
+
210
+ def to_hash: -> { cache_key: String, entry: top }
211
+ end
212
+ end
213
+ end
214
+ end
215
+ end
@@ -0,0 +1,112 @@
1
+ module Stagehand
2
+ module Models
3
+ type session_extract_params =
4
+ {
5
+ frame_id: String?,
6
+ instruction: String,
7
+ options: Stagehand::SessionExtractParams::Options,
8
+ schema: ::Hash[Symbol, top],
9
+ x_stream_response: Stagehand::Models::SessionExtractParams::x_stream_response
10
+ }
11
+ & Stagehand::Internal::Type::request_parameters
12
+
13
+ class SessionExtractParams < Stagehand::Internal::Type::BaseModel
14
+ extend Stagehand::Internal::Type::RequestParameters::Converter
15
+ include Stagehand::Internal::Type::RequestParameters
16
+
17
+ attr_accessor frame_id: String?
18
+
19
+ attr_reader instruction: String?
20
+
21
+ def instruction=: (String) -> String
22
+
23
+ attr_reader options: Stagehand::SessionExtractParams::Options?
24
+
25
+ def options=: (
26
+ Stagehand::SessionExtractParams::Options
27
+ ) -> Stagehand::SessionExtractParams::Options
28
+
29
+ attr_reader schema: ::Hash[Symbol, top]?
30
+
31
+ def schema=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top]
32
+
33
+ attr_reader x_stream_response: Stagehand::Models::SessionExtractParams::x_stream_response?
34
+
35
+ def x_stream_response=: (
36
+ Stagehand::Models::SessionExtractParams::x_stream_response
37
+ ) -> Stagehand::Models::SessionExtractParams::x_stream_response
38
+
39
+ def initialize: (
40
+ ?frame_id: String?,
41
+ ?instruction: String,
42
+ ?options: Stagehand::SessionExtractParams::Options,
43
+ ?schema: ::Hash[Symbol, top],
44
+ ?x_stream_response: Stagehand::Models::SessionExtractParams::x_stream_response,
45
+ ?request_options: Stagehand::request_opts
46
+ ) -> void
47
+
48
+ def to_hash: -> {
49
+ frame_id: String?,
50
+ instruction: String,
51
+ options: Stagehand::SessionExtractParams::Options,
52
+ schema: ::Hash[Symbol, top],
53
+ x_stream_response: Stagehand::Models::SessionExtractParams::x_stream_response,
54
+ request_options: Stagehand::RequestOptions
55
+ }
56
+
57
+ type options =
58
+ {
59
+ model: Stagehand::Models::SessionExtractParams::Options::model,
60
+ selector: String,
61
+ timeout: Float
62
+ }
63
+
64
+ class Options < Stagehand::Internal::Type::BaseModel
65
+ attr_reader model: Stagehand::Models::SessionExtractParams::Options::model?
66
+
67
+ def model=: (
68
+ Stagehand::Models::SessionExtractParams::Options::model
69
+ ) -> Stagehand::Models::SessionExtractParams::Options::model
70
+
71
+ attr_reader selector: String?
72
+
73
+ def selector=: (String) -> String
74
+
75
+ attr_reader timeout: Float?
76
+
77
+ def timeout=: (Float) -> Float
78
+
79
+ def initialize: (
80
+ ?model: Stagehand::Models::SessionExtractParams::Options::model,
81
+ ?selector: String,
82
+ ?timeout: Float
83
+ ) -> void
84
+
85
+ def to_hash: -> {
86
+ model: Stagehand::Models::SessionExtractParams::Options::model,
87
+ selector: String,
88
+ timeout: Float
89
+ }
90
+
91
+ type model = Stagehand::ModelConfig | String
92
+
93
+ module Model
94
+ extend Stagehand::Internal::Type::Union
95
+
96
+ def self?.variants: -> ::Array[Stagehand::Models::SessionExtractParams::Options::model]
97
+ end
98
+ end
99
+
100
+ type x_stream_response = :true | :false
101
+
102
+ module XStreamResponse
103
+ extend Stagehand::Internal::Type::Enum
104
+
105
+ TRUE: :true
106
+ FALSE: :false
107
+
108
+ def self?.values: -> ::Array[Stagehand::Models::SessionExtractParams::x_stream_response]
109
+ end
110
+ end
111
+ end
112
+ end
@@ -0,0 +1,36 @@
1
+ module Stagehand
2
+ module Models
3
+ type session_extract_response =
4
+ { data: Stagehand::Models::SessionExtractResponse::Data, success: bool }
5
+
6
+ class SessionExtractResponse < Stagehand::Internal::Type::BaseModel
7
+ attr_accessor data: Stagehand::Models::SessionExtractResponse::Data
8
+
9
+ attr_accessor success: bool
10
+
11
+ def initialize: (
12
+ data: Stagehand::Models::SessionExtractResponse::Data,
13
+ success: bool
14
+ ) -> void
15
+
16
+ def to_hash: -> {
17
+ data: Stagehand::Models::SessionExtractResponse::Data,
18
+ success: bool
19
+ }
20
+
21
+ type data = { result: top, action_id: String }
22
+
23
+ class Data < Stagehand::Internal::Type::BaseModel
24
+ attr_accessor result: top
25
+
26
+ attr_reader action_id: String?
27
+
28
+ def action_id=: (String) -> String
29
+
30
+ def initialize: (result: top, ?action_id: String) -> void
31
+
32
+ def to_hash: -> { result: top, action_id: String }
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,114 @@
1
+ module Stagehand
2
+ module Models
3
+ type session_navigate_params =
4
+ {
5
+ url: String,
6
+ frame_id: String?,
7
+ options: Stagehand::SessionNavigateParams::Options,
8
+ stream_response: bool,
9
+ x_stream_response: Stagehand::Models::SessionNavigateParams::x_stream_response
10
+ }
11
+ & Stagehand::Internal::Type::request_parameters
12
+
13
+ class SessionNavigateParams < Stagehand::Internal::Type::BaseModel
14
+ extend Stagehand::Internal::Type::RequestParameters::Converter
15
+ include Stagehand::Internal::Type::RequestParameters
16
+
17
+ attr_accessor url: String
18
+
19
+ attr_accessor frame_id: String?
20
+
21
+ attr_reader options: Stagehand::SessionNavigateParams::Options?
22
+
23
+ def options=: (
24
+ Stagehand::SessionNavigateParams::Options
25
+ ) -> Stagehand::SessionNavigateParams::Options
26
+
27
+ attr_reader stream_response: bool?
28
+
29
+ def stream_response=: (bool) -> bool
30
+
31
+ attr_reader x_stream_response: Stagehand::Models::SessionNavigateParams::x_stream_response?
32
+
33
+ def x_stream_response=: (
34
+ Stagehand::Models::SessionNavigateParams::x_stream_response
35
+ ) -> Stagehand::Models::SessionNavigateParams::x_stream_response
36
+
37
+ def initialize: (
38
+ url: String,
39
+ ?frame_id: String?,
40
+ ?options: Stagehand::SessionNavigateParams::Options,
41
+ ?stream_response: bool,
42
+ ?x_stream_response: Stagehand::Models::SessionNavigateParams::x_stream_response,
43
+ ?request_options: Stagehand::request_opts
44
+ ) -> void
45
+
46
+ def to_hash: -> {
47
+ url: String,
48
+ frame_id: String?,
49
+ options: Stagehand::SessionNavigateParams::Options,
50
+ stream_response: bool,
51
+ x_stream_response: Stagehand::Models::SessionNavigateParams::x_stream_response,
52
+ request_options: Stagehand::RequestOptions
53
+ }
54
+
55
+ type options =
56
+ {
57
+ referer: String,
58
+ timeout: Float,
59
+ wait_until: Stagehand::Models::SessionNavigateParams::Options::wait_until
60
+ }
61
+
62
+ class Options < Stagehand::Internal::Type::BaseModel
63
+ attr_reader referer: String?
64
+
65
+ def referer=: (String) -> String
66
+
67
+ attr_reader timeout: Float?
68
+
69
+ def timeout=: (Float) -> Float
70
+
71
+ attr_reader wait_until: Stagehand::Models::SessionNavigateParams::Options::wait_until?
72
+
73
+ def wait_until=: (
74
+ Stagehand::Models::SessionNavigateParams::Options::wait_until
75
+ ) -> Stagehand::Models::SessionNavigateParams::Options::wait_until
76
+
77
+ def initialize: (
78
+ ?referer: String,
79
+ ?timeout: Float,
80
+ ?wait_until: Stagehand::Models::SessionNavigateParams::Options::wait_until
81
+ ) -> void
82
+
83
+ def to_hash: -> {
84
+ referer: String,
85
+ timeout: Float,
86
+ wait_until: Stagehand::Models::SessionNavigateParams::Options::wait_until
87
+ }
88
+
89
+ type wait_until = :load | :domcontentloaded | :networkidle
90
+
91
+ module WaitUntil
92
+ extend Stagehand::Internal::Type::Enum
93
+
94
+ LOAD: :load
95
+ DOMCONTENTLOADED: :domcontentloaded
96
+ NETWORKIDLE: :networkidle
97
+
98
+ def self?.values: -> ::Array[Stagehand::Models::SessionNavigateParams::Options::wait_until]
99
+ end
100
+ end
101
+
102
+ type x_stream_response = :true | :false
103
+
104
+ module XStreamResponse
105
+ extend Stagehand::Internal::Type::Enum
106
+
107
+ TRUE: :true
108
+ FALSE: :false
109
+
110
+ def self?.values: -> ::Array[Stagehand::Models::SessionNavigateParams::x_stream_response]
111
+ end
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,36 @@
1
+ module Stagehand
2
+ module Models
3
+ type session_navigate_response =
4
+ { data: Stagehand::Models::SessionNavigateResponse::Data, success: bool }
5
+
6
+ class SessionNavigateResponse < Stagehand::Internal::Type::BaseModel
7
+ attr_accessor data: Stagehand::Models::SessionNavigateResponse::Data
8
+
9
+ attr_accessor success: bool
10
+
11
+ def initialize: (
12
+ data: Stagehand::Models::SessionNavigateResponse::Data,
13
+ success: bool
14
+ ) -> void
15
+
16
+ def to_hash: -> {
17
+ data: Stagehand::Models::SessionNavigateResponse::Data,
18
+ success: bool
19
+ }
20
+
21
+ type data = { result: top, action_id: String }
22
+
23
+ class Data < Stagehand::Internal::Type::BaseModel
24
+ attr_accessor result: top
25
+
26
+ attr_reader action_id: String?
27
+
28
+ def action_id=: (String) -> String
29
+
30
+ def initialize: (result: top, ?action_id: String) -> void
31
+
32
+ def to_hash: -> { result: top, action_id: String }
33
+ end
34
+ end
35
+ end
36
+ end