From 6531a86c6f0bd1a568b77e4625cb6cee06529066 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 27 Jan 2026 17:38:45 +0000 Subject: [PATCH 1/3] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index b1b40bd..d8e68da 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%2Fstagehand-089c8670f1d7c2e9fa8e5c97010db7c24b8f162eb7cfe76ffa41d70fa46efe2f.yml openapi_spec_hash: 7a226aee8f3f2ab16febbe6bb35e1657 -config_hash: 242651c4871c2869ba3c2e3d337505b9 +config_hash: 75b561cd2ba925e4f2a62ec2f1d13738 From fb3762b610c4f3049bc74790424556c770bffcf4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 27 Jan 2026 17:42:46 +0000 Subject: [PATCH 2/3] feat: add auto-bedrock support based on bedrock/provider.model-name --- .stats.yml | 4 +- .../models/session_execute_params.rb | 32 ++++++++- .../models/session_execute_params.rbi | 65 ++++++++++++++++++- .../models/session_execute_params.rbs | 21 ++++++ 4 files changed, 115 insertions(+), 7 deletions(-) diff --git a/.stats.yml b/.stats.yml index d8e68da..f3c17f9 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%2Fstagehand-089c8670f1d7c2e9fa8e5c97010db7c24b8f162eb7cfe76ffa41d70fa46efe2f.yml -openapi_spec_hash: 7a226aee8f3f2ab16febbe6bb35e1657 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fstagehand-43e6dd4ce19381de488d296e9036fea15bfea9a6f946cf8ccf4e02aecc8fb765.yml +openapi_spec_hash: f736e7a8acea0d73e1031c86ea803246 config_hash: 75b561cd2ba925e4f2a62ec2f1d13738 diff --git a/lib/stagehand/models/session_execute_params.rb b/lib/stagehand/models/session_execute_params.rb index 8616536..ed76039 100644 --- a/lib/stagehand/models/session_execute_params.rb +++ b/lib/stagehand/models/session_execute_params.rb @@ -54,11 +54,18 @@ class SessionExecuteParams < Stagehand::Internal::Type::BaseModel class AgentConfig < Stagehand::Internal::Type::BaseModel # @!attribute cua - # Enable Computer Use Agent mode + # Deprecated. Use mode: 'cua' instead. If both are provided, mode takes + # precedence. # # @return [Boolean, nil] optional :cua, Stagehand::Internal::Type::Boolean + # @!attribute mode + # Tool mode for the agent (dom, hybrid, cua). If set, overrides cua. + # + # @return [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Mode, nil] + optional :mode, enum: -> { Stagehand::SessionExecuteParams::AgentConfig::Mode } + # @!attribute model # Model configuration object or model name string (e.g., 'openai/gpt-5-nano') # @@ -77,8 +84,13 @@ class AgentConfig < Stagehand::Internal::Type::BaseModel # @return [String, nil] optional :system_prompt, String, api_name: :systemPrompt - # @!method initialize(cua: nil, model: nil, provider: nil, system_prompt: nil) - # @param cua [Boolean] Enable Computer Use Agent mode + # @!method initialize(cua: nil, mode: nil, model: nil, provider: nil, system_prompt: nil) + # Some parameter documentations has been truncated, see + # {Stagehand::Models::SessionExecuteParams::AgentConfig} for more details. + # + # @param cua [Boolean] Deprecated. Use mode: 'cua' instead. If both are provided, mode takes precedence + # + # @param mode [Symbol, Stagehand::Models::SessionExecuteParams::AgentConfig::Mode] Tool mode for the agent (dom, hybrid, cua). If set, overrides cua. # # @param model [Stagehand::Models::ModelConfig, String] Model configuration object or model name string (e.g., 'openai/gpt-5-nano') # @@ -86,6 +98,20 @@ class AgentConfig < Stagehand::Internal::Type::BaseModel # # @param system_prompt [String] Custom system prompt for the agent + # Tool mode for the agent (dom, hybrid, cua). If set, overrides cua. + # + # @see Stagehand::Models::SessionExecuteParams::AgentConfig#mode + module Mode + extend Stagehand::Internal::Type::Enum + + DOM = :dom + HYBRID = :hybrid + CUA = :cua + + # @!method self.values + # @return [Array] + end + # Model configuration object or model name string (e.g., 'openai/gpt-5-nano') # # @see Stagehand::Models::SessionExecuteParams::AgentConfig#model diff --git a/rbi/stagehand/models/session_execute_params.rbi b/rbi/stagehand/models/session_execute_params.rbi index cf42e06..d07ab9f 100644 --- a/rbi/stagehand/models/session_execute_params.rbi +++ b/rbi/stagehand/models/session_execute_params.rbi @@ -109,13 +109,31 @@ module Stagehand ) end - # Enable Computer Use Agent mode + # Deprecated. Use mode: 'cua' instead. If both are provided, mode takes + # precedence. sig { returns(T.nilable(T::Boolean)) } attr_reader :cua sig { params(cua: T::Boolean).void } attr_writer :cua + # Tool mode for the agent (dom, hybrid, cua). If set, overrides cua. + sig do + returns( + T.nilable( + Stagehand::SessionExecuteParams::AgentConfig::Mode::OrSymbol + ) + ) + end + attr_reader :mode + + sig do + params( + mode: Stagehand::SessionExecuteParams::AgentConfig::Mode::OrSymbol + ).void + end + attr_writer :mode + # Model configuration object or model name string (e.g., 'openai/gpt-5-nano') sig { returns(T.nilable(T.any(Stagehand::ModelConfig, String))) } attr_reader :model @@ -153,6 +171,7 @@ module Stagehand sig do params( cua: T::Boolean, + mode: Stagehand::SessionExecuteParams::AgentConfig::Mode::OrSymbol, model: T.any(Stagehand::ModelConfig::OrHash, String), provider: Stagehand::SessionExecuteParams::AgentConfig::Provider::OrSymbol, @@ -160,8 +179,11 @@ module Stagehand ).returns(T.attached_class) end def self.new( - # Enable Computer Use Agent mode + # Deprecated. Use mode: 'cua' instead. If both are provided, mode takes + # precedence. cua: nil, + # Tool mode for the agent (dom, hybrid, cua). If set, overrides cua. + mode: nil, # Model configuration object or model name string (e.g., 'openai/gpt-5-nano') model: nil, # AI provider for the agent (legacy, use model: openai/gpt-5-nano instead) @@ -175,6 +197,8 @@ module Stagehand override.returns( { cua: T::Boolean, + mode: + Stagehand::SessionExecuteParams::AgentConfig::Mode::OrSymbol, model: T.any(Stagehand::ModelConfig, String), provider: Stagehand::SessionExecuteParams::AgentConfig::Provider::OrSymbol, @@ -185,6 +209,43 @@ module Stagehand def to_hash 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 diff --git a/sig/stagehand/models/session_execute_params.rbs b/sig/stagehand/models/session_execute_params.rbs index 5f45c4f..917e2a2 100644 --- a/sig/stagehand/models/session_execute_params.rbs +++ b/sig/stagehand/models/session_execute_params.rbs @@ -51,6 +51,7 @@ module Stagehand type agent_config = { cua: bool, + mode: Stagehand::Models::SessionExecuteParams::AgentConfig::mode, model: Stagehand::Models::SessionExecuteParams::AgentConfig::model, provider: Stagehand::Models::SessionExecuteParams::AgentConfig::provider, system_prompt: String @@ -61,6 +62,12 @@ module Stagehand def cua=: (bool) -> bool + attr_reader mode: Stagehand::Models::SessionExecuteParams::AgentConfig::mode? + + def mode=: ( + Stagehand::Models::SessionExecuteParams::AgentConfig::mode + ) -> Stagehand::Models::SessionExecuteParams::AgentConfig::mode + attr_reader model: Stagehand::Models::SessionExecuteParams::AgentConfig::model? def model=: ( @@ -79,6 +86,7 @@ module Stagehand def initialize: ( ?cua: bool, + ?mode: Stagehand::Models::SessionExecuteParams::AgentConfig::mode, ?model: Stagehand::Models::SessionExecuteParams::AgentConfig::model, ?provider: Stagehand::Models::SessionExecuteParams::AgentConfig::provider, ?system_prompt: String @@ -86,11 +94,24 @@ module Stagehand def to_hash: -> { cua: bool, + mode: Stagehand::Models::SessionExecuteParams::AgentConfig::mode, model: Stagehand::Models::SessionExecuteParams::AgentConfig::model, provider: Stagehand::Models::SessionExecuteParams::AgentConfig::provider, system_prompt: String } + type mode = :dom | :hybrid | :cua + + module Mode + extend Stagehand::Internal::Type::Enum + + DOM: :dom + HYBRID: :hybrid + CUA: :cua + + def self?.values: -> ::Array[Stagehand::Models::SessionExecuteParams::AgentConfig::mode] + end + type model = Stagehand::ModelConfig | String module Model From 92b648296486f2f9c75b91d1e3409b9d3c9c5cc8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 27 Jan 2026 17:43:00 +0000 Subject: [PATCH 3/3] release: 3.2.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ Gemfile.lock | 2 +- README.md | 2 +- lib/stagehand/version.rb | 2 +- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index e0dc500..1f73031 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "3.1.0" + ".": "3.2.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 78b46f3..7d43af8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 3.2.0 (2026-01-27) + +Full Changelog: [v3.1.0...v3.2.0](https://github.com/browserbase/stagehand-ruby/compare/v3.1.0...v3.2.0) + +### Features + +* add auto-bedrock support based on bedrock/provider.model-name ([fb3762b](https://github.com/browserbase/stagehand-ruby/commit/fb3762b610c4f3049bc74790424556c770bffcf4)) + ## 3.1.0 (2026-01-27) Full Changelog: [v3.0.3...v3.1.0](https://github.com/browserbase/stagehand-ruby/compare/v3.0.3...v3.1.0) diff --git a/Gemfile.lock b/Gemfile.lock index 7e771c6..f95c8f3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - stagehand (3.1.0) + stagehand (3.2.0) cgi connection_pool diff --git a/README.md b/README.md index 86a8014..362cea5 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "stagehand", "~> 3.1.0" +gem "stagehand", "~> 3.2.0" ``` diff --git a/lib/stagehand/version.rb b/lib/stagehand/version.rb index 9c488c1..d025938 100644 --- a/lib/stagehand/version.rb +++ b/lib/stagehand/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Stagehand - VERSION = "3.1.0" + VERSION = "3.2.0" end