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,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,137 @@
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
+ { pages: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page] }
23
+
24
+ class Data < Stagehand::Internal::Type::BaseModel
25
+ attr_reader pages: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page]?
26
+
27
+ def pages=: (
28
+ ::Array[Stagehand::Models::SessionReplayResponse::Data::Page]
29
+ ) -> ::Array[Stagehand::Models::SessionReplayResponse::Data::Page]
30
+
31
+ def initialize: (
32
+ ?pages: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page]
33
+ ) -> void
34
+
35
+ def to_hash: -> {
36
+ pages: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page]
37
+ }
38
+
39
+ type page =
40
+ {
41
+ actions: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page::Action]
42
+ }
43
+
44
+ class Page < Stagehand::Internal::Type::BaseModel
45
+ attr_reader actions: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page::Action]?
46
+
47
+ def actions=: (
48
+ ::Array[Stagehand::Models::SessionReplayResponse::Data::Page::Action]
49
+ ) -> ::Array[Stagehand::Models::SessionReplayResponse::Data::Page::Action]
50
+
51
+ def initialize: (
52
+ ?actions: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page::Action]
53
+ ) -> void
54
+
55
+ def to_hash: -> {
56
+ actions: ::Array[Stagehand::Models::SessionReplayResponse::Data::Page::Action]
57
+ }
58
+
59
+ type action =
60
+ {
61
+ method_: String,
62
+ token_usage: Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage
63
+ }
64
+
65
+ class Action < Stagehand::Internal::Type::BaseModel
66
+ attr_reader method_: String?
67
+
68
+ def method_=: (String) -> String
69
+
70
+ attr_reader token_usage: Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage?
71
+
72
+ def token_usage=: (
73
+ Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage
74
+ ) -> Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage
75
+
76
+ def initialize: (
77
+ ?method_: String,
78
+ ?token_usage: Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage
79
+ ) -> void
80
+
81
+ def to_hash: -> {
82
+ method_: String,
83
+ token_usage: Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage
84
+ }
85
+
86
+ type token_usage =
87
+ {
88
+ cached_input_tokens: Float,
89
+ input_tokens: Float,
90
+ output_tokens: Float,
91
+ reasoning_tokens: Float,
92
+ time_ms: Float
93
+ }
94
+
95
+ class TokenUsage < Stagehand::Internal::Type::BaseModel
96
+ attr_reader cached_input_tokens: Float?
97
+
98
+ def cached_input_tokens=: (Float) -> Float
99
+
100
+ attr_reader input_tokens: Float?
101
+
102
+ def input_tokens=: (Float) -> Float
103
+
104
+ attr_reader output_tokens: Float?
105
+
106
+ def output_tokens=: (Float) -> Float
107
+
108
+ attr_reader reasoning_tokens: Float?
109
+
110
+ def reasoning_tokens=: (Float) -> Float
111
+
112
+ attr_reader time_ms: Float?
113
+
114
+ def time_ms=: (Float) -> Float
115
+
116
+ def initialize: (
117
+ ?cached_input_tokens: Float,
118
+ ?input_tokens: Float,
119
+ ?output_tokens: Float,
120
+ ?reasoning_tokens: Float,
121
+ ?time_ms: Float
122
+ ) -> void
123
+
124
+ def to_hash: -> {
125
+ cached_input_tokens: Float,
126
+ input_tokens: Float,
127
+ output_tokens: Float,
128
+ reasoning_tokens: Float,
129
+ time_ms: Float
130
+ }
131
+ end
132
+ end
133
+ end
134
+ end
135
+ end
136
+ end
137
+ end