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,127 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
# @see Stagehand::Resources::Sessions#act
|
|
6
|
+
#
|
|
7
|
+
# @see Stagehand::Resources::Sessions#act_streaming
|
|
8
|
+
class SessionActResponse < Stagehand::Internal::Type::BaseModel
|
|
9
|
+
# @!attribute data
|
|
10
|
+
#
|
|
11
|
+
# @return [Stagehand::Models::SessionActResponse::Data]
|
|
12
|
+
required :data, -> { Stagehand::Models::SessionActResponse::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::SessionActResponse::Data]
|
|
22
|
+
#
|
|
23
|
+
# @param success [Boolean] Indicates whether the request was successful
|
|
24
|
+
|
|
25
|
+
# @see Stagehand::Models::SessionActResponse#data
|
|
26
|
+
class Data < Stagehand::Internal::Type::BaseModel
|
|
27
|
+
# @!attribute result
|
|
28
|
+
#
|
|
29
|
+
# @return [Stagehand::Models::SessionActResponse::Data::Result]
|
|
30
|
+
required :result, -> { Stagehand::Models::SessionActResponse::Data::Result }
|
|
31
|
+
|
|
32
|
+
# @!attribute action_id
|
|
33
|
+
# Action ID for tracking
|
|
34
|
+
#
|
|
35
|
+
# @return [String, nil]
|
|
36
|
+
optional :action_id, String, api_name: :actionId
|
|
37
|
+
|
|
38
|
+
# @!method initialize(result:, action_id: nil)
|
|
39
|
+
# @param result [Stagehand::Models::SessionActResponse::Data::Result]
|
|
40
|
+
#
|
|
41
|
+
# @param action_id [String] Action ID for tracking
|
|
42
|
+
|
|
43
|
+
# @see Stagehand::Models::SessionActResponse::Data#result
|
|
44
|
+
class Result < Stagehand::Internal::Type::BaseModel
|
|
45
|
+
# @!attribute action_description
|
|
46
|
+
# Description of the action that was performed
|
|
47
|
+
#
|
|
48
|
+
# @return [String]
|
|
49
|
+
required :action_description, String, api_name: :actionDescription
|
|
50
|
+
|
|
51
|
+
# @!attribute actions
|
|
52
|
+
# List of actions that were executed
|
|
53
|
+
#
|
|
54
|
+
# @return [Array<Stagehand::Models::SessionActResponse::Data::Result::Action>]
|
|
55
|
+
required :actions,
|
|
56
|
+
-> { Stagehand::Internal::Type::ArrayOf[Stagehand::Models::SessionActResponse::Data::Result::Action] }
|
|
57
|
+
|
|
58
|
+
# @!attribute message
|
|
59
|
+
# Human-readable result message
|
|
60
|
+
#
|
|
61
|
+
# @return [String]
|
|
62
|
+
required :message, String
|
|
63
|
+
|
|
64
|
+
# @!attribute success
|
|
65
|
+
# Whether the action completed successfully
|
|
66
|
+
#
|
|
67
|
+
# @return [Boolean]
|
|
68
|
+
required :success, Stagehand::Internal::Type::Boolean
|
|
69
|
+
|
|
70
|
+
# @!method initialize(action_description:, actions:, message:, success:)
|
|
71
|
+
# @param action_description [String] Description of the action that was performed
|
|
72
|
+
#
|
|
73
|
+
# @param actions [Array<Stagehand::Models::SessionActResponse::Data::Result::Action>] List of actions that were executed
|
|
74
|
+
#
|
|
75
|
+
# @param message [String] Human-readable result message
|
|
76
|
+
#
|
|
77
|
+
# @param success [Boolean] Whether the action completed successfully
|
|
78
|
+
|
|
79
|
+
class Action < Stagehand::Internal::Type::BaseModel
|
|
80
|
+
# @!attribute description
|
|
81
|
+
# Human-readable description of the action
|
|
82
|
+
#
|
|
83
|
+
# @return [String]
|
|
84
|
+
required :description, String
|
|
85
|
+
|
|
86
|
+
# @!attribute selector
|
|
87
|
+
# CSS selector or XPath for the element
|
|
88
|
+
#
|
|
89
|
+
# @return [String]
|
|
90
|
+
required :selector, String
|
|
91
|
+
|
|
92
|
+
# @!attribute arguments
|
|
93
|
+
# Arguments to pass to the method
|
|
94
|
+
#
|
|
95
|
+
# @return [Array<String>, nil]
|
|
96
|
+
optional :arguments, Stagehand::Internal::Type::ArrayOf[String]
|
|
97
|
+
|
|
98
|
+
# @!attribute backend_node_id
|
|
99
|
+
# Backend node ID for the element
|
|
100
|
+
#
|
|
101
|
+
# @return [Float, nil]
|
|
102
|
+
optional :backend_node_id, Float, api_name: :backendNodeId
|
|
103
|
+
|
|
104
|
+
# @!attribute method_
|
|
105
|
+
# The method to execute (click, fill, etc.)
|
|
106
|
+
#
|
|
107
|
+
# @return [String, nil]
|
|
108
|
+
optional :method_, String, api_name: :method
|
|
109
|
+
|
|
110
|
+
# @!method initialize(description:, selector:, arguments: nil, backend_node_id: nil, method_: nil)
|
|
111
|
+
# Action object returned by observe and used by act
|
|
112
|
+
#
|
|
113
|
+
# @param description [String] Human-readable description of the action
|
|
114
|
+
#
|
|
115
|
+
# @param selector [String] CSS selector or XPath for the element
|
|
116
|
+
#
|
|
117
|
+
# @param arguments [Array<String>] Arguments to pass to the method
|
|
118
|
+
#
|
|
119
|
+
# @param backend_node_id [Float] Backend node ID for the element
|
|
120
|
+
#
|
|
121
|
+
# @param method_ [String] The method to execute (click, fill, etc.)
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
# @see Stagehand::Resources::Sessions#end_
|
|
6
|
+
class SessionEndParams < 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::SessionEndParams::XStreamResponse, nil]
|
|
14
|
+
optional :x_stream_response, enum: -> { Stagehand::SessionEndParams::XStreamResponse }
|
|
15
|
+
|
|
16
|
+
# @!method initialize(x_stream_response: nil, request_options: {})
|
|
17
|
+
# @param x_stream_response [Symbol, Stagehand::Models::SessionEndParams::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,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
# @see Stagehand::Resources::Sessions#end_
|
|
6
|
+
class SessionEndResponse < Stagehand::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute success
|
|
8
|
+
# Indicates whether the request was successful
|
|
9
|
+
#
|
|
10
|
+
# @return [Boolean]
|
|
11
|
+
required :success, Stagehand::Internal::Type::Boolean
|
|
12
|
+
|
|
13
|
+
# @!method initialize(success:)
|
|
14
|
+
# @param success [Boolean] Indicates whether the request was successful
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
# @see Stagehand::Resources::Sessions#execute
|
|
6
|
+
#
|
|
7
|
+
# @see Stagehand::Resources::Sessions#execute_streaming
|
|
8
|
+
class SessionExecuteParams < Stagehand::Internal::Type::BaseModel
|
|
9
|
+
extend Stagehand::Internal::Type::RequestParameters::Converter
|
|
10
|
+
include Stagehand::Internal::Type::RequestParameters
|
|
11
|
+
|
|
12
|
+
# @!attribute agent_config
|
|
13
|
+
#
|
|
14
|
+
# @return [Stagehand::Models::SessionExecuteParams::AgentConfig]
|
|
15
|
+
required :agent_config, -> { Stagehand::SessionExecuteParams::AgentConfig }, api_name: :agentConfig
|
|
16
|
+
|
|
17
|
+
# @!attribute execute_options
|
|
18
|
+
#
|
|
19
|
+
# @return [Stagehand::Models::SessionExecuteParams::ExecuteOptions]
|
|
20
|
+
required :execute_options,
|
|
21
|
+
-> { Stagehand::SessionExecuteParams::ExecuteOptions },
|
|
22
|
+
api_name: :executeOptions
|
|
23
|
+
|
|
24
|
+
# @!attribute frame_id
|
|
25
|
+
# Target frame ID for the agent
|
|
26
|
+
#
|
|
27
|
+
# @return [String, nil]
|
|
28
|
+
optional :frame_id, String, api_name: :frameId, nil?: true
|
|
29
|
+
|
|
30
|
+
# @!attribute should_cache
|
|
31
|
+
# If true, the server captures a cache entry and returns it to the client
|
|
32
|
+
#
|
|
33
|
+
# @return [Boolean, nil]
|
|
34
|
+
optional :should_cache, Stagehand::Internal::Type::Boolean, api_name: :shouldCache
|
|
35
|
+
|
|
36
|
+
# @!attribute x_stream_response
|
|
37
|
+
# Whether to stream the response via SSE
|
|
38
|
+
#
|
|
39
|
+
# @return [Symbol, Stagehand::Models::SessionExecuteParams::XStreamResponse, nil]
|
|
40
|
+
optional :x_stream_response, enum: -> { Stagehand::SessionExecuteParams::XStreamResponse }
|
|
41
|
+
|
|
42
|
+
# @!method initialize(agent_config:, execute_options:, frame_id: nil, should_cache: nil, x_stream_response: nil, request_options: {})
|
|
43
|
+
# @param agent_config [Stagehand::Models::SessionExecuteParams::AgentConfig]
|
|
44
|
+
#
|
|
45
|
+
# @param execute_options [Stagehand::Models::SessionExecuteParams::ExecuteOptions]
|
|
46
|
+
#
|
|
47
|
+
# @param frame_id [String, nil] Target frame ID for the agent
|
|
48
|
+
#
|
|
49
|
+
# @param should_cache [Boolean] If true, the server captures a cache entry and returns it to the client
|
|
50
|
+
#
|
|
51
|
+
# @param x_stream_response [Symbol, Stagehand::Models::SessionExecuteParams::XStreamResponse] Whether to stream the response via SSE
|
|
52
|
+
#
|
|
53
|
+
# @param request_options [Stagehand::RequestOptions, Hash{Symbol=>Object}]
|
|
54
|
+
|
|
55
|
+
class AgentConfig < Stagehand::Internal::Type::BaseModel
|
|
56
|
+
# @!attribute cua
|
|
57
|
+
# Deprecated. Use mode: 'cua' instead. If both are provided, mode takes
|
|
58
|
+
# precedence.
|
|
59
|
+
#
|
|
60
|
+
# @return [Boolean, nil]
|
|
61
|
+
optional :cua, Stagehand::Internal::Type::Boolean
|
|
62
|
+
|
|
63
|
+
# @!attribute execution_model
|
|
64
|
+
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano') for
|
|
65
|
+
# tool execution (observe/act calls within agent tools). If not specified,
|
|
66
|
+
# inherits from the main model configuration.
|
|
67
|
+
#
|
|
68
|
+
# @return [Stagehand::Models::ModelConfig, String, nil]
|
|
69
|
+
optional :execution_model,
|
|
70
|
+
union: -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel },
|
|
71
|
+
api_name: :executionModel
|
|
72
|
+
|
|
73
|
+
# @!attribute mode
|
|
74
|
+
# Tool mode for the agent (dom, hybrid, cua). If set, overrides cua.
|
|
75
|
+
#
|
|
76
|
+
# @return [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Mode, nil]
|
|
77
|
+
optional :mode, enum: -> { Stagehand::SessionExecuteParams::AgentConfig::Mode }
|
|
78
|
+
|
|
79
|
+
# @!attribute model
|
|
80
|
+
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
81
|
+
#
|
|
82
|
+
# @return [Stagehand::Models::ModelConfig, String, nil]
|
|
83
|
+
optional :model, union: -> { Stagehand::SessionExecuteParams::AgentConfig::Model }
|
|
84
|
+
|
|
85
|
+
# @!attribute provider
|
|
86
|
+
# AI provider for the agent (legacy, use model: openai/gpt-5-nano instead)
|
|
87
|
+
#
|
|
88
|
+
# @return [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Provider, nil]
|
|
89
|
+
optional :provider, enum: -> { Stagehand::SessionExecuteParams::AgentConfig::Provider }
|
|
90
|
+
|
|
91
|
+
# @!attribute system_prompt
|
|
92
|
+
# Custom system prompt for the agent
|
|
93
|
+
#
|
|
94
|
+
# @return [String, nil]
|
|
95
|
+
optional :system_prompt, String, api_name: :systemPrompt
|
|
96
|
+
|
|
97
|
+
# @!method initialize(cua: nil, execution_model: nil, mode: nil, model: nil, provider: nil, system_prompt: nil)
|
|
98
|
+
# Some parameter documentations has been truncated, see
|
|
99
|
+
# {Stagehand::Models::SessionExecuteParams::AgentConfig} for more details.
|
|
100
|
+
#
|
|
101
|
+
# @param cua [Boolean] Deprecated. Use mode: 'cua' instead. If both are provided, mode takes precedence
|
|
102
|
+
#
|
|
103
|
+
# @param execution_model [Stagehand::Models::ModelConfig, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano') for
|
|
104
|
+
#
|
|
105
|
+
# @param mode [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Mode] Tool mode for the agent (dom, hybrid, cua). If set, overrides cua.
|
|
106
|
+
#
|
|
107
|
+
# @param model [Stagehand::Models::ModelConfig, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
108
|
+
#
|
|
109
|
+
# @param provider [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Provider] AI provider for the agent (legacy, use model: openai/gpt-5-nano instead)
|
|
110
|
+
#
|
|
111
|
+
# @param system_prompt [String] Custom system prompt for the agent
|
|
112
|
+
|
|
113
|
+
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano') for
|
|
114
|
+
# tool execution (observe/act calls within agent tools). If not specified,
|
|
115
|
+
# inherits from the main model configuration.
|
|
116
|
+
#
|
|
117
|
+
# @see Stagehand::Models::SessionExecuteParams::AgentConfig#execution_model
|
|
118
|
+
module ExecutionModel
|
|
119
|
+
extend Stagehand::Internal::Type::Union
|
|
120
|
+
|
|
121
|
+
variant -> { Stagehand::ModelConfig }
|
|
122
|
+
|
|
123
|
+
variant String
|
|
124
|
+
|
|
125
|
+
# @!method self.variants
|
|
126
|
+
# @return [Array(Stagehand::Models::ModelConfig, String)]
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
# Tool mode for the agent (dom, hybrid, cua). If set, overrides cua.
|
|
130
|
+
#
|
|
131
|
+
# @see Stagehand::Models::SessionExecuteParams::AgentConfig#mode
|
|
132
|
+
module Mode
|
|
133
|
+
extend Stagehand::Internal::Type::Enum
|
|
134
|
+
|
|
135
|
+
DOM = :dom
|
|
136
|
+
HYBRID = :hybrid
|
|
137
|
+
CUA = :cua
|
|
138
|
+
|
|
139
|
+
# @!method self.values
|
|
140
|
+
# @return [Array<Symbol>]
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
144
|
+
#
|
|
145
|
+
# @see Stagehand::Models::SessionExecuteParams::AgentConfig#model
|
|
146
|
+
module Model
|
|
147
|
+
extend Stagehand::Internal::Type::Union
|
|
148
|
+
|
|
149
|
+
variant -> { Stagehand::ModelConfig }
|
|
150
|
+
|
|
151
|
+
variant String
|
|
152
|
+
|
|
153
|
+
# @!method self.variants
|
|
154
|
+
# @return [Array(Stagehand::Models::ModelConfig, String)]
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# AI provider for the agent (legacy, use model: openai/gpt-5-nano instead)
|
|
158
|
+
#
|
|
159
|
+
# @see Stagehand::Models::SessionExecuteParams::AgentConfig#provider
|
|
160
|
+
module Provider
|
|
161
|
+
extend Stagehand::Internal::Type::Enum
|
|
162
|
+
|
|
163
|
+
OPENAI = :openai
|
|
164
|
+
ANTHROPIC = :anthropic
|
|
165
|
+
GOOGLE = :google
|
|
166
|
+
MICROSOFT = :microsoft
|
|
167
|
+
|
|
168
|
+
# @!method self.values
|
|
169
|
+
# @return [Array<Symbol>]
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
class ExecuteOptions < Stagehand::Internal::Type::BaseModel
|
|
174
|
+
# @!attribute instruction
|
|
175
|
+
# Natural language instruction for the agent
|
|
176
|
+
#
|
|
177
|
+
# @return [String]
|
|
178
|
+
required :instruction, String
|
|
179
|
+
|
|
180
|
+
# @!attribute highlight_cursor
|
|
181
|
+
# Whether to visually highlight the cursor during execution
|
|
182
|
+
#
|
|
183
|
+
# @return [Boolean, nil]
|
|
184
|
+
optional :highlight_cursor, Stagehand::Internal::Type::Boolean, api_name: :highlightCursor
|
|
185
|
+
|
|
186
|
+
# @!attribute max_steps
|
|
187
|
+
# Maximum number of steps the agent can take
|
|
188
|
+
#
|
|
189
|
+
# @return [Float, nil]
|
|
190
|
+
optional :max_steps, Float, api_name: :maxSteps
|
|
191
|
+
|
|
192
|
+
# @!method initialize(instruction:, highlight_cursor: nil, max_steps: nil)
|
|
193
|
+
# @param instruction [String] Natural language instruction for the agent
|
|
194
|
+
#
|
|
195
|
+
# @param highlight_cursor [Boolean] Whether to visually highlight the cursor during execution
|
|
196
|
+
#
|
|
197
|
+
# @param max_steps [Float] Maximum number of steps the agent can take
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
# Whether to stream the response via SSE
|
|
201
|
+
module XStreamResponse
|
|
202
|
+
extend Stagehand::Internal::Type::Enum
|
|
203
|
+
|
|
204
|
+
TRUE = :true
|
|
205
|
+
FALSE = :false
|
|
206
|
+
|
|
207
|
+
# @!method self.values
|
|
208
|
+
# @return [Array<Symbol>]
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
end
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Stagehand
|
|
4
|
+
module Models
|
|
5
|
+
# @see Stagehand::Resources::Sessions#execute
|
|
6
|
+
#
|
|
7
|
+
# @see Stagehand::Resources::Sessions#execute_streaming
|
|
8
|
+
class SessionExecuteResponse < Stagehand::Internal::Type::BaseModel
|
|
9
|
+
# @!attribute data
|
|
10
|
+
#
|
|
11
|
+
# @return [Stagehand::Models::SessionExecuteResponse::Data]
|
|
12
|
+
required :data, -> { Stagehand::Models::SessionExecuteResponse::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::SessionExecuteResponse::Data]
|
|
22
|
+
#
|
|
23
|
+
# @param success [Boolean] Indicates whether the request was successful
|
|
24
|
+
|
|
25
|
+
# @see Stagehand::Models::SessionExecuteResponse#data
|
|
26
|
+
class Data < Stagehand::Internal::Type::BaseModel
|
|
27
|
+
# @!attribute result
|
|
28
|
+
#
|
|
29
|
+
# @return [Stagehand::Models::SessionExecuteResponse::Data::Result]
|
|
30
|
+
required :result, -> { Stagehand::Models::SessionExecuteResponse::Data::Result }
|
|
31
|
+
|
|
32
|
+
# @!attribute cache_entry
|
|
33
|
+
#
|
|
34
|
+
# @return [Stagehand::Models::SessionExecuteResponse::Data::CacheEntry, nil]
|
|
35
|
+
optional :cache_entry,
|
|
36
|
+
-> { Stagehand::Models::SessionExecuteResponse::Data::CacheEntry },
|
|
37
|
+
api_name: :cacheEntry
|
|
38
|
+
|
|
39
|
+
# @!method initialize(result:, cache_entry: nil)
|
|
40
|
+
# @param result [Stagehand::Models::SessionExecuteResponse::Data::Result]
|
|
41
|
+
# @param cache_entry [Stagehand::Models::SessionExecuteResponse::Data::CacheEntry]
|
|
42
|
+
|
|
43
|
+
# @see Stagehand::Models::SessionExecuteResponse::Data#result
|
|
44
|
+
class Result < Stagehand::Internal::Type::BaseModel
|
|
45
|
+
# @!attribute actions
|
|
46
|
+
#
|
|
47
|
+
# @return [Array<Stagehand::Models::SessionExecuteResponse::Data::Result::Action>]
|
|
48
|
+
required :actions,
|
|
49
|
+
-> { Stagehand::Internal::Type::ArrayOf[Stagehand::Models::SessionExecuteResponse::Data::Result::Action] }
|
|
50
|
+
|
|
51
|
+
# @!attribute completed
|
|
52
|
+
# Whether the agent finished its task
|
|
53
|
+
#
|
|
54
|
+
# @return [Boolean]
|
|
55
|
+
required :completed, Stagehand::Internal::Type::Boolean
|
|
56
|
+
|
|
57
|
+
# @!attribute message
|
|
58
|
+
# Summary of what the agent accomplished
|
|
59
|
+
#
|
|
60
|
+
# @return [String]
|
|
61
|
+
required :message, String
|
|
62
|
+
|
|
63
|
+
# @!attribute success
|
|
64
|
+
# Whether the agent completed successfully
|
|
65
|
+
#
|
|
66
|
+
# @return [Boolean]
|
|
67
|
+
required :success, Stagehand::Internal::Type::Boolean
|
|
68
|
+
|
|
69
|
+
# @!attribute metadata
|
|
70
|
+
#
|
|
71
|
+
# @return [Hash{Symbol=>Object}, nil]
|
|
72
|
+
optional :metadata, Stagehand::Internal::Type::HashOf[Stagehand::Internal::Type::Unknown]
|
|
73
|
+
|
|
74
|
+
# @!attribute usage
|
|
75
|
+
#
|
|
76
|
+
# @return [Stagehand::Models::SessionExecuteResponse::Data::Result::Usage, nil]
|
|
77
|
+
optional :usage, -> { Stagehand::Models::SessionExecuteResponse::Data::Result::Usage }
|
|
78
|
+
|
|
79
|
+
# @!method initialize(actions:, completed:, message:, success:, metadata: nil, usage: nil)
|
|
80
|
+
# @param actions [Array<Stagehand::Models::SessionExecuteResponse::Data::Result::Action>]
|
|
81
|
+
#
|
|
82
|
+
# @param completed [Boolean] Whether the agent finished its task
|
|
83
|
+
#
|
|
84
|
+
# @param message [String] Summary of what the agent accomplished
|
|
85
|
+
#
|
|
86
|
+
# @param success [Boolean] Whether the agent completed successfully
|
|
87
|
+
#
|
|
88
|
+
# @param metadata [Hash{Symbol=>Object}]
|
|
89
|
+
#
|
|
90
|
+
# @param usage [Stagehand::Models::SessionExecuteResponse::Data::Result::Usage]
|
|
91
|
+
|
|
92
|
+
class Action < Stagehand::Internal::Type::BaseModel
|
|
93
|
+
# @!attribute type
|
|
94
|
+
# Type of action taken
|
|
95
|
+
#
|
|
96
|
+
# @return [String]
|
|
97
|
+
required :type, String
|
|
98
|
+
|
|
99
|
+
# @!attribute action
|
|
100
|
+
#
|
|
101
|
+
# @return [String, nil]
|
|
102
|
+
optional :action, String
|
|
103
|
+
|
|
104
|
+
# @!attribute instruction
|
|
105
|
+
#
|
|
106
|
+
# @return [String, nil]
|
|
107
|
+
optional :instruction, String
|
|
108
|
+
|
|
109
|
+
# @!attribute page_text
|
|
110
|
+
#
|
|
111
|
+
# @return [String, nil]
|
|
112
|
+
optional :page_text, String, api_name: :pageText
|
|
113
|
+
|
|
114
|
+
# @!attribute page_url
|
|
115
|
+
#
|
|
116
|
+
# @return [String, nil]
|
|
117
|
+
optional :page_url, String, api_name: :pageUrl
|
|
118
|
+
|
|
119
|
+
# @!attribute reasoning
|
|
120
|
+
# Agent's reasoning for taking this action
|
|
121
|
+
#
|
|
122
|
+
# @return [String, nil]
|
|
123
|
+
optional :reasoning, String
|
|
124
|
+
|
|
125
|
+
# @!attribute task_completed
|
|
126
|
+
#
|
|
127
|
+
# @return [Boolean, nil]
|
|
128
|
+
optional :task_completed, Stagehand::Internal::Type::Boolean, api_name: :taskCompleted
|
|
129
|
+
|
|
130
|
+
# @!attribute time_ms
|
|
131
|
+
# Time taken for this action in ms
|
|
132
|
+
#
|
|
133
|
+
# @return [Float, nil]
|
|
134
|
+
optional :time_ms, Float, api_name: :timeMs
|
|
135
|
+
|
|
136
|
+
# @!method initialize(type:, action: nil, instruction: nil, page_text: nil, page_url: nil, reasoning: nil, task_completed: nil, time_ms: nil)
|
|
137
|
+
# @param type [String] Type of action taken
|
|
138
|
+
#
|
|
139
|
+
# @param action [String]
|
|
140
|
+
#
|
|
141
|
+
# @param instruction [String]
|
|
142
|
+
#
|
|
143
|
+
# @param page_text [String]
|
|
144
|
+
#
|
|
145
|
+
# @param page_url [String]
|
|
146
|
+
#
|
|
147
|
+
# @param reasoning [String] Agent's reasoning for taking this action
|
|
148
|
+
#
|
|
149
|
+
# @param task_completed [Boolean]
|
|
150
|
+
#
|
|
151
|
+
# @param time_ms [Float] Time taken for this action in ms
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# @see Stagehand::Models::SessionExecuteResponse::Data::Result#usage
|
|
155
|
+
class Usage < Stagehand::Internal::Type::BaseModel
|
|
156
|
+
# @!attribute inference_time_ms
|
|
157
|
+
#
|
|
158
|
+
# @return [Float]
|
|
159
|
+
required :inference_time_ms, Float
|
|
160
|
+
|
|
161
|
+
# @!attribute input_tokens
|
|
162
|
+
#
|
|
163
|
+
# @return [Float]
|
|
164
|
+
required :input_tokens, Float
|
|
165
|
+
|
|
166
|
+
# @!attribute output_tokens
|
|
167
|
+
#
|
|
168
|
+
# @return [Float]
|
|
169
|
+
required :output_tokens, Float
|
|
170
|
+
|
|
171
|
+
# @!attribute cached_input_tokens
|
|
172
|
+
#
|
|
173
|
+
# @return [Float, nil]
|
|
174
|
+
optional :cached_input_tokens, Float
|
|
175
|
+
|
|
176
|
+
# @!attribute reasoning_tokens
|
|
177
|
+
#
|
|
178
|
+
# @return [Float, nil]
|
|
179
|
+
optional :reasoning_tokens, Float
|
|
180
|
+
|
|
181
|
+
# @!method initialize(inference_time_ms:, input_tokens:, output_tokens:, cached_input_tokens: nil, reasoning_tokens: nil)
|
|
182
|
+
# @param inference_time_ms [Float]
|
|
183
|
+
# @param input_tokens [Float]
|
|
184
|
+
# @param output_tokens [Float]
|
|
185
|
+
# @param cached_input_tokens [Float]
|
|
186
|
+
# @param reasoning_tokens [Float]
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
# @see Stagehand::Models::SessionExecuteResponse::Data#cache_entry
|
|
191
|
+
class CacheEntry < Stagehand::Internal::Type::BaseModel
|
|
192
|
+
# @!attribute cache_key
|
|
193
|
+
# Opaque cache identifier computed from instruction, URL, options, and config
|
|
194
|
+
#
|
|
195
|
+
# @return [String]
|
|
196
|
+
required :cache_key, String, api_name: :cacheKey
|
|
197
|
+
|
|
198
|
+
# @!attribute entry
|
|
199
|
+
# Serialized cache entry that can be written to disk
|
|
200
|
+
#
|
|
201
|
+
# @return [Object]
|
|
202
|
+
required :entry, Stagehand::Internal::Type::Unknown
|
|
203
|
+
|
|
204
|
+
# @!method initialize(cache_key:, entry:)
|
|
205
|
+
# @param cache_key [String] Opaque cache identifier computed from instruction, URL, options, and config
|
|
206
|
+
#
|
|
207
|
+
# @param entry [Object] Serialized cache entry that can be written to disk
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
end
|