Skip to content

Commit a9d6970

Browse files
feat: variables for observe
1 parent e5bedb8 commit a9d6970

7 files changed

Lines changed: 507 additions & 24 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-4112eba8679ed34cc7c0e4b28ee3f1569cf47d6e4a8252c28b5ef2ee02a82b8c.yml
3-
openapi_spec_hash: b46202361a71845a51d26e880a444d0b
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fstagehand-975ca868b31b1e45fb00b31a53d9df1ceec8663f6c2851bf40fdaa84171afadc.yml
3+
openapi_spec_hash: 37891379e0f47e5c69769fbaa1064dab
44
config_hash: 0209737a4ab2a71afececb0ff7459998

lib/stagehand/models/session_act_params.rb

Lines changed: 54 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,17 +78,22 @@ class Options < Stagehand::Internal::Type::BaseModel
7878
optional :timeout, Float
7979

8080
# @!attribute variables
81-
# Variables to substitute in the action instruction
81+
# Variables to substitute in the action instruction. Accepts flat primitives or {
82+
# value, description? } objects.
8283
#
83-
# @return [Hash{Symbol=>String}, nil]
84-
optional :variables, Stagehand::Internal::Type::HashOf[String]
84+
# @return [Hash{Symbol=>String, Float, Boolean, Stagehand::Models::SessionActParams::Options::Variable::UnionMember3}, nil]
85+
optional :variables,
86+
-> { Stagehand::Internal::Type::HashOf[union: Stagehand::SessionActParams::Options::Variable] }
8587

8688
# @!method initialize(model: nil, timeout: nil, variables: nil)
89+
# Some parameter documentations has been truncated, see
90+
# {Stagehand::Models::SessionActParams::Options} for more details.
91+
#
8792
# @param model [Stagehand::Models::ModelConfig, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
8893
#
8994
# @param timeout [Float] Timeout in ms for the action
9095
#
91-
# @param variables [Hash{Symbol=>String}] Variables to substitute in the action instruction
96+
# @param variables [Hash{Symbol=>String, Float, Boolean, Stagehand::Models::SessionActParams::Options::Variable::UnionMember3}] Variables to substitute in the action instruction. Accepts flat primitives or {
9297

9398
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
9499
#
@@ -103,6 +108,51 @@ module Model
103108
# @!method self.variants
104109
# @return [Array(Stagehand::Models::ModelConfig, String)]
105110
end
111+
112+
module Variable
113+
extend Stagehand::Internal::Type::Union
114+
115+
variant String
116+
117+
variant Float
118+
119+
variant Stagehand::Internal::Type::Boolean
120+
121+
variant -> { Stagehand::SessionActParams::Options::Variable::UnionMember3 }
122+
123+
class UnionMember3 < Stagehand::Internal::Type::BaseModel
124+
# @!attribute value
125+
#
126+
# @return [String, Float, Boolean]
127+
required :value, union: -> { Stagehand::SessionActParams::Options::Variable::UnionMember3::Value }
128+
129+
# @!attribute description
130+
#
131+
# @return [String, nil]
132+
optional :description, String
133+
134+
# @!method initialize(value:, description: nil)
135+
# @param value [String, Float, Boolean]
136+
# @param description [String]
137+
138+
# @see Stagehand::Models::SessionActParams::Options::Variable::UnionMember3#value
139+
module Value
140+
extend Stagehand::Internal::Type::Union
141+
142+
variant String
143+
144+
variant Float
145+
146+
variant Stagehand::Internal::Type::Boolean
147+
148+
# @!method self.variants
149+
# @return [Array(String, Float, Boolean)]
150+
end
151+
end
152+
153+
# @!method self.variants
154+
# @return [Array(String, Float, Boolean, Stagehand::Models::SessionActParams::Options::Variable::UnionMember3)]
155+
end
106156
end
107157

108158
# Whether to stream the response via SSE

lib/stagehand/models/session_observe_params.rb

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,26 @@ class Options < Stagehand::Internal::Type::BaseModel
7070
# @return [Float, nil]
7171
optional :timeout, Float
7272

73-
# @!method initialize(model: nil, selector: nil, timeout: nil)
73+
# @!attribute variables
74+
# Variables whose names are exposed to the model so observe() returns
75+
# %variableName% placeholders in suggested action arguments instead of literal
76+
# values. Accepts flat primitives or { value, description? } objects.
77+
#
78+
# @return [Hash{Symbol=>String, Float, Boolean, Stagehand::Models::SessionObserveParams::Options::Variable::UnionMember3}, nil]
79+
optional :variables,
80+
-> { Stagehand::Internal::Type::HashOf[union: Stagehand::SessionObserveParams::Options::Variable] }
81+
82+
# @!method initialize(model: nil, selector: nil, timeout: nil, variables: nil)
83+
# Some parameter documentations has been truncated, see
84+
# {Stagehand::Models::SessionObserveParams::Options} for more details.
85+
#
7486
# @param model [Stagehand::Models::ModelConfig, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
7587
#
7688
# @param selector [String] CSS selector to scope observation to a specific element
7789
#
7890
# @param timeout [Float] Timeout in ms for the observation
91+
#
92+
# @param variables [Hash{Symbol=>String, Float, Boolean, Stagehand::Models::SessionObserveParams::Options::Variable::UnionMember3}] Variables whose names are exposed to the model so observe() returns %variableNam
7993

8094
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
8195
#
@@ -90,6 +104,51 @@ module Model
90104
# @!method self.variants
91105
# @return [Array(Stagehand::Models::ModelConfig, String)]
92106
end
107+
108+
module Variable
109+
extend Stagehand::Internal::Type::Union
110+
111+
variant String
112+
113+
variant Float
114+
115+
variant Stagehand::Internal::Type::Boolean
116+
117+
variant -> { Stagehand::SessionObserveParams::Options::Variable::UnionMember3 }
118+
119+
class UnionMember3 < Stagehand::Internal::Type::BaseModel
120+
# @!attribute value
121+
#
122+
# @return [String, Float, Boolean]
123+
required :value, union: -> { Stagehand::SessionObserveParams::Options::Variable::UnionMember3::Value }
124+
125+
# @!attribute description
126+
#
127+
# @return [String, nil]
128+
optional :description, String
129+
130+
# @!method initialize(value:, description: nil)
131+
# @param value [String, Float, Boolean]
132+
# @param description [String]
133+
134+
# @see Stagehand::Models::SessionObserveParams::Options::Variable::UnionMember3#value
135+
module Value
136+
extend Stagehand::Internal::Type::Union
137+
138+
variant String
139+
140+
variant Float
141+
142+
variant Stagehand::Internal::Type::Boolean
143+
144+
# @!method self.variants
145+
# @return [Array(String, Float, Boolean)]
146+
end
147+
end
148+
149+
# @!method self.variants
150+
# @return [Array(String, Float, Boolean, Stagehand::Models::SessionObserveParams::Options::Variable::UnionMember3)]
151+
end
93152
end
94153

95154
# Whether to stream the response via SSE

rbi/stagehand/models/session_act_params.rbi

Lines changed: 136 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -126,26 +126,64 @@ module Stagehand
126126
sig { params(timeout: Float).void }
127127
attr_writer :timeout
128128

129-
# Variables to substitute in the action instruction
130-
sig { returns(T.nilable(T::Hash[Symbol, String])) }
129+
# Variables to substitute in the action instruction. Accepts flat primitives or {
130+
# value, description? } objects.
131+
sig do
132+
returns(
133+
T.nilable(
134+
T::Hash[
135+
Symbol,
136+
T.any(
137+
String,
138+
Float,
139+
T::Boolean,
140+
Stagehand::SessionActParams::Options::Variable::UnionMember3
141+
)
142+
]
143+
)
144+
)
145+
end
131146
attr_reader :variables
132147

133-
sig { params(variables: T::Hash[Symbol, String]).void }
148+
sig do
149+
params(
150+
variables:
151+
T::Hash[
152+
Symbol,
153+
T.any(
154+
String,
155+
Float,
156+
T::Boolean,
157+
Stagehand::SessionActParams::Options::Variable::UnionMember3::OrHash
158+
)
159+
]
160+
).void
161+
end
134162
attr_writer :variables
135163

136164
sig do
137165
params(
138166
model: T.any(Stagehand::ModelConfig::OrHash, String),
139167
timeout: Float,
140-
variables: T::Hash[Symbol, String]
168+
variables:
169+
T::Hash[
170+
Symbol,
171+
T.any(
172+
String,
173+
Float,
174+
T::Boolean,
175+
Stagehand::SessionActParams::Options::Variable::UnionMember3::OrHash
176+
)
177+
]
141178
).returns(T.attached_class)
142179
end
143180
def self.new(
144181
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
145182
model: nil,
146183
# Timeout in ms for the action
147184
timeout: nil,
148-
# Variables to substitute in the action instruction
185+
# Variables to substitute in the action instruction. Accepts flat primitives or {
186+
# value, description? } objects.
149187
variables: nil
150188
)
151189
end
@@ -155,7 +193,16 @@ module Stagehand
155193
{
156194
model: T.any(Stagehand::ModelConfig, String),
157195
timeout: Float,
158-
variables: T::Hash[Symbol, String]
196+
variables:
197+
T::Hash[
198+
Symbol,
199+
T.any(
200+
String,
201+
Float,
202+
T::Boolean,
203+
Stagehand::SessionActParams::Options::Variable::UnionMember3
204+
)
205+
]
159206
}
160207
)
161208
end
@@ -176,6 +223,89 @@ module Stagehand
176223
def self.variants
177224
end
178225
end
226+
227+
module Variable
228+
extend Stagehand::Internal::Type::Union
229+
230+
Variants =
231+
T.type_alias do
232+
T.any(
233+
String,
234+
Float,
235+
T::Boolean,
236+
Stagehand::SessionActParams::Options::Variable::UnionMember3
237+
)
238+
end
239+
240+
class UnionMember3 < Stagehand::Internal::Type::BaseModel
241+
OrHash =
242+
T.type_alias do
243+
T.any(
244+
Stagehand::SessionActParams::Options::Variable::UnionMember3,
245+
Stagehand::Internal::AnyHash
246+
)
247+
end
248+
249+
sig do
250+
returns(
251+
Stagehand::SessionActParams::Options::Variable::UnionMember3::Value::Variants
252+
)
253+
end
254+
attr_accessor :value
255+
256+
sig { returns(T.nilable(String)) }
257+
attr_reader :description
258+
259+
sig { params(description: String).void }
260+
attr_writer :description
261+
262+
sig do
263+
params(
264+
value:
265+
Stagehand::SessionActParams::Options::Variable::UnionMember3::Value::Variants,
266+
description: String
267+
).returns(T.attached_class)
268+
end
269+
def self.new(value:, description: nil)
270+
end
271+
272+
sig do
273+
override.returns(
274+
{
275+
value:
276+
Stagehand::SessionActParams::Options::Variable::UnionMember3::Value::Variants,
277+
description: String
278+
}
279+
)
280+
end
281+
def to_hash
282+
end
283+
284+
module Value
285+
extend Stagehand::Internal::Type::Union
286+
287+
Variants = T.type_alias { T.any(String, Float, T::Boolean) }
288+
289+
sig do
290+
override.returns(
291+
T::Array[
292+
Stagehand::SessionActParams::Options::Variable::UnionMember3::Value::Variants
293+
]
294+
)
295+
end
296+
def self.variants
297+
end
298+
end
299+
end
300+
301+
sig do
302+
override.returns(
303+
T::Array[Stagehand::SessionActParams::Options::Variable::Variants]
304+
)
305+
end
306+
def self.variants
307+
end
308+
end
179309
end
180310

181311
# Whether to stream the response via SSE

0 commit comments

Comments
 (0)