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