From 1f8bf4b2421c4c85887535aff089a81392aef841 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 21:01:37 +0000 Subject: [PATCH 1/2] feat: [STG-2090] Add Azure Entra model auth support --- .stats.yml | 4 +- lib/stagehand/internal/type/union.rb | 4 +- lib/stagehand/models/model_config.rb | 258 ++- lib/stagehand/models/session_act_params.rb | 268 ++- .../models/session_execute_params.rb | 538 ++++- .../models/session_extract_params.rb | 268 ++- .../models/session_observe_params.rb | 268 ++- rbi/stagehand/models/model_config.rbi | 504 +++++ rbi/stagehand/models/session_act_params.rbi | 517 +++++ .../models/session_execute_params.rbi | 1768 +++++++++++++---- .../models/session_extract_params.rbi | 517 +++++ .../models/session_observe_params.rbi | 517 +++++ sig/stagehand/models/model_config.rbs | 236 +++ sig/stagehand/models/session_act_params.rbs | 236 +++ .../models/session_execute_params.rbs | 472 +++++ .../models/session_extract_params.rbs | 236 +++ .../models/session_observe_params.rbs | 236 +++ 17 files changed, 6461 insertions(+), 386 deletions(-) diff --git a/.stats.yml b/.stats.yml index 15099ca..90ce078 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 8 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/stagehand-c7910965e66e73ad8b65b6cc391d431094b2a6c6577c3e9d82feaa8138e74cff.yml -openapi_spec_hash: 37748bb69c22a9ce721d9b5a5861f964 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase/stagehand-4d0d50b4f18fd74f58aca0b84d6968d1228499f2fa4e5714516f13ff6f820c9d.yml +openapi_spec_hash: f7b1a869f3e412aea4d4bd42467791bb config_hash: 1fb12ae9b478488bc1e56bfbdc210b01 diff --git a/lib/stagehand/internal/type/union.rb b/lib/stagehand/internal/type/union.rb index aac57d0..5f5a4a8 100644 --- a/lib/stagehand/internal/type/union.rb +++ b/lib/stagehand/internal/type/union.rb @@ -10,8 +10,10 @@ module Type # case model_config # when Stagehand::ModelConfig::VertexModelConfigObject # puts(model_config.auth) - # when Stagehand::ModelConfig::GenericModelConfigObject + # when Stagehand::ModelConfig::AzureEntraModelConfigObject # puts(model_config.model_name) + # when Stagehand::ModelConfig::AzureAPIKeyModelConfigObject + # puts(model_config.provider) # else # puts(model_config) # end diff --git a/lib/stagehand/models/model_config.rb b/lib/stagehand/models/model_config.rb index 92281b1..611ca5d 100644 --- a/lib/stagehand/models/model_config.rb +++ b/lib/stagehand/models/model_config.rb @@ -7,6 +7,10 @@ module ModelConfig variant -> { Stagehand::ModelConfig::VertexModelConfigObject } + variant -> { Stagehand::ModelConfig::AzureEntraModelConfigObject } + + variant -> { Stagehand::ModelConfig::AzureAPIKeyModelConfigObject } + variant -> { Stagehand::ModelConfig::GenericModelConfigObject } class VertexModelConfigObject < Stagehand::Internal::Type::BaseModel @@ -268,6 +272,258 @@ class Vertex < Stagehand::Internal::Type::BaseModel end end + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + # @!attribute auth + # Azure provider authentication configuration + # + # @return [Stagehand::Models::ModelConfig::AzureEntraModelConfigObject::Auth] + required :auth, -> { Stagehand::ModelConfig::AzureEntraModelConfigObject::Auth } + + # @!attribute model_name + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @return [String] + required :model_name, String, api_name: :modelName + + # @!attribute provider + # Azure OpenAI model provider + # + # @return [Symbol, :azure] + required :provider, const: :azure + + # @!attribute provider_options + # Azure provider-specific model configuration + # + # @return [Stagehand::Models::ModelConfig::AzureEntraModelConfigObject::ProviderOptions] + required :provider_options, + -> { Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions }, + api_name: :providerOptions + + # @!attribute base_url + # Base URL for the model provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the model provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!method initialize(auth:, model_name:, provider_options:, base_url: nil, headers: nil, provider: :azure) + # @param auth [Stagehand::Models::ModelConfig::AzureEntraModelConfigObject::Auth] Azure provider authentication configuration + # + # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @param provider_options [Stagehand::Models::ModelConfig::AzureEntraModelConfigObject::ProviderOptions] Azure provider-specific model configuration + # + # @param base_url [String] Base URL for the model provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider + # + # @param provider [Symbol, :azure] Azure OpenAI model provider + + # @see Stagehand::Models::ModelConfig::AzureEntraModelConfigObject#auth + class Auth < Stagehand::Internal::Type::BaseModel + # @!attribute token + # Microsoft Entra ID bearer token for Azure OpenAI + # + # @return [String] + required :token, String + + # @!attribute type + # Use a Microsoft Entra ID bearer token for authentication + # + # @return [Symbol, :azureEntraId] + required :type, const: :azureEntraId + + # @!method initialize(token:, type: :azureEntraId) + # Azure provider authentication configuration + # + # @param token [String] Microsoft Entra ID bearer token for Azure OpenAI + # + # @param type [Symbol, :azureEntraId] Use a Microsoft Entra ID bearer token for authentication + end + + # @see Stagehand::Models::ModelConfig::AzureEntraModelConfigObject#provider_options + class ProviderOptions < Stagehand::Internal::Type::BaseModel + # @!attribute azure + # Azure OpenAI provider-specific settings + # + # @return [Stagehand::Models::ModelConfig::AzureEntraModelConfigObject::ProviderOptions::Azure] + required :azure, -> { Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions::Azure } + + # @!method initialize(azure:) + # Azure provider-specific model configuration + # + # @param azure [Stagehand::Models::ModelConfig::AzureEntraModelConfigObject::ProviderOptions::Azure] Azure OpenAI provider-specific settings + + # @see Stagehand::Models::ModelConfig::AzureEntraModelConfigObject::ProviderOptions#azure + class Azure < Stagehand::Internal::Type::BaseModel + # @!attribute api_version + # Azure OpenAI API version + # + # @return [String, nil] + optional :api_version, String, api_name: :apiVersion + + # @!attribute base_url + # Base URL for the Azure OpenAI provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the Azure OpenAI provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!attribute resource_name + # Azure OpenAI resource name + # + # @return [String, nil] + optional :resource_name, String, api_name: :resourceName + + # @!attribute use_deployment_based_urls + # Whether to use deployment-based Azure OpenAI URLs + # + # @return [Boolean, nil] + optional :use_deployment_based_urls, + Stagehand::Internal::Type::Boolean, + api_name: :useDeploymentBasedUrls + + # @!method initialize(api_version: nil, base_url: nil, headers: nil, resource_name: nil, use_deployment_based_urls: nil) + # Azure OpenAI provider-specific settings + # + # @param api_version [String] Azure OpenAI API version + # + # @param base_url [String] Base URL for the Azure OpenAI provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Azure OpenAI provider + # + # @param resource_name [String] Azure OpenAI resource name + # + # @param use_deployment_based_urls [Boolean] Whether to use deployment-based Azure OpenAI URLs + end + end + end + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + # @!attribute model_name + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @return [String] + required :model_name, String, api_name: :modelName + + # @!attribute provider + # Azure OpenAI model provider + # + # @return [Symbol, :azure] + required :provider, const: :azure + + # @!attribute provider_options + # Azure provider-specific model configuration + # + # @return [Stagehand::Models::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions] + required :provider_options, + -> { Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions }, + api_name: :providerOptions + + # @!attribute api_key + # API key for the model provider + # + # @return [String, nil] + optional :api_key, String, api_name: :apiKey + + # @!attribute base_url + # Base URL for the model provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the model provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!method initialize(model_name:, provider_options:, api_key: nil, base_url: nil, headers: nil, provider: :azure) + # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @param provider_options [Stagehand::Models::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions] Azure provider-specific model configuration + # + # @param api_key [String] API key for the model provider + # + # @param base_url [String] Base URL for the model provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider + # + # @param provider [Symbol, :azure] Azure OpenAI model provider + + # @see Stagehand::Models::ModelConfig::AzureAPIKeyModelConfigObject#provider_options + class ProviderOptions < Stagehand::Internal::Type::BaseModel + # @!attribute azure + # Azure OpenAI provider-specific settings + # + # @return [Stagehand::Models::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions::Azure] + required :azure, -> { Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions::Azure } + + # @!method initialize(azure:) + # Azure provider-specific model configuration + # + # @param azure [Stagehand::Models::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions::Azure] Azure OpenAI provider-specific settings + + # @see Stagehand::Models::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions#azure + class Azure < Stagehand::Internal::Type::BaseModel + # @!attribute api_version + # Azure OpenAI API version + # + # @return [String, nil] + optional :api_version, String, api_name: :apiVersion + + # @!attribute base_url + # Base URL for the Azure OpenAI provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the Azure OpenAI provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!attribute resource_name + # Azure OpenAI resource name + # + # @return [String, nil] + optional :resource_name, String, api_name: :resourceName + + # @!attribute use_deployment_based_urls + # Whether to use deployment-based Azure OpenAI URLs + # + # @return [Boolean, nil] + optional :use_deployment_based_urls, + Stagehand::Internal::Type::Boolean, + api_name: :useDeploymentBasedUrls + + # @!method initialize(api_version: nil, base_url: nil, headers: nil, resource_name: nil, use_deployment_based_urls: nil) + # Azure OpenAI provider-specific settings + # + # @param api_version [String] Azure OpenAI API version + # + # @param base_url [String] Base URL for the Azure OpenAI provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Azure OpenAI provider + # + # @param resource_name [String] Azure OpenAI resource name + # + # @param use_deployment_based_urls [Boolean] Whether to use deployment-based Azure OpenAI URLs + end + end + end + class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel # @!attribute model_name # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') @@ -328,7 +584,7 @@ module Provider end # @!method self.variants - # @return [Array(Stagehand::Models::ModelConfig::VertexModelConfigObject, Stagehand::Models::ModelConfig::GenericModelConfigObject)] + # @return [Array(Stagehand::Models::ModelConfig::VertexModelConfigObject, Stagehand::Models::ModelConfig::AzureEntraModelConfigObject, Stagehand::Models::ModelConfig::AzureAPIKeyModelConfigObject, Stagehand::Models::ModelConfig::GenericModelConfigObject)] end end end diff --git a/lib/stagehand/models/session_act_params.rb b/lib/stagehand/models/session_act_params.rb index 9ed0570..0499071 100644 --- a/lib/stagehand/models/session_act_params.rb +++ b/lib/stagehand/models/session_act_params.rb @@ -68,7 +68,7 @@ class Options < Stagehand::Internal::Type::BaseModel # @!attribute model # Model configuration object or model name string (e.g., 'openai/gpt-5-nano') # - # @return [Stagehand::Models::SessionActParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionActParams::Options::Model::GenericModelConfigObject, String, nil] + # @return [Stagehand::Models::SessionActParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionActParams::Options::Model::AzureEntraModelConfigObject, Stagehand::Models::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionActParams::Options::Model::GenericModelConfigObject, String, nil] optional :model, union: -> { Stagehand::SessionActParams::Options::Model } # @!attribute timeout @@ -89,7 +89,7 @@ class Options < Stagehand::Internal::Type::BaseModel # Some parameter documentations has been truncated, see # {Stagehand::Models::SessionActParams::Options} for more details. # - # @param model [Stagehand::Models::SessionActParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionActParams::Options::Model::GenericModelConfigObject, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano') + # @param model [Stagehand::Models::SessionActParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionActParams::Options::Model::AzureEntraModelConfigObject, Stagehand::Models::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionActParams::Options::Model::GenericModelConfigObject, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano') # # @param timeout [Float] Timeout in ms for the action # @@ -103,6 +103,10 @@ module Model variant -> { Stagehand::SessionActParams::Options::Model::VertexModelConfigObject } + variant -> { Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject } + + variant -> { Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject } + variant -> { Stagehand::SessionActParams::Options::Model::GenericModelConfigObject } variant String @@ -372,6 +376,264 @@ class Vertex < Stagehand::Internal::Type::BaseModel end end + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + # @!attribute auth + # Azure provider authentication configuration + # + # @return [Stagehand::Models::SessionActParams::Options::Model::AzureEntraModelConfigObject::Auth] + required :auth, -> { Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::Auth } + + # @!attribute model_name + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @return [String] + required :model_name, String, api_name: :modelName + + # @!attribute provider + # Azure OpenAI model provider + # + # @return [Symbol, :azure] + required :provider, const: :azure + + # @!attribute provider_options + # Azure provider-specific model configuration + # + # @return [Stagehand::Models::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions] + required :provider_options, + -> { + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions + }, + api_name: :providerOptions + + # @!attribute base_url + # Base URL for the model provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the model provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!method initialize(auth:, model_name:, provider_options:, base_url: nil, headers: nil, provider: :azure) + # @param auth [Stagehand::Models::SessionActParams::Options::Model::AzureEntraModelConfigObject::Auth] Azure provider authentication configuration + # + # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @param provider_options [Stagehand::Models::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions] Azure provider-specific model configuration + # + # @param base_url [String] Base URL for the model provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider + # + # @param provider [Symbol, :azure] Azure OpenAI model provider + + # @see Stagehand::Models::SessionActParams::Options::Model::AzureEntraModelConfigObject#auth + class Auth < Stagehand::Internal::Type::BaseModel + # @!attribute token + # Microsoft Entra ID bearer token for Azure OpenAI + # + # @return [String] + required :token, String + + # @!attribute type + # Use a Microsoft Entra ID bearer token for authentication + # + # @return [Symbol, :azureEntraId] + required :type, const: :azureEntraId + + # @!method initialize(token:, type: :azureEntraId) + # Azure provider authentication configuration + # + # @param token [String] Microsoft Entra ID bearer token for Azure OpenAI + # + # @param type [Symbol, :azureEntraId] Use a Microsoft Entra ID bearer token for authentication + end + + # @see Stagehand::Models::SessionActParams::Options::Model::AzureEntraModelConfigObject#provider_options + class ProviderOptions < Stagehand::Internal::Type::BaseModel + # @!attribute azure + # Azure OpenAI provider-specific settings + # + # @return [Stagehand::Models::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure] + required :azure, + -> { Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure } + + # @!method initialize(azure:) + # Azure provider-specific model configuration + # + # @param azure [Stagehand::Models::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure] Azure OpenAI provider-specific settings + + # @see Stagehand::Models::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions#azure + class Azure < Stagehand::Internal::Type::BaseModel + # @!attribute api_version + # Azure OpenAI API version + # + # @return [String, nil] + optional :api_version, String, api_name: :apiVersion + + # @!attribute base_url + # Base URL for the Azure OpenAI provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the Azure OpenAI provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!attribute resource_name + # Azure OpenAI resource name + # + # @return [String, nil] + optional :resource_name, String, api_name: :resourceName + + # @!attribute use_deployment_based_urls + # Whether to use deployment-based Azure OpenAI URLs + # + # @return [Boolean, nil] + optional :use_deployment_based_urls, + Stagehand::Internal::Type::Boolean, + api_name: :useDeploymentBasedUrls + + # @!method initialize(api_version: nil, base_url: nil, headers: nil, resource_name: nil, use_deployment_based_urls: nil) + # Azure OpenAI provider-specific settings + # + # @param api_version [String] Azure OpenAI API version + # + # @param base_url [String] Base URL for the Azure OpenAI provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Azure OpenAI provider + # + # @param resource_name [String] Azure OpenAI resource name + # + # @param use_deployment_based_urls [Boolean] Whether to use deployment-based Azure OpenAI URLs + end + end + end + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + # @!attribute model_name + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @return [String] + required :model_name, String, api_name: :modelName + + # @!attribute provider + # Azure OpenAI model provider + # + # @return [Symbol, :azure] + required :provider, const: :azure + + # @!attribute provider_options + # Azure provider-specific model configuration + # + # @return [Stagehand::Models::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions] + required :provider_options, + -> { + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions + }, + api_name: :providerOptions + + # @!attribute api_key + # API key for the model provider + # + # @return [String, nil] + optional :api_key, String, api_name: :apiKey + + # @!attribute base_url + # Base URL for the model provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the model provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!method initialize(model_name:, provider_options:, api_key: nil, base_url: nil, headers: nil, provider: :azure) + # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @param provider_options [Stagehand::Models::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions] Azure provider-specific model configuration + # + # @param api_key [String] API key for the model provider + # + # @param base_url [String] Base URL for the model provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider + # + # @param provider [Symbol, :azure] Azure OpenAI model provider + + # @see Stagehand::Models::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject#provider_options + class ProviderOptions < Stagehand::Internal::Type::BaseModel + # @!attribute azure + # Azure OpenAI provider-specific settings + # + # @return [Stagehand::Models::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure] + required :azure, + -> { Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure } + + # @!method initialize(azure:) + # Azure provider-specific model configuration + # + # @param azure [Stagehand::Models::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure] Azure OpenAI provider-specific settings + + # @see Stagehand::Models::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions#azure + class Azure < Stagehand::Internal::Type::BaseModel + # @!attribute api_version + # Azure OpenAI API version + # + # @return [String, nil] + optional :api_version, String, api_name: :apiVersion + + # @!attribute base_url + # Base URL for the Azure OpenAI provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the Azure OpenAI provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!attribute resource_name + # Azure OpenAI resource name + # + # @return [String, nil] + optional :resource_name, String, api_name: :resourceName + + # @!attribute use_deployment_based_urls + # Whether to use deployment-based Azure OpenAI URLs + # + # @return [Boolean, nil] + optional :use_deployment_based_urls, + Stagehand::Internal::Type::Boolean, + api_name: :useDeploymentBasedUrls + + # @!method initialize(api_version: nil, base_url: nil, headers: nil, resource_name: nil, use_deployment_based_urls: nil) + # Azure OpenAI provider-specific settings + # + # @param api_version [String] Azure OpenAI API version + # + # @param base_url [String] Base URL for the Azure OpenAI provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Azure OpenAI provider + # + # @param resource_name [String] Azure OpenAI resource name + # + # @param use_deployment_based_urls [Boolean] Whether to use deployment-based Azure OpenAI URLs + end + end + end + class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel # @!attribute model_name # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') @@ -433,7 +695,7 @@ module Provider end # @!method self.variants - # @return [Array(Stagehand::Models::SessionActParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionActParams::Options::Model::GenericModelConfigObject, String)] + # @return [Array(Stagehand::Models::SessionActParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionActParams::Options::Model::AzureEntraModelConfigObject, Stagehand::Models::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionActParams::Options::Model::GenericModelConfigObject, String)] end module Variable diff --git a/lib/stagehand/models/session_execute_params.rb b/lib/stagehand/models/session_execute_params.rb index d71e506..875610f 100644 --- a/lib/stagehand/models/session_execute_params.rb +++ b/lib/stagehand/models/session_execute_params.rb @@ -73,7 +73,7 @@ class AgentConfig < Stagehand::Internal::Type::BaseModel # tool execution (observe/act calls within agent tools). If not specified, # inherits from the main model configuration. # - # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject, String, nil] + # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject, String, nil] optional :execution_model, union: -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel }, api_name: :executionModel @@ -87,7 +87,7 @@ class AgentConfig < Stagehand::Internal::Type::BaseModel # @!attribute model # Model configuration object or model name string (e.g., 'openai/gpt-5-nano') # - # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject, String, nil] + # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject, String, nil] optional :model, union: -> { Stagehand::SessionExecuteParams::AgentConfig::Model } # @!attribute provider @@ -108,11 +108,11 @@ class AgentConfig < Stagehand::Internal::Type::BaseModel # # @param cua [Boolean] Deprecated. Use mode: 'cua' instead. If both are provided, mode takes precedence # - # @param execution_model [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano') for + # @param execution_model [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano') for # # @param mode [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Mode] Tool mode for the agent (dom, hybrid, cua). If set, overrides cua. # - # @param model [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano') + # @param model [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano') # # @param provider [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Provider] AI provider for the agent (legacy, use model: openai/gpt-5-nano instead) # @@ -128,6 +128,10 @@ module ExecutionModel variant -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject } + variant -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject } + + variant -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject } + variant -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject } variant String @@ -398,6 +402,265 @@ class Vertex < Stagehand::Internal::Type::BaseModel end end + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + # @!attribute auth + # Azure provider authentication configuration + # + # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::Auth] + required :auth, + -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::Auth } + + # @!attribute model_name + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @return [String] + required :model_name, String, api_name: :modelName + + # @!attribute provider + # Azure OpenAI model provider + # + # @return [Symbol, :azure] + required :provider, const: :azure + + # @!attribute provider_options + # Azure provider-specific model configuration + # + # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions] + required :provider_options, + -> { + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions + }, + api_name: :providerOptions + + # @!attribute base_url + # Base URL for the model provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the model provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!method initialize(auth:, model_name:, provider_options:, base_url: nil, headers: nil, provider: :azure) + # @param auth [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::Auth] Azure provider authentication configuration + # + # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @param provider_options [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions] Azure provider-specific model configuration + # + # @param base_url [String] Base URL for the model provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider + # + # @param provider [Symbol, :azure] Azure OpenAI model provider + + # @see Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject#auth + class Auth < Stagehand::Internal::Type::BaseModel + # @!attribute token + # Microsoft Entra ID bearer token for Azure OpenAI + # + # @return [String] + required :token, String + + # @!attribute type + # Use a Microsoft Entra ID bearer token for authentication + # + # @return [Symbol, :azureEntraId] + required :type, const: :azureEntraId + + # @!method initialize(token:, type: :azureEntraId) + # Azure provider authentication configuration + # + # @param token [String] Microsoft Entra ID bearer token for Azure OpenAI + # + # @param type [Symbol, :azureEntraId] Use a Microsoft Entra ID bearer token for authentication + end + + # @see Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject#provider_options + class ProviderOptions < Stagehand::Internal::Type::BaseModel + # @!attribute azure + # Azure OpenAI provider-specific settings + # + # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions::Azure] + required :azure, + -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions::Azure } + + # @!method initialize(azure:) + # Azure provider-specific model configuration + # + # @param azure [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions::Azure] Azure OpenAI provider-specific settings + + # @see Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions#azure + class Azure < Stagehand::Internal::Type::BaseModel + # @!attribute api_version + # Azure OpenAI API version + # + # @return [String, nil] + optional :api_version, String, api_name: :apiVersion + + # @!attribute base_url + # Base URL for the Azure OpenAI provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the Azure OpenAI provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!attribute resource_name + # Azure OpenAI resource name + # + # @return [String, nil] + optional :resource_name, String, api_name: :resourceName + + # @!attribute use_deployment_based_urls + # Whether to use deployment-based Azure OpenAI URLs + # + # @return [Boolean, nil] + optional :use_deployment_based_urls, + Stagehand::Internal::Type::Boolean, + api_name: :useDeploymentBasedUrls + + # @!method initialize(api_version: nil, base_url: nil, headers: nil, resource_name: nil, use_deployment_based_urls: nil) + # Azure OpenAI provider-specific settings + # + # @param api_version [String] Azure OpenAI API version + # + # @param base_url [String] Base URL for the Azure OpenAI provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Azure OpenAI provider + # + # @param resource_name [String] Azure OpenAI resource name + # + # @param use_deployment_based_urls [Boolean] Whether to use deployment-based Azure OpenAI URLs + end + end + end + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + # @!attribute model_name + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @return [String] + required :model_name, String, api_name: :modelName + + # @!attribute provider + # Azure OpenAI model provider + # + # @return [Symbol, :azure] + required :provider, const: :azure + + # @!attribute provider_options + # Azure provider-specific model configuration + # + # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions] + required :provider_options, + -> { + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions + }, + api_name: :providerOptions + + # @!attribute api_key + # API key for the model provider + # + # @return [String, nil] + optional :api_key, String, api_name: :apiKey + + # @!attribute base_url + # Base URL for the model provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the model provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!method initialize(model_name:, provider_options:, api_key: nil, base_url: nil, headers: nil, provider: :azure) + # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @param provider_options [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions] Azure provider-specific model configuration + # + # @param api_key [String] API key for the model provider + # + # @param base_url [String] Base URL for the model provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider + # + # @param provider [Symbol, :azure] Azure OpenAI model provider + + # @see Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject#provider_options + class ProviderOptions < Stagehand::Internal::Type::BaseModel + # @!attribute azure + # Azure OpenAI provider-specific settings + # + # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions::Azure] + required :azure, + -> { Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions::Azure } + + # @!method initialize(azure:) + # Azure provider-specific model configuration + # + # @param azure [Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions::Azure] Azure OpenAI provider-specific settings + + # @see Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions#azure + class Azure < Stagehand::Internal::Type::BaseModel + # @!attribute api_version + # Azure OpenAI API version + # + # @return [String, nil] + optional :api_version, String, api_name: :apiVersion + + # @!attribute base_url + # Base URL for the Azure OpenAI provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the Azure OpenAI provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!attribute resource_name + # Azure OpenAI resource name + # + # @return [String, nil] + optional :resource_name, String, api_name: :resourceName + + # @!attribute use_deployment_based_urls + # Whether to use deployment-based Azure OpenAI URLs + # + # @return [Boolean, nil] + optional :use_deployment_based_urls, + Stagehand::Internal::Type::Boolean, + api_name: :useDeploymentBasedUrls + + # @!method initialize(api_version: nil, base_url: nil, headers: nil, resource_name: nil, use_deployment_based_urls: nil) + # Azure OpenAI provider-specific settings + # + # @param api_version [String] Azure OpenAI API version + # + # @param base_url [String] Base URL for the Azure OpenAI provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Azure OpenAI provider + # + # @param resource_name [String] Azure OpenAI resource name + # + # @param use_deployment_based_urls [Boolean] Whether to use deployment-based Azure OpenAI URLs + end + end + end + class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel # @!attribute model_name # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') @@ -459,7 +722,7 @@ module Provider end # @!method self.variants - # @return [Array(Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject, String)] + # @return [Array(Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject, String)] end # Tool mode for the agent (dom, hybrid, cua). If set, overrides cua. @@ -484,6 +747,10 @@ module Model variant -> { Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject } + variant -> { Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject } + + variant -> { Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject } + variant -> { Stagehand::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject } variant String @@ -753,6 +1020,265 @@ class Vertex < Stagehand::Internal::Type::BaseModel end end + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + # @!attribute auth + # Azure provider authentication configuration + # + # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::Auth] + required :auth, + -> { Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::Auth } + + # @!attribute model_name + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @return [String] + required :model_name, String, api_name: :modelName + + # @!attribute provider + # Azure OpenAI model provider + # + # @return [Symbol, :azure] + required :provider, const: :azure + + # @!attribute provider_options + # Azure provider-specific model configuration + # + # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions] + required :provider_options, + -> { + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions + }, + api_name: :providerOptions + + # @!attribute base_url + # Base URL for the model provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the model provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!method initialize(auth:, model_name:, provider_options:, base_url: nil, headers: nil, provider: :azure) + # @param auth [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::Auth] Azure provider authentication configuration + # + # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @param provider_options [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions] Azure provider-specific model configuration + # + # @param base_url [String] Base URL for the model provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider + # + # @param provider [Symbol, :azure] Azure OpenAI model provider + + # @see Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject#auth + class Auth < Stagehand::Internal::Type::BaseModel + # @!attribute token + # Microsoft Entra ID bearer token for Azure OpenAI + # + # @return [String] + required :token, String + + # @!attribute type + # Use a Microsoft Entra ID bearer token for authentication + # + # @return [Symbol, :azureEntraId] + required :type, const: :azureEntraId + + # @!method initialize(token:, type: :azureEntraId) + # Azure provider authentication configuration + # + # @param token [String] Microsoft Entra ID bearer token for Azure OpenAI + # + # @param type [Symbol, :azureEntraId] Use a Microsoft Entra ID bearer token for authentication + end + + # @see Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject#provider_options + class ProviderOptions < Stagehand::Internal::Type::BaseModel + # @!attribute azure + # Azure OpenAI provider-specific settings + # + # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions::Azure] + required :azure, + -> { Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions::Azure } + + # @!method initialize(azure:) + # Azure provider-specific model configuration + # + # @param azure [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions::Azure] Azure OpenAI provider-specific settings + + # @see Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions#azure + class Azure < Stagehand::Internal::Type::BaseModel + # @!attribute api_version + # Azure OpenAI API version + # + # @return [String, nil] + optional :api_version, String, api_name: :apiVersion + + # @!attribute base_url + # Base URL for the Azure OpenAI provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the Azure OpenAI provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!attribute resource_name + # Azure OpenAI resource name + # + # @return [String, nil] + optional :resource_name, String, api_name: :resourceName + + # @!attribute use_deployment_based_urls + # Whether to use deployment-based Azure OpenAI URLs + # + # @return [Boolean, nil] + optional :use_deployment_based_urls, + Stagehand::Internal::Type::Boolean, + api_name: :useDeploymentBasedUrls + + # @!method initialize(api_version: nil, base_url: nil, headers: nil, resource_name: nil, use_deployment_based_urls: nil) + # Azure OpenAI provider-specific settings + # + # @param api_version [String] Azure OpenAI API version + # + # @param base_url [String] Base URL for the Azure OpenAI provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Azure OpenAI provider + # + # @param resource_name [String] Azure OpenAI resource name + # + # @param use_deployment_based_urls [Boolean] Whether to use deployment-based Azure OpenAI URLs + end + end + end + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + # @!attribute model_name + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @return [String] + required :model_name, String, api_name: :modelName + + # @!attribute provider + # Azure OpenAI model provider + # + # @return [Symbol, :azure] + required :provider, const: :azure + + # @!attribute provider_options + # Azure provider-specific model configuration + # + # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions] + required :provider_options, + -> { + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions + }, + api_name: :providerOptions + + # @!attribute api_key + # API key for the model provider + # + # @return [String, nil] + optional :api_key, String, api_name: :apiKey + + # @!attribute base_url + # Base URL for the model provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the model provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!method initialize(model_name:, provider_options:, api_key: nil, base_url: nil, headers: nil, provider: :azure) + # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @param provider_options [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions] Azure provider-specific model configuration + # + # @param api_key [String] API key for the model provider + # + # @param base_url [String] Base URL for the model provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider + # + # @param provider [Symbol, :azure] Azure OpenAI model provider + + # @see Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject#provider_options + class ProviderOptions < Stagehand::Internal::Type::BaseModel + # @!attribute azure + # Azure OpenAI provider-specific settings + # + # @return [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure] + required :azure, + -> { Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure } + + # @!method initialize(azure:) + # Azure provider-specific model configuration + # + # @param azure [Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure] Azure OpenAI provider-specific settings + + # @see Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions#azure + class Azure < Stagehand::Internal::Type::BaseModel + # @!attribute api_version + # Azure OpenAI API version + # + # @return [String, nil] + optional :api_version, String, api_name: :apiVersion + + # @!attribute base_url + # Base URL for the Azure OpenAI provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the Azure OpenAI provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!attribute resource_name + # Azure OpenAI resource name + # + # @return [String, nil] + optional :resource_name, String, api_name: :resourceName + + # @!attribute use_deployment_based_urls + # Whether to use deployment-based Azure OpenAI URLs + # + # @return [Boolean, nil] + optional :use_deployment_based_urls, + Stagehand::Internal::Type::Boolean, + api_name: :useDeploymentBasedUrls + + # @!method initialize(api_version: nil, base_url: nil, headers: nil, resource_name: nil, use_deployment_based_urls: nil) + # Azure OpenAI provider-specific settings + # + # @param api_version [String] Azure OpenAI API version + # + # @param base_url [String] Base URL for the Azure OpenAI provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Azure OpenAI provider + # + # @param resource_name [String] Azure OpenAI resource name + # + # @param use_deployment_based_urls [Boolean] Whether to use deployment-based Azure OpenAI URLs + end + end + end + class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel # @!attribute model_name # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') @@ -814,7 +1340,7 @@ module Provider end # @!method self.variants - # @return [Array(Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject, String)] + # @return [Array(Stagehand::Models::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject, String)] end # AI provider for the agent (legacy, use model: openai/gpt-5-nano instead) diff --git a/lib/stagehand/models/session_extract_params.rb b/lib/stagehand/models/session_extract_params.rb index ae043c3..d051fb7 100644 --- a/lib/stagehand/models/session_extract_params.rb +++ b/lib/stagehand/models/session_extract_params.rb @@ -69,7 +69,7 @@ class Options < Stagehand::Internal::Type::BaseModel # @!attribute model # Model configuration object or model name string (e.g., 'openai/gpt-5-nano') # - # @return [Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::GenericModelConfigObject, String, nil] + # @return [Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::AzureEntraModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::GenericModelConfigObject, String, nil] optional :model, union: -> { Stagehand::SessionExtractParams::Options::Model } # @!attribute screenshot @@ -97,7 +97,7 @@ class Options < Stagehand::Internal::Type::BaseModel # # @param ignore_selectors [Array] Selectors for elements and subtrees that should be excluded from extraction # - # @param model [Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::GenericModelConfigObject, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano') + # @param model [Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::AzureEntraModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::GenericModelConfigObject, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano') # # @param screenshot [Boolean] When true, include a screenshot of the current viewport in the extraction LLM ca # @@ -113,6 +113,10 @@ module Model variant -> { Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject } + variant -> { Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject } + + variant -> { Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject } + variant -> { Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject } variant String @@ -382,6 +386,264 @@ class Vertex < Stagehand::Internal::Type::BaseModel end end + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + # @!attribute auth + # Azure provider authentication configuration + # + # @return [Stagehand::Models::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::Auth] + required :auth, -> { Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::Auth } + + # @!attribute model_name + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @return [String] + required :model_name, String, api_name: :modelName + + # @!attribute provider + # Azure OpenAI model provider + # + # @return [Symbol, :azure] + required :provider, const: :azure + + # @!attribute provider_options + # Azure provider-specific model configuration + # + # @return [Stagehand::Models::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions] + required :provider_options, + -> { + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions + }, + api_name: :providerOptions + + # @!attribute base_url + # Base URL for the model provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the model provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!method initialize(auth:, model_name:, provider_options:, base_url: nil, headers: nil, provider: :azure) + # @param auth [Stagehand::Models::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::Auth] Azure provider authentication configuration + # + # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @param provider_options [Stagehand::Models::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions] Azure provider-specific model configuration + # + # @param base_url [String] Base URL for the model provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider + # + # @param provider [Symbol, :azure] Azure OpenAI model provider + + # @see Stagehand::Models::SessionExtractParams::Options::Model::AzureEntraModelConfigObject#auth + class Auth < Stagehand::Internal::Type::BaseModel + # @!attribute token + # Microsoft Entra ID bearer token for Azure OpenAI + # + # @return [String] + required :token, String + + # @!attribute type + # Use a Microsoft Entra ID bearer token for authentication + # + # @return [Symbol, :azureEntraId] + required :type, const: :azureEntraId + + # @!method initialize(token:, type: :azureEntraId) + # Azure provider authentication configuration + # + # @param token [String] Microsoft Entra ID bearer token for Azure OpenAI + # + # @param type [Symbol, :azureEntraId] Use a Microsoft Entra ID bearer token for authentication + end + + # @see Stagehand::Models::SessionExtractParams::Options::Model::AzureEntraModelConfigObject#provider_options + class ProviderOptions < Stagehand::Internal::Type::BaseModel + # @!attribute azure + # Azure OpenAI provider-specific settings + # + # @return [Stagehand::Models::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure] + required :azure, + -> { Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure } + + # @!method initialize(azure:) + # Azure provider-specific model configuration + # + # @param azure [Stagehand::Models::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure] Azure OpenAI provider-specific settings + + # @see Stagehand::Models::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions#azure + class Azure < Stagehand::Internal::Type::BaseModel + # @!attribute api_version + # Azure OpenAI API version + # + # @return [String, nil] + optional :api_version, String, api_name: :apiVersion + + # @!attribute base_url + # Base URL for the Azure OpenAI provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the Azure OpenAI provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!attribute resource_name + # Azure OpenAI resource name + # + # @return [String, nil] + optional :resource_name, String, api_name: :resourceName + + # @!attribute use_deployment_based_urls + # Whether to use deployment-based Azure OpenAI URLs + # + # @return [Boolean, nil] + optional :use_deployment_based_urls, + Stagehand::Internal::Type::Boolean, + api_name: :useDeploymentBasedUrls + + # @!method initialize(api_version: nil, base_url: nil, headers: nil, resource_name: nil, use_deployment_based_urls: nil) + # Azure OpenAI provider-specific settings + # + # @param api_version [String] Azure OpenAI API version + # + # @param base_url [String] Base URL for the Azure OpenAI provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Azure OpenAI provider + # + # @param resource_name [String] Azure OpenAI resource name + # + # @param use_deployment_based_urls [Boolean] Whether to use deployment-based Azure OpenAI URLs + end + end + end + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + # @!attribute model_name + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @return [String] + required :model_name, String, api_name: :modelName + + # @!attribute provider + # Azure OpenAI model provider + # + # @return [Symbol, :azure] + required :provider, const: :azure + + # @!attribute provider_options + # Azure provider-specific model configuration + # + # @return [Stagehand::Models::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions] + required :provider_options, + -> { + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions + }, + api_name: :providerOptions + + # @!attribute api_key + # API key for the model provider + # + # @return [String, nil] + optional :api_key, String, api_name: :apiKey + + # @!attribute base_url + # Base URL for the model provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the model provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!method initialize(model_name:, provider_options:, api_key: nil, base_url: nil, headers: nil, provider: :azure) + # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @param provider_options [Stagehand::Models::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions] Azure provider-specific model configuration + # + # @param api_key [String] API key for the model provider + # + # @param base_url [String] Base URL for the model provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider + # + # @param provider [Symbol, :azure] Azure OpenAI model provider + + # @see Stagehand::Models::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject#provider_options + class ProviderOptions < Stagehand::Internal::Type::BaseModel + # @!attribute azure + # Azure OpenAI provider-specific settings + # + # @return [Stagehand::Models::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure] + required :azure, + -> { Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure } + + # @!method initialize(azure:) + # Azure provider-specific model configuration + # + # @param azure [Stagehand::Models::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure] Azure OpenAI provider-specific settings + + # @see Stagehand::Models::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions#azure + class Azure < Stagehand::Internal::Type::BaseModel + # @!attribute api_version + # Azure OpenAI API version + # + # @return [String, nil] + optional :api_version, String, api_name: :apiVersion + + # @!attribute base_url + # Base URL for the Azure OpenAI provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the Azure OpenAI provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!attribute resource_name + # Azure OpenAI resource name + # + # @return [String, nil] + optional :resource_name, String, api_name: :resourceName + + # @!attribute use_deployment_based_urls + # Whether to use deployment-based Azure OpenAI URLs + # + # @return [Boolean, nil] + optional :use_deployment_based_urls, + Stagehand::Internal::Type::Boolean, + api_name: :useDeploymentBasedUrls + + # @!method initialize(api_version: nil, base_url: nil, headers: nil, resource_name: nil, use_deployment_based_urls: nil) + # Azure OpenAI provider-specific settings + # + # @param api_version [String] Azure OpenAI API version + # + # @param base_url [String] Base URL for the Azure OpenAI provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Azure OpenAI provider + # + # @param resource_name [String] Azure OpenAI resource name + # + # @param use_deployment_based_urls [Boolean] Whether to use deployment-based Azure OpenAI URLs + end + end + end + class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel # @!attribute model_name # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') @@ -443,7 +705,7 @@ module Provider end # @!method self.variants - # @return [Array(Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::GenericModelConfigObject, String)] + # @return [Array(Stagehand::Models::SessionExtractParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::AzureEntraModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionExtractParams::Options::Model::GenericModelConfigObject, String)] end end diff --git a/lib/stagehand/models/session_observe_params.rb b/lib/stagehand/models/session_observe_params.rb index 7ca65fe..78f857f 100644 --- a/lib/stagehand/models/session_observe_params.rb +++ b/lib/stagehand/models/session_observe_params.rb @@ -61,7 +61,7 @@ class Options < Stagehand::Internal::Type::BaseModel # @!attribute model # Model configuration object or model name string (e.g., 'openai/gpt-5-nano') # - # @return [Stagehand::Models::SessionObserveParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionObserveParams::Options::Model::GenericModelConfigObject, String, nil] + # @return [Stagehand::Models::SessionObserveParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionObserveParams::Options::Model::AzureEntraModelConfigObject, Stagehand::Models::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionObserveParams::Options::Model::GenericModelConfigObject, String, nil] optional :model, union: -> { Stagehand::SessionObserveParams::Options::Model } # @!attribute selector @@ -91,7 +91,7 @@ class Options < Stagehand::Internal::Type::BaseModel # # @param ignore_selectors [Array] Selectors for elements and subtrees that should be excluded from observation # - # @param model [Stagehand::Models::SessionObserveParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionObserveParams::Options::Model::GenericModelConfigObject, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano') + # @param model [Stagehand::Models::SessionObserveParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionObserveParams::Options::Model::AzureEntraModelConfigObject, Stagehand::Models::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionObserveParams::Options::Model::GenericModelConfigObject, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano') # # @param selector [String] CSS selector to scope observation to a specific element # @@ -107,6 +107,10 @@ module Model variant -> { Stagehand::SessionObserveParams::Options::Model::VertexModelConfigObject } + variant -> { Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject } + + variant -> { Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject } + variant -> { Stagehand::SessionObserveParams::Options::Model::GenericModelConfigObject } variant String @@ -376,6 +380,264 @@ class Vertex < Stagehand::Internal::Type::BaseModel end end + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + # @!attribute auth + # Azure provider authentication configuration + # + # @return [Stagehand::Models::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::Auth] + required :auth, -> { Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::Auth } + + # @!attribute model_name + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @return [String] + required :model_name, String, api_name: :modelName + + # @!attribute provider + # Azure OpenAI model provider + # + # @return [Symbol, :azure] + required :provider, const: :azure + + # @!attribute provider_options + # Azure provider-specific model configuration + # + # @return [Stagehand::Models::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions] + required :provider_options, + -> { + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions + }, + api_name: :providerOptions + + # @!attribute base_url + # Base URL for the model provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the model provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!method initialize(auth:, model_name:, provider_options:, base_url: nil, headers: nil, provider: :azure) + # @param auth [Stagehand::Models::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::Auth] Azure provider authentication configuration + # + # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @param provider_options [Stagehand::Models::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions] Azure provider-specific model configuration + # + # @param base_url [String] Base URL for the model provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider + # + # @param provider [Symbol, :azure] Azure OpenAI model provider + + # @see Stagehand::Models::SessionObserveParams::Options::Model::AzureEntraModelConfigObject#auth + class Auth < Stagehand::Internal::Type::BaseModel + # @!attribute token + # Microsoft Entra ID bearer token for Azure OpenAI + # + # @return [String] + required :token, String + + # @!attribute type + # Use a Microsoft Entra ID bearer token for authentication + # + # @return [Symbol, :azureEntraId] + required :type, const: :azureEntraId + + # @!method initialize(token:, type: :azureEntraId) + # Azure provider authentication configuration + # + # @param token [String] Microsoft Entra ID bearer token for Azure OpenAI + # + # @param type [Symbol, :azureEntraId] Use a Microsoft Entra ID bearer token for authentication + end + + # @see Stagehand::Models::SessionObserveParams::Options::Model::AzureEntraModelConfigObject#provider_options + class ProviderOptions < Stagehand::Internal::Type::BaseModel + # @!attribute azure + # Azure OpenAI provider-specific settings + # + # @return [Stagehand::Models::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure] + required :azure, + -> { Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure } + + # @!method initialize(azure:) + # Azure provider-specific model configuration + # + # @param azure [Stagehand::Models::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure] Azure OpenAI provider-specific settings + + # @see Stagehand::Models::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions#azure + class Azure < Stagehand::Internal::Type::BaseModel + # @!attribute api_version + # Azure OpenAI API version + # + # @return [String, nil] + optional :api_version, String, api_name: :apiVersion + + # @!attribute base_url + # Base URL for the Azure OpenAI provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the Azure OpenAI provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!attribute resource_name + # Azure OpenAI resource name + # + # @return [String, nil] + optional :resource_name, String, api_name: :resourceName + + # @!attribute use_deployment_based_urls + # Whether to use deployment-based Azure OpenAI URLs + # + # @return [Boolean, nil] + optional :use_deployment_based_urls, + Stagehand::Internal::Type::Boolean, + api_name: :useDeploymentBasedUrls + + # @!method initialize(api_version: nil, base_url: nil, headers: nil, resource_name: nil, use_deployment_based_urls: nil) + # Azure OpenAI provider-specific settings + # + # @param api_version [String] Azure OpenAI API version + # + # @param base_url [String] Base URL for the Azure OpenAI provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Azure OpenAI provider + # + # @param resource_name [String] Azure OpenAI resource name + # + # @param use_deployment_based_urls [Boolean] Whether to use deployment-based Azure OpenAI URLs + end + end + end + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + # @!attribute model_name + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @return [String] + required :model_name, String, api_name: :modelName + + # @!attribute provider + # Azure OpenAI model provider + # + # @return [Symbol, :azure] + required :provider, const: :azure + + # @!attribute provider_options + # Azure provider-specific model configuration + # + # @return [Stagehand::Models::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions] + required :provider_options, + -> { + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions + }, + api_name: :providerOptions + + # @!attribute api_key + # API key for the model provider + # + # @return [String, nil] + optional :api_key, String, api_name: :apiKey + + # @!attribute base_url + # Base URL for the model provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the model provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!method initialize(model_name:, provider_options:, api_key: nil, base_url: nil, headers: nil, provider: :azure) + # @param model_name [String] Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + # + # @param provider_options [Stagehand::Models::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions] Azure provider-specific model configuration + # + # @param api_key [String] API key for the model provider + # + # @param base_url [String] Base URL for the model provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the model provider + # + # @param provider [Symbol, :azure] Azure OpenAI model provider + + # @see Stagehand::Models::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject#provider_options + class ProviderOptions < Stagehand::Internal::Type::BaseModel + # @!attribute azure + # Azure OpenAI provider-specific settings + # + # @return [Stagehand::Models::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure] + required :azure, + -> { Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure } + + # @!method initialize(azure:) + # Azure provider-specific model configuration + # + # @param azure [Stagehand::Models::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure] Azure OpenAI provider-specific settings + + # @see Stagehand::Models::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions#azure + class Azure < Stagehand::Internal::Type::BaseModel + # @!attribute api_version + # Azure OpenAI API version + # + # @return [String, nil] + optional :api_version, String, api_name: :apiVersion + + # @!attribute base_url + # Base URL for the Azure OpenAI provider + # + # @return [String, nil] + optional :base_url, String, api_name: :baseURL + + # @!attribute headers + # Custom headers sent with every request to the Azure OpenAI provider + # + # @return [Hash{Symbol=>String}, nil] + optional :headers, Stagehand::Internal::Type::HashOf[String] + + # @!attribute resource_name + # Azure OpenAI resource name + # + # @return [String, nil] + optional :resource_name, String, api_name: :resourceName + + # @!attribute use_deployment_based_urls + # Whether to use deployment-based Azure OpenAI URLs + # + # @return [Boolean, nil] + optional :use_deployment_based_urls, + Stagehand::Internal::Type::Boolean, + api_name: :useDeploymentBasedUrls + + # @!method initialize(api_version: nil, base_url: nil, headers: nil, resource_name: nil, use_deployment_based_urls: nil) + # Azure OpenAI provider-specific settings + # + # @param api_version [String] Azure OpenAI API version + # + # @param base_url [String] Base URL for the Azure OpenAI provider + # + # @param headers [Hash{Symbol=>String}] Custom headers sent with every request to the Azure OpenAI provider + # + # @param resource_name [String] Azure OpenAI resource name + # + # @param use_deployment_based_urls [Boolean] Whether to use deployment-based Azure OpenAI URLs + end + end + end + class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel # @!attribute model_name # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') @@ -437,7 +699,7 @@ module Provider end # @!method self.variants - # @return [Array(Stagehand::Models::SessionObserveParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionObserveParams::Options::Model::GenericModelConfigObject, String)] + # @return [Array(Stagehand::Models::SessionObserveParams::Options::Model::VertexModelConfigObject, Stagehand::Models::SessionObserveParams::Options::Model::AzureEntraModelConfigObject, Stagehand::Models::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::Models::SessionObserveParams::Options::Model::GenericModelConfigObject, String)] end module Variable diff --git a/rbi/stagehand/models/model_config.rbi b/rbi/stagehand/models/model_config.rbi index d43b6d9..20be9f3 100644 --- a/rbi/stagehand/models/model_config.rbi +++ b/rbi/stagehand/models/model_config.rbi @@ -9,6 +9,8 @@ module Stagehand T.type_alias do T.any( Stagehand::ModelConfig::VertexModelConfigObject, + Stagehand::ModelConfig::AzureEntraModelConfigObject, + Stagehand::ModelConfig::AzureAPIKeyModelConfigObject, Stagehand::ModelConfig::GenericModelConfigObject ) end @@ -532,6 +534,508 @@ module Stagehand end end + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::ModelConfig::AzureEntraModelConfigObject, + Stagehand::Internal::AnyHash + ) + end + + # Azure provider authentication configuration + sig do + returns(Stagehand::ModelConfig::AzureEntraModelConfigObject::Auth) + end + attr_reader :auth + + sig do + params( + auth: + Stagehand::ModelConfig::AzureEntraModelConfigObject::Auth::OrHash + ).void + end + attr_writer :auth + + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + sig { returns(String) } + attr_accessor :model_name + + # Azure OpenAI model provider + sig { returns(Symbol) } + attr_accessor :provider + + # Azure provider-specific model configuration + sig do + returns( + Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions + ) + end + attr_reader :provider_options + + sig do + params( + provider_options: + Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions::OrHash + ).void + end + attr_writer :provider_options + + # Base URL for the model provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the model provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + sig do + params( + auth: + Stagehand::ModelConfig::AzureEntraModelConfigObject::Auth::OrHash, + model_name: String, + provider_options: + Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions::OrHash, + base_url: String, + headers: T::Hash[Symbol, String], + provider: Symbol + ).returns(T.attached_class) + end + def self.new( + # Azure provider authentication configuration + auth:, + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + model_name:, + # Azure provider-specific model configuration + provider_options:, + # Base URL for the model provider + base_url: nil, + # Custom headers sent with every request to the model provider + headers: nil, + # Azure OpenAI model provider + provider: :azure + ) + end + + sig do + override.returns( + { + auth: Stagehand::ModelConfig::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: Symbol, + provider_options: + Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: T::Hash[Symbol, String] + } + ) + end + def to_hash + end + + class Auth < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::ModelConfig::AzureEntraModelConfigObject::Auth, + Stagehand::Internal::AnyHash + ) + end + + # Microsoft Entra ID bearer token for Azure OpenAI + sig { returns(String) } + attr_accessor :token + + # Use a Microsoft Entra ID bearer token for authentication + sig { returns(Symbol) } + attr_accessor :type + + # Azure provider authentication configuration + sig { params(token: String, type: Symbol).returns(T.attached_class) } + def self.new( + # Microsoft Entra ID bearer token for Azure OpenAI + token:, + # Use a Microsoft Entra ID bearer token for authentication + type: :azureEntraId + ) + end + + sig { override.returns({ token: String, type: Symbol }) } + def to_hash + end + end + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI provider-specific settings + sig do + returns( + Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions::Azure + ) + end + attr_reader :azure + + sig do + params( + azure: + Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions::Azure::OrHash + ).void + end + attr_writer :azure + + # Azure provider-specific model configuration + sig do + params( + azure: + Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions::Azure::OrHash + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI provider-specific settings + azure: + ) + end + + sig do + override.returns( + { + azure: + Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions::Azure + } + ) + end + def to_hash + end + + class Azure < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions::Azure, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI API version + sig { returns(T.nilable(String)) } + attr_reader :api_version + + sig { params(api_version: String).void } + attr_writer :api_version + + # Base URL for the Azure OpenAI provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the Azure OpenAI provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + # Azure OpenAI resource name + sig { returns(T.nilable(String)) } + attr_reader :resource_name + + sig { params(resource_name: String).void } + attr_writer :resource_name + + # Whether to use deployment-based Azure OpenAI URLs + sig { returns(T.nilable(T::Boolean)) } + attr_reader :use_deployment_based_urls + + sig { params(use_deployment_based_urls: T::Boolean).void } + attr_writer :use_deployment_based_urls + + # Azure OpenAI provider-specific settings + sig do + params( + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI API version + api_version: nil, + # Base URL for the Azure OpenAI provider + base_url: nil, + # Custom headers sent with every request to the Azure OpenAI provider + headers: nil, + # Azure OpenAI resource name + resource_name: nil, + # Whether to use deployment-based Azure OpenAI URLs + use_deployment_based_urls: nil + ) + end + + sig do + override.returns( + { + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + } + ) + end + def to_hash + end + end + end + end + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::ModelConfig::AzureAPIKeyModelConfigObject, + Stagehand::Internal::AnyHash + ) + end + + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + sig { returns(String) } + attr_accessor :model_name + + # Azure OpenAI model provider + sig { returns(Symbol) } + attr_accessor :provider + + # Azure provider-specific model configuration + sig do + returns( + Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions + ) + end + attr_reader :provider_options + + sig do + params( + provider_options: + Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions::OrHash + ).void + end + attr_writer :provider_options + + # API key for the model provider + sig { returns(T.nilable(String)) } + attr_reader :api_key + + sig { params(api_key: String).void } + attr_writer :api_key + + # Base URL for the model provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the model provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + sig do + params( + model_name: String, + provider_options: + Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions::OrHash, + api_key: String, + base_url: String, + headers: T::Hash[Symbol, String], + provider: Symbol + ).returns(T.attached_class) + end + def self.new( + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + model_name:, + # Azure provider-specific model configuration + provider_options:, + # API key for the model provider + api_key: nil, + # Base URL for the model provider + base_url: nil, + # Custom headers sent with every request to the model provider + headers: nil, + # Azure OpenAI model provider + provider: :azure + ) + end + + sig do + override.returns( + { + model_name: String, + provider: Symbol, + provider_options: + Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: T::Hash[Symbol, String] + } + ) + end + def to_hash + end + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI provider-specific settings + sig do + returns( + Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + ) + end + attr_reader :azure + + sig do + params( + azure: + Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions::Azure::OrHash + ).void + end + attr_writer :azure + + # Azure provider-specific model configuration + sig do + params( + azure: + Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions::Azure::OrHash + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI provider-specific settings + azure: + ) + end + + sig do + override.returns( + { + azure: + Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + ) + end + def to_hash + end + + class Azure < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions::Azure, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI API version + sig { returns(T.nilable(String)) } + attr_reader :api_version + + sig { params(api_version: String).void } + attr_writer :api_version + + # Base URL for the Azure OpenAI provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the Azure OpenAI provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + # Azure OpenAI resource name + sig { returns(T.nilable(String)) } + attr_reader :resource_name + + sig { params(resource_name: String).void } + attr_writer :resource_name + + # Whether to use deployment-based Azure OpenAI URLs + sig { returns(T.nilable(T::Boolean)) } + attr_reader :use_deployment_based_urls + + sig { params(use_deployment_based_urls: T::Boolean).void } + attr_writer :use_deployment_based_urls + + # Azure OpenAI provider-specific settings + sig do + params( + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI API version + api_version: nil, + # Base URL for the Azure OpenAI provider + base_url: nil, + # Custom headers sent with every request to the Azure OpenAI provider + headers: nil, + # Azure OpenAI resource name + resource_name: nil, + # Whether to use deployment-based Azure OpenAI URLs + use_deployment_based_urls: nil + ) + end + + sig do + override.returns( + { + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + } + ) + end + def to_hash + end + end + end + end + class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel OrHash = T.type_alias do diff --git a/rbi/stagehand/models/session_act_params.rbi b/rbi/stagehand/models/session_act_params.rbi index 81b2454..442a7b5 100644 --- a/rbi/stagehand/models/session_act_params.rbi +++ b/rbi/stagehand/models/session_act_params.rbi @@ -116,6 +116,8 @@ module Stagehand T.nilable( T.any( Stagehand::SessionActParams::Options::Model::VertexModelConfigObject, + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject, + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::SessionActParams::Options::Model::GenericModelConfigObject, String ) @@ -129,6 +131,8 @@ module Stagehand model: T.any( Stagehand::SessionActParams::Options::Model::VertexModelConfigObject::OrHash, + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::OrHash, + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::OrHash, Stagehand::SessionActParams::Options::Model::GenericModelConfigObject::OrHash, String ) @@ -183,6 +187,8 @@ module Stagehand model: T.any( Stagehand::SessionActParams::Options::Model::VertexModelConfigObject::OrHash, + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::OrHash, + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::OrHash, Stagehand::SessionActParams::Options::Model::GenericModelConfigObject::OrHash, String ), @@ -216,6 +222,8 @@ module Stagehand model: T.any( Stagehand::SessionActParams::Options::Model::VertexModelConfigObject, + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject, + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::SessionActParams::Options::Model::GenericModelConfigObject, String ), @@ -244,6 +252,8 @@ module Stagehand T.type_alias do T.any( Stagehand::SessionActParams::Options::Model::VertexModelConfigObject, + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject, + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::SessionActParams::Options::Model::GenericModelConfigObject, String ) @@ -775,6 +785,513 @@ module Stagehand end end + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject, + Stagehand::Internal::AnyHash + ) + end + + # Azure provider authentication configuration + sig do + returns( + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::Auth + ) + end + attr_reader :auth + + sig do + params( + auth: + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::Auth::OrHash + ).void + end + attr_writer :auth + + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + sig { returns(String) } + attr_accessor :model_name + + # Azure OpenAI model provider + sig { returns(Symbol) } + attr_accessor :provider + + # Azure provider-specific model configuration + sig do + returns( + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions + ) + end + attr_reader :provider_options + + sig do + params( + provider_options: + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::OrHash + ).void + end + attr_writer :provider_options + + # Base URL for the model provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the model provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + sig do + params( + auth: + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::Auth::OrHash, + model_name: String, + provider_options: + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::OrHash, + base_url: String, + headers: T::Hash[Symbol, String], + provider: Symbol + ).returns(T.attached_class) + end + def self.new( + # Azure provider authentication configuration + auth:, + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + model_name:, + # Azure provider-specific model configuration + provider_options:, + # Base URL for the model provider + base_url: nil, + # Custom headers sent with every request to the model provider + headers: nil, + # Azure OpenAI model provider + provider: :azure + ) + end + + sig do + override.returns( + { + auth: + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: Symbol, + provider_options: + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: T::Hash[Symbol, String] + } + ) + end + def to_hash + end + + class Auth < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::Auth, + Stagehand::Internal::AnyHash + ) + end + + # Microsoft Entra ID bearer token for Azure OpenAI + sig { returns(String) } + attr_accessor :token + + # Use a Microsoft Entra ID bearer token for authentication + sig { returns(Symbol) } + attr_accessor :type + + # Azure provider authentication configuration + sig do + params(token: String, type: Symbol).returns(T.attached_class) + end + def self.new( + # Microsoft Entra ID bearer token for Azure OpenAI + token:, + # Use a Microsoft Entra ID bearer token for authentication + type: :azureEntraId + ) + end + + sig { override.returns({ token: String, type: Symbol }) } + def to_hash + end + end + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI provider-specific settings + sig do + returns( + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + ) + end + attr_reader :azure + + sig do + params( + azure: + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure::OrHash + ).void + end + attr_writer :azure + + # Azure provider-specific model configuration + sig do + params( + azure: + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure::OrHash + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI provider-specific settings + azure: + ) + end + + sig do + override.returns( + { + azure: + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + } + ) + end + def to_hash + end + + class Azure < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI API version + sig { returns(T.nilable(String)) } + attr_reader :api_version + + sig { params(api_version: String).void } + attr_writer :api_version + + # Base URL for the Azure OpenAI provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the Azure OpenAI provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + # Azure OpenAI resource name + sig { returns(T.nilable(String)) } + attr_reader :resource_name + + sig { params(resource_name: String).void } + attr_writer :resource_name + + # Whether to use deployment-based Azure OpenAI URLs + sig { returns(T.nilable(T::Boolean)) } + attr_reader :use_deployment_based_urls + + sig { params(use_deployment_based_urls: T::Boolean).void } + attr_writer :use_deployment_based_urls + + # Azure OpenAI provider-specific settings + sig do + params( + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI API version + api_version: nil, + # Base URL for the Azure OpenAI provider + base_url: nil, + # Custom headers sent with every request to the Azure OpenAI provider + headers: nil, + # Azure OpenAI resource name + resource_name: nil, + # Whether to use deployment-based Azure OpenAI URLs + use_deployment_based_urls: nil + ) + end + + sig do + override.returns( + { + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + } + ) + end + def to_hash + end + end + end + end + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject, + Stagehand::Internal::AnyHash + ) + end + + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + sig { returns(String) } + attr_accessor :model_name + + # Azure OpenAI model provider + sig { returns(Symbol) } + attr_accessor :provider + + # Azure provider-specific model configuration + sig do + returns( + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions + ) + end + attr_reader :provider_options + + sig do + params( + provider_options: + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::OrHash + ).void + end + attr_writer :provider_options + + # API key for the model provider + sig { returns(T.nilable(String)) } + attr_reader :api_key + + sig { params(api_key: String).void } + attr_writer :api_key + + # Base URL for the model provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the model provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + sig do + params( + model_name: String, + provider_options: + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::OrHash, + api_key: String, + base_url: String, + headers: T::Hash[Symbol, String], + provider: Symbol + ).returns(T.attached_class) + end + def self.new( + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + model_name:, + # Azure provider-specific model configuration + provider_options:, + # API key for the model provider + api_key: nil, + # Base URL for the model provider + base_url: nil, + # Custom headers sent with every request to the model provider + headers: nil, + # Azure OpenAI model provider + provider: :azure + ) + end + + sig do + override.returns( + { + model_name: String, + provider: Symbol, + provider_options: + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: T::Hash[Symbol, String] + } + ) + end + def to_hash + end + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI provider-specific settings + sig do + returns( + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + ) + end + attr_reader :azure + + sig do + params( + azure: + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure::OrHash + ).void + end + attr_writer :azure + + # Azure provider-specific model configuration + sig do + params( + azure: + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure::OrHash + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI provider-specific settings + azure: + ) + end + + sig do + override.returns( + { + azure: + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + ) + end + def to_hash + end + + class Azure < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI API version + sig { returns(T.nilable(String)) } + attr_reader :api_version + + sig { params(api_version: String).void } + attr_writer :api_version + + # Base URL for the Azure OpenAI provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the Azure OpenAI provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + # Azure OpenAI resource name + sig { returns(T.nilable(String)) } + attr_reader :resource_name + + sig { params(resource_name: String).void } + attr_writer :resource_name + + # Whether to use deployment-based Azure OpenAI URLs + sig { returns(T.nilable(T::Boolean)) } + attr_reader :use_deployment_based_urls + + sig { params(use_deployment_based_urls: T::Boolean).void } + attr_writer :use_deployment_based_urls + + # Azure OpenAI provider-specific settings + sig do + params( + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI API version + api_version: nil, + # Base URL for the Azure OpenAI provider + base_url: nil, + # Custom headers sent with every request to the Azure OpenAI provider + headers: nil, + # Azure OpenAI resource name + resource_name: nil, + # Whether to use deployment-based Azure OpenAI URLs + use_deployment_based_urls: nil + ) + end + + sig do + override.returns( + { + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + } + ) + end + def to_hash + end + end + end + end + class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel OrHash = T.type_alias do diff --git a/rbi/stagehand/models/session_execute_params.rbi b/rbi/stagehand/models/session_execute_params.rbi index ed8174c..62d52ba 100644 --- a/rbi/stagehand/models/session_execute_params.rbi +++ b/rbi/stagehand/models/session_execute_params.rbi @@ -133,6 +133,8 @@ module Stagehand T.nilable( T.any( Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject, Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject, String ) @@ -146,6 +148,8 @@ module Stagehand execution_model: T.any( Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::OrHash, + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::OrHash, + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::OrHash, Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::OrHash, String ) @@ -176,6 +180,8 @@ module Stagehand T.nilable( T.any( Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject, Stagehand::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject, String ) @@ -189,6 +195,8 @@ module Stagehand model: T.any( Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::OrHash, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::OrHash, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::OrHash, Stagehand::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject::OrHash, String ) @@ -227,6 +235,8 @@ module Stagehand execution_model: T.any( Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject::OrHash, + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::OrHash, + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::OrHash, Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::OrHash, String ), @@ -234,6 +244,8 @@ module Stagehand model: T.any( Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::OrHash, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::OrHash, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::OrHash, Stagehand::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject::OrHash, String ), @@ -268,6 +280,8 @@ module Stagehand execution_model: T.any( Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject, Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject, String ), @@ -276,6 +290,8 @@ module Stagehand model: T.any( Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject, Stagehand::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject, String ), @@ -298,6 +314,8 @@ module Stagehand T.type_alias do T.any( Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject, Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject, String ) @@ -829,25 +847,54 @@ module Stagehand end end - class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject, Stagehand::Internal::AnyHash ) end + # Azure provider authentication configuration + sig do + returns( + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::Auth + ) + end + attr_reader :auth + + sig do + params( + auth: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::Auth::OrHash + ).void + end + attr_writer :auth + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') sig { returns(String) } attr_accessor :model_name - # API key for the model provider - sig { returns(T.nilable(String)) } - attr_reader :api_key + # Azure OpenAI model provider + sig { returns(Symbol) } + attr_accessor :provider - sig { params(api_key: String).void } - attr_writer :api_key + # Azure provider-specific model configuration + sig do + returns( + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions + ) + end + attr_reader :provider_options + + sig do + params( + provider_options: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions::OrHash + ).void + end + attr_writer :provider_options # Base URL for the model provider sig { returns(T.nilable(String)) } @@ -863,45 +910,297 @@ module Stagehand sig { params(headers: T::Hash[Symbol, String]).void } attr_writer :headers - # AI provider for the model (or provide a baseURL endpoint instead) sig do - returns( - T.nilable( - Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider::OrSymbol + params( + auth: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::Auth::OrHash, + model_name: String, + provider_options: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions::OrHash, + base_url: String, + headers: T::Hash[Symbol, String], + provider: Symbol + ).returns(T.attached_class) + end + def self.new( + # Azure provider authentication configuration + auth:, + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + model_name:, + # Azure provider-specific model configuration + provider_options:, + # Base URL for the model provider + base_url: nil, + # Custom headers sent with every request to the model provider + headers: nil, + # Azure OpenAI model provider + provider: :azure + ) + end + + sig do + override.returns( + { + auth: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: Symbol, + provider_options: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: T::Hash[Symbol, String] + } + ) + end + def to_hash + end + + class Auth < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::Auth, + Stagehand::Internal::AnyHash + ) + end + + # Microsoft Entra ID bearer token for Azure OpenAI + sig { returns(String) } + attr_accessor :token + + # Use a Microsoft Entra ID bearer token for authentication + sig { returns(Symbol) } + attr_accessor :type + + # Azure provider authentication configuration + sig do + params(token: String, type: Symbol).returns(T.attached_class) + end + def self.new( + # Microsoft Entra ID bearer token for Azure OpenAI + token:, + # Use a Microsoft Entra ID bearer token for authentication + type: :azureEntraId + ) + end + + sig { override.returns({ token: String, type: Symbol }) } + def to_hash + end + end + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI provider-specific settings + sig do + returns( + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions::Azure + ) + end + attr_reader :azure + + sig do + params( + azure: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions::Azure::OrHash + ).void + end + attr_writer :azure + + # Azure provider-specific model configuration + sig do + params( + azure: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions::Azure::OrHash + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI provider-specific settings + azure: + ) + end + + sig do + override.returns( + { + azure: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions::Azure + } + ) + end + def to_hash + end + + class Azure < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions::Azure, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI API version + sig { returns(T.nilable(String)) } + attr_reader :api_version + + sig { params(api_version: String).void } + attr_writer :api_version + + # Base URL for the Azure OpenAI provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the Azure OpenAI provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + # Azure OpenAI resource name + sig { returns(T.nilable(String)) } + attr_reader :resource_name + + sig { params(resource_name: String).void } + attr_writer :resource_name + + # Whether to use deployment-based Azure OpenAI URLs + sig { returns(T.nilable(T::Boolean)) } + attr_reader :use_deployment_based_urls + + sig { params(use_deployment_based_urls: T::Boolean).void } + attr_writer :use_deployment_based_urls + + # Azure OpenAI provider-specific settings + sig do + params( + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI API version + api_version: nil, + # Base URL for the Azure OpenAI provider + base_url: nil, + # Custom headers sent with every request to the Azure OpenAI provider + headers: nil, + # Azure OpenAI resource name + resource_name: nil, + # Whether to use deployment-based Azure OpenAI URLs + use_deployment_based_urls: nil + ) + end + + sig do + override.returns( + { + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + } + ) + end + def to_hash + end + end + end + end + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject, + Stagehand::Internal::AnyHash ) + end + + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + sig { returns(String) } + attr_accessor :model_name + + # Azure OpenAI model provider + sig { returns(Symbol) } + attr_accessor :provider + + # Azure provider-specific model configuration + sig do + returns( + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions ) end - attr_reader :provider + attr_reader :provider_options sig do params( - provider: - Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider::OrSymbol + provider_options: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions::OrHash ).void end - attr_writer :provider + attr_writer :provider_options + + # API key for the model provider + sig { returns(T.nilable(String)) } + attr_reader :api_key + + sig { params(api_key: String).void } + attr_writer :api_key + + # Base URL for the model provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the model provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers sig do params( model_name: String, + provider_options: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions::OrHash, api_key: String, base_url: String, headers: T::Hash[Symbol, String], - provider: - Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider::OrSymbol + provider: Symbol ).returns(T.attached_class) end def self.new( # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') model_name:, + # Azure provider-specific model configuration + provider_options:, # API key for the model provider api_key: nil, # Base URL for the model provider base_url: nil, # Custom headers sent with every request to the model provider headers: nil, - # AI provider for the model (or provide a baseURL endpoint instead) - provider: nil + # Azure OpenAI model provider + provider: :azure ) end @@ -909,34 +1208,260 @@ module Stagehand override.returns( { model_name: String, + provider: Symbol, + provider_options: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions, api_key: String, base_url: String, - headers: T::Hash[Symbol, String], - provider: - Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider::OrSymbol + headers: T::Hash[Symbol, String] } ) end def to_hash end - # AI provider for the model (or provide a baseURL endpoint instead) - module Provider - extend Stagehand::Internal::Type::Enum - - TaggedSymbol = + class ProviderOptions < Stagehand::Internal::Type::BaseModel + OrHash = T.type_alias do - T.all( - Symbol, - Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider + T.any( + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions, + Stagehand::Internal::AnyHash ) end - OrSymbol = T.type_alias { T.any(Symbol, String) } - OPENAI = - T.let( - :openai, - Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider::TaggedSymbol + # Azure OpenAI provider-specific settings + sig do + returns( + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + ) + end + attr_reader :azure + + sig do + params( + azure: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions::Azure::OrHash + ).void + end + attr_writer :azure + + # Azure provider-specific model configuration + sig do + params( + azure: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions::Azure::OrHash + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI provider-specific settings + azure: + ) + end + + sig do + override.returns( + { + azure: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + ) + end + def to_hash + end + + class Azure < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions::Azure, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI API version + sig { returns(T.nilable(String)) } + attr_reader :api_version + + sig { params(api_version: String).void } + attr_writer :api_version + + # Base URL for the Azure OpenAI provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the Azure OpenAI provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + # Azure OpenAI resource name + sig { returns(T.nilable(String)) } + attr_reader :resource_name + + sig { params(resource_name: String).void } + attr_writer :resource_name + + # Whether to use deployment-based Azure OpenAI URLs + sig { returns(T.nilable(T::Boolean)) } + attr_reader :use_deployment_based_urls + + sig { params(use_deployment_based_urls: T::Boolean).void } + attr_writer :use_deployment_based_urls + + # Azure OpenAI provider-specific settings + sig do + params( + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI API version + api_version: nil, + # Base URL for the Azure OpenAI provider + base_url: nil, + # Custom headers sent with every request to the Azure OpenAI provider + headers: nil, + # Azure OpenAI resource name + resource_name: nil, + # Whether to use deployment-based Azure OpenAI URLs + use_deployment_based_urls: nil + ) + end + + sig do + override.returns( + { + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + } + ) + end + def to_hash + end + end + end + end + + class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject, + Stagehand::Internal::AnyHash + ) + end + + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + sig { returns(String) } + attr_accessor :model_name + + # API key for the model provider + sig { returns(T.nilable(String)) } + attr_reader :api_key + + sig { params(api_key: String).void } + attr_writer :api_key + + # Base URL for the model provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the model provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + # AI provider for the model (or provide a baseURL endpoint instead) + sig do + returns( + T.nilable( + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider::OrSymbol + ) + ) + end + attr_reader :provider + + sig do + params( + provider: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider::OrSymbol + ).void + end + attr_writer :provider + + sig do + params( + model_name: String, + api_key: String, + base_url: String, + headers: T::Hash[Symbol, String], + provider: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider::OrSymbol + ).returns(T.attached_class) + end + def self.new( + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + model_name:, + # API key for the model provider + api_key: nil, + # Base URL for the model provider + base_url: nil, + # Custom headers sent with every request to the model provider + headers: nil, + # AI provider for the model (or provide a baseURL endpoint instead) + provider: nil + ) + end + + sig do + override.returns( + { + model_name: String, + api_key: String, + base_url: String, + headers: T::Hash[Symbol, String], + provider: + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider::OrSymbol + } + ) + end + def to_hash + end + + # AI provider for the model (or provide a baseURL endpoint instead) + module Provider + extend Stagehand::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + OPENAI = + T.let( + :openai, + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject::Provider::TaggedSymbol ) ANTHROPIC = T.let( @@ -971,80 +1496,608 @@ module Stagehand end end - sig do - override.returns( - T::Array[ - Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::Variants - ] - ) - end - def self.variants - end - end + sig do + override.returns( + T::Array[ + Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::Variants + ] + ) + end + def self.variants + end + end + + # Tool mode for the agent (dom, hybrid, cua). If set, overrides cua. + module Mode + extend Stagehand::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Stagehand::SessionExecuteParams::AgentConfig::Mode) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + DOM = + T.let( + :dom, + Stagehand::SessionExecuteParams::AgentConfig::Mode::TaggedSymbol + ) + HYBRID = + T.let( + :hybrid, + Stagehand::SessionExecuteParams::AgentConfig::Mode::TaggedSymbol + ) + CUA = + T.let( + :cua, + Stagehand::SessionExecuteParams::AgentConfig::Mode::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Stagehand::SessionExecuteParams::AgentConfig::Mode::TaggedSymbol + ] + ) + end + def self.values + end + end + + # Model configuration object or model name string (e.g., 'openai/gpt-5-nano') + module Model + extend Stagehand::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject, + String + ) + end + + class VertexModelConfigObject < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, + Stagehand::Internal::AnyHash + ) + end + + # Vertex provider authentication configuration + sig do + returns( + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth + ) + end + attr_reader :auth + + sig do + params( + auth: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::OrHash + ).void + end + attr_writer :auth + + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + sig { returns(String) } + attr_accessor :model_name + + # Vertex AI model provider + sig { returns(Symbol) } + attr_accessor :provider + + # Vertex provider-specific model configuration + sig do + returns( + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions + ) + end + attr_reader :provider_options + + sig do + params( + provider_options: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::OrHash + ).void + end + attr_writer :provider_options + + # API key for the model provider + sig { returns(T.nilable(String)) } + attr_reader :api_key + + sig { params(api_key: String).void } + attr_writer :api_key + + # Base URL for the model provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the model provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + sig do + params( + auth: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::OrHash, + model_name: String, + provider_options: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::OrHash, + api_key: String, + base_url: String, + headers: T::Hash[Symbol, String], + provider: Symbol + ).returns(T.attached_class) + end + def self.new( + # Vertex provider authentication configuration + auth:, + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + model_name:, + # Vertex provider-specific model configuration + provider_options:, + # API key for the model provider + api_key: nil, + # Base URL for the model provider + base_url: nil, + # Custom headers sent with every request to the model provider + headers: nil, + # Vertex AI model provider + provider: :vertex + ) + end + + sig do + override.returns( + { + auth: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth, + model_name: String, + provider: Symbol, + provider_options: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: T::Hash[Symbol, String] + } + ) + end + def to_hash + end + + class Auth < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth, + Stagehand::Internal::AnyHash + ) + end + + # Google Cloud service account credentials + sig do + returns( + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials + ) + end + attr_reader :credentials + + sig do + params( + credentials: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::OrHash + ).void + end + attr_writer :credentials + + # Use inline Google Cloud service account credentials for provider authentication + sig { returns(Symbol) } + attr_accessor :type + + # Google Cloud project ID used by google-auth-library + sig { returns(T.nilable(String)) } + attr_reader :project_id + + sig { params(project_id: String).void } + attr_writer :project_id + + # Google auth scopes for the desired API request + sig do + returns( + T.nilable( + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Scopes::Variants + ) + ) + end + attr_reader :scopes + + sig do + params( + scopes: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Scopes::Variants + ).void + end + attr_writer :scopes + + # Google Cloud universe domain + sig { returns(T.nilable(String)) } + attr_reader :universe_domain + + sig { params(universe_domain: String).void } + attr_writer :universe_domain + + # Vertex provider authentication configuration + sig do + params( + credentials: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::OrHash, + project_id: String, + scopes: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Scopes::Variants, + universe_domain: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + # Google Cloud service account credentials + credentials:, + # Google Cloud project ID used by google-auth-library + project_id: nil, + # Google auth scopes for the desired API request + scopes: nil, + # Google Cloud universe domain + universe_domain: nil, + # Use inline Google Cloud service account credentials for provider authentication + type: :googleServiceAccount + ) + end + + sig do + override.returns( + { + credentials: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials, + type: Symbol, + project_id: String, + scopes: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Scopes::Variants, + universe_domain: String + } + ) + end + def to_hash + end + + class Credentials < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials, + Stagehand::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :client_email + + sig { returns(String) } + attr_accessor :private_key + + sig { returns(T.nilable(String)) } + attr_reader :auth_provider_x509_cert_url + + sig { params(auth_provider_x509_cert_url: String).void } + attr_writer :auth_provider_x509_cert_url + + sig { returns(T.nilable(String)) } + attr_reader :auth_uri + + sig { params(auth_uri: String).void } + attr_writer :auth_uri + + sig { returns(T.nilable(String)) } + attr_reader :client_id + + sig { params(client_id: String).void } + attr_writer :client_id + + sig { returns(T.nilable(String)) } + attr_reader :client_x509_cert_url + + sig { params(client_x509_cert_url: String).void } + attr_writer :client_x509_cert_url + + sig { returns(T.nilable(String)) } + attr_reader :private_key_id + + sig { params(private_key_id: String).void } + attr_writer :private_key_id + + sig { returns(T.nilable(String)) } + attr_reader :project_id + + sig { params(project_id: String).void } + attr_writer :project_id + + sig { returns(T.nilable(String)) } + attr_reader :token_uri + + sig { params(token_uri: String).void } + attr_writer :token_uri + + sig do + returns( + T.nilable( + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol + ) + ) + end + attr_reader :type + + sig do + params( + type: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol + ).void + end + attr_writer :type + + sig { returns(T.nilable(String)) } + attr_reader :universe_domain + + sig { params(universe_domain: String).void } + attr_writer :universe_domain + + # Google Cloud service account credentials + sig do + params( + client_email: String, + private_key: String, + auth_provider_x509_cert_url: String, + auth_uri: String, + client_id: String, + client_x509_cert_url: String, + private_key_id: String, + project_id: String, + token_uri: String, + type: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol, + universe_domain: String + ).returns(T.attached_class) + end + def self.new( + client_email:, + private_key:, + auth_provider_x509_cert_url: nil, + auth_uri: nil, + client_id: nil, + client_x509_cert_url: nil, + private_key_id: nil, + project_id: nil, + token_uri: nil, + type: nil, + universe_domain: nil + ) + end + + sig do + override.returns( + { + client_email: String, + private_key: String, + auth_provider_x509_cert_url: String, + auth_uri: String, + client_id: String, + client_x509_cert_url: String, + private_key_id: String, + project_id: String, + token_uri: String, + type: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol, + universe_domain: String + } + ) + end + def to_hash + end + + module Type + extend Stagehand::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + SERVICE_ACCOUNT = + T.let( + :service_account, + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type::TaggedSymbol + ] + ) + end + def self.values + end + end + end + + # Google auth scopes for the desired API request + module Scopes + extend Stagehand::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Array[String]) } + + sig do + override.returns( + T::Array[ + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Scopes::Variants + ] + ) + end + def self.variants + end + + StringArray = + T.let( + Stagehand::Internal::Type::ArrayOf[String], + Stagehand::Internal::Type::Converter + ) + end + end + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions, + Stagehand::Internal::AnyHash + ) + end + + # Vertex AI provider-specific settings + sig do + returns( + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::Vertex + ) + end + attr_reader :vertex + + sig do + params( + vertex: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::Vertex::OrHash + ).void + end + attr_writer :vertex + + # Vertex provider-specific model configuration + sig do + params( + vertex: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::Vertex::OrHash + ).returns(T.attached_class) + end + def self.new( + # Vertex AI provider-specific settings + vertex: + ) + end + + sig do + override.returns( + { + vertex: + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::Vertex + } + ) + end + def to_hash + end + + class Vertex < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::Vertex, + Stagehand::Internal::AnyHash + ) + end + + # Google Cloud location for Vertex AI models + sig { returns(String) } + attr_accessor :location - # Tool mode for the agent (dom, hybrid, cua). If set, overrides cua. - module Mode - extend Stagehand::Internal::Type::Enum + # Google Cloud project ID for Vertex AI models + sig { returns(String) } + attr_accessor :project - TaggedSymbol = - T.type_alias do - T.all(Symbol, Stagehand::SessionExecuteParams::AgentConfig::Mode) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } + # Base URL for the Vertex AI provider + sig { returns(T.nilable(String)) } + attr_reader :base_url - DOM = - T.let( - :dom, - Stagehand::SessionExecuteParams::AgentConfig::Mode::TaggedSymbol - ) - HYBRID = - T.let( - :hybrid, - Stagehand::SessionExecuteParams::AgentConfig::Mode::TaggedSymbol - ) - CUA = - T.let( - :cua, - Stagehand::SessionExecuteParams::AgentConfig::Mode::TaggedSymbol - ) + sig { params(base_url: String).void } + attr_writer :base_url - sig do - override.returns( - T::Array[ - Stagehand::SessionExecuteParams::AgentConfig::Mode::TaggedSymbol - ] - ) - end - def self.values - end - end + # Custom headers sent with every request to the Vertex AI provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers - # Model configuration object or model name string (e.g., 'openai/gpt-5-nano') - module Model - extend Stagehand::Internal::Type::Union + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers - Variants = - T.type_alias do - T.any( - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, - Stagehand::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject, - String - ) + # Vertex AI provider-specific settings + sig do + params( + location: String, + project: String, + base_url: String, + headers: T::Hash[Symbol, String] + ).returns(T.attached_class) + end + def self.new( + # Google Cloud location for Vertex AI models + location:, + # Google Cloud project ID for Vertex AI models + project:, + # Base URL for the Vertex AI provider + base_url: nil, + # Custom headers sent with every request to the Vertex AI provider + headers: nil + ) + end + + sig do + override.returns( + { + location: String, + project: String, + base_url: String, + headers: T::Hash[Symbol, String] + } + ) + end + def to_hash + end + end end + end - class VertexModelConfigObject < Stagehand::Internal::Type::BaseModel + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject, Stagehand::Internal::AnyHash ) end - # Vertex provider authentication configuration + # Azure provider authentication configuration sig do returns( - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::Auth ) end attr_reader :auth @@ -1052,7 +2105,7 @@ module Stagehand sig do params( auth: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::OrHash + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::Auth::OrHash ).void end attr_writer :auth @@ -1061,14 +2114,14 @@ module Stagehand sig { returns(String) } attr_accessor :model_name - # Vertex AI model provider + # Azure OpenAI model provider sig { returns(Symbol) } attr_accessor :provider - # Vertex provider-specific model configuration + # Azure provider-specific model configuration sig do returns( - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions ) end attr_reader :provider_options @@ -1076,18 +2129,11 @@ module Stagehand sig do params( provider_options: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::OrHash + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions::OrHash ).void end attr_writer :provider_options - # API key for the model provider - sig { returns(T.nilable(String)) } - attr_reader :api_key - - sig { params(api_key: String).void } - attr_writer :api_key - # Base URL for the model provider sig { returns(T.nilable(String)) } attr_reader :base_url @@ -1105,31 +2151,28 @@ module Stagehand sig do params( auth: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::OrHash, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::Auth::OrHash, model_name: String, provider_options: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::OrHash, - api_key: String, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions::OrHash, base_url: String, headers: T::Hash[Symbol, String], provider: Symbol ).returns(T.attached_class) end def self.new( - # Vertex provider authentication configuration + # Azure provider authentication configuration auth:, # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') model_name:, - # Vertex provider-specific model configuration + # Azure provider-specific model configuration provider_options:, - # API key for the model provider - api_key: nil, # Base URL for the model provider base_url: nil, # Custom headers sent with every request to the model provider headers: nil, - # Vertex AI model provider - provider: :vertex + # Azure OpenAI model provider + provider: :azure ) end @@ -1137,12 +2180,11 @@ module Stagehand override.returns( { auth: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::Auth, model_name: String, provider: Symbol, provider_options: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions, - api_key: String, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions, base_url: String, headers: T::Hash[Symbol, String] } @@ -1155,400 +2197,392 @@ module Stagehand OrHash = T.type_alias do T.any( - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::Auth, Stagehand::Internal::AnyHash ) end - # Google Cloud service account credentials - sig do - returns( - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials - ) - end - attr_reader :credentials - - sig do - params( - credentials: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::OrHash - ).void - end - attr_writer :credentials + # Microsoft Entra ID bearer token for Azure OpenAI + sig { returns(String) } + attr_accessor :token - # Use inline Google Cloud service account credentials for provider authentication + # Use a Microsoft Entra ID bearer token for authentication sig { returns(Symbol) } attr_accessor :type - # Google Cloud project ID used by google-auth-library - sig { returns(T.nilable(String)) } - attr_reader :project_id + # Azure provider authentication configuration + sig do + params(token: String, type: Symbol).returns(T.attached_class) + end + def self.new( + # Microsoft Entra ID bearer token for Azure OpenAI + token:, + # Use a Microsoft Entra ID bearer token for authentication + type: :azureEntraId + ) + end - sig { params(project_id: String).void } - attr_writer :project_id + sig { override.returns({ token: String, type: Symbol }) } + def to_hash + end + end - # Google auth scopes for the desired API request + class ProviderOptions < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI provider-specific settings sig do returns( - T.nilable( - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Scopes::Variants - ) + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions::Azure ) end - attr_reader :scopes + attr_reader :azure sig do params( - scopes: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Scopes::Variants + azure: + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions::Azure::OrHash ).void end - attr_writer :scopes - - # Google Cloud universe domain - sig { returns(T.nilable(String)) } - attr_reader :universe_domain - - sig { params(universe_domain: String).void } - attr_writer :universe_domain + attr_writer :azure - # Vertex provider authentication configuration + # Azure provider-specific model configuration sig do params( - credentials: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::OrHash, - project_id: String, - scopes: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Scopes::Variants, - universe_domain: String, - type: Symbol + azure: + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions::Azure::OrHash ).returns(T.attached_class) end def self.new( - # Google Cloud service account credentials - credentials:, - # Google Cloud project ID used by google-auth-library - project_id: nil, - # Google auth scopes for the desired API request - scopes: nil, - # Google Cloud universe domain - universe_domain: nil, - # Use inline Google Cloud service account credentials for provider authentication - type: :googleServiceAccount + # Azure OpenAI provider-specific settings + azure: ) end sig do override.returns( { - credentials: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials, - type: Symbol, - project_id: String, - scopes: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Scopes::Variants, - universe_domain: String + azure: + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions::Azure } ) - end - def to_hash - end - - class Credentials < Stagehand::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials, - Stagehand::Internal::AnyHash - ) - end - - sig { returns(String) } - attr_accessor :client_email - - sig { returns(String) } - attr_accessor :private_key - - sig { returns(T.nilable(String)) } - attr_reader :auth_provider_x509_cert_url - - sig { params(auth_provider_x509_cert_url: String).void } - attr_writer :auth_provider_x509_cert_url - - sig { returns(T.nilable(String)) } - attr_reader :auth_uri - - sig { params(auth_uri: String).void } - attr_writer :auth_uri - - sig { returns(T.nilable(String)) } - attr_reader :client_id - - sig { params(client_id: String).void } - attr_writer :client_id - - sig { returns(T.nilable(String)) } - attr_reader :client_x509_cert_url + end + def to_hash + end - sig { params(client_x509_cert_url: String).void } - attr_writer :client_x509_cert_url + class Azure < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions::Azure, + Stagehand::Internal::AnyHash + ) + end + # Azure OpenAI API version sig { returns(T.nilable(String)) } - attr_reader :private_key_id + attr_reader :api_version - sig { params(private_key_id: String).void } - attr_writer :private_key_id + sig { params(api_version: String).void } + attr_writer :api_version + # Base URL for the Azure OpenAI provider sig { returns(T.nilable(String)) } - attr_reader :project_id + attr_reader :base_url - sig { params(project_id: String).void } - attr_writer :project_id + sig { params(base_url: String).void } + attr_writer :base_url - sig { returns(T.nilable(String)) } - attr_reader :token_uri + # Custom headers sent with every request to the Azure OpenAI provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers - sig { params(token_uri: String).void } - attr_writer :token_uri + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers - sig do - returns( - T.nilable( - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol - ) - ) - end - attr_reader :type + # Azure OpenAI resource name + sig { returns(T.nilable(String)) } + attr_reader :resource_name - sig do - params( - type: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol - ).void - end - attr_writer :type + sig { params(resource_name: String).void } + attr_writer :resource_name - sig { returns(T.nilable(String)) } - attr_reader :universe_domain + # Whether to use deployment-based Azure OpenAI URLs + sig { returns(T.nilable(T::Boolean)) } + attr_reader :use_deployment_based_urls - sig { params(universe_domain: String).void } - attr_writer :universe_domain + sig { params(use_deployment_based_urls: T::Boolean).void } + attr_writer :use_deployment_based_urls - # Google Cloud service account credentials + # Azure OpenAI provider-specific settings sig do params( - client_email: String, - private_key: String, - auth_provider_x509_cert_url: String, - auth_uri: String, - client_id: String, - client_x509_cert_url: String, - private_key_id: String, - project_id: String, - token_uri: String, - type: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol, - universe_domain: String + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean ).returns(T.attached_class) end def self.new( - client_email:, - private_key:, - auth_provider_x509_cert_url: nil, - auth_uri: nil, - client_id: nil, - client_x509_cert_url: nil, - private_key_id: nil, - project_id: nil, - token_uri: nil, - type: nil, - universe_domain: nil + # Azure OpenAI API version + api_version: nil, + # Base URL for the Azure OpenAI provider + base_url: nil, + # Custom headers sent with every request to the Azure OpenAI provider + headers: nil, + # Azure OpenAI resource name + resource_name: nil, + # Whether to use deployment-based Azure OpenAI URLs + use_deployment_based_urls: nil ) end sig do override.returns( { - client_email: String, - private_key: String, - auth_provider_x509_cert_url: String, - auth_uri: String, - client_id: String, - client_x509_cert_url: String, - private_key_id: String, - project_id: String, - token_uri: String, - type: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type::OrSymbol, - universe_domain: String + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean } ) end def to_hash end + end + end + end - module Type - extend Stagehand::Internal::Type::Enum + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject, + Stagehand::Internal::AnyHash + ) + end - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + sig { returns(String) } + attr_accessor :model_name - SERVICE_ACCOUNT = - T.let( - :service_account, - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type::TaggedSymbol - ) + # Azure OpenAI model provider + sig { returns(Symbol) } + attr_accessor :provider - sig do - override.returns( - T::Array[ - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Credentials::Type::TaggedSymbol - ] - ) - end - def self.values - end - end - end + # Azure provider-specific model configuration + sig do + returns( + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions + ) + end + attr_reader :provider_options - # Google auth scopes for the desired API request - module Scopes - extend Stagehand::Internal::Type::Union + sig do + params( + provider_options: + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions::OrHash + ).void + end + attr_writer :provider_options - Variants = T.type_alias { T.any(String, T::Array[String]) } + # API key for the model provider + sig { returns(T.nilable(String)) } + attr_reader :api_key - sig do - override.returns( - T::Array[ - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::Auth::Scopes::Variants - ] - ) - end - def self.variants - end + sig { params(api_key: String).void } + attr_writer :api_key - StringArray = - T.let( - Stagehand::Internal::Type::ArrayOf[String], - Stagehand::Internal::Type::Converter - ) - end + # Base URL for the model provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the model provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + sig do + params( + model_name: String, + provider_options: + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions::OrHash, + api_key: String, + base_url: String, + headers: T::Hash[Symbol, String], + provider: Symbol + ).returns(T.attached_class) + end + def self.new( + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + model_name:, + # Azure provider-specific model configuration + provider_options:, + # API key for the model provider + api_key: nil, + # Base URL for the model provider + base_url: nil, + # Custom headers sent with every request to the model provider + headers: nil, + # Azure OpenAI model provider + provider: :azure + ) + end + + sig do + override.returns( + { + model_name: String, + provider: Symbol, + provider_options: + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: T::Hash[Symbol, String] + } + ) + end + def to_hash end class ProviderOptions < Stagehand::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions, Stagehand::Internal::AnyHash ) end - # Vertex AI provider-specific settings + # Azure OpenAI provider-specific settings sig do returns( - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::Vertex + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure ) end - attr_reader :vertex + attr_reader :azure sig do params( - vertex: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::Vertex::OrHash + azure: + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure::OrHash ).void end - attr_writer :vertex + attr_writer :azure - # Vertex provider-specific model configuration + # Azure provider-specific model configuration sig do params( - vertex: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::Vertex::OrHash + azure: + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure::OrHash ).returns(T.attached_class) end def self.new( - # Vertex AI provider-specific settings - vertex: + # Azure OpenAI provider-specific settings + azure: ) end sig do override.returns( { - vertex: - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::Vertex + azure: + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure } ) end def to_hash end - class Vertex < Stagehand::Internal::Type::BaseModel + class Azure < Stagehand::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject::ProviderOptions::Vertex, + Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure, Stagehand::Internal::AnyHash ) end - # Google Cloud location for Vertex AI models - sig { returns(String) } - attr_accessor :location + # Azure OpenAI API version + sig { returns(T.nilable(String)) } + attr_reader :api_version - # Google Cloud project ID for Vertex AI models - sig { returns(String) } - attr_accessor :project + sig { params(api_version: String).void } + attr_writer :api_version - # Base URL for the Vertex AI provider + # Base URL for the Azure OpenAI provider sig { returns(T.nilable(String)) } attr_reader :base_url sig { params(base_url: String).void } attr_writer :base_url - # Custom headers sent with every request to the Vertex AI provider + # Custom headers sent with every request to the Azure OpenAI provider sig { returns(T.nilable(T::Hash[Symbol, String])) } attr_reader :headers sig { params(headers: T::Hash[Symbol, String]).void } attr_writer :headers - # Vertex AI provider-specific settings + # Azure OpenAI resource name + sig { returns(T.nilable(String)) } + attr_reader :resource_name + + sig { params(resource_name: String).void } + attr_writer :resource_name + + # Whether to use deployment-based Azure OpenAI URLs + sig { returns(T.nilable(T::Boolean)) } + attr_reader :use_deployment_based_urls + + sig { params(use_deployment_based_urls: T::Boolean).void } + attr_writer :use_deployment_based_urls + + # Azure OpenAI provider-specific settings sig do params( - location: String, - project: String, + api_version: String, base_url: String, - headers: T::Hash[Symbol, String] + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean ).returns(T.attached_class) end def self.new( - # Google Cloud location for Vertex AI models - location:, - # Google Cloud project ID for Vertex AI models - project:, - # Base URL for the Vertex AI provider + # Azure OpenAI API version + api_version: nil, + # Base URL for the Azure OpenAI provider base_url: nil, - # Custom headers sent with every request to the Vertex AI provider - headers: nil + # Custom headers sent with every request to the Azure OpenAI provider + headers: nil, + # Azure OpenAI resource name + resource_name: nil, + # Whether to use deployment-based Azure OpenAI URLs + use_deployment_based_urls: nil ) end sig do override.returns( { - location: String, - project: String, + api_version: String, base_url: String, - headers: T::Hash[Symbol, String] + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean } ) end diff --git a/rbi/stagehand/models/session_extract_params.rbi b/rbi/stagehand/models/session_extract_params.rbi index 970dce0..5d60d36 100644 --- a/rbi/stagehand/models/session_extract_params.rbi +++ b/rbi/stagehand/models/session_extract_params.rbi @@ -124,6 +124,8 @@ module Stagehand T.nilable( T.any( Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject, + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject, + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject, String ) @@ -137,6 +139,8 @@ module Stagehand model: T.any( Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::OrHash, + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::OrHash, + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::OrHash, Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::OrHash, String ) @@ -172,6 +176,8 @@ module Stagehand model: T.any( Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject::OrHash, + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::OrHash, + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::OrHash, Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject::OrHash, String ), @@ -202,6 +208,8 @@ module Stagehand model: T.any( Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject, + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject, + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject, String ), @@ -222,6 +230,8 @@ module Stagehand T.type_alias do T.any( Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject, + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject, + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject, String ) @@ -753,6 +763,513 @@ module Stagehand end end + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject, + Stagehand::Internal::AnyHash + ) + end + + # Azure provider authentication configuration + sig do + returns( + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::Auth + ) + end + attr_reader :auth + + sig do + params( + auth: + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::Auth::OrHash + ).void + end + attr_writer :auth + + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + sig { returns(String) } + attr_accessor :model_name + + # Azure OpenAI model provider + sig { returns(Symbol) } + attr_accessor :provider + + # Azure provider-specific model configuration + sig do + returns( + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions + ) + end + attr_reader :provider_options + + sig do + params( + provider_options: + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::OrHash + ).void + end + attr_writer :provider_options + + # Base URL for the model provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the model provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + sig do + params( + auth: + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::Auth::OrHash, + model_name: String, + provider_options: + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::OrHash, + base_url: String, + headers: T::Hash[Symbol, String], + provider: Symbol + ).returns(T.attached_class) + end + def self.new( + # Azure provider authentication configuration + auth:, + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + model_name:, + # Azure provider-specific model configuration + provider_options:, + # Base URL for the model provider + base_url: nil, + # Custom headers sent with every request to the model provider + headers: nil, + # Azure OpenAI model provider + provider: :azure + ) + end + + sig do + override.returns( + { + auth: + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: Symbol, + provider_options: + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: T::Hash[Symbol, String] + } + ) + end + def to_hash + end + + class Auth < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::Auth, + Stagehand::Internal::AnyHash + ) + end + + # Microsoft Entra ID bearer token for Azure OpenAI + sig { returns(String) } + attr_accessor :token + + # Use a Microsoft Entra ID bearer token for authentication + sig { returns(Symbol) } + attr_accessor :type + + # Azure provider authentication configuration + sig do + params(token: String, type: Symbol).returns(T.attached_class) + end + def self.new( + # Microsoft Entra ID bearer token for Azure OpenAI + token:, + # Use a Microsoft Entra ID bearer token for authentication + type: :azureEntraId + ) + end + + sig { override.returns({ token: String, type: Symbol }) } + def to_hash + end + end + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI provider-specific settings + sig do + returns( + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + ) + end + attr_reader :azure + + sig do + params( + azure: + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure::OrHash + ).void + end + attr_writer :azure + + # Azure provider-specific model configuration + sig do + params( + azure: + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure::OrHash + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI provider-specific settings + azure: + ) + end + + sig do + override.returns( + { + azure: + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + } + ) + end + def to_hash + end + + class Azure < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI API version + sig { returns(T.nilable(String)) } + attr_reader :api_version + + sig { params(api_version: String).void } + attr_writer :api_version + + # Base URL for the Azure OpenAI provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the Azure OpenAI provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + # Azure OpenAI resource name + sig { returns(T.nilable(String)) } + attr_reader :resource_name + + sig { params(resource_name: String).void } + attr_writer :resource_name + + # Whether to use deployment-based Azure OpenAI URLs + sig { returns(T.nilable(T::Boolean)) } + attr_reader :use_deployment_based_urls + + sig { params(use_deployment_based_urls: T::Boolean).void } + attr_writer :use_deployment_based_urls + + # Azure OpenAI provider-specific settings + sig do + params( + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI API version + api_version: nil, + # Base URL for the Azure OpenAI provider + base_url: nil, + # Custom headers sent with every request to the Azure OpenAI provider + headers: nil, + # Azure OpenAI resource name + resource_name: nil, + # Whether to use deployment-based Azure OpenAI URLs + use_deployment_based_urls: nil + ) + end + + sig do + override.returns( + { + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + } + ) + end + def to_hash + end + end + end + end + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject, + Stagehand::Internal::AnyHash + ) + end + + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + sig { returns(String) } + attr_accessor :model_name + + # Azure OpenAI model provider + sig { returns(Symbol) } + attr_accessor :provider + + # Azure provider-specific model configuration + sig do + returns( + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions + ) + end + attr_reader :provider_options + + sig do + params( + provider_options: + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::OrHash + ).void + end + attr_writer :provider_options + + # API key for the model provider + sig { returns(T.nilable(String)) } + attr_reader :api_key + + sig { params(api_key: String).void } + attr_writer :api_key + + # Base URL for the model provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the model provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + sig do + params( + model_name: String, + provider_options: + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::OrHash, + api_key: String, + base_url: String, + headers: T::Hash[Symbol, String], + provider: Symbol + ).returns(T.attached_class) + end + def self.new( + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + model_name:, + # Azure provider-specific model configuration + provider_options:, + # API key for the model provider + api_key: nil, + # Base URL for the model provider + base_url: nil, + # Custom headers sent with every request to the model provider + headers: nil, + # Azure OpenAI model provider + provider: :azure + ) + end + + sig do + override.returns( + { + model_name: String, + provider: Symbol, + provider_options: + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: T::Hash[Symbol, String] + } + ) + end + def to_hash + end + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI provider-specific settings + sig do + returns( + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + ) + end + attr_reader :azure + + sig do + params( + azure: + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure::OrHash + ).void + end + attr_writer :azure + + # Azure provider-specific model configuration + sig do + params( + azure: + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure::OrHash + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI provider-specific settings + azure: + ) + end + + sig do + override.returns( + { + azure: + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + ) + end + def to_hash + end + + class Azure < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI API version + sig { returns(T.nilable(String)) } + attr_reader :api_version + + sig { params(api_version: String).void } + attr_writer :api_version + + # Base URL for the Azure OpenAI provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the Azure OpenAI provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + # Azure OpenAI resource name + sig { returns(T.nilable(String)) } + attr_reader :resource_name + + sig { params(resource_name: String).void } + attr_writer :resource_name + + # Whether to use deployment-based Azure OpenAI URLs + sig { returns(T.nilable(T::Boolean)) } + attr_reader :use_deployment_based_urls + + sig { params(use_deployment_based_urls: T::Boolean).void } + attr_writer :use_deployment_based_urls + + # Azure OpenAI provider-specific settings + sig do + params( + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI API version + api_version: nil, + # Base URL for the Azure OpenAI provider + base_url: nil, + # Custom headers sent with every request to the Azure OpenAI provider + headers: nil, + # Azure OpenAI resource name + resource_name: nil, + # Whether to use deployment-based Azure OpenAI URLs + use_deployment_based_urls: nil + ) + end + + sig do + override.returns( + { + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + } + ) + end + def to_hash + end + end + end + end + class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel OrHash = T.type_alias do diff --git a/rbi/stagehand/models/session_observe_params.rbi b/rbi/stagehand/models/session_observe_params.rbi index 8bde0a2..1038d1d 100644 --- a/rbi/stagehand/models/session_observe_params.rbi +++ b/rbi/stagehand/models/session_observe_params.rbi @@ -113,6 +113,8 @@ module Stagehand T.nilable( T.any( Stagehand::SessionObserveParams::Options::Model::VertexModelConfigObject, + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject, + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::SessionObserveParams::Options::Model::GenericModelConfigObject, String ) @@ -126,6 +128,8 @@ module Stagehand model: T.any( Stagehand::SessionObserveParams::Options::Model::VertexModelConfigObject::OrHash, + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::OrHash, + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::OrHash, Stagehand::SessionObserveParams::Options::Model::GenericModelConfigObject::OrHash, String ) @@ -189,6 +193,8 @@ module Stagehand model: T.any( Stagehand::SessionObserveParams::Options::Model::VertexModelConfigObject::OrHash, + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::OrHash, + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::OrHash, Stagehand::SessionObserveParams::Options::Model::GenericModelConfigObject::OrHash, String ), @@ -229,6 +235,8 @@ module Stagehand model: T.any( Stagehand::SessionObserveParams::Options::Model::VertexModelConfigObject, + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject, + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::SessionObserveParams::Options::Model::GenericModelConfigObject, String ), @@ -258,6 +266,8 @@ module Stagehand T.type_alias do T.any( Stagehand::SessionObserveParams::Options::Model::VertexModelConfigObject, + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject, + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject, Stagehand::SessionObserveParams::Options::Model::GenericModelConfigObject, String ) @@ -789,6 +799,513 @@ module Stagehand end end + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject, + Stagehand::Internal::AnyHash + ) + end + + # Azure provider authentication configuration + sig do + returns( + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::Auth + ) + end + attr_reader :auth + + sig do + params( + auth: + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::Auth::OrHash + ).void + end + attr_writer :auth + + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + sig { returns(String) } + attr_accessor :model_name + + # Azure OpenAI model provider + sig { returns(Symbol) } + attr_accessor :provider + + # Azure provider-specific model configuration + sig do + returns( + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions + ) + end + attr_reader :provider_options + + sig do + params( + provider_options: + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::OrHash + ).void + end + attr_writer :provider_options + + # Base URL for the model provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the model provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + sig do + params( + auth: + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::Auth::OrHash, + model_name: String, + provider_options: + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::OrHash, + base_url: String, + headers: T::Hash[Symbol, String], + provider: Symbol + ).returns(T.attached_class) + end + def self.new( + # Azure provider authentication configuration + auth:, + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + model_name:, + # Azure provider-specific model configuration + provider_options:, + # Base URL for the model provider + base_url: nil, + # Custom headers sent with every request to the model provider + headers: nil, + # Azure OpenAI model provider + provider: :azure + ) + end + + sig do + override.returns( + { + auth: + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: Symbol, + provider_options: + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: T::Hash[Symbol, String] + } + ) + end + def to_hash + end + + class Auth < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::Auth, + Stagehand::Internal::AnyHash + ) + end + + # Microsoft Entra ID bearer token for Azure OpenAI + sig { returns(String) } + attr_accessor :token + + # Use a Microsoft Entra ID bearer token for authentication + sig { returns(Symbol) } + attr_accessor :type + + # Azure provider authentication configuration + sig do + params(token: String, type: Symbol).returns(T.attached_class) + end + def self.new( + # Microsoft Entra ID bearer token for Azure OpenAI + token:, + # Use a Microsoft Entra ID bearer token for authentication + type: :azureEntraId + ) + end + + sig { override.returns({ token: String, type: Symbol }) } + def to_hash + end + end + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI provider-specific settings + sig do + returns( + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + ) + end + attr_reader :azure + + sig do + params( + azure: + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure::OrHash + ).void + end + attr_writer :azure + + # Azure provider-specific model configuration + sig do + params( + azure: + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure::OrHash + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI provider-specific settings + azure: + ) + end + + sig do + override.returns( + { + azure: + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + } + ) + end + def to_hash + end + + class Azure < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI API version + sig { returns(T.nilable(String)) } + attr_reader :api_version + + sig { params(api_version: String).void } + attr_writer :api_version + + # Base URL for the Azure OpenAI provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the Azure OpenAI provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + # Azure OpenAI resource name + sig { returns(T.nilable(String)) } + attr_reader :resource_name + + sig { params(resource_name: String).void } + attr_writer :resource_name + + # Whether to use deployment-based Azure OpenAI URLs + sig { returns(T.nilable(T::Boolean)) } + attr_reader :use_deployment_based_urls + + sig { params(use_deployment_based_urls: T::Boolean).void } + attr_writer :use_deployment_based_urls + + # Azure OpenAI provider-specific settings + sig do + params( + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI API version + api_version: nil, + # Base URL for the Azure OpenAI provider + base_url: nil, + # Custom headers sent with every request to the Azure OpenAI provider + headers: nil, + # Azure OpenAI resource name + resource_name: nil, + # Whether to use deployment-based Azure OpenAI URLs + use_deployment_based_urls: nil + ) + end + + sig do + override.returns( + { + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + } + ) + end + def to_hash + end + end + end + end + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject, + Stagehand::Internal::AnyHash + ) + end + + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + sig { returns(String) } + attr_accessor :model_name + + # Azure OpenAI model provider + sig { returns(Symbol) } + attr_accessor :provider + + # Azure provider-specific model configuration + sig do + returns( + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions + ) + end + attr_reader :provider_options + + sig do + params( + provider_options: + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::OrHash + ).void + end + attr_writer :provider_options + + # API key for the model provider + sig { returns(T.nilable(String)) } + attr_reader :api_key + + sig { params(api_key: String).void } + attr_writer :api_key + + # Base URL for the model provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the model provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + sig do + params( + model_name: String, + provider_options: + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::OrHash, + api_key: String, + base_url: String, + headers: T::Hash[Symbol, String], + provider: Symbol + ).returns(T.attached_class) + end + def self.new( + # Model name string with provider prefix (e.g., 'openai/gpt-5-nano') + model_name:, + # Azure provider-specific model configuration + provider_options:, + # API key for the model provider + api_key: nil, + # Base URL for the model provider + base_url: nil, + # Custom headers sent with every request to the model provider + headers: nil, + # Azure OpenAI model provider + provider: :azure + ) + end + + sig do + override.returns( + { + model_name: String, + provider: Symbol, + provider_options: + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: T::Hash[Symbol, String] + } + ) + end + def to_hash + end + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI provider-specific settings + sig do + returns( + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + ) + end + attr_reader :azure + + sig do + params( + azure: + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure::OrHash + ).void + end + attr_writer :azure + + # Azure provider-specific model configuration + sig do + params( + azure: + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure::OrHash + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI provider-specific settings + azure: + ) + end + + sig do + override.returns( + { + azure: + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + ) + end + def to_hash + end + + class Azure < Stagehand::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure, + Stagehand::Internal::AnyHash + ) + end + + # Azure OpenAI API version + sig { returns(T.nilable(String)) } + attr_reader :api_version + + sig { params(api_version: String).void } + attr_writer :api_version + + # Base URL for the Azure OpenAI provider + sig { returns(T.nilable(String)) } + attr_reader :base_url + + sig { params(base_url: String).void } + attr_writer :base_url + + # Custom headers sent with every request to the Azure OpenAI provider + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, String]).void } + attr_writer :headers + + # Azure OpenAI resource name + sig { returns(T.nilable(String)) } + attr_reader :resource_name + + sig { params(resource_name: String).void } + attr_writer :resource_name + + # Whether to use deployment-based Azure OpenAI URLs + sig { returns(T.nilable(T::Boolean)) } + attr_reader :use_deployment_based_urls + + sig { params(use_deployment_based_urls: T::Boolean).void } + attr_writer :use_deployment_based_urls + + # Azure OpenAI provider-specific settings + sig do + params( + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + ).returns(T.attached_class) + end + def self.new( + # Azure OpenAI API version + api_version: nil, + # Base URL for the Azure OpenAI provider + base_url: nil, + # Custom headers sent with every request to the Azure OpenAI provider + headers: nil, + # Azure OpenAI resource name + resource_name: nil, + # Whether to use deployment-based Azure OpenAI URLs + use_deployment_based_urls: nil + ) + end + + sig do + override.returns( + { + api_version: String, + base_url: String, + headers: T::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: T::Boolean + } + ) + end + def to_hash + end + end + end + end + class GenericModelConfigObject < Stagehand::Internal::Type::BaseModel OrHash = T.type_alias do diff --git a/sig/stagehand/models/model_config.rbs b/sig/stagehand/models/model_config.rbs index 7962f75..1a56fa6 100644 --- a/sig/stagehand/models/model_config.rbs +++ b/sig/stagehand/models/model_config.rbs @@ -2,6 +2,8 @@ module Stagehand module Models type model_config = Stagehand::ModelConfig::VertexModelConfigObject + | Stagehand::ModelConfig::AzureEntraModelConfigObject + | Stagehand::ModelConfig::AzureAPIKeyModelConfigObject | Stagehand::ModelConfig::GenericModelConfigObject module ModelConfig @@ -265,6 +267,240 @@ module Stagehand end end + type azure_entra_model_config_object = + { + auth: Stagehand::ModelConfig::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: :azure, + provider_options: Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: ::Hash[Symbol, String] + } + + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + attr_accessor auth: Stagehand::ModelConfig::AzureEntraModelConfigObject::Auth + + attr_accessor model_name: String + + attr_accessor provider: :azure + + attr_accessor provider_options: Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + def initialize: ( + auth: Stagehand::ModelConfig::AzureEntraModelConfigObject::Auth, + model_name: String, + provider_options: Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?provider: :azure + ) -> void + + def to_hash: -> { + auth: Stagehand::ModelConfig::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: :azure, + provider_options: Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: ::Hash[Symbol, String] + } + + type auth = { token: String, type: :azureEntraId } + + class Auth < Stagehand::Internal::Type::BaseModel + attr_accessor token: String + + attr_accessor type: :azureEntraId + + def initialize: (token: String, ?type: :azureEntraId) -> void + + def to_hash: -> { token: String, type: :azureEntraId } + end + + type provider_options = + { + azure: Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions::Azure + } + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + attr_accessor azure: Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions::Azure + + def initialize: ( + azure: Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions::Azure + ) -> void + + def to_hash: -> { + azure: Stagehand::ModelConfig::AzureEntraModelConfigObject::ProviderOptions::Azure + } + + type azure = + { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + + class Azure < Stagehand::Internal::Type::BaseModel + attr_reader api_version: String? + + def api_version=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + attr_reader resource_name: String? + + def resource_name=: (String) -> String + + attr_reader use_deployment_based_urls: bool? + + def use_deployment_based_urls=: (bool) -> bool + + def initialize: ( + ?api_version: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?resource_name: String, + ?use_deployment_based_urls: bool + ) -> void + + def to_hash: -> { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + end + end + end + + type azure_api_key_model_config_object = + { + model_name: String, + provider: :azure, + provider_options: Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: ::Hash[Symbol, String] + } + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + attr_accessor model_name: String + + attr_accessor provider: :azure + + attr_accessor provider_options: Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions + + attr_reader api_key: String? + + def api_key=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + def initialize: ( + model_name: String, + provider_options: Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions, + ?api_key: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?provider: :azure + ) -> void + + def to_hash: -> { + model_name: String, + provider: :azure, + provider_options: Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: ::Hash[Symbol, String] + } + + type provider_options = + { + azure: Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + attr_accessor azure: Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + + def initialize: ( + azure: Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + ) -> void + + def to_hash: -> { + azure: Stagehand::ModelConfig::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + + type azure = + { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + + class Azure < Stagehand::Internal::Type::BaseModel + attr_reader api_version: String? + + def api_version=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + attr_reader resource_name: String? + + def resource_name=: (String) -> String + + attr_reader use_deployment_based_urls: bool? + + def use_deployment_based_urls=: (bool) -> bool + + def initialize: ( + ?api_version: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?resource_name: String, + ?use_deployment_based_urls: bool + ) -> void + + def to_hash: -> { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + end + end + end + type generic_model_config_object = { model_name: String, diff --git a/sig/stagehand/models/session_act_params.rbs b/sig/stagehand/models/session_act_params.rbs index 9c40e2b..724056d 100644 --- a/sig/stagehand/models/session_act_params.rbs +++ b/sig/stagehand/models/session_act_params.rbs @@ -96,6 +96,8 @@ module Stagehand type model = Stagehand::SessionActParams::Options::Model::VertexModelConfigObject + | Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject + | Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject | Stagehand::SessionActParams::Options::Model::GenericModelConfigObject | String @@ -360,6 +362,240 @@ module Stagehand end end + type azure_entra_model_config_object = + { + auth: Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: ::Hash[Symbol, String] + } + + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + attr_accessor auth: Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::Auth + + attr_accessor model_name: String + + attr_accessor provider: :azure + + attr_accessor provider_options: Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + def initialize: ( + auth: Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider_options: Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?provider: :azure + ) -> void + + def to_hash: -> { + auth: Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: ::Hash[Symbol, String] + } + + type auth = { token: String, type: :azureEntraId } + + class Auth < Stagehand::Internal::Type::BaseModel + attr_accessor token: String + + attr_accessor type: :azureEntraId + + def initialize: (token: String, ?type: :azureEntraId) -> void + + def to_hash: -> { token: String, type: :azureEntraId } + end + + type provider_options = + { + azure: Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + } + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + attr_accessor azure: Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + + def initialize: ( + azure: Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + ) -> void + + def to_hash: -> { + azure: Stagehand::SessionActParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + } + + type azure = + { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + + class Azure < Stagehand::Internal::Type::BaseModel + attr_reader api_version: String? + + def api_version=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + attr_reader resource_name: String? + + def resource_name=: (String) -> String + + attr_reader use_deployment_based_urls: bool? + + def use_deployment_based_urls=: (bool) -> bool + + def initialize: ( + ?api_version: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?resource_name: String, + ?use_deployment_based_urls: bool + ) -> void + + def to_hash: -> { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + end + end + end + + type azure_api_key_model_config_object = + { + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: ::Hash[Symbol, String] + } + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + attr_accessor model_name: String + + attr_accessor provider: :azure + + attr_accessor provider_options: Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions + + attr_reader api_key: String? + + def api_key=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + def initialize: ( + model_name: String, + provider_options: Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + ?api_key: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?provider: :azure + ) -> void + + def to_hash: -> { + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: ::Hash[Symbol, String] + } + + type provider_options = + { + azure: Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + attr_accessor azure: Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + + def initialize: ( + azure: Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + ) -> void + + def to_hash: -> { + azure: Stagehand::SessionActParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + + type azure = + { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + + class Azure < Stagehand::Internal::Type::BaseModel + attr_reader api_version: String? + + def api_version=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + attr_reader resource_name: String? + + def resource_name=: (String) -> String + + attr_reader use_deployment_based_urls: bool? + + def use_deployment_based_urls=: (bool) -> bool + + def initialize: ( + ?api_version: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?resource_name: String, + ?use_deployment_based_urls: bool + ) -> void + + def to_hash: -> { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + end + end + end + type generic_model_config_object = { model_name: String, diff --git a/sig/stagehand/models/session_execute_params.rbs b/sig/stagehand/models/session_execute_params.rbs index 06dc774..9824df1 100644 --- a/sig/stagehand/models/session_execute_params.rbs +++ b/sig/stagehand/models/session_execute_params.rbs @@ -116,6 +116,8 @@ module Stagehand type execution_model = Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::VertexModelConfigObject + | Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject + | Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject | Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::GenericModelConfigObject | String @@ -380,6 +382,240 @@ module Stagehand end end + type azure_entra_model_config_object = + { + auth: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: ::Hash[Symbol, String] + } + + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + attr_accessor auth: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::Auth + + attr_accessor model_name: String + + attr_accessor provider: :azure + + attr_accessor provider_options: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + def initialize: ( + auth: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::Auth, + model_name: String, + provider_options: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?provider: :azure + ) -> void + + def to_hash: -> { + auth: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: ::Hash[Symbol, String] + } + + type auth = { token: String, type: :azureEntraId } + + class Auth < Stagehand::Internal::Type::BaseModel + attr_accessor token: String + + attr_accessor type: :azureEntraId + + def initialize: (token: String, ?type: :azureEntraId) -> void + + def to_hash: -> { token: String, type: :azureEntraId } + end + + type provider_options = + { + azure: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions::Azure + } + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + attr_accessor azure: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions::Azure + + def initialize: ( + azure: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions::Azure + ) -> void + + def to_hash: -> { + azure: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureEntraModelConfigObject::ProviderOptions::Azure + } + + type azure = + { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + + class Azure < Stagehand::Internal::Type::BaseModel + attr_reader api_version: String? + + def api_version=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + attr_reader resource_name: String? + + def resource_name=: (String) -> String + + attr_reader use_deployment_based_urls: bool? + + def use_deployment_based_urls=: (bool) -> bool + + def initialize: ( + ?api_version: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?resource_name: String, + ?use_deployment_based_urls: bool + ) -> void + + def to_hash: -> { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + end + end + end + + type azure_api_key_model_config_object = + { + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: ::Hash[Symbol, String] + } + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + attr_accessor model_name: String + + attr_accessor provider: :azure + + attr_accessor provider_options: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions + + attr_reader api_key: String? + + def api_key=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + def initialize: ( + model_name: String, + provider_options: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions, + ?api_key: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?provider: :azure + ) -> void + + def to_hash: -> { + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: ::Hash[Symbol, String] + } + + type provider_options = + { + azure: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + attr_accessor azure: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + + def initialize: ( + azure: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + ) -> void + + def to_hash: -> { + azure: Stagehand::SessionExecuteParams::AgentConfig::ExecutionModel::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + + type azure = + { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + + class Azure < Stagehand::Internal::Type::BaseModel + attr_reader api_version: String? + + def api_version=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + attr_reader resource_name: String? + + def resource_name=: (String) -> String + + attr_reader use_deployment_based_urls: bool? + + def use_deployment_based_urls=: (bool) -> bool + + def initialize: ( + ?api_version: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?resource_name: String, + ?use_deployment_based_urls: bool + ) -> void + + def to_hash: -> { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + end + end + end + type generic_model_config_object = { model_name: String, @@ -459,6 +695,8 @@ module Stagehand type model = Stagehand::SessionExecuteParams::AgentConfig::Model::VertexModelConfigObject + | Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject + | Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject | Stagehand::SessionExecuteParams::AgentConfig::Model::GenericModelConfigObject | String @@ -723,6 +961,240 @@ module Stagehand end end + type azure_entra_model_config_object = + { + auth: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: ::Hash[Symbol, String] + } + + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + attr_accessor auth: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::Auth + + attr_accessor model_name: String + + attr_accessor provider: :azure + + attr_accessor provider_options: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + def initialize: ( + auth: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider_options: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?provider: :azure + ) -> void + + def to_hash: -> { + auth: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: ::Hash[Symbol, String] + } + + type auth = { token: String, type: :azureEntraId } + + class Auth < Stagehand::Internal::Type::BaseModel + attr_accessor token: String + + attr_accessor type: :azureEntraId + + def initialize: (token: String, ?type: :azureEntraId) -> void + + def to_hash: -> { token: String, type: :azureEntraId } + end + + type provider_options = + { + azure: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + } + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + attr_accessor azure: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + + def initialize: ( + azure: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + ) -> void + + def to_hash: -> { + azure: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + } + + type azure = + { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + + class Azure < Stagehand::Internal::Type::BaseModel + attr_reader api_version: String? + + def api_version=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + attr_reader resource_name: String? + + def resource_name=: (String) -> String + + attr_reader use_deployment_based_urls: bool? + + def use_deployment_based_urls=: (bool) -> bool + + def initialize: ( + ?api_version: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?resource_name: String, + ?use_deployment_based_urls: bool + ) -> void + + def to_hash: -> { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + end + end + end + + type azure_api_key_model_config_object = + { + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: ::Hash[Symbol, String] + } + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + attr_accessor model_name: String + + attr_accessor provider: :azure + + attr_accessor provider_options: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions + + attr_reader api_key: String? + + def api_key=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + def initialize: ( + model_name: String, + provider_options: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + ?api_key: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?provider: :azure + ) -> void + + def to_hash: -> { + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: ::Hash[Symbol, String] + } + + type provider_options = + { + azure: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + attr_accessor azure: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + + def initialize: ( + azure: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + ) -> void + + def to_hash: -> { + azure: Stagehand::SessionExecuteParams::AgentConfig::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + + type azure = + { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + + class Azure < Stagehand::Internal::Type::BaseModel + attr_reader api_version: String? + + def api_version=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + attr_reader resource_name: String? + + def resource_name=: (String) -> String + + attr_reader use_deployment_based_urls: bool? + + def use_deployment_based_urls=: (bool) -> bool + + def initialize: ( + ?api_version: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?resource_name: String, + ?use_deployment_based_urls: bool + ) -> void + + def to_hash: -> { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + end + end + end + type generic_model_config_object = { model_name: String, diff --git a/sig/stagehand/models/session_extract_params.rbs b/sig/stagehand/models/session_extract_params.rbs index 7db91e3..1faa5d2 100644 --- a/sig/stagehand/models/session_extract_params.rbs +++ b/sig/stagehand/models/session_extract_params.rbs @@ -109,6 +109,8 @@ module Stagehand type model = Stagehand::SessionExtractParams::Options::Model::VertexModelConfigObject + | Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject + | Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject | Stagehand::SessionExtractParams::Options::Model::GenericModelConfigObject | String @@ -373,6 +375,240 @@ module Stagehand end end + type azure_entra_model_config_object = + { + auth: Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: ::Hash[Symbol, String] + } + + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + attr_accessor auth: Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::Auth + + attr_accessor model_name: String + + attr_accessor provider: :azure + + attr_accessor provider_options: Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + def initialize: ( + auth: Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider_options: Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?provider: :azure + ) -> void + + def to_hash: -> { + auth: Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: ::Hash[Symbol, String] + } + + type auth = { token: String, type: :azureEntraId } + + class Auth < Stagehand::Internal::Type::BaseModel + attr_accessor token: String + + attr_accessor type: :azureEntraId + + def initialize: (token: String, ?type: :azureEntraId) -> void + + def to_hash: -> { token: String, type: :azureEntraId } + end + + type provider_options = + { + azure: Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + } + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + attr_accessor azure: Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + + def initialize: ( + azure: Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + ) -> void + + def to_hash: -> { + azure: Stagehand::SessionExtractParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + } + + type azure = + { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + + class Azure < Stagehand::Internal::Type::BaseModel + attr_reader api_version: String? + + def api_version=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + attr_reader resource_name: String? + + def resource_name=: (String) -> String + + attr_reader use_deployment_based_urls: bool? + + def use_deployment_based_urls=: (bool) -> bool + + def initialize: ( + ?api_version: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?resource_name: String, + ?use_deployment_based_urls: bool + ) -> void + + def to_hash: -> { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + end + end + end + + type azure_api_key_model_config_object = + { + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: ::Hash[Symbol, String] + } + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + attr_accessor model_name: String + + attr_accessor provider: :azure + + attr_accessor provider_options: Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions + + attr_reader api_key: String? + + def api_key=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + def initialize: ( + model_name: String, + provider_options: Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + ?api_key: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?provider: :azure + ) -> void + + def to_hash: -> { + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: ::Hash[Symbol, String] + } + + type provider_options = + { + azure: Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + attr_accessor azure: Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + + def initialize: ( + azure: Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + ) -> void + + def to_hash: -> { + azure: Stagehand::SessionExtractParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + + type azure = + { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + + class Azure < Stagehand::Internal::Type::BaseModel + attr_reader api_version: String? + + def api_version=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + attr_reader resource_name: String? + + def resource_name=: (String) -> String + + attr_reader use_deployment_based_urls: bool? + + def use_deployment_based_urls=: (bool) -> bool + + def initialize: ( + ?api_version: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?resource_name: String, + ?use_deployment_based_urls: bool + ) -> void + + def to_hash: -> { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + end + end + end + type generic_model_config_object = { model_name: String, diff --git a/sig/stagehand/models/session_observe_params.rbs b/sig/stagehand/models/session_observe_params.rbs index a73966f..5eb5c47 100644 --- a/sig/stagehand/models/session_observe_params.rbs +++ b/sig/stagehand/models/session_observe_params.rbs @@ -104,6 +104,8 @@ module Stagehand type model = Stagehand::SessionObserveParams::Options::Model::VertexModelConfigObject + | Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject + | Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject | Stagehand::SessionObserveParams::Options::Model::GenericModelConfigObject | String @@ -368,6 +370,240 @@ module Stagehand end end + type azure_entra_model_config_object = + { + auth: Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: ::Hash[Symbol, String] + } + + class AzureEntraModelConfigObject < Stagehand::Internal::Type::BaseModel + attr_accessor auth: Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::Auth + + attr_accessor model_name: String + + attr_accessor provider: :azure + + attr_accessor provider_options: Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + def initialize: ( + auth: Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider_options: Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?provider: :azure + ) -> void + + def to_hash: -> { + auth: Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::Auth, + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions, + base_url: String, + headers: ::Hash[Symbol, String] + } + + type auth = { token: String, type: :azureEntraId } + + class Auth < Stagehand::Internal::Type::BaseModel + attr_accessor token: String + + attr_accessor type: :azureEntraId + + def initialize: (token: String, ?type: :azureEntraId) -> void + + def to_hash: -> { token: String, type: :azureEntraId } + end + + type provider_options = + { + azure: Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + } + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + attr_accessor azure: Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + + def initialize: ( + azure: Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + ) -> void + + def to_hash: -> { + azure: Stagehand::SessionObserveParams::Options::Model::AzureEntraModelConfigObject::ProviderOptions::Azure + } + + type azure = + { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + + class Azure < Stagehand::Internal::Type::BaseModel + attr_reader api_version: String? + + def api_version=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + attr_reader resource_name: String? + + def resource_name=: (String) -> String + + attr_reader use_deployment_based_urls: bool? + + def use_deployment_based_urls=: (bool) -> bool + + def initialize: ( + ?api_version: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?resource_name: String, + ?use_deployment_based_urls: bool + ) -> void + + def to_hash: -> { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + end + end + end + + type azure_api_key_model_config_object = + { + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: ::Hash[Symbol, String] + } + + class AzureAPIKeyModelConfigObject < Stagehand::Internal::Type::BaseModel + attr_accessor model_name: String + + attr_accessor provider: :azure + + attr_accessor provider_options: Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions + + attr_reader api_key: String? + + def api_key=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + def initialize: ( + model_name: String, + provider_options: Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + ?api_key: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?provider: :azure + ) -> void + + def to_hash: -> { + model_name: String, + provider: :azure, + provider_options: Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions, + api_key: String, + base_url: String, + headers: ::Hash[Symbol, String] + } + + type provider_options = + { + azure: Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + + class ProviderOptions < Stagehand::Internal::Type::BaseModel + attr_accessor azure: Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + + def initialize: ( + azure: Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + ) -> void + + def to_hash: -> { + azure: Stagehand::SessionObserveParams::Options::Model::AzureAPIKeyModelConfigObject::ProviderOptions::Azure + } + + type azure = + { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + + class Azure < Stagehand::Internal::Type::BaseModel + attr_reader api_version: String? + + def api_version=: (String) -> String + + attr_reader base_url: String? + + def base_url=: (String) -> String + + attr_reader headers: ::Hash[Symbol, String]? + + def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + + attr_reader resource_name: String? + + def resource_name=: (String) -> String + + attr_reader use_deployment_based_urls: bool? + + def use_deployment_based_urls=: (bool) -> bool + + def initialize: ( + ?api_version: String, + ?base_url: String, + ?headers: ::Hash[Symbol, String], + ?resource_name: String, + ?use_deployment_based_urls: bool + ) -> void + + def to_hash: -> { + api_version: String, + base_url: String, + headers: ::Hash[Symbol, String], + resource_name: String, + use_deployment_based_urls: bool + } + end + end + end + type generic_model_config_object = { model_name: String, From 3341bf59c3cd737371f95f31e7726fdc828931a4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 21:02:02 +0000 Subject: [PATCH 2/2] release: 3.22.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ Gemfile.lock | 2 +- lib/stagehand/version.rb | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index eba8a04..1887bd5 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "3.21.0" + ".": "3.22.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 8cf228c..da21674 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 3.22.0 (2026-06-09) + +Full Changelog: [v3.21.0...v3.22.0](https://github.com/browserbase/stagehand-ruby/compare/v3.21.0...v3.22.0) + +### Features + +* [STG-2090] Add Azure Entra model auth support ([1f8bf4b](https://github.com/browserbase/stagehand-ruby/commit/1f8bf4b2421c4c85887535aff089a81392aef841)) + ## 3.21.0 (2026-05-27) Full Changelog: [v3.20.0...v3.21.0](https://github.com/browserbase/stagehand-ruby/compare/v3.20.0...v3.21.0) diff --git a/Gemfile.lock b/Gemfile.lock index adcbab3..86532de 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - stagehand (3.21.0) + stagehand (3.22.0) cgi connection_pool diff --git a/lib/stagehand/version.rb b/lib/stagehand/version.rb index bffebd2..417d197 100644 --- a/lib/stagehand/version.rb +++ b/lib/stagehand/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Stagehand - VERSION = "3.21.0" + VERSION = "3.22.0" end