Skip to content

Commit ab68049

Browse files
feat: add auto-bedrock support based on bedrock/provider.model-name
1 parent 9fef578 commit ab68049

4 files changed

Lines changed: 115 additions & 7 deletions

File tree

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 8
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fstagehand-089c8670f1d7c2e9fa8e5c97010db7c24b8f162eb7cfe76ffa41d70fa46efe2f.yml
3-
openapi_spec_hash: 7a226aee8f3f2ab16febbe6bb35e1657
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fstagehand-43e6dd4ce19381de488d296e9036fea15bfea9a6f946cf8ccf4e02aecc8fb765.yml
3+
openapi_spec_hash: f736e7a8acea0d73e1031c86ea803246
44
config_hash: 75b561cd2ba925e4f2a62ec2f1d13738

lib/stagehand/models/session_execute_params.rb

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,18 @@ class SessionExecuteParams < Stagehand::Internal::Type::BaseModel
5454

5555
class AgentConfig < Stagehand::Internal::Type::BaseModel
5656
# @!attribute cua
57-
# Enable Computer Use Agent mode
57+
# Deprecated. Use mode: 'cua' instead. If both are provided, mode takes
58+
# precedence.
5859
#
5960
# @return [Boolean, nil]
6061
optional :cua, Stagehand::Internal::Type::Boolean
6162

63+
# @!attribute mode
64+
# Tool mode for the agent (dom, hybrid, cua). If set, overrides cua.
65+
#
66+
# @return [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Mode, nil]
67+
optional :mode, enum: -> { Stagehand::SessionExecuteParams::AgentConfig::Mode }
68+
6269
# @!attribute model
6370
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
6471
#
@@ -77,15 +84,34 @@ class AgentConfig < Stagehand::Internal::Type::BaseModel
7784
# @return [String, nil]
7885
optional :system_prompt, String, api_name: :systemPrompt
7986

80-
# @!method initialize(cua: nil, model: nil, provider: nil, system_prompt: nil)
81-
# @param cua [Boolean] Enable Computer Use Agent mode
87+
# @!method initialize(cua: nil, mode: nil, model: nil, provider: nil, system_prompt: nil)
88+
# Some parameter documentations has been truncated, see
89+
# {Stagehand::Models::SessionExecuteParams::AgentConfig} for more details.
90+
#
91+
# @param cua [Boolean] Deprecated. Use mode: 'cua' instead. If both are provided, mode takes precedence
92+
#
93+
# @param mode [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Mode] Tool mode for the agent (dom, hybrid, cua). If set, overrides cua.
8294
#
8395
# @param model [Stagehand::Models::ModelConfig, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
8496
#
8597
# @param provider [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Provider] AI provider for the agent (legacy, use model: openai/gpt-5-nano instead)
8698
#
8799
# @param system_prompt [String] Custom system prompt for the agent
88100

101+
# Tool mode for the agent (dom, hybrid, cua). If set, overrides cua.
102+
#
103+
# @see Stagehand::Models::SessionExecuteParams::AgentConfig#mode
104+
module Mode
105+
extend Stagehand::Internal::Type::Enum
106+
107+
DOM = :dom
108+
HYBRID = :hybrid
109+
CUA = :cua
110+
111+
# @!method self.values
112+
# @return [Array<Symbol>]
113+
end
114+
89115
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
90116
#
91117
# @see Stagehand::Models::SessionExecuteParams::AgentConfig#model

rbi/stagehand/models/session_execute_params.rbi

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,13 +109,31 @@ module Stagehand
109109
)
110110
end
111111

112-
# Enable Computer Use Agent mode
112+
# Deprecated. Use mode: 'cua' instead. If both are provided, mode takes
113+
# precedence.
113114
sig { returns(T.nilable(T::Boolean)) }
114115
attr_reader :cua
115116

116117
sig { params(cua: T::Boolean).void }
117118
attr_writer :cua
118119

120+
# Tool mode for the agent (dom, hybrid, cua). If set, overrides cua.
121+
sig do
122+
returns(
123+
T.nilable(
124+
Stagehand::SessionExecuteParams::AgentConfig::Mode::OrSymbol
125+
)
126+
)
127+
end
128+
attr_reader :mode
129+
130+
sig do
131+
params(
132+
mode: Stagehand::SessionExecuteParams::AgentConfig::Mode::OrSymbol
133+
).void
134+
end
135+
attr_writer :mode
136+
119137
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
120138
sig { returns(T.nilable(T.any(Stagehand::ModelConfig, String))) }
121139
attr_reader :model
@@ -153,15 +171,19 @@ module Stagehand
153171
sig do
154172
params(
155173
cua: T::Boolean,
174+
mode: Stagehand::SessionExecuteParams::AgentConfig::Mode::OrSymbol,
156175
model: T.any(Stagehand::ModelConfig::OrHash, String),
157176
provider:
158177
Stagehand::SessionExecuteParams::AgentConfig::Provider::OrSymbol,
159178
system_prompt: String
160179
).returns(T.attached_class)
161180
end
162181
def self.new(
163-
# Enable Computer Use Agent mode
182+
# Deprecated. Use mode: 'cua' instead. If both are provided, mode takes
183+
# precedence.
164184
cua: nil,
185+
# Tool mode for the agent (dom, hybrid, cua). If set, overrides cua.
186+
mode: nil,
165187
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
166188
model: nil,
167189
# AI provider for the agent (legacy, use model: openai/gpt-5-nano instead)
@@ -175,6 +197,8 @@ module Stagehand
175197
override.returns(
176198
{
177199
cua: T::Boolean,
200+
mode:
201+
Stagehand::SessionExecuteParams::AgentConfig::Mode::OrSymbol,
178202
model: T.any(Stagehand::ModelConfig, String),
179203
provider:
180204
Stagehand::SessionExecuteParams::AgentConfig::Provider::OrSymbol,
@@ -185,6 +209,43 @@ module Stagehand
185209
def to_hash
186210
end
187211

212+
# Tool mode for the agent (dom, hybrid, cua). If set, overrides cua.
213+
module Mode
214+
extend Stagehand::Internal::Type::Enum
215+
216+
TaggedSymbol =
217+
T.type_alias do
218+
T.all(Symbol, Stagehand::SessionExecuteParams::AgentConfig::Mode)
219+
end
220+
OrSymbol = T.type_alias { T.any(Symbol, String) }
221+
222+
DOM =
223+
T.let(
224+
:dom,
225+
Stagehand::SessionExecuteParams::AgentConfig::Mode::TaggedSymbol
226+
)
227+
HYBRID =
228+
T.let(
229+
:hybrid,
230+
Stagehand::SessionExecuteParams::AgentConfig::Mode::TaggedSymbol
231+
)
232+
CUA =
233+
T.let(
234+
:cua,
235+
Stagehand::SessionExecuteParams::AgentConfig::Mode::TaggedSymbol
236+
)
237+
238+
sig do
239+
override.returns(
240+
T::Array[
241+
Stagehand::SessionExecuteParams::AgentConfig::Mode::TaggedSymbol
242+
]
243+
)
244+
end
245+
def self.values
246+
end
247+
end
248+
188249
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
189250
module Model
190251
extend Stagehand::Internal::Type::Union

sig/stagehand/models/session_execute_params.rbs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ module Stagehand
5151
type agent_config =
5252
{
5353
cua: bool,
54+
mode: Stagehand::Models::SessionExecuteParams::AgentConfig::mode,
5455
model: Stagehand::Models::SessionExecuteParams::AgentConfig::model,
5556
provider: Stagehand::Models::SessionExecuteParams::AgentConfig::provider,
5657
system_prompt: String
@@ -61,6 +62,12 @@ module Stagehand
6162

6263
def cua=: (bool) -> bool
6364

65+
attr_reader mode: Stagehand::Models::SessionExecuteParams::AgentConfig::mode?
66+
67+
def mode=: (
68+
Stagehand::Models::SessionExecuteParams::AgentConfig::mode
69+
) -> Stagehand::Models::SessionExecuteParams::AgentConfig::mode
70+
6471
attr_reader model: Stagehand::Models::SessionExecuteParams::AgentConfig::model?
6572

6673
def model=: (
@@ -79,18 +86,32 @@ module Stagehand
7986

8087
def initialize: (
8188
?cua: bool,
89+
?mode: Stagehand::Models::SessionExecuteParams::AgentConfig::mode,
8290
?model: Stagehand::Models::SessionExecuteParams::AgentConfig::model,
8391
?provider: Stagehand::Models::SessionExecuteParams::AgentConfig::provider,
8492
?system_prompt: String
8593
) -> void
8694

8795
def to_hash: -> {
8896
cua: bool,
97+
mode: Stagehand::Models::SessionExecuteParams::AgentConfig::mode,
8998
model: Stagehand::Models::SessionExecuteParams::AgentConfig::model,
9099
provider: Stagehand::Models::SessionExecuteParams::AgentConfig::provider,
91100
system_prompt: String
92101
}
93102

103+
type mode = :dom | :hybrid | :cua
104+
105+
module Mode
106+
extend Stagehand::Internal::Type::Enum
107+
108+
DOM: :dom
109+
HYBRID: :hybrid
110+
CUA: :cua
111+
112+
def self?.values: -> ::Array[Stagehand::Models::SessionExecuteParams::AgentConfig::mode]
113+
end
114+
94115
type model = Stagehand::ModelConfig | String
95116

96117
module Model

0 commit comments

Comments
 (0)