stagehand 0.0.4 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +193 -0
  4. data/README.md +403 -31
  5. data/SECURITY.md +23 -0
  6. data/lib/stagehand/client.rb +123 -4
  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 +142 -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 -29
  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 +303 -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 +166 -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 +170 -54
  139. data/.gitignore +0 -16
  140. data/Gemfile +0 -4
  141. data/Rakefile +0 -10
  142. data/lib/stagehand/client/oauth.rb +0 -32
  143. data/lib/stagehand/client/user.rb +0 -10
  144. data/lib/stagehand/rack/middleware.rb +0 -33
  145. data/lib/stagehand/railtie.rb +0 -19
  146. data/spec/spec_helper.rb +0 -7
  147. data/spec/stagehand_spec.rb +0 -44
  148. data/stagehand.gemspec +0 -25
@@ -0,0 +1,105 @@
1
+ module Stagehand
2
+ module Models
3
+ type session_observe_params =
4
+ {
5
+ frame_id: String?,
6
+ instruction: String,
7
+ options: Stagehand::SessionObserveParams::Options,
8
+ x_stream_response: Stagehand::Models::SessionObserveParams::x_stream_response
9
+ }
10
+ & Stagehand::Internal::Type::request_parameters
11
+
12
+ class SessionObserveParams < Stagehand::Internal::Type::BaseModel
13
+ extend Stagehand::Internal::Type::RequestParameters::Converter
14
+ include Stagehand::Internal::Type::RequestParameters
15
+
16
+ attr_accessor frame_id: String?
17
+
18
+ attr_reader instruction: String?
19
+
20
+ def instruction=: (String) -> String
21
+
22
+ attr_reader options: Stagehand::SessionObserveParams::Options?
23
+
24
+ def options=: (
25
+ Stagehand::SessionObserveParams::Options
26
+ ) -> Stagehand::SessionObserveParams::Options
27
+
28
+ attr_reader x_stream_response: Stagehand::Models::SessionObserveParams::x_stream_response?
29
+
30
+ def x_stream_response=: (
31
+ Stagehand::Models::SessionObserveParams::x_stream_response
32
+ ) -> Stagehand::Models::SessionObserveParams::x_stream_response
33
+
34
+ def initialize: (
35
+ ?frame_id: String?,
36
+ ?instruction: String,
37
+ ?options: Stagehand::SessionObserveParams::Options,
38
+ ?x_stream_response: Stagehand::Models::SessionObserveParams::x_stream_response,
39
+ ?request_options: Stagehand::request_opts
40
+ ) -> void
41
+
42
+ def to_hash: -> {
43
+ frame_id: String?,
44
+ instruction: String,
45
+ options: Stagehand::SessionObserveParams::Options,
46
+ x_stream_response: Stagehand::Models::SessionObserveParams::x_stream_response,
47
+ request_options: Stagehand::RequestOptions
48
+ }
49
+
50
+ type options =
51
+ {
52
+ model: Stagehand::Models::SessionObserveParams::Options::model,
53
+ selector: String,
54
+ timeout: Float
55
+ }
56
+
57
+ class Options < Stagehand::Internal::Type::BaseModel
58
+ attr_reader model: Stagehand::Models::SessionObserveParams::Options::model?
59
+
60
+ def model=: (
61
+ Stagehand::Models::SessionObserveParams::Options::model
62
+ ) -> Stagehand::Models::SessionObserveParams::Options::model
63
+
64
+ attr_reader selector: String?
65
+
66
+ def selector=: (String) -> String
67
+
68
+ attr_reader timeout: Float?
69
+
70
+ def timeout=: (Float) -> Float
71
+
72
+ def initialize: (
73
+ ?model: Stagehand::Models::SessionObserveParams::Options::model,
74
+ ?selector: String,
75
+ ?timeout: Float
76
+ ) -> void
77
+
78
+ def to_hash: -> {
79
+ model: Stagehand::Models::SessionObserveParams::Options::model,
80
+ selector: String,
81
+ timeout: Float
82
+ }
83
+
84
+ type model = Stagehand::ModelConfig | String
85
+
86
+ module Model
87
+ extend Stagehand::Internal::Type::Union
88
+
89
+ def self?.variants: -> ::Array[Stagehand::Models::SessionObserveParams::Options::model]
90
+ end
91
+ end
92
+
93
+ type x_stream_response = :true | :false
94
+
95
+ module XStreamResponse
96
+ extend Stagehand::Internal::Type::Enum
97
+
98
+ TRUE: :true
99
+ FALSE: :false
100
+
101
+ def self?.values: -> ::Array[Stagehand::Models::SessionObserveParams::x_stream_response]
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,89 @@
1
+ module Stagehand
2
+ module Models
3
+ type session_observe_response =
4
+ { data: Stagehand::Models::SessionObserveResponse::Data, success: bool }
5
+
6
+ class SessionObserveResponse < Stagehand::Internal::Type::BaseModel
7
+ attr_accessor data: Stagehand::Models::SessionObserveResponse::Data
8
+
9
+ attr_accessor success: bool
10
+
11
+ def initialize: (
12
+ data: Stagehand::Models::SessionObserveResponse::Data,
13
+ success: bool
14
+ ) -> void
15
+
16
+ def to_hash: -> {
17
+ data: Stagehand::Models::SessionObserveResponse::Data,
18
+ success: bool
19
+ }
20
+
21
+ type data =
22
+ {
23
+ result: ::Array[Stagehand::Models::SessionObserveResponse::Data::Result],
24
+ action_id: String
25
+ }
26
+
27
+ class Data < Stagehand::Internal::Type::BaseModel
28
+ attr_accessor result: ::Array[Stagehand::Models::SessionObserveResponse::Data::Result]
29
+
30
+ attr_reader action_id: String?
31
+
32
+ def action_id=: (String) -> String
33
+
34
+ def initialize: (
35
+ result: ::Array[Stagehand::Models::SessionObserveResponse::Data::Result],
36
+ ?action_id: String
37
+ ) -> void
38
+
39
+ def to_hash: -> {
40
+ result: ::Array[Stagehand::Models::SessionObserveResponse::Data::Result],
41
+ action_id: String
42
+ }
43
+
44
+ type result =
45
+ {
46
+ description: String,
47
+ selector: String,
48
+ arguments: ::Array[String],
49
+ backend_node_id: Float,
50
+ method_: String
51
+ }
52
+
53
+ class Result < Stagehand::Internal::Type::BaseModel
54
+ attr_accessor description: String
55
+
56
+ attr_accessor selector: String
57
+
58
+ attr_reader arguments: ::Array[String]?
59
+
60
+ def arguments=: (::Array[String]) -> ::Array[String]
61
+
62
+ attr_reader backend_node_id: Float?
63
+
64
+ def backend_node_id=: (Float) -> Float
65
+
66
+ attr_reader method_: String?
67
+
68
+ def method_=: (String) -> String
69
+
70
+ def initialize: (
71
+ description: String,
72
+ selector: String,
73
+ ?arguments: ::Array[String],
74
+ ?backend_node_id: Float,
75
+ ?method_: String
76
+ ) -> void
77
+
78
+ def to_hash: -> {
79
+ description: String,
80
+ selector: String,
81
+ arguments: ::Array[String],
82
+ backend_node_id: Float,
83
+ method_: String
84
+ }
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,41 @@
1
+ module Stagehand
2
+ module Models
3
+ type session_replay_params =
4
+ {
5
+ x_stream_response: Stagehand::Models::SessionReplayParams::x_stream_response
6
+ }
7
+ & Stagehand::Internal::Type::request_parameters
8
+
9
+ class SessionReplayParams < Stagehand::Internal::Type::BaseModel
10
+ extend Stagehand::Internal::Type::RequestParameters::Converter
11
+ include Stagehand::Internal::Type::RequestParameters
12
+
13
+ attr_reader x_stream_response: Stagehand::Models::SessionReplayParams::x_stream_response?
14
+
15
+ def x_stream_response=: (
16
+ Stagehand::Models::SessionReplayParams::x_stream_response
17
+ ) -> Stagehand::Models::SessionReplayParams::x_stream_response
18
+
19
+ def initialize: (
20
+ ?x_stream_response: Stagehand::Models::SessionReplayParams::x_stream_response,
21
+ ?request_options: Stagehand::request_opts
22
+ ) -> void
23
+
24
+ def to_hash: -> {
25
+ x_stream_response: Stagehand::Models::SessionReplayParams::x_stream_response,
26
+ request_options: Stagehand::RequestOptions
27
+ }
28
+
29
+ type x_stream_response = :true | :false
30
+
31
+ module XStreamResponse
32
+ extend Stagehand::Internal::Type::Enum
33
+
34
+ TRUE: :true
35
+ FALSE: :false
36
+
37
+ def self?.values: -> ::Array[Stagehand::Models::SessionReplayParams::x_stream_response]
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,166 @@
1
+ module Stagehand
2
+ module Models
3
+ type session_replay_response =
4
+ { data: Stagehand::Models::SessionReplayResponse::Data, success: bool }
5
+
6
+ class SessionReplayResponse < Stagehand::Internal::Type::BaseModel
7
+ attr_accessor data: Stagehand::Models::SessionReplayResponse::Data
8
+
9
+ attr_accessor success: bool
10
+
11
+ def initialize: (
12
+ data: Stagehand::Models::SessionReplayResponse::Data,
13
+ success: bool
14
+ ) -> void
15
+
16
+ def to_hash: -> {
17
+ data: Stagehand::Models::SessionReplayResponse::Data,
18
+ success: bool
19
+ }
20
+
21
+ type data =
22
+ {
23
+ pages: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page],
24
+ client_language: String
25
+ }
26
+
27
+ class Data < Stagehand::Internal::Type::BaseModel
28
+ attr_accessor pages: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page]
29
+
30
+ attr_reader client_language: String?
31
+
32
+ def client_language=: (String) -> String
33
+
34
+ def initialize: (
35
+ pages: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page],
36
+ ?client_language: String
37
+ ) -> void
38
+
39
+ def to_hash: -> {
40
+ pages: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page],
41
+ client_language: String
42
+ }
43
+
44
+ type page =
45
+ {
46
+ actions: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page::Action],
47
+ duration: Float,
48
+ timestamp: Float,
49
+ url: String
50
+ }
51
+
52
+ class Page < Stagehand::Internal::Type::BaseModel
53
+ attr_accessor actions: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page::Action]
54
+
55
+ attr_accessor duration: Float
56
+
57
+ attr_accessor timestamp: Float
58
+
59
+ attr_accessor url: String
60
+
61
+ def initialize: (
62
+ actions: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page::Action],
63
+ duration: Float,
64
+ timestamp: Float,
65
+ url: String
66
+ ) -> void
67
+
68
+ def to_hash: -> {
69
+ actions: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page::Action],
70
+ duration: Float,
71
+ timestamp: Float,
72
+ url: String
73
+ }
74
+
75
+ type action =
76
+ {
77
+ method_: String,
78
+ parameters: ::Hash[Symbol, top],
79
+ result: ::Hash[Symbol, top],
80
+ timestamp: Float,
81
+ end_time: Float,
82
+ token_usage: Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage
83
+ }
84
+
85
+ class Action < Stagehand::Internal::Type::BaseModel
86
+ attr_accessor method_: String
87
+
88
+ attr_accessor parameters: ::Hash[Symbol, top]
89
+
90
+ attr_accessor result: ::Hash[Symbol, top]
91
+
92
+ attr_accessor timestamp: Float
93
+
94
+ attr_reader end_time: Float?
95
+
96
+ def end_time=: (Float) -> Float
97
+
98
+ attr_reader token_usage: Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage?
99
+
100
+ def token_usage=: (
101
+ Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage
102
+ ) -> Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage
103
+
104
+ def initialize: (
105
+ method_: String,
106
+ parameters: ::Hash[Symbol, top],
107
+ result: ::Hash[Symbol, top],
108
+ timestamp: Float,
109
+ ?end_time: Float,
110
+ ?token_usage: Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage
111
+ ) -> void
112
+
113
+ def to_hash: -> {
114
+ method_: String,
115
+ parameters: ::Hash[Symbol, top],
116
+ result: ::Hash[Symbol, top],
117
+ timestamp: Float,
118
+ end_time: Float,
119
+ token_usage: Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage
120
+ }
121
+
122
+ type token_usage =
123
+ {
124
+ cost: Float,
125
+ input_tokens: Float,
126
+ output_tokens: Float,
127
+ time_ms: Float
128
+ }
129
+
130
+ class TokenUsage < Stagehand::Internal::Type::BaseModel
131
+ attr_reader cost: Float?
132
+
133
+ def cost=: (Float) -> Float
134
+
135
+ attr_reader input_tokens: Float?
136
+
137
+ def input_tokens=: (Float) -> Float
138
+
139
+ attr_reader output_tokens: Float?
140
+
141
+ def output_tokens=: (Float) -> Float
142
+
143
+ attr_reader time_ms: Float?
144
+
145
+ def time_ms=: (Float) -> Float
146
+
147
+ def initialize: (
148
+ ?cost: Float,
149
+ ?input_tokens: Float,
150
+ ?output_tokens: Float,
151
+ ?time_ms: Float
152
+ ) -> void
153
+
154
+ def to_hash: -> {
155
+ cost: Float,
156
+ input_tokens: Float,
157
+ output_tokens: Float,
158
+ time_ms: Float
159
+ }
160
+ end
161
+ end
162
+ end
163
+ end
164
+ end
165
+ end
166
+ end