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.
- checksums.yaml +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +185 -0
- data/README.md +394 -31
- data/SECURITY.md +23 -0
- data/lib/stagehand/client.rb +126 -0
- data/lib/stagehand/errors.rb +228 -0
- data/lib/stagehand/file_part.rb +58 -0
- data/lib/stagehand/internal/stream.rb +56 -0
- data/lib/stagehand/internal/transport/base_client.rb +575 -0
- data/lib/stagehand/internal/transport/pooled_net_requester.rb +210 -0
- data/lib/stagehand/internal/type/array_of.rb +168 -0
- data/lib/stagehand/internal/type/base_model.rb +531 -0
- data/lib/stagehand/internal/type/base_page.rb +55 -0
- data/lib/stagehand/internal/type/base_stream.rb +83 -0
- data/lib/stagehand/internal/type/boolean.rb +77 -0
- data/lib/stagehand/internal/type/converter.rb +327 -0
- data/lib/stagehand/internal/type/enum.rb +131 -0
- data/lib/stagehand/internal/type/file_input.rb +111 -0
- data/lib/stagehand/internal/type/hash_of.rb +188 -0
- data/lib/stagehand/internal/type/request_parameters.rb +42 -0
- data/lib/stagehand/internal/type/union.rb +237 -0
- data/lib/stagehand/internal/type/unknown.rb +81 -0
- data/lib/stagehand/internal/util.rb +920 -0
- data/lib/stagehand/internal.rb +20 -0
- data/lib/stagehand/local.rb +439 -0
- data/lib/stagehand/models/action.rb +50 -0
- data/lib/stagehand/models/model_config.rb +55 -0
- data/lib/stagehand/models/session_act_params.rb +112 -0
- data/lib/stagehand/models/session_act_response.rb +127 -0
- data/lib/stagehand/models/session_end_params.rb +33 -0
- data/lib/stagehand/models/session_end_response.rb +17 -0
- data/lib/stagehand/models/session_execute_params.rb +212 -0
- data/lib/stagehand/models/session_execute_response.rb +212 -0
- data/lib/stagehand/models/session_extract_params.rb +107 -0
- data/lib/stagehand/models/session_extract_response.rb +46 -0
- data/lib/stagehand/models/session_navigate_params.rb +107 -0
- data/lib/stagehand/models/session_navigate_response.rb +44 -0
- data/lib/stagehand/models/session_observe_params.rb +99 -0
- data/lib/stagehand/models/session_observe_response.rb +91 -0
- data/lib/stagehand/models/session_replay_params.rb +33 -0
- data/lib/stagehand/models/session_replay_response.rb +100 -0
- data/lib/stagehand/models/session_start_params.rb +762 -0
- data/lib/stagehand/models/session_start_response.rb +55 -0
- data/lib/stagehand/models/stream_event.rb +120 -0
- data/lib/stagehand/models.rb +63 -0
- data/lib/stagehand/request_options.rb +77 -0
- data/lib/stagehand/resources/sessions.rb +488 -0
- data/lib/stagehand/version.rb +3 -1
- data/lib/stagehand.rb +74 -21
- data/manifest.yaml +17 -0
- data/rbi/stagehand/client.rbi +89 -0
- data/rbi/stagehand/errors.rbi +205 -0
- data/rbi/stagehand/file_part.rbi +37 -0
- data/rbi/stagehand/internal/stream.rbi +20 -0
- data/rbi/stagehand/internal/transport/base_client.rbi +314 -0
- data/rbi/stagehand/internal/transport/pooled_net_requester.rbi +83 -0
- data/rbi/stagehand/internal/type/array_of.rbi +104 -0
- data/rbi/stagehand/internal/type/base_model.rbi +308 -0
- data/rbi/stagehand/internal/type/base_page.rbi +42 -0
- data/rbi/stagehand/internal/type/base_stream.rbi +75 -0
- data/rbi/stagehand/internal/type/boolean.rbi +58 -0
- data/rbi/stagehand/internal/type/converter.rbi +216 -0
- data/rbi/stagehand/internal/type/enum.rbi +82 -0
- data/rbi/stagehand/internal/type/file_input.rbi +59 -0
- data/rbi/stagehand/internal/type/hash_of.rbi +104 -0
- data/rbi/stagehand/internal/type/request_parameters.rbi +29 -0
- data/rbi/stagehand/internal/type/union.rbi +128 -0
- data/rbi/stagehand/internal/type/unknown.rbi +58 -0
- data/rbi/stagehand/internal/util.rbi +487 -0
- data/rbi/stagehand/internal.rbi +18 -0
- data/rbi/stagehand/models/action.rbi +77 -0
- data/rbi/stagehand/models/model_config.rbi +94 -0
- data/rbi/stagehand/models/session_act_params.rbi +204 -0
- data/rbi/stagehand/models/session_act_response.rbi +250 -0
- data/rbi/stagehand/models/session_end_params.rbi +87 -0
- data/rbi/stagehand/models/session_end_response.rbi +30 -0
- data/rbi/stagehand/models/session_execute_params.rbi +440 -0
- data/rbi/stagehand/models/session_execute_response.rbi +414 -0
- data/rbi/stagehand/models/session_extract_params.rbi +209 -0
- data/rbi/stagehand/models/session_extract_response.rbi +91 -0
- data/rbi/stagehand/models/session_navigate_params.rbi +240 -0
- data/rbi/stagehand/models/session_navigate_response.rbi +91 -0
- data/rbi/stagehand/models/session_observe_params.rbi +198 -0
- data/rbi/stagehand/models/session_observe_response.rbi +184 -0
- data/rbi/stagehand/models/session_replay_params.rbi +89 -0
- data/rbi/stagehand/models/session_replay_response.rbi +286 -0
- data/rbi/stagehand/models/session_start_params.rbi +1703 -0
- data/rbi/stagehand/models/session_start_response.rbi +102 -0
- data/rbi/stagehand/models/stream_event.rbi +237 -0
- data/rbi/stagehand/models.rbi +25 -0
- data/rbi/stagehand/request_options.rbi +59 -0
- data/rbi/stagehand/resources/sessions.rbi +421 -0
- data/rbi/stagehand/version.rbi +5 -0
- data/sig/stagehand/client.rbs +41 -0
- data/sig/stagehand/errors.rbs +117 -0
- data/sig/stagehand/file_part.rbs +21 -0
- data/sig/stagehand/internal/stream.rbs +9 -0
- data/sig/stagehand/internal/transport/base_client.rbs +133 -0
- data/sig/stagehand/internal/transport/pooled_net_requester.rbs +48 -0
- data/sig/stagehand/internal/type/array_of.rbs +48 -0
- data/sig/stagehand/internal/type/base_model.rbs +102 -0
- data/sig/stagehand/internal/type/base_page.rbs +24 -0
- data/sig/stagehand/internal/type/base_stream.rbs +38 -0
- data/sig/stagehand/internal/type/boolean.rbs +26 -0
- data/sig/stagehand/internal/type/converter.rbs +79 -0
- data/sig/stagehand/internal/type/enum.rbs +32 -0
- data/sig/stagehand/internal/type/file_input.rbs +25 -0
- data/sig/stagehand/internal/type/hash_of.rbs +48 -0
- data/sig/stagehand/internal/type/request_parameters.rbs +19 -0
- data/sig/stagehand/internal/type/union.rbs +52 -0
- data/sig/stagehand/internal/type/unknown.rbs +26 -0
- data/sig/stagehand/internal/util.rbs +185 -0
- data/sig/stagehand/internal.rbs +9 -0
- data/sig/stagehand/models/action.rbs +46 -0
- data/sig/stagehand/models/model_config.rbs +56 -0
- data/sig/stagehand/models/session_act_params.rbs +111 -0
- data/sig/stagehand/models/session_act_response.rbs +121 -0
- data/sig/stagehand/models/session_end_params.rbs +41 -0
- data/sig/stagehand/models/session_end_response.rbs +13 -0
- data/sig/stagehand/models/session_execute_params.rbs +193 -0
- data/sig/stagehand/models/session_execute_response.rbs +215 -0
- data/sig/stagehand/models/session_extract_params.rbs +112 -0
- data/sig/stagehand/models/session_extract_response.rbs +36 -0
- data/sig/stagehand/models/session_navigate_params.rbs +114 -0
- data/sig/stagehand/models/session_navigate_response.rbs +36 -0
- data/sig/stagehand/models/session_observe_params.rbs +105 -0
- data/sig/stagehand/models/session_observe_response.rbs +89 -0
- data/sig/stagehand/models/session_replay_params.rbs +41 -0
- data/sig/stagehand/models/session_replay_response.rbs +137 -0
- data/sig/stagehand/models/session_start_params.rbs +866 -0
- data/sig/stagehand/models/session_start_response.rbs +44 -0
- data/sig/stagehand/models/stream_event.rbs +109 -0
- data/sig/stagehand/models.rbs +23 -0
- data/sig/stagehand/request_options.rbs +34 -0
- data/sig/stagehand/resources/sessions.rbs +121 -0
- data/sig/stagehand/version.rbs +3 -0
- metadata +173 -42
- data/.gitignore +0 -16
- data/Gemfile +0 -4
- data/Rakefile +0 -10
- data/lib/stagehand/railtie.rb +0 -14
- data/spec/spec_helper.rb +0 -7
- data/spec/stagehand_spec.rb +0 -15
- data/stagehand.gemspec +0 -24
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
# @see Stagehand::Resources::Sessions#extract
|
|
6
|
+
#
|
|
7
|
+
# @see Stagehand::Resources::Sessions#extract_streaming
|
|
8
|
+
class SessionExtractParams < Stagehand::Internal::Type::BaseModel
|
|
9
|
+
extend Stagehand::Internal::Type::RequestParameters::Converter
|
|
10
|
+
include Stagehand::Internal::Type::RequestParameters
|
|
11
|
+
|
|
12
|
+
# @!attribute frame_id
|
|
13
|
+
# Target frame ID for the extraction
|
|
14
|
+
#
|
|
15
|
+
# @return [String, nil]
|
|
16
|
+
optional :frame_id, String, api_name: :frameId, nil?: true
|
|
17
|
+
|
|
18
|
+
# @!attribute instruction
|
|
19
|
+
# Natural language instruction for what to extract
|
|
20
|
+
#
|
|
21
|
+
# @return [String, nil]
|
|
22
|
+
optional :instruction, String
|
|
23
|
+
|
|
24
|
+
# @!attribute options
|
|
25
|
+
#
|
|
26
|
+
# @return [Stagehand::Models::SessionExtractParams::Options, nil]
|
|
27
|
+
optional :options, -> { Stagehand::SessionExtractParams::Options }
|
|
28
|
+
|
|
29
|
+
# @!attribute schema
|
|
30
|
+
# JSON Schema defining the structure of data to extract
|
|
31
|
+
#
|
|
32
|
+
# @return [Hash{Symbol=>Object}, nil]
|
|
33
|
+
optional :schema, Stagehand::Internal::Type::HashOf[Stagehand::Internal::Type::Unknown]
|
|
34
|
+
|
|
35
|
+
# @!attribute x_stream_response
|
|
36
|
+
# Whether to stream the response via SSE
|
|
37
|
+
#
|
|
38
|
+
# @return [Symbol, Stagehand::Models::SessionExtractParams::XStreamResponse, nil]
|
|
39
|
+
optional :x_stream_response, enum: -> { Stagehand::SessionExtractParams::XStreamResponse }
|
|
40
|
+
|
|
41
|
+
# @!method initialize(frame_id: nil, instruction: nil, options: nil, schema: nil, x_stream_response: nil, request_options: {})
|
|
42
|
+
# @param frame_id [String, nil] Target frame ID for the extraction
|
|
43
|
+
#
|
|
44
|
+
# @param instruction [String] Natural language instruction for what to extract
|
|
45
|
+
#
|
|
46
|
+
# @param options [Stagehand::Models::SessionExtractParams::Options]
|
|
47
|
+
#
|
|
48
|
+
# @param schema [Hash{Symbol=>Object}] JSON Schema defining the structure of data to extract
|
|
49
|
+
#
|
|
50
|
+
# @param x_stream_response [Symbol, Stagehand::Models::SessionExtractParams::XStreamResponse] Whether to stream the response via SSE
|
|
51
|
+
#
|
|
52
|
+
# @param request_options [Stagehand::RequestOptions, Hash{Symbol=>Object}]
|
|
53
|
+
|
|
54
|
+
class Options < Stagehand::Internal::Type::BaseModel
|
|
55
|
+
# @!attribute model
|
|
56
|
+
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
57
|
+
#
|
|
58
|
+
# @return [Stagehand::Models::ModelConfig, String, nil]
|
|
59
|
+
optional :model, union: -> { Stagehand::SessionExtractParams::Options::Model }
|
|
60
|
+
|
|
61
|
+
# @!attribute selector
|
|
62
|
+
# CSS selector to scope extraction to a specific element
|
|
63
|
+
#
|
|
64
|
+
# @return [String, nil]
|
|
65
|
+
optional :selector, String
|
|
66
|
+
|
|
67
|
+
# @!attribute timeout
|
|
68
|
+
# Timeout in ms for the extraction
|
|
69
|
+
#
|
|
70
|
+
# @return [Float, nil]
|
|
71
|
+
optional :timeout, Float
|
|
72
|
+
|
|
73
|
+
# @!method initialize(model: nil, selector: nil, timeout: nil)
|
|
74
|
+
# @param model [Stagehand::Models::ModelConfig, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
75
|
+
#
|
|
76
|
+
# @param selector [String] CSS selector to scope extraction to a specific element
|
|
77
|
+
#
|
|
78
|
+
# @param timeout [Float] Timeout in ms for the extraction
|
|
79
|
+
|
|
80
|
+
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
81
|
+
#
|
|
82
|
+
# @see Stagehand::Models::SessionExtractParams::Options#model
|
|
83
|
+
module Model
|
|
84
|
+
extend Stagehand::Internal::Type::Union
|
|
85
|
+
|
|
86
|
+
variant -> { Stagehand::ModelConfig }
|
|
87
|
+
|
|
88
|
+
variant String
|
|
89
|
+
|
|
90
|
+
# @!method self.variants
|
|
91
|
+
# @return [Array(Stagehand::Models::ModelConfig, String)]
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Whether to stream the response via SSE
|
|
96
|
+
module XStreamResponse
|
|
97
|
+
extend Stagehand::Internal::Type::Enum
|
|
98
|
+
|
|
99
|
+
TRUE = :true
|
|
100
|
+
FALSE = :false
|
|
101
|
+
|
|
102
|
+
# @!method self.values
|
|
103
|
+
# @return [Array<Symbol>]
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
# @see Stagehand::Resources::Sessions#extract
|
|
6
|
+
#
|
|
7
|
+
# @see Stagehand::Resources::Sessions#extract_streaming
|
|
8
|
+
class SessionExtractResponse < Stagehand::Internal::Type::BaseModel
|
|
9
|
+
# @!attribute data
|
|
10
|
+
#
|
|
11
|
+
# @return [Stagehand::Models::SessionExtractResponse::Data]
|
|
12
|
+
required :data, -> { Stagehand::Models::SessionExtractResponse::Data }
|
|
13
|
+
|
|
14
|
+
# @!attribute success
|
|
15
|
+
# Indicates whether the request was successful
|
|
16
|
+
#
|
|
17
|
+
# @return [Boolean]
|
|
18
|
+
required :success, Stagehand::Internal::Type::Boolean
|
|
19
|
+
|
|
20
|
+
# @!method initialize(data:, success:)
|
|
21
|
+
# @param data [Stagehand::Models::SessionExtractResponse::Data]
|
|
22
|
+
#
|
|
23
|
+
# @param success [Boolean] Indicates whether the request was successful
|
|
24
|
+
|
|
25
|
+
# @see Stagehand::Models::SessionExtractResponse#data
|
|
26
|
+
class Data < Stagehand::Internal::Type::BaseModel
|
|
27
|
+
# @!attribute result
|
|
28
|
+
# Extracted data matching the requested schema
|
|
29
|
+
#
|
|
30
|
+
# @return [Object]
|
|
31
|
+
required :result, Stagehand::Internal::Type::Unknown
|
|
32
|
+
|
|
33
|
+
# @!attribute action_id
|
|
34
|
+
# Action ID for tracking
|
|
35
|
+
#
|
|
36
|
+
# @return [String, nil]
|
|
37
|
+
optional :action_id, String, api_name: :actionId
|
|
38
|
+
|
|
39
|
+
# @!method initialize(result:, action_id: nil)
|
|
40
|
+
# @param result [Object] Extracted data matching the requested schema
|
|
41
|
+
#
|
|
42
|
+
# @param action_id [String] Action ID for tracking
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
# @see Stagehand::Resources::Sessions#navigate
|
|
6
|
+
class SessionNavigateParams < Stagehand::Internal::Type::BaseModel
|
|
7
|
+
extend Stagehand::Internal::Type::RequestParameters::Converter
|
|
8
|
+
include Stagehand::Internal::Type::RequestParameters
|
|
9
|
+
|
|
10
|
+
# @!attribute url
|
|
11
|
+
# URL to navigate to
|
|
12
|
+
#
|
|
13
|
+
# @return [String]
|
|
14
|
+
required :url, String
|
|
15
|
+
|
|
16
|
+
# @!attribute frame_id
|
|
17
|
+
# Target frame ID for the navigation
|
|
18
|
+
#
|
|
19
|
+
# @return [String, nil]
|
|
20
|
+
optional :frame_id, String, api_name: :frameId, nil?: true
|
|
21
|
+
|
|
22
|
+
# @!attribute options
|
|
23
|
+
#
|
|
24
|
+
# @return [Stagehand::Models::SessionNavigateParams::Options, nil]
|
|
25
|
+
optional :options, -> { Stagehand::SessionNavigateParams::Options }
|
|
26
|
+
|
|
27
|
+
# @!attribute stream_response
|
|
28
|
+
# Whether to stream the response via SSE
|
|
29
|
+
#
|
|
30
|
+
# @return [Boolean, nil]
|
|
31
|
+
optional :stream_response, Stagehand::Internal::Type::Boolean, api_name: :streamResponse
|
|
32
|
+
|
|
33
|
+
# @!attribute x_stream_response
|
|
34
|
+
# Whether to stream the response via SSE
|
|
35
|
+
#
|
|
36
|
+
# @return [Symbol, Stagehand::Models::SessionNavigateParams::XStreamResponse, nil]
|
|
37
|
+
optional :x_stream_response, enum: -> { Stagehand::SessionNavigateParams::XStreamResponse }
|
|
38
|
+
|
|
39
|
+
# @!method initialize(url:, frame_id: nil, options: nil, stream_response: nil, x_stream_response: nil, request_options: {})
|
|
40
|
+
# @param url [String] URL to navigate to
|
|
41
|
+
#
|
|
42
|
+
# @param frame_id [String, nil] Target frame ID for the navigation
|
|
43
|
+
#
|
|
44
|
+
# @param options [Stagehand::Models::SessionNavigateParams::Options]
|
|
45
|
+
#
|
|
46
|
+
# @param stream_response [Boolean] Whether to stream the response via SSE
|
|
47
|
+
#
|
|
48
|
+
# @param x_stream_response [Symbol, Stagehand::Models::SessionNavigateParams::XStreamResponse] Whether to stream the response via SSE
|
|
49
|
+
#
|
|
50
|
+
# @param request_options [Stagehand::RequestOptions, Hash{Symbol=>Object}]
|
|
51
|
+
|
|
52
|
+
class Options < Stagehand::Internal::Type::BaseModel
|
|
53
|
+
# @!attribute referer
|
|
54
|
+
# Referer header to send with the request
|
|
55
|
+
#
|
|
56
|
+
# @return [String, nil]
|
|
57
|
+
optional :referer, String
|
|
58
|
+
|
|
59
|
+
# @!attribute timeout
|
|
60
|
+
# Timeout in ms for the navigation
|
|
61
|
+
#
|
|
62
|
+
# @return [Float, nil]
|
|
63
|
+
optional :timeout, Float
|
|
64
|
+
|
|
65
|
+
# @!attribute wait_until
|
|
66
|
+
# When to consider navigation complete
|
|
67
|
+
#
|
|
68
|
+
# @return [Symbol, Stagehand::Models::SessionNavigateParams::Options::WaitUntil, nil]
|
|
69
|
+
optional :wait_until,
|
|
70
|
+
enum: -> { Stagehand::SessionNavigateParams::Options::WaitUntil },
|
|
71
|
+
api_name: :waitUntil
|
|
72
|
+
|
|
73
|
+
# @!method initialize(referer: nil, timeout: nil, wait_until: nil)
|
|
74
|
+
# @param referer [String] Referer header to send with the request
|
|
75
|
+
#
|
|
76
|
+
# @param timeout [Float] Timeout in ms for the navigation
|
|
77
|
+
#
|
|
78
|
+
# @param wait_until [Symbol, Stagehand::Models::SessionNavigateParams::Options::WaitUntil] When to consider navigation complete
|
|
79
|
+
|
|
80
|
+
# When to consider navigation complete
|
|
81
|
+
#
|
|
82
|
+
# @see Stagehand::Models::SessionNavigateParams::Options#wait_until
|
|
83
|
+
module WaitUntil
|
|
84
|
+
extend Stagehand::Internal::Type::Enum
|
|
85
|
+
|
|
86
|
+
LOAD = :load
|
|
87
|
+
DOMCONTENTLOADED = :domcontentloaded
|
|
88
|
+
NETWORKIDLE = :networkidle
|
|
89
|
+
|
|
90
|
+
# @!method self.values
|
|
91
|
+
# @return [Array<Symbol>]
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Whether to stream the response via SSE
|
|
96
|
+
module XStreamResponse
|
|
97
|
+
extend Stagehand::Internal::Type::Enum
|
|
98
|
+
|
|
99
|
+
TRUE = :true
|
|
100
|
+
FALSE = :false
|
|
101
|
+
|
|
102
|
+
# @!method self.values
|
|
103
|
+
# @return [Array<Symbol>]
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
# @see Stagehand::Resources::Sessions#navigate
|
|
6
|
+
class SessionNavigateResponse < Stagehand::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute data
|
|
8
|
+
#
|
|
9
|
+
# @return [Stagehand::Models::SessionNavigateResponse::Data]
|
|
10
|
+
required :data, -> { Stagehand::Models::SessionNavigateResponse::Data }
|
|
11
|
+
|
|
12
|
+
# @!attribute success
|
|
13
|
+
# Indicates whether the request was successful
|
|
14
|
+
#
|
|
15
|
+
# @return [Boolean]
|
|
16
|
+
required :success, Stagehand::Internal::Type::Boolean
|
|
17
|
+
|
|
18
|
+
# @!method initialize(data:, success:)
|
|
19
|
+
# @param data [Stagehand::Models::SessionNavigateResponse::Data]
|
|
20
|
+
#
|
|
21
|
+
# @param success [Boolean] Indicates whether the request was successful
|
|
22
|
+
|
|
23
|
+
# @see Stagehand::Models::SessionNavigateResponse#data
|
|
24
|
+
class Data < Stagehand::Internal::Type::BaseModel
|
|
25
|
+
# @!attribute result
|
|
26
|
+
# Navigation response (Playwright Response object or null)
|
|
27
|
+
#
|
|
28
|
+
# @return [Object]
|
|
29
|
+
required :result, Stagehand::Internal::Type::Unknown
|
|
30
|
+
|
|
31
|
+
# @!attribute action_id
|
|
32
|
+
# Action ID for tracking
|
|
33
|
+
#
|
|
34
|
+
# @return [String, nil]
|
|
35
|
+
optional :action_id, String, api_name: :actionId
|
|
36
|
+
|
|
37
|
+
# @!method initialize(result:, action_id: nil)
|
|
38
|
+
# @param result [Object] Navigation response (Playwright Response object or null)
|
|
39
|
+
#
|
|
40
|
+
# @param action_id [String] Action ID for tracking
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
# @see Stagehand::Resources::Sessions#observe
|
|
6
|
+
#
|
|
7
|
+
# @see Stagehand::Resources::Sessions#observe_streaming
|
|
8
|
+
class SessionObserveParams < Stagehand::Internal::Type::BaseModel
|
|
9
|
+
extend Stagehand::Internal::Type::RequestParameters::Converter
|
|
10
|
+
include Stagehand::Internal::Type::RequestParameters
|
|
11
|
+
|
|
12
|
+
# @!attribute frame_id
|
|
13
|
+
# Target frame ID for the observation
|
|
14
|
+
#
|
|
15
|
+
# @return [String, nil]
|
|
16
|
+
optional :frame_id, String, api_name: :frameId, nil?: true
|
|
17
|
+
|
|
18
|
+
# @!attribute instruction
|
|
19
|
+
# Natural language instruction for what actions to find
|
|
20
|
+
#
|
|
21
|
+
# @return [String, nil]
|
|
22
|
+
optional :instruction, String
|
|
23
|
+
|
|
24
|
+
# @!attribute options
|
|
25
|
+
#
|
|
26
|
+
# @return [Stagehand::Models::SessionObserveParams::Options, nil]
|
|
27
|
+
optional :options, -> { Stagehand::SessionObserveParams::Options }
|
|
28
|
+
|
|
29
|
+
# @!attribute x_stream_response
|
|
30
|
+
# Whether to stream the response via SSE
|
|
31
|
+
#
|
|
32
|
+
# @return [Symbol, Stagehand::Models::SessionObserveParams::XStreamResponse, nil]
|
|
33
|
+
optional :x_stream_response, enum: -> { Stagehand::SessionObserveParams::XStreamResponse }
|
|
34
|
+
|
|
35
|
+
# @!method initialize(frame_id: nil, instruction: nil, options: nil, x_stream_response: nil, request_options: {})
|
|
36
|
+
# @param frame_id [String, nil] Target frame ID for the observation
|
|
37
|
+
#
|
|
38
|
+
# @param instruction [String] Natural language instruction for what actions to find
|
|
39
|
+
#
|
|
40
|
+
# @param options [Stagehand::Models::SessionObserveParams::Options]
|
|
41
|
+
#
|
|
42
|
+
# @param x_stream_response [Symbol, Stagehand::Models::SessionObserveParams::XStreamResponse] Whether to stream the response via SSE
|
|
43
|
+
#
|
|
44
|
+
# @param request_options [Stagehand::RequestOptions, Hash{Symbol=>Object}]
|
|
45
|
+
|
|
46
|
+
class Options < Stagehand::Internal::Type::BaseModel
|
|
47
|
+
# @!attribute model
|
|
48
|
+
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
49
|
+
#
|
|
50
|
+
# @return [Stagehand::Models::ModelConfig, String, nil]
|
|
51
|
+
optional :model, union: -> { Stagehand::SessionObserveParams::Options::Model }
|
|
52
|
+
|
|
53
|
+
# @!attribute selector
|
|
54
|
+
# CSS selector to scope observation to a specific element
|
|
55
|
+
#
|
|
56
|
+
# @return [String, nil]
|
|
57
|
+
optional :selector, String
|
|
58
|
+
|
|
59
|
+
# @!attribute timeout
|
|
60
|
+
# Timeout in ms for the observation
|
|
61
|
+
#
|
|
62
|
+
# @return [Float, nil]
|
|
63
|
+
optional :timeout, Float
|
|
64
|
+
|
|
65
|
+
# @!method initialize(model: nil, selector: nil, timeout: nil)
|
|
66
|
+
# @param model [Stagehand::Models::ModelConfig, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
67
|
+
#
|
|
68
|
+
# @param selector [String] CSS selector to scope observation to a specific element
|
|
69
|
+
#
|
|
70
|
+
# @param timeout [Float] Timeout in ms for the observation
|
|
71
|
+
|
|
72
|
+
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
73
|
+
#
|
|
74
|
+
# @see Stagehand::Models::SessionObserveParams::Options#model
|
|
75
|
+
module Model
|
|
76
|
+
extend Stagehand::Internal::Type::Union
|
|
77
|
+
|
|
78
|
+
variant -> { Stagehand::ModelConfig }
|
|
79
|
+
|
|
80
|
+
variant String
|
|
81
|
+
|
|
82
|
+
# @!method self.variants
|
|
83
|
+
# @return [Array(Stagehand::Models::ModelConfig, String)]
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Whether to stream the response via SSE
|
|
88
|
+
module XStreamResponse
|
|
89
|
+
extend Stagehand::Internal::Type::Enum
|
|
90
|
+
|
|
91
|
+
TRUE = :true
|
|
92
|
+
FALSE = :false
|
|
93
|
+
|
|
94
|
+
# @!method self.values
|
|
95
|
+
# @return [Array<Symbol>]
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
# @see Stagehand::Resources::Sessions#observe
|
|
6
|
+
#
|
|
7
|
+
# @see Stagehand::Resources::Sessions#observe_streaming
|
|
8
|
+
class SessionObserveResponse < Stagehand::Internal::Type::BaseModel
|
|
9
|
+
# @!attribute data
|
|
10
|
+
#
|
|
11
|
+
# @return [Stagehand::Models::SessionObserveResponse::Data]
|
|
12
|
+
required :data, -> { Stagehand::Models::SessionObserveResponse::Data }
|
|
13
|
+
|
|
14
|
+
# @!attribute success
|
|
15
|
+
# Indicates whether the request was successful
|
|
16
|
+
#
|
|
17
|
+
# @return [Boolean]
|
|
18
|
+
required :success, Stagehand::Internal::Type::Boolean
|
|
19
|
+
|
|
20
|
+
# @!method initialize(data:, success:)
|
|
21
|
+
# @param data [Stagehand::Models::SessionObserveResponse::Data]
|
|
22
|
+
#
|
|
23
|
+
# @param success [Boolean] Indicates whether the request was successful
|
|
24
|
+
|
|
25
|
+
# @see Stagehand::Models::SessionObserveResponse#data
|
|
26
|
+
class Data < Stagehand::Internal::Type::BaseModel
|
|
27
|
+
# @!attribute result
|
|
28
|
+
#
|
|
29
|
+
# @return [Array<Stagehand::Models::SessionObserveResponse::Data::Result>]
|
|
30
|
+
required :result,
|
|
31
|
+
-> { Stagehand::Internal::Type::ArrayOf[Stagehand::Models::SessionObserveResponse::Data::Result] }
|
|
32
|
+
|
|
33
|
+
# @!attribute action_id
|
|
34
|
+
# Action ID for tracking
|
|
35
|
+
#
|
|
36
|
+
# @return [String, nil]
|
|
37
|
+
optional :action_id, String, api_name: :actionId
|
|
38
|
+
|
|
39
|
+
# @!method initialize(result:, action_id: nil)
|
|
40
|
+
# @param result [Array<Stagehand::Models::SessionObserveResponse::Data::Result>]
|
|
41
|
+
#
|
|
42
|
+
# @param action_id [String] Action ID for tracking
|
|
43
|
+
|
|
44
|
+
class Result < Stagehand::Internal::Type::BaseModel
|
|
45
|
+
# @!attribute description
|
|
46
|
+
# Human-readable description of the action
|
|
47
|
+
#
|
|
48
|
+
# @return [String]
|
|
49
|
+
required :description, String
|
|
50
|
+
|
|
51
|
+
# @!attribute selector
|
|
52
|
+
# CSS selector or XPath for the element
|
|
53
|
+
#
|
|
54
|
+
# @return [String]
|
|
55
|
+
required :selector, String
|
|
56
|
+
|
|
57
|
+
# @!attribute arguments
|
|
58
|
+
# Arguments to pass to the method
|
|
59
|
+
#
|
|
60
|
+
# @return [Array<String>, nil]
|
|
61
|
+
optional :arguments, Stagehand::Internal::Type::ArrayOf[String]
|
|
62
|
+
|
|
63
|
+
# @!attribute backend_node_id
|
|
64
|
+
# Backend node ID for the element
|
|
65
|
+
#
|
|
66
|
+
# @return [Float, nil]
|
|
67
|
+
optional :backend_node_id, Float, api_name: :backendNodeId
|
|
68
|
+
|
|
69
|
+
# @!attribute method_
|
|
70
|
+
# The method to execute (click, fill, etc.)
|
|
71
|
+
#
|
|
72
|
+
# @return [String, nil]
|
|
73
|
+
optional :method_, String, api_name: :method
|
|
74
|
+
|
|
75
|
+
# @!method initialize(description:, selector:, arguments: nil, backend_node_id: nil, method_: nil)
|
|
76
|
+
# Action object returned by observe and used by act
|
|
77
|
+
#
|
|
78
|
+
# @param description [String] Human-readable description of the action
|
|
79
|
+
#
|
|
80
|
+
# @param selector [String] CSS selector or XPath for the element
|
|
81
|
+
#
|
|
82
|
+
# @param arguments [Array<String>] Arguments to pass to the method
|
|
83
|
+
#
|
|
84
|
+
# @param backend_node_id [Float] Backend node ID for the element
|
|
85
|
+
#
|
|
86
|
+
# @param method_ [String] The method to execute (click, fill, etc.)
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
# @see Stagehand::Resources::Sessions#replay
|
|
6
|
+
class SessionReplayParams < Stagehand::Internal::Type::BaseModel
|
|
7
|
+
extend Stagehand::Internal::Type::RequestParameters::Converter
|
|
8
|
+
include Stagehand::Internal::Type::RequestParameters
|
|
9
|
+
|
|
10
|
+
# @!attribute x_stream_response
|
|
11
|
+
# Whether to stream the response via SSE
|
|
12
|
+
#
|
|
13
|
+
# @return [Symbol, Stagehand::Models::SessionReplayParams::XStreamResponse, nil]
|
|
14
|
+
optional :x_stream_response, enum: -> { Stagehand::SessionReplayParams::XStreamResponse }
|
|
15
|
+
|
|
16
|
+
# @!method initialize(x_stream_response: nil, request_options: {})
|
|
17
|
+
# @param x_stream_response [Symbol, Stagehand::Models::SessionReplayParams::XStreamResponse] Whether to stream the response via SSE
|
|
18
|
+
#
|
|
19
|
+
# @param request_options [Stagehand::RequestOptions, Hash{Symbol=>Object}]
|
|
20
|
+
|
|
21
|
+
# Whether to stream the response via SSE
|
|
22
|
+
module XStreamResponse
|
|
23
|
+
extend Stagehand::Internal::Type::Enum
|
|
24
|
+
|
|
25
|
+
TRUE = :true
|
|
26
|
+
FALSE = :false
|
|
27
|
+
|
|
28
|
+
# @!method self.values
|
|
29
|
+
# @return [Array<Symbol>]
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
# @see Stagehand::Resources::Sessions#replay
|
|
6
|
+
class SessionReplayResponse < Stagehand::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute data
|
|
8
|
+
#
|
|
9
|
+
# @return [Stagehand::Models::SessionReplayResponse::Data]
|
|
10
|
+
required :data, -> { Stagehand::Models::SessionReplayResponse::Data }
|
|
11
|
+
|
|
12
|
+
# @!attribute success
|
|
13
|
+
# Indicates whether the request was successful
|
|
14
|
+
#
|
|
15
|
+
# @return [Boolean]
|
|
16
|
+
required :success, Stagehand::Internal::Type::Boolean
|
|
17
|
+
|
|
18
|
+
# @!method initialize(data:, success:)
|
|
19
|
+
# @param data [Stagehand::Models::SessionReplayResponse::Data]
|
|
20
|
+
#
|
|
21
|
+
# @param success [Boolean] Indicates whether the request was successful
|
|
22
|
+
|
|
23
|
+
# @see Stagehand::Models::SessionReplayResponse#data
|
|
24
|
+
class Data < Stagehand::Internal::Type::BaseModel
|
|
25
|
+
# @!attribute pages
|
|
26
|
+
#
|
|
27
|
+
# @return [Array<Stagehand::Models::SessionReplayResponse::Data::Page>, nil]
|
|
28
|
+
optional :pages,
|
|
29
|
+
-> { Stagehand::Internal::Type::ArrayOf[Stagehand::Models::SessionReplayResponse::Data::Page] }
|
|
30
|
+
|
|
31
|
+
# @!method initialize(pages: nil)
|
|
32
|
+
# @param pages [Array<Stagehand::Models::SessionReplayResponse::Data::Page>]
|
|
33
|
+
|
|
34
|
+
class Page < Stagehand::Internal::Type::BaseModel
|
|
35
|
+
# @!attribute actions
|
|
36
|
+
#
|
|
37
|
+
# @return [Array<Stagehand::Models::SessionReplayResponse::Data::Page::Action>, nil]
|
|
38
|
+
optional :actions,
|
|
39
|
+
-> { Stagehand::Internal::Type::ArrayOf[Stagehand::Models::SessionReplayResponse::Data::Page::Action] }
|
|
40
|
+
|
|
41
|
+
# @!method initialize(actions: nil)
|
|
42
|
+
# @param actions [Array<Stagehand::Models::SessionReplayResponse::Data::Page::Action>]
|
|
43
|
+
|
|
44
|
+
class Action < Stagehand::Internal::Type::BaseModel
|
|
45
|
+
# @!attribute method_
|
|
46
|
+
#
|
|
47
|
+
# @return [String, nil]
|
|
48
|
+
optional :method_, String, api_name: :method
|
|
49
|
+
|
|
50
|
+
# @!attribute token_usage
|
|
51
|
+
#
|
|
52
|
+
# @return [Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage, nil]
|
|
53
|
+
optional :token_usage,
|
|
54
|
+
-> { Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage },
|
|
55
|
+
api_name: :tokenUsage
|
|
56
|
+
|
|
57
|
+
# @!method initialize(method_: nil, token_usage: nil)
|
|
58
|
+
# @param method_ [String]
|
|
59
|
+
# @param token_usage [Stagehand::Models::SessionReplayResponse::Data::Page::Action::TokenUsage]
|
|
60
|
+
|
|
61
|
+
# @see Stagehand::Models::SessionReplayResponse::Data::Page::Action#token_usage
|
|
62
|
+
class TokenUsage < Stagehand::Internal::Type::BaseModel
|
|
63
|
+
# @!attribute cached_input_tokens
|
|
64
|
+
#
|
|
65
|
+
# @return [Float, nil]
|
|
66
|
+
optional :cached_input_tokens, Float, api_name: :cachedInputTokens
|
|
67
|
+
|
|
68
|
+
# @!attribute input_tokens
|
|
69
|
+
#
|
|
70
|
+
# @return [Float, nil]
|
|
71
|
+
optional :input_tokens, Float, api_name: :inputTokens
|
|
72
|
+
|
|
73
|
+
# @!attribute output_tokens
|
|
74
|
+
#
|
|
75
|
+
# @return [Float, nil]
|
|
76
|
+
optional :output_tokens, Float, api_name: :outputTokens
|
|
77
|
+
|
|
78
|
+
# @!attribute reasoning_tokens
|
|
79
|
+
#
|
|
80
|
+
# @return [Float, nil]
|
|
81
|
+
optional :reasoning_tokens, Float, api_name: :reasoningTokens
|
|
82
|
+
|
|
83
|
+
# @!attribute time_ms
|
|
84
|
+
#
|
|
85
|
+
# @return [Float, nil]
|
|
86
|
+
optional :time_ms, Float, api_name: :timeMs
|
|
87
|
+
|
|
88
|
+
# @!method initialize(cached_input_tokens: nil, input_tokens: nil, output_tokens: nil, reasoning_tokens: nil, time_ms: nil)
|
|
89
|
+
# @param cached_input_tokens [Float]
|
|
90
|
+
# @param input_tokens [Float]
|
|
91
|
+
# @param output_tokens [Float]
|
|
92
|
+
# @param reasoning_tokens [Float]
|
|
93
|
+
# @param time_ms [Float]
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|