stagehand 3.19.3 → 3.21.0
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 +4 -4
- data/CHANGELOG.md +41 -0
- data/README.md +2 -3
- data/lib/stagehand/client.rb +25 -13
- data/lib/stagehand/internal/transport/base_client.rb +2 -0
- data/lib/stagehand/internal/type/union.rb +11 -0
- data/lib/stagehand/internal/util.rb +3 -1
- data/lib/stagehand/local.rb +3 -12
- data/lib/stagehand/models/model_config.rb +326 -56
- data/lib/stagehand/models/session_act_params.rb +331 -4
- data/lib/stagehand/models/session_execute_params.rb +719 -9
- data/lib/stagehand/models/session_extract_params.rb +352 -5
- data/lib/stagehand/models/session_observe_params.rb +340 -5
- data/lib/stagehand/models/session_start_params.rb +56 -2
- data/lib/stagehand/resources/sessions.rb +16 -4
- data/lib/stagehand/version.rb +1 -1
- data/rbi/stagehand/client.rbi +6 -6
- data/rbi/stagehand/models/model_config.rbi +644 -69
- data/rbi/stagehand/models/session_act_params.rbi +707 -5
- data/rbi/stagehand/models/session_execute_params.rbi +1556 -13
- data/rbi/stagehand/models/session_extract_params.rbi +731 -5
- data/rbi/stagehand/models/session_observe_params.rbi +718 -5
- data/rbi/stagehand/models/session_start_params.rbi +102 -0
- data/sig/stagehand/models/model_config.rbs +310 -42
- data/sig/stagehand/models/session_act_params.rbs +324 -1
- data/sig/stagehand/models/session_execute_params.rbs +704 -5
- data/sig/stagehand/models/session_extract_params.rbs +338 -1
- data/sig/stagehand/models/session_observe_params.rbs +331 -1
- data/sig/stagehand/models/session_start_params.rbs +44 -0
- data/sig/stagehand/models.rbs +1 -1
- metadata +2 -2
|
@@ -111,15 +111,47 @@ module Stagehand
|
|
|
111
111
|
)
|
|
112
112
|
end
|
|
113
113
|
|
|
114
|
+
# Selectors for elements and subtrees that should be excluded from extraction
|
|
115
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
116
|
+
attr_reader :ignore_selectors
|
|
117
|
+
|
|
118
|
+
sig { params(ignore_selectors: T::Array[String]).void }
|
|
119
|
+
attr_writer :ignore_selectors
|
|
120
|
+
|
|
114
121
|
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
115
|
-
sig
|
|
122
|
+
sig do
|
|
123
|
+
returns(
|
|
124
|
+
T.nilable(
|
|
125
|
+
T.any(
|
|
126
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject,
|
|
127
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject,
|
|
128
|
+
String
|
|
129
|
+
)
|
|
130
|
+
)
|
|
131
|
+
)
|
|
132
|
+
end
|
|
116
133
|
attr_reader :model
|
|
117
134
|
|
|
118
135
|
sig do
|
|
119
|
-
params(
|
|
136
|
+
params(
|
|
137
|
+
model:
|
|
138
|
+
T.any(
|
|
139
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::OrHash,
|
|
140
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::OrHash,
|
|
141
|
+
String
|
|
142
|
+
)
|
|
143
|
+
).void
|
|
120
144
|
end
|
|
121
145
|
attr_writer :model
|
|
122
146
|
|
|
147
|
+
# When true, include a screenshot of the current viewport in the extraction LLM
|
|
148
|
+
# call. Defaults to false.
|
|
149
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
150
|
+
attr_reader :screenshot
|
|
151
|
+
|
|
152
|
+
sig { params(screenshot: T::Boolean).void }
|
|
153
|
+
attr_writer :screenshot
|
|
154
|
+
|
|
123
155
|
# CSS selector to scope extraction to a specific element
|
|
124
156
|
sig { returns(T.nilable(String)) }
|
|
125
157
|
attr_reader :selector
|
|
@@ -136,14 +168,26 @@ module Stagehand
|
|
|
136
168
|
|
|
137
169
|
sig do
|
|
138
170
|
params(
|
|
139
|
-
|
|
171
|
+
ignore_selectors: T::Array[String],
|
|
172
|
+
model:
|
|
173
|
+
T.any(
|
|
174
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::OrHash,
|
|
175
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::OrHash,
|
|
176
|
+
String
|
|
177
|
+
),
|
|
178
|
+
screenshot: T::Boolean,
|
|
140
179
|
selector: String,
|
|
141
180
|
timeout: Float
|
|
142
181
|
).returns(T.attached_class)
|
|
143
182
|
end
|
|
144
183
|
def self.new(
|
|
184
|
+
# Selectors for elements and subtrees that should be excluded from extraction
|
|
185
|
+
ignore_selectors: nil,
|
|
145
186
|
# Model configuration object or model name string (e.g., 'openai/gpt-5-nano')
|
|
146
187
|
model: nil,
|
|
188
|
+
# When true, include a screenshot of the current viewport in the extraction LLM
|
|
189
|
+
# call. Defaults to false.
|
|
190
|
+
screenshot: nil,
|
|
147
191
|
# CSS selector to scope extraction to a specific element
|
|
148
192
|
selector: nil,
|
|
149
193
|
# Timeout in ms for the extraction
|
|
@@ -154,7 +198,14 @@ module Stagehand
|
|
|
154
198
|
sig do
|
|
155
199
|
override.returns(
|
|
156
200
|
{
|
|
157
|
-
|
|
201
|
+
ignore_selectors: T::Array[String],
|
|
202
|
+
model:
|
|
203
|
+
T.any(
|
|
204
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject,
|
|
205
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject,
|
|
206
|
+
String
|
|
207
|
+
),
|
|
208
|
+
screenshot: T::Boolean,
|
|
158
209
|
selector: String,
|
|
159
210
|
timeout: Float
|
|
160
211
|
}
|
|
@@ -167,7 +218,682 @@ module Stagehand
|
|
|
167
218
|
module Model
|
|
168
219
|
extend Stagehand::Internal::Type::Union
|
|
169
220
|
|
|
170
|
-
Variants =
|
|
221
|
+
Variants =
|
|
222
|
+
T.type_alias do
|
|
223
|
+
T.any(
|
|
224
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject,
|
|
225
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject,
|
|
226
|
+
String
|
|
227
|
+
)
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
class VertexModelConfigObject < Stagehand::Internal::Type::BaseModel
|
|
231
|
+
OrHash =
|
|
232
|
+
T.type_alias do
|
|
233
|
+
T.any(
|
|
234
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject,
|
|
235
|
+
Stagehand::Internal::AnyHash
|
|
236
|
+
)
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
# Vertex provider authentication configuration
|
|
240
|
+
sig do
|
|
241
|
+
returns(
|
|
242
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth
|
|
243
|
+
)
|
|
244
|
+
end
|
|
245
|
+
attr_reader :auth
|
|
246
|
+
|
|
247
|
+
sig do
|
|
248
|
+
params(
|
|
249
|
+
auth:
|
|
250
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::OrHash
|
|
251
|
+
).void
|
|
252
|
+
end
|
|
253
|
+
attr_writer :auth
|
|
254
|
+
|
|
255
|
+
# Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
|
|
256
|
+
sig { returns(String) }
|
|
257
|
+
attr_accessor :model_name
|
|
258
|
+
|
|
259
|
+
# Vertex AI model provider
|
|
260
|
+
sig { returns(Symbol) }
|
|
261
|
+
attr_accessor :provider
|
|
262
|
+
|
|
263
|
+
# Vertex provider-specific model configuration
|
|
264
|
+
sig do
|
|
265
|
+
returns(
|
|
266
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions
|
|
267
|
+
)
|
|
268
|
+
end
|
|
269
|
+
attr_reader :provider_options
|
|
270
|
+
|
|
271
|
+
sig do
|
|
272
|
+
params(
|
|
273
|
+
provider_options:
|
|
274
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::OrHash
|
|
275
|
+
).void
|
|
276
|
+
end
|
|
277
|
+
attr_writer :provider_options
|
|
278
|
+
|
|
279
|
+
# API key for the model provider
|
|
280
|
+
sig { returns(T.nilable(String)) }
|
|
281
|
+
attr_reader :api_key
|
|
282
|
+
|
|
283
|
+
sig { params(api_key: String).void }
|
|
284
|
+
attr_writer :api_key
|
|
285
|
+
|
|
286
|
+
# Base URL for the model provider
|
|
287
|
+
sig { returns(T.nilable(String)) }
|
|
288
|
+
attr_reader :base_url
|
|
289
|
+
|
|
290
|
+
sig { params(base_url: String).void }
|
|
291
|
+
attr_writer :base_url
|
|
292
|
+
|
|
293
|
+
# Custom headers sent with every request to the model provider
|
|
294
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
295
|
+
attr_reader :headers
|
|
296
|
+
|
|
297
|
+
sig { params(headers: T::Hash[Symbol, String]).void }
|
|
298
|
+
attr_writer :headers
|
|
299
|
+
|
|
300
|
+
sig do
|
|
301
|
+
params(
|
|
302
|
+
auth:
|
|
303
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::OrHash,
|
|
304
|
+
model_name: String,
|
|
305
|
+
provider_options:
|
|
306
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::OrHash,
|
|
307
|
+
api_key: String,
|
|
308
|
+
base_url: String,
|
|
309
|
+
headers: T::Hash[Symbol, String],
|
|
310
|
+
provider: Symbol
|
|
311
|
+
).returns(T.attached_class)
|
|
312
|
+
end
|
|
313
|
+
def self.new(
|
|
314
|
+
# Vertex provider authentication configuration
|
|
315
|
+
auth:,
|
|
316
|
+
# Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
|
|
317
|
+
model_name:,
|
|
318
|
+
# Vertex provider-specific model configuration
|
|
319
|
+
provider_options:,
|
|
320
|
+
# API key for the model provider
|
|
321
|
+
api_key: nil,
|
|
322
|
+
# Base URL for the model provider
|
|
323
|
+
base_url: nil,
|
|
324
|
+
# Custom headers sent with every request to the model provider
|
|
325
|
+
headers: nil,
|
|
326
|
+
# Vertex AI model provider
|
|
327
|
+
provider: :vertex
|
|
328
|
+
)
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
sig do
|
|
332
|
+
override.returns(
|
|
333
|
+
{
|
|
334
|
+
auth:
|
|
335
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth,
|
|
336
|
+
model_name: String,
|
|
337
|
+
provider: Symbol,
|
|
338
|
+
provider_options:
|
|
339
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions,
|
|
340
|
+
api_key: String,
|
|
341
|
+
base_url: String,
|
|
342
|
+
headers: T::Hash[Symbol, String]
|
|
343
|
+
}
|
|
344
|
+
)
|
|
345
|
+
end
|
|
346
|
+
def to_hash
|
|
347
|
+
end
|
|
348
|
+
|
|
349
|
+
class Auth < Stagehand::Internal::Type::BaseModel
|
|
350
|
+
OrHash =
|
|
351
|
+
T.type_alias do
|
|
352
|
+
T.any(
|
|
353
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth,
|
|
354
|
+
Stagehand::Internal::AnyHash
|
|
355
|
+
)
|
|
356
|
+
end
|
|
357
|
+
|
|
358
|
+
# Google Cloud service account credentials
|
|
359
|
+
sig do
|
|
360
|
+
returns(
|
|
361
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials
|
|
362
|
+
)
|
|
363
|
+
end
|
|
364
|
+
attr_reader :credentials
|
|
365
|
+
|
|
366
|
+
sig do
|
|
367
|
+
params(
|
|
368
|
+
credentials:
|
|
369
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::OrHash
|
|
370
|
+
).void
|
|
371
|
+
end
|
|
372
|
+
attr_writer :credentials
|
|
373
|
+
|
|
374
|
+
# Use inline Google Cloud service account credentials for provider authentication
|
|
375
|
+
sig { returns(Symbol) }
|
|
376
|
+
attr_accessor :type
|
|
377
|
+
|
|
378
|
+
# Google Cloud project ID used by google-auth-library
|
|
379
|
+
sig { returns(T.nilable(String)) }
|
|
380
|
+
attr_reader :project_id
|
|
381
|
+
|
|
382
|
+
sig { params(project_id: String).void }
|
|
383
|
+
attr_writer :project_id
|
|
384
|
+
|
|
385
|
+
# Google auth scopes for the desired API request
|
|
386
|
+
sig do
|
|
387
|
+
returns(
|
|
388
|
+
T.nilable(
|
|
389
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Scopes::Variants
|
|
390
|
+
)
|
|
391
|
+
)
|
|
392
|
+
end
|
|
393
|
+
attr_reader :scopes
|
|
394
|
+
|
|
395
|
+
sig do
|
|
396
|
+
params(
|
|
397
|
+
scopes:
|
|
398
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Scopes::Variants
|
|
399
|
+
).void
|
|
400
|
+
end
|
|
401
|
+
attr_writer :scopes
|
|
402
|
+
|
|
403
|
+
# Google Cloud universe domain
|
|
404
|
+
sig { returns(T.nilable(String)) }
|
|
405
|
+
attr_reader :universe_domain
|
|
406
|
+
|
|
407
|
+
sig { params(universe_domain: String).void }
|
|
408
|
+
attr_writer :universe_domain
|
|
409
|
+
|
|
410
|
+
# Vertex provider authentication configuration
|
|
411
|
+
sig do
|
|
412
|
+
params(
|
|
413
|
+
credentials:
|
|
414
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::OrHash,
|
|
415
|
+
project_id: String,
|
|
416
|
+
scopes:
|
|
417
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Scopes::Variants,
|
|
418
|
+
universe_domain: String,
|
|
419
|
+
type: Symbol
|
|
420
|
+
).returns(T.attached_class)
|
|
421
|
+
end
|
|
422
|
+
def self.new(
|
|
423
|
+
# Google Cloud service account credentials
|
|
424
|
+
credentials:,
|
|
425
|
+
# Google Cloud project ID used by google-auth-library
|
|
426
|
+
project_id: nil,
|
|
427
|
+
# Google auth scopes for the desired API request
|
|
428
|
+
scopes: nil,
|
|
429
|
+
# Google Cloud universe domain
|
|
430
|
+
universe_domain: nil,
|
|
431
|
+
# Use inline Google Cloud service account credentials for provider authentication
|
|
432
|
+
type: :googleServiceAccount
|
|
433
|
+
)
|
|
434
|
+
end
|
|
435
|
+
|
|
436
|
+
sig do
|
|
437
|
+
override.returns(
|
|
438
|
+
{
|
|
439
|
+
credentials:
|
|
440
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials,
|
|
441
|
+
type: Symbol,
|
|
442
|
+
project_id: String,
|
|
443
|
+
scopes:
|
|
444
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Scopes::Variants,
|
|
445
|
+
universe_domain: String
|
|
446
|
+
}
|
|
447
|
+
)
|
|
448
|
+
end
|
|
449
|
+
def to_hash
|
|
450
|
+
end
|
|
451
|
+
|
|
452
|
+
class Credentials < Stagehand::Internal::Type::BaseModel
|
|
453
|
+
OrHash =
|
|
454
|
+
T.type_alias do
|
|
455
|
+
T.any(
|
|
456
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials,
|
|
457
|
+
Stagehand::Internal::AnyHash
|
|
458
|
+
)
|
|
459
|
+
end
|
|
460
|
+
|
|
461
|
+
sig { returns(String) }
|
|
462
|
+
attr_accessor :client_email
|
|
463
|
+
|
|
464
|
+
sig { returns(String) }
|
|
465
|
+
attr_accessor :private_key
|
|
466
|
+
|
|
467
|
+
sig { returns(T.nilable(String)) }
|
|
468
|
+
attr_reader :auth_provider_x509_cert_url
|
|
469
|
+
|
|
470
|
+
sig { params(auth_provider_x509_cert_url: String).void }
|
|
471
|
+
attr_writer :auth_provider_x509_cert_url
|
|
472
|
+
|
|
473
|
+
sig { returns(T.nilable(String)) }
|
|
474
|
+
attr_reader :auth_uri
|
|
475
|
+
|
|
476
|
+
sig { params(auth_uri: String).void }
|
|
477
|
+
attr_writer :auth_uri
|
|
478
|
+
|
|
479
|
+
sig { returns(T.nilable(String)) }
|
|
480
|
+
attr_reader :client_id
|
|
481
|
+
|
|
482
|
+
sig { params(client_id: String).void }
|
|
483
|
+
attr_writer :client_id
|
|
484
|
+
|
|
485
|
+
sig { returns(T.nilable(String)) }
|
|
486
|
+
attr_reader :client_x509_cert_url
|
|
487
|
+
|
|
488
|
+
sig { params(client_x509_cert_url: String).void }
|
|
489
|
+
attr_writer :client_x509_cert_url
|
|
490
|
+
|
|
491
|
+
sig { returns(T.nilable(String)) }
|
|
492
|
+
attr_reader :private_key_id
|
|
493
|
+
|
|
494
|
+
sig { params(private_key_id: String).void }
|
|
495
|
+
attr_writer :private_key_id
|
|
496
|
+
|
|
497
|
+
sig { returns(T.nilable(String)) }
|
|
498
|
+
attr_reader :project_id
|
|
499
|
+
|
|
500
|
+
sig { params(project_id: String).void }
|
|
501
|
+
attr_writer :project_id
|
|
502
|
+
|
|
503
|
+
sig { returns(T.nilable(String)) }
|
|
504
|
+
attr_reader :token_uri
|
|
505
|
+
|
|
506
|
+
sig { params(token_uri: String).void }
|
|
507
|
+
attr_writer :token_uri
|
|
508
|
+
|
|
509
|
+
sig do
|
|
510
|
+
returns(
|
|
511
|
+
T.nilable(
|
|
512
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol
|
|
513
|
+
)
|
|
514
|
+
)
|
|
515
|
+
end
|
|
516
|
+
attr_reader :type
|
|
517
|
+
|
|
518
|
+
sig do
|
|
519
|
+
params(
|
|
520
|
+
type:
|
|
521
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol
|
|
522
|
+
).void
|
|
523
|
+
end
|
|
524
|
+
attr_writer :type
|
|
525
|
+
|
|
526
|
+
sig { returns(T.nilable(String)) }
|
|
527
|
+
attr_reader :universe_domain
|
|
528
|
+
|
|
529
|
+
sig { params(universe_domain: String).void }
|
|
530
|
+
attr_writer :universe_domain
|
|
531
|
+
|
|
532
|
+
# Google Cloud service account credentials
|
|
533
|
+
sig do
|
|
534
|
+
params(
|
|
535
|
+
client_email: String,
|
|
536
|
+
private_key: String,
|
|
537
|
+
auth_provider_x509_cert_url: String,
|
|
538
|
+
auth_uri: String,
|
|
539
|
+
client_id: String,
|
|
540
|
+
client_x509_cert_url: String,
|
|
541
|
+
private_key_id: String,
|
|
542
|
+
project_id: String,
|
|
543
|
+
token_uri: String,
|
|
544
|
+
type:
|
|
545
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol,
|
|
546
|
+
universe_domain: String
|
|
547
|
+
).returns(T.attached_class)
|
|
548
|
+
end
|
|
549
|
+
def self.new(
|
|
550
|
+
client_email:,
|
|
551
|
+
private_key:,
|
|
552
|
+
auth_provider_x509_cert_url: nil,
|
|
553
|
+
auth_uri: nil,
|
|
554
|
+
client_id: nil,
|
|
555
|
+
client_x509_cert_url: nil,
|
|
556
|
+
private_key_id: nil,
|
|
557
|
+
project_id: nil,
|
|
558
|
+
token_uri: nil,
|
|
559
|
+
type: nil,
|
|
560
|
+
universe_domain: nil
|
|
561
|
+
)
|
|
562
|
+
end
|
|
563
|
+
|
|
564
|
+
sig do
|
|
565
|
+
override.returns(
|
|
566
|
+
{
|
|
567
|
+
client_email: String,
|
|
568
|
+
private_key: String,
|
|
569
|
+
auth_provider_x509_cert_url: String,
|
|
570
|
+
auth_uri: String,
|
|
571
|
+
client_id: String,
|
|
572
|
+
client_x509_cert_url: String,
|
|
573
|
+
private_key_id: String,
|
|
574
|
+
project_id: String,
|
|
575
|
+
token_uri: String,
|
|
576
|
+
type:
|
|
577
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol,
|
|
578
|
+
universe_domain: String
|
|
579
|
+
}
|
|
580
|
+
)
|
|
581
|
+
end
|
|
582
|
+
def to_hash
|
|
583
|
+
end
|
|
584
|
+
|
|
585
|
+
module Type
|
|
586
|
+
extend Stagehand::Internal::Type::Enum
|
|
587
|
+
|
|
588
|
+
TaggedSymbol =
|
|
589
|
+
T.type_alias do
|
|
590
|
+
T.all(
|
|
591
|
+
Symbol,
|
|
592
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type
|
|
593
|
+
)
|
|
594
|
+
end
|
|
595
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
596
|
+
|
|
597
|
+
SERVICE_ACCOUNT =
|
|
598
|
+
T.let(
|
|
599
|
+
:service_account,
|
|
600
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type::TaggedSymbol
|
|
601
|
+
)
|
|
602
|
+
|
|
603
|
+
sig do
|
|
604
|
+
override.returns(
|
|
605
|
+
T::Array[
|
|
606
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Credentials::Type::TaggedSymbol
|
|
607
|
+
]
|
|
608
|
+
)
|
|
609
|
+
end
|
|
610
|
+
def self.values
|
|
611
|
+
end
|
|
612
|
+
end
|
|
613
|
+
end
|
|
614
|
+
|
|
615
|
+
# Google auth scopes for the desired API request
|
|
616
|
+
module Scopes
|
|
617
|
+
extend Stagehand::Internal::Type::Union
|
|
618
|
+
|
|
619
|
+
Variants = T.type_alias { T.any(String, T::Array[String]) }
|
|
620
|
+
|
|
621
|
+
sig do
|
|
622
|
+
override.returns(
|
|
623
|
+
T::Array[
|
|
624
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::Auth::Scopes::Variants
|
|
625
|
+
]
|
|
626
|
+
)
|
|
627
|
+
end
|
|
628
|
+
def self.variants
|
|
629
|
+
end
|
|
630
|
+
|
|
631
|
+
StringArray =
|
|
632
|
+
T.let(
|
|
633
|
+
Stagehand::Internal::Type::ArrayOf[String],
|
|
634
|
+
Stagehand::Internal::Type::Converter
|
|
635
|
+
)
|
|
636
|
+
end
|
|
637
|
+
end
|
|
638
|
+
|
|
639
|
+
class ProviderOptions < Stagehand::Internal::Type::BaseModel
|
|
640
|
+
OrHash =
|
|
641
|
+
T.type_alias do
|
|
642
|
+
T.any(
|
|
643
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions,
|
|
644
|
+
Stagehand::Internal::AnyHash
|
|
645
|
+
)
|
|
646
|
+
end
|
|
647
|
+
|
|
648
|
+
# Vertex AI provider-specific settings
|
|
649
|
+
sig do
|
|
650
|
+
returns(
|
|
651
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::Vertex
|
|
652
|
+
)
|
|
653
|
+
end
|
|
654
|
+
attr_reader :vertex
|
|
655
|
+
|
|
656
|
+
sig do
|
|
657
|
+
params(
|
|
658
|
+
vertex:
|
|
659
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::Vertex::OrHash
|
|
660
|
+
).void
|
|
661
|
+
end
|
|
662
|
+
attr_writer :vertex
|
|
663
|
+
|
|
664
|
+
# Vertex provider-specific model configuration
|
|
665
|
+
sig do
|
|
666
|
+
params(
|
|
667
|
+
vertex:
|
|
668
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::Vertex::OrHash
|
|
669
|
+
).returns(T.attached_class)
|
|
670
|
+
end
|
|
671
|
+
def self.new(
|
|
672
|
+
# Vertex AI provider-specific settings
|
|
673
|
+
vertex:
|
|
674
|
+
)
|
|
675
|
+
end
|
|
676
|
+
|
|
677
|
+
sig do
|
|
678
|
+
override.returns(
|
|
679
|
+
{
|
|
680
|
+
vertex:
|
|
681
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::Vertex
|
|
682
|
+
}
|
|
683
|
+
)
|
|
684
|
+
end
|
|
685
|
+
def to_hash
|
|
686
|
+
end
|
|
687
|
+
|
|
688
|
+
class Vertex < Stagehand::Internal::Type::BaseModel
|
|
689
|
+
OrHash =
|
|
690
|
+
T.type_alias do
|
|
691
|
+
T.any(
|
|
692
|
+
Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::ProviderOptions::Vertex,
|
|
693
|
+
Stagehand::Internal::AnyHash
|
|
694
|
+
)
|
|
695
|
+
end
|
|
696
|
+
|
|
697
|
+
# Google Cloud location for Vertex AI models
|
|
698
|
+
sig { returns(String) }
|
|
699
|
+
attr_accessor :location
|
|
700
|
+
|
|
701
|
+
# Google Cloud project ID for Vertex AI models
|
|
702
|
+
sig { returns(String) }
|
|
703
|
+
attr_accessor :project
|
|
704
|
+
|
|
705
|
+
# Base URL for the Vertex AI provider
|
|
706
|
+
sig { returns(T.nilable(String)) }
|
|
707
|
+
attr_reader :base_url
|
|
708
|
+
|
|
709
|
+
sig { params(base_url: String).void }
|
|
710
|
+
attr_writer :base_url
|
|
711
|
+
|
|
712
|
+
# Custom headers sent with every request to the Vertex AI provider
|
|
713
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
714
|
+
attr_reader :headers
|
|
715
|
+
|
|
716
|
+
sig { params(headers: T::Hash[Symbol, String]).void }
|
|
717
|
+
attr_writer :headers
|
|
718
|
+
|
|
719
|
+
# Vertex AI provider-specific settings
|
|
720
|
+
sig do
|
|
721
|
+
params(
|
|
722
|
+
location: String,
|
|
723
|
+
project: String,
|
|
724
|
+
base_url: String,
|
|
725
|
+
headers: T::Hash[Symbol, String]
|
|
726
|
+
).returns(T.attached_class)
|
|
727
|
+
end
|
|
728
|
+
def self.new(
|
|
729
|
+
# Google Cloud location for Vertex AI models
|
|
730
|
+
location:,
|
|
731
|
+
# Google Cloud project ID for Vertex AI models
|
|
732
|
+
project:,
|
|
733
|
+
# Base URL for the Vertex AI provider
|
|
734
|
+
base_url: nil,
|
|
735
|
+
# Custom headers sent with every request to the Vertex AI provider
|
|
736
|
+
headers: nil
|
|
737
|
+
)
|
|
738
|
+
end
|
|
739
|
+
|
|
740
|
+
sig do
|
|
741
|
+
override.returns(
|
|
742
|
+
{
|
|
743
|
+
location: String,
|
|
744
|
+
project: String,
|
|
745
|
+
base_url: String,
|
|
746
|
+
headers: T::Hash[Symbol, String]
|
|
747
|
+
}
|
|
748
|
+
)
|
|
749
|
+
end
|
|
750
|
+
def to_hash
|
|
751
|
+
end
|
|
752
|
+
end
|
|
753
|
+
end
|
|
754
|
+
end
|
|
755
|
+
|
|
756
|
+
class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel
|
|
757
|
+
OrHash =
|
|
758
|
+
T.type_alias do
|
|
759
|
+
T.any(
|
|
760
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject,
|
|
761
|
+
Stagehand::Internal::AnyHash
|
|
762
|
+
)
|
|
763
|
+
end
|
|
764
|
+
|
|
765
|
+
# Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
|
|
766
|
+
sig { returns(String) }
|
|
767
|
+
attr_accessor :model_name
|
|
768
|
+
|
|
769
|
+
# API key for the model provider
|
|
770
|
+
sig { returns(T.nilable(String)) }
|
|
771
|
+
attr_reader :api_key
|
|
772
|
+
|
|
773
|
+
sig { params(api_key: String).void }
|
|
774
|
+
attr_writer :api_key
|
|
775
|
+
|
|
776
|
+
# Base URL for the model provider
|
|
777
|
+
sig { returns(T.nilable(String)) }
|
|
778
|
+
attr_reader :base_url
|
|
779
|
+
|
|
780
|
+
sig { params(base_url: String).void }
|
|
781
|
+
attr_writer :base_url
|
|
782
|
+
|
|
783
|
+
# Custom headers sent with every request to the model provider
|
|
784
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
785
|
+
attr_reader :headers
|
|
786
|
+
|
|
787
|
+
sig { params(headers: T::Hash[Symbol, String]).void }
|
|
788
|
+
attr_writer :headers
|
|
789
|
+
|
|
790
|
+
# AI provider for the model (or provide a baseURL endpoint instead)
|
|
791
|
+
sig do
|
|
792
|
+
returns(
|
|
793
|
+
T.nilable(
|
|
794
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::OrSymbol
|
|
795
|
+
)
|
|
796
|
+
)
|
|
797
|
+
end
|
|
798
|
+
attr_reader :provider
|
|
799
|
+
|
|
800
|
+
sig do
|
|
801
|
+
params(
|
|
802
|
+
provider:
|
|
803
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::OrSymbol
|
|
804
|
+
).void
|
|
805
|
+
end
|
|
806
|
+
attr_writer :provider
|
|
807
|
+
|
|
808
|
+
sig do
|
|
809
|
+
params(
|
|
810
|
+
model_name: String,
|
|
811
|
+
api_key: String,
|
|
812
|
+
base_url: String,
|
|
813
|
+
headers: T::Hash[Symbol, String],
|
|
814
|
+
provider:
|
|
815
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::OrSymbol
|
|
816
|
+
).returns(T.attached_class)
|
|
817
|
+
end
|
|
818
|
+
def self.new(
|
|
819
|
+
# Model name string with provider prefix (e.g., 'openai/gpt-5-nano')
|
|
820
|
+
model_name:,
|
|
821
|
+
# API key for the model provider
|
|
822
|
+
api_key: nil,
|
|
823
|
+
# Base URL for the model provider
|
|
824
|
+
base_url: nil,
|
|
825
|
+
# Custom headers sent with every request to the model provider
|
|
826
|
+
headers: nil,
|
|
827
|
+
# AI provider for the model (or provide a baseURL endpoint instead)
|
|
828
|
+
provider: nil
|
|
829
|
+
)
|
|
830
|
+
end
|
|
831
|
+
|
|
832
|
+
sig do
|
|
833
|
+
override.returns(
|
|
834
|
+
{
|
|
835
|
+
model_name: String,
|
|
836
|
+
api_key: String,
|
|
837
|
+
base_url: String,
|
|
838
|
+
headers: T::Hash[Symbol, String],
|
|
839
|
+
provider:
|
|
840
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::OrSymbol
|
|
841
|
+
}
|
|
842
|
+
)
|
|
843
|
+
end
|
|
844
|
+
def to_hash
|
|
845
|
+
end
|
|
846
|
+
|
|
847
|
+
# AI provider for the model (or provide a baseURL endpoint instead)
|
|
848
|
+
module Provider
|
|
849
|
+
extend Stagehand::Internal::Type::Enum
|
|
850
|
+
|
|
851
|
+
TaggedSymbol =
|
|
852
|
+
T.type_alias do
|
|
853
|
+
T.all(
|
|
854
|
+
Symbol,
|
|
855
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider
|
|
856
|
+
)
|
|
857
|
+
end
|
|
858
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
859
|
+
|
|
860
|
+
OPENAI =
|
|
861
|
+
T.let(
|
|
862
|
+
:openai,
|
|
863
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::TaggedSymbol
|
|
864
|
+
)
|
|
865
|
+
ANTHROPIC =
|
|
866
|
+
T.let(
|
|
867
|
+
:anthropic,
|
|
868
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::TaggedSymbol
|
|
869
|
+
)
|
|
870
|
+
GOOGLE =
|
|
871
|
+
T.let(
|
|
872
|
+
:google,
|
|
873
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::TaggedSymbol
|
|
874
|
+
)
|
|
875
|
+
MICROSOFT =
|
|
876
|
+
T.let(
|
|
877
|
+
:microsoft,
|
|
878
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::TaggedSymbol
|
|
879
|
+
)
|
|
880
|
+
BEDROCK =
|
|
881
|
+
T.let(
|
|
882
|
+
:bedrock,
|
|
883
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::TaggedSymbol
|
|
884
|
+
)
|
|
885
|
+
|
|
886
|
+
sig do
|
|
887
|
+
override.returns(
|
|
888
|
+
T::Array[
|
|
889
|
+
Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::Provider::TaggedSymbol
|
|
890
|
+
]
|
|
891
|
+
)
|
|
892
|
+
end
|
|
893
|
+
def self.values
|
|
894
|
+
end
|
|
895
|
+
end
|
|
896
|
+
end
|
|
171
897
|
|
|
172
898
|
sig do
|
|
173
899
|
override.returns(
|