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