diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b7d1dc09..401290e4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -84,11 +84,19 @@ jobs: fail-fast: false matrix: ruby: ["3.4"] - gemfile: - - "gemfiles/anthropic_1.12.gemfile" - - "gemfiles/anthropic_1.14.gemfile" - - "gemfiles/openai_0.34.gemfile" - - "gemfiles/openai_0.35.gemfile" + include: + - gemfile: "gemfiles/anthropic_1.12.gemfile" + test-glob: "test/integration/anthropic/**/*_test.rb test/providers/usage_test.rb test/docs/providers/anthropic_examples_test.rb" + - gemfile: "gemfiles/anthropic_1.14.gemfile" + test-glob: "test/integration/anthropic/**/*_test.rb test/providers/usage_test.rb test/docs/providers/anthropic_examples_test.rb" + - gemfile: "gemfiles/anthropic_latest.gemfile" + test-glob: "test/integration/anthropic/**/*_test.rb test/providers/usage_test.rb test/docs/providers/anthropic_examples_test.rb" + - gemfile: "gemfiles/openai_0.34.gemfile" + test-glob: "test/integration/open_ai/**/*_test.rb" + - gemfile: "gemfiles/openai_0.35.gemfile" + test-glob: "test/integration/open_ai/**/*_test.rb" + - gemfile: "gemfiles/openai_latest.gemfile" + test-glob: "test/integration/open_ai/**/*_test.rb test/providers/usage_test.rb test/docs/providers/open_ai_examples_test.rb" steps: - uses: actions/checkout@v6 - name: Install system deps @@ -111,4 +119,4 @@ jobs: env: RAILS_ENV: test RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }} - run: bin/test + run: bundle exec ruby -Itest ${{ matrix.test-glob }} diff --git a/.tool-versions b/.tool-versions index 489e0527..340bbe8c 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -nodejs 24.7.0 -ruby 3.4.8 +nodejs latest +ruby latest diff --git a/activeagent.gemspec b/activeagent.gemspec index 773f4b54..2803742c 100644 --- a/activeagent.gemspec +++ b/activeagent.gemspec @@ -38,10 +38,16 @@ Gem::Specification.new do |spec| spec.add_development_dependency "puma" spec.add_development_dependency "sqlite3" spec.add_development_dependency "minitest", "~> 5.0" - spec.add_development_dependency "vcr" - spec.add_development_dependency "webmock" + # Older vcr 6.3.x breaks on Ruby 3.5+/4.0 with a CGI.parse NameError. Keep a + # floor so no gemfile resolves back to the broken version. + spec.add_development_dependency "vcr", ">= 6.4" + spec.add_development_dependency "webmock", ">= 3.26" + # vcr calls CGI.parse but doesn't declare `cgi` itself. Depend on it directly + # so it's installed on Ruby 3.5+/4.0 where `cgi` is no longer a default gem. + spec.add_development_dependency "cgi" - spec.add_development_dependency "dotenv" + # dotenv >= 3.2 avoids the activation conflict older 3.1.x hits under Ruby 4.0. + spec.add_development_dependency "dotenv", ">= 3.2" spec.add_development_dependency "pry" spec.add_development_dependency "pry-byebug" spec.add_development_dependency "pry-doc" diff --git a/bin/test b/bin/test index e4dfff67..db7460c4 100755 --- a/bin/test +++ b/bin/test @@ -6,6 +6,17 @@ unless ENV["CI"] Dotenv.load(".env.test") end +# When running locally with CI=true, still load env vars from .env.test +# so VCR cassettes can replay without needing real API keys at client init. +if ENV["CI"] && !ENV["OPENAI_API_KEY"] && !ENV["OPEN_AI_API_KEY"] && !ENV["OPEN_AI_ACCESS_TOKEN"] + begin + require "dotenv" + Dotenv.load(".env.test") + rescue LoadError + # dotenv not available + end +end + ENV["RAILS_ENV"] = "test" # Default to rails8.gemfile for local development. diff --git a/docs/providers.md b/docs/providers.md index add6f66a..6cd69b6d 100644 --- a/docs/providers.md +++ b/docs/providers.md @@ -24,7 +24,7 @@ Providers connect your agents to AI services through a unified interface. Switch class RubyLLMAgent < ApplicationAgent generate_with :ruby_llm, model: "gpt-4o-mini" # Works with any model RubyLLM supports: - # generate_with :ruby_llm, model: "claude-sonnet-4-5-20250929" + # generate_with :ruby_llm, model: "claude-sonnet-5" # generate_with :ruby_llm, model: "gemini-2.0-flash" end ``` diff --git a/docs/providers/ruby_llm.md b/docs/providers/ruby_llm.md index ff3f7c16..a78d4a43 100644 --- a/docs/providers/ruby_llm.md +++ b/docs/providers/ruby_llm.md @@ -58,7 +58,7 @@ RubyLLM automatically resolves which provider to use based on the model ID. Any | Provider | Example Models | |----------|---------------| | **OpenAI** | `gpt-4o`, `gpt-4o-mini`, `gpt-4.1` | -| **Anthropic** | `claude-sonnet-4-5-20250929`, `claude-haiku-4-5` | +| **Anthropic** | `claude-sonnet-5`, `claude-haiku-4-5` | | **Google Gemini** | `gemini-2.0-flash`, `gemini-1.5-pro` | | **AWS Bedrock** | Bedrock-hosted models | | **Azure OpenAI** | Azure-hosted OpenAI models | @@ -70,7 +70,7 @@ Switch providers by changing the model: class FlexibleAgent < ApplicationAgent # Any of these work with the same provider config: generate_with :ruby_llm, model: "gpt-4o-mini" - # generate_with :ruby_llm, model: "claude-sonnet-4-5-20250929" + # generate_with :ruby_llm, model: "claude-sonnet-5" # generate_with :ruby_llm, model: "gemini-2.0-flash" end ``` @@ -79,7 +79,7 @@ end ### Required Parameters -- **`model`** - Model identifier (e.g., "gpt-4o-mini", "claude-sonnet-4-5-20250929") +- **`model`** - Model identifier (e.g., "gpt-4o-mini", "claude-sonnet-5") ### Sampling Parameters diff --git a/gemfiles/anthropic_1.12.gemfile b/gemfiles/anthropic_1.12.gemfile index 0416ea5c..10f9d3c5 100644 --- a/gemfiles/anthropic_1.12.gemfile +++ b/gemfiles/anthropic_1.12.gemfile @@ -1,5 +1,7 @@ source "https://rubygems.org" +ENV["ANTHROPIC_GEM_VERSION"] = "1.12" + gem "anthropic", "~> 1.12.0" gem "minitest", "~> 5.0" gem "rails", "~> 8.0.0" diff --git a/gemfiles/anthropic_1.14.gemfile b/gemfiles/anthropic_1.14.gemfile index f2761650..04258a6f 100644 --- a/gemfiles/anthropic_1.14.gemfile +++ b/gemfiles/anthropic_1.14.gemfile @@ -1,5 +1,7 @@ source "https://rubygems.org" +ENV["ANTHROPIC_GEM_VERSION"] = "1.14" + gem "anthropic", "~> 1.14.0" gem "minitest", "~> 5.0" gem "rails", "~> 8.0.0" diff --git a/gemfiles/anthropic_latest.gemfile b/gemfiles/anthropic_latest.gemfile new file mode 100644 index 00000000..7cd5277f --- /dev/null +++ b/gemfiles/anthropic_latest.gemfile @@ -0,0 +1,8 @@ +source "https://rubygems.org" + +gem "anthropic", "~> 1.55.0" +gem "minitest", "~> 5.0" +gem "rails", "~> 8.0.0" +gem "sqlite3", "~> 2.0" + +gemspec path: ".." diff --git a/gemfiles/openai_latest.gemfile b/gemfiles/openai_latest.gemfile new file mode 100644 index 00000000..b9d7cd66 --- /dev/null +++ b/gemfiles/openai_latest.gemfile @@ -0,0 +1,8 @@ +source "https://rubygems.org" + +gem "minitest", "~> 5.0" +gem "openai", "~> 0.69.0" +gem "rails", "~> 8.0.0" +gem "sqlite3", "~> 2.0" + +gemspec path: ".." diff --git a/lib/active_agent/providers/anthropic/transforms.rb b/lib/active_agent/providers/anthropic/transforms.rb index 43fb85d1..ff173a8f 100644 --- a/lib/active_agent/providers/anthropic/transforms.rb +++ b/lib/active_agent/providers/anthropic/transforms.rb @@ -172,6 +172,8 @@ def normalize_tool_choice(tool_choice) # → { format: { type: "json_schema", schema: {...} } } # # Notes: + # - Anthropic requires `additionalProperties: false` on all object schemas. + # This is auto-injected into any object schemas that don't have it set. # - Anthropic does not use OpenAI's `name` or `strict` fields in output_config.format. # - json_object is not handled here; it remains prompt-emulated. # - text is not handled here; Anthropic returns plain text by default. @@ -184,11 +186,15 @@ def normalize_response_format(format) format_hash = format.deep_symbolize_keys if format_hash[:type].to_s == "json_schema" + schema = format_hash[:json_schema]&.dig(:schema) + if schema + schema = inject_additional_properties(schema.deep_dup) + end { format: { type: "json_schema", - schema: format_hash[:json_schema]&.dig(:schema) - } + schema: schema + }.compact } elsif format_hash[:type].to_s == "json_object" # json_object is not handled here; it remains prompt-emulated. @@ -201,16 +207,45 @@ def normalize_response_format(format) format_hash end when Symbol, String - if format.to_s == "json_schema" - { format: { type: "json_schema" } } - else - nil - end + # Bare :json_schema without a schema cannot use native output_config. + # Anthropic requires a valid JSON Schema — return nil to fall back. + nil else format end end + # Recursively injects `additionalProperties: false` into all object schemas. + # + # Anthropic's structured output API requires this field on all object types. + # Only inserts when not already explicitly set by the user. + # + # @param schema [Hash] JSON Schema hash + # @return [Hash] schema with additionalProperties injected + def inject_additional_properties(schema) + return schema unless schema.is_a?(Hash) + + if schema[:type] == "object" && !schema.key?(:additionalProperties) + schema[:additionalProperties] = false + end + + # Recurse into nested schemas + schema[:properties]&.each_value { |prop| inject_additional_properties(prop) } + schema[:items]&.then { |items| inject_additional_properties(items) } + schema[:anyOf]&.each { |s| inject_additional_properties(s) } + schema[:oneOf]&.each { |s| inject_additional_properties(s) } + schema[:allOf]&.each { |s| inject_additional_properties(s) } + + if schema[:definitions] + schema[:definitions].each_value { |defn| inject_additional_properties(defn) } + end + if schema[:"$defs"] + schema[:"$defs"].each_value { |defn| inject_additional_properties(defn) } + end + + schema + end + # Merges consecutive same-role messages into single messages with multiple content blocks. # # Required by Anthropic API - consecutive messages with the same role must be combined. @@ -489,6 +524,7 @@ def cleanup_serialized_request(hash, defaults, gem_object = nil) msg.delete(:model) msg.delete(:stop_reason) msg.delete(:stop_sequence) + msg.delete(:stop_details) msg.delete(:type) msg.delete(:usage) end diff --git a/lib/active_agent/providers/bedrock_provider.rb b/lib/active_agent/providers/bedrock_provider.rb index 644cec34..d021fd3c 100644 --- a/lib/active_agent/providers/bedrock_provider.rb +++ b/lib/active_agent/providers/bedrock_provider.rb @@ -15,11 +15,11 @@ module Providers # bedrock: # service: "Bedrock" # aws_region: "eu-west-2" - # model: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0" + # model: "eu.anthropic.claude-sonnet-5-v1:0" # # @example Agent usage # class SummaryAgent < ApplicationAgent - # generate_with :bedrock, model: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0" + # generate_with :bedrock, model: "eu.anthropic.claude-sonnet-5-v1:0" # # def summarize # prompt(message: params[:message]) diff --git a/test/docs/actions/embeddings_examples_test.rb b/test/docs/actions/embeddings_examples_test.rb index 1941fa69..9a440853 100644 --- a/test/docs/actions/embeddings_examples_test.rb +++ b/test/docs/actions/embeddings_examples_test.rb @@ -113,7 +113,7 @@ class EmbeddingAgent < ApplicationAgent VCR.use_cassette("docs/agents/embeddings_examples/mixing_providers") do # region mixing_providers class HybridAgent < ApplicationAgent - generate_with :anthropic, model: "claude-3-5-sonnet-20241022" + generate_with :anthropic, model: "claude-sonnet-5" embed_with :openai, model: "text-embedding-3-small" end diff --git a/test/docs/actions/messages_examples_test.rb b/test/docs/actions/messages_examples_test.rb index 3e9e7c75..eb7b1422 100644 --- a/test/docs/actions/messages_examples_test.rb +++ b/test/docs/actions/messages_examples_test.rb @@ -15,7 +15,7 @@ def chat # region message_keyword_agent class MessageKeywordAgent < ApplicationAgent - generate_with :anthropic, model: "claude-3-5-haiku-20241022" + generate_with :anthropic, model: "claude-haiku-4-5" def chat prompt(message: "Explain quantum computing") @@ -62,7 +62,7 @@ def chat_single # region image_agent class ImageAgent < ApplicationAgent - generate_with :anthropic, model: "claude-3-5-haiku-20241022" + generate_with :anthropic, model: "claude-haiku-4-5" def analyze_url prompt( @@ -109,7 +109,7 @@ def summarize_url # region document_base64_agent class DocumentBase64Agent < ApplicationAgent - generate_with :anthropic, model: "claude-3-5-haiku-20241022" + generate_with :anthropic, model: "claude-haiku-4-5" def extract_base64 file_path = Rails.root.join("../fixtures/files/sample_resume.pdf") @@ -136,7 +136,7 @@ def chat # region system_messages_agent class SystemMessagesAgent < ApplicationAgent - generate_with :anthropic, model: "claude-3-5-haiku-20241022" + generate_with :anthropic, model: "claude-haiku-4-5" def chat prompt( diff --git a/test/docs/actions/structured_output_examples_test.rb b/test/docs/actions/structured_output_examples_test.rb index 90cd146b..a081e9f0 100644 --- a/test/docs/actions/structured_output_examples_test.rb +++ b/test/docs/actions/structured_output_examples_test.rb @@ -23,7 +23,7 @@ def extract # region anthropic_json_agent class AnthropicAgent < ApplicationAgent - generate_with :anthropic, model: "claude-3-5-sonnet-latest" + generate_with :anthropic, model: "claude-haiku-4-5" def extract prompt( diff --git a/test/docs/actions/tools_examples_test.rb b/test/docs/actions/tools_examples_test.rb index 396cf27e..852b8f4e 100644 --- a/test/docs/actions/tools_examples_test.rb +++ b/test/docs/actions/tools_examples_test.rb @@ -94,7 +94,7 @@ def get_current_weather(location:, unit: "fahrenheit") class AnthropicBasicExample < ActiveSupport::TestCase # region anthropic_basic_function class WeatherAgent < ApplicationAgent - generate_with :anthropic, model: "claude-sonnet-4-20250514" + generate_with :anthropic, model: "claude-haiku-4-5" def weather_update prompt( @@ -267,7 +267,7 @@ def check_weather # region cross_provider_anthropic class AnthropicAgent < ApplicationAgent include WeatherTool - generate_with :anthropic, model: "claude-sonnet-4-20250514" + generate_with :anthropic, model: "claude-haiku-4-5" def check_weather prompt(message: "What's the weather?", tools: [ WEATHER_TOOL ]) diff --git a/test/docs/actions/usage_examples_test.rb b/test/docs/actions/usage_examples_test.rb index 3c190832..af2be4bb 100644 --- a/test/docs/actions/usage_examples_test.rb +++ b/test/docs/actions/usage_examples_test.rb @@ -78,7 +78,7 @@ def chat end class AnthropicUsageAgent < ApplicationAgent - generate_with :anthropic, model: "claude-3-5-haiku-20241022" + generate_with :anthropic, model: "claude-haiku-4-5" def chat prompt(message: params[:message]) diff --git a/test/docs/providers/anthropic_examples_test.rb b/test/docs/providers/anthropic_examples_test.rb index 2dd055c0..accd7147 100644 --- a/test/docs/providers/anthropic_examples_test.rb +++ b/test/docs/providers/anthropic_examples_test.rb @@ -42,7 +42,8 @@ def extract_colors # => { colors: ["red", "blue", "yellow"] } # endregion response_format_json_object_example - assert_equal({ colors: [ "red", "blue", "yellow" ] }, colors) + assert colors.key?(:colors) + assert colors[:colors].is_a?(Array) end end end diff --git a/test/dummy/app/agents/providers/anthropic_agent.rb b/test/dummy/app/agents/providers/anthropic_agent.rb index f9a53158..dd59e37a 100644 --- a/test/dummy/app/agents/providers/anthropic_agent.rb +++ b/test/dummy/app/agents/providers/anthropic_agent.rb @@ -11,7 +11,7 @@ module Providers # response.message.content #=> "Hi! How can I help you today?" # region agent class AnthropicAgent < ApplicationAgent - generate_with :anthropic, model: "claude-sonnet-4-5-20250929" + generate_with :anthropic, model: "claude-sonnet-5" # @return [ActiveAgent::Generation] def ask diff --git a/test/dummy/app/agents/providers/bedrock_agent.rb b/test/dummy/app/agents/providers/bedrock_agent.rb index aea46837..c1d59d7f 100644 --- a/test/dummy/app/agents/providers/bedrock_agent.rb +++ b/test/dummy/app/agents/providers/bedrock_agent.rb @@ -11,7 +11,7 @@ module Providers # response.message.content #=> "Hi! How can I help you today?" # region agent class BedrockAgent < ApplicationAgent - generate_with :bedrock, model: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0" + generate_with :bedrock, model: "eu.anthropic.claude-sonnet-5-v1:0" # @return [ActiveAgent::Generation] def ask diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/docs/providers/anthropic/basic_generation.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/docs/providers/anthropic/basic_generation.yml new file mode 100644 index 00000000..a75bb1b1 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/docs/providers/anthropic/basic_generation.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"What is the Model + Context Protocol?","role":"user"}],"max_tokens":4096}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '122' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:16:45 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:16:36Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '1999000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:16:45Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:16:36Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '11999000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:16:36Z' + Request-Id: + - req_011Cczufp6yxEd5xkbWJ39jH + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-193c6eb718ed7b4badbcfe32bdf44122-50d36856748bddbd-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abff0adb3e7a73-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1zb25uZXQtNSIsImlkIjoibXNnXzAxMUNjenVmcXJ0eVpkRXVQdEpWUUI4WiIsInR5cGUiOiJtZXNzYWdlIiwicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiMgTW9kZWwgQ29udGV4dCBQcm90b2NvbCAoTUNQKVxuXG5UaGUgTW9kZWwgQ29udGV4dCBQcm90b2NvbCBpcyBhbiBvcGVuIHN0YW5kYXJkIChpbnRyb2R1Y2VkIGJ5IEFudGhyb3BpYykgZGVzaWduZWQgdG8gc3RhbmRhcmRpemUgaG93IEFJIGFwcGxpY2F0aW9uc+KAlHBhcnRpY3VsYXJseSB0aG9zZSB1c2luZyBsYXJnZSBsYW5ndWFnZSBtb2RlbHMgKExMTXMp4oCUY29ubmVjdCB0byBleHRlcm5hbCBkYXRhIHNvdXJjZXMsIHRvb2xzLCBhbmQgc3lzdGVtcy5cblxuIyMgQ29yZSBJZGVhXG5cblRoaW5rIG9mIGl0IGxpa2UgYSBcIlVTQi1DIGZvciBBSSBhcHBsaWNhdGlvbnMuXCIgUmF0aGVyIHRoYW4gYnVpbGRpbmcgY3VzdG9tLCBvbmUtb2ZmIGludGVncmF0aW9ucyBiZXR3ZWVuIGVhY2ggQUkgYXBwbGljYXRpb24gYW5kIGVhY2ggZGF0YSBzb3VyY2Ugb3IgdG9vbCwgTUNQIHByb3ZpZGVzIGEgY29tbW9uIHByb3RvY29sIHRoYXQgYWxsb3dzIGFueSBjb21wbGlhbnQgQUkgYXBwbGljYXRpb24gdG8gY29ubmVjdCB3aXRoIGFueSBjb21wbGlhbnQgZGF0YSBzb3VyY2Ugb3IgdG9vbC5cblxuIyMgS2V5IENvbXBvbmVudHNcblxuKipNQ1AgU2VydmVycyoqXG5FeHBvc2Ugc3BlY2lmaWMgY2FwYWJpbGl0aWVz4oCUbGlrZSBhY2Nlc3MgdG8gYSBkYXRhYmFzZSwgZmlsZSBzeXN0ZW0sIEFQSSwgb3IgYnVzaW5lc3MgdG9vbCAoZS5nLiwgU2xhY2ssIEdpdEh1YiwgR29vZ2xlIERyaXZlKeKAlGluIGEgc3RhbmRhcmRpemVkIHdheS5cblxuKipNQ1AgQ2xpZW50cyoqXG5MaXZlIGluc2lkZSBBSSBhcHBsaWNhdGlvbnMgKGxpa2UgQ2xhdWRlIERlc2t0b3AsIElERXMsIG9yIGN1c3RvbSBhZ2VudHMpIGFuZCBjb25uZWN0IHRvIE1DUCBzZXJ2ZXJzIHRvIHJldHJpZXZlIGNvbnRleHQgb3IgaW52b2tlIGFjdGlvbnMuXG5cbioqQ29tbXVuaWNhdGlvbiBMYXllcioqXG5Vc2VzIEpTT04tUlBDIGZvciBtZXNzYWdlIGV4Y2hhbmdlLCB3aXRoIHN1cHBvcnQgZm9yIHZhcmlvdXMgdHJhbnNwb3J0IG1lY2hhbmlzbXMgKGxpa2Ugc3RkaW8gZm9yIGxvY2FsIHByb2Nlc3NlcyBvciBIVFRQL1NTRSBmb3IgcmVtb3RlIGNvbm5lY3Rpb25zKS5cblxuIyMgV2hhdCBJdCBFbmFibGVzXG5cbi0gKipSZXNvdXJjZXMqKjogU3RydWN0dXJlZCBkYXRhIG9yIGNvbnRlbnQgdGhhdCBjYW4gYmUgcHJvdmlkZWQgdG8gYW4gTExNIGFzIGNvbnRleHQgKGZpbGVzLCBkYXRhYmFzZSByZWNvcmRzLCBBUEkgcmVzcG9uc2VzKVxuLSAqKlRvb2xzKio6IEZ1bmN0aW9ucyB0aGUgTExNIGNhbiBjYWxsIHRvIHRha2UgYWN0aW9ucyAocXVlcnlpbmcgYSBkYXRhYmFzZSwgY3JlYXRpbmcgYSBmaWxlLCBzZW5kaW5nIGEgbWVzc2FnZSlcbi0gKipQcm9tcHRzKio6IFJldXNhYmxlIHRlbXBsYXRlcyBmb3IgY29tbW9uIGludGVyYWN0aW9uc1xuXG4jIyBXaHkgSXQgTWF0dGVyc1xuXG5CZWZvcmUgc3RhbmRhcmRzIGxpa2UgTUNQLCBpbnRlZ3JhdGluZyBhbiBBSSBhc3Npc3RhbnQgd2l0aCwgc2F5LCBHaXRIdWIgYW5kIGEgbG9jYWwgZmlsZXN5c3RlbSBhbmQgYSBkYXRhYmFzZSBlYWNoIHJlcXVpcmVkIGN1c3RvbSBjb2RlIHNwZWNpZmljIHRvIHRoYXQgQUkgYXBwbGljYXRpb24uIE1DUCBtZWFuczpcblxuLSBUb29sL2RhdGEgcHJvdmlkZXJzIGNhbiBidWlsZCBvbmUgTUNQIHNlcnZlciB0aGF0IHdvcmtzIHdpdGggYW55IE1DUC1jb21wYXRpYmxlIEFJIGFwcFxuLSBBSSBhcHBsaWNhdGlvbiBkZXZlbG9wZXJzIGNhbiBzdXBwb3J0IG1hbnkgaW50ZWdyYXRpb25zIHdpdGhvdXQgY3VzdG9tIGNvZGUgZm9yIGVhY2hcbi0gVGhlIGVjb3N5c3RlbSBiZWNvbWVzIG1vcmUgbW9kdWxhciBhbmQgaW50ZXJvcGVyYWJsZVxuXG4jIyBFeGFtcGxlIFVzZSBDYXNlXG5cbkEgZGV2ZWxvcGVyIHVzaW5nIGFuIE1DUC1jb21wYXRpYmxlIGNvZGluZyBhc3Npc3RhbnQgY291bGQgaGF2ZSBpdCBkaXJlY3RseSBxdWVyeSBhIFBvc3RncmVzIGRhdGFiYXNlLCByZWFkL3dyaXRlIGZpbGVzLCBhbmQgY2hlY2sgR2l0SHViIGlzc3Vlc+KAlGFsbCB0aHJvdWdoIE1DUCBzZXJ2ZXJz4oCUd2l0aG91dCB0aGUgQUkgdmVuZG9yIG5lZWRpbmcgdG8gYnVpbGQgYmVzcG9rZSBpbnRlZ3JhdGlvbnMgZm9yIGVhY2ggb2YgdGhvc2Ugc3lzdGVtcy5cblxuV291bGQgeW91IGxpa2UgbW9yZSBkZXRhaWwgb24gdGhlIHRlY2huaWNhbCBhcmNoaXRlY3R1cmUsIGhvdyB0byBidWlsZCBhbiBNQ1Agc2VydmVyLCBvciBzcGVjaWZpYyB1c2UgY2FzZXM/In1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjE4LCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6NzEwLCJvdXRwdXRfdG9rZW5zX2RldGFpbHMiOnsidGhpbmtpbmdfdG9rZW5zIjowfSwic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoiZ2xvYmFsIn19 + recorded_at: Mon, 13 Jul 2026 23:16:45 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_file_url_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/docs/providers/anthropic/response_format/json_object.yml similarity index 59% rename from test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_file_url_bare.yml rename to test/fixtures/vcr_cassettes/anthropic-1.12/docs/providers/anthropic/response_format/json_object.yml index 97e81dad..8a2cc80b 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_file_url_bare.yml +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/docs/providers/anthropic/response_format/json_object.yml @@ -5,8 +5,9 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"What''s - in this file?"},{"type":"document","source":{"type":"url","url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"}}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","messages":[{"content":"Return a JSON object + with three primary colors in an array named ''colors''.","role":"user"},{"content":"Here + is the JSON requested:\n{","role":"assistant"}],"max_tokens":4096}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 @@ -39,14 +40,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '257' + - '226' response: status: code: 200 message: OK headers: Date: - - Mon, 20 Oct 2025 19:59:44 GMT + - Mon, 13 Jul 2026 23:18:15 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,52 +55,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '49000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T19:59:44Z' + - '2026-07-13T23:18:15Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T19:59:44Z' + - '2026-07-13T23:18:15Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T19:59:43Z' + - '2026-07-13T23:18:14Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '59000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T19:59:44Z' + - '2026-07-13T23:18:15Z' Request-Id: - - req_011CUK3VRRU5wmi4QGpxpDw8 + - req_011Cczuo7wj9oabNUqpJQM1i Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2040' - Via: - - 1.1 google + Traceresponse: + - 00-b20e315c61ce83596301242072967a02-acf85d4cc95f2abf-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 991b18e0893367bf-SJC + - a1ac017669a75e49-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01M5aK1j4DVhurbw8axKo3tm","type":"message","role":"assistant","content":[{"type":"text","text":"This - PDF file contains minimal content - just a heading that reads \"Dummy PDF - file\" on page 1. The rest of the page is blank. It appears to be a placeholder - or test PDF document with no substantial information or data."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":1612,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":51,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 19:59:44 GMT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cczuo8BrydTpWwbRwaFgM","type":"message","role":"assistant","content":[{"type":"text","text":"\n \"colors\": + [\"red\", \"blue\", \"yellow\"]\n}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":31,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:18:15 GMT recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request.yml new file mode 100644 index 00000000..a4db5397 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":[{"type":"text","text":"You + are a helpful assistant."},{"type":"text","text":"Always be polite and professional."}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '226' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:09 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:07Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:09Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:06Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:07Z' + Request-Id: + - req_011CczuFYjb98QuwckAxnCx9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-2fb26318137e7230c51c6caa856dc8f6-5aa2624871c2785f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf7018c3feb26-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1zb25uZXQtNSIsImlkIjoibXNnXzAxMUNjenVGWkNzR2RUZWZQem5kMnc3dCIsInR5cGUiOiJtZXNzYWdlIiwicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IkhlbGxvISBJdCdzIG5pY2UgdG8gbWVldCB5b3UuIEhvdyBhcmUgeW91IGRvaW5nIHRvZGF5PyBJJ20gaGFwcHkgdG8gaGVscCB3aXRoIHdoYXRldmVyIHlvdSBuZWVk4oCUd2hldGhlciB0aGF0J3MgYW5zd2VyaW5nIHF1ZXN0aW9ucywgd29ya2luZyB0aHJvdWdoIGEgcHJvYmxlbSwgYnJhaW5zdG9ybWluZyBpZGVhcywgb3IganVzdCBjaGF0dGluZy4gV2hhdCdzIG9uIHlvdXIgbWluZD8ifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6MzQsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjo3Mywib3V0cHV0X3Rva2Vuc19kZXRhaWxzIjp7InRoaW5raW5nX3Rva2VucyI6MH0sInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Imdsb2JhbCJ9fQ== + recorded_at: Mon, 13 Jul 2026 23:11:09 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request_with_override.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request_with_override.yml new file mode 100644 index 00000000..36a12ef7 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request_with_override.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":[{"type":"text","text":"You + are an overridden assistant."},{"type":"text","text":"Please respond concisely."}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '221' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:12 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:12Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:12Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:11Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:12Z' + Request-Id: + - req_011CczuFviBjDiQy7X4mqFTs + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-1668723147315eb774dde62422ea09be-d42788b853de9d78-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf7219ef38627-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuFw6FSKthvw36XjXqm","type":"message","role":"assistant","content":[{"type":"text","text":"Hi! + What can I help you with?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":33,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":13,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:11:12 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request.yml new file mode 100644 index 00000000..8a141704 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request.yml @@ -0,0 +1,106 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"Default + auto-loaded instructions for testing."}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '158' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:04 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:04Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:04Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:03Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:04Z' + Request-Id: + - req_011CczuFKj1EUBb519J4VnGS + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-beab4842d7fd7c97bd4302448140c13a-c3589abd752d7b9f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf6ee8ad4d8c2-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuFLNCLSaeoCZ7u8jW6","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! + Nice to meet you. How''s your day going so far? Is there something I can help + you with, or just saying hi?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":30,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":39,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:11:04 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request_with_override.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request_with_override.yml new file mode 100644 index 00000000..3ef76b07 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request_with_override.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"You + are an overridden assistant."}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '145' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:06 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:06Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:06Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:05Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:06Z' + Request-Id: + - req_011CczuFS7yTQPSyGsxVMz6g + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-a889a42fe65b0ae476a703a20d268874-24c795e556f3e9e6-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf6f7df3503c2-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuFSWneTUMhwWCv9Yrv","type":"message","role":"assistant","content":[{"type":"text","text":"Hi + there! What can I help you with today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":25,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":15,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:11:06 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request.yml new file mode 100644 index 00000000..4ca88b63 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"You + are a configured assistant with default instructions."}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '170' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:01 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:01Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:01Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:00Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:01Z' + Request-Id: + - req_011CczuF6KMJ8GbmuKnMyjTf + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-a1aa8710a288f787e75865a707e35619-6d14a706f5ed632f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf6dadead49ec-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuF79xeEB9MsVzLK7Jm","type":"message","role":"assistant","content":[{"type":"text","text":"I''m + here and ready to help. What can I do for you today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":29,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":20,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:11:01 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request_with_override.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request_with_override.yml new file mode 100644 index 00000000..110205b2 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request_with_override.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"You + are an overridden assistant."}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '145' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:10 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:09Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:10Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:09Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:09Z' + Request-Id: + - req_011CczuFkTHnnphCvZB6x8aD + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-40910ff3b0c1902742b99d6bcc547f33-9c5b54fe8079a142-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf712a9e837c1-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuFktan6TXFPHo7pPpU","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! + How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":25,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":13,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:11:10 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request.yml new file mode 100644 index 00000000..dfb22d0c --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request.yml @@ -0,0 +1,104 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '101' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:11 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:11Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:11Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:10Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:11Z' + Request-Id: + - req_011CczuFqQwSoq61K6gpMQJR + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-f26bed410db1c7f07a2490d39295f04d-ea728206c20a025d-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf719d9b1cfac-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuFqmmrCRS6UFhvxDam","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! + How''s it going? What can I help you with today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:11:11 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request_with_override.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request_with_override.yml new file mode 100644 index 00000000..8337ab65 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request_with_override.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"You + are an overridden assistant."}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '145' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:03 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:03Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:03Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:02Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:03Z' + Request-Id: + - req_011CczuFDmKsfropCCrZPo7T + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-dbfdc121581d47df1c474f67c1673ed3-6dba22dabb2d1c01-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf6e5ce00ad81-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuFEUz4MEyFasHuJdb1","type":"message","role":"assistant","content":[{"type":"text","text":"Hi + there! What can I help you with today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":25,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":15,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:11:03 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_mixed_auth.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_mixed_auth.yml new file mode 100644 index 00000000..d682aeb3 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_mixed_auth.yml @@ -0,0 +1,155 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages?beta=true + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + tools do you have available?","role":"user"}],"mcp_servers":[{"name":"cloudflare-demo","type":"url","url":"https://demo-day.mcp.cloudflare.com/sse"},{"name":"github-copilot","type":"url","url":"https://api.githubcopilot.com/mcp/","authorization_token":"GITHUB_MCP_TOKEN"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + Anthropic-Beta: + - mcp-client-2025-04-04 + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '425' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:01 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '9994000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:53Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '1999000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:01Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:52Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '11993000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:53Z' + Request-Id: + - req_011CczuPBHUdVxx3VnpMYHre + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-20f5d7228f430b78627509a6136026ca-df18eccab49eef46-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf9887ed44c7c-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuPPgbjo5goxsPxg2hk","type":"message","role":"assistant","content":[{"type":"text","text":"I + have a comprehensive set of tools available for working with GitHub and Cloudflare. + Here''s an overview:\n\n## GitHub Tools\n\n### Repository Management\n- **Create + repositories** - Create new GitHub repositories\n- **Fork repositories** - + Fork existing repositories\n- **Search repositories** - Find repositories + by name, description, topics, etc.\n\n### File Operations\n- **Get file contents** + - Retrieve file or directory contents from repositories\n- **Create or update + files** - Create new files or update existing ones\n- **Delete files** - Remove + files from repositories\n- **Push multiple files** - Commit multiple files + in a single operation\n\n### Branch Management\n- **List branches** - View + all branches in a repository\n- **Create branches** - Create new branches\n\n### + Commits\n- **List commits** - View commit history with filtering options\n- + **Get commit details** - Get detailed information about specific commits\n- + **Search commits** - Find commits across repositories\n\n### Issues\n- **Create/update + issues** - Create new issues or modify existing ones\n- **Read issue details** + - Get issue information, comments, sub-issues, labels\n- **Search issues** + - Find issues across repositories\n- **List issues** - View issues with filtering + and sorting\n- **Add issue comments** - Comment on issues and add reactions\n- + **List issue fields** - Get custom field definitions for issues\n- **List + issue types** - Get supported issue types\n\n### Pull Requests\n- **List pull + requests** - View pull requests with filtering\n- **Search pull requests** + - Find pull requests across repositories\n- **Get pull request details** - + Retrieve PR information, diffs, files, commits, reviews, comments, check runs\n- + **Create pull requests** - Create new PRs\n- **Update pull requests** - Modify + PR details (title, description, state, reviewers)\n- **Merge pull requests** + - Merge PRs with different strategies\n- **Update PR branch** - Sync PR branch + with base branch\n\n### Reviews\n- **Request Copilot review** - Get automated + code review from Copilot\n- **Create/submit/delete reviews** - Manage pull + request reviews\n- **Add review comments** - Comment on specific lines during + review\n- **Reply to review comments** - Respond to existing review comments\n- + **Resolve/unresolve threads** - Manage review thread status\n\n### User & + Team Management\n- **Get authenticated user info** - Retrieve current user + details\n- **Search users** - Find GitHub users\n- **Get teams** - List teams + the user is member of\n- **Get team members** - List members of a specific + team\n\n### Tags & Releases\n- **List tags** - View git tags in a repository\n- + **Get tag details** - Get information about specific tags\n- **List releases** + - View releases in a repository\n- **Get latest release** - Retrieve the most + recent release\n- **Get release by tag** - Get specific release information\n\n### + Labels\n- **Get label** - Retrieve label details\n\n### Collaboration\n- **List + repository collaborators** - View collaborators with different affiliation + filters\n\n### Code Analysis\n- **Search code** - Fast code search across + repositories using GitHub''s search engine\n- **Run secret scanning** - Scan + files and diffs for secrets, API keys, tokens, and credentials\n\n### Copilot + Features\n- **Assign Copilot to issue** - Have Copilot work on and create + a PR for an issue\n- **Create PR with Copilot** - Delegate task to Copilot + coding agent\n- **Get Copilot job status** - Check status of Copilot tasks + and retrieve PR URLs\n\n## Cloudflare Tools\n\n### Events & Demos\n- **Get + MCP Demo Day info** - Information about Cloudflare''s MCP Demo Day\n\nThese + tools enable you to manage repositories, collaborate on code, automate workflows, + search across GitHub, and handle various development tasks programmatically."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14184,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":869,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:13:01 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_multiple_servers.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_multiple_servers.yml new file mode 100644 index 00000000..6e973547 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_multiple_servers.yml @@ -0,0 +1,139 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages?beta=true + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + tools do you have available?","role":"user"}],"mcp_servers":[{"name":"cloudflare-demo","type":"url","url":"https://demo-day.mcp.cloudflare.com/sse"},{"name":"github-copilot","type":"url","url":"https://api.githubcopilot.com/mcp/","authorization_token":"GITHUB_MCP_TOKEN"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + Anthropic-Beta: + - mcp-client-2025-04-04 + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '425' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:41 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '9994000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:35Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '1999000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:41Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:35Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '11993000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:35Z' + Request-Id: + - req_011CczuMu48boxfScZ2AKwvn + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-ed51081f70fb7c6b6f1b15adb21fa880-cba913e63ca6b777-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf91bdfb115aa-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuN6PmHn9VAcy5ouqxW","type":"message","role":"assistant","content":[{"type":"text","text":"I + have a comprehensive set of tools available for working with GitHub and related + services. Here''s an overview organized by category:\n\n## GitHub Repository + Management\n- **Create & Fork**: Create new repositories, fork existing ones\n- + **Branch Management**: List branches, create new branches\n- **File Operations**: + Create, update, delete files; push multiple files in a single commit\n\n## + GitHub Issues\n- **Issue Operations**: Create, read, and update issues\n- + **Issue Search**: Search for issues across repositories\n- **Issue Fields**: + List and work with custom issue fields and types\n- **Sub-issues**: Add, remove, + and manage parent-child issue relationships\n- **Comments**: Add comments + and reactions to issues\n\n## GitHub Pull Requests\n- **PR Operations**: Create, + read, update, and merge pull requests\n- **PR Search**: Search for pull requests + across repositories\n- **PR Reviews**: Create, submit, and manage pull request + reviews\n- **Review Comments**: Add and reply to pull request review comments\n- + **PR Status**: Check commit status, check runs, and PR details\n- **PR Management**: + Update branch, list files, commits, and diffs\n\n## Code Search & Analysis\n- + **Code Search**: Fast, precise code search across GitHub repositories\n- **Commit + Search**: Find commits by message, author, date, and other criteria\n- **Secret + Scanning**: Scan files and content for exposed secrets (API keys, passwords, + tokens)\n\n## GitHub Users & Teams\n- **User Information**: Get authenticated + user details\n- **User Search**: Find GitHub users by username or profile + information\n- **Team Management**: Get team members and user team memberships\n\n## + Repository Information\n- **Repository Search**: Find repositories by name, + description, topics, etc.\n- **Collaborators**: List repository collaborators\n- + **Releases & Tags**: List releases, get specific releases/tags, list all tags\n- + **Commits**: List commits, get specific commit details\n\n## GitHub Copilot + Integration\n- **Copilot Code Review**: Request automated code review for + pull requests\n- **Copilot Agent Tasks**: Assign tasks to Copilot to create + pull requests\n- **Job Status**: Check status of Copilot coding agent jobs\n\n## + Miscellaneous\n- **Cloudflare MCP Demo Day**: Get information about Cloudflare''s + MCP Demo Day event\n\nThese tools enable me to help you with a wide range + of GitHub-related tasks, from simple operations like creating issues or reviewing + code, to complex workflows like searching across repositories and managing + pull request reviews.\n\nWhat would you like to do?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14184,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":560,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:41 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server.yml new file mode 100644 index 00000000..5c023fa7 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server.yml @@ -0,0 +1,111 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages?beta=true + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + tools do you have available?","role":"user"}],"mcp_servers":[{"name":"cloudflare-demo","type":"url","url":"https://demo-day.mcp.cloudflare.com/sse"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + Anthropic-Beta: + - mcp-client-2025-04-04 + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '225' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:29 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:28Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:29Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:28Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:28Z' + Request-Id: + - req_011CczuMRGYNVhedXypdbJZR + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-9820a96de857a999530af3511e8d63ef-3763a86c8ab404b4-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf8f33f977e0e-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuMaJ21y2DxJf7DZjXT","type":"message","role":"assistant","content":[{"type":"text","text":"I + have access to one tool:\n\n1. **cloudflare-demo_mcp_demo_day_info** - Get + information about Cloudflare''s MCP Demo Day. Use this tool if you have questions + about Cloudflare''s MCP demo day.\n\nThis tool doesn''t require any parameters + to use. If you''re interested in learning about Cloudflare''s MCP Demo Day, + I can retrieve that information for you!"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":97,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:29 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server_with_auth.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server_with_auth.yml new file mode 100644 index 00000000..7b54f5b7 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server_with_auth.yml @@ -0,0 +1,153 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages?beta=true + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + tools do you have available?","role":"user"}],"mcp_servers":[{"name":"github-copilot","type":"url","url":"https://api.githubcopilot.com/mcp/","authorization_token":"GITHUB_MCP_TOKEN"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + Anthropic-Beta: + - mcp-client-2025-04-04 + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '337' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:49 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '9994000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:42Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '1999000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:49Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:42Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '11993000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:42Z' + Request-Id: + - req_011CczuNYNCxZeBiNgMp1Byk + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-288542e551214151119adc357026d30a-d4933946e87f8764-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf9520ac5cc90-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuNbxGMUC3KmEXwx7QE","type":"message","role":"assistant","content":[{"type":"text","text":"I + have a comprehensive set of tools available for working with GitHub. Here''s + an overview of what I can do:\n\n## Repository Management\n- **Create repositories** + - Create new public or private repositories\n- **Fork repositories** - Fork + existing repositories to your account or organization\n- **Search repositories** + - Find repositories by name, description, topics, etc.\n\n## File Operations\n- + **Create/update files** - Create or update individual files in repositories\n- + **Push files** - Push multiple files in a single commit\n- **Delete files** + - Remove files from repositories\n- **Get file contents** - Read file or directory + contents\n\n## Branches & Commits\n- **Create branches** - Create new branches + in repositories\n- **List branches** - View all branches in a repository\n- + **List commits** - Get commit history with filtering options\n- **Get commit + details** - View specific commit information with patches\n- **Search commits** + - Find commits across repositories\n\n## Issues & Pull Requests\n- **Create/update + issues** - Create new issues or update existing ones\n- **Read issues** - + Get issue details, comments, sub-issues, labels\n- **List issues** - Browse + issues with filtering and pagination\n- **Search issues** - Find issues across + repositories\n- **Create pull requests** - Create new PRs with reviewers and + descriptions\n- **Read pull requests** - Get PR details, diffs, files, commits, + comments, reviews\n- **List pull requests** - Browse PRs with filtering\n- + **Search pull requests** - Find PRs across repositories\n- **Update pull requests** + - Modify PR title, description, state, reviewers\n- **Merge pull requests** + - Merge PRs with different merge strategies\n- **Update PR branch** - Sync + PR with latest base branch changes\n\n## Code Review\n- **Create/submit reviews** + - Create and submit PR reviews with approval, changes, or comments\n- **Add + review comments** - Add detailed comments to specific lines in PRs\n- **Add + issue/PR comments** - Add comments and reactions to issues and PRs\n- **Reply + to comments** - Reply to or react to existing comments\n- **Request Copilot + review** - Get automated AI-powered code review\n- **Resolve/unresolve threads** + - Manage review thread resolution\n\n## GitHub Copilot Agent\n- **Assign Copilot + to issues** - Have Copilot work on specific issues\n- **Create PR with Copilot** + - Delegate task implementation to Copilot\n- **Get Copilot job status** - + Check progress on assigned tasks\n\n## Tags & Releases\n- **List tags** - + View git tags in a repository\n- **Get tag details** - Get information about + specific tags\n- **List releases** - Browse releases in a repository\n- **Get + latest release** - Retrieve the most recent release\n- **Get release by tag** + - Get specific release by tag name\n\n## Users & Teams\n- **Get authenticated + user info** - View your GitHub profile details\n- **Search users** - Find + GitHub users by name or criteria\n- **Get team members** - List members of + a team\n- **Get user teams** - View teams a user belongs to\n- **List repository + collaborators** - View collaborators on a repository\n\n## Code Search & Security\n- + **Search code** - Fast code search across repositories\n- **Run secret scanning** + - Scan files for exposed secrets, API keys, and credentials\n\n## Custom Fields\n- + **List issue fields** - View custom issue fields for repository/organization\n- + **List issue types** - View supported issue types\n- **Get labels** - Retrieve + specific label information\n\nAll of these tools are designed to help you + interact with GitHub programmatically. Just let me know what you''d like to + do!"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14109,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":823,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:49 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_sse_server.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_sse_server.yml new file mode 100644 index 00000000..90fe0437 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/mcp_test/test_agent_common_format_sse_server.yml @@ -0,0 +1,111 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages?beta=true + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + tools do you have available?","role":"user"}],"mcp_servers":[{"name":"cloudflare-demo","type":"url","url":"https://demo-day.mcp.cloudflare.com/sse"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + Anthropic-Beta: + - mcp-client-2025-04-04 + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '225' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:32 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:31Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:32Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:31Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:31Z' + Request-Id: + - req_011CczuMf2HRB4Wt9u7dFiMo + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-8c7db6581a0f869c344cac7392f50884-48e688768d0d23a8-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf9072d36c6bb-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuMpGekXUY3owMuBBgR","type":"message","role":"assistant","content":[{"type":"text","text":"I + have one tool available:\n\n1. **cloudflare-demo_mcp_demo_day_info** - This + tool provides information about Cloudflare''s MCP Demo Day. You can use it + if you have questions about Cloudflare''s MCP demo day event.\n\nThat''s the + only tool I have access to at the moment. If you''d like to learn about Cloudflare''s + MCP Demo Day, feel free to ask!"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":100,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:32 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_base64_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_base64_bare.yml new file mode 100644 index 00000000..b71b3642 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_base64_bare.yml @@ -0,0 +1,113 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"data":"JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCgoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFJdCi9Db3VudCAxCj4+CmVuZG9iagoKMyAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL0YxIDQgMCBSCj4+Cj4+Ci9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iago8PAovTGVuZ3RoIDMwMAo+PgpzdHJlYW0KQlQKL0YxIDE2IFRmCjUwIDc1MCBUZAooSm9obiBEb2UgLSBTb2Z0d2FyZSBFbmdpbmVlcikgVGoKMCAtMzAgVGQKL0YxIDEyIFRmCihFbWFpbDogam9obi5kb2VAZXhhbXBsZS5jb20pIFRqCjAgLTIwIFRkCihQaG9uZTogKDU1NSkgMTIzLTQ1NjcpIFRqCjAgLTIwIFRkCihMb2NhdGlvbjogU2FuIEZyYW5jaXNjbywgQ0EpIFRqCjAgLTQwIFRkCi9GMSAxNCBUZgooRXhwZXJpZW5jZTopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyIGF0IFRlY2hDb3JwICgyMDIwLTIwMjQpKSBUagowIC0yMCBUZAooLSBEZXZlbG9wZWQgd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBSdWJ5IG9uIFJhaWxzKSBUagowIC0yMCBUZAooLSBMZWQgdGVhbSBvZiA1IGRldmVsb3BlcnMpIFRqCjAgLTIwIFRkCigtIEltcGxlbWVudGVkIENJL0NEIHBpcGVsaW5lcykgVGoKMCAtNDAgVGQKL0YxIDE0IFRmCihTa2lsbHM6KSBUagowIC0yNSBUZAovRjEgMTIgVGYKKFJ1YnksIFJhaWxzLCBKYXZhU2NyaXB0LCBQeXRob24sIEFXUywgRG9ja2VyKSBUagowIC00MCBUZAovRjEgMTQgVGYKKEVkdWNhdGlvbjopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooQlMgQ29tcHV0ZXIgU2NpZW5jZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSAoMjAxNi0yMDIwKSkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAowMDAwMDAwMjY5IDAwMDAwIG4gCjAwMDAwMDAzMzcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSA2Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgo2ODcKJSVFT0YK","media_type":"application/pdf","type":"base64"},"type":"document"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '1837' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:44 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '9999000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:40Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:44Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:40Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '11999000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:40Z' + Request-Id: + - req_011CczuJ1is33rYwUMGRwawh + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-9b1cc04020b327a5277acccf87b0a439-daed7a5d7a3c7198-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf7d28efa26d3-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuJ2heXWxoWPSaMPvET","type":"message","role":"assistant","content":[{"type":"text","text":"# + Document Summary\n\nThis is a **resume** for **John Doe**, a Software Engineer. + Here are the key details:\n\n## Contact Information\n- **Email:** john.doe@example.com\n- + **Phone:** (555) 123-4567\n- **Location:** San Francisco, CA\n\n## Experience\n- + **Senior Software Engineer at TechCorp** (2020-2024)\n - Developed web applications + using Ruby on Rails\n - Led a team of 5 developers\n - Implemented CI/CD + pipelines\n\n## Technical Skills\n- Ruby, Rails, JavaScript, Python, AWS, + Docker\n\n## Education\n- **BS Computer Science** from Stanford University + (2016-2020)\n\nThis is a concise, well-structured resume for a software engineer + with 4 years of professional experience and a strong technical background."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1700,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":187,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:44 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_base64_message.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_base64_message.yml new file mode 100644 index 00000000..6f7fb40f --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_base64_message.yml @@ -0,0 +1,114 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"data":"JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCgoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFJdCi9Db3VudCAxCj4+CmVuZG9iagoKMyAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL0YxIDQgMCBSCj4+Cj4+Ci9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iago8PAovTGVuZ3RoIDMwMAo+PgpzdHJlYW0KQlQKL0YxIDE2IFRmCjUwIDc1MCBUZAooSm9obiBEb2UgLSBTb2Z0d2FyZSBFbmdpbmVlcikgVGoKMCAtMzAgVGQKL0YxIDEyIFRmCihFbWFpbDogam9obi5kb2VAZXhhbXBsZS5jb20pIFRqCjAgLTIwIFRkCihQaG9uZTogKDU1NSkgMTIzLTQ1NjcpIFRqCjAgLTIwIFRkCihMb2NhdGlvbjogU2FuIEZyYW5jaXNjbywgQ0EpIFRqCjAgLTQwIFRkCi9GMSAxNCBUZgooRXhwZXJpZW5jZTopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyIGF0IFRlY2hDb3JwICgyMDIwLTIwMjQpKSBUagowIC0yMCBUZAooLSBEZXZlbG9wZWQgd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBSdWJ5IG9uIFJhaWxzKSBUagowIC0yMCBUZAooLSBMZWQgdGVhbSBvZiA1IGRldmVsb3BlcnMpIFRqCjAgLTIwIFRkCigtIEltcGxlbWVudGVkIENJL0NEIHBpcGVsaW5lcykgVGoKMCAtNDAgVGQKL0YxIDE0IFRmCihTa2lsbHM6KSBUagowIC0yNSBUZAovRjEgMTIgVGYKKFJ1YnksIFJhaWxzLCBKYXZhU2NyaXB0LCBQeXRob24sIEFXUywgRG9ja2VyKSBUagowIC00MCBUZAovRjEgMTQgVGYKKEVkdWNhdGlvbjopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooQlMgQ29tcHV0ZXIgU2NpZW5jZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSAoMjAxNi0yMDIwKSkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAowMDAwMDAwMjY5IDAwMDAwIG4gCjAwMDAwMDAzMzcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSA2Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgo2ODcKJSVFT0YK","media_type":"application/pdf","type":"base64"},"type":"document"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '1837' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:25 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '9999000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:23Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:25Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:23Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '11999000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:23Z' + Request-Id: + - req_011CczuGnijwNk6kRkekuTRs + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-897125e46ab2c592e32201c1a1f8110c-664bb9dd213106f6-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf76aba8515d0-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuGoFjpkyMqHrvz8XqB","type":"message","role":"assistant","content":[{"type":"text","text":"# + Document Summary\n\nThis is a **resume for John Doe**, a Software Engineer. + Here are the key details:\n\n## Contact Information\n- **Email:** john.doe@example.com\n- + **Phone:** (555) 123-4567\n- **Location:** San Francisco, CA\n\n## Experience\n- + **Senior Software Engineer at TechCorp** (2020-2024)\n - Developed web applications + using Ruby on Rails\n - Led a team of 5 developers\n - Implemented CI/CD + pipelines\n\n## Skills\nRuby, Rails, JavaScript, Python, AWS, Docker\n\n## + Education\n- **BS Computer Science** from Stanford University (2016-2020)\n\nThe + resume presents a qualified software engineer with recent senior-level experience, + strong technical skills in web development and cloud technologies, and a degree + from a prestigious university."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1700,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":187,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:25 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_base64_messages.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_base64_messages.yml new file mode 100644 index 00000000..2406d7c5 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_base64_messages.yml @@ -0,0 +1,114 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"data":"JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCgoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFJdCi9Db3VudCAxCj4+CmVuZG9iagoKMyAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL0YxIDQgMCBSCj4+Cj4+Ci9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iago8PAovTGVuZ3RoIDMwMAo+PgpzdHJlYW0KQlQKL0YxIDE2IFRmCjUwIDc1MCBUZAooSm9obiBEb2UgLSBTb2Z0d2FyZSBFbmdpbmVlcikgVGoKMCAtMzAgVGQKL0YxIDEyIFRmCihFbWFpbDogam9obi5kb2VAZXhhbXBsZS5jb20pIFRqCjAgLTIwIFRkCihQaG9uZTogKDU1NSkgMTIzLTQ1NjcpIFRqCjAgLTIwIFRkCihMb2NhdGlvbjogU2FuIEZyYW5jaXNjbywgQ0EpIFRqCjAgLTQwIFRkCi9GMSAxNCBUZgooRXhwZXJpZW5jZTopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyIGF0IFRlY2hDb3JwICgyMDIwLTIwMjQpKSBUagowIC0yMCBUZAooLSBEZXZlbG9wZWQgd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBSdWJ5IG9uIFJhaWxzKSBUagowIC0yMCBUZAooLSBMZWQgdGVhbSBvZiA1IGRldmVsb3BlcnMpIFRqCjAgLTIwIFRkCigtIEltcGxlbWVudGVkIENJL0NEIHBpcGVsaW5lcykgVGoKMCAtNDAgVGQKL0YxIDE0IFRmCihTa2lsbHM6KSBUagowIC0yNSBUZAovRjEgMTIgVGYKKFJ1YnksIFJhaWxzLCBKYXZhU2NyaXB0LCBQeXRob24sIEFXUywgRG9ja2VyKSBUagowIC00MCBUZAovRjEgMTQgVGYKKEVkdWNhdGlvbjopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooQlMgQ29tcHV0ZXIgU2NpZW5jZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSAoMjAxNi0yMDIwKSkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAowMDAwMDAwMjY5IDAwMDAwIG4gCjAwMDAwMDAzMzcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSA2Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgo2ODcKJSVFT0YK","media_type":"application/pdf","type":"base64"},"type":"document"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '1837' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:30 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '9999000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:29Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:30Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:28Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '11999000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:29Z' + Request-Id: + - req_011CczuH9qF8eQjA2RCxacJQ + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-061a51d837cb486210839a4c786b8077-6a8e778e69536861-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf7899a11af1b-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuHC5BkV33hb6SMgBnm","type":"message","role":"assistant","content":[{"type":"text","text":"# + Document Summary\n\nThis is a **resume/CV for John Doe**, a Software Engineer + based in San Francisco, CA.\n\n## Key Information:\n\n**Contact Details:**\n- + Email: john.doe@example.com\n- Phone: (555) 123-4567\n- Location: San Francisco, + CA\n\n**Professional Experience:**\n- Senior Software Engineer at TechCorp + (2020-2024)\n - Developed web applications using Ruby on Rails\n - Led a + team of 5 developers\n - Implemented CI/CD pipelines\n\n**Technical Skills:**\n- + Ruby, Rails, JavaScript, Python, AWS, Docker\n\n**Education:**\n- BS in Computer + Science from Stanford University (2016-2020)\n\nThis is a straightforward + professional resume highlighting recent experience in software engineering + with focus on web development and cloud technologies."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1700,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":185,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:30 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_url_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_url_bare.yml new file mode 100644 index 00000000..d1519597 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_url_bare.yml @@ -0,0 +1,108 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"type":"url","url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},"type":"document"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '261' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:46 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:45Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:46Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:44Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:45Z' + Request-Id: + - req_011CczuJNz3VaNiAQQuzRp2G + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-6d936a7cb1cf9103c057b620471cf665-13af8f96130d9669-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf7f19f3815e7-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuJQEhLCadUJ7dpXwEa","type":"message","role":"assistant","content":[{"type":"text","text":"This + document contains very minimal content. It''s a PDF file with just a heading + that reads **\"Dummy PDF file\"** at the top of the page. The rest of the + page is blank. This appears to be a test or placeholder PDF with no substantial + information or data."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1612,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":60,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:46 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_url_message.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_url_message.yml new file mode 100644 index 00000000..e58c6549 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_url_message.yml @@ -0,0 +1,107 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"type":"url","url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},"type":"document"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '261' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:27 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:26Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:27Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:26Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:26Z' + Request-Id: + - req_011CczuGz8qeZW8AyAuhUX1p + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-2d2b0b685be4cf3d0f993b629aff5078-89301f1990dd14ef-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf77a3c261be5-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuH1EKaGe7zE3MMf7bo","type":"message","role":"assistant","content":[{"type":"text","text":"This + document contains very minimal content. It''s a PDF file with just the title + **\"Dummy PDF file\"** displayed on the page. The rest of the page is blank. + It appears to be a placeholder or test PDF document with no substantive information."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1612,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":56,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:27 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_url_messages.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_url_messages.yml new file mode 100644 index 00000000..4761a44b --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_document_url_messages.yml @@ -0,0 +1,107 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"type":"url","url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},"type":"document"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '261' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:32 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:31Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:32Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:31Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:31Z' + Request-Id: + - req_011CczuHN1EAJaLsFtP1ccc4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-64e420d992bbf807755975489fc80f8f-c317b757b38b9719-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf79b5d35d019-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuHNWVLQxoBqAUqmWcn","type":"message","role":"assistant","content":[{"type":"text","text":"This + document is a minimal PDF file that contains only the text \"Dummy PDF file\" + as a heading. It appears to be a test or placeholder PDF with no additional + content beyond that single title. The rest of the page is blank."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1612,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":51,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:32 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_base64_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_base64_bare.yml new file mode 100644 index 00000000..e3014ee8 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_base64_bare.yml @@ -0,0 +1,110 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==","media_type":"image/png","type":"base64"},"type":"image"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '309' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:33 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:32Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:33Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:32Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:32Z' + Request-Id: + - req_011CczuHTtCHj4veZhpWDFSx + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-bacc689126736704a5ba4f1b32f28f99-7c946313bb9ccc04-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf7a3fee9cc90-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuHUSBbeepih4tpMzQX","type":"message","role":"assistant","content":[{"type":"text","text":"I + can see a very small, light image that appears to be a tiny dot or speck. + The image quality is quite minimal and unclear, making it difficult to identify + specific details or determine exactly what it depicts. \n\nCould you provide + a larger or clearer version of the image, or let me know what subject matter + you''re asking about? That would help me give you a more accurate and useful + response."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":17,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":86,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:33 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_base64_message.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_base64_message.yml new file mode 100644 index 00000000..a810460f --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_base64_message.yml @@ -0,0 +1,110 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==","media_type":"image/png","type":"base64"},"type":"image"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '309' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:16 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:14Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:16Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:14Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:14Z' + Request-Id: + - req_011CczuG936Bi2wqBoYyb7Ds + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-af08a61a65902b98245b612cafd57823-79df43b22e1424a0-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf733a82a9e5c-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuG9bKwoYnE9NDbNpWK","type":"message","role":"assistant","content":[{"type":"text","text":"This + image appears to be a very small, low-resolution icon or graphic. It looks + like it could be a simple geometric shape, possibly a small decorative element + or UI component, but the image is too small and unclear for me to identify + its specific contents with certainty. \n\nIf you could provide more context + about where this image is from or what it''s meant to represent, I''d be happy + to help you better understand it."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":17,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":92,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:16 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_base64_messages.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_base64_messages.yml new file mode 100644 index 00000000..4fc74051 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_base64_messages.yml @@ -0,0 +1,109 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==","media_type":"image/png","type":"base64"},"type":"image"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '309' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:23 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:22Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:23Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:21Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:22Z' + Request-Id: + - req_011CczuGgJXoKoeWukJqNXV6 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-e167716540ddcd1c15875a45da121b80-95b9817b6064a364-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf7615924ae00-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuGgs1r6SoUndEgHjd5","type":"message","role":"assistant","content":[{"type":"text","text":"This + image appears to be mostly blank or white with possibly a very small dot or + speck visible. It''s difficult to identify any meaningful content from this + image. If you''re trying to share a specific image, you may want to check + that the correct file was uploaded, as this one doesn''t contain any clearly + visible subject matter."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":17,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":69,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:23 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_url_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_url_bare.yml new file mode 100644 index 00000000..bc7f6c80 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_url_bare.yml @@ -0,0 +1,108 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"type":"url","url":"https://framerusercontent.com/images/oEx786EYW2ZVL4Xf9hparOVLjHI.png?scale-down-to=64"},"type":"image"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '269' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:18 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:17Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:18Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:16Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:17Z' + Request-Id: + - req_011CczuGJnE4YiQCNZaSHCs2 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-1997da48de6fa8663bb79ab29badfaf2-0ab1c8608db5afad-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf741ea5438ce-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuGKKUDknG1UTY3dKnh","type":"message","role":"assistant","content":[{"type":"text","text":"This + image shows the **Active Agents** logo. It features the text \"ACTIVE AGENTS\" + in black letters alongside a red icon that appears to be a stylized symbol + or emblem. The design has a clean, professional appearance typical of a business + or organizational branding."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":60,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:18 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_url_message.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_url_message.yml new file mode 100644 index 00000000..4ce2e00e --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_url_message.yml @@ -0,0 +1,108 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"type":"url","url":"https://framerusercontent.com/images/oEx786EYW2ZVL4Xf9hparOVLjHI.png?scale-down-to=64"},"type":"image"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '269' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:51 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:50Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:51Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:50Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:50Z' + Request-Id: + - req_011CczuJmuBs2A5yx4Wpxx2j + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-7e97bc9b90bbd65f2cd66302389ac124-f9a2515f31225165-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf813098b15a6-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuJnSvz56W968att27h","type":"message","role":"assistant","content":[{"type":"text","text":"This + image shows the logo for **Active Agents**. It features the text \"ACTIVE + AGENTS\" in a modern, sans-serif font. The logo includes a red icon or symbol + to the left of the text, which appears to be a stylized design element, possibly + representing movement or action, consistent with the \"Active\" name."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":73,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:51 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_url_messages.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_url_messages.yml new file mode 100644 index 00000000..3b24f2d7 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_image_url_messages.yml @@ -0,0 +1,108 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"type":"url","url":"https://framerusercontent.com/images/oEx786EYW2ZVL4Xf9hparOVLjHI.png?scale-down-to=64"},"type":"image"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '269' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:35 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:34Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:35Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:34Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:34Z' + Request-Id: + - req_011CczuHaEgmVbN3YSV5CDfr + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-3c1b5e053ed5f265bf7d242ebda29d63-049bb7496e51392c-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf7ad4a9c8075-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuHarPeuuTn2eUodWVg","type":"message","role":"assistant","content":[{"type":"text","text":"This + image shows the **Active Agents** logo. It appears to be a simple, minimalist + design featuring the text \"ACTIVE AGENTS\" in black lettering, accompanied + by a small red/maroon icon or symbol to the left of the text. The logo has + a clean, professional appearance typical of business or corporate branding."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":72,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:35 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_templates_default.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_templates_default.yml new file mode 100644 index 00000000..ddde750d --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_templates_default.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + is the capital of France?","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '118' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:16 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:16Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:16Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:16Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:16Z' + Request-Id: + - req_011CczuGGX3vjaoD7KwaieBx + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-12d1362b9490eb6aff78900163b5ccce-6e062a4aef09797c-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf73e8ca2d883-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuGGkSdUW8ZC6P5jZeN","type":"message","role":"assistant","content":[{"type":"text","text":"The + capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:16 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_templates_with_locals.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_templates_with_locals.yml new file mode 100644 index 00000000..c6901232 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_templates_with_locals.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Tell + me about Japan and its capital city Tokyo.","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '135' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:03 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:01Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:03Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:00Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:01Z' + Request-Id: + - req_011CczuKY4mdMV9cYLv8vPLb + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-314973a131bcff3b861904a1f2948367-7472cbc1ad52ed73-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf85359936037-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1S1lXNFM5RmRSSnpOMlRCRGMiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIEphcGFuIGFuZCBUb2t5b1xuXG4jIyBKYXBhbiBPdmVydmlld1xuSmFwYW4gaXMgYW4gaXNsYW5kIG5hdGlvbiBpbiBFYXN0IEFzaWEgd2l0aCBhIHBvcHVsYXRpb24gb2YgYWJvdXQgMTI1IG1pbGxpb24gcGVvcGxlLiBJdCdzIGtub3duIGZvciBibGVuZGluZyBhbmNpZW50IHRyYWRpdGlvbnMgd2l0aCBjdXR0aW5nLWVkZ2UgdGVjaG5vbG9neS4gS2V5IGNoYXJhY3RlcmlzdGljcyBpbmNsdWRlOlxuXG4tICoqR2VvZ3JhcGh5Kio6IExvY2F0ZWQgb2ZmIHRoZSBlYXN0IGNvYXN0IG9mIG1haW5sYW5kIEFzaWEsIGNvbnNpc3Rpbmcgb2YgZm91ciBtYWluIGlzbGFuZHMgKEhvbnNodSwgSG9ra2FpZG8sIEt5dXNodSwgYW5kIFNoaWtva3UpXG4tICoqR292ZXJubWVudCoqOiBDb25zdGl0dXRpb25hbCBtb25hcmNoeSB3aXRoIGEgcGFybGlhbWVudGFyeSBzeXN0ZW1cbi0gKipFY29ub215Kio6IE9uZSBvZiB0aGUgd29ybGQncyBsYXJnZXN0IGFuZCBtb3N0IGFkdmFuY2VkIGVjb25vbWllc1xuLSAqKkN1bHR1cmUqKjogUmljaCBoZXJpdGFnZSBpbiBhcnQsIG1hcnRpYWwgYXJ0cywgdGVhIGNlcmVtb25pZXMsIGFuZCBhbmltZVxuXG4jIyBUb2t5b1xuXG5Ub2t5byBpcyBKYXBhbidzIGNhcGl0YWwgYW5kIGxhcmdlc3QgY2l0eSwgc2VydmluZyBhcyB0aGUgY291bnRyeSdzIHBvbGl0aWNhbCwgZWNvbm9taWMsIGFuZCBjdWx0dXJhbCBodWIuXG5cbioqS2V5IEZhY3RzOioqXG4tICoqUG9wdWxhdGlvbioqOiBPdmVyIDM3IG1pbGxpb24gaW4gdGhlIG1ldHJvIGFyZWEsIG1ha2luZyBpdCBvbmUgb2YgdGhlIHdvcmxkJ3MgbGFyZ2VzdCB1cmJhbiBjZW50ZXJzXG4tICoqTG9jYXRpb24qKjogT24gdGhlIGVhc3Rlcm4gY29hc3Qgb2YgSG9uc2h1XG4tICoqU2lnbmlmaWNhbmNlKio6IEhvbWUgdG8gdGhlIEltcGVyaWFsIFBhbGFjZSwgbmF0aW9uYWwgZ292ZXJubWVudCwgYW5kIG1ham9yIGNvcnBvcmF0aW9uc1xuXG4qKk5vdGFibGUgRmVhdHVyZXM6Kipcbi0gSGlzdG9yaWMgdGVtcGxlcyBhbmQgc2hyaW5lcyBhbG9uZ3NpZGUgbW9kZXJuIHNreXNjcmFwZXJzXG4tIFdvcmxkLWNsYXNzIHJlc3RhdXJhbnRzIGFuZCBjdWlzaW5lXG4tIERpc3RyaWN0cyBsaWtlIFNoaWJ1eWEgKHRyZW5keSksIEFzYWt1c2EgKHRyYWRpdGlvbmFsKSwgYW5kIFNoaW5qdWt1IChidXN0bGluZyBjb21tZXJjaWFsKVxuLSBBZHZhbmNlZCBwdWJsaWMgdHJhbnNwb3J0YXRpb24gc3lzdGVtXG4tIFRlY2hub2xvZ3kgYW5kIGlubm92YXRpb24gaHViXG5cblRva3lvIHBlcmZlY3RseSBlbWJvZGllcyBKYXBhbidzIGNoYXJhY3RlcuKAlHNlYW1sZXNzbHkgbWVyZ2luZyBjZW50dXJpZXMtb2xkIHRyYWRpdGlvbnMgd2l0aCBmdXR1cmlzdGljIGRldmVsb3BtZW50LiJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInN0b3BfZGV0YWlscyI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjoxNywiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfY3JlYXRpb24iOnsiZXBoZW1lcmFsXzVtX2lucHV0X3Rva2VucyI6MCwiZXBoZW1lcmFsXzFoX2lucHV0X3Rva2VucyI6MH0sIm91dHB1dF90b2tlbnMiOjMxMiwic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoibm90X2F2YWlsYWJsZSJ9fQ== + recorded_at: Mon, 13 Jul 2026 23:12:03 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_bare.yml new file mode 100644 index 00000000..d5e73acf --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_bare.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + is the capital of France?","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '118' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:28 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:27Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:28Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:27Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:27Z' + Request-Id: + - req_011CczuH715vTtsFJoTJ2Uhu + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-1ba7560433fa0900d6bf847eececf541-cde93fdd70486971-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf7855df9fa56-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuH7hWRfNdJbExqpV7H","type":"message","role":"assistant","content":[{"type":"text","text":"The + capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:28 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_message_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_message_bare.yml new file mode 100644 index 00000000..84bda87e --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_message_bare.yml @@ -0,0 +1,120 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Explain + quantum computing in bare terms.","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '128' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:56 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:52Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:56Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:51Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:52Z' + Request-Id: + - req_011CczuJtb2LbgSGs4EcRvF6 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-3b74c4d82a93825ef9a9fbf27c197053-4a1baa9a538a279f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf81cc8dbcc7e-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuJu3JwiZp9iWsaQSWv","type":"message","role":"assistant","content":[{"type":"text","text":"# + Quantum Computing Basics\n\n## Regular computers use bits\n- Each bit is either + **0 or 1**\n- All calculations built from these binary choices\n\n## Quantum + computers use qubits\n- A qubit can be **0, 1, or both simultaneously** (called + \"superposition\")\n- This is the key difference\n\n## Why it matters\n- A + regular bit: solves one path at a time\n- A qubit: explores many paths at + once\n\n**Simple analogy:** Imagine a maze. A regular computer tries one route, + hits a dead end, backtracks, tries another. A quantum computer walks all routes + simultaneously and finds the exit faster.\n\n## The catch\n- Qubits are extremely + fragile and sensitive to interference\n- They \"collapse\" into 0 or 1 when + measured\n- Currently limited in what problems they can solve better than + regular computers\n- Need extreme cold to operate (~near absolute zero)\n\n## + Practical impact (so far)\n- **Good at:** drug discovery, optimization problems, + cryptography\n- **Not good at:** everything regular computers do (email, video, + gaming)\n- Still mostly experimental technology\n\n**Bottom line:** They''re + incredibly fast at specific puzzle-solving tasks, but not replacements for + your laptop."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":15,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":279,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:56 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_message_object.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_message_object.yml new file mode 100644 index 00000000..59a08337 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_message_object.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + are the main differences between Ruby and Python?","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '142' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:21 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:18Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:21Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:18Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:18Z' + Request-Id: + - req_011CczuGQm9PWEqjeznC4WoK + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-409e6dd51459fc51b27c8892c438507d-c60e696b8923d241-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf74aab225f02-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1R1F6M1BXVFE0eFRBY3BadGgiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIE1haW4gRGlmZmVyZW5jZXMgQmV0d2VlbiBSdWJ5IGFuZCBQeXRob25cblxuIyMgUGhpbG9zb3BoeSAmIERlc2lnblxuLSAqKlB5dGhvbioqOiBcIlRoZXJlIHNob3VsZCBiZSBvbmUgb2J2aW91cyB3YXkgdG8gZG8gaXRcIiDigJMgZW1waGFzaXplcyBjbGFyaXR5IGFuZCBvbmUgYmVzdCBzb2x1dGlvblxuLSAqKlJ1YnkqKjogXCJUaGVyZSBzaG91bGQgYmUgbW9yZSB0aGFuIG9uZSB3YXlcIiDigJMgY2VsZWJyYXRlcyBmbGV4aWJpbGl0eSBhbmQgcHJvZ3JhbW1lciBjcmVhdGl2aXR5XG5cbiMjIFN5bnRheCAmIFJlYWRhYmlsaXR5XG4tICoqUHl0aG9uKio6IEVuZm9yY2VzIGluZGVudGF0aW9uIGZvciBjb2RlIGJsb2NrczsgbWluaW1hbCBzcGVjaWFsIGNoYXJhY3RlcnNcbi0gKipSdWJ5Kio6IFVzZXMgZXhwbGljaXQgYGVuZGAga2V5d29yZHM7IGFsbG93cyBtb3JlIHN5bnRhY3RpYyB2YXJpYXRpb24gYW5kIHN5bWJvbHMgKGA6c3ltYm9sYClcblxuIyMgUGVyZm9ybWFuY2Vcbi0gKipQeXRob24qKjogR2VuZXJhbGx5IGZhc3RlciBleGVjdXRpb24sIGVzcGVjaWFsbHkgd2l0aCBsaWJyYXJpZXMgbGlrZSBOdW1QeVxuLSAqKlJ1YnkqKjogU2xvd2VyIHJ1bnRpbWUsIHRob3VnaCBhZGVxdWF0ZSBmb3IgbW9zdCB3ZWIgYXBwbGljYXRpb25zXG5cbiMjIFByaW1hcnkgVXNlIENhc2VzXG4tICoqUHl0aG9uKio6IERhdGEgc2NpZW5jZSwgbWFjaGluZSBsZWFybmluZywgc2NyaXB0aW5nLCB3ZWIgZGV2ZWxvcG1lbnQsIGF1dG9tYXRpb25cbi0gKipSdWJ5Kio6IFdlYiBkZXZlbG9wbWVudCAoUmFpbHMgZnJhbWV3b3JrKSwgc2NyaXB0aW5nLCBEZXZPcHNcblxuIyMgV2ViIEZyYW1ld29ya3Ncbi0gKipQeXRob24qKjogRGphbmdvLCBGbGFzayAoZmxleGlibGUsIGJhdHRlcmllcy1pbmNsdWRlZCB2cy4gbGlnaHR3ZWlnaHQpXG4tICoqUnVieSoqOiBSYWlscyAob3BpbmlvbmF0ZWQsIGNvbnZlbnRpb24tb3Zlci1jb25maWd1cmF0aW9uKVxuXG4jIyBDb21tdW5pdHkgJiBFY29zeXN0ZW1cbi0gKipQeXRob24qKjogTGFyZ2VyIGNvbW11bml0eTsgdmFzdCBsaWJyYXJpZXMgZm9yIHNjaWVudGlmaWMgY29tcHV0aW5nXG4tICoqUnVieSoqOiBTbWFsbGVyIGJ1dCBwYXNzaW9uYXRlIGNvbW11bml0eTsgc3Ryb25nIFJhaWxzIGVjb3N5c3RlbVxuXG4jIyBMZWFybmluZyBDdXJ2ZVxuLSAqKlB5dGhvbioqOiBHZW5lcmFsbHkgY29uc2lkZXJlZCBlYXNpZXIgZm9yIGJlZ2lubmVyc1xuLSAqKlJ1YnkqKjogTW9yZSBleHByZXNzaXZlIGJ1dCBwb3RlbnRpYWxseSBtb3JlIHRvIGxlYXJuXG5cbiMjIEtleSBUYWtlYXdheVxuQ2hvb3NlICoqUHl0aG9uKiogZm9yIGRhdGEgc2NpZW5jZSwgbWFjaGluZSBsZWFybmluZywgb3IgZ2VuZXJhbC1wdXJwb3NlIHByb2dyYW1taW5nLiBDaG9vc2UgKipSdWJ5KiogKGVzcGVjaWFsbHkgUmFpbHMpIGZvciByYXBpZCB3ZWIgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQuIn1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjE3LCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6MzIzLCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCIsImluZmVyZW5jZV9nZW8iOiJub3RfYXZhaWxhYmxlIn19 + recorded_at: Mon, 13 Jul 2026 23:11:21 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_messages_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_messages_bare.yml new file mode 100644 index 00000000..c8ad3dfb --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_messages_bare.yml @@ -0,0 +1,106 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"Tell + me a fun fact about Ruby programming.","type":"text"},{"text":"Now explain + why that''s interesting.","type":"text"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '216' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:39 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:35Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:39Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:35Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:35Z' + Request-Id: + - req_011CczuHgis2aoaQiBK6pUnN + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-20a8aa865992c6f6572dea84a333bdb1-865f905dd66427eb-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf7b6cd0e7396-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1SGd5ektIclZEbWk1SHJOdWQiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIEZ1biBGYWN0OiBSdWJ5J3MgQ3JlYXRvciBXYW50ZWQgYSBcIkZ1blwiIExhbmd1YWdlXG5cblJ1Ynkgd2FzIGNyZWF0ZWQgYnkgWXVraWhpcm8gTWF0c3Vtb3RvIGluIDE5OTUgc3BlY2lmaWNhbGx5IHRvIG1ha2UgcHJvZ3JhbW1lcnMgaGFwcHkuIEhlIG5hbWVkIGl0IFwiUnVieVwiIChpbnNwaXJlZCBieSB0aGUgZ2Vtc3RvbmUpIGFuZCBkZXNpZ25lZCBpdCB0byBwcmlvcml0aXplICpkZXZlbG9wZXIgaGFwcGluZXNzKiBvdmVyIHJhdyBleGVjdXRpb24gc3BlZWTigJRhbGxvd2luZyBmb3IgcmVhZGFibGUsIGVsZWdhbnQgY29kZSB0aGF0IGZlZWxzIG1vcmUgbGlrZSB3cml0aW5nIEVuZ2xpc2ggdGhhbiB0cmFkaXRpb25hbCBwcm9ncmFtbWluZy5cblxuIyMgV2h5IFRoYXQncyBJbnRlcmVzdGluZzpcblxuKipJdCBpbnZlcnRlZCB0eXBpY2FsIHByb2dyYW1taW5nIHByaW9yaXRpZXMuKiogTW9zdCBsYW5ndWFnZXMgd2VyZSBvcHRpbWl6ZWQgZm9yIGNvbXB1dGVyIGVmZmljaWVuY3kgb3IgbWF0aGVtYXRpY2FsIHB1cml0eS4gTWF0c3Vtb3RvIHNhaWQ6ICpcIldoYXQgaWYgd2Ugb3B0aW1pemVkIGZvciBodW1hbiBqb3kgaW5zdGVhZD9cIipcblxuVGhpcyBkZXNpZ24gcGhpbG9zb3BoeSBjYXNjYWRlZCBpbnRvIFJ1YnkncyBlbnRpcmUgZWNvc3lzdGVtOlxuXG4tICoqUmVhZGFibGUgc3ludGF4KiogLSBgYXJyYXkuZWFjaCB7IHxpdGVtfCBwdXRzIGl0ZW0gfWAgaW5zdGVhZCBvZiB2ZXJib3NlIGxvb3BzXG4tICoqQWN0aXZlIFJhaWxzKiogLSBXZWIgZGV2ZWxvcG1lbnQgYmVjYW1lIGRyYW1hdGljYWxseSBmYXN0ZXJcbi0gKipDb21tdW5pdHkgY3VsdHVyZSoqIC0gVGhlIGxhbmd1YWdlIGFjdGl2ZWx5IGF0dHJhY3RzIHBlb3BsZSB3aG8gdmFsdWUgZWxlZ2FudCBzb2x1dGlvbnMgYW5kIGNvbGxhYm9yYXRpb25cbi0gKipSZWFsIGJ1c2luZXNzIGltcGFjdCoqIC0gQ29tcGFuaWVzIGxpa2UgR2l0SHViLCBBaXJibmIsIGFuZCBTaG9waWZ5IHdlcmUgYnVpbHQgb24gUnVieSBiZWNhdXNlIHRoZSBoYXBwaW5lc3MgZmFjdG9yIG1lYW50IGRldmVsb3BlcnMgY291bGQgbW92ZSBmYXN0ZXJcblxuSXQncyBhIHJlbWluZGVyIHRoYXQgKipjb25zdHJhaW50cyB3ZSB0aGluayBhcmUgbmVjZXNzYXJ5IG9mdGVuIGFyZW4ndCoqLiBCeSBhc2tpbmcgXCJ3aGF0IGlmIHdlIHByaW9yaXRpemVkIGRpZmZlcmVudGx5P1wiIE1hdHN1bW90byBjcmVhdGVkIHNvbWV0aGluZyB0aGF0IGluZmx1ZW5jZWQgaG93IGFuIGVudGlyZSBnZW5lcmF0aW9uIHRoaW5rcyBhYm91dCBzb2Z0d2FyZSBkZXNpZ24uIEl0IHNob3dzIHRoYXQgc29tZXRpbWVzIHRoZSBtb3N0IFwiaW1wcmFjdGljYWxcIiBjaG9pY2XigJRvcHRpbWl6aW5nIGZvciBqb3nigJRjcmVhdGVzIGVub3Jtb3VzIHByYWN0aWNhbCB2YWx1ZS4ifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6MjMsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjozMDUsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Im5vdF9hdmFpbGFibGUifX0= + recorded_at: Mon, 13 Jul 2026 23:11:39 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_messages_object.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_messages_object.yml new file mode 100644 index 00000000..45ffc533 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_text_messages_object.yml @@ -0,0 +1,124 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"I + can help you with programming questions.","role":"assistant"},{"content":"What + are the benefits of using ActiveRecord?","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '208' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:11:50 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:46Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:11:50Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:46Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:46Z' + Request-Id: + - req_011CczuJVq45WhSxVqSStPLy + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-c6d9bea37a081ccb52aeddd9de5965aa-1a3d539164ab1c4a-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf7fb99b57e56-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuJW5vwmQzWZm5a8pHQ","type":"message","role":"assistant","content":[{"type":"text","text":"# + Benefits of ActiveRecord\n\nActiveRecord is Ruby on Rails'' Object-Relational + Mapping (ORM) library. Here are its main benefits:\n\n## 1. **Simplified Database + Interactions**\n- Write less SQL code\n- Use Ruby objects instead of raw SQL + queries\n- More intuitive and readable code\n\n## 2. **Reduced Development + Time**\n- Automatic CRUD operations (Create, Read, Update, Delete)\n- Built-in + validations and callbacks\n- Migrations handle schema changes\n\n## 3. **Database + Agnostic**\n- Switch between databases (PostgreSQL, MySQL, SQLite) with minimal + code changes\n- Same Rails code works across different databases\n\n## 4. + **Built-in Security**\n- Protection against SQL injection through parameterized + queries\n- Input validation and sanitization\n\n## 5. **Powerful Query Interface**\n```ruby\n# + Instead of SQL:\nUser.where(age: 25).order(:created_at).limit(10)\nUser.joins(:posts).where(posts: + { published: true })\n```\n\n## 6. **Associations**\n- Easy relationship management + (has_many, belongs_to, has_and_belongs_to_many)\n- Automatic foreign key handling\n\n## + 7. **Callbacks & Hooks**\n```ruby\nbefore_save :validate_data\nafter_create + :send_welcome_email\n```\n\n## 8. **Migration Support**\n- Version control + for database schema\n- Easy rollback capabilities\n\n## 9. **Convention Over + Configuration**\n- Less boilerplate code needed\n- Follows predictable naming + conventions\n\n**Trade-off:** Can have performance overhead for complex queries + compared to raw SQL."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":39,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":381,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:11:50 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_texts_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_texts_bare.yml new file mode 100644 index 00000000..cb667e4c --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/messages_test/test_agent_texts_bare.yml @@ -0,0 +1,106 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"Tell + me a fun fact about Ruby programming.","type":"text"},{"text":"Now explain + why that''s interesting.","type":"text"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '216' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:00 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:11:56Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:00Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:11:56Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:11:56Z' + Request-Id: + - req_011CczuKDek3yqNfaiDbzNX8 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-32b5c6690e2f57724cd0204965f6bc72-b6c380eccf9ea510-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf838bb736c48-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1S0R1Y2toWE1mTDJtR2V3elQiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIEZ1biBGYWN0OiBSdWJ5IEhhcyBcIk1vbmtleSBQYXRjaGluZ1wiXG5cbkluIFJ1YnksIHlvdSBjYW4gbW9kaWZ5IG9yIGFkZCBtZXRob2RzIHRvIGV4aXN0aW5nIGNsYXNzZXPigJRldmVuIGJ1aWx0LWluIG9uZXPigJRhdCBydW50aW1lLiBGb3IgZXhhbXBsZTpcblxuYGBgcnVieVxuY2xhc3MgU3RyaW5nXG4gIGRlZiBzaG91dFxuICAgIHNlbGYudXBjYXNlICsgXCIhISFcIlxuICBlbmRcbmVuZFxuXG5cImhlbGxvXCIuc2hvdXQgICMgPT4gXCJIRUxMTyEhIVwiXG5gYGBcblxuWW91IGp1c3QgZ2F2ZSB0aGUgYFN0cmluZ2AgY2xhc3MgYSBicmFuZCBuZXcgbWV0aG9kIHRoYXQgZGlkbid0IGV4aXN0IGJlZm9yZS5cblxuIyMgV2h5IFRoYXQncyBJbnRlcmVzdGluZ1xuXG4qKlRoaXMgaXMgd2lsZCBiZWNhdXNlIGl0IGJyZWFrcyB3aGF0IG1vc3QgcHJvZ3JhbW1lcnMgZXhwZWN0LioqIEluIGxhbmd1YWdlcyBsaWtlIEphdmEgb3IgQyMsIGEgY2xhc3MgaXMgc2VhbGVkIG9uY2UgaXQncyBkZWZpbmVkLiBZb3UgY2FuJ3QganVzdCBhZGQgbWV0aG9kcyB0byBgU3RyaW5nYCBhZnRlciB0aGUgZmFjdC5cblxuVGhpcyBtYWtlcyBSdWJ5IGZlZWwgaW5jcmVkaWJseSBmbGV4aWJsZSBhbmQgZXhwcmVzc2l2ZeKAlHlvdSBjYW4gYmVuZCB0aGUgbGFuZ3VhZ2UgdG8gZml0IHlvdXIgcHJvYmxlbS4gSXQncyB3aHkgUmFpbHMgY2FuIGRvIG1hZ2ljYWwgdGhpbmdzIGxpa2UgYDUuZGF5cy5hZ29gIChhZGRpbmcgbWV0aG9kcyB0byB0aGUgYEludGVnZXJgIGNsYXNzKS5cblxuKipCdXQgaGVyZSdzIHRoZSBjYXRjaDoqKiB0aGlzIHBvd2VyIGlzIGRhbmdlcm91cy4gSWYgbXVsdGlwbGUgbGlicmFyaWVzIG1vbmtleSBwYXRjaCB0aGUgc2FtZSBjbGFzcyBkaWZmZXJlbnRseSwgeW91IGdldCBjaGFvcy4gSXQncyBsaWtlIGV2ZXJ5b25lIGF0IGEgcGFydHkgYWdyZWVpbmcgdG8gY2hhbmdlIHRoZSBydWxlcyBvZiBNb25vcG9seSBtaWQtZ2FtZS5cblxuU28gbW9ua2V5IHBhdGNoaW5nIGlzIGJlbG92ZWQgZm9yIG1ha2luZyBlbGVnYW50IGNvZGUgcG9zc2libGUsIGJ1dCBmZWFyZWQgZm9yIHRoZSBkZWJ1Z2dpbmcgbmlnaHRtYXJlcyBpdCBjYW4gY3JlYXRlLiBJdCdzIGEgcGVyZmVjdCBleGFtcGxlIG9mIFJ1YnkncyBwaGlsb3NvcGh5OiAqKnRydXN0IHRoZSBwcm9ncmFtbWVyIHRvIGJlIHNtYXJ0LCBidXQgdGhleSBtaWdodCBzaG9vdCB0aGVtc2VsdmVzIGluIHRoZSBmb290LioqIPCflKsifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6MjMsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjozMDksInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Im5vdF9hdmFpbGFibGUifX0= + recorded_at: Mon, 13 Jul 2026 23:12:00 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_object.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_object.yml new file mode 100644 index 00000000..46587fd5 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_object.yml @@ -0,0 +1,106 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + a JSON object with three primary colors in an array named ''colors''.","role":"user"},{"content":"Here + is the JSON requested:\n{","role":"assistant"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '226' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:17 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:17Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:17Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:16Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:17Z' + Request-Id: + - req_011CczuLjm1LQpCPGpDQGRVT + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-4662bcd5274ba04ecf2c120cfe921d86-bb756d18cebe3ea0-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf8b98c5bae99-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuLjztv29EdUUS2cKjb","type":"message","role":"assistant","content":[{"type":"text","text":"\n \"colors\": + [\"red\", \"blue\", \"yellow\"]\n}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":31,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:17 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_object_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_object_bare.yml new file mode 100644 index 00000000..555f091c --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_object_bare.yml @@ -0,0 +1,106 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + a JSON object with three primary colors in an array named ''colors''.","role":"user"},{"content":"Here + is the JSON requested:\n{","role":"assistant"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '226' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:18 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:17Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:18Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:17Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:17Z' + Request-Id: + - req_011CczuLnQ1VScWYQbZWbkB9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-34067949fc14f337d1ed81150c82820a-4b2e2700f46cbecb-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf8bd6be0b7dd-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuLneteQpBM5ZehihBd","type":"message","role":"assistant","content":[{"type":"text","text":"\n \"colors\": + [\"red\", \"blue\", \"yellow\"]\n}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":31,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:17 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit.yml new file mode 100644 index 00000000..1768159f --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit.yml @@ -0,0 +1,104 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + the three primary colors.","role":"user"}],"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '315' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:20 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:20Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:20Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:19Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:20Z' + Request-Id: + - req_011CczuLxbgKnFDoeLYA521o + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-8df553f07fe263582948b2f9690769aa-0dc749197553262d-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf8cc4a70fb50-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuLyBA4LgXqxLr6Lkv1","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":14,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:20 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit_bare.yml new file mode 100644 index 00000000..5a3c01a8 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit_bare.yml @@ -0,0 +1,104 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + the three primary colors.","role":"user"}],"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '315' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:23 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:23Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:23Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:22Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:23Z' + Request-Id: + - req_011CczuMAEQvWftFvzP3CMjv + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-647c3333a00e7b0945158285120473f0-5c4c85940518629f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf8dd5d75cf13-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuMAzJov2Jker3ds7P8","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":14,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:23 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_inline.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_inline.yml new file mode 100644 index 00000000..d4bac6d5 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_inline.yml @@ -0,0 +1,104 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + the three primary colors.","role":"user"}],"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '315' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:18 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:18Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:18Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:18Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:18Z' + Request-Id: + - req_011CczuLqDvPZRq7ShrSkAFW + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-34f4005b711e9adf9d4795dfad53f2cf-00da047e8850e9cf-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf8c18ab63ecb-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuLqo9PMAtAFxZ6VAQF","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":14,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:18 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_named.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_named.yml new file mode 100644 index 00000000..0e59575f --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_named.yml @@ -0,0 +1,104 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + the three primary colors.","role":"user"}],"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '315' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:21 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:21Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:21Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:20Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:21Z' + Request-Id: + - req_011CczuM1zpR9s5WLuzK7WgA + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-2d4560ef18af73bb502ef71285570f61-75020088eaade04f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf8d14d812ca1-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuM2Y4Nz124mRs8u9Lr","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":14,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:21 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_text.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_text.yml new file mode 100644 index 00000000..db1cf984 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_text.yml @@ -0,0 +1,107 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"List + three primary colors.","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '114' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:19 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:19Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:19Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:19Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:19Z' + Request-Id: + - req_011CczuLtYbgmsgVPcd5j24D + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-4b1e34d3a3901331cb1796e517ba9f3c-85dce2c3574694ea-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf8c66b3bf98f-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuLtoUam6Nr3XFHoD7h","type":"message","role":"assistant","content":[{"type":"text","text":"The + three primary colors are:\n\n1. **Red**\n2. **Yellow**\n3. **Blue**\n\nThese + colors cannot be created by mixing other colors together, and all other colors + can be theoretically created by combining them."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":52,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:19 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_text_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_text_bare.yml new file mode 100644 index 00000000..70067e96 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/response_format_test/test_agent_response_text_bare.yml @@ -0,0 +1,107 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"List + three primary colors.","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '114' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:22 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:21Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:22Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:21Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:21Z' + Request-Id: + - req_011CczuM5bcXC1Nhsfrz3T6i + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-2c9d3723a7ac5ba2ef7f5e4517b717e2-f3e308612444b868-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf8d699b426d3-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuM5qFLzoGvqT23G3Hu","type":"message","role":"assistant","content":[{"type":"text","text":"The + three primary colors are:\n\n1. **Red**\n2. **Yellow**\n3. **Blue**\n\nThese + are the traditional primary colors in the RYB (Red-Yellow-Blue) color model, + commonly taught in art and education."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":56,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:22 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_input_schema.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_input_schema.yml new file mode 100644 index 00000000..35bfb9f8 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_input_schema.yml @@ -0,0 +1,213 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather in Boston?","role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather in a given location"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '370' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:06 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:06Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:06Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:05Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:06Z' + Request-Id: + - req_011CczuKuWcU6SnP1yrZpsja + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-a0399e26e24a62e37a20b6d624169d39-3d0564c14ec08de2-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf8730cfb0b82-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuKukznQcovUGxtosqS","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017EzYwizfovEojrAHEbFxq2","name":"get_weather","input":{"location":"Boston, + MA"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":584,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":56,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:06 GMT +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather in Boston?","role":"user"},{"content":[{"id":"toolu_017EzYwizfovEojrAHEbFxq2","input":{"location":"Boston, + MA"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_017EzYwizfovEojrAHEbFxq2","type":"tool_result","content":"{\"location\":\"Boston, + MA\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather in a given location"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '751' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:07 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:06Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:07Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:06Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:06Z' + Request-Id: + - req_011CczuKxrn4q8YjVcYNyKY4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-875a33b6061cf387023a7234a9b23f72-20ee394014664a6b-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf877efdde16d-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1S3lETXV1bUFjVlNxc3B6WkMiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBpbiBCb3N0b24sIE1BIGlzIGN1cnJlbnRseSAqKnN1bm55Kiogd2l0aCBhIHRlbXBlcmF0dXJlIG9mICoqNzLCsEYqKi4ifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6NjY5LCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6MjMsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Im5vdF9hdmFpbGFibGUifX0= + recorded_at: Mon, 13 Jul 2026 23:12:07 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_multiple_tools.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_multiple_tools.yml new file mode 100644 index 00000000..23df4e8b --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_multiple_tools.yml @@ -0,0 +1,210 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather in NYC and what''s 5 plus 3?","role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather"},{"input_schema":{"type":"object","properties":{"operation":{"type":"string","enum":["add","subtract","multiply","divide"]},"a":{"type":"number"},"b":{"type":"number"}},"required":["operation","a","b"]},"name":"calculate","description":"Perform + basic arithmetic"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '571' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:12 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:12Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:12Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:11Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:12Z' + Request-Id: + - req_011CczuLLQ5FfyuMFXZtBvdV + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-0e2ee805a0c4e843a7765a43ae2fd2d3-9bde81ab65bd388f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf8976b31fa66-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuLLdiLY4NFKBBvfN4R","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01TyyYyNqkhYcp2EyRVfaG1G","name":"get_weather","input":{"location":"NYC"},"caller":{"type":"direct"}},{"type":"tool_use","id":"toolu_01L2Eu6TgwJ5xEi8SeuG4Jsn","name":"calculate","input":{"operation":"add","a":5,"b":3},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":662,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":122,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:12 GMT +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather in NYC and what''s 5 plus 3?","role":"user"},{"content":[{"id":"toolu_01TyyYyNqkhYcp2EyRVfaG1G","input":{"location":"NYC"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}},{"id":"toolu_01L2Eu6TgwJ5xEi8SeuG4Jsn","input":{"operation":"add","a":5,"b":3},"name":"calculate","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01TyyYyNqkhYcp2EyRVfaG1G","type":"tool_result","content":"{\"location\":\"NYC\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false},{"tool_use_id":"toolu_01L2Eu6TgwJ5xEi8SeuG4Jsn","type":"tool_result","content":"{\"operation\":\"add\",\"a\":5,\"b\":3,\"result\":8}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather"},{"input_schema":{"type":"object","properties":{"operation":{"type":"string","enum":["add","subtract","multiply","divide"]},"a":{"type":"number"},"b":{"type":"number"}},"required":["operation","a","b"]},"name":"calculate","description":"Perform + basic arithmetic"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '1234' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:13 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:12Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:13Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:12Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:12Z' + Request-Id: + - req_011CczuLQeZaDrHA13st4A6e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-52dec36f3711bbb60c5c98fe554841fd-2e7f6d59418e28dd-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf89d99947834-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1TFJFWHhDb0F0RWMxeDNqVHYiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJHcmVhdCEgSGVyZSBhcmUgdGhlIGFuc3dlcnM6XG5cbioqV2VhdGhlciBpbiBOWUM6KiogSXQncyBjdXJyZW50bHkgNzLCsEYgYW5kIHN1bm55LlxuXG4qKjUgcGx1cyAzOioqIFRoZSBhbnN3ZXIgaXMgKio4KiouIn1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjg3NiwiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfY3JlYXRpb24iOnsiZXBoZW1lcmFsXzVtX2lucHV0X3Rva2VucyI6MCwiZXBoZW1lcmFsXzFoX2lucHV0X3Rva2VucyI6MH0sIm91dHB1dF90b2tlbnMiOjQwLCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCIsImluZmVyZW5jZV9nZW8iOiJub3RfYXZhaWxhYmxlIn19 + recorded_at: Mon, 13 Jul 2026 23:12:13 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_parameters.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_parameters.yml new file mode 100644 index 00000000..6de38355 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_parameters.yml @@ -0,0 +1,213 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather in San Francisco?","role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather in a given location"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '377' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:07 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:07Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:07Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:07Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:07Z' + Request-Id: + - req_011CczuL2JeLwaaKq4eq2DPN + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-5b1029d9668a3ec4969f8ca6ef502d2d-956059e6ab2bbd33-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf87cfd110c60-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuL2gDoJpcHP3EL1giP","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Y2gP1swP2H9ZfMzh3sJxqq","name":"get_weather","input":{"location":"San + Francisco, CA"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":57,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:07 GMT +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather in San Francisco?","role":"user"},{"content":[{"id":"toolu_01Y2gP1swP2H9ZfMzh3sJxqq","input":{"location":"San + Francisco, CA"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01Y2gP1swP2H9ZfMzh3sJxqq","type":"tool_result","content":"{\"location\":\"San + Francisco, CA\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather in a given location"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '772' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:08 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:08Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:08Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:08Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:08Z' + Request-Id: + - req_011CczuL5mFtkwNWTJMTw4iG + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-2addb19ec7d26e1e278dc8318cffa455-d63c4e842f578916-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf881fbe2f457-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1TDZQaTYzV3dFZmQ3R2ZldTciLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBpbiBTYW4gRnJhbmNpc2NvLCBDQSBpcyBjdXJyZW50bHk6XG4tICoqVGVtcGVyYXR1cmUqKjogNzLCsEZcbi0gKipDb25kaXRpb25zKio6IFN1bm55XG5cbkl0J3MgYSBiZWF1dGlmdWwgZGF5IG91dCB0aGVyZSEifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6NjcyLCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6MzksInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Im5vdF9hdmFpbGFibGUifX0= + recorded_at: Mon, 13 Jul 2026 23:12:08 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_auto.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_auto.yml new file mode 100644 index 00000000..cb608344 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_auto.yml @@ -0,0 +1,107 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather?","role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}],"tool_choice":{"type":"auto"}}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '299' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:11 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:11Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:11Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:10Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:11Z' + Request-Id: + - req_011CczuLGrkciZ4othojL2Z8 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-6bafee455f04006e9dd0a12282638f1d-20d9ad3e1d2bd2f3-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf8923a6a483d-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuLH9NF7FTZWYzhaoxz","type":"message","role":"assistant","content":[{"type":"text","text":"I''d + be happy to help you with the weather! However, I need to know which location + you''d like the weather for. Could you please provide a city or location name?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":558,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":39,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:11 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_required.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_required.yml new file mode 100644 index 00000000..4dd1a181 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_required.yml @@ -0,0 +1,211 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather?","role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}],"tool_choice":{"type":"any"}}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '298' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:13 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:13Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:13Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:13Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:13Z' + Request-Id: + - req_011CczuLUs4rPTDTwzo69rNq + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-a38e6b9866367b846fc09a097e166902-8452bde11c10cd51-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf8a3ab25300b-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuLV7CKZK82yVUsU9X1","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_016v4zQeCHsr6RBUk3d5LAPj","name":"get_weather","input":{"location":"current + location"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":650,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":39,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:13 GMT +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather?","role":"user"},{"content":[{"id":"toolu_016v4zQeCHsr6RBUk3d5LAPj","input":{"location":"current + location"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_016v4zQeCHsr6RBUk3d5LAPj","type":"tool_result","content":"{\"location\":\"current + location\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '662' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:14 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:14Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:14Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:14Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:14Z' + Request-Id: + - req_011CczuLXfywh8jFAthVP5KQ + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-52018fe4b4d6e90de0fa0a5de84ceba1-e954d45553cde54c-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf8a7ed075e55-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1TFh1ODZ4RVBFTUxQdU1QcUQiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBhdCB5b3VyIGN1cnJlbnQgbG9jYXRpb24gaXM6XG4tICoqVGVtcGVyYXR1cmUqKjogNzLCsEZcbi0gKipDb25kaXRpb25zKio6IFN1bm55XG5cbkl0J3MgYSBuaWNlIGRheSEgV291bGQgeW91IGxpa2UgdG8ga25vdyB0aGUgd2VhdGhlciBmb3IgYSBzcGVjaWZpYyBsb2NhdGlvbiBpbnN0ZWFkPyJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInN0b3BfZGV0YWlscyI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjo2NDEsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjo0OCwic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoibm90X2F2YWlsYWJsZSJ9fQ== + recorded_at: Mon, 13 Jul 2026 23:12:14 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_specific.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_specific.yml new file mode 100644 index 00000000..d0ade6f9 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_specific.yml @@ -0,0 +1,211 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather?","role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}],"tool_choice":{"type":"tool","name":"get_weather"}}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '320' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:09 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:09Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:09Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:09Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:09Z' + Request-Id: + - req_011CczuL9yWPgAvpyRxyCF4Y + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-362f7423b58804db35cd43a271d1eeca-33b35f963d9da8ec-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf8882d952ed1-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuLAD9gacDrsMEV954q","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_016gVo3zhAbCYYSHt4piKSps","name":"get_weather","input":{"location":"current + location"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":655,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":34,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:12:09 GMT +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather?","role":"user"},{"content":[{"id":"toolu_016gVo3zhAbCYYSHt4piKSps","input":{"location":"current + location"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_016gVo3zhAbCYYSHt4piKSps","type":"tool_result","content":"{\"location\":\"current + location\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '662' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:12:10 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:12:10Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:12:10Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:12:09Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:12:10Z' + Request-Id: + - req_011CczuLCrtuokD3G6nwQuup + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-94d1be53a735d8487b862ba594ea4324-9fcee837909a69bc-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf88c5abf91f0-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1TEREaXZTTlRZeTd1cUZOankiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBhdCB5b3VyIGN1cnJlbnQgbG9jYXRpb24gaXM6XG4tICoqVGVtcGVyYXR1cmU6KiogNzLCsEZcbi0gKipDb25kaXRpb25zOioqIFN1bm55XG5cbkl0J3MgYSBuaWNlIGRheSEgSXMgdGhlcmUgYW55dGhpbmcgZWxzZSB5b3UnZCBsaWtlIHRvIGtub3cgYWJvdXQgdGhlIHdlYXRoZXI/In1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjY0MSwiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfY3JlYXRpb24iOnsiZXBoZW1lcmFsXzVtX2lucHV0X3Rva2VucyI6MCwiZXBoZW1lcmFsXzFoX2lucHV0X3Rva2VucyI6MH0sIm91dHB1dF90b2tlbnMiOjQ4LCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCIsImluZmVyZW5jZV9nZW8iOiJub3RfYXZhaWxhYmxlIn19 + recorded_at: Mon, 13 Jul 2026 23:12:10 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/response_test/prompt.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/response_test/prompt.yml new file mode 100644 index 00000000..744e9bab --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/integration/anthropic/response_test/prompt.yml @@ -0,0 +1,103 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Say ''test'' once.","role":"user"}],"max_tokens":10}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '101' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:10:58 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:10:58Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:10:58Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:10:58Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:10:58Z' + Request-Id: + - req_011CczuEvHMoZC8UySxbGx2i + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-2121ea7c0813074533a50b52b745ab6a-1a131f82c2920083-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abf6cc3d77c67f-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuEvegiSZqh6V5FriQC","type":"message","role":"assistant","content":[{"type":"text","text":"test"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":3,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:10:58 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.12/usage/anthropic_prompt.yml b/test/fixtures/vcr_cassettes/anthropic-1.12/usage/anthropic_prompt.yml new file mode 100644 index 00000000..d8b325ff --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.12/usage/anthropic_prompt.yml @@ -0,0 +1,104 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","messages":[{"content":"Say hello","role":"user"}],"max_tokens":4096}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Ruby + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.12.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '97' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:07 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:05Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:07Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:04Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:05Z' + Request-Id: + - req_011CczuQEYxQ731iA2iiKBB7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-3ddd3bb3f4e46fcebd8172b609bf0212-d5c85f4328f73830-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abf9e1fbd7981a-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1UUVxcEwzNmI1M0JaQU43U3IiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJIZWxsbyEg8J+RiyBIb3cgY2FuIEkgaGVscCB5b3UgdG9kYXk/In1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjksImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjoxNiwic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoibm90X2F2YWlsYWJsZSJ9fQ== + recorded_at: Mon, 13 Jul 2026 23:13:07 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/docs/actions/structured_output/anthropic_json.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/docs/actions/structured_output/anthropic_json.yml new file mode 100644 index 00000000..510154b1 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/docs/actions/structured_output/anthropic_json.yml @@ -0,0 +1,85 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Extract user data + as JSON: Jane Smith, jane@example.com, 28","role":"user"},{"content":"Here + is the JSON requested:\n{","role":"assistant"}],"max_tokens":4096}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '210' + response: + status: + code: 400 + message: Bad Request + headers: + Date: + - Mon, 13 Jul 2026 23:15:47 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + X-Should-Retry: + - 'false' + Request-Id: + - req_011CczucEpAJhxQrXmpnodCV + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-2cfc408ff15403541a1143013375d979-14e76c5fa77f7c19-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfddbda19545f-SJC + body: + encoding: ASCII-8BIT + string: '{"type":"error","error":{"type":"invalid_request_error","message":"This + model does not support assistant message prefill. The conversation must end + with a user message."},"request_id":"req_011CczucEpAJhxQrXmpnodCV"}' + recorded_at: Mon, 13 Jul 2026 23:15:47 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/docs/providers/anthropic/basic_generation.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/docs/providers/anthropic/basic_generation.yml new file mode 100644 index 00000000..c9f2e2c4 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/docs/providers/anthropic/basic_generation.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"What is the Model + Context Protocol?","role":"user"}],"max_tokens":4096}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '122' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:15:44 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:15:35Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '1999000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:15:44Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:15:34Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '11999000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:15:35Z' + Request-Id: + - req_011CczubKf6XyiGuQZqidMoy + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-3899f730d99b12d5624601c583b7fd06-1e26ce233c4e3e6e-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfd8e0bcc1990-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1zb25uZXQtNSIsImlkIjoibXNnXzAxMUNjenViTDZ0Qkh3ejFOZm5nUEVhNCIsInR5cGUiOiJtZXNzYWdlIiwicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiMgTW9kZWwgQ29udGV4dCBQcm90b2NvbCAoTUNQKVxuXG5UaGUgTW9kZWwgQ29udGV4dCBQcm90b2NvbCBpcyBhbiBvcGVuIHN0YW5kYXJkIChpbnRyb2R1Y2VkIGJ5IEFudGhyb3BpYyBpbiBsYXRlIDIwMjQpIGRlc2lnbmVkIHRvIHN0YW5kYXJkaXplIGhvdyBBSSBhcHBsaWNhdGlvbnPigJRwYXJ0aWN1bGFybHkgbGFyZ2UgbGFuZ3VhZ2UgbW9kZWxz4oCUY29ubmVjdCB0byBleHRlcm5hbCBkYXRhIHNvdXJjZXMsIHRvb2xzLCBhbmQgc3lzdGVtcy5cblxuIyMgVGhlIENvcmUgUHJvYmxlbSBJdCBTb2x2ZXNcblxuQmVmb3JlIE1DUCwgY29ubmVjdGluZyBhbiBBSSBhc3Npc3RhbnQgdG8gZXh0ZXJuYWwgcmVzb3VyY2VzIChkYXRhYmFzZXMsIGZpbGUgc3lzdGVtcywgQVBJcywgYnVzaW5lc3MgdG9vbHMgbGlrZSBTbGFjayBvciBHaXRIdWIpIHR5cGljYWxseSByZXF1aXJlZCBjdXN0b20sIG9uZS1vZmYgaW50ZWdyYXRpb25zLiBFYWNoIGNvbWJpbmF0aW9uIG9mIEFJIGFwcGxpY2F0aW9uIGFuZCBkYXRhIHNvdXJjZSBuZWVkZWQgaXRzIG93biBjb25uZWN0b3IsIGNyZWF0aW5nIGFuIFwiTcOXTlwiIGludGVncmF0aW9uIHByb2JsZW3igJRNIGFwcGxpY2F0aW9ucyB0aW1lcyBOIGRhdGEgc291cmNlcywgZWFjaCByZXF1aXJpbmcgc2VwYXJhdGUgd29yay5cblxuIyMgSG93IEl0IFdvcmtzXG5cbk1DUCBkZWZpbmVzIGEgY2xpZW50LXNlcnZlciBhcmNoaXRlY3R1cmU6XG5cbi0gKipNQ1AgU2VydmVycyoqIGV4cG9zZSBzcGVjaWZpYyBjYXBhYmlsaXRpZXPigJRkYXRhLCB0b29scywgb3IgcHJvbXB0c+KAlGZyb20gYSBwYXJ0aWN1bGFyIHN5c3RlbSAoZS5nLiwgYSBzZXJ2ZXIgZm9yIEdpdEh1Yiwgb25lIGZvciBhIGxvY2FsIGZpbGVzeXN0ZW0sIG9uZSBmb3IgYSBkYXRhYmFzZSlcbi0gKipNQ1AgQ2xpZW50cyoqIGxpdmUgaW5zaWRlIEFJIGFwcGxpY2F0aW9ucyAobGlrZSBDbGF1ZGUgRGVza3RvcCwgSURFcywgb3Igb3RoZXIgYWdlbnRzKSBhbmQgY29ubmVjdCB0byB0aGVzZSBzZXJ2ZXJzXG4tICoqSG9zdHMqKiBhcmUgdGhlIGFwcGxpY2F0aW9ucyBlbmQgdXNlcnMgaW50ZXJhY3Qgd2l0aCwgd2hpY2ggbWFuYWdlIG9uZSBvciBtb3JlIGNsaWVudCBjb25uZWN0aW9uc1xuXG5Db21tdW5pY2F0aW9uIGhhcHBlbnMgb3ZlciBhIHN0YW5kYXJkaXplZCBwcm90b2NvbCAoYmFzZWQgb24gSlNPTi1SUEMpLCBzbyBhbnkgTUNQLWNvbXBhdGlibGUgY2xpZW50IGNhbiB0YWxrIHRvIGFueSBNQ1AtY29tcGF0aWJsZSBzZXJ2ZXIgd2l0aG91dCBjdXN0b20gY29kZS5cblxuIyMgS2V5IENhcGFiaWxpdGllcyBTZXJ2ZXJzIENhbiBPZmZlclxuXG4xLiAqKlJlc291cmNlcyoqIOKAkyBzdHJ1Y3R1cmVkIGRhdGEgdGhlIG1vZGVsIGNhbiByZWFkIChmaWxlcywgZGF0YWJhc2UgcmVjb3JkcywgQVBJIHJlc3BvbnNlcylcbjIuICoqVG9vbHMqKiDigJMgZnVuY3Rpb25zIHRoZSBtb2RlbCBjYW4gaW52b2tlIHRvIHRha2UgYWN0aW9ucyAocnVuIGEgcXVlcnksIGNyZWF0ZSBhIGZpbGUsIGNhbGwgYW4gQVBJKVxuMy4gKipQcm9tcHRzKiog4oCTIHJldXNhYmxlIHRlbXBsYXRlcyBmb3IgY29tbW9uIGludGVyYWN0aW9uc1xuXG4jIyBXaHkgSXQgTWF0dGVyc1xuXG4tICoqUmV1c2FiaWxpdHkqKjogQnVpbGQgb25lIHNlcnZlciBmb3IgYSBkYXRhIHNvdXJjZTsgYW55IE1DUC1jb21wYXRpYmxlIEFJIGFwcCBjYW4gdXNlIGl0XG4tICoqRWNvc3lzdGVtIGVmZmVjdHMqKjogRW5jb3VyYWdlcyBhIHNoYXJlZCBsaWJyYXJ5IG9mIGNvbm5lY3RvcnMgKHNpbWlsYXIgdG8gaG93IFVTQiBzdGFuZGFyZGl6ZWQgZGV2aWNlIGNvbm5lY3Rpb25zLCBvciBMU1Agc3RhbmRhcmRpemVkIGxhbmd1YWdlIHRvb2xpbmcgZm9yIGVkaXRvcnMpXG4tICoqU2VjdXJpdHkvY29udHJvbCoqOiBLZWVwcyBkYXRhIGFjY2VzcyBtZWRpYXRlZCB0aHJvdWdoIHdlbGwtZGVmaW5lZCBpbnRlcmZhY2VzIHJhdGhlciB0aGFuIGFkIGhvYyBzY3JpcHRzXG5cbiMjIEFkb3B0aW9uXG5cblNpbmNlIGl0cyByZWxlYXNlLCBNQ1AgaGFzIHNlZW4gYWRvcHRpb24gYmV5b25kIEFudGhyb3BpYydzIG93biBwcm9kdWN0cywgd2l0aCB2YXJpb3VzIGNvbXBhbmllcyBhbmQgb3Blbi1zb3VyY2UgcHJvamVjdHMgYnVpbGRpbmcgTUNQIHNlcnZlcnMgZm9yIHRoaW5ncyBsaWtlIEdvb2dsZSBEcml2ZSwgUG9zdGdyZXMsIEdpdEh1YiwgU2xhY2ssIGFuZCBtb3JlLCBwbHVzIHN1cHBvcnQgYXBwZWFyaW5nIGluIG90aGVyIEFJIHRvb2xzIGFuZCBJREVzLlxuXG5JZiB5b3UncmUgd29ya2luZyBvbiBhIHNwZWNpZmljIGludGVncmF0aW9uIG9yIHRyeWluZyB0byB1bmRlcnN0YW5kIGEgcGFydGljdWxhciBwYXJ0IG9mIHRoZSBzcGVjLCBsZXQgbWUga25vdyBhbmQgSSBjYW4gZ28gZGVlcGVyLiJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInN0b3BfZGV0YWlscyI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjoxOCwiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfY3JlYXRpb24iOnsiZXBoZW1lcmFsXzVtX2lucHV0X3Rva2VucyI6MCwiZXBoZW1lcmFsXzFoX2lucHV0X3Rva2VucyI6MH0sIm91dHB1dF90b2tlbnMiOjc2Mywib3V0cHV0X3Rva2Vuc19kZXRhaWxzIjp7InRoaW5raW5nX3Rva2VucyI6MH0sInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Imdsb2JhbCJ9fQ== + recorded_at: Mon, 13 Jul 2026 23:15:44 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/docs/providers/anthropic/response_format/json_object.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/docs/providers/anthropic/response_format/json_object.yml new file mode 100644 index 00000000..4ab3893d --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/docs/providers/anthropic/response_format/json_object.yml @@ -0,0 +1,106 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","messages":[{"content":"Return a JSON object + with three primary colors in an array named ''colors''.","role":"user"},{"content":"Here + is the JSON requested:\n{","role":"assistant"}],"max_tokens":4096}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '226' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:18:17 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:18:17Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:18:17Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:18:16Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:18:17Z' + Request-Id: + - req_011CczuoGnYAQGJteMzsGuwe + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-017700e2d69e8d3389eda79e301b4bbf-444deedb551295d2-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1ac01836e4a2402-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuoH3AhBQsdesb8CWED","type":"message","role":"assistant","content":[{"type":"text","text":"\n \"colors\": + [\"red\", \"blue\", \"yellow\"]\n}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":31,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:18:17 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request.yml new file mode 100644 index 00000000..38cb131a --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request.yml @@ -0,0 +1,107 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":[{"type":"text","text":"You + are a helpful assistant."},{"type":"text","text":"Always be polite and professional."}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '226' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:32 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:31Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:32Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:29Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:31Z' + Request-Id: + - req_011CczuS6iyAXCUGx6GkW7ek + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-d372736ab9f687d5b507f9f6cf10072b-ad2d5a85f29ccd0d-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfa8028b7ad84-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuS753xMxYHK6ok9zs5","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! + Nice to meet you. How can I help you today? Whether you have a question, need + help with a task, want to brainstorm ideas, or just want to chat, I''m happy + to assist."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":34,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":62,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:13:32 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request_with_override.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request_with_override.yml new file mode 100644 index 00000000..79601d22 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request_with_override.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":[{"type":"text","text":"You + are an overridden assistant."},{"type":"text","text":"Please respond concisely."}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '221' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:25 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:25Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:25Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:24Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:25Z' + Request-Id: + - req_011CczuRidBcepbasEtz97T1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-9cb94b13fe1bec6b405454da042ae28e-4ccfabe1793cbe56-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfa5fcc67d041-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuRizkuhY68W7UdTWfS","type":"message","role":"assistant","content":[{"type":"text","text":"Hi + there! What can I help you with today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":33,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":15,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:13:25 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request.yml new file mode 100644 index 00000000..f4f169a2 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"Default + auto-loaded instructions for testing."}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '158' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:29 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:28Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:29Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:28Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:28Z' + Request-Id: + - req_011CczuRz6bvTuxfwYZAV3Ge + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-1f89752557c5cb5625e2f78990fa8c48-2ed14a5374826e85-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfa7669353117-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuRzUBMoFFjmvtAiXft","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! + Nice to meet you. How''s your day going so far, and what can I help you with?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":30,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":30,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:13:29 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request_with_override.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request_with_override.yml new file mode 100644 index 00000000..249e9829 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request_with_override.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"You + are an overridden assistant."}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '145' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:27 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:27Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:27Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:26Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:27Z' + Request-Id: + - req_011CczuRtuozFXN5PVS7zNRM + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-75bc379aa7b9dc509a3389d8054232ea-73f15ed44239449f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfa6eda290dfd-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuRuGPqQ3nePU7Z3gCt","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! + How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":25,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":13,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:13:27 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request.yml new file mode 100644 index 00000000..36b0357e --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request.yml @@ -0,0 +1,107 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"You + are a configured assistant with default instructions."}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '170' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:36 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:35Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:36Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:35Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:35Z' + Request-Id: + - req_011CczuSVatQ8RaqzrufhsE8 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-b654442bdbf8b664de687b3dcf4d4293-f2235b183d45d1fc-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfaa198ea8bdb-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuSW5QZB3nTtmQGe3JP","type":"message","role":"assistant","content":[{"type":"text","text":"Hi + there! How can I help you today? Whether it''s answering questions, brainstorming + ideas, writing something, working through a problem, or just chatting, I''m + happy to assist."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":29,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":58,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:13:36 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request_with_override.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request_with_override.yml new file mode 100644 index 00000000..4170e961 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request_with_override.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"You + are an overridden assistant."}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '145' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:26 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:26Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:26Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:25Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:26Z' + Request-Id: + - req_011CczuRosCbJUqA6nNzmEkh + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-eb0ec87ea8738019db9c53b62e77dbe7-78429f1d9b1f56c5-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfa677f97cec5-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuRpDYG4Shmx74xF1Se","type":"message","role":"assistant","content":[{"type":"text","text":"Hi + there! How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":25,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":14,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:13:26 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request.yml new file mode 100644 index 00000000..9738029f --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request.yml @@ -0,0 +1,104 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '101' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:34 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:34Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:34Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:33Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:34Z' + Request-Id: + - req_011CczuSQTpSW9cXH82vaqUW + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-a44e806cd1465964083e2ed9f3984404-57d111443a7bade3-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfa9a09d235d6-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuSQrPC3s7nKfygA2ea","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! + How''s it going? What can I help you with today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:13:34 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request_with_override.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request_with_override.yml new file mode 100644 index 00000000..bbd5c232 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request_with_override.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"You + are an overridden assistant."}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '145' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:33 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:33Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:33Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:32Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:33Z' + Request-Id: + - req_011CczuSJqEK7cPahqupNNdT + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-290526ba7ed9ae29685367b1dfa25398-c888bafd1a540a34-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfa91dbe1d8a7-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuSKHmNoP94oKBQtqte","type":"message","role":"assistant","content":[{"type":"text","text":"Hi + there! What can I help you with today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":25,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":15,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:13:33 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_mixed_auth.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_mixed_auth.yml new file mode 100644 index 00000000..f08046e4 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_mixed_auth.yml @@ -0,0 +1,133 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages?beta=true + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + tools do you have available?","role":"user"}],"mcp_servers":[{"name":"cloudflare-demo","type":"url","url":"https://demo-day.mcp.cloudflare.com/sse"},{"name":"github-copilot","type":"url","url":"https://api.githubcopilot.com/mcp/","authorization_token":"GITHUB_MCP_TOKEN"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + Anthropic-Beta: + - mcp-client-2025-04-04 + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '425' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:15:20 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '9994000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:15:14Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:15:20Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:15:14Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '11994000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:15:14Z' + Request-Id: + - req_011CczuZd3Z6dpUD7a2akjhC + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-4f18cccd4ebcd0ed8f5873a9fb8706ef-15106a36b71b33e3-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfcfdf983be62-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuZqG1vPNEwch58K9Xw","type":"message","role":"assistant","content":[{"type":"text","text":"I + have a comprehensive set of tools available for GitHub and Cloudflare operations. + Here''s a summary organized by category:\n\n## GitHub Repository Management\n- + **Create/Fork Repositories**: Create new repos, fork existing ones\n- **Branch + Management**: Create branches, list branches\n- **File Operations**: Create, + update, delete files; push multiple files in one commit\n\n## GitHub Issues + & Pull Requests\n- **Issue Management**: Read, create, update issues; add + comments and reactions\n- **Pull Request Operations**: \n - Read PR details, + diffs, files, commits, reviews, comments, check runs\n - Create and manage + PRs\n - Update PR status and branches\n - Merge pull requests\n- **Code + Review**: \n - Request Copilot code reviews\n - Create, submit, and delete + reviews\n - Add review comments and replies\n - Resolve/unresolve review + threads\n\n## Code & Search\n- **Code Search**: Fast code search across GitHub + repositories\n- **Commit Search**: Search commits across repositories\n- **Issue/PR + Search**: Advanced search for issues and pull requests\n- **User/Repository + Search**: Find users and repositories\n- **Secret Scanning**: Scan files and + content for exposed secrets\n\n## GitHub Organization & Teams\n- **Teams**: + Get team members and user team memberships\n- **Labels**: Retrieve label information\n- + **Collaborators**: List repository collaborators\n- **Issue Fields & Types**: + List custom issue fields and supported issue types\n\n## Git Information\n- + **Commits**: Get commit details and list commits\n- **Tags & Releases**: List + tags/releases, get specific releases by tag\n- **User Profile**: Get authenticated + user details\n\n## GitHub Copilot AI Agent\n- **Task Assignment**: Assign + Copilot to work on issues\n- **Pull Request Creation**: Delegate PR creation + with Copilot\n- **Job Status**: Check status of Copilot tasks/PRs\n\n## Other\n- + **Cloudflare MCP Demo Day Info**: Get information about Cloudflare''s MCP + Demo Day\n\nWould you like me to help you with any specific GitHub or Cloudflare + task?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14184,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":475,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:15:20 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_multiple_servers.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_multiple_servers.yml new file mode 100644 index 00000000..734ac476 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_multiple_servers.yml @@ -0,0 +1,134 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages?beta=true + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + tools do you have available?","role":"user"}],"mcp_servers":[{"name":"cloudflare-demo","type":"url","url":"https://demo-day.mcp.cloudflare.com/sse"},{"name":"github-copilot","type":"url","url":"https://api.githubcopilot.com/mcp/","authorization_token":"GITHUB_MCP_TOKEN"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + Anthropic-Beta: + - mcp-client-2025-04-04 + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '425' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:15:28 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '9994000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:15:23Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:15:28Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:15:22Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '11994000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:15:23Z' + Request-Id: + - req_011CczuaFjB9a4UiTzxKQBM4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-3110452946d8ecc4322708fbd28eee4b-36f95a8c0aee7e3a-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfd339dd39e50-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuaTUrksFypq4C9foH2","type":"message","role":"assistant","content":[{"type":"text","text":"I + have a comprehensive set of tools available for working with GitHub and other + services. Here''s an overview:\n\n## GitHub Repository Management\n- **Create/Fork + repositories** - Create new repos or fork existing ones\n- **Create branches** + - Create new branches in repositories\n- **File operations** - Create, update, + or delete files in repositories\n- **Push files** - Push multiple files in + a single commit\n\n## GitHub Issues & Pull Requests\n- **Issue operations** + - Create, read, update issues with custom fields and labels\n- **Pull request + operations** - Create, read, update, and merge pull requests\n- **Pull request + reviews** - Create reviews, add comments, resolve threads\n- **Issue/PR comments** + - Add comments and emoji reactions to issues and PRs\n- **Sub-issues** - Add, + remove, or reprioritize sub-issues\n\n## GitHub Search & Discovery\n- **Code + search** - Search across all GitHub repositories for code patterns\n- **Commit + search** - Find commits by message, author, date, etc.\n- **Issue search** + - Search for issues across repositories\n- **Pull request search** - Search + for pull requests\n- **Repository search** - Discover repositories by name, + topics, stars, etc.\n- **User search** - Find GitHub users and developers\n\n## + GitHub Collaboration\n- **List branches, commits, tags, releases** - Browse + repository history\n- **Get collaborators** - List repository collaborators\n- + **Teams** - Get team members and user team membership\n- **Get user info** + - Retrieve authenticated user details\n\n## GitHub Copilot AI Features\n- + **Assign Copilot to issues** - Delegate tasks to the AI coding agent\n- **Create + PRs with Copilot** - Have AI generate implementation in pull requests\n- **Request + Copilot code review** - Get automated code review feedback\n- **Get Copilot + job status** - Check progress on AI-generated tasks\n\n## Security & Advanced + Features\n- **Secret scanning** - Scan files and diffs for exposed secrets + (API keys, tokens, passwords)\n- **Cloudflare MCP Demo Day info** - Get information + about Cloudflare''s MCP demo event\n\nWould you like to use any of these tools + for a specific task?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14184,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":497,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:15:28 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server.yml new file mode 100644 index 00000000..229de3f3 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server.yml @@ -0,0 +1,111 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages?beta=true + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + tools do you have available?","role":"user"}],"mcp_servers":[{"name":"cloudflare-demo","type":"url","url":"https://demo-day.mcp.cloudflare.com/sse"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + Anthropic-Beta: + - mcp-client-2025-04-04 + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '225' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:59 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:58Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:59Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:58Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:58Z' + Request-Id: + - req_011CczuYUMPVDS5CmFsoTqgM + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-2bbd72974e68f995cb3b2d838789a994-7981b2c892525c7f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfc9c6c665527-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuYdqeJFwPKUJMFrL7D","type":"message","role":"assistant","content":[{"type":"text","text":"I + have access to one tool:\n\n1. **cloudflare-demo_mcp_demo_day_info** - Get + information about Cloudflare''s MCP Demo Day. Use this tool if you ask about + Cloudflare''s MCP demo day.\n\nThis tool allows me to retrieve details about + Cloudflare''s MCP (Model Context Protocol) Demo Day event. If you''d like + to know more about this event, feel free to ask!"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":101,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:59 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server_with_auth.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server_with_auth.yml new file mode 100644 index 00000000..d52e40d3 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server_with_auth.yml @@ -0,0 +1,148 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages?beta=true + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + tools do you have available?","role":"user"}],"mcp_servers":[{"name":"github-copilot","type":"url","url":"https://api.githubcopilot.com/mcp/","authorization_token":"GITHUB_MCP_TOKEN"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + Anthropic-Beta: + - mcp-client-2025-04-04 + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '337' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:15:07 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '9994000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:15:00Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '1999000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:15:07Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:15:00Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '11993000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:15:00Z' + Request-Id: + - req_011CczuYj89ThzJ5rgtP1WAG + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-8c2b4ca38d67aa06b2617cc8a1c6d32b-dc15090906c4f1c2-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfcb20ef5760e-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuYoKA3TYrb5qgzpWVc","type":"message","role":"assistant","content":[{"type":"text","text":"I + have access to a comprehensive set of GitHub tools that allow me to interact + with repositories, pull requests, issues, and more. Here''s a summary of the + main categories:\n\n## Repository Management\n- **Create repositories** - + Create new public or private repos\n- **Fork repositories** - Fork existing + repos to your account\n- **Get file contents** - Read files and directory + structures\n- **Create/update files** - Add or modify files in repos\n- **Delete + files** - Remove files from repos\n- **Push multiple files** - Commit multiple + files at once\n\n## Branch Management\n- **List branches** - View all branches + in a repo\n- **Create branches** - Create new branches from existing ones\n\n## + Commit Management\n- **List commits** - View commit history with filtering + options\n- **Get commit details** - Get detailed info about specific commits\n- + **Search commits** - Find commits across repos by message, author, date, etc.\n\n## + Issues\n- **Create/update issues** - Create new issues or modify existing + ones\n- **Read issues** - Get issue details, comments, labels, sub-issues\n- + **List issues** - Browse issues with filtering and sorting\n- **Search issues** + - Find issues across repos\n- **Add issue comments** - Comment on issues\n- + **Sub-issue management** - Add, remove, or reprioritize sub-issues\n\n## Pull + Requests\n- **Create pull requests** - Create new PRs\n- **Update pull requests** + - Modify PR title, description, reviewers, state\n- **List pull requests** + - Browse PRs with filtering\n- **Search pull requests** - Find PRs across + repos\n- **Read PR details** - Get PR info, diffs, files, commits, reviews, + comments\n- **Merge pull requests** - Merge PRs with different merge strategies\n- + **Update PR branch** - Sync PR with latest base branch\n\n## Code Review\n- + **Request Copilot review** - Get automated code review feedback\n- **Create/submit + reviews** - Create, submit, or delete PR reviews\n- **Add review comments** + - Comment on specific lines in PRs\n- **Reply to comments** - Reply to and + react to PR comments\n- **Resolve/unresolve threads** - Manage review thread + resolution\n\n## Copilot AI Agent\n- **Assign Copilot to issues** - Delegate + tasks to the Copilot agent\n- **Create PR with Copilot** - Have Copilot create + a PR to solve a problem\n- **Check job status** - Monitor Copilot agent task + progress\n\n## Releases & Tags\n- **List releases** - View all releases\n- + **Get latest release** - Get the most recent release\n- **Get release by tag** + - Get specific release info\n- **List/get tags** - View git tags\n\n## Code + Search & Security\n- **Search code** - Fast code search across repos\n- **Search + repositories** - Find repos by name, description, topics\n- **Search users** + - Find GitHub users\n- **Secret scanning** - Scan files for exposed credentials/secrets\n\n## + Team & Collaboration\n- **Get authenticated user info** - Get your profile + details\n- **Get teams** - View teams you''re a member of\n- **Get team members** + - List team members\n\n## Repository Collaboration\n- **List collaborators** + - View who has access to a repo\n- **Get labels** - Retrieve label information\n- + **List issue fields & types** - Get custom field definitions for issues\n\nIs + there anything specific you''d like to do with these tools?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14109,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":784,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:15:07 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_sse_server.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_sse_server.yml new file mode 100644 index 00000000..5a369acc --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/mcp_test/test_agent_common_format_sse_server.yml @@ -0,0 +1,111 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages?beta=true + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + tools do you have available?","role":"user"}],"mcp_servers":[{"name":"cloudflare-demo","type":"url","url":"https://demo-day.mcp.cloudflare.com/sse"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + Anthropic-Beta: + - mcp-client-2025-04-04 + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '225' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:15:11 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:15:10Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:15:11Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:15:10Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:15:10Z' + Request-Id: + - req_011CczuZMoGtmhTKd8e9S4tx + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-c69b470adbc3148a50148b84aa893a78-33839c6b9e1fa359-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfce739d77d12-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuZY9NMCeMpmL21c9v1","type":"message","role":"assistant","content":[{"type":"text","text":"I + have one tool available:\n\n1. **cloudflare-demo_mcp_demo_day_info** - Get + information about Cloudflare''s MCP Demo Day. Use this tool if you have questions + about Cloudflare''s MCP demo day event.\n\nThis tool doesn''t require any + parameters and can provide details about the event when you ask about it.\n\nIs + there anything you''d like to know about Cloudflare''s MCP Demo Day?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":102,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:15:11 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_base64_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_base64_bare.yml new file mode 100644 index 00000000..8b0c45fe --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_base64_bare.yml @@ -0,0 +1,114 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"data":"JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCgoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFJdCi9Db3VudCAxCj4+CmVuZG9iagoKMyAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL0YxIDQgMCBSCj4+Cj4+Ci9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iago8PAovTGVuZ3RoIDMwMAo+PgpzdHJlYW0KQlQKL0YxIDE2IFRmCjUwIDc1MCBUZAooSm9obiBEb2UgLSBTb2Z0d2FyZSBFbmdpbmVlcikgVGoKMCAtMzAgVGQKL0YxIDEyIFRmCihFbWFpbDogam9obi5kb2VAZXhhbXBsZS5jb20pIFRqCjAgLTIwIFRkCihQaG9uZTogKDU1NSkgMTIzLTQ1NjcpIFRqCjAgLTIwIFRkCihMb2NhdGlvbjogU2FuIEZyYW5jaXNjbywgQ0EpIFRqCjAgLTQwIFRkCi9GMSAxNCBUZgooRXhwZXJpZW5jZTopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyIGF0IFRlY2hDb3JwICgyMDIwLTIwMjQpKSBUagowIC0yMCBUZAooLSBEZXZlbG9wZWQgd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBSdWJ5IG9uIFJhaWxzKSBUagowIC0yMCBUZAooLSBMZWQgdGVhbSBvZiA1IGRldmVsb3BlcnMpIFRqCjAgLTIwIFRkCigtIEltcGxlbWVudGVkIENJL0NEIHBpcGVsaW5lcykgVGoKMCAtNDAgVGQKL0YxIDE0IFRmCihTa2lsbHM6KSBUagowIC0yNSBUZAovRjEgMTIgVGYKKFJ1YnksIFJhaWxzLCBKYXZhU2NyaXB0LCBQeXRob24sIEFXUywgRG9ja2VyKSBUagowIC00MCBUZAovRjEgMTQgVGYKKEVkdWNhdGlvbjopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooQlMgQ29tcHV0ZXIgU2NpZW5jZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSAoMjAxNi0yMDIwKSkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAowMDAwMDAwMjY5IDAwMDAwIG4gCjAwMDAwMDAzMzcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSA2Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgo2ODcKJSVFT0YK","media_type":"application/pdf","type":"base64"},"type":"document"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '1837' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:42 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '9999000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:41Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:42Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:40Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '11999000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:41Z' + Request-Id: + - req_011CczuSsrqoK4BPCv6eLmQ9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-978b5fdda24a186b2513e78f5318cb20-aea31fcfaa07e44a-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfac20ed40a83-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuSuBDUgLq1NufbuBGJ","type":"message","role":"assistant","content":[{"type":"text","text":"# + Resume of John Doe\n\nThis document is a **resume for John Doe**, a Software + Engineer. Here''s a summary of the key information:\n\n## Contact Information\n- + **Email:** john.doe@example.com\n- **Phone:** (555) 123-4567\n- **Location:** + San Francisco, CA\n\n## Experience\n- **Senior Software Engineer at TechCorp** + (2020-2024)\n - Developed web applications using Ruby on Rails\n - Led a + team of 5 developers\n - Implemented CI/CD pipelines\n\n## Technical Skills\nRuby, + Rails, JavaScript, Python, AWS, Docker\n\n## Education\n- **BS in Computer + Science** from Stanford University (2016-2020)\n\nThis is a typical professional + resume showcasing his software engineering background with recent senior-level + experience and relevant technical skills."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1700,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":187,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:13:42 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_base64_message.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_base64_message.yml new file mode 100644 index 00000000..ea8bc554 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_base64_message.yml @@ -0,0 +1,114 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"data":"JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCgoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFJdCi9Db3VudCAxCj4+CmVuZG9iagoKMyAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL0YxIDQgMCBSCj4+Cj4+Ci9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iago8PAovTGVuZ3RoIDMwMAo+PgpzdHJlYW0KQlQKL0YxIDE2IFRmCjUwIDc1MCBUZAooSm9obiBEb2UgLSBTb2Z0d2FyZSBFbmdpbmVlcikgVGoKMCAtMzAgVGQKL0YxIDEyIFRmCihFbWFpbDogam9obi5kb2VAZXhhbXBsZS5jb20pIFRqCjAgLTIwIFRkCihQaG9uZTogKDU1NSkgMTIzLTQ1NjcpIFRqCjAgLTIwIFRkCihMb2NhdGlvbjogU2FuIEZyYW5jaXNjbywgQ0EpIFRqCjAgLTQwIFRkCi9GMSAxNCBUZgooRXhwZXJpZW5jZTopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyIGF0IFRlY2hDb3JwICgyMDIwLTIwMjQpKSBUagowIC0yMCBUZAooLSBEZXZlbG9wZWQgd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBSdWJ5IG9uIFJhaWxzKSBUagowIC0yMCBUZAooLSBMZWQgdGVhbSBvZiA1IGRldmVsb3BlcnMpIFRqCjAgLTIwIFRkCigtIEltcGxlbWVudGVkIENJL0NEIHBpcGVsaW5lcykgVGoKMCAtNDAgVGQKL0YxIDE0IFRmCihTa2lsbHM6KSBUagowIC0yNSBUZAovRjEgMTIgVGYKKFJ1YnksIFJhaWxzLCBKYXZhU2NyaXB0LCBQeXRob24sIEFXUywgRG9ja2VyKSBUagowIC00MCBUZAovRjEgMTQgVGYKKEVkdWNhdGlvbjopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooQlMgQ29tcHV0ZXIgU2NpZW5jZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSAoMjAxNi0yMDIwKSkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAowMDAwMDAwMjY5IDAwMDAwIG4gCjAwMDAwMDAzMzcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSA2Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgo2ODcKJSVFT0YK","media_type":"application/pdf","type":"base64"},"type":"document"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '1837' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:57 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '9999000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:55Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:57Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:55Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '11999000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:55Z' + Request-Id: + - req_011CczuTzYhgUjsWFgNsU7EU + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-f2c7f8fa25cd2268e7c72c499ef3e078-1bdd27ee449df1dc-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfb20aa42cc8b-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuU1K5uV6kXQHxmR1yP","type":"message","role":"assistant","content":[{"type":"text","text":"# + Document Summary\n\nThis is a **resume for John Doe**, a Software Engineer + based in San Francisco, CA.\n\n## Key Information:\n\n**Contact Details:**\n- + Email: john.doe@example.com\n- Phone: (555) 123-4567\n- Location: San Francisco, + CA\n\n**Professional Experience:**\n- Senior Software Engineer at TechCorp + (2020-2024)\n - Developed web applications using Ruby on Rails\n - Led a + team of 5 developers\n - Implemented CI/CD pipelines\n\n**Technical Skills:**\n- + Ruby, Rails, JavaScript, Python, AWS, Docker\n\n**Education:**\n- Bachelor + of Science in Computer Science from Stanford University (2016-2020)\n\nThis + is a well-structured resume for a mid-level software engineer with both technical + expertise and leadership experience."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1700,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":185,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:13:57 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_base64_messages.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_base64_messages.yml new file mode 100644 index 00000000..db5fea9b --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_base64_messages.yml @@ -0,0 +1,114 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"data":"JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCgoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFJdCi9Db3VudCAxCj4+CmVuZG9iagoKMyAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL0YxIDQgMCBSCj4+Cj4+Ci9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iago8PAovTGVuZ3RoIDMwMAo+PgpzdHJlYW0KQlQKL0YxIDE2IFRmCjUwIDc1MCBUZAooSm9obiBEb2UgLSBTb2Z0d2FyZSBFbmdpbmVlcikgVGoKMCAtMzAgVGQKL0YxIDEyIFRmCihFbWFpbDogam9obi5kb2VAZXhhbXBsZS5jb20pIFRqCjAgLTIwIFRkCihQaG9uZTogKDU1NSkgMTIzLTQ1NjcpIFRqCjAgLTIwIFRkCihMb2NhdGlvbjogU2FuIEZyYW5jaXNjbywgQ0EpIFRqCjAgLTQwIFRkCi9GMSAxNCBUZgooRXhwZXJpZW5jZTopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyIGF0IFRlY2hDb3JwICgyMDIwLTIwMjQpKSBUagowIC0yMCBUZAooLSBEZXZlbG9wZWQgd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBSdWJ5IG9uIFJhaWxzKSBUagowIC0yMCBUZAooLSBMZWQgdGVhbSBvZiA1IGRldmVsb3BlcnMpIFRqCjAgLTIwIFRkCigtIEltcGxlbWVudGVkIENJL0NEIHBpcGVsaW5lcykgVGoKMCAtNDAgVGQKL0YxIDE0IFRmCihTa2lsbHM6KSBUagowIC0yNSBUZAovRjEgMTIgVGYKKFJ1YnksIFJhaWxzLCBKYXZhU2NyaXB0LCBQeXRob24sIEFXUywgRG9ja2VyKSBUagowIC00MCBUZAovRjEgMTQgVGYKKEVkdWNhdGlvbjopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooQlMgQ29tcHV0ZXIgU2NpZW5jZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSAoMjAxNi0yMDIwKSkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAowMDAwMDAwMjY5IDAwMDAwIG4gCjAwMDAwMDAzMzcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSA2Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgo2ODcKJSVFT0YK","media_type":"application/pdf","type":"base64"},"type":"document"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '1837' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:24 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '9999000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:22Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:24Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:22Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '11999000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:22Z' + Request-Id: + - req_011CczuVzToGPqN2C3wXh63x + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-1ef12cde93009db8132d075288fb548f-9dd0c390ecbc2115-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfbca2feb97d9-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuW141vpvM6AED2FX7N","type":"message","role":"assistant","content":[{"type":"text","text":"# + Summary of Document\n\nThis is a **resume/CV for John Doe**, a Software Engineer. + Here are the key details:\n\n## Contact Information\n- **Email:** john.doe@example.com\n- + **Phone:** (555) 123-4567\n- **Location:** San Francisco, CA\n\n## Professional + Experience\n- **Senior Software Engineer at TechCorp** (2020-2024)\n - Developed + web applications using Ruby on Rails\n - Led a team of 5 developers\n - + Implemented CI/CD pipelines\n\n## Technical Skills\n- Ruby, Rails, JavaScript, + Python, AWS, Docker\n\n## Education\n- **BS in Computer Science** from Stanford + University (2016-2020)\n\nThis is a straightforward professional resume highlighting + relevant software engineering experience, technical proficiencies, and educational + background."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1700,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":184,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:24 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_url_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_url_bare.yml new file mode 100644 index 00000000..b34c505d --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_url_bare.yml @@ -0,0 +1,108 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"type":"url","url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},"type":"document"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '261' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:50 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:49Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:50Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:48Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:49Z' + Request-Id: + - req_011CczuTWQXYBfNV4MKYhyha + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-e36aa602636ff8a737b44d2263a7f801-87b1ff1ebb374796-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfaf78a18eb32-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuTXKMGbzifNyB5oLxE","type":"message","role":"assistant","content":[{"type":"text","text":"This + document is a **dummy PDF file** that contains minimal content. The only text + visible on the page is the heading \"Dummy PDF file\" near the top. The rest + of the page is blank/white space. It appears to be a simple test or placeholder + PDF document with no substantive information or data."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1612,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":67,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:13:50 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_url_message.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_url_message.yml new file mode 100644 index 00000000..90fdb768 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_url_message.yml @@ -0,0 +1,107 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"type":"url","url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},"type":"document"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '261' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:46 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:45Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:46Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:44Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:45Z' + Request-Id: + - req_011CczuTDTZ2Ret9ZuyNhdJ9 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-fb4d7a62951e0b02f2317c1924f153fd-66e58ca603c03377-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfadecdc9ab58-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuTE9UeBSHWuufqNS8W","type":"message","role":"assistant","content":[{"type":"text","text":"This + document is a **Dummy PDF file**. \n\nThe PDF contains a single page with + only a heading that reads \"Dummy PDF file\" in bold text. The rest of the + page is blank. It appears to be a sample or placeholder PDF with minimal content."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1612,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":59,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:13:46 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_url_messages.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_url_messages.yml new file mode 100644 index 00000000..03a77487 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_document_url_messages.yml @@ -0,0 +1,107 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"type":"url","url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},"type":"document"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '261' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:20 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:19Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:20Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:19Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:19Z' + Request-Id: + - req_011CczuVjojbmjqNCPXfNScS + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-1eafc1539b95e1dbde021e41e2c11c44-7bcdb29d7d728a98-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfbb4bf09f98b-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuVkMyRuDL5yLnSCaSH","type":"message","role":"assistant","content":[{"type":"text","text":"This + document is a **Dummy PDF file** - it contains only a title/header that says + \"Dummy PDF file\" and the rest of the page is blank. There is no additional + content, data, or information provided in this PDF."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1612,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":53,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:20 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_base64_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_base64_bare.yml new file mode 100644 index 00000000..f76638c9 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_base64_bare.yml @@ -0,0 +1,109 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==","media_type":"image/png","type":"base64"},"type":"image"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '309' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:10 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:10Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:10Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:09Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:10Z' + Request-Id: + - req_011CczuV2iwqzLDdd8gHzJ1V + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-ea51e2868f9087dfb8367fe9ccf2f18b-a47cc8b37ee2dea5-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfb78ac45ed3f-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuV3Rrs1Zgttubx1SEe","type":"message","role":"assistant","content":[{"type":"text","text":"This + image appears to be largely blank or white with only a very small, faint mark + or speck visible. It''s difficult to make out any clear details or meaningful + content from this image. If you intended to share a specific image, you may + want to try uploading it again, as this one doesn''t contain any discernible + subject matter."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":17,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":74,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:10 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_base64_message.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_base64_message.yml new file mode 100644 index 00000000..9d95dc2e --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_base64_message.yml @@ -0,0 +1,110 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==","media_type":"image/png","type":"base64"},"type":"image"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '309' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:07 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:06Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:07Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:05Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:06Z' + Request-Id: + - req_011CczuUjufW1xT3AiRdwU5Q + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-9f112e65dfc04781a810f7e17592e315-8452117b35534b1d-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfb601d96ed3d-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuUkrDX8Yh6DiCWmrvr","type":"message","role":"assistant","content":[{"type":"text","text":"This + image appears to be a very light or faded image that is difficult to see clearly. + It looks like it might be a small, pale object or mark against a white or + very light background, but I cannot make out specific details with confidence. + \n\nCould you provide more context about what this image is supposed to show, + or verify if the image uploaded correctly? A clearer or higher contrast version + would help me give you a more accurate description."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":17,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":94,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:07 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_base64_messages.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_base64_messages.yml new file mode 100644 index 00000000..236d4ece --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_base64_messages.yml @@ -0,0 +1,110 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==","media_type":"image/png","type":"base64"},"type":"image"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '309' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:48 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:47Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:48Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:46Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:47Z' + Request-Id: + - req_011CczuTMHr32jMJ9Lfc3Qjk + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-7f7c65c195c3a397b1c0aadba7e81510-4fecf576f307c5b8-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfaea1b06eb22-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuTPChDQMeBM79MkkXH","type":"message","role":"assistant","content":[{"type":"text","text":"I + can see this is a very small, low-resolution image that appears to be mostly + white or light colored with possibly a tiny dot or mark in it. The image is + too small and unclear for me to make out any specific details or identify + what object or scene it''s supposed to represent. \n\nCould you provide a + larger or higher-resolution version of the image, or let me know what subject + matter I should be looking at?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":17,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":91,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:13:48 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_url_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_url_bare.yml new file mode 100644 index 00000000..e08282f8 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_url_bare.yml @@ -0,0 +1,108 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"type":"url","url":"https://framerusercontent.com/images/oEx786EYW2ZVL4Xf9hparOVLjHI.png?scale-down-to=64"},"type":"image"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '269' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:44 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:43Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:44Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:43Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:43Z' + Request-Id: + - req_011CczuT6MfjT5r5Qmj649nc + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-cc8f53ebea839ebcd1b9f01a956d2264-a530defb1579ff13-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfad4692d4d21-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuT6vtzwoete915NuTS","type":"message","role":"assistant","content":[{"type":"text","text":"This + image shows the **Active Agents** logo or text. It appears to be a simple, + professional graphic with the words \"ACTIVE AGENTS\" in a dark font, accompanied + by a red and dark circular icon or symbol on the left side. The design has + a clean, corporate appearance typical of business branding or company logos."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":71,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:13:44 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_url_message.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_url_message.yml new file mode 100644 index 00000000..ae2ccc3f --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_url_message.yml @@ -0,0 +1,108 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"type":"url","url":"https://framerusercontent.com/images/oEx786EYW2ZVL4Xf9hparOVLjHI.png?scale-down-to=64"},"type":"image"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '269' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:09 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:07Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:08Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:07Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:07Z' + Request-Id: + - req_011CczuUtUc26Bw3Qo9MN4y4 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-efd63627da8e7ff780740d572da84ecb-ec1b127b35198609-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfb6c9ace58ac-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuUttQSd5bMRvaiGHnU","type":"message","role":"assistant","content":[{"type":"text","text":"This + image shows the logo for **Active Agents**. It features the text \"ACTIVE + AGENTS\" in a dark color (appears to be navy blue or black), with a stylized + red icon or symbol to the left of the text that looks like it could represent + movement or action."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":62,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:09 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_url_messages.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_url_messages.yml new file mode 100644 index 00000000..8e54d58e --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_image_url_messages.yml @@ -0,0 +1,110 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"type":"url","url":"https://framerusercontent.com/images/oEx786EYW2ZVL4Xf9hparOVLjHI.png?scale-down-to=64"},"type":"image"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '269' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:40 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:38Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:40Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:38Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:38Z' + Request-Id: + - req_011CczuSjpPqLvHPo3grbmqN + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-fdcdf6d8ab3b018f3a4595c6da1f5cb5-463659ab88a7806f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfab63ddeebed-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuSkRrjQn99cCN3Voxo","type":"message","role":"assistant","content":[{"type":"text","text":"This + image shows the **Active Agents** logo. It appears to be a text-based logo + with the words \"ACTIVE AGENTS\" in a dark color (likely black or dark gray). + There''s a small icon or symbol to the left of the text that looks like it + could be a stylized badge or emblem, possibly in red or dark red. The overall + design is simple and professional-looking, typical of a business or service + company branding."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":97,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:13:39 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_templates_default.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_templates_default.yml new file mode 100644 index 00000000..2ab100ec --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_templates_default.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + is the capital of France?","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '118' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:18 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:18Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:18Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:18Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:18Z' + Request-Id: + - req_011CczuVhNdrdwxj2kPBvmLN + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-f352614497a0d23a759af1dc175b0b66-9744cf8d683c2098-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfbb1286c5e49-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuVhc2hS14UnVvaCPCo","type":"message","role":"assistant","content":[{"type":"text","text":"The + capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:18 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_templates_with_locals.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_templates_with_locals.yml new file mode 100644 index 00000000..35140436 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_templates_with_locals.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Tell + me about Japan and its capital city Tokyo.","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '135' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:01 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:58Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:01Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:57Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:58Z' + Request-Id: + - req_011CczuUBEe556D7rq7Etr2W + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-3d365d6bbf0e30938bf4248c597d6cda-5e2fd373b4159acc-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfb303cb9cf1b-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1VUJVWExUQjJ5ZGpNd1NUSnoiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIEphcGFuIGFuZCBUb2t5b1xuXG4jIyBKYXBhbiBPdmVydmlld1xuSmFwYW4gaXMgYW4gaXNsYW5kIG5hdGlvbiBpbiBFYXN0IEFzaWEgY29tcHJpc2luZyBmb3VyIG1haW4gaXNsYW5kczogSG9uc2h1LCBIb2trYWlkbywgS3l1c2h1LCBhbmQgU2hpa29rdS4gV2l0aCBhIHBvcHVsYXRpb24gb2YgYWJvdXQgMTI1IG1pbGxpb24sIGl0J3Mgb25lIG9mIHRoZSB3b3JsZCdzIG1vc3QgZGV2ZWxvcGVkIGFuZCB0ZWNobm9sb2dpY2FsbHkgYWR2YW5jZWQgY291bnRyaWVzLlxuXG4qKktleSBjaGFyYWN0ZXJpc3RpY3M6Kipcbi0gS25vd24gZm9yIGJsZW5kaW5nIHRyYWRpdGlvbiAodGVtcGxlcywgdGVhIGNlcmVtb255KSB3aXRoIGN1dHRpbmctZWRnZSB0ZWNobm9sb2d5XG4tIEZhbW91cyBmb3IgY3Vpc2luZSwgYW5pbWUsIG1hbmdhLCBhbmQgYXV0b21vdGl2ZSBpbmR1c3RyaWVzXG4tIE1vdW50YWlub3VzIHRlcnJhaW4gd2l0aCBhYm91dCA3MyUgZm9yZXN0ZWRcbi0gTG9jYXRlZCBpbiB0aGUgUGFjaWZpYyBSaW5nIG9mIEZpcmUgKHByb25lIHRvIGVhcnRocXVha2VzKVxuXG4jIyBUb2t5b1xuXG5Ub2t5byBpcyBKYXBhbidzIGNhcGl0YWwgYW5kIGxhcmdlc3QgY2l0eSwgd2l0aCBvdmVyIDM3IG1pbGxpb24gcGVvcGxlIGluIGl0cyBtZXRyb3BvbGl0YW4gYXJlYeKAlG1ha2luZyBpdCBvbmUgb2YgdGhlIHdvcmxkJ3MgbGFyZ2VzdCBjaXRpZXMuXG5cbioqTm90YWJsZSBmZWF0dXJlczoqKlxuLSAqKk1vZGVybiBodWIqKjogU2t5c2NyYXBlcnMsIHRlY2hub2xvZ3kgY2VudGVycywgYW5kIGNvbnRlbXBvcmFyeSBhcmNoaXRlY3R1cmVcbi0gKipIaXN0b3JpYyBzaXRlcyoqOiBBbmNpZW50IHRlbXBsZXMgYW5kIHRyYWRpdGlvbmFsIG5laWdoYm9yaG9vZHMgKEFzYWt1c2EsIEhhcmFqdWt1KVxuLSAqKkN1bHR1cmUqKjogTXVzZXVtcywgdGhlYXRlcnMsIGFuZCBkaXZlcnNlIGVudGVydGFpbm1lbnQgZGlzdHJpY3RzXG4tICoqVHJhbnNwb3J0YXRpb24qKjogRXh0cmVtZWx5IGVmZmljaWVudCB0cmFpbiBhbmQgc3Vid2F5IHN5c3RlbXNcbi0gKipEaXN0cmljdHMqKjogRWFjaCBhcmVhIGhhcyBkaXN0aW5jdCBjaGFyYWN0ZXLigJRTaGlidXlhICh5b3V0aCBjdWx0dXJlKSwgR2luemEgKHVwc2NhbGUgc2hvcHBpbmcpLCBBa2loYWJhcmEgKGVsZWN0cm9uaWNzKVxuLSAqKkZvb2Qgc2NlbmUqKjogRnJvbSBzdHJlZXQgZm9vZCB0byBNaWNoZWxpbi1zdGFycmVkIHJlc3RhdXJhbnRzXG5cblRva3lvIHNlcnZlcyBhcyBKYXBhbidzIHBvbGl0aWNhbCwgZWNvbm9taWMsIGFuZCBjdWx0dXJhbCBjZW50ZXIsIGFuZCBpcyBhIG1ham9yIGdsb2JhbCBmaW5hbmNpYWwgaHViLlxuXG5Xb3VsZCB5b3UgbGlrZSB0byBrbm93IG1vcmUgYWJvdXQgYW55IHNwZWNpZmljIGFzcGVjdD8ifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6MTcsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjozMjYsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Im5vdF9hdmFpbGFibGUifX0= + recorded_at: Mon, 13 Jul 2026 23:14:01 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_bare.yml new file mode 100644 index 00000000..3f6bbc2a --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_bare.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + is the capital of France?","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '118' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:22 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:20Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:21Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:20Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:20Z' + Request-Id: + - req_011CczuVqTogfsDKsc3GdQBs + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-b7334fb52070a9b1fb6ad6cba8095f74-9f14d857f4c04338-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfbbcf87e6142-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuVqiC7Z6Reb5UniYiS","type":"message","role":"assistant","content":[{"type":"text","text":"The + capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:22 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_message_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_message_bare.yml new file mode 100644 index 00000000..ffa536c1 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_message_bare.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Explain + quantum computing in bare terms.","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '128' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:14 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:11Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:14Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:11Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:11Z' + Request-Id: + - req_011CczuVAQK22xdHyTKU6BdX + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-ca7e298abae1dfbfd350d077614e85f4-94dfc97b817b499f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfb837b949d09-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1VkJiam5MVFJtNUJyclE5VE0iLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIFF1YW50dW0gQ29tcHV0aW5nIGluIEJhcmUgVGVybXNcblxuIyMgVGhlIEJhc2ljIERpZmZlcmVuY2VcblxuKipSZWd1bGFyIGNvbXB1dGVycyoqIHVzZSBiaXRzIHRoYXQgYXJlIGVpdGhlciAwIG9yIDEuXG5cbioqUXVhbnR1bSBjb21wdXRlcnMqKiB1c2UgcXViaXRzIHRoYXQgY2FuIGJlIDAsIDEsIG9yICpib3RoIGF0IHRoZSBzYW1lIHRpbWUqIChjYWxsZWQgc3VwZXJwb3NpdGlvbikuXG5cbiMjIFdoeSBUaGlzIE1hdHRlcnNcblxuSW1hZ2luZSBzZWFyY2hpbmcgYSBsaWJyYXJ5OlxuLSBBIHJlZ3VsYXIgY29tcHV0ZXIgY2hlY2tzIGJvb2sgMSwgdGhlbiBib29rIDIsIHRoZW4gYm9vayAzLi4uXG4tIEEgcXVhbnR1bSBjb21wdXRlciBjYW4gY2hlY2sgbWFueSBib29rcyBzaW11bHRhbmVvdXNseSBiZWNhdXNlIHF1Yml0cyBleGlzdCBpbiBtdWx0aXBsZSBzdGF0ZXMgYXQgb25jZS5cblxuIyMgS2V5IEFkdmFudGFnZXNcblxuKipTcGVlZCBvbiBzcGVjaWZpYyBwcm9ibGVtcyoqOiBRdWFudHVtIGNvbXB1dGVycyBjYW4gc29sdmUgY2VydGFpbiB0eXBlcyBvZiBwcm9ibGVtcyBleHBvbmVudGlhbGx5IGZhc3RlcuKAlGxpa2UgYnJlYWtpbmcgZW5jcnlwdGlvbiwgc2ltdWxhdGluZyBtb2xlY3VsZXMsIG9yIG9wdGltaXphdGlvbiBwdXp6bGVzLlxuXG4jIyBUaGUgQ2F0Y2hcblxuLSBUaGV5J3JlIGZyYWdpbGUgYW5kIG5lZWQgZXh0cmVtZSBjb2xkIHRvIG9wZXJhdGVcbi0gVGhleSBvbmx5IGhlbHAgd2l0aCBjZXJ0YWluIHByb2JsZW0gdHlwZXMsIG5vdCBldmVyeWRheSB0YXNrc1xuLSBUaGV5J3JlIHByb25lIHRvIGVycm9yc1xuLSBXZSdyZSBzdGlsbCBpbiBlYXJseSBzdGFnZXPigJR0aGV5J3JlIG5vdCByZXBsYWNpbmcgeW91ciBsYXB0b3BcblxuIyMgU2ltcGxlIEFuYWxvZ3lcblxuUmVndWxhciBjb21wdXRpbmcgaXMgbGlrZSBjbGltYmluZyBhIG1hemUgb25lIHBhdGggYXQgYSB0aW1lLiBRdWFudHVtIGNvbXB1dGluZyBleHBsb3JlcyBtYW55IHBhdGhzIHNpbXVsdGFuZW91c2x5LCB0aGVuIHJldmVhbHMgdGhlIGV4aXQuXG5cbi0tLVxuXG4qKkJvdHRvbSBsaW5lKio6IFF1YW50dW0gY29tcHV0ZXJzIGFyZSBzcGVjaWFsaXplZCB0b29scyBmb3Igc3BlY2lmaWMgaGFyZCBwcm9ibGVtcywgbm90IGdlbmVyYWwtcHVycG9zZSB1cGdyYWRlcyB0byByZWd1bGFyIGNvbXB1dGVycy4ifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6MTUsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjoyNzEsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Im5vdF9hdmFpbGFibGUifX0= + recorded_at: Mon, 13 Jul 2026 23:14:14 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_message_object.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_message_object.yml new file mode 100644 index 00000000..5cfd83c9 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_message_object.yml @@ -0,0 +1,105 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + are the main differences between Ruby and Python?","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '142' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:55 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:51Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:55Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:51Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:51Z' + Request-Id: + - req_011CczuTeo4BYL34qKV1gxdt + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-86528915df6fba1346fbbb81347d87b1-69fc1cb04c50b3a6-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfb02fd86df82-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1VGdmQjg0bXZFY25zeFZhc2IiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIEtleSBEaWZmZXJlbmNlcyBCZXR3ZWVuIFJ1YnkgYW5kIFB5dGhvblxuXG4jIyBQaGlsb3NvcGh5ICYgRGVzaWduXG4tICoqUHl0aG9uKio6IFwiVGhlcmUgc2hvdWxkIGJlIG9uZeKAlGFuZCBwcmVmZXJhYmx5IG9ubHkgb25l4oCUb2J2aW91cyB3YXkgdG8gZG8gaXRcIlxuLSAqKlJ1YnkqKjogRW1waGFzaXplcyBmbGV4aWJpbGl0eSBhbmQgZGV2ZWxvcGVyIGhhcHBpbmVzczsgbXVsdGlwbGUgd2F5cyB0byBzb2x2ZSBwcm9ibGVtc1xuXG4jIyBTeW50YXggJiBSZWFkYWJpbGl0eVxuLSAqKlB5dGhvbioqOiBFbmZvcmNlcyBpbmRlbnRhdGlvbiBmb3IgY29kZSBibG9ja3M7IHN0cmljdCwgcHJlZGljdGFibGUgc3ludGF4XG4tICoqUnVieSoqOiBNb3JlIGZsZXhpYmxlIHN5bnRheDsgdXNlcyBgZW5kYCBrZXl3b3JkczsgYWxsb3dzIG9wdGlvbmFsIHBhcmVudGhlc2VzIGFuZCBzZW1pY29sb25zXG5cbiMjIFBlcmZvcm1hbmNlXG4tICoqUHl0aG9uKio6IEdlbmVyYWxseSBmYXN0ZXIgZXhlY3V0aW9uLCBlc3BlY2lhbGx5IHdpdGggTnVtUHkgZm9yIG51bWVyaWNhbCBjb21wdXRpbmdcbi0gKipSdWJ5Kio6IFNsb3dlciwgdGhvdWdoIG9wdGltaXphdGlvbnMgbGlrZSBKUnVieSBleGlzdFxuXG4jIyBVc2UgQ2FzZXNcbi0gKipQeXRob24qKjogRGF0YSBzY2llbmNlLCBBSS9NTCwgc2NpZW50aWZpYyBjb21wdXRpbmcsIHNjcmlwdGluZywgYmFja2VuZCB3ZWIgKERqYW5nbylcbi0gKipSdWJ5Kio6IFdlYiBkZXZlbG9wbWVudCAoUmFpbHMpLCBhdXRvbWF0aW9uLCBzY3JpcHRpbmdcblxuIyMgV2ViIEZyYW1ld29ya3Ncbi0gKipQeXRob24qKjogRGphbmdvLCBGbGFza1xuLSAqKlJ1YnkqKjogUnVieSBvbiBSYWlscyAoZG9taW5hbnQgZnJhbWV3b3JrKVxuXG4jIyBDb21tdW5pdHkgJiBFY29zeXN0ZW1cbi0gKipQeXRob24qKjogTGFyZ2VyIGNvbW11bml0eTsgbW9yZSBsaWJyYXJpZXMgZm9yIGRhdGEgc2NpZW5jZSBhbmQgTUxcbi0gKipSdWJ5Kio6IFNtYWxsZXIgYnV0IHBhc3Npb25hdGUgY29tbXVuaXR5OyBzdHJvbmcgUmFpbHMgZWNvc3lzdGVtXG5cbiMjIExlYXJuaW5nIEN1cnZlXG4tICoqUHl0aG9uKio6IEdlbmVyYWxseSBjb25zaWRlcmVkIGVhc2llciBmb3IgYmVnaW5uZXJzOyBtb3JlIHJlYWRhYmxlXG4tICoqUnVieSoqOiBNb3JlIFwibWFnaWNhbFwiOyBSYWlscyBhYnN0cmFjdGlvbnMgY2FuIG9ic2N1cmUgZnVuZGFtZW50YWxzXG5cbiMjIFR5cGUgU3lzdGVtXG4tICoqUHl0aG9uKio6IER5bmFtaWNhbGx5IHR5cGVkOyBpbmNyZWFzaW5nbHkgc3VwcG9ydGluZyB0eXBlIGhpbnRzXG4tICoqUnVieSoqOiBEeW5hbWljYWxseSB0eXBlZDsgbWluaW1hbCB0eXBlIHN1cHBvcnRcblxuIyMgRGV2ZWxvcG1lbnQgU3BlZWRcbi0gKipSdWJ5IChSYWlscykqKjogRmFtb3VzIGZvciByYXBpZCBkZXZlbG9wbWVudCB3aXRoIGNvbnZlbnRpb25zIG92ZXIgY29uZmlndXJhdGlvblxuLSAqKlB5dGhvbioqOiBBbHNvIGZhc3QsIGJ1dCBsZXNzIG9waW5pb25hdGVkXG5cbioqQ2hvb3NlIFB5dGhvbioqIGZvciBkYXRhIHNjaWVuY2UsIE1MLCBvciBicm9hZCB0ZWNoIGVtcGxveW1lbnQuICoqQ2hvb3NlIFJ1YnkqKiBpZiB5b3UgbG92ZSBlbGVnYW50IHN5bnRheCBhbmQgd2FudCB0byBidWlsZCB3ZWIgYXBwcyBxdWlja2x5IHdpdGggUmFpbHMuIn1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjE3LCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6MzgyLCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCIsImluZmVyZW5jZV9nZW8iOiJub3RfYXZhaWxhYmxlIn19 + recorded_at: Mon, 13 Jul 2026 23:13:55 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_messages_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_messages_bare.yml new file mode 100644 index 00000000..361ca8cf --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_messages_bare.yml @@ -0,0 +1,106 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"Tell + me a fun fact about Ruby programming.","type":"text"},{"text":"Now explain + why that''s interesting.","type":"text"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '216' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:05 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:02Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:05Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:01Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:02Z' + Request-Id: + - req_011CczuUSqzWysv2LmoY6nWK + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-3d80994c0cf86d1066a4b6089c60bed8-d53d5d20d0efa37f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfb46ffe96037-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1VVRBYjUydzNGek0yQ2drY28iLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIEZ1biBGYWN0OiBFdmVyeXRoaW5nIGluIFJ1YnkgaXMgYW4gT2JqZWN0XG5cbkV2ZW4gbnVtYmVycywgc3RyaW5ncywgYW5kIGBuaWxgIGFyZSBvYmplY3RzIHdpdGggbWV0aG9kcyB5b3UgY2FuIGNhbGwgb24gdGhlbTpcblxuYGBgcnVieVxuNS50aW1lcyB7IHxpfCBwdXRzIFwiSGVsbG8gI3tpfVwiIH1cblwicnVieVwiLnJldmVyc2UgICMgPT4gXCJ5YnVyXCJcbm5pbC5jbGFzcyAgICAgICAjID0+IE5pbENsYXNzXG5gYGBcblxuIyMgV2h5IFRoYXQncyBJbnRlcmVzdGluZ1xuXG5UaGlzIGNyZWF0ZXMgYSAqKmJlYXV0aWZ1bGx5IGNvbnNpc3RlbnQgbWVudGFsIG1vZGVsKiouIFlvdSBkb24ndCBoYXZlIHRvIHJlbWVtYmVyIHNwZWNpYWwgc3ludGF4IGZvciBwcmltaXRpdmVzIHZlcnN1cyBvYmplY3Rz4oCUZXZlcnl0aGluZyBiZWhhdmVzIHRoZSBzYW1lIHdheS4gXG5cbkluc3RlYWQgb2YgdGhpbmtpbmcgXCJudW1iZXJzIGFyZSBzcGVjaWFsLFwiIHlvdSB0aGluayBcImV2ZXJ5dGhpbmcgcmVzcG9uZHMgdG8gbWVzc2FnZXMuXCIgVGhpcyBsZWFkcyB0bzpcblxuLSAqKlJlYWRhYmlsaXR5Kio6IGA1LnRpbWVzYCByZWFkcyBsaWtlIEVuZ2xpc2gsIG5vdCB3ZWlyZCBzeW50YXhcbi0gKipQb3dlcioqOiBZb3UgY2FuIGV4dGVuZCBldmVuIGJ1aWx0LWluIHR5cGVzIHdpdGggeW91ciBvd24gbWV0aG9kc1xuLSAqKkVsZWdhbmNlKio6IExlc3MgY29nbml0aXZlIG92ZXJoZWFkIGxlYXJuaW5nIHRoZSBsYW5ndWFnZSdzIFwiZXhjZXB0aW9uc1wiXG5cbkl0J3MgYSBkZXNpZ24gcGhpbG9zb3BoeSB0aGF0IGluZmx1ZW5jZWQgbWFueSBsYW5ndWFnZXMgYWZ0ZXIgUnVieS4gV2hpbGUgbm90IHVuaXF1ZSAoU21hbGx0YWxrIGRpZCBpdCBmaXJzdCksIFJ1YnkgbWFkZSBpdCBhY2Nlc3NpYmxlIGFuZCBmdW7igJR3aGljaCBpcyBwYXJ0bHkgd2h5IFJ1YnkgYmVjYW1lIHNvIHBvcHVsYXIgZm9yIHdlYiBkZXZlbG9wbWVudCB3aXRoIFJhaWxzLiBUaGUgbGFuZ3VhZ2UganVzdCAqZmVlbHMqIHNtb290aCB0byB1c2UuIn1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjIzLCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6MjQ5LCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCIsImluZmVyZW5jZV9nZW8iOiJub3RfYXZhaWxhYmxlIn19 + recorded_at: Mon, 13 Jul 2026 23:14:05 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_messages_object.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_messages_object.yml new file mode 100644 index 00000000..cb8dba61 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_text_messages_object.yml @@ -0,0 +1,125 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"I + can help you with programming questions.","role":"assistant"},{"content":"What + are the benefits of using ActiveRecord?","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '208' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:29 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:25Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:29Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:25Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:25Z' + Request-Id: + - req_011CczuWArNknrjc49Man4wt + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-07f62c031d57e499ee37322abb3316b0-fe8393b67012a607-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfbd95ac478ff-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuWDQurRqJdqZLmKp8S","type":"message","role":"assistant","content":[{"type":"text","text":"# + Benefits of Using ActiveRecord\n\nActiveRecord is Rails'' ORM (Object-Relational + Mapping) layer. Here are its key benefits:\n\n## 1. **Simplified Database + Interactions**\n- Write less SQL code\n- Use Ruby objects instead of raw queries\n- + Intuitive, readable syntax\n\n```ruby\n# Instead of SQL\nUser.where(active: + true).order(:created_at)\n# vs SELECT * FROM users WHERE active = true ORDER + BY created_at\n```\n\n## 2. **Reduced Boilerplate**\n- Automatic CRUD operations\n- + No need to write repetitive database code\n- Convention over configuration\n\n## + 3. **Database Agnostic**\n- Switch databases with minimal code changes\n- + Same code works with PostgreSQL, MySQL, SQLite, etc.\n\n## 4. **Built-in Validations + & Callbacks**\n```ruby\nclass User < ApplicationRecord\n validates :email, + presence: true\n before_save :downcase_email\nend\n```\n\n## 5. **Associations + Management**\n```ruby\nclass User < ApplicationRecord\n has_many :posts\n belongs_to + :account\nend\n\nuser.posts # Automatic relationship queries\n```\n\n## 6. + **Migrations**\n- Version control for database schema\n- Easy rollbacks and + schema changes\n\n## 7. **Security**\n- SQL injection protection via parameterized + queries\n- Built-in protection mechanisms\n\n## 8. **Productivity**\n- Less + code to write and maintain\n- Faster development cycles\n\n## Trade-offs to + Consider\n- Performance overhead vs. raw SQL\n- Less control over complex + queries\n- N+1 query problems if not careful\n\nWould you like examples of + any specific features?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":39,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":391,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:29 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_texts_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_texts_bare.yml new file mode 100644 index 00000000..31313e7f --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/messages_test/test_agent_texts_bare.yml @@ -0,0 +1,106 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"Tell + me a fun fact about Ruby programming.","type":"text"},{"text":"Now explain + why that''s interesting.","type":"text"}],"role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '216' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:18 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:14Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:18Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:14Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:14Z' + Request-Id: + - req_011CczuVQh38HbXMeJu22rkb + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-d025a956194a9a7bcb735c511d659c61-a4251ff771de1f2e-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfb98cacb1354-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1VlF4Zk5NVUtMWWlSYVFBdXQiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIEZ1biBGYWN0OiBSdWJ5J3MgXCJFdmVyeXRoaW5nIGlzIGFuIE9iamVjdFwiIFBoaWxvc29waHlcblxuSW4gUnVieSwgKipsaXRlcmFsbHkgZXZlcnl0aGluZyBpcyBhbiBvYmplY3QqKiDigJQgZXZlbiBudW1iZXJzLCBzdHJpbmdzLCBhbmQgYG5pbGAuIFlvdSBjYW4gY2FsbCBtZXRob2RzIGRpcmVjdGx5IG9uIHRoZW06XG5cbmBgYHJ1YnlcbjUudGltZXMgeyBwdXRzIFwiSGVsbG8hXCIgfVxuXCJydWJ5XCIudXBjYXNlXG5uaWwuY2xhc3MgICMgPT4gTmlsQ2xhc3NcbmBgYFxuXG4jIyBXaHkgVGhpcyBpcyBJbnRlcmVzdGluZ1xuXG5UaGlzIGRlc2lnbiBjaG9pY2UgbWFrZXMgUnVieSByZW1hcmthYmx5ICoqY29uc2lzdGVudCBhbmQgZWxlZ2FudCoqOlxuXG4xLiAqKk5vIHNwZWNpYWwgY2FzZXMqKiDigJQgWW91IGRvbid0IG5lZWQgdG8gbWVtb3JpemUgZGlmZmVyZW50IHJ1bGVzIGZvciBkaWZmZXJlbnQgZGF0YSB0eXBlcy4gVGhlIHNhbWUgb2JqZWN0LW9yaWVudGVkIHByaW5jaXBsZXMgYXBwbHkgZXZlcnl3aGVyZS5cblxuMi4gKipQb3dlcmZ1bCBleHByZXNzaXZlbmVzcyoqIOKAlCBZb3UgY2FuIHdyaXRlIG5hdHVyYWwsIHJlYWRhYmxlIGNvZGUuIGA1LnRpbWVzIHsgcHV0cyBcInhcIiB9YCByZWFkcyBhbG1vc3QgbGlrZSBFbmdsaXNoLCB3aGVyZWFzIG90aGVyIGxhbmd1YWdlcyByZXF1aXJlIHZlcmJvc2UgbG9vcHMuXG5cbjMuICoqTWV0aG9kIGNoYWluaW5nKiog4oCUIFNpbmNlIGV2ZXJ5dGhpbmcgcmV0dXJucyBhbiBvYmplY3QsIHlvdSBjYW4gY2hhaW4gbWV0aG9kcyB0b2dldGhlcjogYFwiaGVsbG9cIi51cGNhc2UucmV2ZXJzZS5sZW5ndGhgXG5cbjQuICoqRHVjayB0eXBpbmcqKiDigJQgSWYgYW4gb2JqZWN0IFwicXVhY2tzIGxpa2UgYSBkdWNrXCIgKGhhcyB0aGUgcmlnaHQgbWV0aG9kcyksIFJ1YnkgbGV0cyB5b3UgdXNlIGl0LCBmb3N0ZXJpbmcgZmxleGlibGUsIHByYWdtYXRpYyBjb2RlLlxuXG41LiAqKlByb2dyYW1tZXIgaGFwcGluZXNzKiog4oCUIFRoaXMgcGhpbG9zb3BoeSBlbmNvdXJhZ2VzIGEgZ2VudGxlciBsZWFybmluZyBjdXJ2ZSBhbmQgcmVkdWNlcyBmcmljdGlvbiBiZXR3ZWVuIHRoaW5raW5nIGFib3V0IGEgcHJvYmxlbSBhbmQgaW1wbGVtZW50aW5nIGl0LlxuXG5JdCdzIGEga2V5IHJlYXNvbiBSdWJ5IGJlY2FtZSBmYW1vdXMgZm9yIHJhcGlkIGRldmVsb3BtZW50IGFuZCB3aHkgaXQgcG93ZXJlZCBmcmFtZXdvcmtzIGxpa2UgUmFpbHMg4oCUIHRoZSBsYW5ndWFnZSBqdXN0IGdldHMgb3V0IG9mIHlvdXIgd2F5IGFuZCBsZXRzIHlvdSB0aGluayBhYm91dCBzb2x2aW5nIHByb2JsZW1zLiJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInN0b3BfZGV0YWlscyI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjoyMywiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfY3JlYXRpb24iOnsiZXBoZW1lcmFsXzVtX2lucHV0X3Rva2VucyI6MCwiZXBoZW1lcmFsXzFoX2lucHV0X3Rva2VucyI6MH0sIm91dHB1dF90b2tlbnMiOjMwNywic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoibm90X2F2YWlsYWJsZSJ9fQ== + recorded_at: Mon, 13 Jul 2026 23:14:18 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_object.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_object.yml new file mode 100644 index 00000000..c66ccead --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_object.yml @@ -0,0 +1,106 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + a JSON object with three primary colors in an array named ''colors''.","role":"user"},{"content":"Here + is the JSON requested:\n{","role":"assistant"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '226' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:46 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:46Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:46Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:45Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:46Z' + Request-Id: + - req_011CczuXiaNvZR3K9DCyXDNy + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-55ff9bfb43404015886e06851e5ef353-b0b5488faa2c1aa2-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfc5c7952cec5-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuXipWVhLMsEkj25XRf","type":"message","role":"assistant","content":[{"type":"text","text":"\n \"colors\": + [\"red\", \"yellow\", \"blue\"]\n}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":31,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:46 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_object_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_object_bare.yml new file mode 100644 index 00000000..a832730a --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_object_bare.yml @@ -0,0 +1,106 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + a JSON object with three primary colors in an array named ''colors''.","role":"user"},{"content":"Here + is the JSON requested:\n{","role":"assistant"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '226' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:50 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:50Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:50Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:49Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:50Z' + Request-Id: + - req_011CczuXzqRRWcYL2aP3Xsp5 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-18e91676ec8dacb9a4191306790a1b86-f9d64dc55464d9fc-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfc743c2cf64e-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuY144ssRbesAQX8fGz","type":"message","role":"assistant","content":[{"type":"text","text":"\n \"colors\": + [\"red\", \"yellow\", \"blue\"]\n}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":31,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:50 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit.yml new file mode 100644 index 00000000..19162539 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit.yml @@ -0,0 +1,104 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + the three primary colors.","role":"user"}],"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '315' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:48 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:48Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:48Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:47Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:48Z' + Request-Id: + - req_011CczuXqmimCP2L8H7KY6et + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-977d40d65f23e6c8db38b186d63292e0-3b4f9cef86731e77-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfc670b92e8cc-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuXrNgYJfRSVogTjq6k","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":14,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:48 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit_bare.yml new file mode 100644 index 00000000..d8b002d9 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit_bare.yml @@ -0,0 +1,104 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + the three primary colors.","role":"user"}],"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '315' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:47 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:47Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:47Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:46Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:47Z' + Request-Id: + - req_011CczuXmKa7qxisxb4q4eQF + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-fa3fa0b0835da1d11e2d6517c76eb2e7-3a19aaa858d29561-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfc608873dac8-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuXnpsAk4Z7UqqUFcHK","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":14,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:47 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_inline.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_inline.yml new file mode 100644 index 00000000..ce174d21 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_inline.yml @@ -0,0 +1,104 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + the three primary colors.","role":"user"}],"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '315' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:52 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:52Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:52Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:51Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:52Z' + Request-Id: + - req_011CczuY7ZEi9x26zd5sPr33 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-c3890eec872a449932232221e82d0a02-4be1ff2c7501f2f8-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfc7e1c83eb31-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuYAWLpQhgRKmjRyNY9","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":14,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:52 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_named.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_named.yml new file mode 100644 index 00000000..4907b064 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_named.yml @@ -0,0 +1,104 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + the three primary colors.","role":"user"}],"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '315' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:49 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:49Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:49Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:48Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:49Z' + Request-Id: + - req_011CczuXwSn3ymEKQTwyK8TW + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-a2b02b1d8f09cfe480622adb4fc99adc-db74197e807cb094-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfc6f395d37c1-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuXwzmdX8VyycFTKkF6","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":14,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:49 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_text.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_text.yml new file mode 100644 index 00000000..9f2f9077 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_text.yml @@ -0,0 +1,107 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"List + three primary colors.","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '114' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:51 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:50Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:51Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:50Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:50Z' + Request-Id: + - req_011CczuY3TSFfiQa21uSUagU + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-3342f8db2d3f94fdf6a511a203272990-d16e2152f0026d6f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfc780a3fe16d-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuY3gppjSzhwfhzDc9x","type":"message","role":"assistant","content":[{"type":"text","text":"The + three primary colors are:\n\n1. **Red**\n2. **Yellow**\n3. **Blue**\n\nThese + are the traditional primary colors in art and design, as they cannot be created + by mixing other colors together."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":50,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:51 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_text_bare.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_text_bare.yml new file mode 100644 index 00000000..1aa7ed4f --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/response_format_test/test_agent_response_text_bare.yml @@ -0,0 +1,107 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"List + three primary colors.","role":"user"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '114' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:45 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:45Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:45Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:44Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:45Z' + Request-Id: + - req_011CczuXdL7RQ4v9wbxqLEnK + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-d62f0c65cbc71f520e2a818902399bbd-62760976f68b8def-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfc54ba6d2511-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuXdeiDfaaZr82V4RZK","type":"message","role":"assistant","content":[{"type":"text","text":"The + three primary colors are:\n\n1. **Red**\n2. **Yellow**\n3. **Blue**\n\nThese + are considered primary in traditional color theory because they cannot be + created by mixing other colors, and other colors can be mixed from them."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":55,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:45 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_input_schema.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_input_schema.yml new file mode 100644 index 00000000..0a46fbc9 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_input_schema.yml @@ -0,0 +1,213 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather in Boston?","role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather in a given location"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '370' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:41 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:41Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:41Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:40Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:41Z' + Request-Id: + - req_011CczuXLmhbKs3XDa6zPjP7 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-c1a8eee8e56ac555579a0c735e19f96d-ed8663a9935f50ed-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfc3c9f3ad4f9-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuXM3aG9uj5VAVr1e94","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01JjtiyBFjqCmSEDVM54zyC8","name":"get_weather","input":{"location":"Boston, + MA"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":584,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":56,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:41 GMT +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather in Boston?","role":"user"},{"content":[{"id":"toolu_01JjtiyBFjqCmSEDVM54zyC8","input":{"location":"Boston, + MA"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01JjtiyBFjqCmSEDVM54zyC8","type":"tool_result","content":"{\"location\":\"Boston, + MA\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather in a given location"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '751' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:42 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:42Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:42Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:41Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:42Z' + Request-Id: + - req_011CczuXQWS7pHv6Ay5CH2EP + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-8dc67b7b2ef18d1af57785642a607e07-8ac0996f37e2bd43-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfc420f22f457-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1WFF0MVVaNFBtZkJFNEpwYTIiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBpbiBCb3N0b24sIE1BIGlzIGN1cnJlbnRseSAqKnN1bm55Kiogd2l0aCBhIHRlbXBlcmF0dXJlIG9mICoqNzLCsEYqKi4gSXQncyBhIGJlYXV0aWZ1bCBkYXkhIn1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjY2OSwiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfY3JlYXRpb24iOnsiZXBoZW1lcmFsXzVtX2lucHV0X3Rva2VucyI6MCwiZXBoZW1lcmFsXzFoX2lucHV0X3Rva2VucyI6MH0sIm91dHB1dF90b2tlbnMiOjMwLCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCIsImluZmVyZW5jZV9nZW8iOiJub3RfYXZhaWxhYmxlIn19 + recorded_at: Mon, 13 Jul 2026 23:14:42 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_multiple_tools.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_multiple_tools.yml new file mode 100644 index 00000000..6b69d60e --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_multiple_tools.yml @@ -0,0 +1,210 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather in NYC and what''s 5 plus 3?","role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather"},{"input_schema":{"type":"object","properties":{"operation":{"type":"string","enum":["add","subtract","multiply","divide"]},"a":{"type":"number"},"b":{"type":"number"}},"required":["operation","a","b"]},"name":"calculate","description":"Perform + basic arithmetic"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '571' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:35 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:35Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:35Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:34Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:35Z' + Request-Id: + - req_011CczuWs64y44wvZEB3dPgC + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-14dda71557d02a736543ac5eb905bfd4-f2840cad95b671e7-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfc141dec053e-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuWsZbJ64qXjs8WPyFK","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01WMzpwQZa4pEVpK1sLLmkeu","name":"get_weather","input":{"location":"NYC"},"caller":{"type":"direct"}},{"type":"tool_use","id":"toolu_0146K96AqydB1bz31Su3Tfcv","name":"calculate","input":{"operation":"add","a":5,"b":3},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":662,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":122,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:35 GMT +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather in NYC and what''s 5 plus 3?","role":"user"},{"content":[{"id":"toolu_01WMzpwQZa4pEVpK1sLLmkeu","input":{"location":"NYC"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}},{"id":"toolu_0146K96AqydB1bz31Su3Tfcv","input":{"operation":"add","a":5,"b":3},"name":"calculate","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01WMzpwQZa4pEVpK1sLLmkeu","type":"tool_result","content":"{\"location\":\"NYC\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false},{"tool_use_id":"toolu_0146K96AqydB1bz31Su3Tfcv","type":"tool_result","content":"{\"operation\":\"add\",\"a\":5,\"b\":3,\"result\":8}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather"},{"input_schema":{"type":"object","properties":{"operation":{"type":"string","enum":["add","subtract","multiply","divide"]},"a":{"type":"number"},"b":{"type":"number"}},"required":["operation","a","b"]},"name":"calculate","description":"Perform + basic arithmetic"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '1234' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:36 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:35Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:36Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:35Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:35Z' + Request-Id: + - req_011CczuWwaSTuynCtqWq5xuC + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-e2671f6a3a6e47bdd169aeddab675602-a012f0cb082f7440-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfc1abb34e8cc-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1V3dwcGcyMlhTU0w2NUFhUnQiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJHcmVhdCEgSGVyZSBhcmUgdGhlIGFuc3dlcnM6XG5cbioqV2VhdGhlciBpbiBOWUM6KiogSXQncyBjdXJyZW50bHkgNzLCsEYgYW5kIHN1bm55IVxuXG4qKjUgcGx1cyAzOioqIFRoZSBhbnN3ZXIgaXMgOC4ifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6ODc2LCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6NDAsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Im5vdF9hdmFpbGFibGUifX0= + recorded_at: Mon, 13 Jul 2026 23:14:36 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_parameters.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_parameters.yml new file mode 100644 index 00000000..05348756 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_parameters.yml @@ -0,0 +1,213 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather in San Francisco?","role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather in a given location"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '377' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:37 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:37Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:37Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:36Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:37Z' + Request-Id: + - req_011CczuX1rfWCJczbxUMM4RL + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-4f825a47a8c85a064eb2c0e9e51e47cb-d336dec7099095e5-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfc20ef46d883-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuX2vQiQ5QGtxW9HfCM","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Drw7NC58pFTX2bBTm1DRdt","name":"get_weather","input":{"location":"San + Francisco, CA"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":57,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:37 GMT +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather in San Francisco?","role":"user"},{"content":[{"id":"toolu_01Drw7NC58pFTX2bBTm1DRdt","input":{"location":"San + Francisco, CA"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01Drw7NC58pFTX2bBTm1DRdt","type":"tool_result","content":"{\"location\":\"San + Francisco, CA\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather in a given location"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '772' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:37 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:37Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:37Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:37Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:37Z' + Request-Id: + - req_011CczuX6AsPSHZRMu6DLonX + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-e1ba46cdda5973626e3714ad70d54385-117054bae1c0cadb-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfc274b2c6ad3-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1WDZSVnlLZGM3c0FDcGFWZkQiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBpbiBTYW4gRnJhbmNpc2NvLCBDQSBpcyBjdXJyZW50bHkgKipzdW5ueSoqIHdpdGggYSB0ZW1wZXJhdHVyZSBvZiAqKjcywrBGKiouIEJlYXV0aWZ1bCBkYXkgb3V0IHRoZXJlISJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInN0b3BfZGV0YWlscyI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjo2NzIsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjozMCwic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoibm90X2F2YWlsYWJsZSJ9fQ== + recorded_at: Mon, 13 Jul 2026 23:14:37 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_auto.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_auto.yml new file mode 100644 index 00000000..a64692b5 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_auto.yml @@ -0,0 +1,108 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather?","role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}],"tool_choice":{"type":"auto"}}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '299' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:40 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:40Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:40Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:39Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:40Z' + Request-Id: + - req_011CczuXH3Dq28karqTXps52 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-68bc4b7248d8bb5a0a48dc0355cdcb00-0096c1d0ddf69523-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfc372ddfed35-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuXHJ6dRwDaTiMsPhKS","type":"message","role":"assistant","content":[{"type":"text","text":"I''d + be happy to help you check the weather! However, I need to know which location + you''d like the weather for. Could you please tell me the city or location + you''re interested in?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":558,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":43,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:40 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_required.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_required.yml new file mode 100644 index 00000000..1496dabd --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_required.yml @@ -0,0 +1,211 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather?","role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}],"tool_choice":{"type":"any"}}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '298' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:33 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:33Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:33Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:32Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:33Z' + Request-Id: + - req_011CczuWjd73FLVZfNxWduvz + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-f69a58d3ee72eaba10dc1039d36b1d08-162c5675d999ca2c-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfc004bde1986-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuWkF4V5F7Nc39ku45x","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_012fc26MgNwxFQm4F95xq6hU","name":"get_weather","input":{"location":"current + location"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":650,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":39,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:33 GMT +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather?","role":"user"},{"content":[{"id":"toolu_012fc26MgNwxFQm4F95xq6hU","input":{"location":"current + location"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_012fc26MgNwxFQm4F95xq6hU","type":"tool_result","content":"{\"location\":\"current + location\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '662' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:34 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:33Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:34Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:33Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:33Z' + Request-Id: + - req_011CczuWoJc6DPF5Cj5XgpDh + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-8a2feb35f4ed6dd5e1f85b2bde173a8a-347c8276eb9e8ba3-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfc0e999bcf1f-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1V29hRUoxMnd0azR5ZWF2ZnkiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBhdCB5b3VyIGN1cnJlbnQgbG9jYXRpb24gaXM6XG4tICoqVGVtcGVyYXR1cmU6KiogNzLCsEZcbi0gKipDb25kaXRpb25zOioqIFN1bm55XG5cbkl0J3MgYSBuaWNlIGRheSEgV291bGQgeW91IGxpa2UgdG8ga25vdyB0aGUgd2VhdGhlciBmb3IgYSBzcGVjaWZpYyBsb2NhdGlvbiBpbnN0ZWFkPyJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInN0b3BfZGV0YWlscyI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjo2NDEsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjo0OCwic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoibm90X2F2YWlsYWJsZSJ9fQ== + recorded_at: Mon, 13 Jul 2026 23:14:34 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_specific.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_specific.yml new file mode 100644 index 00000000..539ff5ab --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_specific.yml @@ -0,0 +1,211 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather?","role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}],"tool_choice":{"type":"tool","name":"get_weather"}}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '320' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:38 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:38Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:38Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:38Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:38Z' + Request-Id: + - req_011CczuX9Qaqjk74qHFfJKqE + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-f76e58c7142faa6af7ad4f90c366a2b5-7a3b7f42ff8f50ab-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1abfc2bf9482712-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011CczuX9eiYSvkDvuKUcXZF","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01FsXyZzMFaFpRo7VoLTmNLE","name":"get_weather","input":{"location":"current + location"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":655,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":34,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Mon, 13 Jul 2026 23:14:38 GMT +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s + the weather?","role":"user"},{"content":[{"id":"toolu_01FsXyZzMFaFpRo7VoLTmNLE","input":{"location":"current + location"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01FsXyZzMFaFpRo7VoLTmNLE","type":"tool_result","content":"{\"location\":\"current + location\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}]}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '662' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:14:39 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:14:39Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:14:39Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:14:38Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:14:39Z' + Request-Id: + - req_011CczuXCJDWi1SqhPssmwBK + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-5849752512262f94c5adb8774f41de6d-051b62694df613a1-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfc303aa5c236-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1WENiNVg3N0d1S3NlQ3VKWEQiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBhdCB5b3VyIGN1cnJlbnQgbG9jYXRpb24gaXMgKipzdW5ueSoqIHdpdGggYSB0ZW1wZXJhdHVyZSBvZiAqKjcywrBGKiogKGFib3V0IDIywrBDKS4gSXQncyBhIG5pY2UgZGF5IVxuXG5JZiB5b3UnZCBsaWtlIHRvIGtub3cgdGhlIHdlYXRoZXIgZm9yIGEgc3BlY2lmaWMgbG9jYXRpb24sIGp1c3QgbGV0IG1lIGtub3cgdGhlIGNpdHkgb3IgYXJlYSBuYW1lIGFuZCBJIGNhbiBnZXQgdGhhdCBpbmZvcm1hdGlvbiBmb3IgeW91LiJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInN0b3BfZGV0YWlscyI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjo2NDEsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjo2Nywic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoibm90X2F2YWlsYWJsZSJ9fQ== + recorded_at: Mon, 13 Jul 2026 23:14:39 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/response_test/prompt.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/response_test/prompt.yml new file mode 100644 index 00000000..b65fd008 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/integration/anthropic/response_test/prompt.yml @@ -0,0 +1,103 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-sonnet-5","messages":[{"content":"Say ''test'' once.","role":"user"}],"max_tokens":10}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '101' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:13:23 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:13:22Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:13:23Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:13:22Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:13:22Z' + Request-Id: + - req_011CczuRYGLbzxe6cBk4nRWF + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-393096e0b413e5fc945371bbe3d095f6-7e5da0c0f06d1cea-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfa50abd7cce5-SJC + body: + encoding: ASCII-8BIT + string: '{"model":"claude-sonnet-5","id":"msg_011CczuRYistGqTdi9CZcwnf","type":"message","role":"assistant","content":[{"type":"text","text":"test"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":3,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Mon, 13 Jul 2026 23:13:23 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/anthropic-1.14/usage/anthropic_prompt.yml b/test/fixtures/vcr_cassettes/anthropic-1.14/usage/anthropic_prompt.yml new file mode 100644 index 00000000..2b958565 --- /dev/null +++ b/test/fixtures/vcr_cassettes/anthropic-1.14/usage/anthropic_prompt.yml @@ -0,0 +1,104 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.anthropic.com/v1/messages + body: + encoding: UTF-8 + string: '{"model":"claude-haiku-4-5","messages":[{"content":"Say hello","role":"user"}],"max_tokens":4096}' + headers: + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - application/json + User-Agent: + - Anthropic::Client/Ruby 1.14.0 + Host: + - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.14.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 3.4.7 + Content-Type: + - application/json + Anthropic-Version: + - '2023-06-01' + X-Api-Key: + - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '97' + response: + status: + code: 200 + message: OK + headers: + Date: + - Mon, 13 Jul 2026 23:15:32 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-13T23:15:32Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-13T23:15:32Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-13T23:15:31Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-13T23:15:32Z' + Request-Id: + - req_011Cczub6ZYds1nHBXT1Yby1 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-be32140cefcc76943012bb24a31acd5e-6b5f41639bcba7fe-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1abfd7aee6e3493-SJC + body: + encoding: ASCII-8BIT + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDY3p1YjdIaG94cVB0Nks2V2RFSEEiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJIZWxsbyEg8J+RiyBIb3cgY2FuIEkgaGVscCB5b3UgdG9kYXk/In1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjksImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjoxNiwic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoibm90X2F2YWlsYWJsZSJ9fQ== + recorded_at: Mon, 13 Jul 2026 23:15:32 GMT +recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/docs/actions/structured_output/anthropic_json.yml b/test/fixtures/vcr_cassettes/docs/actions/structured_output/anthropic_json.yml index 7809d285..6ea01c0d 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/structured_output/anthropic_json.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/structured_output/anthropic_json.yml @@ -5,16 +5,16 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-3-5-sonnet-latest","messages":[{"role":"user","content":"Extract - user data as JSON: Jane Smith, jane@example.com, 28"},{"role":"assistant","content":"Here - is the JSON requested:\n{"}],"max_tokens":4096}' + string: '{"model":"claude-haiku-4-5","messages":[{"content":"Extract user data + as JSON: Jane Smith, jane@example.com, 28","role":"user"},{"content":"Here + is the JSON requested:\n{","role":"assistant"}],"max_tokens":4096}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -40,14 +40,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '219' + - '211' response: status: code: 200 message: OK headers: Date: - - Sat, 25 Oct 2025 18:10:01 GMT + - Tue, 14 Jul 2026 01:04:15 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,50 +55,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '80000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '80000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-25T18:10:00Z' + - '2026-07-14T01:04:15Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '16000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '16000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-25T18:10:01Z' + - '2026-07-14T01:04:15Z' Anthropic-Ratelimit-Requests-Limit: - - '1000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-25T18:10:00Z' + - '2026-07-14T01:04:15Z' Anthropic-Ratelimit-Tokens-Limit: - - '96000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '96000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-25T18:10:00Z' + - '2026-07-14T01:04:15Z' Request-Id: - - req_011CUUNAq21NGmewXbXMmjj7 + - req_011Cd13syx5gJBJyU4qZZoPk Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '882' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-8086acd829de466951d5d44894cfc7ad-707d7e1786ead6a8-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 9943ab100e52cf1f-SJC + - a1ac9cbfbf6bed3a-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-3-5-sonnet-20241022","id":"msg_018FJQMQVen4z3nWiMmpQysK","type":"message","role":"assistant","content":[{"type":"text","text":"\n \"name\": - \"Jane Smith\",\n \"email\": \"jane@example.com\",\n \"age\": 28\n}"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":32,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":33,"service_tier":"standard"}}' - recorded_at: Sat, 25 Oct 2025 18:10:01 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13szVKuzf7itmmowFdd","type":"message","role":"assistant","content":[{"type":"text","text":"\n \"name\": + \"Jane Smith\",\n \"email\": \"jane@example.com\",\n \"age\": 28\n}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":32,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":33,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:04:15 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/structured_output/basic_json_object.yml b/test/fixtures/vcr_cassettes/docs/actions/structured_output/basic_json_object.yml index 9334b873..c6f74381 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/structured_output/basic_json_object.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/structured_output/basic_json_object.yml @@ -5,14 +5,15 @@ http_interactions: uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":"Extract user info as a JSON object: John Doe, 30, john@example.com","model":"gpt-4o","text":{"format":{"type":"json_object"}}}' + string: '{"model":"gpt-4o","input":"Extract user info as a JSON object: John + Doe, 30, john@example.com","text":{"format":{"type":"json_object"}}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -22,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -47,13 +48,35 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:12:19 GMT + - Tue, 14 Jul 2026 01:04:13 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1ac9cac9dbfeb34-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '891' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -66,57 +89,38 @@ http_interactions: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_54e2e82f6937411ab4b8bafab22526c4 - Openai-Processing-Ms: - - '2285' - X-Envoy-Upstream-Service-Time: - - '2357' - Cf-Cache-Status: - - DYNAMIC + - req_c4e24ff7e6fb4ed3baba5ea238edb85c Set-Cookie: - - __cf_bm=Qe0jGhuJTIufoElqsAShUzyPhKTvK3hz.TDrhYl3Oj0-1761505939-1.0.1.1-X2masx6HhAvtR7zHCugebZ3Q64VB4DxcBRQpsqyyFV8GQM2eSWihn7gvDG62V5dIVBSaEcjqws9ZK6659noAjylmK939tdKaPu4lGJi00II; - path=/; expires=Sun, 26-Oct-25 19:42:19 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=QnmnneJVDfnCdPVc_nZmLTVUZMf9hzCWnB.mmCi6ezY-1761505939497-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c43a84a3f5850-SJC + - __cf_bm=HjzD7oJUDdTzonM7Cq6j9gkGiXWHoKyt9pRG1IK0_g0-1783991052.2582796-1.0.1.1-VKXZd0K_9.skh10PCkHMWNDBbz28TxABx5c1nOa2F2EygGLepLeRbFm2nUpGzMF3EcCz76YXXg5ehkuOPqIcKWUQIQxK2lrPxQJcb2CbYr_IBUj1IM2Ay3pUbq7DQKYy; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:34:13 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_07ab16193157d89f0068fe729145048195853b87dc94c0f689", + "id": "resp_0af65308c3af3c5a006a558b0c4fb8819899ba091342ce4d6e", "object": "response", - "created_at": 1761505937, + "created_at": 1783991052, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991053, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "msg_07ab16193157d89f0068fe7292c35c819585bdfc4587d1d2a5", + "id": "msg_0af65308c3af3c5a006a558b0cd9a48198996ba47bfffee7cd", "type": "message", "status": "completed", "content": [ @@ -131,9 +135,12 @@ http_interactions: } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -148,6 +155,24 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [], "top_logprobs": 0, "top_p": 1.0, @@ -155,6 +180,7 @@ http_interactions: "usage": { "input_tokens": 24, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 27, @@ -166,5 +192,5 @@ http_interactions: "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:12:19 GMT -recorded_with: VCR 6.3.1 + recorded_at: Tue, 14 Jul 2026 01:04:13 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/structured_output/extraction.yml b/test/fixtures/vcr_cassettes/docs/actions/structured_output/extraction.yml index ee4ecadc..89013615 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/structured_output/extraction.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/structured_output/extraction.yml @@ -5,14 +5,15 @@ http_interactions: uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":"Extract user info as a JSON object: John Doe, 30, john@example.com","model":"gpt-4o","text":{"format":{"type":"json_object"}}}' + string: '{"model":"gpt-4o","input":"Extract user info as a JSON object: John + Doe, 30, john@example.com","text":{"format":{"type":"json_object"}}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -22,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -47,13 +48,35 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:14:53 GMT + - Tue, 14 Jul 2026 01:04:19 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1ac9cd17f343ecb-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '1422' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -66,57 +89,38 @@ http_interactions: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_8166ce1f17434b35b2a420478bb3b8ec - Openai-Processing-Ms: - - '1055' - X-Envoy-Upstream-Service-Time: - - '1061' - Cf-Cache-Status: - - DYNAMIC + - req_f16b4582e14446ebaf87f02a31f44a80 Set-Cookie: - - __cf_bm=tuK44JqqTIp2c.9AAYMPd6M94rcY9KtOfYpMqsoXTsw-1761506093-1.0.1.1-Jvo0cUZBK7fyZbux67ZY9T13fwFQJAojZba62_H026WSFnHZKWR.tfXoT57GGLKCE0_D_1fBCYfEMbn38Q7UTuAh2vPR6t165ej8ZWYrtek; - path=/; expires=Sun, 26-Oct-25 19:44:53 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=I5.acLDm7xPO3ZPY8r2FXip37cVcgYCHvCW72eF9dbY-1761506093120-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c4772eeb9ed3b-SJC + - __cf_bm=BpYgnjw40n1sXHFhMDqMSLTSTBIn1ZRvITZxsTLSqYs-1783991058.1522398-1.0.1.1-d9JYs.IPyfWya3GygxwWjYLth8j26_yd4Hc2waJziYtF6wkyZxn6Yeahw92uo4uWhspyDZ2uYsch937fZ0mQwXgDSTKO6r.IR0C7GRSj0Y_BuCmk6hnwMrpWrhiAABM5; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:34:19 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_0dc60010beb724f00068fe732c0eb881978b3a348b6486188c", + "id": "resp_00824fb44cb7fbd4006a558b12b35881988c84efa04d0e0324", "object": "response", - "created_at": 1761506092, + "created_at": 1783991058, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991059, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "msg_0dc60010beb724f00068fe732caba08197a0ce37f08d7546d1", + "id": "msg_00824fb44cb7fbd4006a558b130b3c819886ea6d3de8a61b2b", "type": "message", "status": "completed", "content": [ @@ -131,9 +135,12 @@ http_interactions: } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -148,6 +155,24 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [], "top_logprobs": 0, "top_p": 1.0, @@ -155,6 +180,7 @@ http_interactions: "usage": { "input_tokens": 24, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 27, @@ -166,5 +192,5 @@ http_interactions: "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:14:53 GMT -recorded_with: VCR 6.3.1 + recorded_at: Tue, 14 Jul 2026 01:04:19 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/structured_output/generated_schema.yml b/test/fixtures/vcr_cassettes/docs/actions/structured_output/generated_schema.yml index 24501183..c04420e7 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/structured_output/generated_schema.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/structured_output/generated_schema.yml @@ -5,14 +5,15 @@ http_interactions: uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":"John Smith is 25 years old and his email is john@example.com","model":"gpt-4o","text":{"format":{"type":"json_schema","name":"user_data","schema":{"type":"object","properties":{"name":{"type":"string","minLength":2},"email":{"type":"string","format":"email"},"age":{"type":"integer","minimum":18}},"required":["age","email","name"],"additionalProperties":false},"strict":true}}}' + string: '{"model":"gpt-4o","input":"John Smith is 25 years old and his email + is john@example.com","text":{"format":{"type":"json_schema","name":"user_data","schema":{"type":"object","properties":{"name":{"type":"string","minLength":2},"email":{"type":"string","format":"email"},"age":{"type":"integer","minimum":18}},"required":["age","email","name"],"additionalProperties":false},"strict":true}}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -22,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -47,13 +48,35 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:12:20 GMT + - Tue, 14 Jul 2026 01:04:11 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1ac9ca01f530d16-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '1049' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -66,57 +89,38 @@ http_interactions: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_56ffcfc760104d9798cc6aac43f12b1c - Openai-Processing-Ms: - - '1117' - X-Envoy-Upstream-Service-Time: - - '1123' - Cf-Cache-Status: - - DYNAMIC + - req_4677d16e915749b783ce7f8e1cc81e25 Set-Cookie: - - __cf_bm=0DCahcHB4q5OGl17byXA2sCYtuq6Q6qa2azjfHNF5w4-1761505940-1.0.1.1-VJHy3m4f.SgUOJNvUF7x2lUYpRZKihC0Got1ZA8HIEPMp6TqL.sg6CqA2iag7_l6.jdKnJPFqt6j4T2XGVc9bblxFjxAxOL3ekNgtHz0XCQ; - path=/; expires=Sun, 26-Oct-25 19:42:20 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=mSInfJiHcXWbtxn4KVM3xoUitIDXk3BFuT6oYEG.yBg-1761505940762-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c43ba499debf3-SJC + - __cf_bm=cU8jAFnlF4FelDnOC1ROoAjyW3_4Nsj2YDRlNhsJ._Y-1783991050.254811-1.0.1.1-HfmE1oFlJXi4AmQZCIx.YV0gYCNQBt3FL858daIlXhvnjPiJB4HcklRUXAxl.wOwGafpuKG.fR6Ys.cX_7iRBHlEKu0xdyMpa2zgmQahWXWVcWRnQegh3hpMPJzYF6vx; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:34:11 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_0a9a41cb00218d910068fe7293a24881979492e6b1970f187c", + "id": "resp_0c85b3193e6704ba006a558b0a4c348199a0c2af44332c08d8", "object": "response", - "created_at": 1761505939, + "created_at": 1783991050, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991051, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "msg_0a9a41cb00218d910068fe729455a481978a45b1bd8f60b93b", + "id": "msg_0c85b3193e6704ba006a558b0af2f481998ba45162b9ee4855", "type": "message", "status": "completed", "content": [ @@ -131,9 +135,12 @@ http_interactions: } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -174,6 +181,24 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [], "top_logprobs": 0, "top_p": 1.0, @@ -181,6 +206,7 @@ http_interactions: "usage": { "input_tokens": 58, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 17, @@ -192,5 +218,5 @@ http_interactions: "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:12:20 GMT -recorded_with: VCR 6.3.1 + recorded_at: Tue, 14 Jul 2026 01:04:11 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/structured_output/inline_schema.yml b/test/fixtures/vcr_cassettes/docs/actions/structured_output/inline_schema.yml index 41e5eefa..8d1d65e6 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/structured_output/inline_schema.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/structured_output/inline_schema.yml @@ -5,14 +5,15 @@ http_interactions: uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":"Extract colors: red, blue, green. Return as json.","model":"gpt-4o","text":{"format":{"type":"json_schema","name":"color_list","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false},"strict":true}}}' + string: '{"model":"gpt-4o","input":"Extract colors: red, blue, green. Return + as json.","text":{"format":{"type":"json_schema","name":"color_list","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false},"strict":true}}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -22,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -47,13 +48,35 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:12:13 GMT + - Tue, 14 Jul 2026 01:04:12 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1ac9ca79cc15a2e-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '534' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -66,57 +89,38 @@ http_interactions: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_ec1547b22caf4ff1aac511c827de6672 - Openai-Processing-Ms: - - '1425' - X-Envoy-Upstream-Service-Time: - - '1431' - Cf-Cache-Status: - - DYNAMIC + - req_a1aba1338d874166b8fcd710779b6019 Set-Cookie: - - __cf_bm=LrAwUx.pAsPN7O32YEGvQyruSqCL9nJe0NAlOJdcwEw-1761505933-1.0.1.1-bCC7h_jDkWP4IUb2H9FUGpmoLP38hPA6ctL.9VLUTjoLXfEfe__QlsdhrLBNRQT7jZOERWw0wMJH_TGjOY7RZRbIxzrOj19RQLQUmZyplnU; - path=/; expires=Sun, 26-Oct-25 19:42:13 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=NVJxDb4E4BxBpmgdZs6zWCcIVPNZ8PUDjHtSIoOWrBk-1761505933166-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c43871d33944c-SJC + - __cf_bm=S.JRRyS2NOVX77FgJHDkTAQY3c_RGPyqgmb5l7Jqc6g-1783991051.4582088-1.0.1.1-HBsgpTA4K7Ua1s89Psa8lYq7thYxwuC7LrBB2YEpeOTGzJRu_falohGEUW6JQfSZSHUyFJNN8k4qvNYnNWwgB.VhBuVAViPTgEHmUFN11NTHUU_fo1vYnu7Prd8u4puy; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:34:12 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_0a6b720f08266d3e0068fe728bc0b0819881ee4f88d9a9ee78", + "id": "resp_0ce0adf738884243006a558b0ba07c8198acd9e8ad6560c425", "object": "response", - "created_at": 1761505932, + "created_at": 1783991051, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991052, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "msg_0a6b720f08266d3e0068fe728c9eec81988a5ce9c6af42fbdf", + "id": "msg_0ce0adf738884243006a558b0bfc108198ada8264b5898ed02", "type": "message", "status": "completed", "content": [ @@ -131,9 +135,12 @@ http_interactions: } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -166,6 +173,24 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [], "top_logprobs": 0, "top_p": 1.0, @@ -173,6 +198,7 @@ http_interactions: "usage": { "input_tokens": 49, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 11, @@ -184,5 +210,5 @@ http_interactions: "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:12:13 GMT -recorded_with: VCR 6.3.1 + recorded_at: Tue, 14 Jul 2026 01:04:12 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/structured_output/json_schema_with_view.yml b/test/fixtures/vcr_cassettes/docs/actions/structured_output/json_schema_with_view.yml index 021077e5..e9179d54 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/structured_output/json_schema_with_view.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/structured_output/json_schema_with_view.yml @@ -5,16 +5,16 @@ http_interactions: uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":"Extract resume data: Resume: John Smith\nEmail: john@example.com\nPhone: - 555-1234\nEducation: BS Computer Science, MIT, 2015\nExperience: Software - Engineer at TechCo, 2015-2020","model":"gpt-4o","text":{"format":{"type":"json_schema","name":"resume_schema","schema":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"experience":{"type":"array","items":{"type":"object","properties":{"job_title":{"type":"string"},"company":{"type":"string"},"duration":{"type":"string"}},"required":["job_title","company","duration"],"additionalProperties":false}}},"required":["name","email","experience"],"additionalProperties":false},"strict":true}}}' + string: '{"model":"gpt-4o","input":"Extract resume data: Resume: John Smith\nEmail: + john@example.com\nPhone: 555-1234\nEducation: BS Computer Science, MIT, 2015\nExperience: + Software Engineer at TechCo, 2015-2020","text":{"format":{"type":"json_schema","name":"resume_schema","schema":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"experience":{"type":"array","items":{"type":"object","properties":{"jobTitle":{"type":"string"},"company":{"type":"string"},"duration":{"type":"string"}},"required":["jobTitle","company","duration"],"additionalProperties":false}}},"required":["name","email","experience"],"additionalProperties":false},"strict":true}}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -42,20 +42,42 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '679' + - '677' response: status: code: 200 message: OK headers: Date: - - Sun, 26 Oct 2025 19:12:14 GMT + - Tue, 14 Jul 2026 01:04:15 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1ac9cb33908eb21-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '1661' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -68,57 +90,38 @@ http_interactions: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_28900da6d78c49cf84f9c97483b8a148 - Openai-Processing-Ms: - - '1032' - X-Envoy-Upstream-Service-Time: - - '1036' - Cf-Cache-Status: - - DYNAMIC + - req_9e129c35915b4b32be2c711c97b75972 Set-Cookie: - - __cf_bm=gNoZiRJwuXHI_IX_PrimQMkXYICaZY5OCivwEF6liDc-1761505934-1.0.1.1-nwLMmi.AaCnOOsZv8KHeX6svSoCyKyLxHTIdrw7nw9BkOfQccMDnz2g5_lfR.c2197RQ6.3QzFlRPbe9dq5pESPh8SWLnQo_aKmJp1DWmCo; - path=/; expires=Sun, 26-Oct-25 19:42:14 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=JY9qmaPnp7D41.8mkJCpiMgMu5lOsxHKgfLns_tdkTM-1761505934670-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c4392ccbf1613-SJC + - __cf_bm=Fi_u1whRmM7_jIFR8PGV1nafWcC1QVKxh69DMRjzzs8-1783991053.318494-1.0.1.1-rF4aZFE43ViXcc43RkSRCSFVdylVKAjQXxcyHvPFpfMj9Huurx9p4ovzWNHa1BMzYmtLvyrinE.BjAZRs0TTzWHwJLeIu8QAWR19fO.1TEkMa38W1gwaFtzSyTsMRLaR; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:34:15 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_01cf213ec4b8d4880068fe728da3588199b8d254db632cd068", + "id": "resp_0e6c3376208021f1006a558b0d9f40819984afba5c74e3e96a", "object": "response", - "created_at": 1761505933, + "created_at": 1783991053, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991054, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "msg_01cf213ec4b8d4880068fe728e48f08199838999e51f74b11d", + "id": "msg_0e6c3376208021f1006a558b0e75848199ae646bd8b4029c35", "type": "message", "status": "completed", "content": [ @@ -126,16 +129,19 @@ http_interactions: "type": "output_text", "annotations": [], "logprobs": [], - "text": "{\"name\":\"John Smith\",\"email\":\"john@example.com\",\"experience\":[{\"job_title\":\"Software Engineer\",\"company\":\"TechCo\",\"duration\":\"2015-2020\"}]}" + "text": "{\"name\":\"John Smith\",\"email\":\"john@example.com\",\"experience\":[{\"jobTitle\":\"Software Engineer\",\"company\":\"TechCo\",\"duration\":\"2015-2020\"}]}" } ], "role": "assistant" } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -162,7 +168,7 @@ http_interactions: "items": { "type": "object", "properties": { - "job_title": { + "jobTitle": { "type": "string" }, "company": { @@ -173,7 +179,7 @@ http_interactions: } }, "required": [ - "job_title", + "jobTitle", "company", "duration" ], @@ -193,6 +199,24 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [], "top_logprobs": 0, "top_p": 1.0, @@ -200,6 +224,7 @@ http_interactions: "usage": { "input_tokens": 123, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 36, @@ -211,5 +236,5 @@ http_interactions: "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:12:14 GMT -recorded_with: VCR 6.3.1 + recorded_at: Tue, 14 Jul 2026 01:04:15 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/structured_output/named_schema.yml b/test/fixtures/vcr_cassettes/docs/actions/structured_output/named_schema.yml index 99ec9be9..15f7eae9 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/structured_output/named_schema.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/structured_output/named_schema.yml @@ -5,14 +5,15 @@ http_interactions: uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":"Extract colors: red, blue, green. Return as json.","model":"gpt-4o","text":{"format":{"type":"json_schema","name":"resume_colors","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false},"strict":true}}}' + string: '{"model":"gpt-4o","input":"Extract colors: red, blue, green. Return + as json.","text":{"format":{"type":"json_schema","name":"resume_colors","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false},"strict":true}}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -22,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -47,13 +48,35 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:12:16 GMT + - Tue, 14 Jul 2026 01:04:17 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1ac9cc4e8fd91f0-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '1047' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -66,57 +89,38 @@ http_interactions: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_2b2fbba878cf435eb266b80a41bcbe54 - Openai-Processing-Ms: - - '1495' - X-Envoy-Upstream-Service-Time: - - '1501' - Cf-Cache-Status: - - DYNAMIC + - req_9ab49d1c4bd8493dbdb83c9485134e18 Set-Cookie: - - __cf_bm=d1pyAi9tLSIk7zllitBkuLCdRzP5Dg4xGHC7_gCh9ow-1761505936-1.0.1.1-xQeeGZQgtJKZv0Fc3E7Amxm60f1AtiWpRvPmM_7Hkh.bS97GcGrYrS12tzoRWQ8ET4jZ930K9cPHfdawwgmg6t4mfyWk4CAeA8vBwCQdu6M; - path=/; expires=Sun, 26-Oct-25 19:42:16 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=asEp8B6GXKrYWlvpAKN3ILQhECzPjf6LpPC3kJHcq9Y-1761505936618-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c439c1c04f94f-SJC + - __cf_bm=edqH_WVNZq2OREoN8vTCpeATbWroUI5xFxZs5Aov6Wo-1783991056.1452394-1.0.1.1-krYJkD3KJl6KROF9OR_VlaDsVfkNuNbLeLWrCcNcYob_W.ctnpdotcCZHOdVYKVZ9apMumNoheIs0JsbGZ90Ml5FW2FzZOBPJeFh1._RDUMfnvIuGXGeUaTptHn1mpol; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:34:17 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_0d76c684bc397c8f0068fe728f1b688194a5bd38301d504274", + "id": "resp_06c865affaec01bf006a558b1030a081988f633a665b61a7a5", "object": "response", - "created_at": 1761505935, + "created_at": 1783991056, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991057, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "msg_0d76c684bc397c8f0068fe72903bc88194aab0934159e640de", + "id": "msg_06c865affaec01bf006a558b1102008198a0662bfb59d7bc43", "type": "message", "status": "completed", "content": [ @@ -131,9 +135,12 @@ http_interactions: } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -166,6 +173,24 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [], "top_logprobs": 0, "top_p": 1.0, @@ -173,6 +198,7 @@ http_interactions: "usage": { "input_tokens": 49, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 11, @@ -184,5 +210,5 @@ http_interactions: "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:12:16 GMT -recorded_with: VCR 6.3.1 + recorded_at: Tue, 14 Jul 2026 01:04:17 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/structured_output/openai_json_object.yml b/test/fixtures/vcr_cassettes/docs/actions/structured_output/openai_json_object.yml index dd306be3..aaed5930 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/structured_output/openai_json_object.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/structured_output/openai_json_object.yml @@ -5,14 +5,14 @@ http_interactions: uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":"Extract as JSON: Alice, 35, alice@test.com","model":"gpt-4o","text":{"format":{"type":"json_object"}}}' + string: '{"model":"gpt-4o","input":"Extract as JSON: Alice, 35, alice@test.com","text":{"format":{"type":"json_object"}}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -22,11 +22,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -47,13 +47,35 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:13:33 GMT + - Tue, 14 Jul 2026 01:06:53 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1aca099de567834-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '829' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -66,57 +88,38 @@ http_interactions: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_d121a9fb63bf4640907c39bf4dec8550 - Openai-Processing-Ms: - - '1025' - X-Envoy-Upstream-Service-Time: - - '1030' - Cf-Cache-Status: - - DYNAMIC + - req_638f9b3f381947e5b4e1e2309dafad00 Set-Cookie: - - __cf_bm=O85oFbmoIsxjGGt8swzj2HA2.bIeHXY4p0z4YQ8zW28-1761506013-1.0.1.1-cFXiG_XYRj_y046ajUcdD2j2RulAmBOQOQIxBqNt_qG9KFu1cZsbipWETwTVQoJglLTMRQqRWpSpqEe0uFX7BdVj.xiLjrDmAq2NiUk7Mek; - path=/; expires=Sun, 26-Oct-25 19:43:33 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=mJMzMp8PIr5ZsJFOm7Tr2K7e4qXjqAlaEuhDcidEtg8-1761506013336-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c458069e8eb31-SJC + - __cf_bm=XO.t1CTJJV8t2Rfci3AKn_dWyIeZA2u7.8vMTEOjhWI-1783991213.0993154-1.0.1.1-cR.CRpTYDf.ONU84CDW0yiXg0jTPAFideRhrWGX.dkLI5lxs9nNKy8p7RhsfaUtUZU_MCkNmUukeI0KIIY1JbzFfU0gqqJJy2_gO6XYry_eBWn6PVowTSbrCu1WqXQF9; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:36:53 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_0f40a48328d076690068fe72dc47a48193866c9d447cf71274", + "id": "resp_04d6a71e2191a843006a558bad22f081988379e50377f73ca1", "object": "response", - "created_at": 1761506012, + "created_at": 1783991213, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991213, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "msg_0f40a48328d076690068fe72dcd27481939a12f390f43e1896", + "id": "msg_04d6a71e2191a843006a558bad91c8819888455253cbe3c2f0", "type": "message", "status": "completed", "content": [ @@ -131,9 +134,12 @@ http_interactions: } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -148,6 +154,24 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [], "top_logprobs": 0, "top_p": 1.0, @@ -155,6 +179,7 @@ http_interactions: "usage": { "input_tokens": 19, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 26, @@ -166,5 +191,5 @@ http_interactions: "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:13:33 GMT -recorded_with: VCR 6.3.1 + recorded_at: Tue, 14 Jul 2026 01:06:53 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/structured_output/openai_json_schema.yml b/test/fixtures/vcr_cassettes/docs/actions/structured_output/openai_json_schema.yml index fde7d7e7..019a121d 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/structured_output/openai_json_schema.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/structured_output/openai_json_schema.yml @@ -5,14 +5,15 @@ http_interactions: uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":"List fruits: apple, banana, orange. Return as JSON.","model":"gpt-4o","text":{"format":{"type":"json_schema","name":"fruits","schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string"}}},"required":["items"],"additionalProperties":false},"strict":true}}}' + string: '{"model":"gpt-4o","input":"List fruits: apple, banana, orange. Return + as JSON.","text":{"format":{"type":"json_schema","name":"fruits","schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string"}}},"required":["items"],"additionalProperties":false},"strict":true}}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -22,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -47,13 +48,35 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:13:34 GMT + - Tue, 14 Jul 2026 01:06:52 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1aca08da9dcde51-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '863' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -66,57 +89,38 @@ http_interactions: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_234893ea53a64337a5975668bdc11153 - Openai-Processing-Ms: - - '924' - X-Envoy-Upstream-Service-Time: - - '932' - Cf-Cache-Status: - - DYNAMIC + - req_4b83cb42a2f548e0bb08dcbc9a7261db Set-Cookie: - - __cf_bm=4Wx9px80U3Ntr7j.N784k5mDnYzutHVTb6VBB1XdJYI-1761506014-1.0.1.1-3ZldQ2J2L_..2mpzgQeazO3UrLcx3uvZSBoTtxrt5tV184qjEWymWZHFfg.ofK4IYYICOzzSi1pLycoI3PIIVja4.HRC8g.Vw8Pd47iT.os; - path=/; expires=Sun, 26-Oct-25 19:43:34 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=sVDL7Fi7Ithi_ndjD4SAM7Ll4lIW3lp0YBlELM3Gao8-1761506014389-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c4587b8b1fa72-SJC + - __cf_bm=z2JIKBsZRxFpVG9c4yelNnqspaL4LCh7RvET0qc5SRQ-1783991211.1462255-1.0.1.1-YG7.uMIklfSOBueT9dRlOkduLYhPum9vbgDfQjJ25bhWttwTgqhuyX6hlgWMX9yqilhBaWf23NxyRHggl67LufXkt.PFIoFNh6xFL5cKNungLlHUgEwLlfgDk1kX6ebw; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:36:52 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_01a07acef3fad30f0068fe72dd75b0819bbd4c4ecf91c818cd", + "id": "resp_0553a8cd5b2f02b0006a558bab33c8819a8577d697c877c4b5", "object": "response", - "created_at": 1761506013, + "created_at": 1783991211, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991211, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "msg_01a07acef3fad30f0068fe72ddfba8819b81a9c1d0541b4dc7", + "id": "msg_0553a8cd5b2f02b0006a558babc9a8819a8081e36687de5b97", "type": "message", "status": "completed", "content": [ @@ -131,9 +135,12 @@ http_interactions: } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -166,6 +173,24 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [], "top_logprobs": 0, "top_p": 1.0, @@ -173,6 +198,7 @@ http_interactions: "usage": { "input_tokens": 48, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 11, @@ -184,5 +210,5 @@ http_interactions: "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:13:34 GMT -recorded_with: VCR 6.3.1 + recorded_at: Tue, 14 Jul 2026 01:06:52 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/structured_output/openrouter_json_object.yml b/test/fixtures/vcr_cassettes/docs/actions/structured_output/openrouter_json_object.yml index 2c83acb8..9b4c92e5 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/structured_output/openrouter_json_object.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/structured_output/openrouter_json_object.yml @@ -5,14 +5,15 @@ http_interactions: uri: https://openrouter.ai/api/v1/chat/completions body: encoding: UTF-8 - string: '{"messages":[{"role":"user","content":"Extract as JSON: Bob, 40, bob@test.com"}],"model":"openai/gpt-4o-mini","response_format":{"type":"json_object"},"provider":{"require_parameters":true}}' + string: '{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"Extract + as JSON: Bob, 40, bob@test.com"}],"response_format":{"type":"json_object"},"provider":{"require_parameters":true}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - openrouter.ai X-Stainless-Arch: @@ -22,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Authorization: @@ -47,7 +48,7 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:13:35 GMT + - Tue, 14 Jul 2026 01:06:52 GMT Content-Type: - application/json Transfer-Encoding: @@ -56,8 +57,10 @@ http_interactions: - keep-alive Access-Control-Allow-Origin: - "*" - Vary: - - Accept-Encoding + X-Generation-Id: + - gen-1783991212-y4W9JXXxacAayj5klUV9 + Access-Control-Expose-Headers: + - X-Generation-Id,X-Provider-Name,cf-ray Permissions-Policy: - payment=(self "https://checkout.stripe.com" "https://connect-js.stripe.com" "https://js.stripe.com" "https://*.js.stripe.com" "https://hooks.stripe.com") @@ -68,10 +71,10 @@ http_interactions: Server: - cloudflare Cf-Ray: - - 994c458e7dcf17ea-SJC + - a1aca0942c2cba62-SJC body: encoding: ASCII-8BIT - string: "\n \n\n \n{\"id\":\"gen-1761506014-5pWhX85lxM1eI6ZG1S84\",\"provider\":\"OpenAI\",\"model\":\"openai/gpt-4o-mini\",\"object\":\"chat.completion\",\"created\":1761506014,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"stop\",\"native_finish_reason\":\"stop\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"{\\n - \ \\\"name\\\": \\\"Bob\\\",\\n \\\"age\\\": 40,\\n \\\"email\\\": \\\"bob@test.com\\\"\\n}\",\"refusal\":null,\"reasoning\":null}}],\"system_fingerprint\":\"fp_560af6e559\",\"usage\":{\"prompt_tokens\":19,\"completion_tokens\":25,\"total_tokens\":44,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"completion_tokens_details\":{\"reasoning_tokens\":0}}}" - recorded_at: Sun, 26 Oct 2025 19:13:35 GMT -recorded_with: VCR 6.3.1 + string: "\n \n{\"id\":\"gen-1783991212-y4W9JXXxacAayj5klUV9\",\"object\":\"chat.completion\",\"created\":1783991212,\"model\":\"openai/gpt-4o-mini\",\"provider\":\"OpenAI\",\"system_fingerprint\":\"fp_30570f0196\",\"service_tier\":null,\"choices\":[{\"index\":0,\"logprobs\":null,\"finish_reason\":\"stop\",\"native_finish_reason\":\"stop\",\"message\":{\"role\":\"assistant\",\"content\":\"{\\n + \ \\\"name\\\": \\\"Bob\\\",\\n \\\"age\\\": 40,\\n \\\"email\\\": \\\"bob@test.com\\\"\\n}\",\"refusal\":null,\"reasoning\":null}}],\"usage\":{\"prompt_tokens\":19,\"completion_tokens\":25,\"total_tokens\":44,\"cost\":0.00001785,\"is_byok\":false,\"prompt_tokens_details\":{\"cached_tokens\":0,\"cache_write_tokens\":0,\"audio_tokens\":0,\"video_tokens\":0},\"cost_details\":{\"upstream_inference_cost\":0.00001785,\"upstream_inference_prompt_cost\":0.00000285,\"upstream_inference_completions_cost\":0.000015},\"completion_tokens_details\":{\"reasoning_tokens\":0,\"image_tokens\":0,\"audio_tokens\":0}}}" + recorded_at: Tue, 14 Jul 2026 01:06:52 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/structured_output/openrouter_json_schema.yml b/test/fixtures/vcr_cassettes/docs/actions/structured_output/openrouter_json_schema.yml index 9b173bf1..ccc85502 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/structured_output/openrouter_json_schema.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/structured_output/openrouter_json_schema.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://openrouter.ai/api/v1/chat/completions body: encoding: UTF-8 - string: '{"messages":[{"role":"user","content":"List animals: dog, cat, bird. - Return as JSON."}],"model":"openai/gpt-4o-mini","response_format":{"type":"json_schema","json_schema":{"name":"animals","schema":{"type":"object","properties":{"list":{"type":"array","items":{"type":"string"}}},"required":["list"],"additionalProperties":false},"strict":true}},"provider":{"require_parameters":true}}' + string: '{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"List + animals: dog, cat, bird. Return as JSON."}],"response_format":{"type":"json_schema","json_schema":{"name":"animals","schema":{"type":"object","properties":{"list":{"type":"array","items":{"type":"string"}}},"required":["list"],"additionalProperties":false},"strict":true}},"provider":{"require_parameters":true}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - openrouter.ai X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Authorization: @@ -48,7 +48,7 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:13:36 GMT + - Tue, 14 Jul 2026 01:06:50 GMT Content-Type: - application/json Transfer-Encoding: @@ -57,8 +57,10 @@ http_interactions: - keep-alive Access-Control-Allow-Origin: - "*" - Vary: - - Accept-Encoding + X-Generation-Id: + - gen-1783991210-6zlIfB2SPC7v7XdAo5sq + Access-Control-Expose-Headers: + - X-Generation-Id,X-Provider-Name,cf-ray Permissions-Policy: - payment=(self "https://checkout.stripe.com" "https://connect-js.stripe.com" "https://js.stripe.com" "https://*.js.stripe.com" "https://hooks.stripe.com") @@ -69,9 +71,9 @@ http_interactions: Server: - cloudflare Cf-Ray: - - 994c45966a6df9f9-SJC + - a1aca086cce6ed36-SJC body: encoding: ASCII-8BIT - string: "\n \n{\"id\":\"gen-1761506015-UaeWce9ziWDbKSbkIFfa\",\"provider\":\"OpenAI\",\"model\":\"openai/gpt-4o-mini\",\"object\":\"chat.completion\",\"created\":1761506015,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"stop\",\"native_finish_reason\":\"stop\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"{\\\"list\\\":[\\\"dog\\\",\\\"cat\\\",\\\"bird\\\"]}\",\"refusal\":null,\"reasoning\":null}}],\"system_fingerprint\":\"fp_560af6e559\",\"usage\":{\"prompt_tokens\":54,\"completion_tokens\":10,\"total_tokens\":64,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"completion_tokens_details\":{\"reasoning_tokens\":0}}}" - recorded_at: Sun, 26 Oct 2025 19:13:36 GMT -recorded_with: VCR 6.3.1 + string: "\n \n\n \n{\"id\":\"gen-1783991210-6zlIfB2SPC7v7XdAo5sq\",\"object\":\"chat.completion\",\"created\":1783991210,\"model\":\"openai/gpt-4o-mini\",\"provider\":\"Azure\",\"system_fingerprint\":\"fp_965c8b9ecf\",\"service_tier\":null,\"choices\":[{\"index\":0,\"logprobs\":null,\"finish_reason\":\"stop\",\"native_finish_reason\":\"stop\",\"message\":{\"role\":\"assistant\",\"content\":\"{\\\"list\\\":[\\\"dog\\\",\\\"cat\\\",\\\"bird\\\"]}\",\"refusal\":null,\"reasoning\":null}}],\"usage\":{\"prompt_tokens\":54,\"completion_tokens\":11,\"total_tokens\":65,\"cost\":0.0000147,\"is_byok\":false,\"prompt_tokens_details\":{\"cached_tokens\":0,\"cache_write_tokens\":0,\"audio_tokens\":0,\"video_tokens\":0},\"cost_details\":{\"upstream_inference_cost\":0.0000147,\"upstream_inference_prompt_cost\":0.0000081,\"upstream_inference_completions_cost\":0.0000066},\"completion_tokens_details\":{\"reasoning_tokens\":0,\"image_tokens\":0,\"audio_tokens\":0}}}" + recorded_at: Tue, 14 Jul 2026 01:06:51 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/structured_output/strict_mode.yml b/test/fixtures/vcr_cassettes/docs/actions/structured_output/strict_mode.yml index 147164b1..2d062a61 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/structured_output/strict_mode.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/structured_output/strict_mode.yml @@ -5,14 +5,14 @@ http_interactions: uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":"Extract as JSON: David, david@test.com","model":"gpt-4o","text":{"format":{"type":"json_schema","name":"user_info","schema":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"}},"required":["name","email"],"additionalProperties":false},"strict":true}}}' + string: '{"model":"gpt-4o","input":"Extract as JSON: David, david@test.com","text":{"format":{"type":"json_schema","name":"user_info","schema":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"}},"required":["name","email"],"additionalProperties":false},"strict":true}}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -22,11 +22,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -47,13 +47,35 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:13:37 GMT + - Tue, 14 Jul 2026 01:04:18 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1ac9ccc7a044f1b-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '666' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -66,57 +88,38 @@ http_interactions: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_b1990036f31d46c08c45922af5c79568 - Openai-Processing-Ms: - - '995' - X-Envoy-Upstream-Service-Time: - - '1002' - Cf-Cache-Status: - - DYNAMIC + - req_38a761c358e643f4a4b25911abbc140f Set-Cookie: - - __cf_bm=oxuazCFq0yR9rwC0c2e8OGro0_xpKQbRTtgWbfC2ZLo-1761506017-1.0.1.1-WtgmFHS79xKnsUC2TyMjsha.N2WvaDjzm9uf3eKirwxdD7FICPnmZXF2Do4nYeqlO5SUx5eRZtIUSSjOVlbPZ0te5SbjdHxY8C3wQtfJI0s; - path=/; expires=Sun, 26-Oct-25 19:43:37 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=kEvMNwB9ZtRzgBAgZ4rV.E5N8OSZ62UNISGniLoLyEs-1761506017763-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c459c6ef1cf17-SJC + - __cf_bm=MRkTEqyvWn.CMIVQfkjzsElLb80EJjP8Il0eFUYa_ig-1783991057.3552268-1.0.1.1-TgtxosqRSmGyLvE8p17RFckufCm05muRPlb075GQGU72VEXOL2.ZmS68N85FSIM3D_5bRrk9llHqkMMrYWFdw1BQFmLxD_.wxTqF6hx2pKwMgvs9aQISAsbSZibS.pu9; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:34:18 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_0070f8cf18dd36130068fe72e0c6e0819ab6aedfe0b0aabe40", + "id": "resp_0c139eacd565d6dc006a558b1173c88198aee579c318b3ac82", "object": "response", - "created_at": 1761506017, + "created_at": 1783991057, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991057, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "msg_0070f8cf18dd36130068fe72e15d5c819aaa3eac02450fbc13", + "id": "msg_0c139eacd565d6dc006a558b11d4688198a260595c2c68f48f", "type": "message", "status": "completed", "content": [ @@ -131,9 +134,12 @@ http_interactions: } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -167,6 +173,24 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [], "top_logprobs": 0, "top_p": 1.0, @@ -174,6 +198,7 @@ http_interactions: "usage": { "input_tokens": 46, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 13, @@ -185,5 +210,5 @@ http_interactions: "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:13:37 GMT -recorded_with: VCR 6.3.1 + recorded_at: Tue, 14 Jul 2026 01:04:18 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/tools/anthropic_basic_function.yml b/test/fixtures/vcr_cassettes/docs/actions/tools/anthropic_basic_function.yml index fa94bc3b..6683041b 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/tools/anthropic_basic_function.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/tools/anthropic_basic_function.yml @@ -5,17 +5,17 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-20250514","messages":[{"role":"user","content":"What''s - the weather in San Francisco?"}],"max_tokens":1024,"tools":[{"name":"get_weather","description":"Get - the current weather in a given location","input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The - city and state, e.g. San Francisco, CA"}},"required":["location"]}}]}' + string: '{"model":"claude-haiku-4-5","messages":[{"content":"What''s the weather + in San Francisco?","role":"user"}],"max_tokens":1024,"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather in a given location"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -25,11 +25,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -41,14 +41,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '385' + - '377' response: status: code: 200 message: OK headers: Date: - - Sun, 26 Oct 2025 00:19:40 GMT + - Tue, 14 Jul 2026 01:06:49 GMT Content-Type: - application/json Transfer-Encoding: @@ -56,72 +56,72 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '450000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '450000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-26T00:19:40Z' + - '2026-07-14T01:06:49Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '90000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '90000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-26T00:19:40Z' + - '2026-07-14T01:06:49Z' Anthropic-Ratelimit-Requests-Limit: - - '1000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-26T00:19:38Z' + - '2026-07-14T01:06:48Z' Anthropic-Ratelimit-Tokens-Limit: - - '540000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '540000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-26T00:19:40Z' + - '2026-07-14T01:06:49Z' Request-Id: - - req_011CUUrMfU6WzarGt4nR85wn + - req_011Cd145GUJxaZtdC8U5Lig6 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2420' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-5bf47589e694299e919bfb5cf0a24a25-a0aecae2b1b0b1bb-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 9945c884bc59fa66-SJC + - a1aca07c8df0eb1e-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-20250514","id":"msg_01S9RnWuuTL7VkU6VGbH4G4B","type":"message","role":"assistant","content":[{"type":"text","text":"I''ll - check the current weather in San Francisco for you."},{"type":"tool_use","id":"toolu_013TuiNu7Bvo3MzBvQs2QCWv","name":"get_weather","input":{"location":"San - Francisco, CA"}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":402,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":69,"service_tier":"standard"}}' - recorded_at: Sun, 26 Oct 2025 00:19:40 GMT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd145GhTDDsHmQShnENBE","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01TM7e5EXHZm1DrFCYc9AToH","name":"get_weather","input":{"location":"San + Francisco, CA"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":57,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:06:49 GMT - request: method: post uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-20250514","messages":[{"role":"user","content":"What''s - the weather in San Francisco?"},{"role":"assistant","content":[{"type":"text","text":"I''ll - check the current weather in San Francisco for you."},{"type":"tool_use","id":"toolu_013TuiNu7Bvo3MzBvQs2QCWv","name":"get_weather","input":{"location":"San - Francisco, CA"}}]},{"role":"user","content":[{"type":"tool_result","tool_use_id":"toolu_013TuiNu7Bvo3MzBvQs2QCWv","content":"{\"location\":\"San - Francisco, CA\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}"}]}],"max_tokens":1024,"tools":[{"name":"get_weather","description":"Get - the current weather in a given location","input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The - city and state, e.g. San Francisco, CA"}},"required":["location"]}}]}' + string: '{"model":"claude-haiku-4-5","messages":[{"content":"What''s the weather + in San Francisco?","role":"user"},{"content":[{"id":"toolu_01TM7e5EXHZm1DrFCYc9AToH","input":{"location":"San + Francisco, CA"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01TM7e5EXHZm1DrFCYc9AToH","type":"tool_result","content":"{\"location\":\"San + Francisco, CA\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"max_tokens":1024,"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather in a given location"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -131,11 +131,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -147,14 +147,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '818' + - '772' response: status: code: 200 message: OK headers: Date: - - Sun, 26 Oct 2025 00:19:43 GMT + - Tue, 14 Jul 2026 01:06:49 GMT Content-Type: - application/json Transfer-Encoding: @@ -162,50 +162,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '450000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '450000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-26T00:19:42Z' + - '2026-07-14T01:06:49Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '90000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '90000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-26T00:19:43Z' + - '2026-07-14T01:06:49Z' Anthropic-Ratelimit-Requests-Limit: - - '1000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-26T00:19:41Z' + - '2026-07-14T01:06:49Z' Anthropic-Ratelimit-Tokens-Limit: - - '540000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '540000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-26T00:19:42Z' + - '2026-07-14T01:06:49Z' Request-Id: - - req_011CUUrMrrCuNEHN5dmzKB4z + - req_011Cd145KzeX2oP9MpmHoier Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2002' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-fa443ee5c4f569ee4489f7a09ebb8d8b-9bcdd41fe523411b-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 9945c8958df615ea-SJC + - a1aca081bf8e7a20-SJC body: encoding: ASCII-8BIT string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1zb25uZXQtNC0yMDI1MDUxNCIsImlkIjoibXNnXzAxU3U0ZFR0Mk1aWjZhNVM1a0E1cHFiMiIsInR5cGUiOiJtZXNzYWdlIiwicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IlRoZSBjdXJyZW50IHdlYXRoZXIgaW4gU2FuIEZyYW5jaXNjbywgQ0EgaXMgc3Vubnkgd2l0aCBhIHRlbXBlcmF0dXJlIG9mIDcywrBGLiBQZXJmZWN0IHdlYXRoZXIgZm9yIGJlaW5nIG91dGRvb3JzISJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6NTAxLCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6MjksInNlcnZpY2VfdGllciI6InN0YW5kYXJkIn19 - recorded_at: Sun, 26 Oct 2025 00:19:43 GMT -recorded_with: VCR 6.3.1 + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDZDE0NUxFSFhiS2Y5RUhKOTdvZk0iLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBpbiBTYW4gRnJhbmNpc2NvLCBDQSBpcyBjdXJyZW50bHkgKipzdW5ueSoqIHdpdGggYSB0ZW1wZXJhdHVyZSBvZiAqKjcywrBGKiouIEl0J3MgYSBiZWF1dGlmdWwgZGF5ISJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInN0b3BfZGV0YWlscyI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjo2NzIsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjozMSwic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoibm90X2F2YWlsYWJsZSJ9fQ== + recorded_at: Tue, 14 Jul 2026 01:06:49 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/tools/openai_basic_function.yml b/test/fixtures/vcr_cassettes/docs/actions/tools/openai_basic_function.yml index 4217c4b7..7f281e58 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/tools/openai_basic_function.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/tools/openai_basic_function.yml @@ -5,16 +5,16 @@ http_interactions: uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":"What''s the weather in Boston?","model":"gpt-4o","tools":[{"type":"function","name":"get_current_weather","parameters":{"type":"object","properties":{"location":{"type":"string","description":"The - city and state, e.g. San Francisco, CA"},"unit":{"type":"string","enum":["celsius","fahrenheit"]}},"required":["location"]},"description":"Get - the current weather in a given location"}]}' + string: '{"model":"gpt-4o","input":"What''s the weather in Boston?","tools":[{"type":"function","name":"get_current_weather","description":"Get + the current weather in a given location","parameters":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"},"unit":{"type":"string","enum":["celsius","fahrenheit"]}},"required":["location"]}}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -49,13 +49,35 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:19:06 GMT + - Tue, 14 Jul 2026 01:06:47 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1aca0713b9367c7-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '622' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -63,73 +85,57 @@ http_interactions: X-Ratelimit-Remaining-Requests: - '9999' X-Ratelimit-Remaining-Tokens: - - '29999711' + - '29999710' X-Ratelimit-Reset-Requests: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_f94195bb7ef74ebdbaa492923e8ebf07 - Openai-Processing-Ms: - - '1302' - X-Envoy-Upstream-Service-Time: - - '1305' - Cf-Cache-Status: - - DYNAMIC + - req_d0f69aac38a945ed84151e40a0fc2bde Set-Cookie: - - __cf_bm=k9bs30Y5FDTzyVGvJokMXrgLvxS4lrEzgQJHBI2baYE-1761506346-1.0.1.1-msp.TrMAZNVFtrsNpPjh8RrFX1TZ9TN0Bvr.5BGlcBwGxRpLAhRpgtS3LqwPNoSBONC0W3.mz2NPTBDxTbmAT.rbNvaAgu0uf1YTecZu438; - path=/; expires=Sun, 26-Oct-25 19:49:06 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=S5xhjTi1XsR.rC89k2O3B9eKTFQJ7RDUyCm1OPXLLRQ-1761506346179-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c4d9f1932ce64-SJC + - __cf_bm=m0TEQWmnbHIyrlQTY7_4YAnGqbYFqFrZGOT0hot_Nkc-1783991206.5989568-1.0.1.1-kw895.Ypgpg9BgsSDXINX0.g_YjIF7gfiqjnCiqfYtwg.RX_k5MO6WzcZXZk28zGh4mqaT04HcRQTyA3zbdfaHqEJMeaplJmd5eQpWWXZrFFhm1oEcEbol6Pi44HcGwu; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:36:47 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_026f1cb8744138f60068fe7428de548195bc175bbfa788f0e3", + "id": "resp_09221a3c24b612aa006a558ba6c054819baae662750afc6718", "object": "response", - "created_at": 1761506345, + "created_at": 1783991206, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991207, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "fc_026f1cb8744138f60068fe7429cabc8195883b41fcebb955e2", + "id": "fc_09221a3c24b612aa006a558ba726b0819ba0f685b21f8a9e15", "type": "function_call", "status": "completed", "arguments": "{\"location\":\"Boston, MA\",\"unit\":\"fahrenheit\"}", - "call_id": "call_uqPBXMVkh8qpKbynoyZTS6X4", + "call_id": "call_TWPzpI7Mg5Z3AXa0l2xyhvEP", "name": "get_current_weather" } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -144,11 +150,30 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [ { "type": "function", "description": "Get the current weather in a given location", "name": "get_current_weather", + "output_schema": null, "parameters": { "type": "object", "properties": { @@ -179,6 +204,7 @@ http_interactions: "usage": { "input_tokens": 72, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 23, @@ -190,24 +216,24 @@ http_interactions: "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:19:06 GMT + recorded_at: Tue, 14 Jul 2026 01:06:47 GMT - request: method: post uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":[{"role":"user","content":"What''s the weather in Boston?"},{"id":"fc_026f1cb8744138f60068fe7429cabc8195883b41fcebb955e2","status":"completed","type":"function_call","call_id":"call_uqPBXMVkh8qpKbynoyZTS6X4","name":"get_current_weather","arguments":"{\"location\":\"Boston, - MA\",\"unit\":\"fahrenheit\"}"},{"type":"function_call_output","call_id":"call_uqPBXMVkh8qpKbynoyZTS6X4","output":"{\"location\":\"Boston, - MA\",\"unit\":\"fahrenheit\",\"temperature\":\"22\",\"conditions\":\"sunny\"}"}],"model":"gpt-4o","tools":[{"type":"function","name":"get_current_weather","parameters":{"type":"object","properties":{"location":{"type":"string","description":"The - city and state, e.g. San Francisco, CA"},"unit":{"type":"string","enum":["celsius","fahrenheit"]}},"required":["location"]},"description":"Get - the current weather in a given location"}]}' + string: '{"model":"gpt-4o","input":[{"role":"user","content":"What''s the weather + in Boston?"},{"arguments":"{\"location\":\"Boston, MA\",\"unit\":\"fahrenheit\"}","call_id":"call_TWPzpI7Mg5Z3AXa0l2xyhvEP","name":"get_current_weather","type":"function_call","id":"fc_09221a3c24b612aa006a558ba726b0819ba0f685b21f8a9e15","status":"completed"},{"call_id":"call_TWPzpI7Mg5Z3AXa0l2xyhvEP","output":"{\"location\":\"Boston, + MA\",\"unit\":\"fahrenheit\",\"temperature\":\"22\",\"conditions\":\"sunny\"}","type":"function_call_output"}],"tools":[{"type":"function","name":"get_current_weather","description":"Get + the current weather in a given location","parameters":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"},"unit":{"type":"string","enum":["celsius","fahrenheit"]}},"required":["location"]}}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -217,11 +243,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -242,13 +268,35 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:19:07 GMT + - Tue, 14 Jul 2026 01:06:48 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1aca076beb09814-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '755' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -256,62 +304,43 @@ http_interactions: X-Ratelimit-Remaining-Requests: - '9999' X-Ratelimit-Remaining-Tokens: - - '29999657' + - '29999658' X-Ratelimit-Reset-Requests: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_91fd4d02e98e4ce79b8c9c8600cab4ce - Openai-Processing-Ms: - - '1470' - X-Envoy-Upstream-Service-Time: - - '1476' - Cf-Cache-Status: - - DYNAMIC + - req_2afc6b7796d346999f80bd858b964fbc Set-Cookie: - - __cf_bm=4VWWmqA4x0n8yRWrDRyhaLxG4v3pjbWGrTmgIGgfNSU-1761506347-1.0.1.1-E8Y9sHR95H1Q8YwwTf20.Cl4ZT2lEpquCT3hjCPGaKrjHJUVkDuyFI3gYqDi.dJJfPtb_fCcyQhAwsMdKSaQkqwNqw3RI9uI.G8IdI8wzJE; - path=/; expires=Sun, 26-Oct-25 19:49:07 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=MAF4vDvqoU4rAE0_63DoeIv.DdSPT8ZHmNsNiUQBAx8-1761506347760-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c4da808ebaab5-SJC + - __cf_bm=dMp4XyZRxZ32VUX2XHdmucLej9CQP1d0TJeCuc2nDqY-1783991207.4791274-1.0.1.1-x8EEHGbhHscXuUv.XYIsyeKWLXq.pk4aSy3nuyaksNWAgkxa7YMPhmdCVxTDQnNq.yNEjVr26W1gi0FAHPai6QR17aI1znxC6gh92YwemflvQm40zUp2TIhHAgHdOqRz; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:36:48 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_026f1cb8744138f60068fe742a4e788195b9f248fba43c6401", + "id": "resp_09221a3c24b612aa006a558ba788f4819bb4c0b74f35061052", "object": "response", - "created_at": 1761506346, + "created_at": 1783991207, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991208, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "msg_026f1cb8744138f60068fe742b69108195bb699a4903bd88b2", + "id": "msg_09221a3c24b612aa006a558ba7f154819baa7804c13a8ad1bd", "type": "message", "status": "completed", "content": [ @@ -319,16 +348,19 @@ http_interactions: "type": "output_text", "annotations": [], "logprobs": [], - "text": "The current weather in Boston is 22\u00b0F and sunny." + "text": "The weather in Boston, MA is currently sunny with a temperature of 22\u00b0F." } ], "role": "assistant" } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -343,11 +375,30 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [ { "type": "function", "description": "Get the current weather in a given location", "name": "get_current_weather", + "output_schema": null, "parameters": { "type": "object", "properties": { @@ -378,16 +429,17 @@ http_interactions: "usage": { "input_tokens": 125, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, - "output_tokens": 14, + "output_tokens": 19, "output_tokens_details": { "reasoning_tokens": 0 }, - "total_tokens": 139 + "total_tokens": 144 }, "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:19:07 GMT -recorded_with: VCR 6.3.1 + recorded_at: Tue, 14 Jul 2026 01:06:48 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/tools/quick_start_weather.yml b/test/fixtures/vcr_cassettes/docs/actions/tools/quick_start_weather.yml index 62d75cd5..07608257 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/tools/quick_start_weather.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/tools/quick_start_weather.yml @@ -5,16 +5,16 @@ http_interactions: uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":"What''s the weather in Boston?","model":"gpt-4o","tools":[{"type":"function","name":"get_weather","parameters":{"type":"object","properties":{"location":{"type":"string","description":"City - and state"}},"required":["location"]},"description":"Get current weather for - a location"}]}' + string: '{"model":"gpt-4o","input":"What''s the weather in Boston?","tools":[{"type":"function","name":"get_weather","description":"Get + current weather for a location","parameters":{"type":"object","properties":{"location":{"type":"string","description":"City + and state"}},"required":["location"]}}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -49,13 +49,35 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:19:03 GMT + - Tue, 14 Jul 2026 01:05:29 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1ac9e896bea5655-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '709' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -68,68 +90,52 @@ http_interactions: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_e297f3239138455f8ccbd1d05cce5465 - Openai-Processing-Ms: - - '1034' - X-Envoy-Upstream-Service-Time: - - '1042' - Cf-Cache-Status: - - DYNAMIC + - req_cfa2208cdfec4ac4a375b112ec882227 Set-Cookie: - - __cf_bm=K3qzvcCuUAxKT7R366coH7sjEwKq0Y_lT9bFlJS.O40-1761506343-1.0.1.1-2kXlRM.Wz5fKre3t8RVmSEF0yJRKpzN8tXJ1_P7wnCvASVtVW2UY54tucHKkvta4cpNFamuuHqooZcvFpdISjW8J1oC9rLhJHrK0JJflruQ; - path=/; expires=Sun, 26-Oct-25 19:49:03 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=DC2TDaR4bDCpECmdgvaSahh.lhRyJ2dQjmp2i9WuJLQ-1761506343079-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c4d8d4f51fc54-SJC + - __cf_bm=lV6DwdVLqo_VDRfc3dVypa_G7dbKE1gspc3NmN5Viwc-1783991128.541434-1.0.1.1-2bCjp.DEjkRdm8vgm6fqigkujAnoILtNzD3bJpECF9KXOmslVgsqBI_wtodBrTEEjRb0nYjv84aLyFkaaC1SZRJLcyRbHy6sMTYL8NdIRYm4EzZs52ghHpoH2ki_StEE; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:35:29 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_044dea7753762b2a0068fe742610b0819ab9bba091b60b747c", + "id": "resp_0452fc132dd2530e006a558b589c80819aaa9222faa26f9ef1", "object": "response", - "created_at": 1761506342, + "created_at": 1783991128, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991129, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "fc_044dea7753762b2a0068fe7426c6dc819a8df9fed3fbf98ca3", + "id": "fc_0452fc132dd2530e006a558b590188819ab8415ac1834bcb2a", "type": "function_call", "status": "completed", "arguments": "{\"location\":\"Boston, MA\"}", - "call_id": "call_hyx1vz7Cr7PBYVOIGHyUROly", + "call_id": "call_t4KL2ToMpepNyENdGWJeh0Wl", "name": "get_weather" } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -144,11 +150,30 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [ { "type": "function", "description": "Get current weather for a location", "name": "get_weather", + "output_schema": null, "parameters": { "type": "object", "properties": { @@ -171,6 +196,7 @@ http_interactions: "usage": { "input_tokens": 49, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 17, @@ -182,24 +208,24 @@ http_interactions: "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:19:03 GMT + recorded_at: Tue, 14 Jul 2026 01:05:29 GMT - request: method: post uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":[{"role":"user","content":"What''s the weather in Boston?"},{"id":"fc_044dea7753762b2a0068fe7426c6dc819a8df9fed3fbf98ca3","status":"completed","type":"function_call","call_id":"call_hyx1vz7Cr7PBYVOIGHyUROly","name":"get_weather","arguments":"{\"location\":\"Boston, - MA\"}"},{"type":"function_call_output","call_id":"call_hyx1vz7Cr7PBYVOIGHyUROly","output":"{\"location\":\"Boston, - MA\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}"}],"model":"gpt-4o","tools":[{"type":"function","name":"get_weather","parameters":{"type":"object","properties":{"location":{"type":"string","description":"City - and state"}},"required":["location"]},"description":"Get current weather for - a location"}]}' + string: '{"model":"gpt-4o","input":[{"role":"user","content":"What''s the weather + in Boston?"},{"arguments":"{\"location\":\"Boston, MA\"}","call_id":"call_t4KL2ToMpepNyENdGWJeh0Wl","name":"get_weather","type":"function_call","id":"fc_0452fc132dd2530e006a558b590188819ab8415ac1834bcb2a","status":"completed"},{"call_id":"call_t4KL2ToMpepNyENdGWJeh0Wl","output":"{\"location\":\"Boston, + MA\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","type":"function_call_output"}],"tools":[{"type":"function","name":"get_weather","description":"Get + current weather for a location","parameters":{"type":"object","properties":{"location":{"type":"string","description":"City + and state"}},"required":["location"]}}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -209,11 +235,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -234,13 +260,35 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:19:04 GMT + - Tue, 14 Jul 2026 01:05:31 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1ac9e8edfe8f9c5-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '2367' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -253,57 +301,38 @@ http_interactions: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_c216213f05bb42088453efbc5f894e37 - Openai-Processing-Ms: - - '1175' - X-Envoy-Upstream-Service-Time: - - '1178' - Cf-Cache-Status: - - DYNAMIC + - req_2ffe658126d74ce99f5b3d6263cfe7f8 Set-Cookie: - - __cf_bm=zC5vWs_k9QI7R9Jk2GJpz1muZdQcmrdLBuUpLRin6l4-1761506344-1.0.1.1-pDcFR9VgrFShVNwLTEsKFqj.UE4RRpczpRod_2ZQsoEf0VgpKUxWuMTl6pa03gMxVyEdprWPlRBBIYbo.LbyXqDWOoPOzkMjbEmxUSM8RF8; - path=/; expires=Sun, 26-Oct-25 19:49:04 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=06mBvfoCCX8EGbOnsDcYMZVqXUK3.BQBwaVuLHy3O4Y-1761506344389-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c4d9489e017f2-SJC + - __cf_bm=hhxPpz1OcIFpjxTaKHC2xOZZ.Ack41gf5y_tsH.oYkM-1783991129.4122372-1.0.1.1-LW9KIv85i8j6ivp_uBkrMAHhd5Ob6LM9tuMQZZcRDeDQad7516c8GbbWvHr36BlDCnQPrS8T3smrT_esw55mvMcZEAlYRLsDjXAX8Ue6eAhKke2D59yyusUyeHrGjwB_; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:35:31 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_044dea7753762b2a0068fe74272f50819ab876fcd7c92cbb5e", + "id": "resp_0452fc132dd2530e006a558b5991bc819abd78e98e373b181c", "object": "response", - "created_at": 1761506343, + "created_at": 1783991129, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991130, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "msg_044dea7753762b2a0068fe7427c72c819a878b990cebd7ebb8", + "id": "msg_0452fc132dd2530e006a558b59f3e4819aba86f4a76eba1a3d", "type": "message", "status": "completed", "content": [ @@ -311,16 +340,19 @@ http_interactions: "type": "output_text", "annotations": [], "logprobs": [], - "text": "The weather in Boston, MA is currently sunny with a temperature of 72\u00b0F." + "text": "The current weather in Boston, MA is 72\u00b0F and sunny." } ], "role": "assistant" } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -335,11 +367,30 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [ { "type": "function", "description": "Get current weather for a location", "name": "get_weather", + "output_schema": null, "parameters": { "type": "object", "properties": { @@ -362,16 +413,17 @@ http_interactions: "usage": { "input_tokens": 91, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, - "output_tokens": 19, + "output_tokens": 16, "output_tokens_details": { "reasoning_tokens": 0 }, - "total_tokens": 110 + "total_tokens": 107 }, "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:19:04 GMT -recorded_with: VCR 6.3.1 + recorded_at: Tue, 14 Jul 2026 01:05:31 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/usage/accessing_usage.yml b/test/fixtures/vcr_cassettes/docs/actions/usage/accessing_usage.yml deleted file mode 100644 index 31013f51..00000000 --- a/test/fixtures/vcr_cassettes/docs/actions/usage/accessing_usage.yml +++ /dev/null @@ -1,171 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://api.openai.com/v1/responses - body: - encoding: UTF-8 - string: '{"model":"gpt-4o-mini","input":"Hello"}' - headers: - Accept-Encoding: - - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 - Accept: - - application/json - User-Agent: - - OpenAI::Client/Ruby 0.35.1 - Host: - - api.openai.com - X-Stainless-Arch: - - arm64 - X-Stainless-Lang: - - ruby - X-Stainless-Os: - - MacOS - X-Stainless-Package-Version: - - 0.35.1 - X-Stainless-Runtime: - - ruby - X-Stainless-Runtime-Version: - - 3.4.7 - Content-Type: - - application/json - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID - Authorization: - - Bearer ACCESS_TOKEN - X-Stainless-Retry-Count: - - '0' - X-Stainless-Timeout: - - '600.0' - Content-Length: - - '39' - response: - status: - code: 200 - message: OK - headers: - Date: - - Wed, 12 Nov 2025 23:29:00 GMT - Content-Type: - - application/json - Transfer-Encoding: - - chunked - Connection: - - keep-alive - X-Ratelimit-Limit-Requests: - - '30000' - X-Ratelimit-Limit-Tokens: - - '150000000' - X-Ratelimit-Remaining-Requests: - - '29999' - X-Ratelimit-Remaining-Tokens: - - '149999972' - X-Ratelimit-Reset-Requests: - - 2ms - X-Ratelimit-Reset-Tokens: - - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID - X-Request-Id: - - req_62e82dbaa46043b68bc915bf9b34862d - Openai-Processing-Ms: - - '1231' - X-Envoy-Upstream-Service-Time: - - '1235' - Cf-Cache-Status: - - DYNAMIC - Set-Cookie: - - __cf_bm=jOQZKgjXVgzzXkJpsTIM8IcZrHmNMDv8gvYREQVg2tc-1762990140-1.0.1.1-JvvOr91wMqUGWrgxUz_rEn6RYuQwszhiXPKZad3YgxZQTDz7orI8proaUEMGVhljE9FFB_qVHbw0sQ6vsej4NJUoOk8wCNr4inuslNbtpuI; - path=/; expires=Wed, 12-Nov-25 23:59:00 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=uMhThWMYpKj2a6BxY9l6Er2bQJ.P4PINt1WKJBTRftw-1762990140010-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 99d9cf0b6fc12832-SJC - Alt-Svc: - - h3=":443"; ma=86400 - body: - encoding: ASCII-8BIT - string: |- - { - "id": "resp_0abb6ef00617114b006915183ac54481988bfb21f9c31318da", - "object": "response", - "created_at": 1762990138, - "status": "completed", - "background": false, - "billing": { - "payer": "developer" - }, - "error": null, - "incomplete_details": null, - "instructions": null, - "max_output_tokens": null, - "max_tool_calls": null, - "model": "gpt-4o-mini-2024-07-18", - "output": [ - { - "id": "msg_0abb6ef00617114b006915183bab448198956d8f6deb9b7c12", - "type": "message", - "status": "completed", - "content": [ - { - "type": "output_text", - "annotations": [], - "logprobs": [], - "text": "Hello! How can I assist you today?" - } - ], - "role": "assistant" - } - ], - "parallel_tool_calls": true, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": null, - "reasoning": { - "effort": null, - "summary": null - }, - "safety_identifier": null, - "service_tier": "default", - "store": true, - "temperature": 1.0, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": "auto", - "tools": [], - "top_logprobs": 0, - "top_p": 1.0, - "truncation": "disabled", - "usage": { - "input_tokens": 8, - "input_tokens_details": { - "cached_tokens": 0 - }, - "output_tokens": 10, - "output_tokens_details": { - "reasoning_tokens": 0 - }, - "total_tokens": 18 - }, - "user": null, - "metadata": {} - } - recorded_at: Wed, 12 Nov 2025 23:28:59 GMT -recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/docs/actions/usage/common_fields.yml b/test/fixtures/vcr_cassettes/docs/actions/usage/common_fields.yml deleted file mode 100644 index 27048458..00000000 --- a/test/fixtures/vcr_cassettes/docs/actions/usage/common_fields.yml +++ /dev/null @@ -1,171 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://api.openai.com/v1/responses - body: - encoding: UTF-8 - string: '{"model":"gpt-4o-mini","input":"Hello"}' - headers: - Accept-Encoding: - - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 - Accept: - - application/json - User-Agent: - - OpenAI::Client/Ruby 0.35.1 - Host: - - api.openai.com - X-Stainless-Arch: - - arm64 - X-Stainless-Lang: - - ruby - X-Stainless-Os: - - MacOS - X-Stainless-Package-Version: - - 0.35.1 - X-Stainless-Runtime: - - ruby - X-Stainless-Runtime-Version: - - 3.4.7 - Content-Type: - - application/json - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID - Authorization: - - Bearer ACCESS_TOKEN - X-Stainless-Retry-Count: - - '0' - X-Stainless-Timeout: - - '600.0' - Content-Length: - - '39' - response: - status: - code: 200 - message: OK - headers: - Date: - - Wed, 12 Nov 2025 23:29:01 GMT - Content-Type: - - application/json - Transfer-Encoding: - - chunked - Connection: - - keep-alive - X-Ratelimit-Limit-Requests: - - '30000' - X-Ratelimit-Limit-Tokens: - - '150000000' - X-Ratelimit-Remaining-Requests: - - '29999' - X-Ratelimit-Remaining-Tokens: - - '149999972' - X-Ratelimit-Reset-Requests: - - 2ms - X-Ratelimit-Reset-Tokens: - - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID - X-Request-Id: - - req_b80e7fca6487446caed8d3ebcc994781 - Openai-Processing-Ms: - - '1821' - X-Envoy-Upstream-Service-Time: - - '1827' - Cf-Cache-Status: - - DYNAMIC - Set-Cookie: - - __cf_bm=bBWzd_FUEAjpdkFec6IZ2VYIAGyCSFT3JRdB9.9BheI-1762990141-1.0.1.1-emI31PxOfuGU.1qQr8ZPaF254RU1o2U66Y2g7ubcUv8Tcj0pgniCRpjyvjdCBF5lLtonk4RQ47Gh_h5jUv.T5ccnu371YPmvit3Y5xfM8_M; - path=/; expires=Wed, 12-Nov-25 23:59:01 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=unEnj2VshMfN7lSF77iQgl3MYjjx1XV5ZYGxtzY78tA-1762990141936-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 99d9cf175bd0171e-SJC - Alt-Svc: - - h3=":443"; ma=86400 - body: - encoding: ASCII-8BIT - string: |- - { - "id": "resp_08b1b213774d685b006915183c1d04819b9471e7689b6fd652", - "object": "response", - "created_at": 1762990140, - "status": "completed", - "background": false, - "billing": { - "payer": "developer" - }, - "error": null, - "incomplete_details": null, - "instructions": null, - "max_output_tokens": null, - "max_tool_calls": null, - "model": "gpt-4o-mini-2024-07-18", - "output": [ - { - "id": "msg_08b1b213774d685b006915183d67ac819bbf1bbbf83d4a8da0", - "type": "message", - "status": "completed", - "content": [ - { - "type": "output_text", - "annotations": [], - "logprobs": [], - "text": "Hello! How can I assist you today?" - } - ], - "role": "assistant" - } - ], - "parallel_tool_calls": true, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": null, - "reasoning": { - "effort": null, - "summary": null - }, - "safety_identifier": null, - "service_tier": "default", - "store": true, - "temperature": 1.0, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": "auto", - "tools": [], - "top_logprobs": 0, - "top_p": 1.0, - "truncation": "disabled", - "usage": { - "input_tokens": 8, - "input_tokens_details": { - "cached_tokens": 0 - }, - "output_tokens": 10, - "output_tokens_details": { - "reasoning_tokens": 0 - }, - "total_tokens": 18 - }, - "user": null, - "metadata": {} - } - recorded_at: Wed, 12 Nov 2025 23:29:01 GMT -recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/docs/actions/usage/cost_tracking.yml b/test/fixtures/vcr_cassettes/docs/actions/usage/cost_tracking.yml deleted file mode 100644 index c94dc2fc..00000000 --- a/test/fixtures/vcr_cassettes/docs/actions/usage/cost_tracking.yml +++ /dev/null @@ -1,171 +0,0 @@ ---- -http_interactions: -- request: - method: post - uri: https://api.openai.com/v1/responses - body: - encoding: UTF-8 - string: '{"model":"gpt-4o-mini","input":"Analyze this data"}' - headers: - Accept-Encoding: - - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 - Accept: - - application/json - User-Agent: - - OpenAI::Client/Ruby 0.35.1 - Host: - - api.openai.com - X-Stainless-Arch: - - arm64 - X-Stainless-Lang: - - ruby - X-Stainless-Os: - - MacOS - X-Stainless-Package-Version: - - 0.35.1 - X-Stainless-Runtime: - - ruby - X-Stainless-Runtime-Version: - - 3.4.7 - Content-Type: - - application/json - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID - Authorization: - - Bearer ACCESS_TOKEN - X-Stainless-Retry-Count: - - '0' - X-Stainless-Timeout: - - '600.0' - Content-Length: - - '51' - response: - status: - code: 200 - message: OK - headers: - Date: - - Wed, 12 Nov 2025 23:29:04 GMT - Content-Type: - - application/json - Transfer-Encoding: - - chunked - Connection: - - keep-alive - X-Ratelimit-Limit-Requests: - - '30000' - X-Ratelimit-Limit-Tokens: - - '150000000' - X-Ratelimit-Remaining-Requests: - - '29999' - X-Ratelimit-Remaining-Tokens: - - '149999972' - X-Ratelimit-Reset-Requests: - - 2ms - X-Ratelimit-Reset-Tokens: - - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID - X-Request-Id: - - req_3aa3f5b81cb74a5f96f6919c33fb6021 - Openai-Processing-Ms: - - '1588' - X-Envoy-Upstream-Service-Time: - - '1591' - Cf-Cache-Status: - - DYNAMIC - Set-Cookie: - - __cf_bm=SYGePNCdAXcPQvzXZ.pqgzwECm3935Z3ScTnq9ZMWGY-1762990144-1.0.1.1-QdUwsugAIC_eFAjPEf65AvOpl497qrIgLFaqYhJkRjd.5CUA_VsaWuKVeuRDCKLdhRkZWYKBvsloSVMFFG4ezbM38XtbIwFgGjLMCp7JbIE; - path=/; expires=Wed, 12-Nov-25 23:59:04 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=.gLFiyetPJIqjeiWnkcFbXATnesDECFa6NDAim0ENaY-1762990144017-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 99d9cf235bcacf27-SJC - Alt-Svc: - - h3=":443"; ma=86400 - body: - encoding: ASCII-8BIT - string: |- - { - "id": "resp_00aba42807ba86ca006915183e6edc819bbd6f4f680f25ed62", - "object": "response", - "created_at": 1762990142, - "status": "completed", - "background": false, - "billing": { - "payer": "developer" - }, - "error": null, - "incomplete_details": null, - "instructions": null, - "max_output_tokens": null, - "max_tool_calls": null, - "model": "gpt-4o-mini-2024-07-18", - "output": [ - { - "id": "msg_00aba42807ba86ca006915183f3874819b893d43666b711090", - "type": "message", - "status": "completed", - "content": [ - { - "type": "output_text", - "annotations": [], - "logprobs": [], - "text": "I don't have the ability to view images directly. However, if you provide the data in text form or describe it, I can help analyze it!" - } - ], - "role": "assistant" - } - ], - "parallel_tool_calls": true, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": null, - "reasoning": { - "effort": null, - "summary": null - }, - "safety_identifier": null, - "service_tier": "default", - "store": true, - "temperature": 1.0, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": "auto", - "tools": [], - "top_logprobs": 0, - "top_p": 1.0, - "truncation": "disabled", - "usage": { - "input_tokens": 10, - "input_tokens_details": { - "cached_tokens": 0 - }, - "output_tokens": 31, - "output_tokens_details": { - "reasoning_tokens": 0 - }, - "total_tokens": 41 - }, - "user": null, - "metadata": {} - } - recorded_at: Wed, 12 Nov 2025 23:29:03 GMT -recorded_with: VCR 6.3.1 diff --git a/test/fixtures/vcr_cassettes/docs/actions/usage/embeddings_usage.yml b/test/fixtures/vcr_cassettes/docs/actions/usage/embeddings_usage.yml index 338e041f..282c0024 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/usage/embeddings_usage.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/usage/embeddings_usage.yml @@ -12,7 +12,7 @@ http_interactions: Accept: - application/json User-Agent: - - OpenAI::Client/Ruby 0.35.1 + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -22,11 +22,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.35.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -47,33 +47,37 @@ http_interactions: message: OK headers: Date: - - Wed, 12 Nov 2025 23:29:04 GMT + - Tue, 14 Jul 2026 01:06:03 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive - Access-Control-Allow-Origin: - - "*" + Cf-Ray: + - a1ac9f638ab097f0-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray - X-Request-ID - Openai-Model: - - text-embedding-3-small Openai-Organization: - - ORGANIZATION_ID + - quiltt-cmriu5 Openai-Processing-Ms: - - '152' + - '118' Openai-Project: - PROJECT_ID Openai-Version: - '2020-10-01' - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - Via: - - envoy-router-6889f5648c-65kr7 - X-Envoy-Upstream-Service-Time: - - '329' + X-Openai-Proxy-Wasm: + - v0.1 X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -87,1579 +91,15 @@ http_interactions: X-Ratelimit-Reset-Tokens: - 0s X-Request-Id: - - req_5985a0b646c24509b5b430c2ec74d2b0 - X-Openai-Proxy-Wasm: - - v0.1 - Cf-Cache-Status: - - DYNAMIC + - req_864e57e9d5404f03a343a73c59e69ee7 Set-Cookie: - - __cf_bm=e67wbjwg7vCcNaO74UqMy2nwPzoTr7YitFJZkNArfkM-1762990144-1.0.1.1-iQIxhj9.yy.HUDi.kLp6LJQlW7Jxq_L8Z1e4mIYf2nE6wbc48Rl0hQtlKZEWfC8xwu8GeT4OfURTdqnmyC0s0lYDqPLm7cvtyuDGs1hysw8; - path=/; expires=Wed, 12-Nov-25 23:59:04 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=FYoTso4gNjNODYQXeOEUO0FIVdqOft32G9DVViW0.gs-1762990144722-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 99d9cf307bd7fac2-SJC + - __cf_bm=Kit2GQvRxdGMUS1D4RntZ5kkoFtpeYMyDpPUtXxehwg-1783991163.4514832-1.0.1.1-XC7so.pC3hKECeFoP_R7n1M7_vkIL8hYR1JPb_yjD7a8rAqidviEZlyz58k.6yyxGzdOm0os7gP1HFvR7JQYkuGDpWkChhiCN6dk7hwqRNZUc2AXXE8OZwfYbuGgqw6v; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:36:03 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT - string: | - { - "object": "list", - "data": [ - { - "object": "embedding", - "index": 0, - "embedding": [ - 0.017561762, - 0.04001304, - -0.00036797966, - -0.031073036, - -0.045973048, - -0.010408309, - -0.04128605, - 0.053263925, - -0.0047014602, - -0.016057294, - 0.014183943, - -0.02722507, - 0.021308463, - 0.0032819808, - 0.034978863, - 0.028657207, - -0.032577503, - -0.012578214, - 0.004972698, - 0.034747407, - 0.010437242, - -0.008296269, - -0.01640448, - 0.011739184, - 0.012882001, - -0.0033362284, - -0.010466173, - 0.021134872, - 0.066717334, - -0.015522052, - 0.006231243, - -0.039174013, - 0.0050414116, - 0.0076886956, - -0.018936034, - 0.014668556, - -0.005243936, - 0.010878456, - -0.008542191, - -0.046233434, - -0.00280641, - 0.024809243, - 0.015724575, - 0.016635936, - -0.01657807, - -0.047737904, - -0.04909771, - -0.01508807, - 0.047332853, - 0.034949932, - 0.05236703, - -0.021062542, - -0.028744005, - 0.03706197, - 0.015608847, - -0.022248756, - -0.0614517, - 0.007178768, - 0.04224081, - 0.035297114, - -0.011645155, - 0.06266685, - -0.0035604518, - 0.0055513396, - 0.007243865, - -0.007515103, - -0.03466061, - 0.05300354, - -0.015579916, - 0.0027810945, - -0.022147493, - -0.012165932, - -0.020064386, - -0.040765274, - -0.0019420647, - -0.014321371, - 0.05222237, - 0.041662168, - -0.016939722, - 0.0045206347, - 0.043513823, - 0.0037213864, - -0.03144915, - -0.026964681, - -0.020570695, - 0.025416818, - -0.06521287, - 0.018863704, - -0.025518078, - -0.0523381, - -0.05922393, - -0.013619768, - 0.01676613, - -0.006643525, - 0.025503613, - 0.017460499, - -0.018675646, - -0.015478653, - -0.01647681, - 0.05164373, - 0.0038117992, - -0.03315614, - 0.040852074, - -0.04559693, - -0.008650687, - -0.0002942933, - -0.0041842996, - -0.056735773, - -0.00062701205, - -0.033358667, - -0.07342958, - -0.038392846, - -0.026892351, - 0.037727408, - -0.013858458, - -0.017590694, - 0.017518364, - -0.052829947, - -0.036136147, - 0.002949262, - 0.009605445, - -0.014285206, - -0.0076742293, - -0.019558074, - -0.0044555375, - 0.0107120965, - -0.03874003, - -0.034602746, - -0.0066073597, - -0.03480527, - 0.043282364, - -0.009026803, - -0.007428307, - 0.001581318, - -0.052627422, - -0.008628988, - -0.035441775, - 0.028932063, - -0.040852074, - 0.042848386, - 0.00047828315, - -0.000022306507, - -0.005135441, - 0.026270313, - -0.07267734, - -0.03127556, - -0.026733225, - -0.00043963172, - 0.02974216, - -0.0013136965, - -0.00750787, - -0.015232731, - -0.077827245, - 0.030291868, - 0.0070594233, - -0.011189475, - 0.025980992, - -0.008108211, - -0.043311298, - -0.007905686, - -0.0039202943, - -0.0028733155, - 0.06341908, - -0.021771377, - 0.0010171428, - -0.02988682, - 0.0095765125, - -0.002905864, - -0.055433832, - 0.023189047, - -0.018285064, - -0.018097006, - -0.003211459, - 0.026082255, - -0.02453439, - 0.036830515, - 0.029857889, - 0.039231878, - -0.024838176, - 0.03648333, - 0.005135441, - 0.03926081, - 0.015825838, - -0.021988368, - 0.059252862, - -0.011898311, - 0.048200816, - -0.0042783287, - -0.02930818, - -0.013337681, - 0.028150896, - 0.015391857, - 0.055578493, - 0.010531271, - -0.010032193, - 0.0147553515, - -0.0124841845, - 0.004658062, - -0.015478653, - 0.00033068442, - 0.04348489, - 0.004231314, - -0.026371574, - 0.021366328, - -0.09090454, - 0.0011491453, - -0.022610407, - 0.028266625, - -0.023449436, - -0.010090057, - 0.09622804, - -0.017865548, - 0.00002294222, - -0.031478085, - -0.03188313, - 0.0012269003, - 0.00031802666, - -0.025460215, - 0.035268184, - -0.040707413, - -0.0013516698, - -0.012983263, - 0.028483614, - 0.01640448, - 0.023319243, - 0.031333424, - 0.020454967, - -0.016057294, - -0.018140404, - -0.022914194, - 0.047911495, - 0.032461774, - 0.043282364, - -0.010111756, - 0.034718476, - 0.011449863, - 0.013930788, - 0.008780881, - 0.0065277964, - -0.032751095, - -0.108321644, - -0.05236703, - 0.009822435, - 0.03142022, - 0.0077754916, - 0.0080358805, - 0.03535498, - -0.040909935, - 0.045105085, - 0.005627286, - -0.002556871, - 0.034168765, - 0.0032711313, - -0.058384903, - 0.07059423, - 0.0013625193, - -0.039463334, - 0.03254857, - 0.03874003, - -0.014111613, - -0.008925541, - -0.011985106, - -0.020975744, - -0.034429155, - -0.061393835, - -0.026429439, - 0.03801673, - -0.026371574, - 0.01153666, - -0.047361787, - -0.044005666, - 0.021626716, - 0.064460635, - -0.01657807, - -0.050399654, - 0.049734216, - -0.022827396, - 0.02180031, - 0.027384197, - 0.007536802, - -0.061393835, - -0.0019764216, - -0.011189475, - -0.016968654, - 0.01206467, - 0.015883703, - 0.043166637, - -0.030783715, - 0.024274, - 0.045220815, - -0.00075313775, - -0.04221188, - 0.046956737, - -0.03590469, - -0.006488015, - 0.035412844, - 0.038248185, - -0.013800594, - 0.041604307, - 0.03087051, - 0.083324336, - 0.024664583, - 0.027803712, - 0.003233158, - -0.00052077713, - 0.06584937, - 0.025358953, - 0.002130123, - 0.048229747, - -0.023116717, - -0.009952629, - -0.021453124, - 0.01844419, - -0.06116238, - -0.040909935, - -0.05375577, - 0.04796936, - 0.037958864, - 0.013735496, - -0.056504317, - 0.066890925, - -0.027977305, - 0.054970916, - 0.0025659122, - -0.0029564952, - 0.024028078, - -0.02329031, - -0.016809529, - -0.0021626716, - -0.011182242, - 0.010061124, - -0.0204839, - -0.03422663, - -0.046985667, - -0.024809243, - -0.044323917, - -0.0038732798, - 0.058008786, - -0.011522193, - -0.025416818, - -0.013547438, - -0.029105654, - -0.021453124, - -0.015232731, - 0.036165077, - -0.005967238, - -0.03633867, - -0.006715855, - -0.0083252005, - 0.011594524, - 0.0071281367, - -0.021756912, - 0.023319243, - -0.018400792, - 0.006770103, - -0.06492355, - 0.0031391287, - 0.007572967, - -0.00485697, - 0.0295541, - 0.015333993, - -0.048779458, - 0.019514676, - -0.022841863, - 0.015377391, - 0.021670114, - -0.019775065, - 0.011652388, - 0.024433127, - 0.0034447236, - 0.0056055873, - -0.009807969, - 0.007544035, - 0.037119836, - -0.012267195, - 0.013265351, - -0.02252361, - 0.030234005, - 0.015305061, - 0.045683727, - 0.008520492, - -0.008448162, - -0.031796336, - -0.058153447, - 0.011131611, - -0.015059139, - 0.04151751, - 0.03983945, - -0.0070666564, - -0.007797191, - -0.0117898155, - 0.0027901358, - 0.04224081, - -0.002479116, - -0.0017106081, - 0.018632248, - 0.038826827, - 0.048171885, - 0.019803997, - -0.021525454, - 0.031478085, - -0.030754782, - -0.0272974, - -0.020802153, - -0.027977305, - 0.022060698, - -0.01913856, - 0.026545167, - 0.010719329, - -0.0021500138, - 0.0029962766, - -0.035383914, - 0.021988368, - 0.05190412, - -0.001032513, - -0.015536518, - 0.038913622, - 0.06793248, - 0.017257975, - 0.00061751873, - 0.012831369, - -0.0020198196, - -0.034487016, - 0.0030252088, - -0.008368599, - 0.04632023, - 0.07429753, - -0.037380226, - 0.0630719, - -0.014972342, - -0.04064955, - 0.020093318, - -0.009605445, - -0.028772935, - -0.040244497, - -0.040736344, - -0.037582748, - 0.05499985, - -0.022190891, - -0.023463903, - -0.019615939, - -0.0098586, - -0.007388525, - 0.008759182, - -0.010082823, - 0.034429155, - 0.03518139, - 0.026617497, - -0.043195568, - -0.028816333, - 0.02485264, - -0.02475138, - -0.0060287183, - -0.01709885, - 0.018820306, - -0.009084667, - 0.0061589126, - -0.025720604, - 0.02259594, - 0.020643026, - 0.008231171, - 0.028845266, - 0.0032657066, - 0.031796336, - 0.057314415, - -0.0326643, - 0.014285206, - 0.055752084, - 0.04646489, - -0.013193021, - -0.017518364, - 0.050717905, - -0.030147208, - -0.014704721, - -0.005497092, - -0.006509714, - -0.03153595, - -0.04082314, - -0.022769533, - -0.06770103, - 0.0103649115, - -0.019008365, - 0.009323357, - 0.016390013, - -0.02741313, - 0.09946843, - -0.020122249, - 0.0017603352, - 0.010401077, - -0.03561537, - -0.030639054, - 0.0151604, - -0.010632533, - -0.017518364, - -0.0318542, - -0.026603032, - -0.0637084, - -0.017793218, - 0.0041915327, - -0.021713512, - -0.007258331, - 0.0036743719, - -0.022176426, - 0.012643311, - 0.031159831, - 0.02751439, - 0.013627001, - -0.0025821866, - 0.023550699, - 0.0054790094, - -0.0032819808, - -0.007392142, - 0.021424193, - 0.030407598, - 0.041922558, - 0.0013552863, - -0.0034935465, - 0.020657493, - -0.022190891, - -0.016216421, - 0.04921344, - 0.0010505955, - 0.029221382, - -0.066601604, - -0.012947097, - -0.035268184, - -0.018964967, - -0.0492713, - -0.011247339, - -0.021771377, - -0.014567293, - 0.010176853, - 0.03312721, - 0.014212876, - -0.00091994915, - -0.0387111, - -0.03408197, - 0.0037937167, - -0.027138274, - 0.031333424, - -0.0010261841, - 0.03547071, - 0.0033597357, - -0.009612678, - -0.007883987, - 0.0072619477, - -0.0004032406, - 0.003198801, - 0.017012052, - -0.014581759, - 0.02875847, - -0.037438087, - 0.00849156, - -0.003184335, - 0.014719186, - 0.015608847, - -0.023203515, - -0.011254572, - 0.015247197, - 0.0054753926, - 0.0014420825, - -0.018487588, - 0.006889447, - -0.02242235, - -0.013641467, - 0.0069762436, - -0.011760883, - -0.012390155, - 0.0069039133, - -0.041054595, - 0.010581901, - -0.018820306, - 0.008180541, - 0.013858458, - -0.022509145, - 0.0025731453, - -0.015290595, - 0.0038696632, - -0.062088206, - -0.01683846, - -0.019803997, - 0.025055166, - 0.022161959, - 0.020281376, - -0.027818177, - -0.017880015, - 0.0036454399, - 0.011898311, - -0.0030234004, - 0.0041445177, - 0.061509565, - 0.0043542753, - 0.017865548, - -0.009337823, - -0.007171535, - -0.01957254, - -0.0026183517, - -0.05864529, - 0.0010713905, - 0.0035658767, - 0.024881573, - -0.018256132, - 0.03309828, - 0.009149765, - -0.030205073, - 0.0059419223, - 0.00065051933, - -0.01727244, - 0.021192735, - -0.031940997, - -0.021279532, - 0.03072585, - -0.02187264, - 0.00933059, - 0.015753508, - 0.011572825, - -0.0356443, - -0.024375262, - -0.006437384, - 0.01767749, - -0.0086723855, - -0.029394975, - 0.017547296, - 0.0545948, - -0.007037724, - -0.012947097, - 0.008310735, - -0.019297685, - 0.04151751, - 0.0003112457, - 0.011659621, - 0.056591112, - 0.026588565, - -0.03607828, - -0.038942557, - -0.0030378664, - 0.06897403, - -0.019413413, - -0.019095162, - 0.010610834, - 0.014126079, - 0.022567008, - 0.02861381, - -0.045278676, - 0.017634092, - 0.011514961, - 0.017012052, - 0.011594524, - 0.026516235, - 0.001787459, - -0.010748261, - 0.007450006, - 0.030291868, - -0.015044672, - 0.020382637, - 0.01657807, - -0.0054428442, - -0.0061986945, - -0.008354133, - -0.007949084, - 0.0034176, - 0.048432272, - -0.0013561904, - -0.06706452, - -0.037611682, - 0.006401219, - -0.010972485, - -0.01069763, - -0.013945254, - 0.021192735, - -0.04417926, - 0.009554814, - 0.03312721, - 0.014277972, - 0.038045663, - 0.022190891, - 0.058818884, - -0.04067848, - 0.022755068, - 0.0036635224, - -0.008166075, - 0.013901856, - -0.030841578, - 0.0039058283, - 0.028772935, - 0.014567293, - 0.0060395678, - 0.016418945, - 0.00827457, - -0.0036906463, - -0.010835057, - -0.02511303, - 0.033734784, - 0.009511416, - 0.025908662, - -0.029800024, - -0.016635936, - 0.024722448, - -0.006730321, - -0.021192735, - 0.020527298, - 0.019731667, - -0.0046761446, - 0.00019167492, - -0.002471883, - -0.03590469, - -0.006730321, - -0.0017069917, - 0.037235565, - 0.0076163653, - -0.008064812, - -0.03301148, - -0.0033579275, - -0.03425556, - -0.0042421636, - 0.035875756, - 0.003710537, - -0.0227406, - 0.012476952, - -0.036020417, - -0.00697986, - 0.021120405, - -0.00019890793, - -0.020093318, - -0.012100835, - -0.052453827, - 0.0029402208, - -0.017764287, - -0.015898168, - 0.036975175, - 0.013127923, - 0.007522336, - 0.010205785, - 0.02609672, - -0.0062203933, - 0.035991486, - -0.055896744, - -0.011196708, - 0.010806126, - -0.01858885, - 0.0025858032, - 0.00026016252, - -0.011211175, - 0.003419408, - -0.018053606, - -0.03309828, - 0.02624138, - -0.024346331, - -0.05300354, - -0.023796622, - 0.004744858, - 0.0136487, - -0.002171713, - -0.034747407, - 0.024259534, - -0.06584937, - -0.008484327, - 0.024997301, - 0.026964681, - 0.014364769, - 0.049039844, - 0.007905686, - -0.032577503, - 0.009656075, - -0.012708409, - -0.0016943339, - -0.024114873, - -0.021568852, - 0.00069346535, - 0.01093632, - -0.013735496, - -0.042154014, - -0.007572967, - 0.023521766, - 0.0039998577, - -0.0025677206, - -0.024187203, - 0.019558074, - -0.004003474, - 0.033619057, - -0.0019981205, - 0.00964161, - -0.017417101, - 0.0032440075, - -0.032230318, - -0.013858458, - 0.032780025, - -0.01662147, - -0.0010433625, - -0.0018552685, - 0.025431283, - -0.020368172, - -0.002200645, - -0.027731381, - -0.017952345, - 0.021308463, - -0.028179828, - -0.04093887, - 0.01379336, - 0.00040346663, - 0.013113457, - -0.009026803, - -0.019832928, - 0.004506169, - 0.018545453, - 0.008780881, - 0.03518139, - 0.0016681142, - 0.02343497, - 0.018473122, - 0.015898168, - -0.028527014, - 0.03986838, - 0.06862685, - -0.011580057, - -0.0055079414, - -0.024389729, - -0.003894979, - 0.017518364, - 0.01434307, - 0.007016025, - -0.023102252, - -0.029655363, - -0.020541765, - 0.020165646, - 0.036396533, - -0.004914834, - -0.00024479238, - 0.01705545, - 0.015319527, - 0.036946245, - -0.0074066077, - -0.019268753, - 0.010762727, - -0.030436529, - 0.0012865727, - -0.02055623, - -0.011449863, - -0.03142022, - -0.0079780165, - 0.02868614, - 0.011977874, - 0.014068215, - -0.02172798, - 0.005428378, - 0.021279532, - 0.013185787, - -0.0019131326, - -0.026588565, - 0.024216136, - -0.014769818, - -0.0017847465, - 0.008679619, - 0.0032874055, - 0.0013435326, - -0.01000326, - -0.007609132, - -0.010191319, - 0.0032458156, - -0.024693515, - 0.010719329, - 0.017460499, - -0.023246912, - -0.0387111, - 0.0035170538, - 0.028671674, - 0.02650177, - 0.01372103, - 0.0041698334, - -0.023637494, - 0.050168198, - 0.010437242, - -0.020657493, - -0.036396533, - -0.007265564, - 0.036975175, - -0.026226914, - 0.037264496, - -0.028179828, - 0.009128066, - 0.032751095, - 0.0119634075, - -0.027760314, - 0.0013878349, - -0.016115159, - -0.029611966, - -0.03506566, - 0.04614664, - -0.030986238, - 0.024389729, - 0.03379265, - 0.010516805, - 0.013829526, - -0.0073740594, - -0.026125653, - 0.022277689, - 0.0067918017, - 0.014928944, - 0.011283504, - -0.013091758, - -0.061220244, - 0.005905757, - 0.0364544, - 0.0023977447, - 0.018183801, - 0.015232731, - -0.014249041, - 0.02376769, - 0.015464188, - 0.02897546, - -0.043021977, - 0.00189505, - 0.019977588, - 0.03251964, - 0.010176853, - -0.025633806, - -0.02686342, - 0.0056453687, - 0.00447362, - 0.026125653, - -0.020845551, - -0.02624138, - -0.031796336, - -0.0040794206, - 0.02758672, - 0.030667987, - 0.011037582, - 0.018805841, - 0.018559918, - 0.011956175, - -0.014661322, - 0.00023823745, - -0.026892351, - 0.030639054, - 0.036309738, - 0.017330306, - 0.052685287, - 0.018415257, - -0.0026509003, - -0.036020417, - 0.03735129, - -0.021453124, - 0.027167207, - -0.038248185, - 0.0071317535, - -0.027499925, - -0.019196423, - 0.021655649, - 0.00056553143, - -0.0016997587, - -0.016592538, - -0.031507015, - 0.008853211, - -0.018068073, - -0.0058732084, - 0.0045495667, - 0.026776623, - 0.013265351, - -0.00016330792, - 0.02938051, - -0.00025473777, - 0.016346615, - -0.0007151644, - -0.033300802, - 0.0126939425, - -0.008694084, - 0.032722164, - -0.016607003, - 0.042472266, - -0.028469149, - 0.013221952, - 0.02314565, - 0.023854485, - 0.050052468, - -0.044150326, - 0.0142924385, - 0.032085657, - -0.014509429, - -0.02070089, - -0.040504888, - 0.040041976, - 0.032317113, - 0.014299672, - -0.026386041, - 0.005280101, - 0.027022546, - 0.0341977, - 0.005370514, - 0.033069346, - -0.0033000633, - 0.012795204, - -0.006205927, - 0.018198267, - 0.0025514462, - -0.010806126, - -0.026892351, - -0.027051479, - 0.017474966, - 0.00036775364, - 0.030494394, - 0.02861381, - -0.020729823, - -0.0019565306, - -0.0005854222, - -0.039347604, - -0.02194497, - 0.02453439, - -0.0011066514, - 0.0047991057, - 0.0038154158, - 0.0182272, - 0.04640703, - 0.010965251, - -0.021351863, - 0.030494394, - -0.02172798, - 0.032317113, - -0.0050667273, - -0.03746702, - 0.008549425, - 0.038537506, - -0.0011355834, - 0.025764002, - -0.011384767, - 0.015131469, - -0.015984964, - 0.018719044, - 0.016390013, - -0.0079780165, - -0.002479116, - 0.006950928, - 0.014719186, - 0.0049220673, - -0.028150896, - -0.0037575515, - 0.03127556, - -0.023782155, - -0.015073604, - 0.022147493, - 0.015536518, - 0.008289035, - 0.013518506, - 0.007761026, - 0.0038262652, - 0.001388739, - -0.013865691, - 0.021684581, - -0.0052873343, - 0.0040794206, - -0.009547581, - -0.008245638, - -0.00993093, - -0.0033271872, - -0.016635936, - -0.00004721238, - -0.0019275986, - -0.0023489217, - 0.021742444, - 0.006187845, - 0.0065965103, - 0.018024676, - 0.03101517, - 0.037611682, - 0.012462486, - -0.0023561548, - 0.018574383, - -0.0027792861, - -0.0060070194, - 0.011052048, - 0.011218407, - 0.030667987, - -0.011435398, - 0.018502053, - 0.00009318158, - -0.004535101, - 0.023724291, - 0.009012338, - -0.06544433, - 0.03596255, - 0.040881004, - 0.01657807, - 0.003804566, - -0.037235565, - 0.012882001, - 0.023391573, - 0.012455253, - -0.018574383, - 0.0021409725, - -0.020758756, - 0.004036023, - -0.011493262, - -0.0013236419, - 0.010784426, - -0.008006948, - 0.018704578, - 0.032432843, - 0.004415756, - 0.027977305, - 0.042125084, - 0.013308749, - 0.020874484, - -0.00424578, - -0.020541765, - -0.00020625396, - -0.01662147, - -0.011500495, - -0.026689827, - 0.0394344, - -0.009120832, - 0.02671876, - 0.009540347, - -0.01709885, - 0.00485697, - 0.00066182093, - 0.0056019705, - -0.0142345745, - -0.0057032327, - -0.0016265244, - -0.006827967, - 0.020180114, - 0.010285348, - 0.004437455, - 0.015131469, - 0.028859733, - -0.029149052, - -0.008260104, - -0.02602439, - 0.016881859, - 0.0051679895, - -0.0038262652, - 0.00820224, - -0.0013525739, - -0.003419408, - -0.0031246627, - -0.041662168, - -0.024577787, - 0.017634092, - -0.029250314, - -0.018342927, - -0.022321086, - -0.021380793, - 0.021279532, - 0.0303208, - 0.007522336, - 0.020295842, - 0.052135576, - 0.0009208533, - 0.10311387, - 0.019876327, - -0.03576003, - -0.03130449, - -0.01921089, - 0.0013697523, - -0.01705545, - 0.002200645, - 0.015145934, - -0.0037901, - -0.012469719, - -0.023449436, - -0.010451707, - 0.019297685, - 0.009945396, - 0.0031011554, - 0.00820224, - -0.017474966, - 0.005334349, - -0.037004106, - 0.0083252005, - 0.014263507, - 0.026516235, - 0.02412934, - -0.009699474, - -0.009229328, - -0.011080979, - -0.0105385035, - 0.03440022, - 0.047072466, - 0.03170954, - -0.017503897, - -0.011601757, - 0.022841863, - -0.017995743, - -0.022118561, - -0.0064699324, - 0.00016138666, - -0.008845978, - -0.0039709257, - 0.009938164, - 0.03254857, - 0.032577503, - 0.037524886, - 0.0058298106, - 0.0022259606, - 0.05482626, - -0.0051028924, - 0.013807827, - 0.0021680964, - -0.042761587, - 0.025358953, - 0.0039419937, - -0.0025188976, - -0.01350404, - -0.019905258, - -0.020049918, - -0.02525769, - 0.0356443, - -0.030234005, - -0.024924971, - -0.00508481, - 0.022104096, - 0.015522052, - 0.009735639, - -0.037727408, - -0.023796622, - 0.020541765, - -0.016418945, - -0.0097501045, - -0.011601757, - 0.01578244, - -0.018342927, - -0.0076742293, - 0.006972627, - 0.008506026, - 0.014379235, - 0.015102536, - -0.007999715, - -0.0076163653, - 0.0072510983, - 0.06203034, - 0.00044257013, - 0.035991486, - 0.024288466, - -0.029611966, - -0.016520208, - -0.006650758, - 0.024592252, - 0.005576655, - -0.033358667, - 0.0049907807, - 0.039607994, - 0.049010914, - -0.00825287, - 0.014249041, - -0.011507728, - 0.01501574, - 0.024881573, - -0.038797896, - 0.0033778183, - 0.027528858, - -0.021655649, - 0.026689827, - 0.01923982, - 0.005034179, - -0.021438658, - -0.002030669, - -0.015117003, - -0.024302932, - 0.014523895, - 0.012824137, - 0.0024519924, - -0.014531128, - -0.022219824, - 0.011688553, - -0.03874003, - -0.03451595, - -0.019471278, - -0.030407598, - -0.0021988368, - -0.003126471, - -0.028801868, - 0.004636363, - -0.011080979, - -0.00713537, - -0.013062826, - 0.010777193, - 0.022176426, - 0.009728406, - 0.0016979504, - -0.020802153, - 0.011355834, - 0.014126079, - 0.024722448, - 0.008751948, - -0.0048605865, - -0.004285562, - 0.062261797, - -0.038797896, - -0.005070344, - 0.01705545, - -0.020498365, - 0.011645155, - 0.020686425, - -0.003909445, - 0.00918593, - 0.003446532, - -0.0056345193, - -0.051354412, - -0.044555377, - 0.017417101, - -0.037148766, - 0.008578356, - 0.037843138, - 0.049936738, - -0.04825868, - -0.0159271, - 0.003952843, - 0.022219824, - 0.0006871365, - 0.030899443, - -0.018357394, - 0.0056706844, - 0.0387111, - 0.0041409014, - -0.0055115577, - 0.020194579, - -0.0020758754, - -0.013417244, - 0.026660895, - -0.011196708, - -0.013113457, - 0.011457097, - -0.022292154, - 0.007493404, - -0.021062542, - -0.0031771022, - -0.007833356, - -0.016100693, - 0.008715784, - -0.049473826, - -0.007457239, - -0.026371574, - -0.012288894, - 0.025532546, - -0.0045893486, - -0.02300099, - 0.018386325, - 0.0056996164, - 0.0040179403, - -0.03845071, - 0.015984964, - 0.0014348495, - -0.006610976, - 0.011015883, - -0.019890793, - -0.018140404, - -0.019181957, - 0.010155153, - 0.027543323, - 0.014538362, - 0.027543323, - -0.0011084597, - -0.019847395, - -0.0140031185, - -0.027832644, - 0.015059139, - -0.0103649115, - -0.0032964468, - -0.0026725992, - -0.027311867, - 0.0056743007, - 0.009540347, - -0.018285064, - 0.012860302, - 0.01968827, - 0.04224081, - -0.014126079, - 0.001958339, - 0.0015053714, - -0.00371777, - -0.024100408, - 0.0054175286, - -0.0058298106, - 0.008585589, - -0.002784711, - -0.026197983, - -0.0071028215, - 0.008137142, - -0.020368172, - 0.009149765, - 0.0074029914, - -0.023406038, - -0.0011997764, - -0.0046544457, - -0.022465747, - -0.00083496125, - 0.0023597714, - 0.008216706, - -0.018473122, - -0.007044957, - -0.016028363, - 0.00036639743, - -0.01508807, - 0.031767406, - 0.0070304913, - 0.00394561, - 0.0063469713, - 0.015030206, - 0.009612678, - 0.038045663, - 0.000018675872, - -0.03596255, - -0.027355265, - -0.010589135, - 0.013164088, - -0.014155012, - -0.016650401, - 0.0041047363, - -0.010719329, - 0.0052584023, - 0.021207202, - 0.009323357, - -0.00851326, - -0.023782155, - 0.0057321647, - 0.014769818, - -0.027543323, - 0.055867814, - 0.017923413, - -0.0341109, - 0.0036797966, - 0.02722507, - -0.011601757, - -0.02478031, - 0.034920998, - 0.0053451983, - -0.008361366, - -0.0045568, - -0.0056996164, - -0.03518139, - 0.029800024, - -0.023203515, - 0.0182272, - -0.018285064, - -0.013070059, - -0.008665153, - 0.031217694, - 0.0029329879, - 0.017720887, - 0.011247339, - -0.0076669967, - 0.01599943, - -0.003996241, - -0.0041698334, - -0.01683846, - -0.025228757, - -0.036367603, - -0.020643026, - 0.008383065, - -0.0030794563, - 0.036685854, - -0.010184086, - -0.03072585, - 0.017648557, - 0.017576227, - 0.011486028, - 0.023174582, - 0.051846255, - -0.0037792507, - 0.0010487873, - -0.0038298818, - 0.002949262, - -0.0003333968, - 0.037582748, - 0.021019144, - 0.024577787, - -0.04064955, - -0.011037582, - 0.03017614, - -0.021655649, - -0.0072764135, - 0.009128066, - -0.017301373, - -0.05066004, - -0.02281293, - 0.0003797333, - 0.046956737, - 0.017229043, - 0.011240106, - 0.024765845, - -0.00050450285, - 0.0069400785, - -0.016664868, - 0.0032494322, - 0.010466173, - -0.01571011, - -0.0029709612, - -0.009265493, - 0.014335837, - 0.015956033, - 0.017171178, - 0.014299672, - 0.015883703, - 0.0017106081, - -0.0062999567, - 0.024476524, - 0.00029158095, - -0.03518139, - 0.002627393, - 0.0059238398, - 0.0056706844, - -0.021366328, - -0.023536233, - 0.015594382, - 0.017344771, - -0.011572825, - 0.012144233, - 0.011073747, - -0.013164088, - 0.008694084, - -0.003981775, - 0.026342643, - -0.018140404, - 0.02398468, - 0.015348459, - -0.00095204567, - 0.0076886956, - 0.011478796, - -0.030552257, - 0.029771091, - 0.010415542, - -0.015811373, - 0.007243865, - 0.025764002, - -0.000776645, - 0.017489431, - -0.036685854, - -0.050428584, - 0.019876327, - -0.032606434, - 0.018010208, - 0.004260246, - 0.004343426, - 0.014538362, - 0.012144233, - 0.0028733155, - -0.022161959 - ] - } - ], - "model": "text-embedding-3-small", - "usage": { - "prompt_tokens": 2, - "total_tokens": 2 - } - } - recorded_at: Wed, 12 Nov 2025 23:29:04 GMT -recorded_with: VCR 6.3.1 + string: '{"object":"list","data":[{"object":"embedding","embedding":[0.0175018310546875,0.040008544921875,-0.00034236907958984375,-0.0311279296875,-0.046051025390625,-0.01041412353515625,-0.04132080078125,0.05328369140625,-0.004711151123046875,-0.0160369873046875,0.0141754150390625,-0.0272064208984375,0.0213470458984375,0.0033245086669921875,0.03497314453125,0.02862548828125,-0.032562255859375,-0.012603759765625,0.004974365234375,0.03472900390625,0.0104522705078125,-0.008270263671875,-0.0164031982421875,0.01175689697265625,0.012847900390625,-0.0033435821533203125,-0.01049041748046875,0.02117919921875,0.06671142578125,-0.01555633544921875,0.00615692138671875,-0.0391845703125,0.00501251220703125,0.0077056884765625,-0.0189361572265625,0.0146636962890625,-0.005268096923828125,0.0109100341796875,-0.0085296630859375,-0.04620361328125,-0.0027561187744140625,0.02484130859375,0.0157470703125,0.01666259765625,-0.016632080078125,-0.047760009765625,-0.049102783203125,-0.0150909423828125,0.04736328125,0.034912109375,0.0523681640625,-0.02105712890625,-0.028778076171875,0.037078857421875,0.015625,-0.022308349609375,-0.06146240234375,0.007152557373046875,0.042266845703125,0.035308837890625,-0.01165771484375,0.062744140625,-0.003643035888671875,0.005542755126953125,0.0072479248046875,-0.007480621337890625,-0.03460693359375,0.053009033203125,-0.01555633544921875,0.0027790069580078125,-0.0220794677734375,-0.01216888427734375,-0.02008056640625,-0.040802001953125,-0.0019207000732421875,-0.0142822265625,0.05224609375,0.04168701171875,-0.0169219970703125,0.004573822021484375,0.04351806640625,0.0037326812744140625,-0.031463623046875,-0.0270233154296875,-0.0205841064453125,0.025421142578125,-0.0653076171875,0.0188751220703125,-0.025543212890625,-0.0523681640625,-0.059234619140625,-0.01360321044921875,0.0167999267578125,-0.006656646728515625,0.0255584716796875,0.0174407958984375,-0.018768310546875,-0.01548004150390625,-0.0164794921875,0.051605224609375,0.0038089752197265625,-0.033172607421875,0.040802001953125,-0.04559326171875,-0.0086517333984375,-0.0002796649932861328,-0.00421905517578125,-0.05670166015625,-0.0006175041198730469,-0.0333251953125,-0.073486328125,-0.038360595703125,-0.026885986328125,0.037689208984375,-0.01383209228515625,-0.0175628662109375,0.017608642578125,-0.052825927734375,-0.0361328125,0.0030059814453125,0.00962066650390625,-0.0142974853515625,-0.00765228271484375,-0.01953125,-0.00444793701171875,0.01067352294921875,-0.03875732421875,-0.03460693359375,-0.006610870361328125,-0.034820556640625,0.043243408203125,-0.00904083251953125,-0.007434844970703125,0.0015363693237304688,-0.052703857421875,-0.00862884521484375,-0.035430908203125,0.028961181640625,-0.040863037109375,0.042938232421875,0.00045037269592285156,-0.00003921985626220703,-0.005168914794921875,0.0262908935546875,-0.07269287109375,-0.031280517578125,-0.0267333984375,-0.0004467964172363281,0.0297393798828125,-0.0012712478637695312,-0.00750732421875,-0.01523590087890625,-0.07794189453125,0.0302734375,0.007083892822265625,-0.01122283935546875,0.025970458984375,-0.008087158203125,-0.04327392578125,-0.00788116455078125,-0.003894805908203125,-0.0028667449951171875,0.0634765625,-0.021759033203125,0.0010004043579101562,-0.0299224853515625,0.0095672607421875,-0.00283050537109375,-0.055419921875,0.0232696533203125,-0.01824951171875,-0.0181121826171875,-0.00321197509765625,0.0261383056640625,-0.0245208740234375,0.036834716796875,0.0298614501953125,0.039276123046875,-0.0248565673828125,0.036529541015625,0.005146026611328125,0.039306640625,0.0158233642578125,-0.0220794677734375,0.05926513671875,-0.011962890625,0.0482177734375,-0.00428009033203125,-0.0293731689453125,-0.01331329345703125,0.028167724609375,0.0153961181640625,0.055572509765625,0.0105438232421875,-0.01004791259765625,0.014801025390625,-0.0125274658203125,0.0046539306640625,-0.01548004150390625,0.0002856254577636719,0.043487548828125,0.004222869873046875,-0.0263824462890625,0.0213623046875,-0.09088134765625,0.001155853271484375,-0.0226287841796875,0.0283050537109375,-0.0234527587890625,-0.01010894775390625,0.09613037109375,-0.0178375244140625,0.000023245811462402344,-0.031524658203125,-0.03192138671875,0.0012350082397460938,0.0002665519714355469,-0.025482177734375,0.035369873046875,-0.040679931640625,-0.0013179779052734375,-0.01300048828125,0.028472900390625,0.016387939453125,0.0233001708984375,0.03131103515625,0.0204925537109375,-0.016082763671875,-0.018096923828125,-0.022918701171875,0.047943115234375,0.032470703125,0.04327392578125,-0.0101165771484375,0.034759521484375,0.01146697998046875,0.013916015625,0.0087890625,0.006542205810546875,-0.03277587890625,-0.1083984375,-0.052398681640625,0.0098419189453125,0.031402587890625,0.007724761962890625,0.00806427001953125,0.035369873046875,-0.04095458984375,0.0450439453125,0.005615234375,-0.0026035308837890625,0.034210205078125,0.0032958984375,-0.058349609375,0.07073974609375,0.0014066696166992188,-0.03948974609375,0.0325927734375,0.038726806640625,-0.0140838623046875,-0.008941650390625,-0.01203155517578125,-0.020965576171875,-0.034393310546875,-0.0614013671875,-0.0264434814453125,0.03802490234375,-0.026397705078125,0.01151275634765625,-0.047393798828125,-0.0439453125,0.0216217041015625,0.064453125,-0.0165557861328125,-0.0504150390625,0.04974365234375,-0.0228424072265625,0.021820068359375,0.0273895263671875,0.00756072998046875,-0.0615234375,-0.00205230712890625,-0.01120758056640625,-0.0169830322265625,0.0120697021484375,0.015838623046875,0.043182373046875,-0.0308380126953125,0.0242462158203125,0.04522705078125,-0.0007467269897460938,-0.042236328125,0.047027587890625,-0.035919189453125,-0.0064849853515625,0.035400390625,0.038299560546875,-0.0138397216796875,0.041595458984375,0.03082275390625,0.08331298828125,0.0246734619140625,0.02783203125,0.003246307373046875,-0.00047016143798828125,0.06585693359375,0.025299072265625,0.0021343231201171875,0.048248291015625,-0.0230560302734375,-0.00998687744140625,-0.021453857421875,0.0184478759765625,-0.06109619140625,-0.04095458984375,-0.053802490234375,0.0479736328125,0.0379638671875,0.01367950439453125,-0.056488037109375,0.06689453125,-0.0280303955078125,0.05499267578125,0.00257110595703125,-0.0029659271240234375,0.0240478515625,-0.023284912109375,-0.0168304443359375,-0.0021572113037109375,-0.01117706298828125,0.01004791259765625,-0.0204620361328125,-0.034210205078125,-0.047027587890625,-0.0248260498046875,-0.044281005859375,-0.0038738250732421875,0.0579833984375,-0.01151275634765625,-0.02545166015625,-0.01354217529296875,-0.0290985107421875,-0.021484375,-0.01517486572265625,0.03619384765625,-0.00595855712890625,-0.036376953125,-0.006702423095703125,-0.0083160400390625,0.0116424560546875,0.007114410400390625,-0.0218353271484375,0.0233612060546875,-0.018463134765625,0.006801605224609375,-0.06500244140625,0.003143310546875,0.007602691650390625,-0.0048675537109375,0.0295562744140625,0.015350341796875,-0.048797607421875,0.0195465087890625,-0.022796630859375,0.0153961181640625,0.02166748046875,-0.019683837890625,0.01168060302734375,0.0244598388671875,0.003459930419921875,0.0056304931640625,-0.00978851318359375,0.0075225830078125,0.0372314453125,-0.0122833251953125,0.013275146484375,-0.02252197265625,0.030181884765625,0.0153350830078125,0.045684814453125,0.00856781005859375,-0.00843048095703125,-0.0318603515625,-0.058258056640625,0.0110931396484375,-0.01513671875,0.041534423828125,0.03985595703125,-0.007076263427734375,-0.007778167724609375,-0.0117950439453125,0.002841949462890625,0.042236328125,-0.0024394989013671875,-0.001728057861328125,0.0186614990234375,0.038848876953125,0.0482177734375,0.0197601318359375,-0.0215301513671875,0.031524658203125,-0.03076171875,-0.02728271484375,-0.020782470703125,-0.0280303955078125,0.022064208984375,-0.0191497802734375,0.026580810546875,0.01081085205078125,-0.0021457672119140625,0.0030193328857421875,-0.03533935546875,0.02197265625,0.05194091796875,-0.0009756088256835938,-0.0155792236328125,0.03887939453125,0.0679931640625,0.017242431640625,0.0005478858947753906,0.01279449462890625,-0.002063751220703125,-0.03448486328125,0.0030269622802734375,-0.008331298828125,0.04632568359375,0.07427978515625,-0.037353515625,0.06304931640625,-0.01494598388671875,-0.040618896484375,0.020111083984375,-0.00960540771484375,-0.0287628173828125,-0.04022216796875,-0.040771484375,-0.03759765625,0.0550537109375,-0.0222015380859375,-0.0235137939453125,-0.019622802734375,-0.00984954833984375,-0.007366180419921875,0.0088043212890625,-0.01006317138671875,0.034454345703125,0.03515625,0.026641845703125,-0.043243408203125,-0.028778076171875,0.0248565673828125,-0.0247039794921875,-0.00601959228515625,-0.0171051025390625,0.018798828125,-0.00907135009765625,0.00616455078125,-0.0257568359375,0.022552490234375,0.0206298828125,0.00826263427734375,0.028839111328125,0.00330352783203125,0.03173828125,0.05731201171875,-0.03265380859375,0.014312744140625,0.0557861328125,0.046417236328125,-0.01318359375,-0.0174713134765625,0.05072021484375,-0.030181884765625,-0.01470184326171875,-0.005462646484375,-0.00652313232421875,-0.031524658203125,-0.040802001953125,-0.0227508544921875,-0.06768798828125,0.0103912353515625,-0.0190277099609375,0.00936126708984375,0.0164031982421875,-0.0273895263671875,0.099365234375,-0.0200958251953125,0.0017604827880859375,0.01042938232421875,-0.035614013671875,-0.030670166015625,0.01519012451171875,-0.01068115234375,-0.0175018310546875,-0.031829833984375,-0.0266265869140625,-0.06378173828125,-0.017791748046875,0.00421905517578125,-0.021697998046875,-0.007244110107421875,0.003662109375,-0.022186279296875,0.01267242431640625,0.03118896484375,0.0275421142578125,0.01361846923828125,-0.0026454925537109375,0.023468017578125,0.005489349365234375,-0.003265380859375,-0.007450103759765625,0.0214080810546875,0.0303802490234375,0.04193115234375,0.0013790130615234375,-0.0034656524658203125,0.0206298828125,-0.022186279296875,-0.0161895751953125,0.04925537109375,0.0010700225830078125,0.0291900634765625,-0.0665283203125,-0.0129852294921875,-0.035308837890625,-0.0189971923828125,-0.049285888671875,-0.01125335693359375,-0.0217437744140625,-0.01457977294921875,0.0101470947265625,0.033172607421875,0.01415252685546875,-0.0009026527404785156,-0.038787841796875,-0.03411865234375,0.0038089752197265625,-0.027130126953125,0.03131103515625,-0.001018524169921875,0.0355224609375,0.00335693359375,-0.009613037109375,-0.00789642333984375,0.007213592529296875,-0.0003819465637207031,0.0031909942626953125,0.0170440673828125,-0.01457977294921875,0.0287933349609375,-0.0374755859375,0.00850677490234375,-0.0031337738037109375,0.0146942138671875,0.0155792236328125,-0.023193359375,-0.011260986328125,0.0152740478515625,0.005489349365234375,0.0014705657958984375,-0.0185089111328125,0.006908416748046875,-0.0224151611328125,-0.013641357421875,0.00698089599609375,-0.01177978515625,-0.0123748779296875,0.0069122314453125,-0.041015625,0.0105743408203125,-0.018829345703125,0.0081787109375,0.01387786865234375,-0.02252197265625,0.0025424957275390625,-0.01526641845703125,0.003818511962890625,-0.062103271484375,-0.016815185546875,-0.0198211669921875,0.02508544921875,0.022186279296875,0.02032470703125,-0.0277557373046875,-0.017913818359375,0.003643035888671875,0.0119476318359375,-0.0030517578125,0.0041961669921875,0.0615234375,0.004367828369140625,0.01788330078125,-0.00933837890625,-0.007160186767578125,-0.0195465087890625,-0.0026111602783203125,-0.058685302734375,0.0010843276977539062,0.0035991668701171875,0.02490234375,-0.0182952880859375,0.0330810546875,0.0091552734375,-0.0302734375,0.005950927734375,0.0006718635559082031,-0.0172882080078125,0.0211944580078125,-0.031951904296875,-0.0212860107421875,0.03076171875,-0.0218963623046875,0.00934600830078125,0.0157623291015625,0.01157379150390625,-0.035552978515625,-0.024383544921875,-0.00640106201171875,0.0177154541015625,-0.0087127685546875,-0.029388427734375,0.0175018310546875,0.0545654296875,-0.007038116455078125,-0.01300811767578125,0.00830841064453125,-0.0193023681640625,0.04156494140625,0.0002682209014892578,0.01166534423828125,0.056610107421875,0.026611328125,-0.03607177734375,-0.038970947265625,-0.0030231475830078125,0.0689697265625,-0.0194091796875,-0.0190887451171875,0.01061248779296875,0.0141143798828125,0.0225677490234375,0.02862548828125,-0.045318603515625,0.017608642578125,0.011566162109375,0.0170440673828125,0.0115814208984375,0.0265350341796875,0.0017957687377929688,-0.010772705078125,0.007427215576171875,0.0303192138671875,-0.015045166015625,0.0203857421875,0.0165863037109375,-0.005466461181640625,-0.00616455078125,-0.0083160400390625,-0.00795745849609375,0.00344085693359375,0.04840087890625,-0.0013685226440429688,-0.06707763671875,-0.03765869140625,0.006397247314453125,-0.01097869873046875,-0.01068878173828125,-0.01390838623046875,0.0211944580078125,-0.04425048828125,0.0095367431640625,0.033203125,0.01428985595703125,0.0380859375,0.0222015380859375,0.058837890625,-0.0406494140625,0.0227508544921875,0.0036773681640625,-0.0081634521484375,0.01385498046875,-0.030792236328125,0.0039215087890625,0.0287933349609375,0.01461029052734375,0.00604248046875,0.0164031982421875,0.00826263427734375,-0.0036983489990234375,-0.01085662841796875,-0.025115966796875,0.03375244140625,0.00954437255859375,0.0258941650390625,-0.0298004150390625,-0.0166778564453125,0.02471923828125,-0.006744384765625,-0.021148681640625,0.0205078125,0.0197601318359375,-0.004688262939453125,0.00021183490753173828,-0.002468109130859375,-0.035919189453125,-0.006755828857421875,-0.0016984939575195312,0.037261962890625,0.007633209228515625,-0.00807952880859375,-0.032989501953125,-0.0033283233642578125,-0.03424072265625,-0.004253387451171875,0.035888671875,0.0037441253662109375,-0.02276611328125,0.01245880126953125,-0.036041259765625,-0.00701141357421875,0.021087646484375,-0.00020241737365722656,-0.02008056640625,-0.0121002197265625,-0.05242919921875,0.0029315948486328125,-0.017791748046875,-0.0159149169921875,0.03704833984375,0.0131683349609375,0.00749969482421875,0.01018524169921875,0.026092529296875,-0.006191253662109375,0.035980224609375,-0.055938720703125,-0.01123046875,0.01076507568359375,-0.0186004638671875,0.0025730133056640625,0.0002841949462890625,-0.01119232177734375,0.003448486328125,-0.018096923828125,-0.033111572265625,0.0262298583984375,-0.02435302734375,-0.05303955078125,-0.0237579345703125,0.004756927490234375,0.0136566162109375,-0.002166748046875,-0.034759521484375,0.0242919921875,-0.0657958984375,-0.008514404296875,0.0249786376953125,0.0269927978515625,0.01441192626953125,0.049041748046875,0.0078887939453125,-0.032623291015625,0.00962066650390625,-0.01271820068359375,-0.00170135498046875,-0.024139404296875,-0.0215911865234375,0.0006990432739257812,0.010986328125,-0.01373291015625,-0.042144775390625,-0.007572174072265625,0.0235748291015625,0.004024505615234375,-0.002597808837890625,-0.0241546630859375,0.0196380615234375,-0.0040435791015625,0.033599853515625,-0.002010345458984375,0.0096282958984375,-0.017425537109375,0.00323486328125,-0.0322265625,-0.0138397216796875,0.032745361328125,-0.0165863037109375,-0.0010290145874023438,-0.001850128173828125,0.02545166015625,-0.0203704833984375,-0.002231597900390625,-0.0277252197265625,-0.0179595947265625,0.021331787109375,-0.0281829833984375,-0.040985107421875,0.013763427734375,0.0004050731658935547,0.01311492919921875,-0.00902557373046875,-0.0198516845703125,0.004497528076171875,0.0185394287109375,0.0087890625,0.035186767578125,0.001667022705078125,0.023406982421875,0.018463134765625,0.0159149169921875,-0.0285186767578125,0.039886474609375,0.06866455078125,-0.01155853271484375,-0.00550079345703125,-0.0243988037109375,-0.003925323486328125,0.0175323486328125,0.01435089111328125,0.007045745849609375,-0.0230712890625,-0.0296630859375,-0.0205841064453125,0.02020263671875,0.036407470703125,-0.00495147705078125,-0.0002536773681640625,0.0170440673828125,0.01531982421875,0.036956787109375,-0.0074005126953125,-0.019256591796875,0.01076507568359375,-0.0304718017578125,0.0012884140014648438,-0.02056884765625,-0.0114898681640625,-0.03143310546875,-0.0080108642578125,0.0286407470703125,0.01197052001953125,0.01397705078125,-0.0217437744140625,0.005428314208984375,0.02130126953125,0.0131988525390625,-0.001926422119140625,-0.0265960693359375,0.024261474609375,-0.014739990234375,-0.0018053054809570312,0.00867462158203125,0.0032806396484375,0.0013685226440429688,-0.00998687744140625,-0.007602691650390625,-0.010162353515625,0.003253936767578125,-0.0247344970703125,0.01071929931640625,0.0174713134765625,-0.02325439453125,-0.038726806640625,0.0035419464111328125,0.0286865234375,0.0265350341796875,0.01373291015625,0.0041351318359375,-0.0236358642578125,0.050140380859375,0.01045989990234375,-0.0206451416015625,-0.03643798828125,-0.00728607177734375,0.0369873046875,-0.0262451171875,0.03729248046875,-0.0281982421875,0.00911712646484375,0.032745361328125,0.01198577880859375,-0.0277557373046875,0.0013866424560546875,-0.01611328125,-0.02960205078125,-0.03509521484375,0.046142578125,-0.0309906005859375,0.0243988037109375,0.033782958984375,0.01050567626953125,0.013824462890625,-0.007343292236328125,-0.026092529296875,0.022308349609375,0.00676727294921875,0.01488494873046875,0.011260986328125,-0.01309967041015625,-0.06121826171875,0.005901336669921875,0.03643798828125,0.0024318695068359375,0.0181121826171875,0.01522064208984375,-0.0142974853515625,0.0237884521484375,0.01543426513671875,0.02899169921875,-0.043060302734375,0.0018863677978515625,0.0200042724609375,0.032562255859375,0.010162353515625,-0.025634765625,-0.026885986328125,0.005615234375,0.0044708251953125,0.0261383056640625,-0.0208282470703125,-0.026275634765625,-0.031829833984375,-0.004093170166015625,0.027557373046875,0.0306396484375,0.01102447509765625,0.018829345703125,0.0185546875,0.011993408203125,-0.01470947265625,0.0002084970474243164,-0.0268707275390625,0.0306396484375,0.036346435546875,0.017333984375,0.05267333984375,0.018402099609375,-0.0026378631591796875,-0.035980224609375,0.037384033203125,-0.0214691162109375,0.0271453857421875,-0.038299560546875,0.00714874267578125,-0.02752685546875,-0.0192108154296875,0.02166748046875,0.0005922317504882812,-0.0017061233520507812,-0.0166015625,-0.031524658203125,0.00881195068359375,-0.0180511474609375,-0.005893707275390625,0.00458526611328125,0.02679443359375,0.01326751708984375,-0.00017917156219482422,0.0294036865234375,-0.00024259090423583984,0.0163421630859375,-0.0007071495056152344,-0.0333251953125,0.01275634765625,-0.0086669921875,0.032745361328125,-0.01654052734375,0.042449951171875,-0.028472900390625,0.01323699951171875,0.023162841796875,0.0238189697265625,0.050048828125,-0.044189453125,0.01425933837890625,0.032073974609375,-0.01450347900390625,-0.020660400390625,-0.040496826171875,0.040069580078125,0.0323486328125,0.01428985595703125,-0.0263671875,0.00527191162109375,0.027008056640625,0.03424072265625,0.005382537841796875,0.033050537109375,-0.00331878662109375,0.01280975341796875,-0.006244659423828125,0.0182037353515625,0.0025615692138671875,-0.0108184814453125,-0.026885986328125,-0.0271148681640625,0.0174407958984375,0.0003960132598876953,0.0304718017578125,0.028594970703125,-0.0207366943359375,-0.0019588470458984375,-0.0006151199340820312,-0.039337158203125,-0.0218963623046875,0.0245513916015625,-0.0011005401611328125,0.004833221435546875,0.00382232666015625,0.0182342529296875,0.04644775390625,0.0109710693359375,-0.021392822265625,0.0305023193359375,-0.021728515625,0.032318115234375,-0.0050811767578125,-0.0374755859375,0.00855255126953125,0.038543701171875,-0.0011310577392578125,0.0258026123046875,-0.0113677978515625,0.0150909423828125,-0.0159759521484375,0.0186920166015625,0.016357421875,-0.0079803466796875,-0.0024547576904296875,0.0069427490234375,0.01471710205078125,0.00490570068359375,-0.028167724609375,-0.00376129150390625,0.031280517578125,-0.0238037109375,-0.0150909423828125,0.0221405029296875,0.01554107666015625,0.00830078125,0.0135345458984375,0.0078125,0.00382232666015625,0.00144195556640625,-0.01387786865234375,0.0216827392578125,-0.005290985107421875,0.004085540771484375,-0.0095672607421875,-0.00823974609375,-0.00995635986328125,-0.003337860107421875,-0.01666259765625,-8.64267349243164e-6,-0.0019025802612304688,-0.0023822784423828125,0.0217437744140625,0.00616455078125,0.006572723388671875,0.01800537109375,0.0309906005859375,0.037628173828125,0.012451171875,-0.0023593902587890625,0.0185699462890625,-0.0027599334716796875,-0.006008148193359375,0.011077880859375,0.01116943359375,0.03070068359375,-0.011444091796875,0.018463134765625,0.00008535385131835938,-0.0045623779296875,0.0237579345703125,0.00901031494140625,-0.0654296875,0.0360107421875,0.0408935546875,0.0166015625,0.0037841796875,-0.03729248046875,0.01288604736328125,0.0234375,0.01244354248046875,-0.018585205078125,0.002193450927734375,-0.0207672119140625,0.00400543212890625,-0.01149749755859375,-0.00133514404296875,0.01081085205078125,-0.00801849365234375,0.01873779296875,0.032379150390625,0.004428863525390625,0.0279541015625,0.0421142578125,0.0132904052734375,0.0208740234375,-0.00424957275390625,-0.02056884765625,-0.00017201900482177734,-0.0166168212890625,-0.01149749755859375,-0.0267181396484375,0.039459228515625,-0.00916290283203125,0.0267181396484375,0.009521484375,-0.0171356201171875,0.004913330078125,0.0006766319274902344,0.00560760498046875,-0.01422882080078125,-0.00571441650390625,-0.0016326904296875,-0.00681304931640625,0.0201568603515625,0.01030731201171875,0.004467010498046875,0.01513671875,0.0289154052734375,-0.0291595458984375,-0.00823974609375,-0.0260467529296875,0.016876220703125,0.0051422119140625,-0.0038547515869140625,0.008270263671875,-0.0013895034790039062,-0.0034332275390625,-0.003086090087890625,-0.041656494140625,-0.024566650390625,0.01763916015625,-0.0292510986328125,-0.018341064453125,-0.022308349609375,-0.0213623046875,0.0213165283203125,0.0303192138671875,0.007537841796875,0.020294189453125,0.0521240234375,0.0009255409240722656,0.10321044921875,0.0198516845703125,-0.035797119140625,-0.03131103515625,-0.0192413330078125,0.0013875961303710938,-0.01708984375,0.002185821533203125,0.01515960693359375,-0.00377655029296875,-0.0124664306640625,-0.0234832763671875,-0.01042938232421875,0.0192718505859375,0.009979248046875,0.0030918121337890625,0.0082244873046875,-0.0174713134765625,0.00530242919921875,-0.037017822265625,0.0083160400390625,0.01425933837890625,0.02655029296875,0.0241241455078125,-0.00972747802734375,-0.009246826171875,-0.01105499267578125,-0.01053619384765625,0.034454345703125,0.047088623046875,0.03173828125,-0.01751708984375,-0.01158905029296875,0.0228424072265625,-0.0179901123046875,-0.022125244140625,-0.00647735595703125,0.00014102458953857422,-0.00884246826171875,-0.003978729248046875,0.009918212890625,0.032562255859375,0.032623291015625,0.037567138671875,0.005817413330078125,0.0021820068359375,0.054901123046875,-0.005100250244140625,0.01381683349609375,0.002193450927734375,-0.042724609375,0.02532958984375,0.003963470458984375,-0.002483367919921875,-0.01348876953125,-0.0199432373046875,-0.020111083984375,-0.0252532958984375,0.03564453125,-0.030242919921875,-0.0248870849609375,-0.005107879638671875,0.0220947265625,0.01554107666015625,0.00975799560546875,-0.037689208984375,-0.0238494873046875,0.0205841064453125,-0.016387939453125,-0.00980377197265625,-0.01160430908203125,0.015777587890625,-0.0183258056640625,-0.007709503173828125,0.00695037841796875,0.008514404296875,0.01438140869140625,0.01513671875,-0.00801849365234375,-0.007610321044921875,0.007232666015625,0.062103271484375,0.0004119873046875,0.0360107421875,0.024322509765625,-0.0296173095703125,-0.016510009765625,-0.00667572021484375,0.024627685546875,0.005596160888671875,-0.03338623046875,0.0049285888671875,0.03961181640625,0.04901123046875,-0.00830841064453125,0.01422882080078125,-0.01149749755859375,0.0149993896484375,0.0249176025390625,-0.038787841796875,0.003353118896484375,0.027496337890625,-0.0216217041015625,0.026702880859375,0.0192718505859375,0.00507354736328125,-0.0214385986328125,-0.0020008087158203125,-0.015106201171875,-0.0243682861328125,0.01454925537109375,0.012847900390625,0.002429962158203125,-0.0145263671875,-0.022216796875,0.0117340087890625,-0.03875732421875,-0.03448486328125,-0.01947021484375,-0.0304718017578125,-0.00218963623046875,-0.003139495849609375,-0.02886962890625,0.004657745361328125,-0.0110626220703125,-0.007137298583984375,-0.01306915283203125,0.010772705078125,0.022125244140625,0.00970458984375,0.0017118453979492188,-0.02081298828125,0.011322021484375,0.0141448974609375,0.0247650146484375,0.00872039794921875,-0.004913330078125,-0.00431060791015625,0.062225341796875,-0.038787841796875,-0.005062103271484375,0.0170745849609375,-0.020477294921875,0.01165008544921875,0.0207061767578125,-0.0038623809814453125,0.0092315673828125,0.003452301025390625,-0.00559234619140625,-0.051422119140625,-0.044586181640625,0.0174102783203125,-0.037109375,0.00858306884765625,0.037811279296875,0.049957275390625,-0.04827880859375,-0.0159149169921875,0.003925323486328125,0.022186279296875,0.0007071495056152344,0.0309600830078125,-0.0184173583984375,0.00568389892578125,0.03875732421875,0.004119873046875,-0.00551605224609375,0.020233154296875,-0.002105712890625,-0.01337432861328125,0.02667236328125,-0.0112152099609375,-0.0131072998046875,0.01146697998046875,-0.0223541259765625,0.007480621337890625,-0.0210418701171875,-0.0031604766845703125,-0.00782012939453125,-0.01611328125,0.00870513916015625,-0.049468994140625,-0.007434844970703125,-0.0263671875,-0.0123138427734375,0.0255279541015625,-0.004581451416015625,-0.02301025390625,0.0183868408203125,0.00571441650390625,0.004009246826171875,-0.0384521484375,0.0159454345703125,0.0014410018920898438,-0.00658416748046875,0.01103973388671875,-0.0199432373046875,-0.018157958984375,-0.019134521484375,0.01015472412109375,0.0275421142578125,0.01456451416015625,0.0275421142578125,-0.0011148452758789062,-0.0198516845703125,-0.0140228271484375,-0.02783203125,0.0150299072265625,-0.0103607177734375,-0.0032806396484375,-0.0026702880859375,-0.0273284912109375,0.005680084228515625,0.0095062255859375,-0.018310546875,0.0128631591796875,0.0196533203125,0.042236328125,-0.01413726806640625,0.001926422119140625,0.00150299072265625,-0.0036945343017578125,-0.02410888671875,0.00543212890625,-0.0058441162109375,0.00855255126953125,-0.0027599334716796875,-0.0262451171875,-0.007110595703125,0.0081787109375,-0.0203704833984375,0.0091400146484375,0.00738525390625,-0.0234222412109375,-0.0011730194091796875,-0.004650115966796875,-0.0224609375,-0.0008311271667480469,0.0023746490478515625,0.008270263671875,-0.0184783935546875,-0.007030487060546875,-0.016021728515625,0.0003447532653808594,-0.01507568359375,0.03173828125,0.0070648193359375,0.0039520263671875,0.006359100341796875,0.0150299072265625,0.00960540771484375,0.038055419921875,-5.0067901611328125e-6,-0.035980224609375,-0.027374267578125,-0.01055908203125,0.01320648193359375,-0.01415252685546875,-0.016632080078125,0.004150390625,-0.0106964111328125,0.005260467529296875,0.02117919921875,0.0092926025390625,-0.0085296630859375,-0.0237579345703125,0.005733489990234375,0.01474761962890625,-0.027587890625,0.055877685546875,0.0178985595703125,-0.03411865234375,0.0036563873291015625,0.0272674560546875,-0.01155853271484375,-0.024810791015625,0.034942626953125,0.00534820556640625,-0.00833892822265625,-0.00460052490234375,-0.0057220458984375,-0.03521728515625,0.0297698974609375,-0.0232086181640625,0.0182037353515625,-0.0182952880859375,-0.0130462646484375,-0.00868988037109375,0.03125,0.0029087066650390625,0.0176849365234375,0.0112457275390625,-0.007659912109375,0.016021728515625,-0.0040283203125,-0.0041656494140625,-0.016815185546875,-0.0252532958984375,-0.036376953125,-0.0206451416015625,0.00838470458984375,-0.003070831298828125,0.036651611328125,-0.01018524169921875,-0.03076171875,0.01763916015625,0.017547607421875,0.01148223876953125,0.0231475830078125,0.051849365234375,-0.003753662109375,0.0010309219360351562,-0.0037899017333984375,0.00293731689453125,-0.00038433074951171875,0.03765869140625,0.0210723876953125,0.02459716796875,-0.040618896484375,-0.0110626220703125,0.030181884765625,-0.021636962890625,-0.00730133056640625,0.00907135009765625,-0.0172882080078125,-0.05072021484375,-0.022796630859375,0.0003921985626220703,0.0469970703125,0.017181396484375,0.01126861572265625,0.0247955322265625,-0.0005240440368652344,0.00695037841796875,-0.01666259765625,0.0032749176025390625,0.01047515869140625,-0.0157012939453125,-0.0029811859130859375,-0.00925445556640625,0.01435089111328125,0.015899658203125,0.01715087890625,0.0142974853515625,0.01593017578125,0.0016994476318359375,-0.006328582763671875,0.024444580078125,0.0003027915954589844,-0.03521728515625,0.0026683807373046875,0.00592803955078125,0.005672454833984375,-0.0213775634765625,-0.0235748291015625,0.01556396484375,0.0173492431640625,-0.01158905029296875,0.0121917724609375,0.01104736328125,-0.0131378173828125,0.00870513916015625,-0.004001617431640625,0.026336669921875,-0.01812744140625,0.0240020751953125,0.0153350830078125,-0.0009636878967285156,0.0076751708984375,0.01149749755859375,-0.0305328369140625,0.0298004150390625,0.0103912353515625,-0.0157928466796875,0.007251739501953125,0.0258026123046875,-0.0008025169372558594,0.0175323486328125,-0.036712646484375,-0.05047607421875,0.0198516845703125,-0.03265380859375,0.01800537109375,0.00435638427734375,0.004360198974609375,0.0145416259765625,0.0121917724609375,0.002887725830078125,-0.022125244140625],"index":0}],"model":"text-embedding-3-small","usage":{"prompt_tokens":2,"total_tokens":2}}' + recorded_at: Tue, 14 Jul 2026 01:06:03 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/usage/provider_details_openai.yml b/test/fixtures/vcr_cassettes/docs/actions/usage/provider_details_openai.yml index 14b7460b..0825caeb 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/usage/provider_details_openai.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/usage/provider_details_openai.yml @@ -12,7 +12,7 @@ http_interactions: Accept: - application/json User-Agent: - - OpenAI::Client/Ruby 0.35.1 + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -22,11 +22,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.35.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -47,13 +47,35 @@ http_interactions: message: OK headers: Date: - - Wed, 12 Nov 2025 23:30:15 GMT + - Tue, 14 Jul 2026 01:06:05 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1ac9f6a8a3d6cb7-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '666' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '30000' X-Ratelimit-Limit-Tokens: @@ -61,62 +83,43 @@ http_interactions: X-Ratelimit-Remaining-Requests: - '29999' X-Ratelimit-Remaining-Tokens: - - '149999975' + - '149999972' X-Ratelimit-Reset-Requests: - 2ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_10ea69985d0e44fc9be010b3c59c6402 - Openai-Processing-Ms: - - '3421' - X-Envoy-Upstream-Service-Time: - - '3444' - Cf-Cache-Status: - - DYNAMIC + - req_17ff447cba2943a0b2fce43e51d62512 Set-Cookie: - - __cf_bm=xDwW7Oiq7k50et3ajNss6_XNRhLgCYpk9U9AsYo_Ceg-1762990215-1.0.1.1-rWT2W.lXVhAVLCQl.L7bmRg_0HmBMGf7rKmpCYmQFobVcvHg0MSwI0AtbyBYXThpSBLuul4LST70O_PVzUxh.OB244nXJ0caw51KuV9sRu4; - path=/; expires=Thu, 13-Nov-25 00:00:15 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=MN2DBqkNsphmsqY6SmpnGH566otRz5H4iylgetwWOLA-1762990215441-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 99d9d0d3fe205c19-SJC + - __cf_bm=qM9DHMRtdu.h8nCf.3fGSCquF0W5aeXvOlgh3N3j0pI-1783991164.5704741-1.0.1.1-6v6Coim2NjMNTAoYvSwciO7Sq6kE3L0JjmIs4WvVEPVsmX8cR9NcLf2xHsYOZQzI2gxCzZyWoF18PEdmYfdiX2B2PZslCkkKNFeY.sKyZ5kZgQ._J2ZJV3XnK2DD68gR; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:36:05 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_05bf124409484823006915188420b88193b8ecd210eb403639", + "id": "resp_0bf34317212a4b54006a558b7ca298819aacb68230caa42715", "object": "response", - "created_at": 1762990212, + "created_at": 1783991164, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991165, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-mini-2024-07-18", + "moderation": null, "output": [ { - "id": "msg_05bf1244094848230069151886f6e0819396ec614e58093b1b", + "id": "msg_0bf34317212a4b54006a558b7d0300819a831fa0f5e5396580", "type": "message", "status": "completed", "content": [ @@ -131,10 +134,12 @@ http_interactions: } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, - "prompt_cache_retention": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -149,6 +154,24 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [], "top_logprobs": 0, "top_p": 1.0, @@ -156,6 +179,7 @@ http_interactions: "usage": { "input_tokens": 8, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 10, @@ -167,5 +191,5 @@ http_interactions: "user": null, "metadata": {} } - recorded_at: Wed, 12 Nov 2025 23:30:15 GMT -recorded_with: VCR 6.3.1 + recorded_at: Tue, 14 Jul 2026 01:06:05 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/usage/provider_specific_anthropic.yml b/test/fixtures/vcr_cassettes/docs/actions/usage/provider_specific_anthropic.yml index d46172ad..c93b4dd3 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/usage/provider_specific_anthropic.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/usage/provider_specific_anthropic.yml @@ -5,14 +5,14 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"content":"Hello","role":"user"}],"max_tokens":4096}' + string: '{"model":"claude-haiku-4-5","messages":[{"content":"Hello","role":"user"}],"max_tokens":4096}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -22,11 +22,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -38,14 +38,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '103' + - '93' response: status: code: 200 message: OK headers: Date: - - Wed, 12 Nov 2025 23:30:17 GMT + - Tue, 14 Jul 2026 01:06:04 GMT Content-Type: - application/json Transfer-Encoding: @@ -53,50 +53,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '2000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '2000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-12T23:30:17Z' + - '2026-07-14T01:06:04Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '400000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '400000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-12T23:30:17Z' + - '2026-07-14T01:06:04Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-12T23:30:15Z' - Retry-After: - - '45' + - '2026-07-14T01:06:04Z' Anthropic-Ratelimit-Tokens-Limit: - - '2400000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '2400000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-12T23:30:17Z' + - '2026-07-14T01:06:04Z' Request-Id: - - req_011CV4s9kUdtGgpToN2GFVdE + - req_011Cd141zKPDmVhjvV8GxvWc Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1942' + Traceresponse: + - 00-42f1d2d616e7196aff15faa1697aca9a-5baff10a85aef7b4-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 99d9d0ef98dd67f2-SJC + - a1ac9f669c6e2c47-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_014ftmnS91EH3yGspxrY4nK7","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! - How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":8,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":12,"service_tier":"standard"}}' - recorded_at: Wed, 12 Nov 2025 23:30:17 GMT -recorded_with: VCR 6.3.1 + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDZDE0MXpaMkhjUXR6MXdmRkxVUEUiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJIZWxsbyEg8J+RiyBIb3cgY2FuIEkgaGVscCB5b3UgdG9kYXk/In1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjgsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjoxNiwic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoibm90X2F2YWlsYWJsZSJ9fQ== + recorded_at: Tue, 14 Jul 2026 01:06:04 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions/usage/provider_specific_openai.yml b/test/fixtures/vcr_cassettes/docs/actions/usage/provider_specific_openai.yml index 5fd575fe..2d358134 100644 --- a/test/fixtures/vcr_cassettes/docs/actions/usage/provider_specific_openai.yml +++ b/test/fixtures/vcr_cassettes/docs/actions/usage/provider_specific_openai.yml @@ -12,7 +12,7 @@ http_interactions: Accept: - application/json User-Agent: - - OpenAI::Client/Ruby 0.35.1 + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -22,11 +22,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.35.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -47,13 +47,35 @@ http_interactions: message: OK headers: Date: - - Wed, 12 Nov 2025 23:30:19 GMT + - Tue, 14 Jul 2026 01:06:06 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1ac9f6fb9f68dfa-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '841' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '30000' X-Ratelimit-Limit-Tokens: @@ -66,57 +88,38 @@ http_interactions: - 2ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_16c74cedf9ea44d898017d37375b608b - Openai-Processing-Ms: - - '1312' - X-Envoy-Upstream-Service-Time: - - '1315' - Cf-Cache-Status: - - DYNAMIC + - req_500bf0a789cf444d99fe57c689c05cc5 Set-Cookie: - - __cf_bm=En_qHTTt6lDr2tmYjcbnW8Qgkqc92rSSej8cav45MnE-1762990219-1.0.1.1-eIKNDzths7Ju3yeW3KFjD4AqPE3LK_zqqG9QSSJPzz.pxT4eWiI9.UwFOBWC5zQwI__.nhj483Yd2tXzg7CesclB6ajKAI9jnjkRJovCHyc; - path=/; expires=Thu, 13-Nov-25 00:00:19 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=_On__tK7Yo9tVSGuUJ.hPbWpNOXcolg4WxoIh9Zz5as-1762990219557-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 99d9d0fce99aeb2c-SJC + - __cf_bm=KQ32JwDrPLtBVBW3gvGCfmAQdvLt3szpeRJKgeL9pQE-1783991165.3981135-1.0.1.1-kD9Fkc5k9ZenfQ1O2S6zWQW3vgBrVavejqXC7DtFrIXTNBle1LjEe9LBfcfbZN1LxbxBKSN.CH_8C4KnXgA5hwmgd2L8OM_kmkEdxNl8TQarEVOsEsdHz9pkORZdF48A; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:36:06 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_0054c3d74facf1fc006915188a3fa0819b8a586f696c00c805", + "id": "resp_03644713ff76dd50006a558b7d7260819abc267c051cf7bda3", "object": "response", - "created_at": 1762990218, + "created_at": 1783991165, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991166, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-mini-2024-07-18", + "moderation": null, "output": [ { - "id": "msg_0054c3d74facf1fc006915188b38ac819b9a45b57ed8302e7a", + "id": "msg_03644713ff76dd50006a558b7dde14819a83a969732e7e4612", "type": "message", "status": "completed", "content": [ @@ -131,10 +134,12 @@ http_interactions: } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, - "prompt_cache_retention": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -149,6 +154,24 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [], "top_logprobs": 0, "top_p": 1.0, @@ -156,6 +179,7 @@ http_interactions: "usage": { "input_tokens": 8, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 10, @@ -167,5 +191,5 @@ http_interactions: "user": null, "metadata": {} } - recorded_at: Wed, 12 Nov 2025 23:30:19 GMT -recorded_with: VCR 6.3.1 + recorded_at: Tue, 14 Jul 2026 01:06:06 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/actions_examples/tools.yml b/test/fixtures/vcr_cassettes/docs/actions_examples/tools.yml index bd7adc0c..a4f03327 100644 --- a/test/fixtures/vcr_cassettes/docs/actions_examples/tools.yml +++ b/test/fixtures/vcr_cassettes/docs/actions_examples/tools.yml @@ -5,16 +5,16 @@ http_interactions: uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":"What''s the weather in Boston?","model":"gpt-4o","tools":[{"type":"function","name":"get_current_weather","parameters":{"type":"object","properties":{"location":{"type":"string","description":"The - city and state, e.g. San Francisco, CA"},"unit":{"type":"string","enum":["celsius","fahrenheit"]}},"required":["location"]},"description":"Get - the current weather in a given location"}]}' + string: '{"model":"gpt-4o","input":"What''s the weather in Boston?","tools":[{"type":"function","name":"get_current_weather","description":"Get + the current weather in a given location","parameters":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"},"unit":{"type":"string","enum":["celsius","fahrenheit"]}},"required":["location"]}}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -49,13 +49,35 @@ http_interactions: message: OK headers: Date: - - Sun, 26 Oct 2025 19:19:10 GMT + - Tue, 14 Jul 2026 01:15:06 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1acac926d59e71e-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '2474' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -63,73 +85,57 @@ http_interactions: X-Ratelimit-Remaining-Requests: - '9999' X-Ratelimit-Remaining-Tokens: - - '29999710' + - '29999711' X-Ratelimit-Reset-Requests: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_fe8e632d980c451caa0850dd3be57d23 - Openai-Processing-Ms: - - '892' - X-Envoy-Upstream-Service-Time: - - '895' - Cf-Cache-Status: - - DYNAMIC + - req_f568d721d0e94904b7acdfdfb1081d50 Set-Cookie: - - __cf_bm=KHfcglAzvdDceqVZ4SfQ4.TbCb6IAqOAIekQx0jVLHk-1761506350-1.0.1.1-nbxTBn4ATtOI4O5R1tU5N3WGsKMgZ8NwgREA_cgTAZSfS2J7f4uEUr81yCTNWjGv0bEbeiJW6hF8VN8od0Bvw06gniYkdA9p28mW9tnSDRs; - path=/; expires=Sun, 26-Oct-25 19:49:10 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=Bev0nnZ77A.VZP6wKy7IQ5ttaUkfMC.mWIfc0iILuVA-1761506350556-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c4dbcbbfffa4a-SJC + - __cf_bm=1YFAF9bpUbPuNph0enHhChzPrJbAvVaVJnVeMmIPvnA-1783991703.4226878-1.0.1.1-p.x0_nszbKpJ.vmdxaKv_KITG3f2PAbbwu3yg9jVDOw8GJPHYLQ6.VKQum4EMa55KSshczDQu0GYSkfm2GFtPh922FxoG1rENWNYE0pLi5z9p_hlX3hEh3eVxGPBt8vc; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:45:06 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_02a608d25ee3fd5b0068fe742da4108194bd391d783dbac1bb", + "id": "resp_0d74f70f730a1130006a558d9795e481989e16183766f04b4a", "object": "response", - "created_at": 1761506349, + "created_at": 1783991703, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991704, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "fc_02a608d25ee3fd5b0068fe742e47c0819487f372910c0f986a", + "id": "fc_0d74f70f730a1130006a558d97f3d88198a047991c15b4f980", "type": "function_call", "status": "completed", - "arguments": "{\"location\":\"Boston, MA\",\"unit\":\"celsius\"}", - "call_id": "call_2wUC6jJmkQW19Wc8qOoNo7zh", + "arguments": "{\"location\":\"Boston, MA\",\"unit\":\"fahrenheit\"}", + "call_id": "call_JbMvdOxlJu5sNVhdztss78rP", "name": "get_current_weather" } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -144,11 +150,30 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [ { "type": "function", "description": "Get the current weather in a given location", "name": "get_current_weather", + "output_schema": null, "parameters": { "type": "object", "properties": { @@ -179,6 +204,7 @@ http_interactions: "usage": { "input_tokens": 72, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, "output_tokens": 23, @@ -190,24 +216,24 @@ http_interactions: "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:19:10 GMT + recorded_at: Tue, 14 Jul 2026 01:15:06 GMT - request: method: post uri: https://api.openai.com/v1/responses body: encoding: UTF-8 - string: '{"input":[{"role":"user","content":"What''s the weather in Boston?"},{"id":"fc_02a608d25ee3fd5b0068fe742e47c0819487f372910c0f986a","status":"completed","type":"function_call","call_id":"call_2wUC6jJmkQW19Wc8qOoNo7zh","name":"get_current_weather","arguments":"{\"location\":\"Boston, - MA\",\"unit\":\"celsius\"}"},{"type":"function_call_output","call_id":"call_2wUC6jJmkQW19Wc8qOoNo7zh","output":"{\"location\":\"Boston, - MA\",\"unit\":\"celsius\",\"temperature\":\"22\",\"conditions\":\"sunny\"}"}],"model":"gpt-4o","tools":[{"type":"function","name":"get_current_weather","parameters":{"type":"object","properties":{"location":{"type":"string","description":"The - city and state, e.g. San Francisco, CA"},"unit":{"type":"string","enum":["celsius","fahrenheit"]}},"required":["location"]},"description":"Get - the current weather in a given location"}]}' + string: '{"model":"gpt-4o","input":[{"role":"user","content":"What''s the weather + in Boston?"},{"arguments":"{\"location\":\"Boston, MA\",\"unit\":\"fahrenheit\"}","call_id":"call_JbMvdOxlJu5sNVhdztss78rP","name":"get_current_weather","type":"function_call","id":"fc_0d74f70f730a1130006a558d97f3d88198a047991c15b4f980","status":"completed"},{"call_id":"call_JbMvdOxlJu5sNVhdztss78rP","output":"{\"location\":\"Boston, + MA\",\"unit\":\"fahrenheit\",\"temperature\":\"22\",\"conditions\":\"sunny\"}","type":"function_call_output"}],"tools":[{"type":"function","name":"get_current_weather","description":"Get + the current weather in a given location","parameters":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"},"unit":{"type":"string","enum":["celsius","fahrenheit"]}},"required":["location"]}}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - OpenAI::Client/Ruby 0.69.0 Host: - api.openai.com X-Stainless-Arch: @@ -217,11 +243,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 0.34.1 + - 0.69.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Openai-Organization: @@ -235,20 +261,42 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '847' + - '853' response: status: code: 200 message: OK headers: Date: - - Sun, 26 Oct 2025 19:19:12 GMT + - Tue, 14 Jul 2026 01:15:06 GMT Content-Type: - application/json Transfer-Encoding: - chunked Connection: - keep-alive + Cf-Ray: + - a1acaca36da32271-SJC + Cf-Cache-Status: + - DYNAMIC + Server: + - cloudflare + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + X-Content-Type-Options: + - nosniff + Access-Control-Expose-Headers: + - CF-Ray + - CF-Ray + - X-Request-ID + Openai-Organization: + - quiltt-cmriu5 + Openai-Processing-Ms: + - '798' + Openai-Project: + - PROJECT_ID + Openai-Version: + - '2020-10-01' X-Ratelimit-Limit-Requests: - '10000' X-Ratelimit-Limit-Tokens: @@ -261,57 +309,38 @@ http_interactions: - 6ms X-Ratelimit-Reset-Tokens: - 0s - Openai-Version: - - '2020-10-01' - Openai-Organization: - - ORGANIZATION_ID - Openai-Project: - - PROJECT_ID X-Request-Id: - - req_eb3e8ef2f66f4875b23a6f51ca55ea5d - Openai-Processing-Ms: - - '1456' - X-Envoy-Upstream-Service-Time: - - '1462' - Cf-Cache-Status: - - DYNAMIC + - req_6743f46e0575430b84f270c3bfa9c30e Set-Cookie: - - __cf_bm=umZRE4zybVErf_TFmXzM9xOg1qnKhbs7UU65M_aUo5Y-1761506352-1.0.1.1-EVPj.S8ap0SHu0FM36ybx_Blvp7M4Q9.oxouHBkhnDvX8jsTmQKrckNAjWwGw0kheKJ2AYJSq2DiRUHHAOAy9p.bwR1VM63G_lsd19cGWLM; - path=/; expires=Sun, 26-Oct-25 19:49:12 GMT; domain=.api.openai.com; HttpOnly; - Secure; SameSite=None - - _cfuvid=bS6uriDBNmDTA52qw9EBhuY7EcHwjCOV0D2QdeT7U.A-1761506352174-0.0.1.1-604800000; - path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - Strict-Transport-Security: - - max-age=31536000; includeSubDomains; preload - X-Content-Type-Options: - - nosniff - Server: - - cloudflare - Cf-Ray: - - 994c4dc35c9feb20-SJC + - __cf_bm=cwo2FPGCKeizwKm3GXDsxQ5yxvw1Dx7fTP2mbLeSD_U-1783991706.1489658-1.0.1.1-PdKyKZQ4KQCp.BWUgRSMEuEOoZSmDW_H4YaQ6L5MIpkWMP42Sgl0HiPOJhGrao_MqP_WkXUNYm_ESBFe5J1UM5wsFHONXl.XPQS73iy6uOrvMCh3dnOfb6krRArHZtDB; + HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, + 14 Jul 2026 01:45:06 GMT Alt-Svc: - h3=":443"; ma=86400 body: encoding: ASCII-8BIT string: |- { - "id": "resp_02a608d25ee3fd5b0068fe742eb4bc8194ab14b121ae3df19c", + "id": "resp_0d74f70f730a1130006a558d9a323c8198abe5788d014a32a4", "object": "response", - "created_at": 1761506351, + "created_at": 1783991706, "status": "completed", "background": false, "billing": { "payer": "developer" }, + "completed_at": 1783991706, "error": null, + "frequency_penalty": 0.0, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-2024-08-06", + "moderation": null, "output": [ { - "id": "msg_02a608d25ee3fd5b0068fe742fbcec81948b3b3cff3a1b94b9", + "id": "msg_0d74f70f730a1130006a558d9aab2c81988c22ab32e689c8bf", "type": "message", "status": "completed", "content": [ @@ -319,16 +348,19 @@ http_interactions: "type": "output_text", "annotations": [], "logprobs": [], - "text": "The weather in Boston is currently 22\u00b0C and sunny." + "text": "The current weather in Boston, MA is 22\u00b0F and sunny." } ], "role": "assistant" } ], "parallel_tool_calls": true, + "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", "reasoning": { + "context": null, "effort": null, "summary": null }, @@ -343,11 +375,30 @@ http_interactions: "verbosity": "medium" }, "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, "tools": [ { "type": "function", "description": "Get the current weather in a given location", "name": "get_current_weather", + "output_schema": null, "parameters": { "type": "object", "properties": { @@ -378,16 +429,17 @@ http_interactions: "usage": { "input_tokens": 125, "input_tokens_details": { + "cache_write_tokens": 0, "cached_tokens": 0 }, - "output_tokens": 14, + "output_tokens": 16, "output_tokens_details": { "reasoning_tokens": 0 }, - "total_tokens": 139 + "total_tokens": 141 }, "user": null, "metadata": {} } - recorded_at: Sun, 26 Oct 2025 19:19:12 GMT -recorded_with: VCR 6.3.1 + recorded_at: Tue, 14 Jul 2026 01:15:06 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/providers/anthropic/basic_generation.yml b/test/fixtures/vcr_cassettes/docs/providers/anthropic/basic_generation.yml index fa10f2a9..3abd8484 100644 --- a/test/fixtures/vcr_cassettes/docs/providers/anthropic/basic_generation.yml +++ b/test/fixtures/vcr_cassettes/docs/providers/anthropic/basic_generation.yml @@ -5,16 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"What - is the Model Context Protocol?"}],"max_tokens":4096,"system":"You are a helpful - AI assistant."}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"What is the Model + Context Protocol?","role":"user"}],"max_tokens":4096}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -40,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '176' + - '122' response: status: code: 200 message: OK headers: Date: - - Sat, 25 Oct 2025 00:28:40 GMT + - Tue, 14 Jul 2026 01:05:49 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,66 +54,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-25T00:28:34Z' + - '2026-07-14T01:05:42Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '1999000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-25T00:28:42Z' + - '2026-07-14T01:05:49Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-25T00:28:33Z' + - '2026-07-14T01:05:41Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '11999000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-25T00:28:34Z' + - '2026-07-14T01:05:42Z' Request-Id: - - req_011CUSyE8NwBnuqCnQj5dsSy + - req_011Cd13zKwnG7PprVzogDuDX Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '7596' - Via: - - 1.1 google + Traceresponse: + - 00-1db5bb913a2c2df7bb7c5e88a8cc9936-ad631a21f0536be8-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 993d982f8a22eb21-SJC + - a1ac9ed9b9e96ad3-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01VZFSszA17W71Qkdi7co7Jn","type":"message","role":"assistant","content":[{"type":"text","text":"The - Model Context Protocol (MCP) is an open protocol developed by Anthropic that - standardizes how AI applications interact with external data sources and tools.\n\n## - Key Features:\n\n**Purpose**: MCP enables AI assistants (like Claude) to securely - connect to various data sources - local files, databases, APIs, and other - services - in a standardized way.\n\n**Architecture**: It uses a client-server - model where:\n- **MCP Hosts** (like Claude Desktop or IDEs) act as clients\n- - **MCP Servers** provide context and tools to the AI\n- Communication happens - via standard protocols (stdio, HTTP with SSE)\n\n**Main Benefits**:\n1. **Standardization**: - One protocol instead of custom integrations for each data source\n2. **Security**: - Built-in privacy and security controls\n3. **Composability**: Can connect - multiple servers simultaneously\n4. **Flexibility**: Works with local and - remote resources\n\n**Common Use Cases**:\n- Connecting to databases (PostgreSQL, - SQLite)\n- Accessing file systems\n- Integrating with business tools (Slack, - Google Drive)\n- Fetching web content\n- Interacting with development tools - (Git, Docker)\n\nThe protocol is open-source and designed to create an ecosystem - where developers can build MCP servers that work with any MCP-compatible AI - application."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":21,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":297,"service_tier":"standard"}}' - recorded_at: Sat, 25 Oct 2025 00:28:40 GMT -recorded_with: VCR 6.3.1 + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1zb25uZXQtNSIsImlkIjoibXNnXzAxMUNkMTN6Tkt1UDJSQzlYblpGOHdQZCIsInR5cGUiOiJtZXNzYWdlIiwicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiMgTW9kZWwgQ29udGV4dCBQcm90b2NvbCAoTUNQKVxuXG5UaGUgTW9kZWwgQ29udGV4dCBQcm90b2NvbCBpcyBhbiBvcGVuIHN0YW5kYXJkIChpbnRyb2R1Y2VkIGJ5IEFudGhyb3BpYykgZGVzaWduZWQgdG8gc3RhbmRhcmRpemUgaG93IEFJIGFwcGxpY2F0aW9uc+KAlHBhcnRpY3VsYXJseSBsYXJnZSBsYW5ndWFnZSBtb2RlbHPigJRjb25uZWN0IHRvIGV4dGVybmFsIGRhdGEgc291cmNlcywgdG9vbHMsIGFuZCBzeXN0ZW1zLlxuXG4jIyBDb3JlIFB1cnBvc2VcblxuTUNQIGFkZHJlc3NlcyBhIGNvbW1vbiBpbnRlZ3JhdGlvbiBwcm9ibGVtOiBBSSBhcHBsaWNhdGlvbnMgb2Z0ZW4gbmVlZCB0byBpbnRlcmFjdCB3aXRoIGRhdGFiYXNlcywgZmlsZSBzeXN0ZW1zLCBBUElzLCBhbmQgb3RoZXIgdG9vbHMsIGJ1dCBlYWNoIGludGVncmF0aW9uIHR5cGljYWxseSByZXF1aXJlcyBjdXN0b20gY29kZS4gTUNQIHByb3ZpZGVzIGEgc3RhbmRhcmRpemVkIHByb3RvY29sIHNvIHRoZXNlIGNvbm5lY3Rpb25zIGNhbiBiZSBidWlsdCBvbmNlIGFuZCByZXVzZWQgYWNyb3NzIGRpZmZlcmVudCBBSSBhcHBsaWNhdGlvbnMuXG5cbiMjIEtleSBDb25jZXB0c1xuXG4qKkFyY2hpdGVjdHVyZToqKlxuLSAqKkhvc3RzKiog4oCTIGFwcGxpY2F0aW9ucyB0aGF0IHdhbnQgdG8gYWNjZXNzIGRhdGEvdG9vbHMgdGhyb3VnaCBNQ1AgKGUuZy4sIGFuIEFJIGFzc2lzdGFudCBhcHApXG4tICoqQ2xpZW50cyoqIOKAkyBjb21wb25lbnRzIHRoYXQgbWFpbnRhaW4gY29ubmVjdGlvbnMgdG8gTUNQIHNlcnZlcnNcbi0gKipTZXJ2ZXJzKiog4oCTIGxpZ2h0d2VpZ2h0IHByb2dyYW1zIHRoYXQgZXhwb3NlIHNwZWNpZmljIGNhcGFiaWxpdGllcyAoZGF0YSwgdG9vbHMsIHByb21wdHMpIHZpYSB0aGUgc3RhbmRhcmRpemVkIHByb3RvY29sXG5cbioqQ29yZSBjYXBhYmlsaXRpZXMgc2VydmVycyBjYW4gb2ZmZXI6Kipcbi0gKipSZXNvdXJjZXMqKiDigJMgZGF0YSBvciBjb250ZW50IHRoYXQgY2FuIGJlIHJlYWQgKGZpbGVzLCBkYXRhYmFzZSByZWNvcmRzLCBBUEkgcmVzcG9uc2VzKVxuLSAqKlRvb2xzKiog4oCTIGZ1bmN0aW9ucyB0aGUgQUkgbW9kZWwgY2FuIGludm9rZSB0byB0YWtlIGFjdGlvbnMgKGxpa2UgcnVubmluZyBhIHF1ZXJ5IG9yIGNhbGxpbmcgYW4gQVBJKVxuLSAqKlByb21wdHMqKiDigJMgcmV1c2FibGUgcHJvbXB0IHRlbXBsYXRlcyBmb3IgY29tbW9uIHRhc2tzXG5cbiMjIFdoeSBJdCBNYXR0ZXJzXG5cbkJlZm9yZSBNQ1AsIGNvbm5lY3RpbmcgYW4gQUkgYXBwbGljYXRpb24gdG8sIHNheSwgR2l0SHViLCBTbGFjaywgYW5kIGEgbG9jYWwgZmlsZXN5c3RlbSBtZWFudCB3cml0aW5nIGN1c3RvbSBpbnRlZ3JhdGlvbiBjb2RlIGZvciBlYWNoIGNvbWJpbmF0aW9uIG9mIEFJIGFwcCBhbmQgZGF0YSBzb3VyY2UuIE1DUCBhaW1zIHRvIG1ha2UgdGhlc2UgaW50ZWdyYXRpb25zIG1vcmUgbGlrZSBhIFwiVVNCLUMgZm9yIEFJIGFwcGxpY2F0aW9uc1wi4oCUYSBjb21tb24gaW50ZXJmYWNlIHRoYXQgYW55IGNvbXBsaWFudCBjbGllbnQgYW5kIHNlcnZlciBjYW4gdXNlIHRvZ2V0aGVyLlxuXG4jIyBQcmFjdGljYWwgVXNlXG5cbkRldmVsb3BlcnMgY2FuIGJ1aWxkIE1DUCBzZXJ2ZXJzIGZvciB0aGVpciBvd24gc3lzdGVtcyAoZS5nLiwgYSBjb21wYW55J3MgaW50ZXJuYWwgZGF0YWJhc2UpIGFuZCBoYXZlIGFueSBNQ1AtY29tcGF0aWJsZSBBSSBhcHBsaWNhdGlvbiBjb25uZWN0IHRvIGl0IHdpdGhvdXQgY3VzdG9tIGludGVncmF0aW9uIHdvcmsuIFRoZXJlJ3MgYSBncm93aW5nIGVjb3N5c3RlbSBvZiBwcmUtYnVpbHQgTUNQIHNlcnZlcnMgZm9yIGNvbW1vbiB0b29scyBhbmQgc2VydmljZXMuXG5cbldvdWxkIHlvdSBsaWtlIG1vcmUgZGV0YWlsIG9uIGFueSBwYXJ0aWN1bGFyIGFzcGVjdCwgbGlrZSBob3cgdG8gYnVpbGQgYW4gTUNQIHNlcnZlciBvciBjbGllbnQ/In1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjE4LCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6NTk0LCJvdXRwdXRfdG9rZW5zX2RldGFpbHMiOnsidGhpbmtpbmdfdG9rZW5zIjowfSwic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoiZ2xvYmFsIn19 + recorded_at: Tue, 14 Jul 2026 01:05:49 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/docs/providers/anthropic/response_format/json_object.yml b/test/fixtures/vcr_cassettes/docs/providers/anthropic/response_format/json_object.yml index 389561af..ab7007a6 100644 --- a/test/fixtures/vcr_cassettes/docs/providers/anthropic/response_format/json_object.yml +++ b/test/fixtures/vcr_cassettes/docs/providers/anthropic/response_format/json_object.yml @@ -5,16 +5,16 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":"Return - a JSON object with three primary colors in an array named ''colors''."},{"role":"assistant","content":"Here - is the JSON requested:\n{"}],"max_tokens":4096}' + string: '{"model":"claude-haiku-4-5","messages":[{"content":"Return a JSON object + with three primary colors in an array named ''colors''.","role":"user"},{"content":"Here + is the JSON requested:\n{","role":"assistant"}],"max_tokens":4096}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -47,7 +47,7 @@ http_interactions: message: OK headers: Date: - - Sat, 25 Oct 2025 00:28:41 GMT + - Tue, 14 Jul 2026 01:06:06 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,50 +55,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '49000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-25T00:28:42Z' + - '2026-07-14T01:06:06Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-25T00:28:41Z' + - '2026-07-14T01:06:06Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '48' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-25T00:28:42Z' + - '2026-07-14T01:06:06Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '59000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-25T00:28:41Z' + - '2026-07-14T01:06:06Z' Request-Id: - - req_011CUSyEhVziFvoaLcELuxYr + - req_011Cd142AuNCKx6azFXUZZvi Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '626' - Via: - - 1.1 google + Traceresponse: + - 00-8a9db8344bdff82072cb5b97222f04b0-122c5e5d47e0179f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 993d98602d2f22a2-SJC + - a1ac9f75ff296ce3-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01RFAy64qt5sPNXKN9T4bSPu","type":"message","role":"assistant","content":[{"type":"text","text":"\n \"colors\": - [\"red\", \"blue\", \"yellow\"]\n}"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":31,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard"}}' - recorded_at: Sat, 25 Oct 2025 00:28:41 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd142BHSA9eEyvw9S8VvW","type":"message","role":"assistant","content":[{"type":"text","text":"\n \"colors\": + [\"red\", \"blue\", \"yellow\"]\n}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":31,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:06:06 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request.yml index 99e05312..d03ab948 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request.yml @@ -5,16 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Hello, - Claude!"}],"max_tokens":1024,"system":[{"type":"text","text":"You are a helpful - assistant."},{"type":"text","text":"Always be polite and professional."}]}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":[{"type":"text","text":"You + are a helpful assistant."},{"type":"text","text":"Always be polite and professional."}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -40,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '237' + - '226' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 02:00:23 GMT + - Tue, 14 Jul 2026 01:05:57 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,50 +54,53 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T02:00:19Z' + - '2026-07-14T01:05:56Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T02:00:23Z' + - '2026-07-14T01:05:57Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T02:00:19Z' + - '2026-07-14T01:05:55Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T02:00:19Z' + - '2026-07-14T01:05:56Z' Request-Id: - - req_011CUDqZXiRtx32iQeDGqUZ6 + - req_011Cd141LYmpb4DuCbUkgWCD Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '5402' - Via: - - 1.1 google + Traceresponse: + - 00-7027c4573f5b6c2dcf8f0b22cba0a873-2386f45e7ad96ff5-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 990470f7495f7ae0-SJC + - a1ac9f2f6d033708-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01K1VKi8GfdXrL7zhzR7QgJS","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! - It''s nice to meet you. How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":24,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 02:00:23 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd141M52WfDa1dmo3mb4p","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! + How''s it going? Is there something I can help you with today, whether it''s + a question, a task, or just some information you''re looking for?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":34,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":42,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:05:57 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request_with_override.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request_with_override.yml index f8fb6d3c..160be539 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request_with_override.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/array_instructions_agent_basic_request_with_override.yml @@ -5,16 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Hello, - Claude!"}],"max_tokens":1024,"system":[{"type":"text","text":"You are an overridden - assistant."},{"type":"text","text":"Please respond concisely."}]}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":[{"type":"text","text":"You + are an overridden assistant."},{"type":"text","text":"Please respond concisely."}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -40,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '232' + - '221' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 02:01:14 GMT + - Tue, 14 Jul 2026 01:05:52 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,50 +54,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T02:01:13Z' + - '2026-07-14T01:05:51Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T02:01:14Z' + - '2026-07-14T01:05:52Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T02:01:13Z' + - '2026-07-14T01:05:51Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T02:01:13Z' + - '2026-07-14T01:05:51Z' Request-Id: - - req_011CUDqdWWrZC8jy3pxHGwhd + - req_011Cd1412UpuByo35k78cQc6 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2389' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-09c5f9b413d66506153ad0c28856824c-08e98ed7921376c2-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 99047248ad7d7ac1-SJC + - a1ac9f14f91e8ea2-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_016MxjzoEDeksF4ogQQ2taPH","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! - How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":25,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":12,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 02:01:14 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd1412zqNCWh1PZWYHrG8","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"","signature":"EsUDCokBCA8YAipA+Ju+EtDlDgFmuRVkjZSw27wTBqtmp9JdjBFJwZpqRVPCOGaTg9IlOYqQEBQVa+uI7jf8BdGNBpmxZ0DFaFJKCjIPY2xhdWRlLXNvbm5ldC01OABCCHRoaW5raW5nWiQyNTU3YzJmMi1iY2ZhLTQwNTQtOWZhOC1hZTEzYjNiNDdkNmISDPOaFlVNfRyZR8gSDBoMFRk+KLCP11zjnTafIjC7L0gcoRFoKl+9VwZYc/ORrSzzf1uKpCF7+ZKTw2xuK4RktrTmQt0mxxmYWjXSFZ8q6AEJvfNtAp/smjw80df0FTizS3+J7SqOfQ1Rj2bZQlTPkUi4pgHFPxINKxQ+0Q0lnBHJsmiVg1FohT88uRYFteKd250xEPZcVJb/QuFR11VrofQDNTwWCAY+g9itLrv9OHyZmSClE06xFo7sjGWh1fcMHs3BW+DTLI2yLZpY66jAb0wJ4POwYXFhilhhRux09kc7ceyqiKiggCsKn8VfkELC9E6At3tUI9XWfecUcP3K4VUBxBQur/5sSkfY6bJsHHibsl+Yil84P6m5oeEc3+ebR/TYLDWYyI6Hd2oatJ2mFOYqtzNeW2nPGAE="},{"type":"text","text":"Hello! + How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":33,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":79,"output_tokens_details":{"thinking_tokens":65},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:05:52 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request.yml index e6466e36..f2073eff 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request.yml @@ -5,16 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Hello, - Claude!"}],"max_tokens":1024,"system":"Default auto-loaded instructions for - testing."}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"Default + auto-loaded instructions for testing."}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -40,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '169' + - '158' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 02:01:49 GMT + - Tue, 14 Jul 2026 01:06:03 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,50 +54,53 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T02:01:49Z' + - '2026-07-14T01:06:02Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T02:01:49Z' + - '2026-07-14T01:06:03Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T02:01:48Z' + - '2026-07-14T01:06:02Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T02:01:49Z' + - '2026-07-14T01:06:02Z' Request-Id: - - req_011CUDqgA67aWvtVMPoJiAPv + - req_011Cd141rExefEYKvDwKynmm Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1761' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-53c4d99fcb65603637503170596dd9ba-365bbb9c0c10df87-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 990473293d01ed3d-SJC + - a1ac9f5acd53ed38-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01Tj5vc5GcVXHfZ5NrCP2niM","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! - It''s nice to meet you. How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 02:01:49 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd141rfG4mS7TirTpuBMe","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! + Nice to meet you. How''s it going? Is there something I can help you with + today, or just saying hi?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":30,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":37,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:06:03 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request_with_override.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request_with_override.yml index 83836644..74b9211e 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request_with_override.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/auto_template_agent_basic_request_with_override.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Hello, - Claude!"}],"max_tokens":1024,"system":"You are an overridden assistant."}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"You + are an overridden assistant."}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -39,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '156' + - '145' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 02:01:51 GMT + - Tue, 14 Jul 2026 01:06:01 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,50 +54,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T02:01:51Z' + - '2026-07-14T01:06:01Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T02:01:51Z' + - '2026-07-14T01:06:01Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T02:01:50Z' + - '2026-07-14T01:06:00Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T02:01:51Z' + - '2026-07-14T01:06:01Z' Request-Id: - - req_011CUDqgJC2dp8Bu2LqhKdMD + - req_011Cd141kK1kdvtgF5uzhG3X Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1735' - Via: - - 1.1 google + Traceresponse: + - 00-e1a54731d04da79f15a4f3d949252251-78723167a3586f29-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 990473350b693023-SJC + - a1ac9f521fa978eb-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01DNmBrT39ur5MzcpqZrDiff","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! - How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":12,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 02:01:51 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd141maffLRMPdfTHgM7z","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! + How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":25,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":13,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:06:01 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request.yml index 080e7998..7905d8e6 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request.yml @@ -5,16 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Hello, - Claude!"}],"max_tokens":1024,"system":"You are a configured assistant with - default instructions."}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"You + are a configured assistant with default instructions."}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -40,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '181' + - '170' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 02:01:05 GMT + - Tue, 14 Jul 2026 01:05:54 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,50 +54,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T02:01:02Z' + - '2026-07-14T01:05:54Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T02:01:05Z' + - '2026-07-14T01:05:54Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T02:01:03Z' + - '2026-07-14T01:05:53Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T02:01:02Z' + - '2026-07-14T01:05:54Z' Request-Id: - - req_011CUDqcpYY8tci66vJgr4Kd + - req_011Cd141F5rjQVd2RQn22SWs Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2696' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-dc7f0016e8ae77421d228100d88b3b7b-ac434071229f8034-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 9904720e2c1dcfa4-SJC + - a1ac9f27496cf497-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_018zjrHhoXiShSLAHgzPEsk8","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! - It''s nice to meet you. How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":20,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 02:01:05 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd141FXQMd6Le22LPo1Uc","type":"message","role":"assistant","content":[{"type":"text","text":"Hi + there! How''s it going? What can I help you with today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":29,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":20,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:05:54 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request_with_override.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request_with_override.yml index ac17033c..93c6e084 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request_with_override.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/configured_instructions_agent_basic_request_with_override.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Hello, - Claude!"}],"max_tokens":1024,"system":"You are an overridden assistant."}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"You + are an overridden assistant."}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -39,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '156' + - '145' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 02:01:07 GMT + - Tue, 14 Jul 2026 01:05:53 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,50 +54,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T02:01:06Z' + - '2026-07-14T01:05:53Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T02:01:07Z' + - '2026-07-14T01:05:53Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T02:01:06Z' + - '2026-07-14T01:05:52Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T02:01:06Z' + - '2026-07-14T01:05:53Z' Request-Id: - - req_011CUDqd2wAmrhAxvL59dNoj + - req_011Cd1419tpWf12C3m8Z9yga Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1777' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-3a4e63fa0e17de23e23fbf3bc0db3eeb-c1977a7595deb9e9-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 9904722048ed1613-SJC + - a1ac9f1fcf24ef9b-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_016U1ZG2Pt9fFCMULADzkoK2","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! - It''s nice to meet you. How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 02:01:07 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd141APqK5ErdYZZMPSbc","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! + How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":25,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":13,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:05:53 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request.yml index f83968eb..e80bc07c 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request.yml @@ -5,15 +5,14 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Hello, - Claude!"}],"max_tokens":1024}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +22,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -39,14 +38,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '112' + - '101' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 02:01:09 GMT + - Tue, 14 Jul 2026 01:06:00 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,50 +53,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T02:01:08Z' + - '2026-07-14T01:06:00Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T02:01:09Z' + - '2026-07-14T01:06:00Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T02:01:08Z' + - '2026-07-14T01:05:59Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T02:01:08Z' + - '2026-07-14T01:06:00Z' Request-Id: - - req_011CUDqdB9nC61udzVxsSjpi + - req_011Cd141ZFzpxB9jjmRDnXZc Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1779' - Via: - - 1.1 google + Traceresponse: + - 00-51e3b735ab11e78c9d48fc029e87dce8-c77aafb38296710f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9904722c5ac5d8a7-SJC + - a1ac9f41ce3dce4c-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01QFiqtkQbLp3Pevef4RXn3w","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! - It''s nice to meet you. How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":11,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 02:01:09 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd141fX3AcuPNwjV3NNEJ","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! + How''s it going? What can I help you with today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:06:00 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request_with_override.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request_with_override.yml index 1f99637a..acc28282 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request_with_override.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/instructions_test/no_instructions_agent_basic_request_with_override.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Hello, - Claude!"}],"max_tokens":1024,"system":"You are an overridden assistant."}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024,"system":"You + are an overridden assistant."}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -39,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '156' + - '145' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 02:01:11 GMT + - Tue, 14 Jul 2026 01:05:50 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,50 +54,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T02:01:11Z' + - '2026-07-14T01:05:50Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T02:01:11Z' + - '2026-07-14T01:05:50Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T02:01:10Z' + - '2026-07-14T01:05:49Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T02:01:11Z' + - '2026-07-14T01:05:50Z' Request-Id: - - req_011CUDqdMJUEqy38pjfRt28Y + - req_011Cd13zwGoG8R588vdo6H51 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1883' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-620872037999fb0320a1cc112ce79ab5-f58f0a230a0d10d9-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 9904723859a2f497-SJC + - a1ac9f0d5b9dcf55-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01PrUH9fuDvXp1AXWxZtrp97","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! - How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":12,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 02:01:11 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd13zwm4gWN7kpmTAvKrq","type":"message","role":"assistant","content":[{"type":"text","text":"Hi + there! What can I help you with today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":25,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":15,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:05:50 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_mixed_auth.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_mixed_auth.yml index 1e5be657..bc8918bd 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_mixed_auth.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_mixed_auth.yml @@ -13,7 +13,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -48,7 +48,7 @@ http_interactions: message: OK headers: Date: - - Wed, 19 Nov 2025 20:59:19 GMT + - Tue, 14 Jul 2026 01:06:26 GMT Content-Type: - application/json Transfer-Encoding: @@ -56,72 +56,100 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '3996000' + - '9994000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T20:59:15Z' + - '2026-07-14T01:06:18Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '1999000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T20:59:19Z' + - '2026-07-14T01:06:26Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T20:59:14Z' - Retry-After: - - '48' + - '2026-07-14T01:06:18Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4796000' + - '11993000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T20:59:15Z' + - '2026-07-14T01:06:18Z' Request-Id: - - req_011CVHvJ4R1THMo6Nf89VYaH + - req_011Cd142qbHyvNSMW5GhFnGN Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '7324' + Traceresponse: + - 00-64884ae232293112dbe096fcb6802167-5f481570ddf4f308-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9a12a1499e84cf2b-SJC + - a1ac9faeabfb89cc-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01J2Kf9xsv5R5PhDfCctoYJb","type":"message","role":"assistant","content":[{"type":"text","text":"I - have access to a comprehensive set of tools for interacting with GitHub and - Cloudflare. Here''s what I can do:\n\n## GitHub Repository Management\n- **Create/Fork - repositories** - Create new repos or fork existing ones\n- **Branch management** - - Create branches, list branches\n- **File operations** - Create, update, - delete, and view files in repositories\n- **Commit operations** - View commits, - list commits, push multiple files\n\n## GitHub Issues\n- **Create and manage - issues** - Create new issues, update existing ones, close issues\n- **Issue - comments** - Add comments to issues\n- **Issue search** - Search for issues - across repositories\n- **Labels** - Get label information\n- **Sub-issues** - - Add, remove, and manage sub-issues\n\n## GitHub Pull Requests\n- **Create - and manage PRs** - Create PRs, update PR details, merge PRs\n- **PR reviews** - - Create reviews, submit reviews, request Copilot reviews\n- **PR comments** - - Add comments and review comments to PRs\n- **PR diff/status** - View PR - diffs, file changes, and build status\n- **PR search** - Search for pull requests\n- - **PR branch updates** - Update PR branches with latest changes\n\n## GitHub - Search & Discovery\n- **Code search** - Search across all GitHub repositories - for specific code patterns\n- **User search** - Find GitHub users\n- **Repository - search** - Discover repositories by name, topic, or metadata\n\n## GitHub - User & Team Info\n- **Get authenticated user info** - View current user profile\n- - **Team information** - Get teams you''re a member of and team members\n- **Tags - and releases** - View, list, and get specific releases and git tags\n\n## - Cloudflare\n- **MCP Demo Day info** - Get information about Cloudflare''s - MCP Demo Day\n\nIs there something specific you''d like help with?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":9642,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":420,"service_tier":"standard"}}' - recorded_at: Wed, 19 Nov 2025 20:59:19 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd1434G3GoCMsNXd8m4h4","type":"message","role":"assistant","content":[{"type":"text","text":"I + have a comprehensive set of tools available for working with GitHub and Cloudflare. + Here''s what I can do:\n\n## **GitHub Tools**\n\n### Repository Management\n- + **Create repositories** - Create new GitHub repositories (public or private)\n- + **Fork repositories** - Fork existing repositories to your account or organization\n- + **List branches** - View branches in a repository\n- **List tags** - View + git tags in a repository\n- **List releases** - View releases in a repository\n\n### + File Operations\n- **Create/update files** - Create or update individual files + in a repository\n- **Delete files** - Delete files from a repository\n- **Push + files** - Push multiple files in a single commit\n- **Get file contents** + - Retrieve file or directory contents\n\n### Issues Management\n- **Create/update + issues** - Create new issues or update existing ones\n- **Read issues** - + Get issue details, comments, labels, sub-issues, and parent issues\n- **List + issues** - List and filter issues in a repository\n- **Search issues** - Search + for issues across repositories\n- **Add comments to issues** - Add comments + or reactions to issues\n- **Sub-issue management** - Add, remove, or reprioritize + sub-issues\n\n### Pull Requests\n- **Create pull requests** - Create new PRs + manually\n- **Get PR details** - View PR information, diffs, files, commits, + reviews, comments, and check runs\n- **List pull requests** - List and filter + PRs in a repository\n- **Search pull requests** - Search for pull requests + across repositories\n- **Update pull requests** - Modify PR title, description, + base branch, state, reviewers\n- **Update PR branch** - Sync PR branch with + latest base branch changes\n- **Merge pull requests** - Merge PRs with different + merge strategies\n- **Request Copilot review** - Get automated code review + on PRs\n\n### Pull Request Reviews\n- **Create/submit reviews** - Create reviews + or submit pending reviews\n- **Delete pending reviews** - Remove pending reviews\n- + **Add review comments** - Add comments to specific lines in PRs\n- **Reply + to PR comments** - Reply to or react to pull request comments\n- **Resolve/unresolve + threads** - Manage review thread resolution\n\n### Copilot Coding Agent\n- + **Assign Copilot to issues** - Delegate tasks to Copilot agent\n- **Create + PR with Copilot** - Have Copilot create a PR to solve a problem\n- **Check + Copilot job status** - Track Copilot agent progress\n\n### Commits & History\n- + **Get commit details** - View commit information and changes\n- **List commits** + - View commit history with filtering options\n- **Search commits** - Search + for commits across repositories\n\n### Team & User Management\n- **Get authenticated + user** - Retrieve your GitHub profile information\n- **Get team members** + - List members of a GitHub team\n- **Get user teams** - List teams you''re + a member of\n- **List collaborators** - View repository collaborators\n- **Search + users** - Find GitHub users\n\n### Code Search\n- **Search code** - Fast code + search across repositories\n- **Search repositories** - Find repositories + by name, description, topics, etc.\n\n### Labels & Metadata\n- **Get labels** + - Retrieve specific label information\n- **List issue fields** - Get custom + issue field definitions\n- **List issue types** - Get supported issue types\n\n### + Branches & Tags\n- **Create branches** - Create new branches in a repository\n- + **Get tag details** - Get information about specific git tags\n\n### Security\n- + **Run secret scanning** - Scan files for exposed secrets like API keys and + tokens\n\n## **Cloudflare Tools**\n- **Get MCP Demo Day info** - Information + about Cloudflare''s MCP Demo Day\n\nAll of these tools work together to help + you manage GitHub repositories, automate workflows, collaborate with teams, + and maintain code quality. Would you like help with any specific task?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14184,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":888,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:06:26 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_multiple_servers.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_multiple_servers.yml index a65179c3..05757724 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_multiple_servers.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_multiple_servers.yml @@ -13,7 +13,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -48,7 +48,7 @@ http_interactions: message: OK headers: Date: - - Wed, 19 Nov 2025 20:59:30 GMT + - Tue, 14 Jul 2026 01:06:46 GMT Content-Type: - application/json Transfer-Encoding: @@ -56,76 +56,97 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '3996000' + - '9994000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T20:59:25Z' + - '2026-07-14T01:06:38Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '1999000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T20:59:30Z' + - '2026-07-14T01:06:46Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T20:59:24Z' - Retry-After: - - '38' + - '2026-07-14T01:06:38Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4796000' + - '11993000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T20:59:25Z' + - '2026-07-14T01:06:38Z' Request-Id: - - req_011CVHvJqg53XwN85wMmrdJK + - req_011Cd144Ki188Bya3QWn6G7c Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '7193' + Traceresponse: + - 00-4decbfe1e85d6d1ad49922c9e169cea7-57ffac920f41b5d2-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9a12a18bed4aeb34-SJC + - a1aca02c7ea2ce48-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01HTby5BZ3WW8X6gZ2nsacx8","type":"message","role":"assistant","content":[{"type":"text","text":"I - have access to a comprehensive set of tools for working with GitHub and getting - information about Cloudflare events. Here''s what I can do:\n\n## GitHub Repository - Management\n- **Create & Fork Repositories** - Create new repos or fork existing - ones\n- **Manage Branches** - Create and list branches\n- **File Operations** - - Create, update, delete, and view files in repositories\n- **Commit Operations** - - View commit details and push multiple files\n\n## GitHub Issues\n- **Create - & Update Issues** - Create new issues or update existing ones\n- **Read Issues** - - Get issue details, comments, labels, and sub-issues\n- **Search Issues** - - Find issues across repositories\n- **Add Comments** - Comment on issues\n\n## - GitHub Pull Requests\n- **Create & Manage PRs** - Create pull requests, update - titles/descriptions, change state\n- **PR Reviews** - Create, submit, and - delete reviews; add review comments\n- **PR Details** - Get PR info, diffs, - status, file changes, comments, and reviews\n- **Search PRs** - Find pull - requests across repositories\n- **Merge PRs** - Merge pull requests with different - merge methods\n- **Update Branches** - Sync PR branches with base branch\n\n## - GitHub Releases & Tags\n- **List & Get Releases** - View release information - and get specific releases by tag\n- **List & Get Tags** - View git tags in - repositories\n\n## GitHub Search & Discovery\n- **Search Code** - Fast code - search across all repositories\n- **Search Users** - Find GitHub users by - username or profile info\n- **Search Repositories** - Discover repositories - by name, description, topics, etc.\n\n## GitHub User & Team Information\n- - **Get User Info** - Retrieve authenticated user details\n- **Get Teams** - - View teams and team members\n\n## Other Tools\n- **Cloudflare MCP Demo Day - Info** - Get information about Cloudflare''s MCP demo day event\n\nAll of - these tools work with the GitHub API and allow me to help you manage repositories, - collaborate on code, search for information, and handle various development - workflows."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":9642,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":465,"service_tier":"standard"}}' - recorded_at: Wed, 19 Nov 2025 20:59:30 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd144Xha83Hjm8p66mvRo","type":"message","role":"assistant","content":[{"type":"text","text":"I + have access to a comprehensive set of tools for GitHub and Cloudflare operations. + Here''s an overview of what I can do:\n\n## GitHub Tools\n\n### Repository + Management\n- **Create repositories** - Create new GitHub repositories\n- + **Fork repositories** - Fork existing repositories\n- **List branches** - + View branches in a repository\n- **List tags** - View git tags in a repository\n- + **List releases** - View releases in a repository\n\n### File Operations\n- + **Get file contents** - Read files or directories from repositories\n- **Create + or update files** - Create new files or update existing ones\n- **Delete files** + - Remove files from repositories\n- **Push files** - Push multiple files in + a single commit\n\n### Commits & History\n- **List commits** - View commit + history with filtering options\n- **Get commit details** - Get detailed information + about specific commits\n- **Search commits** - Search across commits with + advanced syntax\n\n### Issues & Issue Fields\n- **Create/update issues** - + Create new issues or update existing ones\n- **Read issues** - Get issue details, + comments, sub-issues, parent issues, and labels\n- **List issues** - List + issues with filtering and sorting\n- **Search issues** - Search issues across + repositories\n- **Add issue comments** - Add comments and reactions to issues\n- + **List issue fields** - Get custom field definitions\n- **List issue types** + - Get supported issue types\n\n### Pull Requests\n- **Create pull requests** + - Create new PRs\n- **Update pull requests** - Modify PR titles, descriptions, + base branches, etc.\n- **Update PR branch** - Sync PR with latest base branch + changes\n- **List pull requests** - List PRs with filtering\n- **Search pull + requests** - Search across pull requests\n- **Get PR details** - Get PR information + including diffs, status, files, commits, reviews, and check runs\n- **Merge + pull requests** - Merge PRs with different merge strategies\n- **Request Copilot + review** - Get automated code review feedback\n\n### Pull Request Reviews\n- + **Create/submit reviews** - Create and submit pull request reviews\n- **Add + review comments** - Add comments to specific lines in PR diffs\n- **Add reply + to review comments** - Reply to existing review comments\n- **Resolve/unresolve + threads** - Manage review thread status\n\n### Copilot Integration\n- **Assign + Copilot to issue** - Have Copilot work on specific issues\n- **Create PR with + Copilot** - Delegate tasks to Copilot for pull request creation\n- **Get Copilot + job status** - Check status of Copilot tasks\n\n### Code & Search\n- **Search + code** - Fast code search across repositories using GitHub''s search engine\n- + **Search repositories** - Find repositories by name, description, topics, + etc.\n- **Search users** - Find GitHub users by username or profile info\n\n### + Team & User Management\n- **Get authenticated user info** - Get details about + the current user\n- **Get teams** - View teams the user belongs to\n- **Get + team members** - List members of a specific team\n- **List repository collaborators** + - List collaborators with different affiliation filters\n\n### Security\n- + **Run secret scanning** - Scan files or diffs for secrets like API keys and + credentials\n\n### Sub-issues\n- **Add/remove sub-issues** - Manage parent-child + relationships between issues\n- **Reprioritize sub-issues** - Change the order + of sub-issues\n\n## Cloudflare Tools\n- **Get MCP Demo Day info** - Get information + about Cloudflare''s MCP Demo Day\n\n---\n\nWould you like me to help you with + any specific GitHub or Cloudflare operation?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14184,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":826,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:06:46 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server.yml index e1ddcfac..2586b89d 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server.yml @@ -13,7 +13,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -48,7 +48,7 @@ http_interactions: message: OK headers: Date: - - Wed, 19 Nov 2025 20:59:32 GMT + - Tue, 14 Jul 2026 01:06:15 GMT Content-Type: - application/json Transfer-Encoding: @@ -56,53 +56,56 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T20:59:32Z' + - '2026-07-14T01:06:14Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T20:59:32Z' + - '2026-07-14T01:06:15Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T20:59:31Z' - Retry-After: - - '30' + - '2026-07-14T01:06:14Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T20:59:32Z' + - '2026-07-14T01:06:14Z' Request-Id: - - req_011CVHvKP6SUYvHg57R8mpZm + - req_011Cd142ZbNaDqAmBpzrGhSV Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2608' + Traceresponse: + - 00-34ed9474196d6b000acba9ee7fcdacd7-868de3c20ceaa541-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9a12a1b9dc1bcf16-SJC + - a1ac9f974a59cc90-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01BHecHbdEpuQD6YVca3JmnZ","type":"message","role":"assistant","content":[{"type":"text","text":"I - have access to one tool:\n\n**cloudflare-demo_mcp_demo_day_info** - This tool - provides information about Cloudflare''s MCP Demo Day. You can use this if - you have questions about Cloudflare''s MCP demo day event.\n\nIs there anything - you''d like to know about Cloudflare''s MCP Demo Day?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":83,"service_tier":"standard"}}' - recorded_at: Wed, 19 Nov 2025 20:59:32 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd142jbdo96wcc1ay7JJ2","type":"message","role":"assistant","content":[{"type":"text","text":"I + have access to one tool:\n\n1. **cloudflare-demo_mcp_demo_day_info** - This + tool retrieves information about Cloudflare''s MCP Demo Day. You can use this + if you''d like to know details about Cloudflare''s MCP demo day event.\n\nIf + you''d like to learn more about Cloudflare''s MCP Demo Day, just let me know + and I can fetch that information for you!"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":101,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:06:15 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server_with_auth.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server_with_auth.yml index 355f9a8e..14caa7fc 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server_with_auth.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_single_server_with_auth.yml @@ -13,7 +13,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -48,7 +48,7 @@ http_interactions: message: OK headers: Date: - - Wed, 19 Nov 2025 20:59:12 GMT + - Tue, 14 Jul 2026 01:06:35 GMT Content-Type: - application/json Transfer-Encoding: @@ -56,86 +56,90 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '3996000' + - '9994000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T20:59:06Z' + - '2026-07-14T01:06:28Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '799000' + - '1999000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T20:59:12Z' + - '2026-07-14T01:06:35Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T20:59:05Z' - Retry-After: - - '54' + - '2026-07-14T01:06:28Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4795000' + - '11993000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T20:59:06Z' + - '2026-07-14T01:06:28Z' Request-Id: - - req_011CVHvHXJkDbCcfzBei8kHK + - req_011Cd143gvvSMf9HR2VJe7nK Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '7073' + Traceresponse: + - 00-f82af7c16b177eb240d334b068cb2a54-e340f026e35972e3-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9a12a11c3cea3ad4-SJC + - a1ac9ff6c9a6d438-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01D2wEkim3w3rBRjFVvgxTBV","type":"message","role":"assistant","content":[{"type":"text","text":"I - have a comprehensive set of tools for interacting with GitHub. Here''s an - overview of what I can do:\n\n## Repository Management\n- **Create repositories** - - Create new repositories in your account or organization\n- **Fork repositories** - - Fork existing repositories\n- **List branches** - View branches in a repository\n- - **List commits** - Get commit history with filtering options\n- **List tags** - - View git tags in a repository\n- **List releases** - View releases in a - repository\n\n## File Operations\n- **Get file contents** - Read files or - directory contents from repositories\n- **Create or update files** - Create - new files or update existing ones\n- **Delete files** - Remove files from - repositories\n- **Push multiple files** - Commit multiple files in a single - operation\n- **Get commits** - Get detailed information about specific commits\n\n## - Issues Management\n- **Create/update issues** - Create new issues or update - existing ones\n- **Read issues** - Get issue details, comments, labels, and - sub-issues\n- **List issues** - List issues with filtering and sorting\n- - **Search issues** - Search across issues using GitHub''s search syntax\n- - **Add issue comments** - Comment on issues\n- **Assign Copilot to issues** - - Have GitHub Copilot work on tasks\n\n## Pull Requests\n- **Create pull requests** - - Create new PRs\n- **Read pull requests** - Get PR details, diffs, files - changed, comments, and reviews\n- **List pull requests** - List PRs with filtering\n- - **Search pull requests** - Search for PRs across repositories\n- **Update - pull requests** - Modify PR title, description, base branch, reviewers, and - state\n- **Update PR branch** - Sync PR branch with base branch\n- **Merge - pull requests** - Merge PRs with different merge strategies\n- **PR reviews** - - Create, submit, or delete pull request reviews\n- **Review comments** - - Add comments to pending pull request reviews\n\n## Search & Discovery\n- **Search - code** - Search across all GitHub repositories for code patterns\n- **Search - repositories** - Find repositories by name, description, topics, etc.\n- **Search - users** - Find GitHub users\n- **Search issues** - Search for issues across - repositories\n- **Search pull requests** - Search for pull requests across - repositories\n\n## Teams & Users\n- **Get user profile** - Get details about - the authenticated user\n- **Get teams** - View teams you''re a member of\n- - **Get team members** - List members of a specific team\n\n## Releases & Tags\n- - **Get latest release** - Get the most recent release\n- **Get release by tag** - - Get a specific release by tag name\n- **Get tag details** - Get information - about a specific git tag\n\n## Labels\n- **Get label** - Get details about - a specific label in a repository\n\nIs there something specific you''d like - to do with GitHub?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":9567,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":634,"service_tier":"standard"}}' - recorded_at: Wed, 19 Nov 2025 20:59:12 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd143mWWHSFdHdsFFBRC7","type":"message","role":"assistant","content":[{"type":"text","text":"I + have a comprehensive set of tools for working with GitHub repositories. Here''s + an overview of what I can do:\n\n## Repository Management\n- **Create repositories** + - Create new public or private repos\n- **Fork repositories** - Fork existing + repos to your account or organization\n- **List branches, commits, tags, and + releases** - Browse repository history and structure\n- **Get file contents** + - Read files and directory structures from repos\n\n## Issue Management\n- + **Create and update issues** - Create new issues or modify existing ones\n- + **Read issue details** - Get issue information, comments, labels, sub-issues, + and parent issues\n- **Search issues** - Find issues across GitHub using advanced + search syntax\n- **Add comments and reactions** - Comment on issues and add + emoji reactions\n- **Manage sub-issues** - Add, remove, or reprioritize sub-issues + under parent issues\n\n## Pull Request Management\n- **Create pull requests** + - Create PRs with customizable settings\n- **List and search pull requests** + - Find and browse pull requests\n- **Read PR details** - Get PR information, + diffs, commits, files changed, and reviews\n- **Update pull requests** - Modify + PR title, description, state, reviewers, etc.\n- **Merge pull requests** - + Merge PRs using different merge methods (merge, squash, rebase)\n- **Update + PR branch** - Sync PR branch with the latest base branch changes\n\n## Code + Review\n- **Create and manage reviews** - Create reviews, submit pending reviews, + delete reviews\n- **Add review comments** - Comment on specific lines of code + in pull requests\n- **Reply to PR comments** - Add reactions and replies to + PR comments\n- **Resolve/unresolve review threads** - Manage review thread + status\n- **Request Copilot review** - Get automated code review from GitHub + Copilot\n\n## Code Changes\n- **Create/update files** - Create new files or + update existing ones in repos\n- **Delete files** - Remove files from repos\n- + **Push multiple files** - Commit multiple files in a single commit\n- **Create + branches** - Create new branches in repos\n\n## Advanced Features\n- **GitHub + Copilot Agent** - Assign tasks to Copilot to create PRs with implementations\n- + **Search code** - Fast code search across GitHub repos\n- **Search commits** + - Find commits by message, author, date, etc.\n- **Search repositories** - + Find repos by name, description, topics, etc.\n- **Search users** - Find GitHub + users by username or profile info\n- **Secret scanning** - Scan files for + leaked credentials and secrets\n- **Get team members** - List members of GitHub + teams\n- **Get authenticated user info** - Retrieve your own GitHub profile + information\n\n## Utility Functions\n- **Get commit details** - Get detailed + information about specific commits\n- **Get labels** - Retrieve label information + from repositories\n- **Get releases and tags** - Find specific releases or + tags\n- **List issue fields and types** - See what custom fields and issue + types are available\n\nWould you like help with any specific GitHub task?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14109,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":682,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:06:35 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_sse_server.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_sse_server.yml index 087df3d8..35482070 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_sse_server.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/mcp_test/test_agent_common_format_sse_server.yml @@ -13,7 +13,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -48,7 +48,7 @@ http_interactions: message: OK headers: Date: - - Wed, 19 Nov 2025 20:59:22 GMT + - Tue, 14 Jul 2026 01:06:11 GMT Content-Type: - application/json Transfer-Encoding: @@ -56,54 +56,55 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T20:59:22Z' + - '2026-07-14T01:06:11Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T20:59:22Z' + - '2026-07-14T01:06:11Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T20:59:20Z' - Retry-After: - - '38' + - '2026-07-14T01:06:10Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T20:59:22Z' + - '2026-07-14T01:06:11Z' Request-Id: - - req_011CVHvJcYHonXtRU5bKdaSE + - req_011Cd142Jr6wK3SKnxEHxxU2 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2893' + Traceresponse: + - 00-3411663b9540eb8181ddb2c6bef1d833-d81387329a6d8bd1-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9a12a1788ffbf93d-SJC + - a1ac9f81be2f8467-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_012mvHMmb8rh3yPG2eH2QfD9","type":"message","role":"assistant","content":[{"type":"text","text":"I - have access to one tool:\n\n1. **cloudflare-demo_mcp_demo_day_info** - Get - information about Cloudflare''s MCP Demo Day. Use this tool if you have questions - about Cloudflare''s MCP demo day.\n\nThis tool allows me to retrieve details - about Cloudflare''s MCP (Model Context Protocol) Demo Day event. If you''d - like to know more about this event, feel free to ask!"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":102,"service_tier":"standard"}}' - recorded_at: Wed, 19 Nov 2025 20:59:22 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd142UgCQwEvSj7hLKK3x","type":"message","role":"assistant","content":[{"type":"text","text":"I + have one tool available:\n\n**cloudflare-demo_mcp_demo_day_info** - This tool + provides information about Cloudflare''s MCP Demo Day. You can use it if you + have questions about Cloudflare''s MCP demo day event.\n\nIs there anything + you''d like to know about Cloudflare''s MCP Demo Day?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":82,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:06:11 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_base64_bare.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_base64_bare.yml index e0c323e8..aa5c1331 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_base64_bare.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_base64_bare.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"What''s - in this document?"},{"type":"document","source":{"type":"base64","media_type":"application/pdf","data":"JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCgoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFJdCi9Db3VudCAxCj4+CmVuZG9iagoKMyAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL0YxIDQgMCBSCj4+Cj4+Ci9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iago8PAovTGVuZ3RoIDMwMAo+PgpzdHJlYW0KQlQKL0YxIDE2IFRmCjUwIDc1MCBUZAooSm9obiBEb2UgLSBTb2Z0d2FyZSBFbmdpbmVlcikgVGoKMCAtMzAgVGQKL0YxIDEyIFRmCihFbWFpbDogam9obi5kb2VAZXhhbXBsZS5jb20pIFRqCjAgLTIwIFRkCihQaG9uZTogKDU1NSkgMTIzLTQ1NjcpIFRqCjAgLTIwIFRkCihMb2NhdGlvbjogU2FuIEZyYW5jaXNjbywgQ0EpIFRqCjAgLTQwIFRkCi9GMSAxNCBUZgooRXhwZXJpZW5jZTopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyIGF0IFRlY2hDb3JwICgyMDIwLTIwMjQpKSBUagowIC0yMCBUZAooLSBEZXZlbG9wZWQgd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBSdWJ5IG9uIFJhaWxzKSBUagowIC0yMCBUZAooLSBMZWQgdGVhbSBvZiA1IGRldmVsb3BlcnMpIFRqCjAgLTIwIFRkCigtIEltcGxlbWVudGVkIENJL0NEIHBpcGVsaW5lcykgVGoKMCAtNDAgVGQKL0YxIDE0IFRmCihTa2lsbHM6KSBUagowIC0yNSBUZAovRjEgMTIgVGYKKFJ1YnksIFJhaWxzLCBKYXZhU2NyaXB0LCBQeXRob24sIEFXUywgRG9ja2VyKSBUagowIC00MCBUZAovRjEgMTQgVGYKKEVkdWNhdGlvbjopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooQlMgQ29tcHV0ZXIgU2NpZW5jZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSAoMjAxNi0yMDIwKSkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAowMDAwMDAwMjY5IDAwMDAwIG4gCjAwMDAwMDAzMzcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSA2Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgo2ODcKJSVFT0YK"}}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"data":"JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCgoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFJdCi9Db3VudCAxCj4+CmVuZG9iagoKMyAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL0YxIDQgMCBSCj4+Cj4+Ci9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iago8PAovTGVuZ3RoIDMwMAo+PgpzdHJlYW0KQlQKL0YxIDE2IFRmCjUwIDc1MCBUZAooSm9obiBEb2UgLSBTb2Z0d2FyZSBFbmdpbmVlcikgVGoKMCAtMzAgVGQKL0YxIDEyIFRmCihFbWFpbDogam9obi5kb2VAZXhhbXBsZS5jb20pIFRqCjAgLTIwIFRkCihQaG9uZTogKDU1NSkgMTIzLTQ1NjcpIFRqCjAgLTIwIFRkCihMb2NhdGlvbjogU2FuIEZyYW5jaXNjbywgQ0EpIFRqCjAgLTQwIFRkCi9GMSAxNCBUZgooRXhwZXJpZW5jZTopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyIGF0IFRlY2hDb3JwICgyMDIwLTIwMjQpKSBUagowIC0yMCBUZAooLSBEZXZlbG9wZWQgd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBSdWJ5IG9uIFJhaWxzKSBUagowIC0yMCBUZAooLSBMZWQgdGVhbSBvZiA1IGRldmVsb3BlcnMpIFRqCjAgLTIwIFRkCigtIEltcGxlbWVudGVkIENJL0NEIHBpcGVsaW5lcykgVGoKMCAtNDAgVGQKL0YxIDE0IFRmCihTa2lsbHM6KSBUagowIC0yNSBUZAovRjEgMTIgVGYKKFJ1YnksIFJhaWxzLCBKYXZhU2NyaXB0LCBQeXRob24sIEFXUywgRG9ja2VyKSBUagowIC00MCBUZAovRjEgMTQgVGYKKEVkdWNhdGlvbjopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooQlMgQ29tcHV0ZXIgU2NpZW5jZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSAoMjAxNi0yMDIwKSkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAowMDAwMDAwMjY5IDAwMDAwIG4gCjAwMDAwMDAzMzcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSA2Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgo2ODcKJSVFT0YK","media_type":"application/pdf","type":"base64"},"type":"document"}],"role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 20:12:11 GMT + - Tue, 14 Jul 2026 01:05:05 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,59 +54,60 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '49000' + - '9999000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T20:12:11Z' + - '2026-07-14T01:05:03Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T20:12:13Z' + - '2026-07-14T01:05:05Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T20:12:10Z' + - '2026-07-14T01:05:02Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '59000' + - '11999000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T20:12:11Z' + - '2026-07-14T01:05:03Z' Request-Id: - - req_011CUK4SUNMSSa7Xaye3xFiz + - req_011Cd13wSSNJz4DJzpcHwLLi Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2918' - Via: - - 1.1 google + Traceresponse: + - 00-7669f154316ce5bb79568afae8527ef3-d18dc37331cf4cbd-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 991b2b1c2e54ce7c-SJC + - a1ac9de0ef59b917-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01AxyYFpTssJxMimfXMeFoUv","type":"message","role":"assistant","content":[{"type":"text","text":"# - Document Summary\n\nThis is a **resume** for **John Doe**, a Software Engineer. + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13wUtTgTaGtLoT8iHtL","type":"message","role":"assistant","content":[{"type":"text","text":"# + Document Summary\n\nThis is a **resume for John Doe**, a Software Engineer. Here are the key details:\n\n## Contact Information\n- **Email:** john.doe@example.com\n- - **Phone:** (555) 123-4567\n- **Location:** San Francisco, CA\n\n## Professional - Experience\n- **Senior Software Engineer at TechCorp** (2020-2024)\n - Developed - web applications using Ruby on Rails\n - Led a team of 5 developers\n - - Implemented CI/CD pipelines\n\n## Technical Skills\nRuby, Rails, JavaScript, - Python, AWS, Docker\n\n## Education\n- **BS Computer Science** from Stanford - University (2016-2020)\n\nThe resume presents a software engineer with 4 years - of recent experience in web development, team leadership, and DevOps practices, - along with a solid educational background from Stanford."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":1700,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":195,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 20:12:11 GMT -recorded_with: VCR 6.3.1 + **Phone:** (555) 123-4567\n- **Location:** San Francisco, CA\n\n## Experience\n- + **Senior Software Engineer at TechCorp** (2020-2024)\n - Developed web applications + using Ruby on Rails\n - Led a team of 5 developers\n - Implemented CI/CD + pipelines\n\n## Skills\nRuby, Rails, JavaScript, Python, AWS, Docker\n\n## + Education\n- **BS in Computer Science** from Stanford University (2016-2020)\n\nThis + is a professional resume highlighting software engineering expertise with + a focus on web development and cloud technologies."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1700,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":175,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:05 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_base64_message.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_base64_message.yml index d8ccd9ec..458794a9 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_base64_message.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_base64_message.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"What''s - in this document?"},{"type":"document","source":{"type":"base64","media_type":"application/pdf","data":"JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCgoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFJdCi9Db3VudCAxCj4+CmVuZG9iagoKMyAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL0YxIDQgMCBSCj4+Cj4+Ci9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iago8PAovTGVuZ3RoIDMwMAo+PgpzdHJlYW0KQlQKL0YxIDE2IFRmCjUwIDc1MCBUZAooSm9obiBEb2UgLSBTb2Z0d2FyZSBFbmdpbmVlcikgVGoKMCAtMzAgVGQKL0YxIDEyIFRmCihFbWFpbDogam9obi5kb2VAZXhhbXBsZS5jb20pIFRqCjAgLTIwIFRkCihQaG9uZTogKDU1NSkgMTIzLTQ1NjcpIFRqCjAgLTIwIFRkCihMb2NhdGlvbjogU2FuIEZyYW5jaXNjbywgQ0EpIFRqCjAgLTQwIFRkCi9GMSAxNCBUZgooRXhwZXJpZW5jZTopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyIGF0IFRlY2hDb3JwICgyMDIwLTIwMjQpKSBUagowIC0yMCBUZAooLSBEZXZlbG9wZWQgd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBSdWJ5IG9uIFJhaWxzKSBUagowIC0yMCBUZAooLSBMZWQgdGVhbSBvZiA1IGRldmVsb3BlcnMpIFRqCjAgLTIwIFRkCigtIEltcGxlbWVudGVkIENJL0NEIHBpcGVsaW5lcykgVGoKMCAtNDAgVGQKL0YxIDE0IFRmCihTa2lsbHM6KSBUagowIC0yNSBUZAovRjEgMTIgVGYKKFJ1YnksIFJhaWxzLCBKYXZhU2NyaXB0LCBQeXRob24sIEFXUywgRG9ja2VyKSBUagowIC00MCBUZAovRjEgMTQgVGYKKEVkdWNhdGlvbjopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooQlMgQ29tcHV0ZXIgU2NpZW5jZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSAoMjAxNi0yMDIwKSkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAowMDAwMDAwMjY5IDAwMDAwIG4gCjAwMDAwMDAzMzcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSA2Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgo2ODcKJSVFT0YK"}}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"data":"JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCgoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFJdCi9Db3VudCAxCj4+CmVuZG9iagoKMyAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL0YxIDQgMCBSCj4+Cj4+Ci9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iago8PAovTGVuZ3RoIDMwMAo+PgpzdHJlYW0KQlQKL0YxIDE2IFRmCjUwIDc1MCBUZAooSm9obiBEb2UgLSBTb2Z0d2FyZSBFbmdpbmVlcikgVGoKMCAtMzAgVGQKL0YxIDEyIFRmCihFbWFpbDogam9obi5kb2VAZXhhbXBsZS5jb20pIFRqCjAgLTIwIFRkCihQaG9uZTogKDU1NSkgMTIzLTQ1NjcpIFRqCjAgLTIwIFRkCihMb2NhdGlvbjogU2FuIEZyYW5jaXNjbywgQ0EpIFRqCjAgLTQwIFRkCi9GMSAxNCBUZgooRXhwZXJpZW5jZTopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyIGF0IFRlY2hDb3JwICgyMDIwLTIwMjQpKSBUagowIC0yMCBUZAooLSBEZXZlbG9wZWQgd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBSdWJ5IG9uIFJhaWxzKSBUagowIC0yMCBUZAooLSBMZWQgdGVhbSBvZiA1IGRldmVsb3BlcnMpIFRqCjAgLTIwIFRkCigtIEltcGxlbWVudGVkIENJL0NEIHBpcGVsaW5lcykgVGoKMCAtNDAgVGQKL0YxIDE0IFRmCihTa2lsbHM6KSBUagowIC0yNSBUZAovRjEgMTIgVGYKKFJ1YnksIFJhaWxzLCBKYXZhU2NyaXB0LCBQeXRob24sIEFXUywgRG9ja2VyKSBUagowIC00MCBUZAovRjEgMTQgVGYKKEVkdWNhdGlvbjopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooQlMgQ29tcHV0ZXIgU2NpZW5jZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSAoMjAxNi0yMDIwKSkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAowMDAwMDAwMjY5IDAwMDAwIG4gCjAwMDAwMDAzMzcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSA2Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgo2ODcKJSVFT0YK","media_type":"application/pdf","type":"base64"},"type":"document"}],"role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 20:12:08 GMT + - Tue, 14 Jul 2026 01:05:17 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,59 +54,61 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '49000' + - '9999000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T20:12:07Z' + - '2026-07-14T01:05:15Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T20:12:09Z' + - '2026-07-14T01:05:17Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T20:12:06Z' + - '2026-07-14T01:05:14Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '59000' + - '11999000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T20:12:07Z' + - '2026-07-14T01:05:15Z' Request-Id: - - req_011CUK4SCjkftg9vxLueakNo + - req_011Cd13xJMUaC8GeL65dAfjD Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '3494' - Via: - - 1.1 google + Traceresponse: + - 00-012a0aec7e43d17684759fe8a3d75a69-6e70c514a2719c63-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 991b2b055ee467b5-SJC + - a1ac9e2dbc50042c-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_016RSrS3uBpSqaYE5nJhiXhx","type":"message","role":"assistant","content":[{"type":"text","text":"# - Document Summary\n\nThis is a **resume for John Doe**, a Software Engineer. + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13xMAtqkNLYckhMtd7t","type":"message","role":"assistant","content":[{"type":"text","text":"# + Resume Summary\n\nThis document is a **resume for John Doe**, a Software Engineer. Here are the key details:\n\n## Contact Information\n- **Email:** john.doe@example.com\n- **Phone:** (555) 123-4567\n- **Location:** San Francisco, CA\n\n## Professional Experience\n- **Senior Software Engineer at TechCorp** (2020-2024)\n - Developed web applications using Ruby on Rails\n - Led a team of 5 developers\n - Implemented CI/CD pipelines\n\n## Technical Skills\nRuby, Rails, JavaScript, - Python, AWS, Docker\n\n## Education\n- **BS in Computer Science** from Stanford - University (2016-2020)\n\nThis is a straightforward professional resume highlighting - relevant experience in web development and cloud infrastructure, with a strong - educational background from Stanford."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":1700,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":183,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 20:12:08 GMT -recorded_with: VCR 6.3.1 + Python, AWS, Docker\n\n## Education\n- **BS Computer Science** from Stanford + University (2016-2020)\n\nThe resume highlights a recent graduate with 4 years + of experience in software development, with a focus on backend web development + and team leadership."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1700,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":186,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:17 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_base64_messages.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_base64_messages.yml index c809f664..c402b77b 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_base64_messages.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_base64_messages.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"What''s - in this document?"},{"type":"document","source":{"type":"base64","media_type":"application/pdf","data":"JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCgoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFJdCi9Db3VudCAxCj4+CmVuZG9iagoKMyAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL0YxIDQgMCBSCj4+Cj4+Ci9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iago8PAovTGVuZ3RoIDMwMAo+PgpzdHJlYW0KQlQKL0YxIDE2IFRmCjUwIDc1MCBUZAooSm9obiBEb2UgLSBTb2Z0d2FyZSBFbmdpbmVlcikgVGoKMCAtMzAgVGQKL0YxIDEyIFRmCihFbWFpbDogam9obi5kb2VAZXhhbXBsZS5jb20pIFRqCjAgLTIwIFRkCihQaG9uZTogKDU1NSkgMTIzLTQ1NjcpIFRqCjAgLTIwIFRkCihMb2NhdGlvbjogU2FuIEZyYW5jaXNjbywgQ0EpIFRqCjAgLTQwIFRkCi9GMSAxNCBUZgooRXhwZXJpZW5jZTopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyIGF0IFRlY2hDb3JwICgyMDIwLTIwMjQpKSBUagowIC0yMCBUZAooLSBEZXZlbG9wZWQgd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBSdWJ5IG9uIFJhaWxzKSBUagowIC0yMCBUZAooLSBMZWQgdGVhbSBvZiA1IGRldmVsb3BlcnMpIFRqCjAgLTIwIFRkCigtIEltcGxlbWVudGVkIENJL0NEIHBpcGVsaW5lcykgVGoKMCAtNDAgVGQKL0YxIDE0IFRmCihTa2lsbHM6KSBUagowIC0yNSBUZAovRjEgMTIgVGYKKFJ1YnksIFJhaWxzLCBKYXZhU2NyaXB0LCBQeXRob24sIEFXUywgRG9ja2VyKSBUagowIC00MCBUZAovRjEgMTQgVGYKKEVkdWNhdGlvbjopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooQlMgQ29tcHV0ZXIgU2NpZW5jZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSAoMjAxNi0yMDIwKSkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAowMDAwMDAwMjY5IDAwMDAwIG4gCjAwMDAwMDAzMzcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSA2Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgo2ODcKJSVFT0YK"}}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"data":"JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCgoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFJdCi9Db3VudCAxCj4+CmVuZG9iagoKMyAwIG9iago8PAovVHlwZSAvUGFnZQovUGFyZW50IDIgMCBSCi9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL0YxIDQgMCBSCj4+Cj4+Ci9Db250ZW50cyA1IDAgUgo+PgplbmRvYmoKCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iagoKNSAwIG9iago8PAovTGVuZ3RoIDMwMAo+PgpzdHJlYW0KQlQKL0YxIDE2IFRmCjUwIDc1MCBUZAooSm9obiBEb2UgLSBTb2Z0d2FyZSBFbmdpbmVlcikgVGoKMCAtMzAgVGQKL0YxIDEyIFRmCihFbWFpbDogam9obi5kb2VAZXhhbXBsZS5jb20pIFRqCjAgLTIwIFRkCihQaG9uZTogKDU1NSkgMTIzLTQ1NjcpIFRqCjAgLTIwIFRkCihMb2NhdGlvbjogU2FuIEZyYW5jaXNjbywgQ0EpIFRqCjAgLTQwIFRkCi9GMSAxNCBUZgooRXhwZXJpZW5jZTopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyIGF0IFRlY2hDb3JwICgyMDIwLTIwMjQpKSBUagowIC0yMCBUZAooLSBEZXZlbG9wZWQgd2ViIGFwcGxpY2F0aW9ucyB1c2luZyBSdWJ5IG9uIFJhaWxzKSBUagowIC0yMCBUZAooLSBMZWQgdGVhbSBvZiA1IGRldmVsb3BlcnMpIFRqCjAgLTIwIFRkCigtIEltcGxlbWVudGVkIENJL0NEIHBpcGVsaW5lcykgVGoKMCAtNDAgVGQKL0YxIDE0IFRmCihTa2lsbHM6KSBUagowIC0yNSBUZAovRjEgMTIgVGYKKFJ1YnksIFJhaWxzLCBKYXZhU2NyaXB0LCBQeXRob24sIEFXUywgRG9ja2VyKSBUagowIC00MCBUZAovRjEgMTQgVGYKKEVkdWNhdGlvbjopIFRqCjAgLTI1IFRkCi9GMSAxMiBUZgooQlMgQ29tcHV0ZXIgU2NpZW5jZSwgU3RhbmZvcmQgVW5pdmVyc2l0eSAoMjAxNi0yMDIwKSkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagoKeHJlZgowIDYKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAowMDAwMDAwMjY5IDAwMDAwIG4gCjAwMDAwMDAzMzcgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSA2Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgo2ODcKJSVFT0YK","media_type":"application/pdf","type":"base64"},"type":"document"}],"role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 20:12:05 GMT + - Tue, 14 Jul 2026 01:05:01 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,58 +54,60 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '49000' + - '9999000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T20:12:04Z' + - '2026-07-14T01:04:59Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T20:12:06Z' + - '2026-07-14T01:05:01Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T20:12:03Z' + - '2026-07-14T01:04:59Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '59000' + - '11999000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T20:12:04Z' + - '2026-07-14T01:04:59Z' Request-Id: - - req_011CUK4RzRqbY1HFmKQfj7nw + - req_011Cd13wCzjdEzKYD6NukEBs Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2674' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-f9faf73c276a279da3fd6efd2a75e313-61dfb508b1dfd3e2-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 991b2af2efaaed3f-SJC + - a1ac9dd05d456c48-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_017djrdrmcQn1GET7x8dqPa4","type":"message","role":"assistant","content":[{"type":"text","text":"# + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13wDtos61bhronA1Psh","type":"message","role":"assistant","content":[{"type":"text","text":"# Document Summary\n\nThis is a **resume for John Doe**, a Software Engineer. Here are the key details:\n\n## Contact Information\n- **Email:** john.doe@example.com\n- **Phone:** (555) 123-4567\n- **Location:** San Francisco, CA\n\n## Experience\n- **Senior Software Engineer at TechCorp** (2020-2024)\n - Developed web applications using Ruby on Rails\n - Led a team of 5 developers\n - Implemented CI/CD pipelines\n\n## Skills\nRuby, Rails, JavaScript, Python, AWS, Docker\n\n## - Education\n- **BS Computer Science** from Stanford University (2016-2020)\n\nThis - is a straightforward professional resume highlighting relevant technical skills - and recent work experience in software engineering."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":1700,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":174,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 20:12:05 GMT -recorded_with: VCR 6.3.1 + Education\n- **BS in Computer Science** from Stanford University (2016-2020)\n\nThis + is a standard one-page resume highlighting professional experience, technical + skills, and educational background for a software engineering position."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1700,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":180,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:01 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_url_bare.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_url_bare.yml index e55d1d8d..8180d4eb 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_url_bare.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_url_bare.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"What''s - in this document?"},{"type":"document","source":{"type":"url","url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"}}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"type":"url","url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},"type":"document"}],"role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 20:11:25 GMT + - Tue, 14 Jul 2026 01:05:26 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,52 +54,54 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '49000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T20:11:25Z' + - '2026-07-14T01:05:25Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T20:11:25Z' + - '2026-07-14T01:05:26Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T20:11:25Z' + - '2026-07-14T01:05:24Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '59000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T20:11:25Z' + - '2026-07-14T01:05:25Z' Request-Id: - - req_011CUK4P9fNnrPzAkrYYJzdw + - req_011Cd13y68J1scpf76Nk4Wzj Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1671' - Via: - - 1.1 google + Traceresponse: + - 00-fc1858107e2a1bb6c85148b88a99ecd4-8554f3c9e133e939-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 991b2a026ffe15cc-SJC + - a1ac9e708b556798-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01XwXunxUXbLAgAZ6LiUWnrs","type":"message","role":"assistant","content":[{"type":"text","text":"This - document contains very minimal content. It''s a PDF file with just a single - heading that reads **\"Dummy PDF file\"** on page 1. The rest of the page - is blank. It appears to be a placeholder or test PDF with no substantial information."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":1612,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":57,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 20:11:25 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13y7fZpfZbyiyFuQnXa","type":"message","role":"assistant","content":[{"type":"text","text":"This + document is a PDF file with minimal content. It contains only the title **\"Dummy + PDF file\"** displayed as a heading on the page. The rest of the page is blank. + This appears to be a simple test or placeholder PDF document."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1612,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":54,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:26 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_url_message.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_url_message.yml index 4a3ef82c..9b11460e 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_url_message.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_url_message.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"What''s - in this document?"},{"type":"document","source":{"type":"url","url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"}}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"type":"url","url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},"type":"document"}],"role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 20:11:52 GMT + - Tue, 14 Jul 2026 01:05:24 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,53 +54,55 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '49000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T20:11:52Z' + - '2026-07-14T01:05:23Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T20:11:53Z' + - '2026-07-14T01:05:24Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T20:11:52Z' + - '2026-07-14T01:05:23Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '59000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T20:11:52Z' + - '2026-07-14T01:05:23Z' Request-Id: - - req_011CUK4R93EGBjaBwFMY5YD8 + - req_011Cd13xyYub1oiV9L1LgoB8 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1977' - Via: - - 1.1 google + Traceresponse: + - 00-c822a0fa3184bab8e0070fcfbfcfa8e8-b3d30becbb5a8d3c-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 991b2aab2fd036e8-SJC + - a1ac9e672bd203c2-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01CafxJLCwjrirkALMw1q1cs","type":"message","role":"assistant","content":[{"type":"text","text":"This - document is a simple PDF file with minimal content. It contains only a heading - that reads \"Dummy PDF file\" at the top of the page. The rest of the page - is blank/white space. This appears to be a placeholder or test PDF document - with no substantial information."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":1612,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":60,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 20:11:52 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13xz5Qotj9E3wP62G15","type":"message","role":"assistant","content":[{"type":"text","text":"This + document is a simple PDF file with minimal content. It contains only the text + \"**Dummy PDF file**\" displayed as a heading on page 1. The rest of the page + is blank. It appears to be a placeholder or test PDF file with no substantive + information."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1612,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":60,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:24 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_url_messages.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_url_messages.yml index 7639b36a..63d089d9 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_url_messages.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_document_url_messages.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"What''s - in this document?"},{"type":"document","source":{"type":"url","url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"}}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this document?","type":"text"},{"source":{"type":"url","url":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},"type":"document"}],"role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 20:11:50 GMT + - Tue, 14 Jul 2026 01:04:38 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,53 +54,55 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '49000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T20:11:50Z' + - '2026-07-14T01:04:37Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T20:11:51Z' + - '2026-07-14T01:04:38Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T20:11:50Z' + - '2026-07-14T01:04:36Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '59000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T20:11:50Z' + - '2026-07-14T01:04:37Z' Request-Id: - - req_011CUK4Qz6Ts74tpW83r42Nu + - req_011Cd13uY49zkbLmAKuhm7vP Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1861' - Via: - - 1.1 google + Traceresponse: + - 00-ddd44d75be798ccc3e7f15f0fbb80242-31e030e099660867-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 991b2a9e0d071668-SJC + - a1ac9d42ae21b1ae-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01Fy2DHfmZqhBGRW9axcX59G","type":"message","role":"assistant","content":[{"type":"text","text":"This - document contains very minimal content. It''s a PDF file with a single page - that simply displays the text **\"Dummy PDF file\"** as a heading. The rest - of the page is blank/empty. This appears to be a placeholder or sample PDF - document with no substantive information."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":1612,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":62,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 20:11:50 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13uYzDG1jvseXr6vzjt","type":"message","role":"assistant","content":[{"type":"text","text":"This + document is a simple, minimalist PDF file. It contains only the text \"Dummy + PDF file\" displayed as a heading in the upper left portion of the page. The + rest of the page is blank white space. It appears to be a test or placeholder + PDF with no substantive content."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1612,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":63,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:04:38 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_base64_bare.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_base64_bare.yml index ce13b666..143d5765 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_base64_bare.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_base64_bare.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"What''s - in this image?"},{"type":"image","source":{"type":"base64","media_type":"image/png","data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="}}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==","media_type":"image/png","type":"base64"},"type":"image"}],"role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 05:56:58 GMT + - Tue, 14 Jul 2026 01:05:07 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,53 +54,57 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T05:56:57Z' + - '2026-07-14T01:05:05Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T05:56:59Z' + - '2026-07-14T01:05:07Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T05:56:58Z' + - '2026-07-14T01:05:05Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T05:56:57Z' + - '2026-07-14T01:05:05Z' Request-Id: - - req_011CUHwE3bS2umwcEYcwrPJw + - req_011Cd13wfNVSB27FAgerobtL Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1817' - Via: - - 1.1 google + Traceresponse: + - 00-c730977bc346c4e5db6cb6657e4ff66b-dd472417e9207238-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9916465f7c529e59-SJC + - a1ac9df7ced2c710-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01ETxrtiD58kkEHRsmXCwnsf","type":"message","role":"assistant","content":[{"type":"text","text":"This - image appears to be mostly blank or very faint. It shows a light gray or off-white - background with possibly a very subtle mark or dot, but there''s no clear - or distinct content visible. The image quality is very low, or it may be nearly - empty. Could you provide more context or a clearer version of the image?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":17,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":72,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 05:56:58 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13wgHJx3UK6k8yGZW8G","type":"message","role":"assistant","content":[{"type":"text","text":"This + image appears to show a very small, light pink or pale colored dot or speck + against a white or nearly white background. It''s difficult to make out specific + details due to the image''s small size and low contrast. It could be a dust + particle, a pixel artifact, or some other minimal visual element. If you''re + looking for information about something specific in this image, you might + want to provide a larger or higher-contrast version."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":17,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":92,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:07 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_base64_message.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_base64_message.yml index eda3311c..6afde9b3 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_base64_message.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_base64_message.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"What''s - in this image?"},{"type":"image","source":{"type":"base64","media_type":"image/png","data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="}}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==","media_type":"image/png","type":"base64"},"type":"image"}],"role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 19:06:13 GMT + - Tue, 14 Jul 2026 01:05:09 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,56 +54,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T19:06:12Z' + - '2026-07-14T01:05:07Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T19:06:14Z' + - '2026-07-14T01:05:09Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T19:06:12Z' + - '2026-07-14T01:05:07Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T19:06:12Z' + - '2026-07-14T01:05:07Z' Request-Id: - - req_011CUJyQkhUf6HKR5YbQqSUC + - req_011Cd13wpZ9CEVMJjvx1zBQu Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2264' - Via: - - 1.1 google + Traceresponse: + - 00-1e3b73b5477c1d2e45dbed0c58b3b8f5-6ec1775d03179578-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 991aca7e4c747ada-SJC + - a1ac9e052b76f64e-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_019ws57DyjdgWE7jj1xGUqUs","type":"message","role":"assistant","content":[{"type":"text","text":"This - image appears to be a very small, low-resolution icon or dot. It looks like - it could be a favicon, a simple geometric shape, or perhaps a loading indicator. - The image is predominantly white or light-colored with what might be a small - colored element in the center, but the resolution is too low for me to identify - it with certainty. \n\nIf you could provide more context about where this - image is from or what it''s meant to represent, I''d be happy to give you - a more accurate description."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":17,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":109,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 19:06:13 GMT -recorded_with: VCR 6.3.1 + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDZDEzd3E1dG16QW5QaVlMYzRMd0IiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGlzIGltYWdlIGFwcGVhcnMgdG8gYmUgYSB2ZXJ5IHNtYWxsLCBsb3ctcmVzb2x1dGlvbiBpY29uIG9yIGRvdC4gSXQgbG9va3MgbGlrZSBhIHNpbXBsZSBjaXJjdWxhciBzaGFwZSwgcG9zc2libHkgaW4gYSBsaWdodCBwaW5rIG9yIHBhbGUgcmVkIGNvbG9yIGFnYWluc3QgYSB3aGl0ZSBiYWNrZ3JvdW5kLiBXaXRob3V0IG1vcmUgY29udGV4dCBvciBhIGhpZ2hlciByZXNvbHV0aW9uIHZlcnNpb24sIGl0J3MgZGlmZmljdWx0IHRvIGRldGVybWluZSBleGFjdGx5IHdoYXQgaXQncyBtZWFudCB0byByZXByZXNlbnTigJRpdCBjb3VsZCBiZSBhIHBsYWNlaG9sZGVyIGljb24sIGEgbG9hZGluZyBpbmRpY2F0b3IsIGEgdXNlciBhdmF0YXIsIG9yIGEgc2ltcGxlIGdyYXBoaWNhbCBlbGVtZW50IGZyb20gYSB1c2VyIGludGVyZmFjZS4ifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6MTcsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjo4OSwic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoibm90X2F2YWlsYWJsZSJ9fQ== + recorded_at: Tue, 14 Jul 2026 01:05:09 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_base64_messages.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_base64_messages.yml index 5507e0fa..f9e06312 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_base64_messages.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_base64_messages.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"What''s - in this image?"},{"type":"image","source":{"type":"base64","media_type":"image/png","data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="}}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==","media_type":"image/png","type":"base64"},"type":"image"}],"role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 19:06:11 GMT + - Tue, 14 Jul 2026 01:04:45 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,54 +54,55 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T19:06:10Z' + - '2026-07-14T01:04:44Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T19:06:11Z' + - '2026-07-14T01:04:45Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T19:06:10Z' + - '2026-07-14T01:04:44Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T19:06:10Z' + - '2026-07-14T01:04:44Z' Request-Id: - - req_011CUJyQcXr6K8NotVk2DhUg + - req_011Cd13v5ieyUG5McxMFwRfD Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1765' - Via: - - 1.1 google + Traceresponse: + - 00-147722ce8067e73662af52a0b0d66144-841d0287bc5eccd1-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 991aca7218409e58-SJC + - a1ac9d71bd6e2546-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01X9NWHYHSX77faTWe48ZjwM","type":"message","role":"assistant","content":[{"type":"text","text":"This - image appears to be a very small, low-resolution icon or symbol. It looks - like it could be a simple geometric shape, possibly a star or asterisk-like - mark in light gray or white color against a white or light background. Due - to the small size and low resolution, it''s difficult to determine the exact - details or purpose of this icon with certainty."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":17,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":78,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 19:06:11 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13v7DCerhqtvL5NSkza","type":"message","role":"assistant","content":[{"type":"text","text":"This + image appears to be mostly blank or white with just a very small pink or light-colored + dot or mark visible in the upper left portion. There isn''t much substantial + content to describe. It could be a nearly empty document, a loading image, + or possibly an image that failed to load properly."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":17,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":63,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:04:45 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_url_bare.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_url_bare.yml index eee8d736..2fe43230 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_url_bare.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_url_bare.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"What''s - in this image?"},{"type":"image","source":{"type":"url","url":"https://framerusercontent.com/images/oEx786EYW2ZVL4Xf9hparOVLjHI.png?scale-down-to=64"}}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"type":"url","url":"https://framerusercontent.com/images/oEx786EYW2ZVL4Xf9hparOVLjHI.png?scale-down-to=64"},"type":"image"}],"role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 05:56:40 GMT + - Tue, 14 Jul 2026 01:05:28 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,54 +54,56 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T05:56:38Z' + - '2026-07-14T01:05:27Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T05:56:40Z' + - '2026-07-14T01:05:28Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T05:56:38Z' + - '2026-07-14T01:05:26Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T05:56:38Z' + - '2026-07-14T01:05:27Z' Request-Id: - - req_011CUHwCbPZgtqeTTB4tNMM8 + - req_011Cd13yDJPubbnixpUA8zoU Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2866' - Via: - - 1.1 google + Traceresponse: + - 00-49a2a5305d72e489615fb60b630f33ff-87589086a66afe6d-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 991645e52b3e67bf-SJC + - a1ac9e7b387dc65e-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_0131tDwcW2BweHqvtwwQSGse","type":"message","role":"assistant","content":[{"type":"text","text":"This - image shows the logo for **Active Agents**. It features the text \"ACTIVE - AGENTS\" in a bold, modern font, accompanied by a red circular icon or symbol - to the left of the text. The design appears to be a professional branding - element, likely used for a company, organization, or service related to real - estate, business services, or similar professional sectors."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":81,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 05:56:40 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13yDsscyMtpuMnrH2xP","type":"message","role":"assistant","content":[{"type":"text","text":"This + image shows the logo for \"Active Agents.\" It features the text \"ACTIVE + AGENTS\" in a clean, modern sans-serif font, with a red square icon containing + a white stylized figure or symbol to the left of the text. The logo uses a + simple color scheme of red and black/dark text on a white background, giving + it a professional and contemporary appearance."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":81,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:28 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_url_message.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_url_message.yml index 79821d96..01616757 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_url_message.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_url_message.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"What''s - in this image?"},{"type":"image","source":{"type":"url","url":"https://framerusercontent.com/images/oEx786EYW2ZVL4Xf9hparOVLjHI.png?scale-down-to=64"}}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"type":"url","url":"https://framerusercontent.com/images/oEx786EYW2ZVL4Xf9hparOVLjHI.png?scale-down-to=64"},"type":"image"}],"role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 05:56:44 GMT + - Tue, 14 Jul 2026 01:04:40 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,55 +54,55 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T05:56:43Z' + - '2026-07-14T01:04:39Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T05:56:45Z' + - '2026-07-14T01:04:40Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T05:56:44Z' + - '2026-07-14T01:04:38Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T05:56:43Z' + - '2026-07-14T01:04:39Z' Request-Id: - - req_011CUHwCznV2on5kjrGXSkeQ + - req_011Cd13uhShxWg2w87CNyqBa Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1838' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-f82c13c11930e9ee9e6d795adf62d113-91f331da1e7fe359-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 991646074d99963f-SJC + - a1ac9d511a76eb21-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01DHMH4m7EHD7GAiYGdKZ69d","type":"message","role":"assistant","content":[{"type":"text","text":"This - image shows the **Active Agents** logo, which appears to be a text-based logo - with a red circular icon on the left side. The logo uses a clean, professional - font and is commonly associated with software or technology services, though - without additional context, I cannot specify exactly what Active Agents does. - The design is simple and straightforward, suitable for corporate branding - purposes."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":81,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 05:56:44 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13uiBcCgmzWUk5rgZHc","type":"message","role":"assistant","content":[{"type":"text","text":"This + image shows the logo for **Active Agents**. It features the text \"ACTIVE + AGENTS\" in a bold, modern font, with a red square icon containing a stylized + \"A\" symbol to the left of the text. The design uses a minimalist style with + a red and black color scheme."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":67,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:04:40 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_url_messages.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_url_messages.yml index 5ffe2f6f..a73befeb 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_url_messages.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_image_url_messages.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"What''s - in this image?"},{"type":"image","source":{"type":"url","url":"https://framerusercontent.com/images/oEx786EYW2ZVL4Xf9hparOVLjHI.png?scale-down-to=64"}}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"type":"url","url":"https://framerusercontent.com/images/oEx786EYW2ZVL4Xf9hparOVLjHI.png?scale-down-to=64"},"type":"image"}],"role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 05:56:42 GMT + - Tue, 14 Jul 2026 01:04:51 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,55 +54,55 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T05:56:41Z' + - '2026-07-14T01:04:50Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T05:56:43Z' + - '2026-07-14T01:04:50Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T05:56:41Z' + - '2026-07-14T01:04:49Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T05:56:41Z' + - '2026-07-14T01:04:50Z' Request-Id: - - req_011CUHwCpMvPC8fUFPk6Ay1B + - req_011Cd13vWmHqrcqDDhnYLBtr Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2273' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-dc6592768083f97d69f0097c72590b4e-9ff6c0dc4fcb5c25-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 991645f80a4f15b4-SJC + - a1ac9d966e03ed40-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01Gs4n22LiCQ5ycE6CfbiMG2","type":"message","role":"assistant","content":[{"type":"text","text":"# - Active Agents Logo\n\nThis image shows the \"ACTIVE AGENTS\" logo, which features:\n\n- - **Text**: The words \"ACTIVE AGENTS\" in dark blue/navy color\n- **Icon**: - A red circular symbol or badge to the left of the text, which appears to be - a stylized design element\n\nThis appears to be a company or organization - logo, though without additional context, I cannot specify what particular - organization or service this represents."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":97,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 05:56:42 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13vXSiuWJeguK1mY2Rz","type":"message","role":"assistant","content":[{"type":"text","text":"This + image shows the **Active Agents** logo, which appears to be a text-based logo + with a red/dark red icon or symbol to the left of the words \"ACTIVE AGENTS\" + in black text. The design is simple and professional, commonly used for branding + purposes."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":62,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:04:51 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_templates_default.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_templates_default.yml index 2789599b..e34ffd3e 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_templates_default.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_templates_default.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":"What - is the capital of France?"}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + is the capital of France?","role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Tue, 21 Oct 2025 22:52:21 GMT + - Tue, 14 Jul 2026 01:04:58 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,50 +54,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-21T22:52:20Z' + - '2026-07-14T01:04:58Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-21T22:52:21Z' + - '2026-07-14T01:04:58Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-21T22:52:22Z' + - '2026-07-14T01:04:58Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-21T22:52:20Z' + - '2026-07-14T01:04:58Z' Request-Id: - - req_011CUMATuuEydQorXRk5LieC + - req_011Cd13w8swJrqq5kiKn1t4P Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '905' - Via: - - 1.1 google + Traceresponse: + - 00-abe4a5861ba44da01a8efb84117f9349-ce8fc17abf50623f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 99245325ba3915b4-SJC + - a1ac9dcb3c984e35-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_017gMCauBRyzMNZiN1jecf3Z","type":"message","role":"assistant","content":[{"type":"text","text":"The - capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard"}}' - recorded_at: Tue, 21 Oct 2025 22:52:21 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13w9E2VkdmpnrGYbEg8","type":"message","role":"assistant","content":[{"type":"text","text":"The + capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:04:58 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_templates_with_locals.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_templates_with_locals.yml index 85988483..8ae14c8c 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_templates_with_locals.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_templates_with_locals.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":"Tell - me about Japan and its capital city Tokyo."}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Tell + me about Japan and its capital city Tokyo.","role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Tue, 21 Oct 2025 22:52:53 GMT + - Tue, 14 Jul 2026 01:04:54 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,68 +54,70 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-21T22:52:50Z' + - '2026-07-14T01:04:51Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-21T22:52:55Z' + - '2026-07-14T01:04:54Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-21T22:52:51Z' + - '2026-07-14T01:04:51Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-21T22:52:50Z' + - '2026-07-14T01:04:51Z' Request-Id: - - req_011CUMAW3oobqZ1LqFdzYFN9 + - req_011Cd13vd5JhdpMHkMuzPqSx Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '4007' - Via: - - 1.1 google + Traceresponse: + - 00-795ef861836c3d37c42688f9faf2c306-09ebb18587f20460-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 992453daed566802-SJC + - a1ac9d9f9ae1fa1e-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01C8i9CozKc31eYJHcNepreW","type":"message","role":"assistant","content":[{"type":"text","text":"# - Japan and Tokyo\n\n## Japan Overview\nJapan is an island nation in East Asia - consisting of four main islands: Honshu, Hokkaido, Kyushu, and Shikoku. With - about 125 million people, it''s one of the world''s most densely populated - countries. Japan is known for blending ancient traditions with cutting-edge - technology.\n\n**Key characteristics:**\n- Rich cultural heritage (temples, - tea ceremonies, martial arts)\n- Economic powerhouse with major tech and automotive - industries\n- Famous for cuisine, anime, and manga\n- Mountainous terrain - with frequent earthquakes\n\n## Tokyo\n\nTokyo is Japan''s capital and largest - city, located on the eastern coast on Honshu island.\n\n**Population & Size:**\n- - About 14 million people in the city proper\n- Over 37 million in the greater - metropolitan area (one of the world''s largest)\n\n**Notable Features:**\n- - **Shinjuku & Shibuya**: Famous bustling districts known for shopping and nightlife\n- - **Traditional areas**: Asakusa with its historic temples\n- **Modern landmarks**: - Tokyo Tower, Tokyo Skytree\n- **Efficient transit**: Extensive subway and - train network\n- **Food scene**: Michelin-starred restaurants alongside street - food\n\n**Role:**\nTokyo is the political, economic, and cultural center of - Japan, hosting the government, major corporations, and countless cultural - institutions.\n\nWould you like to know more about any specific aspect of - Japan or Tokyo?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":17,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":325,"service_tier":"standard"}}' - recorded_at: Tue, 21 Oct 2025 22:52:53 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13vdHCo1ZnA9re3fMy6","type":"message","role":"assistant","content":[{"type":"text","text":"# + Japan and Tokyo\n\n## Japan Overview\n\nJapan is an island nation in East + Asia, consisting of four main islands: Honshu, Hokkaido, Kyushu, and Shikoku. + With a population of about 125 million, it''s one of the world''s most developed + economies.\n\n**Key characteristics:**\n- Known for blending tradition with + cutting-edge technology\n- Rich cultural heritage including tea ceremonies, + martial arts, and traditional arts\n- Mountainous terrain with Mount Fuji + as the iconic peak\n- Prone to earthquakes due to its location on the Pacific + Ring of Fire\n\n## Tokyo\n\nTokyo is Japan''s capital and largest city, home + to around 14 million people (37 million in the metro area).\n\n**Notable features:**\n- + **Economy**: A global financial hub with major corporations and stock exchange\n- + **Districts**: Shibuya (youth culture), Shinjuku (entertainment), Ginza (luxury + shopping)\n- **Landmarks**: Tokyo Tower, Senso-ji Temple, Imperial Palace, + Meiji Shrine\n- **Technology**: Known for innovation, robotics, and cutting-edge + architecture\n- **Transportation**: Extensive, efficient public transit system\n- + **Culture**: World-class museums, restaurants, and entertainment\n\n**Characteristics:**\n- + Extremely organized and clean\n- Excellent public safety\n- Blend of ultra-modern + skyscrapers and historic temples\n- Known for its vibrant nightlife and unique + neighborhoods\n\nTokyo represents the modern face of Japan while preserving + deep cultural traditions."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":17,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":337,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:04:54 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_bare.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_bare.yml index bcf5dd77..c2ff795f 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_bare.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_bare.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":"What - is the capital of France?"}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + is the capital of France?","role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 19:06:54 GMT + - Tue, 14 Jul 2026 01:05:09 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,50 +54,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T19:06:54Z' + - '2026-07-14T01:05:09Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T19:06:55Z' + - '2026-07-14T01:05:09Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T19:06:55Z' + - '2026-07-14T01:05:09Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T19:06:54Z' + - '2026-07-14T01:05:09Z' Request-Id: - - req_011CUJyTskUHH3GqfvFheyDs + - req_011Cd13wxrxeeTQPYGBktYPR Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '780' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-cb5c5f1dd80062cfea28d6c0f8e2a13b-38e8b02c93a5f732-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 991acb86fcd0cf45-SJC + - a1ac9e109c029100-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01MnExji6G3fYWRuh2ZXjwFq","type":"message","role":"assistant","content":[{"type":"text","text":"The - capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 19:06:54 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13wymXtbDJPLBq7Ekao","type":"message","role":"assistant","content":[{"type":"text","text":"The + capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:09 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_message_bare.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_message_bare.yml index a75a92e1..5eb9b14e 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_message_bare.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_message_bare.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":"Explain - quantum computing in bare terms."}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Explain + quantum computing in bare terms.","role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 19:06:53 GMT + - Tue, 14 Jul 2026 01:05:13 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,50 +54,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T19:06:50Z' + - '2026-07-14T01:05:11Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T19:06:55Z' + - '2026-07-14T01:05:13Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T19:06:50Z' + - '2026-07-14T01:05:10Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T19:06:50Z' + - '2026-07-14T01:05:11Z' Request-Id: - - req_011CUJyTZ2qYQPeuhVTqYNz2 + - req_011Cd13x1wkC1RchovDfqky5 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '4215' - Via: - - 1.1 google + Traceresponse: + - 00-f5ddcfe1e3d8881dc8d7b100c1cb38fb-013009cac35dc04f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 991acb6b780722ba-SJC + - a1ac9e15bbd9df0a-SJC body: encoding: ASCII-8BIT string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMVJKM1ZxQkgzRzZvUjhud2doQjlrMnYiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIFF1YW50dW0gQ29tcHV0aW5nIEJhc2ljc1xuXG4jIyBOb3JtYWwgY29tcHV0ZXJzXG5Vc2UgKipiaXRzKio6IGVpdGhlciAwIG9yIDEuIEFsbCBjYWxjdWxhdGlvbnMgYnVpbGQgZnJvbSB0aGVzZSBvbi9vZmYgc3dpdGNoZXMuXG5cbiMjIFF1YW50dW0gY29tcHV0ZXJzXG5Vc2UgKipxdWJpdHMqKjogY2FuIGJlIDAsIDEsIG9yICpib3RoIGF0IHRoZSBzYW1lIHRpbWUqIChjYWxsZWQgKipzdXBlcnBvc2l0aW9uKiopLlxuXG5UaGlzIGlzIHRoZSBrZXkgZGlmZmVyZW5jZeKAlGEgcXViaXQgY2FuIGV4cGxvcmUgbXVsdGlwbGUgcG9zc2liaWxpdGllcyBzaW11bHRhbmVvdXNseS5cblxuIyMgV2h5IGl0IG1hdHRlcnNcblxuKipSZWd1bGFyIGNvbXB1dGVyIHNvbHZpbmcgYSBtYXplOioqXG4tIFRyaWVzIG9uZSBwYXRoLCBiYWNrdHJhY2tzLCB0cmllcyBhbm90aGVyIHBhdGgsIGJhY2t0cmFja3MuLi5cbi0gVGFrZXMgbWFueSBzdGVwc1xuXG4qKlF1YW50dW0gY29tcHV0ZXIgc29sdmluZyBhIG1hemU6Kipcbi0gRXhwbG9yZXMgYWxsIHBhdGhzIGF0IG9uY2Vcbi0gTXVjaCBmYXN0ZXIgZm9yIGNlcnRhaW4gcHJvYmxlbXNcblxuIyMgVGhlIGNhdGNoXG5cbi0gKipGcmFnaWxlKio6IHF1Yml0cyBicmVhayBlYXNpbHkgaWYgZGlzdHVyYmVkICh0aGV5J3JlIHVzdWFsbHkgYXRvbXMgb3IgcGhvdG9ucyBhdCBuZWFyIGFic29sdXRlLXplcm8gdGVtcGVyYXR1cmVzKVxuLSAqKk5vdCB1bml2ZXJzYWxseSBiZXR0ZXIqKjogb25seSBmYXN0ZXIgZm9yIHNwZWNpZmljIHR5cGVzIG9mIHByb2JsZW1zIChmYWN0b3JpbmcgbGFyZ2UgbnVtYmVycywgc2ltdWxhdGluZyBtb2xlY3VsZXMsIG9wdGltaXphdGlvbilcbi0gKipTdGlsbCBlYXJseSoqOiBjdXJyZW50IHF1YW50dW0gY29tcHV0ZXJzIGFyZSBleHBlcmltZW50YWwgYW5kIGVycm9yLXByb25lXG5cbiMjIFRoZSBzaW1wbGVzdCB3YXkgdG8gdGhpbmsgb2YgaXRcblxuQSByZWd1bGFyIGNvbXB1dGVyIGlzIGxpa2UgY2hlY2tpbmcgYm94ZXMgb24gYSBmb3JtIG9uZSBhdCBhIHRpbWUuIEEgcXVhbnR1bSBjb21wdXRlciBpcyBsaWtlIGNoZWNraW5nIG11bHRpcGxlIGJveGVzIHNpbXVsdGFuZW91c2x54oCUdGhlbiB3aGVuIHlvdSBsb29rLCBpdCBcImNvbGxhcHNlc1wiIGludG8gdGhlIHJpZ2h0IGFuc3dlci4ifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjE1LCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6Mjc2LCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCJ9fQ== - recorded_at: Mon, 20 Oct 2025 19:06:53 GMT -recorded_with: VCR 6.3.1 + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDZDEzeDN2SzFoQ3NXYVRvMmhiTmIiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIFF1YW50dW0gQ29tcHV0aW5nOiBUaGUgQmFzaWNzXG5cbiMjIFJlZ3VsYXIgY29tcHV0ZXJzIHVzZSAqKmJpdHMqKlxuLSBFYWNoIGJpdCBpcyBlaXRoZXIgMCBvciAxXG4tIEV2ZXJ5dGhpbmcgYnJlYWtzIGRvd24gaW50byB0aGVzZSBiaW5hcnkgY2hvaWNlc1xuXG4jIyBRdWFudHVtIGNvbXB1dGVycyB1c2UgKipxdWJpdHMqKlxuLSBBIHF1Yml0IGNhbiBiZSAwLCAxLCBvciAqYm90aCBhdCB0aGUgc2FtZSB0aW1lKiAoc3VwZXJwb3NpdGlvbilcbi0gVGhpcyBpcyB0aGUga2V5IGRpZmZlcmVuY2VcblxuIyMgV2h5IGl0IG1hdHRlcnNcbkJlY2F1c2UgcXViaXRzIGNhbiBleGlzdCBpbiBtdWx0aXBsZSBzdGF0ZXMgc2ltdWx0YW5lb3VzbHksIGEgcXVhbnR1bSBjb21wdXRlciBjYW4gZXhwbG9yZSBtYW55IHBvc3NpYmlsaXRpZXMgYXQgb25jZSwgcmF0aGVyIHRoYW4gY2hlY2tpbmcgdGhlbSBvbmUgYnkgb25lLlxuXG4qKlNpbXBsZSBhbmFsb2d5OioqIFxuLSBSZWd1bGFyIGNvbXB1dGVyOiBjaGVja2luZyBldmVyeSBkb29yIGluIGEgaGFsbHdheSBvbmUgYXQgYSB0aW1lXG4tIFF1YW50dW0gY29tcHV0ZXI6IGNoZWNraW5nIGFsbCBkb29ycyBzaW11bHRhbmVvdXNseVxuXG4jIyBUaGUgY2F0Y2hcbi0gUXViaXRzIGFyZSBmcmFnaWxlIGFuZCBuZWVkIGV4dHJlbWUgY29uZGl0aW9ucyAobmVhciBhYnNvbHV0ZSB6ZXJvKVxuLSBXaGVuIHlvdSBtZWFzdXJlIGEgcXViaXQsIGl0IFwiY29sbGFwc2VzXCIgaW50byAwIG9yIDHigJR5b3UgbG9zZSB0aGUgc3VwZXJwb3NpdGlvblxuLSBRdWFudHVtIGNvbXB1dGVycyBhcmUgb25seSBiZXR0ZXIgZm9yICpzcGVjaWZpYyBwcm9ibGVtcyogKGVuY3J5cHRpb24sIG1vbGVjdWxhciBzaW11bGF0aW9uLCBvcHRpbWl6YXRpb24pLCBub3QgZXZlcnl0aGluZ1xuXG4jIyBCb3R0b20gbGluZVxuUXVhbnR1bSBjb21wdXRlcnMgZXhwbG9pdCB3ZWlyZCBwaHlzaWNzIHRvIHNvbHZlIGNlcnRhaW4gaGFyZCBwcm9ibGVtcyBmYXN0ZXIuIFRoZXkncmUgbm90IGp1c3QgXCJmYXN0ZXIgY29tcHV0ZXJzXCLigJR0aGV5IHdvcmsgZnVuZGFtZW50YWxseSBkaWZmZXJlbnRseS4ifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6MTUsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjoyNTcsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Im5vdF9hdmFpbGFibGUifX0= + recorded_at: Tue, 14 Jul 2026 01:05:13 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_message_object.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_message_object.yml index 4afbdb68..960bb2d0 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_message_object.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_message_object.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":"What - are the main differences between Ruby and Python?"}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What + are the main differences between Ruby and Python?","role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 19:06:59 GMT + - Tue, 14 Jul 2026 01:04:57 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,50 +54,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T19:06:56Z' + - '2026-07-14T01:04:54Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T19:07:01Z' + - '2026-07-14T01:04:57Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '48' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T19:06:56Z' + - '2026-07-14T01:04:54Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T19:06:56Z' + - '2026-07-14T01:04:54Z' Request-Id: - - req_011CUJyTwkaMggJ7nJ7CSpk1 + - req_011Cd13vseuELx7wcWj1R5h2 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '4401' - Via: - - 1.1 google + Traceresponse: + - 00-d7b363faec19733cc57e2db3fc2d8b8b-75484aa7f847f90c-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 991acb8cd982ed35-SJC + - a1ac9db4ef3a7b82-SJC body: encoding: ASCII-8BIT string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTVzQkpQWFhnSm5LQ0s0TFpVczE0ZHkiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIE1haW4gRGlmZmVyZW5jZXMgQmV0d2VlbiBSdWJ5IGFuZCBQeXRob25cblxuIyMgKipQaGlsb3NvcGh5ICYgRGVzaWduKipcbi0gKipQeXRob24qKjogXCJUaGVyZSBzaG91bGQgYmUgb25l4oCUYW5kIHByZWZlcmFibHkgb25seSBvbmXigJRvYnZpb3VzIHdheSB0byBkbyBpdFwiIChleHBsaWNpdCBpcyBiZXR0ZXIgdGhhbiBpbXBsaWNpdClcbi0gKipSdWJ5Kio6IFwiVGhlcmUgc2hvdWxkIGJlIG1hbnkgd2F5cyB0byBkbyBpdFwiIChtb3JlIGZsZXhpYmxlLCBtdWx0aXBsZSBhcHByb2FjaGVzIGVuY291cmFnZWQpXG5cbiMjICoqU3ludGF4ICYgUmVhZGFiaWxpdHkqKlxuLSAqKlB5dGhvbioqOiBFbmZvcmNlcyBpbmRlbnRhdGlvbiBhcyBwYXJ0IG9mIHN5bnRheDsgY2xlYW5lciwgbW9yZSB1bmlmb3JtIHN0eWxlXG4tICoqUnVieSoqOiBNb3JlIGZsZXhpYmxlIHN5bnRheDsgc2VtaWNvbG9ucy9wYXJlbnRoZXNlcyBvZnRlbiBvcHRpb25hbDsgZmVlbHMgbW9yZSBsaWtlIEVuZ2xpc2hcblxuIyMgKipQZXJmb3JtYW5jZSoqXG4tICoqUHl0aG9uKio6IEdlbmVyYWxseSBmYXN0ZXIgZm9yIG51bWVyaWNhbC9zY2llbnRpZmljIGNvbXB1dGluZzsgYmV0dGVyIEMgaW50ZWdyYXRpb25cbi0gKipSdWJ5Kio6IFNsaWdodGx5IHNsb3dlcjsgYmV0dGVyIGZvciByYXBpZCBkZXZlbG9wbWVudCB0aGFuIHJhdyBwZXJmb3JtYW5jZVxuXG4jIyAqKlVzZSBDYXNlcyoqXG4tICoqUHl0aG9uKio6IERhdGEgc2NpZW5jZSwgQUkvTUwsIHdlYiBkZXZlbG9wbWVudCwgYXV0b21hdGlvbiwgc2NpZW50aWZpYyBjb21wdXRpbmdcbi0gKipSdWJ5Kio6IFdlYiBkZXZlbG9wbWVudCAoUmFpbHMpLCBzY3JpcHRpbmcsIHJhcGlkIHByb3RvdHlwaW5nXG5cbiMjICoqV2ViIEZyYW1ld29ya3MqKlxuLSAqKlB5dGhvbioqOiBEamFuZ28sIEZsYXNrIChsaWdodHdlaWdodClcbi0gKipSdWJ5Kio6IFJhaWxzIChvcGluaW9uYXRlZCwgYmF0dGVyaWVzLWluY2x1ZGVkKVxuXG4jIyAqKkNvbW11bml0eSAmIEVjb3N5c3RlbSoqXG4tICoqUHl0aG9uKio6IExhcmdlciBvdmVyYWxsIGNvbW11bml0eTsgZG9taW5hbnQgaW4gZGF0YSBzY2llbmNlOyBOdW1QeSwgUGFuZGFzLCBUZW5zb3JGbG93XG4tICoqUnVieSoqOiBTbWFsbGVyIGJ1dCBwYXNzaW9uYXRlIGNvbW11bml0eTsgc3Ryb25nIHdlYiBkZXZlbG9wbWVudCBmb2N1c1xuXG4jIyAqKkxlYXJuaW5nIEN1cnZlKipcbi0gKipQeXRob24qKjogQmVnaW5uZXItZnJpZW5kbHksIG1vcmUgaW50dWl0aXZlIHN5bnRheFxuLSAqKlJ1YnkqKjogTW9yZSBmbGV4aWJsZSBidXQgc29tZXRpbWVzIGhhcmRlciB0byBmb2xsb3cgb3RoZXJzJyBjb2RlXG5cbiMjICoqS2V5IFRha2Vhd2F5KipcbkNob29zZSAqKlB5dGhvbioqIGZvciBkYXRhIHNjaWVuY2UvTUwsICoqUnVieSoqIGZvciB3ZWIgZGV2ZWxvcG1lbnQgc3BlZWQuIEJvdGggYXJlIGV4Y2VsbGVudCBnZW5lcmFsLXB1cnBvc2UgbGFuZ3VhZ2VzLiJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6MTcsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjozNTcsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIn19 - recorded_at: Mon, 20 Oct 2025 19:06:59 GMT -recorded_with: VCR 6.3.1 + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDZDEzdnN0WUdlbUhva2pjYnI1VmkiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIE1haW4gRGlmZmVyZW5jZXMgQmV0d2VlbiBSdWJ5IGFuZCBQeXRob25cblxuIyMgUGhpbG9zb3BoeSAmIERlc2lnblxuLSAqKlB5dGhvbioqOiBcIlRoZXJlIHNob3VsZCBiZSBvbmUgb2J2aW91cyB3YXkgdG8gZG8gaXRcIiAoZXhwbGljaXQsIHJlYWRhYmxlKVxuLSAqKlJ1YnkqKjogXCJNb3JlIHRoYW4gb25lIHdheSB0byBkbyBpdFwiIChmbGV4aWJsZSwgZXhwcmVzc2l2ZSlcblxuIyMgU3ludGF4XG4tICoqUHl0aG9uKio6IE1pbmltYWwsIGNsZWFuIHN5bnRheDsgcmVhZGFiaWxpdHkgcHJpb3JpdGl6ZWRcbi0gKipSdWJ5Kio6IE1vcmUgc3ludGFjdGljIHN1Z2FyOyBhbGxvd3MgbXVsdGlwbGUgc3ludGF4IHN0eWxlc1xuXG5gYGBweXRob25cbiMgUHl0aG9uIC0gZXhwbGljaXRcbnJlc3VsdCA9IFt4ICogMiBmb3IgeCBpbiByYW5nZSg1KV1cbmBgYFxuXG5gYGBydWJ5XG4jIFJ1YnkgLSBmbGV4aWJsZVxucmVzdWx0ID0gKDAuLi41KS5tYXAgeyB8eHwgeCAqIDIgfVxuYGBgXG5cbiMjIFBlcmZvcm1hbmNlXG4tICoqUHl0aG9uKio6IEdlbmVyYWxseSBmYXN0ZXIgZm9yIENQVS1pbnRlbnNpdmUgdGFza3Ncbi0gKipSdWJ5Kio6IFNsb3dlciBleGVjdXRpb24sIGJ1dCBnb29kIGVub3VnaCBmb3IgbW9zdCB3ZWIgYXBwc1xuXG4jIyBQcmltYXJ5IFVzZSBDYXNlc1xuLSAqKlB5dGhvbioqOiBEYXRhIHNjaWVuY2UsIEFJL01MLCBzY3JpcHRpbmcsIHdlYiBhcHBzLCBhdXRvbWF0aW9uXG4tICoqUnVieSoqOiBXZWIgZGV2ZWxvcG1lbnQgKGVzcGVjaWFsbHkgUmFpbHMpLCByYXBpZCBwcm90b3R5cGluZ1xuXG4jIyBGcmFtZXdvcmtzXG4tICoqUHl0aG9uKio6IERqYW5nbywgRmxhc2ssIEZhc3RBUElcbi0gKipSdWJ5Kio6IFJ1Ynkgb24gUmFpbHMsIFNpbmF0cmFcblxuIyMgTGVhcm5pbmcgQ3VydmVcbi0gKipQeXRob24qKjogRWFzaWVyIGZvciBiZWdpbm5lcnM7IGNsb3NlciB0byBuYXR1cmFsIGxhbmd1YWdlXG4tICoqUnVieSoqOiBTdGVlcGVyIGxlYXJuaW5nIGN1cnZlOyBtb3JlIGltcGxpY2l0IGJlaGF2aW9yXG5cbiMjIEZsZXhpYmlsaXR5XG4tICoqUHl0aG9uKio6IExlc3MgZmxleGlibGUsIGVuZm9yY2VzIGNvbnZlbnRpb25zIChlLmcuLCBpbmRlbnRhdGlvbiByZXF1aXJlZClcbi0gKipSdWJ5Kio6IEhpZ2hseSBmbGV4aWJsZSwgZmV3ZXIgcmlnaWQgcnVsZXNcblxuIyMgQ29tbXVuaXR5ICYgRWNvc3lzdGVtXG4tICoqUHl0aG9uKio6IExhcmdlciBvdmVyYWxsIGNvbW11bml0eTsgZG9taW5hbnQgaW4gZGF0YSBzY2llbmNlXG4tICoqUnVieSoqOiBTbWFsbGVyIGJ1dCB0aWdodCBjb21tdW5pdHk7IHZlcnkgYWN0aXZlIGluIHdlYiBkZXZcblxuQm90aCBhcmUgZXhjZWxsZW50IGNob2ljZXPigJRwaWNrIFB5dGhvbiBmb3IgZGF0YS9NTCwgUnVieSBmb3Igd2ViIGRldmVsb3BtZW50IHNwZWVkLiJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInN0b3BfZGV0YWlscyI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjoxNywiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfY3JlYXRpb24iOnsiZXBoZW1lcmFsXzVtX2lucHV0X3Rva2VucyI6MCwiZXBoZW1lcmFsXzFoX2lucHV0X3Rva2VucyI6MH0sIm91dHB1dF90b2tlbnMiOjM2Nywic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoibm90X2F2YWlsYWJsZSJ9fQ== + recorded_at: Tue, 14 Jul 2026 01:04:57 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_messages_bare.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_messages_bare.yml index f566d87d..d73ee447 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_messages_bare.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_messages_bare.yml @@ -5,16 +5,16 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"Tell - me a fun fact about Ruby programming."},{"type":"text","text":"Now explain - why that''s interesting."}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"Tell + me a fun fact about Ruby programming.","type":"text"},{"text":"Now explain + why that''s interesting.","type":"text"}],"role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -47,7 +47,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 19:07:08 GMT + - Tue, 14 Jul 2026 01:05:22 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,50 +55,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T19:07:04Z' + - '2026-07-14T01:05:19Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T19:07:09Z' + - '2026-07-14T01:05:22Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T19:07:04Z' + - '2026-07-14T01:05:18Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T19:07:04Z' + - '2026-07-14T01:05:19Z' Request-Id: - - req_011CUJyUbb9v8YUAwyssAgDn + - req_011Cd13xbYLa8qozu8Jm1aKx Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '4262' - Via: - - 1.1 google + Traceresponse: + - 00-b75c026add672ac073c3110ddb413ca3-5c0429ce7a8245f4-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 991acbc3cd12cfed-SJC + - a1ac9e461bbfce64-SJC body: encoding: ASCII-8BIT string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFkcDRWaWhXRjdETjZkNnJTb1YxN1oiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIEZ1biBGYWN0OiBFdmVyeXRoaW5nIGluIFJ1YnkgaXMgYW4gT2JqZWN0XG5cbkV2ZW4gbnVtYmVycywgc3RyaW5ncywgYW5kIGBuaWxgIGFyZSBvYmplY3RzIHdpdGggbWV0aG9kcyB5b3UgY2FuIGNhbGwgb24gdGhlbS5cblxuYGBgcnVieVxuNS50aW1lcyB7IHB1dHMgXCJIZWxsbyFcIiB9ICAgICAgICAgICAjIENhbGwgYSBtZXRob2Qgb24gYW4gaW50ZWdlclxuXCJSdWJ5XCIudXBjYXNlICAgICAgICAgICAgICAgICAgICAgICAjIENhbGwgYSBtZXRob2Qgb24gYSBzdHJpbmdcbnRydWUuY2xhc3MgICAgICAgICAgICAgICAgICAgICAgICAgICMgPT4gVHJ1ZUNsYXNzXG5gYGBcblxuIyMgV2h5IFRoYXQncyBJbnRlcmVzdGluZ1xuXG5UaGlzIGNyZWF0ZXMgYSAqKnJlbWFya2FibHkgY29uc2lzdGVudCBtZW50YWwgbW9kZWwqKi4gSW5zdGVhZCBvZiBoYXZpbmcgbnVtYmVycyBhbmQgc3RyaW5ncyBhcyBcInNwZWNpYWwgcHJpbWl0aXZlc1wiIChsaWtlIGluIG1hbnkgbGFuZ3VhZ2VzKSwgUnVieSB0cmVhdHMgZXZlcnl0aGluZyB1bmlmb3JtbHkuIFRoaXMgbWVhbnM6XG5cbjEuICoqTm8gd2VpcmQgZWRnZSBjYXNlcyoqIOKAlCBZb3UgZG9uJ3QgaGF2ZSB0byByZW1lbWJlciBcIm51bWJlcnMgd29yayB0aGlzIHdheSwgYnV0IHN0cmluZ3Mgd29yayB0aGF0IHdheS5cIiBUaGUgcnVsZXMgYXJlIHRoZSBzYW1lLlxuXG4yLiAqKlBvd2VyZnVsIGZsZXhpYmlsaXR5Kiog4oCUIFlvdSBjYW4gYWRkIGN1c3RvbSBtZXRob2RzIHRvIGJ1aWx0LWluIGNsYXNzZXM6XG5gYGBydWJ5XG5jbGFzcyBJbnRlZ2VyXG4gIGRlZiBzaG91dFxuICAgIFwiI3tzZWxmfSEhIVwiXG4gIGVuZFxuZW5kXG5cbjQyLnNob3V0ICAjID0+IFwiNDIhISFcIlxuYGBgXG5cbjMuICoqRWxlZ2FudCBjb2RlKiog4oCUIEl0IGZlZWxzIG5hdHVyYWwgdG8gd3JpdGUgYDUudGltZXNgIHJhdGhlciB0aGFuIGBmb3IgaSBpbiByYW5nZSg1KWAuIFRoZSB2ZXJiIChtZXRob2QpIGlzIGF0dGFjaGVkIHRvIHRoZSB0aGluZyBpdCBhY3RzIG9uLlxuXG5UaGlzIGRlc2lnbiBwaGlsb3NvcGh5IGlzIHdoeSBSdWJ5IGNvZGUgb2Z0ZW4gcmVhZHMgbGlrZSBzZW50ZW5jZXPigJRpdCdzIHdoeSB0aGUgbGFuZ3VhZ2UgZmVlbHMgc28gKmV4cHJlc3NpdmUqIGNvbXBhcmVkIHRvIG1vcmUgcmlnaWQgbGFuZ3VhZ2VzLiJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6MjMsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjoyOTYsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIn19 - recorded_at: Mon, 20 Oct 2025 19:07:08 GMT -recorded_with: VCR 6.3.1 + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDZDEzeGdYRTE4aGs3bTVuY3FNR3QiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIEZ1biBGYWN0OiBSdWJ5IHJlYWRzIGxpa2UgRW5nbGlzaFxuXG5Zb3UgY2FuIHdyaXRlIFJ1YnkgY29kZSB0aGF0IHJlYWRzIGFsbW9zdCBsaWtlIG5hdHVyYWwgRW5nbGlzaCBzZW50ZW5jZXM6XG5cbmBgYHJ1YnlcbjUudGltZXMgeyBwdXRzIFwiSGVsbG8hXCIgfVxuWzEsIDIsIDNdLmVhY2ggeyB8bnwgcHV0cyBuIH1cblwiaGVsbG9cIi51cGNhc2VcbmBgYFxuXG4jIyBXaHkgVGhhdCdzIEludGVyZXN0aW5nXG5cbioqTG93ZXIgY29nbml0aXZlIGxvYWQ6KiogWW91ciBicmFpbiBkb2Vzbid0IGhhdmUgdG8gdHJhbnNsYXRlIHN5bnRheCBpbnRvIG1lYW5pbmfigJR0aGUgY29kZSAqaXMqIHRoZSBtZWFuaW5nLiBUaGlzIHJlZHVjZXMgbWVudGFsIGZyaWN0aW9uIGFuZCBtYWtlcyBwcm9ncmFtbWluZyBmZWVsIGxlc3MgbGlrZSBkZWNvZGluZy5cblxuKipBY2Nlc3NpYmlsaXR5OioqIEJlZ2lubmVycyBhbmQgbm9uLXByb2dyYW1tZXJzIGNhbiBvZnRlbiB1bmRlcnN0YW5kIFJ1YnkgY29kZSB3aXRob3V0IGZvcm1hbCB0cmFpbmluZywgbG93ZXJpbmcgdGhlIGJhcnJpZXIgdG8gZW50cnkuXG5cbioqRXhwcmVzc2l2ZW5lc3M6KiogWW91IGNhbiB3cml0ZSAqZmV3ZXIgY2hhcmFjdGVycyogd2hpbGUgc2F5aW5nICptb3JlIGNsZWFybHkqLiBDb21wYXJlIFJ1YnkncyBgNS50aW1lcyB7IHB1dHMgXCJ4XCIgfWAgdG8gdmVyYm9zZSBhbHRlcm5hdGl2ZXMgaW4gb3RoZXIgbGFuZ3VhZ2VzLlxuXG4qKlBoaWxvc29waHkgbWF0dGVyczoqKiBSdWJ5IHdhcyBpbnRlbnRpb25hbGx5IGRlc2lnbmVkIGJ5IFl1a2loaXJvIE1hdHN1bW90byAoTWF0eikgdG8gcHJpb3JpdGl6ZSAqKnByb2dyYW1tZXIgaGFwcGluZXNzKiouIFRoaXMgaXNuJ3QgYWNjaWRlbnRhbOKAlGl0J3MgYmFrZWQgaW50byB0aGUgbGFuZ3VhZ2UncyBETkEsIGluZmx1ZW5jaW5nIGV2ZXJ5dGhpbmcgZnJvbSBtZXRob2QgbmFtaW5nIHRvIHN5bnRheCBjaG9pY2VzLlxuXG5UaGlzIHBoaWxvc29waHkgcmVzb25hdGVkIGdsb2JhbGx5LCB3aGljaCBpcyB3aHkgUnVieSBnYWluZWQgYSBodWdlIGZvbGxvd2luZyBhbmQgYmVjYW1lIHRoZSBsYW5ndWFnZSBiZWhpbmQgUmFpbHMsIG9uZSBvZiB0aGUgbW9zdCBpbXBhY3RmdWwgd2ViIGZyYW1ld29ya3MgZXZlciBjcmVhdGVkLiBBIGxhbmd1YWdlIHRoYXQncyAqcGxlYXNhbnQgdG8gdXNlKiBmdW5kYW1lbnRhbGx5IGNoYW5nZXMgaG93IGRldmVsb3BlcnMgYXBwcm9hY2ggcHJvYmxlbXMuIn1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjIzLCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6Mjg5LCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCIsImluZmVyZW5jZV9nZW8iOiJub3RfYXZhaWxhYmxlIn19 + recorded_at: Tue, 14 Jul 2026 01:05:22 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_messages_object.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_messages_object.yml index a06ad1ff..937b2a94 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_messages_object.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_text_messages_object.yml @@ -5,16 +5,16 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"assistant","content":"I - can help you with programming questions."},{"role":"user","content":"What - are the benefits of using ActiveRecord?"}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"I + can help you with programming questions.","role":"assistant"},{"content":"What + are the benefits of using ActiveRecord?","role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -47,7 +47,7 @@ http_interactions: message: OK headers: Date: - - Mon, 20 Oct 2025 19:07:03 GMT + - Tue, 14 Jul 2026 01:04:43 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,71 +55,72 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-20T19:07:00Z' + - '2026-07-14T01:04:40Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-20T19:07:05Z' + - '2026-07-14T01:04:43Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-20T19:07:00Z' + - '2026-07-14T01:04:40Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-20T19:07:00Z' + - '2026-07-14T01:04:40Z' Request-Id: - - req_011CUJyUHNHThUBatRJcqJiv + - req_011Cd13upLh6aGn4Gr8HbquA Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '4016' - Via: - - 1.1 google + Traceresponse: + - 00-8237772ceda856b6fd7176de9de5b492-05961ecfcffdc193-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 991acba95c5622d2-SJC + - a1ac9d5b3eee5527-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01TMUAweNTtjC8AiNVgkEXca","type":"message","role":"assistant","content":[{"type":"text","text":"# - Benefits of ActiveRecord\n\nActiveRecord is an Object-Relational Mapping (ORM) - library, primarily used in Ruby on Rails. Here are its key benefits:\n\n## - 1. **Simplified Database Interaction**\n- Write less SQL code\n- Use Ruby - objects instead of raw queries\n- Intuitive, readable syntax\n\n## 2. **Rapid - Development**\n- Quickly scaffold models and migrations\n- Built-in CRUD operations\n- - Less boilerplate code\n\n## 3. **Database Abstraction**\n- Switch databases - with minimal code changes\n- Works with PostgreSQL, MySQL, SQLite, etc.\n- - Database-agnostic queries\n\n## 4. **Built-in Validations**\n- Validate data - before saving to database\n- Reduce duplicate validation logic\n- Consistent - error handling\n\n## 5. **Associations**\n- Easily define relationships (has_many, - belongs_to, etc.)\n- Automatic join queries\n- Reduces manual relationship - management\n\n## 6. **Security Features**\n- Protection against SQL injection\n- - Parameter sanitization built-in\n- Secure by default\n\n## 7. **Conventions - Over Configuration**\n- Follow Rails conventions = less configuration needed\n- - Predictable naming patterns\n- Faster onboarding for new developers\n\n## - 8. **Rich Query Interface**\n- Chainable query methods\n- Lazy evaluation - (queries execute only when needed)\n- Complex queries without raw SQL\n\n## - 9. **Migrations**\n- Version control for database schema\n- Easy rollbacks\n- - Team collaboration on schema changes\n\n## 10. **Callbacks & Hooks**\n- Execute - code at specific model lifecycle points\n- before_save, after_create, etc.\n- - Automate common patterns\n\nWould you like me to elaborate on any of these - benefits?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":39,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":405,"service_tier":"standard"}}' - recorded_at: Mon, 20 Oct 2025 19:07:03 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13upbpPCvwTiCPWe1JF","type":"message","role":"assistant","content":[{"type":"text","text":"# + Benefits of ActiveRecord\n\nActiveRecord is Rails'' Object-Relational Mapping + (ORM) layer. Here are its key benefits:\n\n## 1. **Simplified Database Interactions**\n- + Write database queries in Ruby instead of SQL\n- Reduces context switching + between languages\n- More intuitive for Ruby developers\n\n## 2. **Less Boilerplate + Code**\n```ruby\n# ActiveRecord - Clean and simple\nUser.where(active: true)\n\n# + vs Raw SQL - More verbose\nconnection.execute(\"SELECT * FROM users WHERE + active = true\")\n```\n\n## 3. **Automatic Schema Mapping**\n- Models automatically + map to database tables\n- Column types are inferred from the database\n- No + manual configuration needed\n\n## 4. **Built-in Validations**\n```ruby\nclass + User < ApplicationRecord\n validates :email, presence: true, uniqueness: + true\nend\n```\n\n## 5. **Associations Made Easy**\n```ruby\nclass Post < + ApplicationRecord\n belongs_to :user\n has_many :comments\nend\n```\n\n## + 6. **Database Agnostic**\n- Switch between PostgreSQL, MySQL, SQLite, etc. + with minimal code changes\n\n## 7. **Safety Features**\n- SQL injection protection + through parameterized queries\n- Built-in escaping and sanitization\n\n## + 8. **Migrations**\n- Version control for database schema\n- Easy rollbacks + and team collaboration\n\n## 9. **Lazy Loading & Query Optimization**\n- Queries + only execute when needed\n- Supports eager loading to prevent N+1 problems\n\n## + 10. **Rich Ecosystem**\n- Gems that extend functionality (Devise, Pundit, + etc.)\n- Community best practices well-documented\n\nWould you like me to + elaborate on any of these benefits?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":39,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":408,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:04:43 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_texts_bare.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_texts_bare.yml index b56adea1..5b4d2cb7 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_texts_bare.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/messages_test/test_agent_texts_bare.yml @@ -5,16 +5,16 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"text","text":"Tell - me a fun fact about Ruby programming."},{"type":"text","text":"Now explain - why that''s interesting."}]}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":[{"text":"Tell + me a fun fact about Ruby programming.","type":"text"},{"text":"Now explain + why that''s interesting.","type":"text"}],"role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -47,7 +47,7 @@ http_interactions: message: OK headers: Date: - - Tue, 21 Oct 2025 04:54:21 GMT + - Tue, 14 Jul 2026 01:04:49 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,50 +55,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-21T04:54:18Z' + - '2026-07-14T01:04:46Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-21T04:54:23Z' + - '2026-07-14T01:04:49Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-21T04:54:19Z' + - '2026-07-14T01:04:45Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-21T04:54:18Z' + - '2026-07-14T01:04:46Z' Request-Id: - - req_011CUKkFrUyicvTyM6qPkj8U + - req_011Cd13vD6ALFbh4B5UkipC7 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '3854' - Via: - - 1.1 google + Traceresponse: + - 00-53f3261ae8d1b614faddfceeee7b6de3-eb5be5e03b6b7ae3-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 991e27f93aa61666-SJC + - a1ac9d7c8ed1d8a7-SJC body: encoding: ASCII-8BIT string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTNTNjMxb0NmSEc3OEozNEpjbWRaTDMiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIEZ1biBGYWN0IEFib3V0IFJ1YnlcblxuKipJbiBSdWJ5LCB5b3UgY2FuIHJlb3BlbiBhbmQgbW9kaWZ5IGJ1aWx0LWluIGNsYXNzZXMgYXQgcnVudGltZS4qKiBGb3IgZXhhbXBsZSwgeW91IGNhbiBhZGQgYSBtZXRob2QgdG8gdGhlIGBJbnRlZ2VyYCBjbGFzcyB0aGF0IGFwcGxpZXMgdG8gYWxsIGludGVnZXJzIGluIHlvdXIgcHJvZ3JhbTpcblxuYGBgcnVieVxuY2xhc3MgSW50ZWdlclxuICBkZWYgc2hvdXRcbiAgICBcIiN7c2VsZn0hISFcIlxuICBlbmRcbmVuZFxuXG41LnNob3V0ICAjID0+IFwiNSEhIVwiXG5gYGBcblxuIyMgV2h5IFRoYXQncyBJbnRlcmVzdGluZ1xuXG5UaGlzIGZlYXR1cmUgaXMgZmFzY2luYXRpbmcgZm9yIHNldmVyYWwgcmVhc29uczpcblxuMS4gKipJdCdzIHBoaWxvc29waGljYWxseSBlbGVnYW50Kiog4oCUIFJ1YnkgdHJlYXRzIGJ1aWx0LWluIGNsYXNzZXMgbGlrZSBgSW50ZWdlcmAgYW5kIGBTdHJpbmdgIHRoZSBzYW1lIGFzIHVzZXItZGVmaW5lZCBjbGFzc2VzLCBlbWJvZHlpbmcgdGhlIHByaW5jaXBsZSB0aGF0IFwiZXZlcnl0aGluZyBpcyBhbiBvYmplY3RcIlxuXG4yLiAqKkl0IGVuYWJsZXMgcG93ZXJmdWwgYWJzdHJhY3Rpb25zKiog4oCUIERldmVsb3BlcnMgY2FuIGFkZCBkb21haW4tc3BlY2lmaWMgbWV0aG9kcyB0byBleGlzdGluZyB0eXBlcywgbWFraW5nIGNvZGUgcmVhZCBtb3JlIG5hdHVyYWxseSAodGhpcyBpcyBjYWxsZWQgXCJtb25rZXktcGF0Y2hpbmdcIilcblxuMy4gKipJdCdzIGJvdGggYSBzdXBlcnBvd2VyIGFuZCBhIGZvb3RndW4qKiDigJQgV2hpbGUgaW5jcmVkaWJseSBmbGV4aWJsZSwgaXQgY2FuIGxlYWQgdG8gY29uZnVzaW9uIGlmIG92ZXJ1c2VkLCBtYWtpbmcgY29kZSBoYXJkZXIgdG8gdW5kZXJzdGFuZC4gSXQgZGVtb25zdHJhdGVzIFJ1YnkncyBwaGlsb3NvcGh5IG9mIHRydXN0aW5nIGRldmVsb3BlcnMgd2l0aCBncmVhdCBwb3dlclxuXG40LiAqKkl0IGluZmx1ZW5jZWQgb3RoZXIgbGFuZ3VhZ2VzKiog4oCUIFRoaXMgY2FwYWJpbGl0eSBpbnNwaXJlZCBzaW1pbGFyIFwib3BlbiBjbGFzc2VzXCIgZmVhdHVyZXMgaW4gbGFuZ3VhZ2VzIGxpa2UgUHl0aG9uIGFuZCBLb3RsaW5cblxuVGhpcyByZWZsZWN0cyBSdWJ5J3MgZGVzaWduIHBoaWxvc29waHk6ICptYXhpbXVtIGZsZXhpYmlsaXR5IGFuZCBleHByZXNzaXZlbmVzcyBvdmVyIHJpZ2lkIHN0cnVjdHVyZSosIHdoaWNoIGFwcGVhbHMgdG8gZGV2ZWxvcGVycyB3aG8gdmFsdWUgcmFwaWQgZGV2ZWxvcG1lbnQgYW5kIHJlYWRhYmxlLCBuYXR1cmFsLWZlZWxpbmcgY29kZS4ifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjIzLCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6Mjk0LCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCJ9fQ== - recorded_at: Tue, 21 Oct 2025 04:54:21 GMT -recorded_with: VCR 6.3.1 + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDZDEzdkROMzZUMWJnOHJYc0JXd2YiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiIjIEZ1biBGYWN0IEFib3V0IFJ1YnlcblxuKipSdWJ5IGhhcyBhIG1ldGhvZCBjYWxsZWQgYHRhcGAgdGhhdCBsZXRzIHlvdSBpbnNwZWN0IGFuZCBtb2RpZnkgb2JqZWN0cyBpbiB0aGUgbWlkZGxlIG9mIGEgbWV0aG9kIGNoYWluIHdpdGhvdXQgYnJlYWtpbmcgdGhlIGZsb3cuKipcblxuYGBgcnVieVxuWzEsIDIsIDNdXG4gIC5tYXAgeyB8eHwgeCAqIDIgfVxuICAudGFwIHsgfGFycnwgcHV0cyBcIkRvdWJsZWQ6ICN7YXJyfVwiIH1cbiAgLnNlbGVjdCB7IHx4fCB4ID4gMyB9XG4gICMgT3V0cHV0OiBEb3VibGVkOiBbMiwgNCwgNl1cbiAgIyBSZXR1cm5zOiBbNCwgNl1cbmBgYFxuXG4jIyBXaHkgVGhhdCdzIEludGVyZXN0aW5nXG5cbioqMS4gRWxlZ2FuY2UgbWVldHMgcHJhZ21hdGlzbSoqIOKAlCBgdGFwYCBsZXRzIHlvdSBkZWJ1ZyBvciBwZXJmb3JtIHNpZGUgZWZmZWN0cyB3aXRob3V0IHJlc3RydWN0dXJpbmcgeW91ciBlbnRpcmUgY2hhaW4uIFlvdSBsaXRlcmFsbHkgXCJ0YXAgaW50b1wiIHRoZSBwaXBlbGluZS5cblxuKioyLiBJdCBjaGFuZ2VzIGhvdyB5b3UgdGhpbmsgYWJvdXQgbWV0aG9kIGNoYWluaW5nKiog4oCUIE1vc3QgbGFuZ3VhZ2VzIGZvcmNlIHlvdSB0byBicmVhayBjaGFpbnMgdG8gaW5zcGVjdCB2YWx1ZXMuIFJ1YnkgbGV0cyB5b3UgcGVlayB3aXRob3V0IGxvc2luZyB0aGUgZmx1ZW50IGludGVyZmFjZS5cblxuKiozLiBJdCByZXZlYWxzIFJ1YnkncyBwaGlsb3NvcGh5Kiog4oCUIFRoZSBsYW5ndWFnZSBwcmlvcml0aXplcyBkZXZlbG9wZXIgaGFwcGluZXNzLiBUaGUgZmFjdCB0aGF0IGB0YXBgIGV4aXN0cyBzaG93cyBSdWJ5IGRlc2lnbmVycyBhc2tlZCBcIndoYXQgd291bGQgbWFrZSB0aGlzICpmZWVsKiBnb29kIHRvIHdyaXRlP1wiXG5cbioqNC4gUHJhY3RpY2FsIGltcGFjdCoqIOKAlCBJbiByZWFsIGNvZGUsIHRoaXMgc2F2ZXMgeW91IGZyb20gd3JpdGluZyB0ZW1wb3JhcnkgdmFyaWFibGVzIG9yIHJld3JpdGluZyBjaGFpbnMganVzdCB0byBkZWJ1ZyBzb21ldGhpbmcuIEl0J3MgYSBzbWFsbCBmZWF0dXJlIHdpdGggc3VycHJpc2luZ2x5IGxhcmdlIHF1YWxpdHktb2YtbGlmZSBiZW5lZml0cy5cblxuSXQncyBhIGdyZWF0IGV4YW1wbGUgb2YgaG93IFJ1YnkncyBkZXNpZ24gcHJpb3JpdGl6ZXMgYm90aCBleHByZXNzaXZlbmVzcyBhbmQgcHJhY3RpY2FsIHByb2JsZW0tc29sdmluZy4ifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6MjMsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjozMTYsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Im5vdF9hdmFpbGFibGUifX0= + recorded_at: Tue, 14 Jul 2026 01:04:49 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_object.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_object.yml index 138fde01..c62bce8c 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_object.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_object.yml @@ -5,16 +5,16 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":"Return - a JSON object with three primary colors in an array named ''colors''."},{"role":"assistant","content":"Here - is the JSON requested:\n{"}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + a JSON object with three primary colors in an array named ''colors''.","role":"user"},{"content":"Here + is the JSON requested:\n{","role":"assistant"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -47,7 +47,7 @@ http_interactions: message: OK headers: Date: - - Thu, 23 Oct 2025 23:53:11 GMT + - Tue, 14 Jul 2026 01:05:35 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,50 +55,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-23T23:53:11Z' + - '2026-07-14T01:05:35Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-23T23:53:11Z' + - '2026-07-14T01:05:35Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-23T23:53:12Z' + - '2026-07-14T01:05:34Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-23T23:53:11Z' + - '2026-07-14T01:05:35Z' Request-Id: - - req_011CUR2ioKNAWVGmci5NSUpd + - req_011Cd13yoArSgARgQ252rXfu Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '701' - Via: - - 1.1 google + Traceresponse: + - 00-18d2e4da476da73338683b30b07cbee8-d0ef18421c0d2621-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 99352701d954cfc4-SJC + - a1ac9eacb8f1cf25-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_019XaHQgKWMBZckg2tqrgARo","type":"message","role":"assistant","content":[{"type":"text","text":"\n \"colors\": - [\"red\", \"blue\", \"yellow\"]\n}"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":31,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard"}}' - recorded_at: Thu, 23 Oct 2025 23:53:11 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13ypJZvw5bLRrMAkNSP","type":"message","role":"assistant","content":[{"type":"text","text":"\n \"colors\": + [\n \"red\",\n \"blue\",\n \"yellow\"\n ]\n}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":31,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":29,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:35 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_object_bare.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_object_bare.yml index 218df7ef..37c08ac3 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_object_bare.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_object_bare.yml @@ -5,16 +5,16 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":"Return - a JSON object with three primary colors in an array named ''colors''."},{"role":"assistant","content":"Here - is the JSON requested:\n{"}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + a JSON object with three primary colors in an array named ''colors''.","role":"user"},{"content":"Here + is the JSON requested:\n{","role":"assistant"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -47,7 +47,7 @@ http_interactions: message: OK headers: Date: - - Sat, 25 Oct 2025 20:04:32 GMT + - Tue, 14 Jul 2026 01:05:41 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,50 +55,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '450000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '450000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-25T20:04:32Z' + - '2026-07-14T01:05:41Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '90000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '90000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-25T20:04:32Z' + - '2026-07-14T01:05:41Z' Anthropic-Ratelimit-Requests-Limit: - - '1000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-25T20:04:31Z' + - '2026-07-14T01:05:40Z' Anthropic-Ratelimit-Tokens-Limit: - - '540000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '540000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-25T20:04:32Z' + - '2026-07-14T01:05:41Z' Request-Id: - - req_011CUUWuLMDPfeS9GU4KHYjQ + - req_011Cd13zGjo4ExxVmnst8HT1 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '793' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-3ccece4a2f74d1250ab89fea5c5b4ca5-47a9d300d8435bad-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 994452d15c81f497-SJC + - a1ac9ed4ff989cd0-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01Mu2etBQ6ZsTxgJn6oZdbP7","type":"message","role":"assistant","content":[{"type":"text","text":"\n \"colors\": - [\n \"red\",\n \"yellow\",\n \"blue\"\n ]\n}"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":31,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":29,"service_tier":"standard"}}' - recorded_at: Sat, 25 Oct 2025 20:04:32 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13zGzg2ce9pBQhwm9fg","type":"message","role":"assistant","content":[{"type":"text","text":"\n \"colors\": + [\"red\", \"blue\", \"yellow\"]\n}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":31,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:41 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit.yml index 211756f1..7ad3cf8e 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit.yml @@ -5,32 +5,100 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"content":"Return the three - primary colors.","role":"user"}],"max_tokens":1024,"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + the three primary colors.","role":"user"}],"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.55.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 4.0.2 Content-Type: - application/json Anthropic-Version: - '2023-06-01' X-Api-Key: - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '315' response: status: code: 200 message: OK headers: + Date: + - Tue, 14 Jul 2026 01:05:38 GMT Content-Type: - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-14T01:05:38Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-14T01:05:38Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-14T01:05:37Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-14T01:05:38Z' + Request-Id: + - req_011Cd13z4XLG7k1nJ8nPzUsb + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-0c40d871d153d7ab90565572cc67ca82-bf13024762c27648-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1ac9ec33f25ad44-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01ImplicitJsonSchema","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":25,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":18,"service_tier":"standard"}}' - recorded_at: Sat, 31 May 2026 00:00:00 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13z5gHnU3FU9eJnfE5n","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":14,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:38 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit_bare.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit_bare.yml index 5e092c16..616f9012 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit_bare.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_implicit_bare.yml @@ -5,32 +5,100 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"content":"Return the three - primary colors.","role":"user"}],"max_tokens":1024,"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + the three primary colors.","role":"user"}],"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.55.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 4.0.2 Content-Type: - application/json Anthropic-Version: - '2023-06-01' X-Api-Key: - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '315' response: status: code: 200 message: OK headers: + Date: + - Tue, 14 Jul 2026 01:05:39 GMT Content-Type: - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-14T01:05:39Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-14T01:05:39Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-14T01:05:38Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-14T01:05:39Z' + Request-Id: + - req_011Cd13z8SERM1ZB6WuUuvhL + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-2f19ac3c67688c5e6bcdbfb1c6d55129-0db3ab1e5baf5981-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1ac9ec8e94faf0d-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01ImplicitBareJsonSchema","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":25,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":18,"service_tier":"standard"}}' - recorded_at: Sat, 31 May 2026 00:00:00 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13z8zxfFpoN56ziydFx","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"blue\",\"yellow\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":14,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:39 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_inline.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_inline.yml index e7bcb690..3be61985 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_inline.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_inline.yml @@ -5,32 +5,100 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"content":"Return the three - primary colors.","role":"user"}],"max_tokens":1024,"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + the three primary colors.","role":"user"}],"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.55.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 4.0.2 Content-Type: - application/json Anthropic-Version: - '2023-06-01' X-Api-Key: - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '315' response: status: code: 200 message: OK headers: + Date: + - Tue, 14 Jul 2026 01:05:34 GMT Content-Type: - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-14T01:05:33Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-14T01:05:34Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-14T01:05:32Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-14T01:05:33Z' + Request-Id: + - req_011Cd13yeR1E6sf68LLEYC8x + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-407537ed0dcc202637fc12f5aede2dbc-6c83088771d50189-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + Cf-Cache-Status: + - DYNAMIC + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Ray: + - a1ac9e9f68f49ddb-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01InlineJsonSchema","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":25,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":18,"service_tier":"standard"}}' - recorded_at: Sat, 31 May 2026 00:00:00 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13yiJARNQWQX8VfKmxG","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":14,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:34 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_named.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_named.yml index 98e48cb9..15836764 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_named.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_json_schema_named.yml @@ -5,32 +5,100 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"content":"Return the three - primary colors.","role":"user"}],"max_tokens":1024,"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"Return + the three primary colors.","role":"user"}],"output_config":{"format":{"type":"json_schema","schema":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string"}}},"required":["colors"],"additionalProperties":false}}}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com + X-Stainless-Arch: + - arm64 + X-Stainless-Lang: + - ruby + X-Stainless-Os: + - MacOS + X-Stainless-Package-Version: + - 1.55.0 + X-Stainless-Runtime: + - ruby + X-Stainless-Runtime-Version: + - 4.0.2 Content-Type: - application/json Anthropic-Version: - '2023-06-01' X-Api-Key: - ACCESS_TOKEN + X-Stainless-Retry-Count: + - '0' + X-Stainless-Timeout: + - '600.0' + Content-Length: + - '315' response: status: code: 200 message: OK headers: + Date: + - Tue, 14 Jul 2026 01:05:40 GMT Content-Type: - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Anthropic-Ratelimit-Input-Tokens-Limit: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Remaining: + - '10000000' + Anthropic-Ratelimit-Input-Tokens-Reset: + - '2026-07-14T01:05:40Z' + Anthropic-Ratelimit-Output-Tokens-Limit: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Remaining: + - '2000000' + Anthropic-Ratelimit-Output-Tokens-Reset: + - '2026-07-14T01:05:40Z' + Anthropic-Ratelimit-Requests-Limit: + - '20000' + Anthropic-Ratelimit-Requests-Remaining: + - '19999' + Anthropic-Ratelimit-Requests-Reset: + - '2026-07-14T01:05:39Z' + Anthropic-Ratelimit-Tokens-Limit: + - '12000000' + Anthropic-Ratelimit-Tokens-Remaining: + - '12000000' + Anthropic-Ratelimit-Tokens-Reset: + - '2026-07-14T01:05:40Z' + Request-Id: + - req_011Cd13zCDBtk8ZwX6czwWBM + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Anthropic-Organization-Id: + - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b + Traceresponse: + - 00-0601a04e0ff7d7a779bcd2cae16bb02d-83181f5bb3ed31cc-01 + Server: + - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1ac9ece6fab238b-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01NamedJsonSchema","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":25,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":18,"service_tier":"standard"}}' - recorded_at: Sat, 31 May 2026 00:00:00 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13zCoQuJxr3pDDciJGz","type":"message","role":"assistant","content":[{"type":"text","text":"{\"colors\":[\"red\",\"yellow\",\"blue\"]}"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":14,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:40 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_text.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_text.yml index f9f94c8c..c6579c51 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_text.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_text.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":"List - three primary colors."}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"List + three primary colors.","role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Thu, 23 Oct 2025 23:53:12 GMT + - Tue, 14 Jul 2026 01:05:36 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,52 +54,54 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '50000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-23T23:53:12Z' + - '2026-07-14T01:05:35Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '10000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-23T23:53:13Z' + - '2026-07-14T01:05:36Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '48' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-23T23:53:13Z' + - '2026-07-14T01:05:35Z' Anthropic-Ratelimit-Tokens-Limit: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '60000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-23T23:53:12Z' + - '2026-07-14T01:05:35Z' Request-Id: - - req_011CUR2irxtSLAsKMxGz52gQ + - req_011Cd13ystNdJvziTRwVSfBU Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1234' - Via: - - 1.1 google + Traceresponse: + - 00-97589cdbe4e768f435dc466e83fea057-028bdd41d254d317-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9935270758062714-SJC + - a1ac9eb3ab57f9c5-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01MjGQwiHfbm5T29qhfWpNUu","type":"message","role":"assistant","content":[{"type":"text","text":"The + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13ytCj3nSKhtniiuuwe","type":"message","role":"assistant","content":[{"type":"text","text":"The three primary colors are:\n\n1. **Red**\n2. **Yellow**\n3. **Blue**\n\nThese - are the traditional primary colors in art and painting, as they cannot be - created by mixing other colors together."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":50,"service_tier":"standard"}}' - recorded_at: Thu, 23 Oct 2025 23:53:12 GMT -recorded_with: VCR 6.3.1 + are the traditional primary colors in the RYB (Red-Yellow-Blue) color model + used in art and painting."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":54,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:36 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_text_bare.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_text_bare.yml index 609248f1..c9fb77ba 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_text_bare.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/response_format_test/test_agent_response_text_bare.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-haiku-4-5","messages":[{"role":"user","content":"List - three primary colors."}],"max_tokens":1024}' + string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"List + three primary colors.","role":"user"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -46,7 +46,7 @@ http_interactions: message: OK headers: Date: - - Sat, 25 Oct 2025 20:04:33 GMT + - Tue, 14 Jul 2026 01:05:37 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,52 +54,55 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '450000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '450000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-25T20:04:33Z' + - '2026-07-14T01:05:36Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '90000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '90000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-25T20:04:33Z' + - '2026-07-14T01:05:37Z' Anthropic-Ratelimit-Requests-Limit: - - '1000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-25T20:04:32Z' + - '2026-07-14T01:05:36Z' Anthropic-Ratelimit-Tokens-Limit: - - '540000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '540000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-25T20:04:33Z' + - '2026-07-14T01:05:36Z' Request-Id: - - req_011CUUWuQVzind9bb6mBZ144 + - req_011Cd13yxqXUTPMC2wMDuRJK Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1136' - Via: - - 1.1 google + Traceresponse: + - 00-f7186d8bc0738e88f5d4f4ab7f3a7bf9-4868c8700e731c5d-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 994452d7680bce9c-SJC + - a1ac9ebadb410dfd-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01PN2EKcdKo6AC1PDDQRAhiq","type":"message","role":"assistant","content":[{"type":"text","text":"The - three primary colors are:\n\n1. **Red**\n2. **Yellow**\n3. **Blue**\n\nThese - are the traditional primary colors in the RYB (Red-Yellow-Blue) color model - used in art and painting."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":54,"service_tier":"standard"}}' - recorded_at: Sat, 25 Oct 2025 20:04:33 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13yy6uALCs8pLviXkoE","type":"message","role":"assistant","content":[{"type":"text","text":"The + three primary colors are:\n\n1. **Red**\n2. **Blue**\n3. **Yellow**\n\n(Note: + In modern color theory, cyan, magenta, and yellow are considered primary colors + in printing, while red, green, and blue are primary in light/digital displays. + However, red, blue, and yellow remain the traditional primary colors in art.)"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":81,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:05:37 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_input_schema.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_input_schema.yml index 3fc48e1e..925257f0 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_input_schema.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_input_schema.yml @@ -15,7 +15,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -25,11 +25,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -48,7 +48,7 @@ http_interactions: message: OK headers: Date: - - Wed, 19 Nov 2025 05:13:53 GMT + - Tue, 14 Jul 2026 01:04:30 GMT Content-Type: - application/json Transfer-Encoding: @@ -56,60 +56,62 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T05:13:53Z' + - '2026-07-14T01:04:30Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T05:13:53Z' + - '2026-07-14T01:04:30Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T05:13:52Z' - Retry-After: - - '7' + - '2026-07-14T01:04:28Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T05:13:53Z' + - '2026-07-14T01:04:30Z' Request-Id: - - req_011CVGgCyKtoGwvJ4LZMLEX1 + - req_011Cd13twGdNQYmSWcr2tdAX Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1361' - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-71b81862ce75b61e4d040d93bcac36c8-d1084488d8ed35b5-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 9a0d38849d1c176a-SJC + - a1ac9d10ac73eb36-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01AWL8cLBBTtvG3abMDNTavE","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_014zxU3N9j3gJnV6wKahfpXA","name":"get_weather","input":{"location":"Boston, - MA"}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":584,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":56,"service_tier":"standard"}}' - recorded_at: Wed, 19 Nov 2025 05:13:53 GMT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13u56BJXz8uiE8qSwad","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01RKY8DQsCJgPvDPPZi8PH68","name":"get_weather","input":{"location":"Boston, + MA"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":584,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":56,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:04:30 GMT - request: method: post uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s - the weather in Boston?","role":"user"},{"content":[{"id":"toolu_014zxU3N9j3gJnV6wKahfpXA","input":{"location":"Boston, - MA"},"name":"get_weather","type":"tool_use"}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_014zxU3N9j3gJnV6wKahfpXA","type":"tool_result","content":"{\"location\":\"Boston, + the weather in Boston?","role":"user"},{"content":[{"id":"toolu_01RKY8DQsCJgPvDPPZi8PH68","input":{"location":"Boston, + MA"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01RKY8DQsCJgPvDPPZi8PH68","type":"tool_result","content":"{\"location\":\"Boston, MA\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get the current weather in a given location"}]}' @@ -119,7 +121,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -129,11 +131,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -145,14 +147,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '724' + - '751' response: status: code: 200 message: OK headers: Date: - - Wed, 19 Nov 2025 05:13:54 GMT + - Tue, 14 Jul 2026 01:04:31 GMT Content-Type: - application/json Transfer-Encoding: @@ -160,50 +162,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T05:13:54Z' + - '2026-07-14T01:04:31Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T05:13:54Z' + - '2026-07-14T01:04:31Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T05:13:53Z' - Retry-After: - - '6' + - '2026-07-14T01:04:31Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T05:13:54Z' + - '2026-07-14T01:04:31Z' Request-Id: - - req_011CVGgD62yK5v6BTMo2zNfb + - req_011Cd13u8iDFNaEdLSEGfncE Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1093' + Traceresponse: + - 00-ec161287251cbeca86fd2ff2d2ea06ac-54c0ab531b065d14-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9a0d388e7d9d6896-SJC + - a1ac9d215ca95fe3-SJC body: encoding: ASCII-8BIT string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMUtybmQycUdGRTFUTHVMNkdVVGhUOWsiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBpbiBCb3N0b24sIE1BIGlzIGN1cnJlbnRseSAqKnN1bm55Kiogd2l0aCBhIHRlbXBlcmF0dXJlIG9mICoqNzLCsEYqKi4gSXQncyBhIG5pY2UgZGF5ISJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6NjY5LCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6MzAsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIn19 - recorded_at: Wed, 19 Nov 2025 05:13:54 GMT -recorded_with: VCR 6.3.1 + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDZDEzdTk2SEY0ZHVFNHE4dHlOTWUiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBpbiBCb3N0b24sIE1BIGlzIGN1cnJlbnRseSAqKnN1bm55Kiogd2l0aCBhIHRlbXBlcmF0dXJlIG9mICoqNzLCsEYqKi4gSXQncyBhIG5pY2UgZGF5IG91dCEifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6NjY5LCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6MzEsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Im5vdF9hdmFpbGFibGUifX0= + recorded_at: Tue, 14 Jul 2026 01:04:31 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_multiple_tools.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_multiple_tools.yml index d28549a1..2561266d 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_multiple_tools.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_multiple_tools.yml @@ -15,7 +15,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -25,11 +25,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -48,7 +48,7 @@ http_interactions: message: OK headers: Date: - - Wed, 19 Nov 2025 05:13:56 GMT + - Tue, 14 Jul 2026 01:04:34 GMT Content-Type: - application/json Transfer-Encoding: @@ -56,58 +56,60 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '4000000' + - '9999000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T05:13:55Z' + - '2026-07-14T01:04:33Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T05:13:56Z' + - '2026-07-14T01:04:33Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T05:13:55Z' - Retry-After: - - '5' + - '2026-07-14T01:04:33Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4800000' + - '11999000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T05:13:55Z' + - '2026-07-14T01:04:33Z' Request-Id: - - req_011CVGgDBV93Cuj7Hpw2cchR + - req_011Cd13uHGQrPMaVa7fCqo1y Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1310' - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-71b0cdf504b2b9be222eff073f61097f-739fa8aa435618bf-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 9a0d38967c3cf957-SJC + - a1ac9d2dcbdeebe9-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01DjAW69igMMdeAKZ5mzzbyY","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_016rFuCULXZGHkktxmEjaPpJ","name":"get_weather","input":{"location":"NYC"}},{"type":"tool_use","id":"toolu_01RnqNzPw77hCENNf1w5XtMg","name":"calculate","input":{"operation":"add","a":5,"b":3}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":662,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":122,"service_tier":"standard"}}' - recorded_at: Wed, 19 Nov 2025 05:13:56 GMT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13uHgi5eia3FxfStxGy","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01VPLuGuHUq4mHKs6NRBaq7a","name":"get_weather","input":{"location":"NYC"},"caller":{"type":"direct"}},{"type":"tool_use","id":"toolu_01Gsx54zSP3KffMyVMr22MmB","name":"calculate","input":{"operation":"add","a":5,"b":3},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":662,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":122,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:04:34 GMT - request: method: post uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s - the weather in NYC and what''s 5 plus 3?","role":"user"},{"content":[{"id":"toolu_016rFuCULXZGHkktxmEjaPpJ","input":{"location":"NYC"},"name":"get_weather","type":"tool_use"},{"id":"toolu_01RnqNzPw77hCENNf1w5XtMg","input":{"operation":"add","a":5,"b":3},"name":"calculate","type":"tool_use"}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_016rFuCULXZGHkktxmEjaPpJ","type":"tool_result","content":"{\"location\":\"NYC\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false},{"tool_use_id":"toolu_01RnqNzPw77hCENNf1w5XtMg","type":"tool_result","content":"{\"operation\":\"add\",\"a\":5,\"b\":3,\"result\":8}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + the weather in NYC and what''s 5 plus 3?","role":"user"},{"content":[{"id":"toolu_01VPLuGuHUq4mHKs6NRBaq7a","input":{"location":"NYC"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}},{"id":"toolu_01Gsx54zSP3KffMyVMr22MmB","input":{"operation":"add","a":5,"b":3},"name":"calculate","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01VPLuGuHUq4mHKs6NRBaq7a","type":"tool_result","content":"{\"location\":\"NYC\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false},{"tool_use_id":"toolu_01Gsx54zSP3KffMyVMr22MmB","type":"tool_result","content":"{\"operation\":\"add\",\"a\":5,\"b\":3,\"result\":8}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get the current weather"},{"input_schema":{"type":"object","properties":{"operation":{"type":"string","enum":["add","subtract","multiply","divide"]},"a":{"type":"number"},"b":{"type":"number"}},"required":["operation","a","b"]},"name":"calculate","description":"Perform basic arithmetic"}]}' headers: @@ -116,7 +118,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -126,11 +128,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -142,14 +144,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '1180' + - '1234' response: status: code: 200 message: OK headers: Date: - - Wed, 19 Nov 2025 05:13:57 GMT + - Tue, 14 Jul 2026 01:04:36 GMT Content-Type: - application/json Transfer-Encoding: @@ -157,50 +159,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T05:13:57Z' + - '2026-07-14T01:04:35Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T05:13:57Z' + - '2026-07-14T01:04:36Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T05:13:56Z' - Retry-After: - - '3' + - '2026-07-14T01:04:34Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T05:13:57Z' + - '2026-07-14T01:04:35Z' Request-Id: - - req_011CVGgDHgwtCewKNMwnASAR + - req_011Cd13uNPV7wDPfyX7VBbEc Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1304' - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-bae1b10ec17d8564f8887ae3c48e8d5c-7bb29222b54b4cac-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 9a0d389f8cc9f95f-SJC + - a1ac9d3549184b96-SJC body: encoding: ASCII-8BIT string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMU1KNmRvdHlmTW9iSmZwV01XcEp2MVEiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJHcmVhdCEgSGVyZSdzIHRoZSBpbmZvcm1hdGlvbiB5b3UgcmVxdWVzdGVkOlxuXG4qKldlYXRoZXIgaW4gTllDOioqIEl0J3MgY3VycmVudGx5IDcywrBGIGFuZCBzdW5ueSEg4piA77iPXG5cbioqNSBwbHVzIDM6KiogVGhlIGFuc3dlciBpcyAqKjgqKiJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6ODc2LCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6NDYsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIn19 - recorded_at: Wed, 19 Nov 2025 05:13:57 GMT -recorded_with: VCR 6.3.1 + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDZDEzdVJDUUNwWHlEOVR5WW1mZVgiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJHcmVhdCEgSGVyZSBhcmUgdGhlIGFuc3dlcnM6XG5cbioqV2VhdGhlciBpbiBOWUM6KiogSXQncyBjdXJyZW50bHkgNzLCsEYgYW5kIHN1bm55ISDimIDvuI9cblxuKio1IHBsdXMgMzoqKiBUaGUgYW5zd2VyIGlzICoqOCoqLiJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInN0b3BfZGV0YWlscyI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjo4NzYsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjo0NCwic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoibm90X2F2YWlsYWJsZSJ9fQ== + recorded_at: Tue, 14 Jul 2026 01:04:36 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_parameters.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_parameters.yml index d6e6a103..95392094 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_parameters.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_parameters.yml @@ -15,7 +15,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -25,11 +25,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -48,7 +48,7 @@ http_interactions: message: OK headers: Date: - - Wed, 19 Nov 2025 05:13:45 GMT + - Tue, 14 Jul 2026 01:04:23 GMT Content-Type: - application/json Transfer-Encoding: @@ -56,60 +56,62 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T05:13:45Z' + - '2026-07-14T01:04:23Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T05:13:45Z' + - '2026-07-14T01:04:23Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T05:13:44Z' - Retry-After: - - '15' + - '2026-07-14T01:04:22Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T05:13:45Z' + - '2026-07-14T01:04:23Z' Request-Id: - - req_011CVGgCPE3eGZd6g9EB3PE3 + - req_011Cd13tVvsxPuWvAyL9ZFNT Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1084' - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-9cf67a144532cd8cd4ede018e7ce2218-f8bddb836778e13b-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 9a0d3852ce872517-SJC + - a1ac9ceb98f3ebeb-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01EuuY4DyAnyry5fLgdVzk1w","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01UXUH8LCk3paEsKxjqLayG2","name":"get_weather","input":{"location":"San - Francisco, CA"}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":57,"service_tier":"standard"}}' - recorded_at: Wed, 19 Nov 2025 05:13:45 GMT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13tX8KBUgv8DtnrvNeV","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_018hnf7uCpGB7eThU4rBAC3j","name":"get_weather","input":{"location":"San + Francisco, CA"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":57,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:04:23 GMT - request: method: post uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s - the weather in San Francisco?","role":"user"},{"content":[{"id":"toolu_01UXUH8LCk3paEsKxjqLayG2","input":{"location":"San - Francisco, CA"},"name":"get_weather","type":"tool_use"}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01UXUH8LCk3paEsKxjqLayG2","type":"tool_result","content":"{\"location\":\"San + the weather in San Francisco?","role":"user"},{"content":[{"id":"toolu_018hnf7uCpGB7eThU4rBAC3j","input":{"location":"San + Francisco, CA"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_018hnf7uCpGB7eThU4rBAC3j","type":"tool_result","content":"{\"location\":\"San Francisco, CA\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get the current weather in a given location"}]}' @@ -119,7 +121,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -129,11 +131,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -145,14 +147,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '745' + - '772' response: status: code: 200 message: OK headers: Date: - - Wed, 19 Nov 2025 05:13:46 GMT + - Tue, 14 Jul 2026 01:04:24 GMT Content-Type: - application/json Transfer-Encoding: @@ -160,50 +162,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T05:13:46Z' + - '2026-07-14T01:04:24Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T05:13:46Z' + - '2026-07-14T01:04:24Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T05:13:45Z' - Retry-After: - - '14' + - '2026-07-14T01:04:23Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T05:13:46Z' + - '2026-07-14T01:04:24Z' Request-Id: - - req_011CVGgCUUohvAoZzNCtpVEA + - req_011Cd13tbJqFeM7D799T8ZYU Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '929' - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-c135b00869c55abec0a880384b5ad130-d698adf0f4207db4-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 9a0d385a7a78d025-SJC + - a1ac9cf37df9cf2f-SJC body: encoding: ASCII-8BIT string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMU5HdmlKZmpDZUxwRHVKN1NKMXZZdFkiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBpbiBTYW4gRnJhbmNpc2NvLCBDQSBpcyBjdXJyZW50bHkgKipzdW5ueSoqIHdpdGggYSB0ZW1wZXJhdHVyZSBvZiAqKjcywrBGKiouIEl0J3MgYSBiZWF1dGlmdWwgZGF5ISJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6NjcyLCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6MzEsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIn19 - recorded_at: Wed, 19 Nov 2025 05:13:46 GMT -recorded_with: VCR 6.3.1 + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDZDEzdGJhaTR4Y2JXclF6MTgzemsiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBpbiBTYW4gRnJhbmNpc2NvLCBDQSBpcyBjdXJyZW50bHkgKipzdW5ueSoqIHdpdGggYSB0ZW1wZXJhdHVyZSBvZiAqKjcywrBGKiouIn1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjY3MiwiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfY3JlYXRpb24iOnsiZXBoZW1lcmFsXzVtX2lucHV0X3Rva2VucyI6MCwiZXBoZW1lcmFsXzFoX2lucHV0X3Rva2VucyI6MH0sIm91dHB1dF90b2tlbnMiOjI0LCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCIsImluZmVyZW5jZV9nZW8iOiJub3RfYXZhaWxhYmxlIn19 + recorded_at: Tue, 14 Jul 2026 01:04:24 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_auto.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_auto.yml index e45b13f2..81bfbc51 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_auto.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_auto.yml @@ -14,7 +14,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -47,7 +47,7 @@ http_interactions: message: OK headers: Date: - - Wed, 19 Nov 2025 05:13:59 GMT + - Tue, 14 Jul 2026 01:04:32 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,51 +55,54 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '4000000' + - '9990000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T05:13:58Z' + - '2026-07-14T01:04:32Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T05:13:59Z' + - '2026-07-14T01:04:32Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T05:13:57Z' - Retry-After: - - '2' + - '2026-07-14T01:04:32Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4800000' + - '11990000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T05:13:58Z' + - '2026-07-14T01:04:32Z' Request-Id: - - req_011CVGgDPzxgDVtcZxRcL3VR + - req_011Cd13uCpm1CsTw6rhdFRGs Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1146' + Traceresponse: + - 00-5735f3397144acde656eb7ec512c7a47-c1432888c1d16000-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9a0d38a8bff5f9f5-SJC + - a1ac9d2758952b29-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_012dzMywWG636J19CAyU6R1z","type":"message","role":"assistant","content":[{"type":"text","text":"I''d - be happy to help you with the weather! However, I need to know your location. - Could you please tell me which city or location you''d like the weather for?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":558,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":39,"service_tier":"standard"}}' - recorded_at: Wed, 19 Nov 2025 05:13:59 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13uDH3hikhBgEVpdPHu","type":"message","role":"assistant","content":[{"type":"text","text":"I''d + be happy to help you check the weather! However, I need to know which location + you''d like the weather for. Could you please tell me the city or area you''re + interested in?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":558,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":43,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:04:32 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_required.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_required.yml index 0fb3aebe..37d572d6 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_required.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_required.yml @@ -14,7 +14,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -47,7 +47,7 @@ http_interactions: message: OK headers: Date: - - Wed, 19 Nov 2025 05:13:47 GMT + - Tue, 14 Jul 2026 01:04:26 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,60 +55,62 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T05:13:47Z' + - '2026-07-14T01:04:26Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T05:13:47Z' + - '2026-07-14T01:04:26Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T05:13:46Z' - Retry-After: - - '13' + - '2026-07-14T01:04:26Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T05:13:47Z' + - '2026-07-14T01:04:26Z' Request-Id: - - req_011CVGgCZL1VuQAp6qtQtH4E + - req_011Cd13tmXVbaFsQLXf2Mve1 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1053' + Traceresponse: + - 00-a845ed304db88d8b9294294485349d5d-6ae9abfeed0b6d6f-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9a0d38619d7e5c1f-SJC + - a1ac9d026d78306f-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01GrmnfB317zDPsKT3smbXAw","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_018gB1gszzTHn8ajnaihUDVH","name":"get_weather","input":{"location":"current - location"}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":650,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":39,"service_tier":"standard"}}' - recorded_at: Wed, 19 Nov 2025 05:13:47 GMT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13tmn8DYXHB4ss4AUgm","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01NZuothcKGJ5dsiBrJnPPAJ","name":"get_weather","input":{"location":"current + location"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":650,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":39,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:04:26 GMT - request: method: post uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s - the weather?","role":"user"},{"content":[{"id":"toolu_018gB1gszzTHn8ajnaihUDVH","input":{"location":"current - location"},"name":"get_weather","type":"tool_use"}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_018gB1gszzTHn8ajnaihUDVH","type":"tool_result","content":"{\"location\":\"current + the weather?","role":"user"},{"content":[{"id":"toolu_01NZuothcKGJ5dsiBrJnPPAJ","input":{"location":"current + location"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01NZuothcKGJ5dsiBrJnPPAJ","type":"tool_result","content":"{\"location\":\"current location\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get weather"}]}' headers: @@ -117,7 +119,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -127,11 +129,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -143,14 +145,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '635' + - '662' response: status: code: 200 message: OK headers: Date: - - Wed, 19 Nov 2025 05:13:48 GMT + - Tue, 14 Jul 2026 01:04:28 GMT Content-Type: - application/json Transfer-Encoding: @@ -158,50 +160,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T05:13:48Z' + - '2026-07-14T01:04:27Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T05:13:48Z' + - '2026-07-14T01:04:28Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T05:13:47Z' - Retry-After: - - '12' + - '2026-07-14T01:04:26Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T05:13:48Z' + - '2026-07-14T01:04:27Z' Request-Id: - - req_011CVGgCeejuG18Mghs594NC + - req_011Cd13tq3pjPuW3Fg3DJpw4 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1120' - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-bbff99213680ef9fbd5bb1d425477138-d436b29b5c44c7ad-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 9a0d38695f81fac6-SJC + - a1ac9d076914cf16-SJC body: encoding: ASCII-8BIT string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMVlRaWNTTktxa3FESjQxYlNGelB4U2IiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBhdCB5b3VyIGN1cnJlbnQgbG9jYXRpb24gaXM6XG4tICoqVGVtcGVyYXR1cmUqKjogNzLCsEZcbi0gKipDb25kaXRpb25zKio6IFN1bm55XG5cbkl0J3MgYSBuaWNlIHN1bm55IGRheSEgSXMgdGhlcmUgYW55dGhpbmcgZWxzZSB5b3UnZCBsaWtlIHRvIGtub3cgYWJvdXQgdGhlIHdlYXRoZXI/In1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjo2NDEsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjo0OSwic2VydmljZV90aWVyIjoic3RhbmRhcmQifX0= - recorded_at: Wed, 19 Nov 2025 05:13:48 GMT -recorded_with: VCR 6.3.1 + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDZDEzdHFXY0g1Qm92MzFUUzNiZmgiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJCYXNlZCBvbiB0aGUgY3VycmVudCB3ZWF0aGVyIGRhdGEsIGhlcmUncyB3aGF0IGl0IGxvb2tzIGxpa2U6XG5cbi0gKipUZW1wZXJhdHVyZToqKiA3MsKwRlxuLSAqKkNvbmRpdGlvbnM6KiogU3VubnlcblxuSXQncyBhIHBsZWFzYW50LCBzdW5ueSBkYXkgd2l0aCBtaWxkIHRlbXBlcmF0dXJlcyEgSG93ZXZlciwgSSBzaG91bGQgbm90ZSB0aGF0IHRvIGdpdmUgeW91IG1vcmUgYWNjdXJhdGUgd2VhdGhlciBpbmZvcm1hdGlvbiwgSSB3b3VsZCBuZWVkIHRvIGtub3cgeW91ciBzcGVjaWZpYyBsb2NhdGlvbi4gSWYgeW91J2QgbGlrZSB3ZWF0aGVyIGZvciBhIHBhcnRpY3VsYXIgY2l0eSBvciByZWdpb24sIHBsZWFzZSBsZXQgbWUga25vdyBhbmQgSSBjYW4gZ2V0IG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24gZm9yIHlvdS4ifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6NjQxLCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6OTUsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Im5vdF9hdmFpbGFibGUifX0= + recorded_at: Tue, 14 Jul 2026 01:04:28 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_specific.yml b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_specific.yml index 6d73430f..85c49c4f 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_specific.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/common_format/tools_test/test_agent_common_format_tool_choice_specific.yml @@ -14,7 +14,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -47,7 +47,7 @@ http_interactions: message: OK headers: Date: - - Wed, 19 Nov 2025 05:13:49 GMT + - Tue, 14 Jul 2026 01:04:24 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,60 +55,62 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T05:13:49Z' + - '2026-07-14T01:04:24Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T05:13:49Z' + - '2026-07-14T01:04:24Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T05:13:49Z' - Retry-After: - - '11' + - '2026-07-14T01:04:24Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T05:13:49Z' + - '2026-07-14T01:04:24Z' Request-Id: - - req_011CVGgCk7QdbL9Ro4qS1mDn + - req_011Cd13teET1XM1ZuL19yYfJ Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '885' + Traceresponse: + - 00-42753451dda0a7471bc34580997b8b8f-a5cf8a85dac50b4a-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9a0d38715cbaf555-SJC + - a1ac9cf7b9168467-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-haiku-4-5-20251001","id":"msg_01NviDBZtqZfGTS5vAD8Vo6z","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01RnUd1Xv78Dx6XPssao9Eou","name":"get_weather","input":{"location":"current - location"}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":655,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":34,"service_tier":"standard"}}' - recorded_at: Wed, 19 Nov 2025 05:13:49 GMT + string: '{"model":"claude-haiku-4-5-20251001","id":"msg_011Cd13teT6Uj2pd55wjV43e","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_017kX9mcaw4k3RGz1h3fTYDT","name":"get_weather","input":{"location":"current + location"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":655,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":34,"service_tier":"standard","inference_geo":"not_available"}}' + recorded_at: Tue, 14 Jul 2026 01:04:24 GMT - request: method: post uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 string: '{"model":"claude-haiku-4-5","max_tokens":1024,"messages":[{"content":"What''s - the weather?","role":"user"},{"content":[{"id":"toolu_01RnUd1Xv78Dx6XPssao9Eou","input":{"location":"current - location"},"name":"get_weather","type":"tool_use"}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01RnUd1Xv78Dx6XPssao9Eou","type":"tool_result","content":"{\"location\":\"current + the weather?","role":"user"},{"content":[{"id":"toolu_017kX9mcaw4k3RGz1h3fTYDT","input":{"location":"current + location"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_017kX9mcaw4k3RGz1h3fTYDT","type":"tool_result","content":"{\"location\":\"current location\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get weather"}]}' headers: @@ -117,7 +119,7 @@ http_interactions: Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -127,11 +129,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -143,14 +145,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '635' + - '662' response: status: code: 200 message: OK headers: Date: - - Wed, 19 Nov 2025 05:13:52 GMT + - Tue, 14 Jul 2026 01:04:25 GMT Content-Type: - application/json Transfer-Encoding: @@ -158,50 +160,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '4000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T05:13:51Z' + - '2026-07-14T01:04:25Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '800000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T05:13:51Z' + - '2026-07-14T01:04:25Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T05:13:50Z' - Retry-After: - - '9' + - '2026-07-14T01:04:25Z' Anthropic-Ratelimit-Tokens-Limit: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '4800000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T05:13:51Z' + - '2026-07-14T01:04:25Z' Request-Id: - - req_011CVGgCpc2RFuCa64fftcsD + - req_011Cd13th8LDqzj9iEngyjbL Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1887' + Traceresponse: + - 00-3cb5a254967c45433e4ef13dc696f86b-5f82c359548bdc28-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9a0d3877ce7f2832-SJC + - a1ac9cfbf8537d12-SJC body: encoding: ASCII-8BIT string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMVdMRHN6cUtoaG1IaFFEREEzbXJIU1QiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBhdCB5b3VyIGN1cnJlbnQgbG9jYXRpb24gaXMgKipzdW5ueSoqIHdpdGggYSB0ZW1wZXJhdHVyZSBvZiAqKjcywrBGKiouIExvb2tzIGxpa2UgYSBuaWNlIGRheSEgXG5cbklmIHlvdSdkIGxpa2Ugd2VhdGhlciBpbmZvcm1hdGlvbiBmb3IgYSBzcGVjaWZpYyBsb2NhdGlvbiwganVzdCBsZXQgbWUga25vdyB0aGUgY2l0eSBvciBhcmVhIG5hbWUgYW5kIEkgY2FuIGdldCB0aGF0IGZvciB5b3UuIn1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjo2NDEsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjo2MCwic2VydmljZV90aWVyIjoic3RhbmRhcmQifX0= - recorded_at: Wed, 19 Nov 2025 05:13:52 GMT -recorded_with: VCR 6.3.1 + eyJtb2RlbCI6ImNsYXVkZS1oYWlrdS00LTUtMjAyNTEwMDEiLCJpZCI6Im1zZ18wMTFDZDEzdGhUdkp2aldxV2IzaFl1Z0wiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBhdCB5b3VyIGN1cnJlbnQgbG9jYXRpb24gaXMgKipzdW5ueSoqIHdpdGggYSB0ZW1wZXJhdHVyZSBvZiAqKjcywrBGKiouIE5pY2UgZGF5ISBcblxuSWYgeW91J2QgbGlrZSB0byBrbm93IHRoZSB3ZWF0aGVyIGZvciBhIHNwZWNpZmljIGxvY2F0aW9uLCBqdXN0IGxldCBtZSBrbm93IGFuZCBJIGNhbiBsb29rIHRoYXQgdXAgZm9yIHlvdS4ifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6NjQxLCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6NTQsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Im5vdF9hdmFpbGFibGUifX0= + recorded_at: Tue, 14 Jul 2026 01:04:25 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_assistant_message_tool_use.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_assistant_message_tool_use.yml index 2de78fb6..c1d7ee99 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_assistant_message_tool_use.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_assistant_message_tool_use.yml @@ -5,18 +5,18 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"What''s - the weather in San Francisco?"},{"role":"assistant","content":[{"type":"text","text":"I''ll - check the weather for you."},{"type":"tool_use","id":"toolu_123","name":"get_weather","input":{"location":"San - Francisco, CA"}}]},{"role":"user","content":[{"type":"tool_result","tool_use_id":"toolu_123","content":"72°F - and sunny"}]}],"max_tokens":1024}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"What''s the weather + in San Francisco?","role":"user"},{"content":[{"text":"I''ll check the weather + for you.","type":"text"},{"id":"toolu_123","input":{"location":"San Francisco, + CA"},"name":"get_weather","type":"tool_use"}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_123","type":"tool_result","content":"72°F + and sunny"}],"role":"user"}],"max_tokens":1024}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -26,11 +26,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -42,14 +42,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '428' + - '417' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:48:46 GMT + - Tue, 14 Jul 2026 01:07:35 GMT Content-Type: - application/json Transfer-Encoding: @@ -57,50 +57,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:48:46Z' + - '2026-07-14T01:07:33Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '7000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:48:52Z' + - '2026-07-14T01:07:35Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:48:46Z' + - '2026-07-14T01:07:33Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '37000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:48:46Z' + - '2026-07-14T01:07:33Z' Request-Id: - - req_011CUDyqBcKqqFSMBePEVu8q + - req_011Cd148aKgrbNGmXyCrM6hE Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1886' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-5729feceea8bf14458e53473ad699aa7-33b29d45ae7951d0-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 99050fd38d4917f2-SJC + - a1aca1950f6dcf0e-SJC body: encoding: ASCII-8BIT string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1zb25uZXQtNC01LTIwMjUwOTI5IiwiaWQiOiJtc2dfMDFYRVNtYU5yb043SDk2U3Z6YzJhYlU4IiwidHlwZSI6Im1lc3NhZ2UiLCJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiVGhlIHdlYXRoZXIgaW4gU2FuIEZyYW5jaXNjbyBpcyBjdXJyZW50bHkgNzLCsEYgYW5kIHN1bm55LiBJdCdzIGEgYmVhdXRpZnVsIGRheSB0aGVyZSEifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjk3LCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6MjQsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIn19 - recorded_at: Sat, 18 Oct 2025 03:48:46 GMT -recorded_with: VCR 6.3.1 + eyJtb2RlbCI6ImNsYXVkZS1zb25uZXQtNSIsImlkIjoibXNnXzAxMUNkMTQ4YWp6VGQ3MzVWbU5pY0pYaSIsInR5cGUiOiJtZXNzYWdlIiwicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0aGlua2luZyIsInRoaW5raW5nIjoiIiwic2lnbmF0dXJlIjoiRXM4RENva0JDQThZQWlwQU9iSDF2SnBZR1dBWU1wbnNKR2dLTnRMMVBsVE5IbGVvQW9zdTNwejkwdGhkUUt6MUtiaEY2TVQwMzBOWEpZL3ZBb0xhY0lpT3NVWGdRQ1pGN1Z5NC96SVBZMnhoZFdSbExYTnZibTVsZEMwMU9BQkNDSFJvYVc1cmFXNW5XaVF5TlRVM1l6Sm1NaTFpWTJaaExUUXdOVFF0T1daaE9DMWhaVEV6WWpOaU5EZGtObUlTRE9wQ1QxOU9yc1lSNG9iTmF4b01GMFVBMmlOVU9tdUlqWFJVSWpBSlJIV1RENXVhNVhWNlZtNFYvR2lJMzFDRkhMams0OHVQQXovSVBNSXl0OWdvNlVJTUV0SlJOeG9OZFIvWTFrUXE4Z0ZmRFl2MlB4S0FabHN1VDhUMkRrKzMwSTZuaDcydy9aV1d0cEVUVHRvWVlWNFNzeU1tbnV2RW5Ybnlhemg4Q0l0bzgwOVpNbGgxbUFvbktvcXNsZDJZelluc1BHK1JFb2JxT2NrNW02UTlvdllydDlQb2RDU2RMWCs1dHpoWEtvekszR1J3dDh0akhvcksrYXJramE5SXc3T0J4ZzZqUUpxYlhHUFI4dWwvdnRMMFJlMU1FTnF0UGRPUDNMdjBjSnB4RGRRVjk2Q3J3NXBFcncwYVNMM1BTclVDcVQwSFBMc2NmQ1JBV215UkwwTWk4azBwVnZyZHNLVVdlN2lSS3ZVUVlGY1pxcVdpT0sxeXRPUU9hSWY4T0VBZDVNM1U2VExBcVlrUWd6WE52MHdZSmhyVEwvU2lja3BLbmVlU0VPdnh0eGdCIn0seyJ0eXBlIjoidGV4dCIsInRleHQiOiJUaGUgd2VhdGhlciBpbiBTYW4gRnJhbmNpc2NvIGlzIGN1cnJlbnRseSAqKjcywrBGIGFuZCBzdW5ueSoqLiBBIGJlYXV0aWZ1bCBkYXkgb3V0IHRoZXJlISJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInN0b3BfZGV0YWlscyI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjo5NiwiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfY3JlYXRpb24iOnsiZXBoZW1lcmFsXzVtX2lucHV0X3Rva2VucyI6MCwiZXBoZW1lcmFsXzFoX2lucHV0X3Rva2VucyI6MH0sIm91dHB1dF90b2tlbnMiOjEwNywib3V0cHV0X3Rva2Vuc19kZXRhaWxzIjp7InRoaW5raW5nX3Rva2VucyI6NzN9LCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCIsImluZmVyZW5jZV9nZW8iOiJnbG9iYWwifX0= + recorded_at: Tue, 14 Jul 2026 01:07:35 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_basic_request.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_basic_request.yml index 6219e4ee..2487f64c 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_basic_request.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_basic_request.yml @@ -5,15 +5,14 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Hello, - Claude!"}],"max_tokens":1024}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello, Claude!","role":"user"}],"max_tokens":1024}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +22,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -39,14 +38,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '112' + - '101' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:48:05 GMT + - Tue, 14 Jul 2026 01:07:56 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,50 +53,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:48:05Z' + - '2026-07-14T01:07:56Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:48:05Z' + - '2026-07-14T01:07:56Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:48:05Z' + - '2026-07-14T01:07:55Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:48:05Z' + - '2026-07-14T01:07:56Z' Request-Id: - - req_011CUDynB5VgdPFibQ7ydqVA + - req_011Cd14AEmWNGEfGfUJr9VFp Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1585' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-582cf9304734730e35c5f62e82693652-e9081c3f23cff220-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 99050ed46d8e6804-SJC + - a1aca2220f122a56-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01HZVgtm724wS73HqGSfykTS","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! - It''s nice to meet you. How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":11,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 03:48:05 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd14AF7M86LcZEVQzTy5o","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! + How''s it going? What can I help you with today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":19,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:07:56 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_extended_thinking.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_extended_thinking.yml index 51f7019d..587f8ee1 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_extended_thinking.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_extended_thinking.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Solve - this complex math problem..."}],"max_tokens":4096,"thinking":{"type":"enabled","budget_tokens":2048}}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Solve this complex + math problem...","role":"user"}],"max_tokens":4096,"thinking":{"type":"adaptive"}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -39,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '183' + - '152' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:47:30 GMT + - Tue, 14 Jul 2026 01:07:31 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,59 +54,59 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:47:27Z' + - '2026-07-14T01:07:29Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:47:31Z' + - '2026-07-14T01:07:31Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:47:27Z' + - '2026-07-14T01:07:27Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:47:27Z' + - '2026-07-14T01:07:29Z' Request-Id: - - req_011CUDyjMxG86XNAYJPz4ZWS + - req_011Cd1489vzVcayLAurnLU2u Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '4354' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-018231510ec05cd2f6156300ba467018-2077d09df6557bc6-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 99050de5ff21ccb8-SJC + - a1aca1713bfa15e3-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01TSTbQogm1oYzr9isuJLpKu","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"The - user is asking me to solve a complex math problem, but they haven''t actually - provided a specific problem to solve. I should politely ask them to provide - the actual math problem they''d like help with.","signature":"EvQCCkYICBgCKkC+UkrTqpx6RRRu20TyoTcfiVZONIGTcNCL7VD9oc65rKmvhTj9YVKN40YbLVBIdy3DaHAJnL9i4ah4gU2gF7hYEgzamncAKukXCd8gaowaDLLyAB53j4v/+GqGHyIw/5fR3aoN1LZh6PtKFC9I+jVIYQz8IhP4wAjK40gkHKA4tpsw+ygNN3Wvd3r+2OAMKtsBimudivRinhE65cTEV3kbQm+7SHwazlybEVeseipjUH7VphoGcfHlQvBXS5R2YmoeqVq5uT8+kzTAyY62vne+//v6YuW7qa0SRqIcMetc0HbekUdzMCpvca3DH3QoKGgzNP6C1WhgUTRrW2JG1vS+eDt+V4FqDHyZvDQFCXjgKX/JTBVUKXaXK7GpWrd8xQrLLXLSbaxYbLlsFDOuY3kCNiHmexW5r9le7pHwtUthaY2m4XotqDH0wpNtTRMOBBO69xbyXF7xyU8Vm8qbn/1ySqQ0KBe8Y2zKwKS7GAE="},{"type":"text","text":"I''d - be happy to help you solve a complex math problem! However, I don''t see a - specific problem in your message. \n\nCould you please share the math problem - you''d like me to work on? Feel free to include:\n- The complete problem statement\n- - Any relevant equations or formulas\n- Context about what topic it covers (calculus, - algebra, geometry, etc.)\n- Any work you''ve already done on it\n\nOnce you - provide the problem, I''ll do my best to walk you through the solution step - by step!"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":42,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":166,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 03:47:30 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd148AXiRgeDhtiF8bi9s","type":"message","role":"assistant","content":[{"type":"text","text":"I''d + be happy to help you solve a complex math problem! However, I don''t see the + problem included in your message.\n\nCould you please share the specific problem + you''d like me to solve? For example, it could involve:\n\n- **Algebra** (equations, + inequalities, systems of equations)\n- **Calculus** (derivatives, integrals, + limits, series)\n- **Geometry/Trigonometry**\n- **Linear Algebra** (matrices, + vectors, eigenvalues)\n- **Differential Equations**\n- **Complex Numbers**\n- + **Statistics/Probability**\n- **Number Theory**\n\nPlease paste the problem, + and I''ll work through it step-by-step with a clear explanation of the solution."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":16,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":225,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:07:31 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_mcp_server.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_mcp_server.yml index 23ca1344..a6c69d88 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_mcp_server.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_mcp_server.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages?beta=true body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"content":"What - tools do you have available?","role":"user"}],"max_tokens":1024,"mcp_servers":[{"name":"cloudflare-demo","type":"url","url":"https://demo-day.mcp.cloudflare.com/sse"}]}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"What tools do you + have available?","role":"user"}],"max_tokens":1024,"mcp_servers":[{"name":"cloudflare-demo","type":"url","url":"https://demo-day.mcp.cloudflare.com/sse"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -41,14 +41,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '235' + - '224' response: status: code: 200 message: OK headers: Date: - - Wed, 19 Nov 2025 20:58:57 GMT + - Tue, 14 Jul 2026 01:08:07 GMT Content-Type: - application/json Transfer-Encoding: @@ -56,55 +56,56 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '2000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '2000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-19T20:58:55Z' + - '2026-07-14T01:08:06Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '400000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '400000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-19T20:58:57Z' + - '2026-07-14T01:08:07Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-19T20:58:53Z' - Retry-After: - - '5' + - '2026-07-14T01:08:06Z' Anthropic-Ratelimit-Tokens-Limit: - - '2400000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '2400000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-19T20:58:55Z' + - '2026-07-14T01:08:06Z' Request-Id: - - req_011CVHvGc3DtPq6RQto2kWgz + - req_011Cd14ApEAWreh93fnLTUnk Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '5322' + Traceresponse: + - 00-abc139b2a339862bf3f1ed8d0b91be16-9c078c776a653b3e-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9a12a0ce1e6e7af1-SJC + - a1aca252e94dcf09-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01JdaKsKdYckuGXMYcz1pRVS","type":"message","role":"assistant","content":[{"type":"text","text":"I - have access to one specialized tool:\n\n1. **cloudflare-demo_mcp_demo_day_info** + string: '{"model":"claude-sonnet-5","id":"msg_011Cd14B1CTxox46a55wZyWy","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"","signature":"EsYCCokBCA8YAipAmFsJ9brngZ25lWbhBxW5hXokLU0oX2zsTmxqUPlZBDTtZtcSnssnEby4Bg9mF/Qf+x86UE4xzk5fUBZSEXTyJjIPY2xhdWRlLXNvbm5ldC01OABCCHRoaW5raW5nWiQyNTU3YzJmMi1iY2ZhLTQwNTQtOWZhOC1hZTEzYjNiNDdkNmISDM4xK+bowaurQ//v8BoMYvwUdu5n7126l1qeIjD634pPLof+wPUEbnd4ouP56f1ffcdCePbp5InoxRvlTzbNBY8S2TAm5oX4QreMwqsqar5Gwm2TndTvk2oJRdK59loCde/XFtUjaMLcbrPkUjHxAWtn8xhv1Q7yLV7hgpfw8O+Z5flbFE14ZVFZRcDIY4VdTJNqGC2b6ApaDk7PDk+HAmp2MOWM2w0Y6VZUVm+JbgvQwMXsKcvAsB0YAQ=="},{"type":"text","text":"I + have access to one specialized tool:\n\n**cloudflare-demo_mcp_demo_day_info** - This tool provides information about Cloudflare''s MCP Demo Day. I can use - it to answer questions about Cloudflare''s MCP demo day event.\n\nThis appears - to be a specialized assistant focused on providing information about Cloudflare''s - MCP (Model Context Protocol) Demo Day. If you have any questions about that - event, feel free to ask and I''ll retrieve the information for you!"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":115,"service_tier":"standard"}}' - recorded_at: Wed, 19 Nov 2025 20:58:57 GMT -recorded_with: VCR 6.3.1 + it if you have questions about that event.\n\nWould you like me to look up + information about Cloudflare''s MCP Demo Day, or is there something else I + can help you with?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":470,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":135,"output_tokens_details":{"thinking_tokens":24},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:08:07 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_metadata_request.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_metadata_request.yml index 1503ab75..ab9a7b07 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_metadata_request.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_metadata_request.yml @@ -5,14 +5,14 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Hello!"}],"max_tokens":1024,"metadata":{"user_id":"user-123"}}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello!","role":"user"}],"max_tokens":1024,"metadata":{"user_id":"user-123"}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -22,11 +22,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -38,14 +38,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '138' + - '127' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:47:39 GMT + - Tue, 14 Jul 2026 01:08:03 GMT Content-Type: - application/json Transfer-Encoding: @@ -53,50 +53,54 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:47:38Z' + - '2026-07-14T01:08:02Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:47:39Z' + - '2026-07-14T01:08:03Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:47:38Z' + - '2026-07-14T01:08:01Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:47:38Z' + - '2026-07-14T01:08:02Z' Request-Id: - - req_011CUDykDp9KNAtn517wsFCv + - req_011Cd14Ad7gFHWhm58GrdYNC Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1680' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-b6e67b7ed46aa4cdb99366be71a46e28-237b044bad8891e1-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 99050e2eea28eb20-SJC + - a1aca242aa46ebeb-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01B7P78hP2KnCj32KutBEqf1","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! - How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":9,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":12,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 03:47:39 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd14AdWjnukGEqkcEUirc","type":"message","role":"assistant","content":[{"type":"text","text":"Hi + there! How can I help you today? Whether it''s answering questions, brainstorming + ideas, helping with writing or code, or just chatting, I''m happy to assist. + What''s on your mind?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":10,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":63,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:08:03 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_multiple_messages.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_multiple_messages.yml index d6768877..9b73f7fb 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_multiple_messages.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_multiple_messages.yml @@ -5,16 +5,16 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Hello - there."},{"role":"assistant","content":"Hi, I''m Claude. How can I help you?"},{"role":"user","content":"Can - you explain LLMs in plain English?"}],"max_tokens":1024}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello there.","role":"user"},{"content":"Hi, + I''m Claude. How can I help you?","role":"assistant"},{"content":"Can you + explain LLMs in plain English?","role":"user"}],"max_tokens":1024}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +24,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -40,14 +40,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '246' + - '235' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:47:54 GMT + - Tue, 14 Jul 2026 01:07:27 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,66 +55,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:47:47Z' + - '2026-07-14T01:07:19Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '1999000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:47:56Z' + - '2026-07-14T01:07:27Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:47:47Z' + - '2026-07-14T01:07:19Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '11999000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:47:47Z' + - '2026-07-14T01:07:19Z' Request-Id: - - req_011CUDykr7Cujboe9DAa4QoZ + - req_011Cd147WwGRJhKmtwTEiYRX Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '8260' - Via: - - 1.1 google + Traceresponse: + - 00-a5bfc561ac836e02535fb7f6d09a7053-67ed789484fc6e65-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 99050e63c82beb20-SJC + - a1aca13b3d09250d-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01YWLMZ3ds11dJ9pJsuG88NM","type":"message","role":"assistant","content":[{"type":"text","text":"Sure! - LLMs (Large Language Models) are AI programs that understand and generate - text.\n\nHere''s how they work in simple terms:\n\n**What they do:**\n- Read - and write text that sounds human\n- Answer questions, write essays, code, - translate languages, and more\n\n**How they learn:**\n- They''re trained on - massive amounts of text from books, websites, and articles\n- They learn patterns - - like which words typically go together and how sentences are structured\n- - Think of it like someone who''s read millions of books and learned how language - works\n\n**How they respond:**\n- When you ask something, they predict what - words should come next based on their training\n- They don''t truly \"understand\" - like humans do - they''re recognizing patterns\n- They generate responses - word by word, choosing what''s most likely to fit\n\n**Key limitations:**\n- - They don''t have real knowledge or beliefs\n- They can make mistakes or \"hallucinate\" - false information\n- They don''t have access to current events (unless specifically - updated)\n- They can''t learn from conversations permanently\n\nThink of an - LLM as an incredibly well-read assistant that''s very good at pattern matching - in language, but doesn''t actually \"think\" the way humans do.\n\nDoes that - help? Any part you''d like me to explain more?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":38,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":282,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 03:47:54 GMT -recorded_with: VCR 6.3.1 + string: !binary |- + eyJtb2RlbCI6ImNsYXVkZS1zb25uZXQtNSIsImlkIjoibXNnXzAxMUNkMTQ3WFJIV21NSktNU0NESG5QeSIsInR5cGUiOiJtZXNzYWdlIiwicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0aGlua2luZyIsInRoaW5raW5nIjoiIiwic2lnbmF0dXJlIjoiRXNvQ0Nva0JDQThZQWlwQUpEUGJWOFE1REdPRTFZcHQxOGQyeUY5akQ4SUFRc0VqUXFVcm1ETnh0YStsYlA4TzQ1eGZhZkNNaG9jdGlENXc0TEd1b0xpdmdtVzdmMDJ0UHFzM1F6SVBZMnhoZFdSbExYTnZibTVsZEMwMU9BQkNDSFJvYVc1cmFXNW5XaVF5TlRVM1l6Sm1NaTFpWTJaaExUUXdOVFF0T1daaE9DMWhaVEV6WWpOaU5EZGtObUlTRERwbHVPRU14Q2NHTFd5a0Rob01xNDgzaEVCNDc2bHBhd0JnSWpEZzJWclBaUUQxM0N4eGRMMkZKVytYSHY4eFBjTU5FQ2dEWjU0Vk9kdjJmOFVoUW03cS9kTVNwamRKdFcrMTJiSXFiaDlPVGdwV1kyNGFQSGN6SUwwdGNGejN1UTlSdGNFcmdldXZiNEFtZ2Z6TWtRaHBnbmlVL2lYVXpuVW5iV2txWFRXaHNDSnZzckdWa0J4dEhzazhVZHcvR1EvODk4RkNPZ0NaSy9JSytvRnlKemljRjRDcEs1V3EwS1UyVGtZVEJFZVNza1Y0NEYwTm5jRkI3L1lXR0FFPSJ9LHsidHlwZSI6InRleHQiLCJ0ZXh0IjoiIyBMYXJnZSBMYW5ndWFnZSBNb2RlbHMsIEV4cGxhaW5lZCBTaW1wbHlcblxuKipUaGUgYmFzaWMgaWRlYToqKlxuQW4gTExNIGlzIGEgY29tcHV0ZXIgcHJvZ3JhbSB0cmFpbmVkIHRvIHByZWRpY3Qgd2hhdCB3b3JkIChvciBwaWVjZSBvZiBhIHdvcmQpIGNvbWVzIG5leHQgaW4gYSBzZXF1ZW5jZSBvZiB0ZXh0LiBUaGF0J3MgaXQgYXQgaXRzIGNvcmUg4oCUIGJ1dCBkb2luZyB0aGlzIHJlYWxseSwgcmVhbGx5IHdlbGwgbGVhZHMgdG8gc3VycHJpc2luZ2x5IHBvd2VyZnVsIGNhcGFiaWxpdGllcy5cblxuKipIb3cgdGhleSBsZWFybjoqKlxuMS4gKipUcmFpbmluZyoqOiBUaGUgbW9kZWwgcmVhZHMgZW5vcm1vdXMgYW1vdW50cyBvZiB0ZXh0IChib29rcywgd2Vic2l0ZXMsIGFydGljbGVzKSDigJQgZXNzZW50aWFsbHkgbGVhcm5pbmcgcGF0dGVybnMgaW4gaG93IGxhbmd1YWdlIHdvcmtzLCB3aGF0IGZhY3RzIHRlbmQgdG8gZ28gdG9nZXRoZXIsIGhvdyBpZGVhcyBjb25uZWN0LCBldGMuXG4yLiAqKlBhdHRlcm4gcmVjb2duaXRpb24qKjogVGhyb3VnaCB0aGlzIHByb2Nlc3MsIGl0IGJ1aWxkcyBhbiBpbnRlcm5hbCBzdGF0aXN0aWNhbCBcIm1hcFwiIG9mIGxhbmd1YWdlIOKAlCB3aGljaCB3b3Jkcy9jb25jZXB0cyByZWxhdGUgdG8gZWFjaCBvdGhlciBhbmQgaG93LlxuMy4gKipQcmVkaWN0aW9uKio6IFdoZW4geW91IGdpdmUgaXQgYSBwcm9tcHQsIGl0IHVzZXMgdGhhdCBtYXAgdG8gcHJlZGljdCB0aGUgbW9zdCBsaWtlbHksIGNvaGVyZW50IGNvbnRpbnVhdGlvbiDigJQgb25lIHBpZWNlIGF0IGEgdGltZSwgYnVpbGRpbmcgYSBmdWxsIHJlc3BvbnNlLlxuXG4qKkEgdXNlZnVsIGFuYWxvZ3k6KipcblRoaW5rIG9mIGl0IGxpa2UgYSBleHRyZW1lbHkgd2VsbC1yZWFkIHBlcnNvbiB3aG8gaGFzIGFic29yYmVkIHBhdHRlcm5zIGZyb20gbWlsbGlvbnMgb2YgYm9va3MgYW5kIGNvbnZlcnNhdGlvbnMsIGFuZCBjYW4gZ2VuZXJhdGUgZml0dGluZyByZXNwb25zZXMgYmFzZWQgb24gdGhvc2UgcGF0dGVybnMg4oCUIHdpdGhvdXQgbGl0ZXJhbGx5IFwibG9va2luZyBhbnl0aGluZyB1cFwiIGluIHJlYWwtdGltZSAodW5sZXNzIGl0J3MgY29ubmVjdGVkIHRvIHNlYXJjaCB0b29scykuXG5cbioqV2hhdCBtYWtlcyB0aGVtIHNlZW0gaW50ZWxsaWdlbnQ6Kipcbkxhbmd1YWdlIGVuY29kZXMgYSBsb3Qgb2YgaHVtYW4ga25vd2xlZGdlIGFuZCByZWFzb25pbmcuIFNvIGEgbW9kZWwgdGhhdCdzIHJlYWxseSBnb29kIGF0IHByZWRpY3RpbmcgY29oZXJlbnQsIGNvbnRleHR1YWxseSBhcHByb3ByaWF0ZSB0ZXh0IGVuZHMgdXAgYmVpbmcgZ29vZCBhdDpcbi0gQW5zd2VyaW5nIHF1ZXN0aW9uc1xuLSBXcml0aW5nIGFuZCBzdW1tYXJpemluZ1xuLSBCYXNpYyByZWFzb25pbmcgYW5kIG1hdGhcbi0gQ29kaW5nXG4tIEZvbGxvd2luZyBpbnN0cnVjdGlvbnNcblxuKipJbXBvcnRhbnQgY2F2ZWF0czoqKlxuLSBUaGV5IGRvbid0IFwia25vd1wiIHRoaW5ncyB0aGUgd2F5IGh1bWFucyBkbyDigJQgdGhleSBnZW5lcmF0ZSBwbGF1c2libGUtc291bmRpbmcgdGV4dCBiYXNlZCBvbiBwYXR0ZXJuc1xuLSBUaGV5IGNhbiBiZSBjb25maWRlbnRseSB3cm9uZyAoc29tZXRpbWVzIGNhbGxlZCBcImhhbGx1Y2luYXRpbmdcIilcbi0gVGhleSBkb24ndCBoYXZlIHJlYWwtdGltZSBrbm93bGVkZ2UgdW5sZXNzIGNvbm5lY3RlZCB0byBleHRlcm5hbCB0b29sc1xuLSBUaGV5IGRvbid0IHRydWx5IFwidW5kZXJzdGFuZFwiIGluIHRoZSBodW1hbiBzZW5zZSwgdGhvdWdoIHRoZSBsaW5lIGhlcmUgZ2V0cyBwaGlsb3NvcGhpY2FsbHkgZnV6enlcblxuV2FudCBtZSB0byBnbyBkZWVwZXIgb24gYW55IHBhcnQg4oCUIGxpa2UgaG93IHRoZSB0cmFpbmluZyBhY3R1YWxseSB3b3Jrcywgb3Igd2h5IHRoZXkgc29tZXRpbWVzIG1ha2UgbWlzdGFrZXM/In1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjQ2LCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6NjM2LCJvdXRwdXRfdG9rZW5zX2RldGFpbHMiOnsidGhpbmtpbmdfdG9rZW5zIjozNX0sInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Imdsb2JhbCJ9fQ== + recorded_at: Tue, 14 Jul 2026 01:07:27 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_sampling_parameters.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_sampling_parameters.yml index 7fbe8a4b..4b006529 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_sampling_parameters.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_sampling_parameters.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Write - a creative story."}],"max_tokens":2048,"top_k":50,"top_p":0.95}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Write a creative + story.","role":"user"}],"max_tokens":2048}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -39,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '145' + - '110' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:48:44 GMT + - Tue, 14 Jul 2026 01:07:50 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,50 +54,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:48:11Z' + - '2026-07-14T01:07:35Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '7000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:48:52Z' + - '2026-07-14T01:07:50Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:48:12Z' + - '2026-07-14T01:07:35Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '37000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:48:11Z' + - '2026-07-14T01:07:35Z' Request-Id: - - req_011CUDynhY4uQHvZMYDA34fp + - req_011Cd148j63Gx7cDJhEQ9Cpu Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '33626' - Via: - - 1.1 google + Traceresponse: + - 00-1863572e4a8656df31a05de01d14df55-832558f8461e0d88-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 99050f002b1b230a-SJC + - a1aca1a1dd2cc8ce-SJC body: encoding: ASCII-8BIT string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1zb25uZXQtNC01LTIwMjUwOTI5IiwiaWQiOiJtc2dfMDFEZ3pOSnBTU2dQRDFHeVB0dVdzdzV5IiwidHlwZSI6Im1lc3NhZ2UiLCJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiIyBUaGUgQ2FydG9ncmFwaGVyIG9mIEZvcmdvdHRlbiBQbGFjZXNcblxuVGhlIG1hcCBhcnJpdmVkIG9uIGEgVHVlc2RheSwgc2xpcHBlZCB1bmRlciBNaXJhJ3MgZG9vciBpbiBhIGxlYXRoZXIgdHViZSB0aGF0IHNtZWxsZWQgb2YgY2lubmFtb24gYW5kIG9sZCByYWluLlxuXG5TaGUgYWxtb3N0IHRocmV3IGl0IGF3YXkuIEhlciBhcGFydG1lbnQgd2FzIGFscmVhZHkgY2x1dHRlcmVkIHdpdGggdGhlIGRlYnJpcyBvZiBhYmFuZG9uZWQgaG9iYmllc+KAlGEgdWt1bGVsZSB3aXRoIHR3byBzdHJpbmdzLCBhIGJyZWFkIG1ha2VyIHN0aWxsIGluIGl0cyBib3gsIHNldmVudGVlbiBzdWNjdWxlbnRzIGluIHZhcmlvdXMgc3RhZ2VzIG9mIGRlYXRoLiBCdXQgc29tZXRoaW5nIGFib3V0IHRoZSB3ZWlnaHQgb2YgdGhlIHR1YmUgbWFkZSBoZXIgcGF1c2UuXG5cblRoZSBtYXAgaW5zaWRlIHdhcyBoYW5kLWRyYXduIG9uIHBhcmNobWVudCB0aGF0IGZlbHQgaW1wb3NzaWJseSBzb2Z0LCBsaWtlIG1vdGggd2luZ3MuIEl0IHNob3dlZCBoZXIgbmVpZ2hib3Job29kLCBidXQgKndyb25nKi4gVGhlIGNvZmZlZSBzaG9wIG9uIEZpZnRoIFN0cmVldCB3YXMgbGFiZWxlZCBcIlRoZSBIb3VzZSBvZiBCaXR0ZXIgVHJ1dGhzLlwiIFRoZSBwYXJrIHdoZXJlIHNoZSBhdGUgbHVuY2ggd2FzIG1hcmtlZCBcIlRoZSBHYXJkZW4gb2YgQWxtb3N0LlwiIEFuZCBoZXIgb3duIGFwYXJ0bWVudCBidWlsZGluZyBib3JlIGEgbmFtZSBpbiBlbGVnYW50IHNjcmlwdDogXCJUaGUgVG93ZXIgb2YgUG9zdHBvbmVkIERyZWFtcy5cIlxuXG5NaXJhIGxhdWdoZWQgbmVydm91c2x5LiBTb21lIGFydCBzdHVkZW50J3MgcHJvamVjdCwgcHJvYmFibHkuIEJ1dCB3aGVuIHNoZSBsb29rZWQgY2xvc2VyLCBzaGUgc2F3IGEgcm91dGUgdHJhY2VkIGluIGZhZGluZyByZWQgaW5rLCBzdGFydGluZyBmcm9tIGhlciBidWlsZGluZyBhbmQgd2luZGluZyB0aHJvdWdoIHN0cmVldHMgc2hlJ2QgbmV2ZXIgbm90aWNlZCBiZWZvcmUsIGVuZGluZyBhdCBhIGxvY2F0aW9uIG1hcmtlZCBzaW1wbHkgd2l0aCBhIHN0YXIuXG5cblNoZSB0b2xkIGhlcnNlbGYgc2hlIHdvdWxkbid0IGZvbGxvdyBpdC5cblxuU2hlIHRvbGQgaGVyc2VsZiB0aGlzIGFzIHNoZSBwdXQgb24gaGVyIHNob2VzLlxuXG4tLS1cblxuVGhlIG1hcCBsZWQgaGVyIGRvd24gYW4gYWxsZXkgc2hlJ2QgcGFzc2VkIGEgdGhvdXNhbmQgdGltZXMgd2l0aG91dCBzZWVpbmfigJRvbmUgb2YgdGhvc2UgZ2FwcyBiZXR3ZWVuIGJ1aWxkaW5ncyB0aGF0IHRoZSBleWUgc2xpZGVzIG92ZXIuIEl0IG9wZW5lZCBpbnRvIGEgY291cnR5YXJkIHdoZXJlIGl2eSBncmV3IGluIGltcG9zc2libGUgc3BpcmFscyBhbmQgYSBmb3VudGFpbiBidXJibGVkIHdpdGggd2F0ZXIgdGhhdCBmbG93ZWQgKnVwd2FyZCogYmVmb3JlIHNwbGFzaGluZyBkb3duLlxuXG5BbiBvbGQgd29tYW4gc2F0IG9uIGEgYmVuY2gsIGZlZWRpbmcgYnJlYWRjcnVtYnMgdG8gYmlyZHMgdGhhdCBzaGltbWVyZWQgbGlrZSBvaWwgc2xpY2tzLlxuXG5cIkFoLFwiIHRoZSB3b21hbiBzYWlkLCBub3QgbG9va2luZyB1cC4gXCJBbm90aGVyIG9uZSB3aG8gZm91bmQgdGhlaXIgbWFwLlwiXG5cblwiQW5vdGhlciBvbmU/XCIgTWlyYSBjbHV0Y2hlZCB0aGUgdHViZSB0aWdodGVyLlxuXG5cIldlIGFsbCBnZXQgb25lLCBkZWFyLiBXaGVuIHdlJ3ZlIHNwZW50IHRvbyBsb25nIGxpdmluZyBpbiB0aGUgbWFyZ2lucyBvZiBvdXIgb3duIGxpdmVzLlwiIFRoZSB3b21hbiBmaW5hbGx5IG1ldCBoZXIgZXllcy4gXCJJJ20gdGhlIENhcnRvZ3JhcGhlci4gSSBtYXAgdGhlIHBsYWNlcyB0aGF0IGV4aXN0IGJldHdlZW4gd2hhdCBpcyBhbmQgd2hhdCBjb3VsZCBiZS5cIlxuXG5cIlRoYXQncy4uLiB0aGF0IGRvZXNuJ3QgbWFrZSBzZW5zZS5cIlxuXG5cIk1vc3QgaW1wb3J0YW50IHRoaW5ncyBkb24ndC5cIiBUaGUgQ2FydG9ncmFwaGVyIHNtaWxlZC4gXCJUZWxsIG1lLCB3aGVuIGRpZCB5b3Ugc3RvcCBiZWluZyBjdXJpb3VzPyBXaGVuIGRpZCB5b3Ugc3RhcnQgdGFraW5nIHRoZSBzYW1lIHJvdXRlIHRvIHdvcmssIG9yZGVyaW5nIHRoZSBzYW1lIGNvZmZlZSwgaGF2aW5nIHRoZSBzYW1lIGNvbnZlcnNhdGlvbnM/XCJcblxuTWlyYSBvcGVuZWQgaGVyIG1vdXRoIHRvIHByb3Rlc3QsIGJ1dCB0aGUgd29yZHMgZGllZC4gU2hlIGNvdWxkbid0IHJlbWVtYmVyIHRoZSBsYXN0IHRpbWUgc2hlJ2Qgc3VycHJpc2VkIGhlcnNlbGYuXG5cblwiVGhlIG1hcCBzaG93cyB5b3UgcGxhY2VzIHlvdSd2ZSBmb3Jnb3R0ZW4gdG8gc2VlLFwiIHRoZSBDYXJ0b2dyYXBoZXIgY29udGludWVkLiBcIlRoZSBzaG9wIHRoYXQgb25seSBhcHBlYXJzIG9uIFdlZG5lc2RheXMuIFRoZSBsaWJyYXJ5IHdpdGggYm9va3MgdGhhdCBoYXZlbid0IGJlZW4gd3JpdHRlbiB5ZXQuIFRoZSBjYWbDqSB3aGVyZSBldmVyeW9uZSBzcGVha3MgaW4gc29uZy4gVGhleSd2ZSBhbHdheXMgYmVlbiB0aGVyZS4gWW91IGp1c3Qgc3RvcHBlZCBsb29raW5nLlwiXG5cblNoZSBoYW5kZWQgTWlyYSBhIHBlbiB0aGF0IGdsZWFtZWQgbGlrZSBjYXB0dXJlZCBzdGFybGlnaHQuXG5cblwiWW91ciB0dXJuIG5vdy4gRHJhdyBhIG1hcCBmb3Igc29tZW9uZSBlbHNlLiBTaG93IHRoZW0gd2hhdCB0aGV5J3ZlIHN0b3BwZWQgc2VlaW5nLiBUaGF0J3MgdGhlIHByaWNlIG9mIGFkbWlzc2lvbuKAlG9uZSBtYXAgcmVjZWl2ZWQsIG9uZSBtYXAgZ2l2ZW4uXCJcblxuTWlyYSBzdGFyZWQgYXQgdGhlIGJsYW5rIHBhcmNobWVudCB0aGF0IGhhZCBhcHBlYXJlZCBpbiBoZXIgaGFuZHMuIFwiQnV0IEkgZG9uJ3Qga25vdyBob3cgdG8gZHJhdyBtYXBzLlwiXG5cblwiWW91IGtub3cgaG93IHRvIHJlbWVtYmVyIHdvbmRlci4gVGhhdCdzIHRoZSBzYW1lIHRoaW5nLlwiXG5cbi0tLVxuXG5NaXJhIHNwZW50IHRocmVlIGRheXMgb24gaGVyIG1hcC4gU2hlIGRyZXcgdGhlIGJvb2tzdG9yZSB3aGVyZSB0aGUgb3duZXIgYWx3YXlzIGtuZXcgd2hhdCB5b3UgbmVlZGVkIHRvIHJlYWQuIFRoZSBiZW5jaCB3aGVyZSBzdW5zZXQgbGFzdGVkIHR3aWNlIGFzIGxvbmcuIFRoZSBpbnRlcnNlY3Rpb24gd2hlcmUgbXVzaWNpYW5zIGdhdGhlcmVkIG9uIHJhaW55IG5pZ2h0cywgcGxheWluZyBmb3Igbm8gb25lIGFuZCBldmVyeW9uZS5cblxuUGxhY2VzIHNoZSdkIGxvdmVkIG9uY2UsIGJlZm9yZSBzaGUnZCBzdG9wcGVkIHBheWluZyBhdHRlbnRpb24uXG5cbldoZW4gc2hlIGZpbmlzaGVkLCBzaGUgcm9sbGVkIGl0IHVwIGFuZCBsZWZ0IGl0IHVuZGVyIGEgc3RyYW5nZXIncyBkb29y4oCUYSB0aXJlZC1sb29raW5nIG1hbiBzaGUnZCBzZWVuIGluIGhlciBidWlsZGluZywgYWx3YXlzIGluIGEgZ3JheSBzdWl0LCBhbHdheXMgc3RhcmluZyBhdCBoaXMgcGhvbmUuXG5cblNoZSBkaWRuJ3Qga25vdyBpZiBoZSdkIGZvbGxvdyBpdC4gQnV0IHR3byB3ZWVrcyBsYXRlciwgc2hlIHNhdyBoaW0gaW4gdGhlIGNvdXJ0eWFyZCB3aXRoIHRoZSBpbXBvc3NpYmxlIGZvdW50YWluLCBza2V0Y2hpbmcgc29tZXRoaW5nIGluIGEgbm90ZWJvb2ssIGFuZCBoZSBsb29rZWQgdXAgYW5kIHNtaWxlZCBhdCBoZXIgd2l0aCB0aGUgZGF6ZWQgZXhwcmVzc2lvbiBvZiBzb21lb25lIHdha2luZyBmcm9tIGEgbG9uZyBzbGVlcC5cblxuVGhlIGNpdHksIE1pcmEgcmVhbGl6ZWQsIHdhcyBmdWxsIG9mIGNhcnRvZ3JhcGhlcnMgbm93LiBQZW9wbGUgcmVtZW1iZXJpbmcgaG93IHRvIHNlZS4gRHJhd2luZyBtYXBzIGZvciBlYWNoIG90aGVyLCBtYXJraW5nIHRoZSBmb3Jnb3R0ZW4gcGxhY2VzLCB0aGUgb3Zlcmxvb2tlZCBtb21lbnRzLCB0aGUgc3RyZWV0cyB0aGF0IG9ubHkgZXhpc3RlZCBmb3IgdGhvc2Ugd2hvIHN0aWxsIGtuZXcgaG93IHRvIHdhbmRlci5cblxuU2hlIGtlcHQgaGVyIG9yaWdpbmFsIG1hcCBvbiBoZXIgd2FsbCwgYnV0IHNoZSBkaWRuJ3QgbmVlZCBpdCBhbnltb3JlLlxuXG5TaGUnZCBsZWFybmVkIHRvIGRyYXcgaGVyIG93bi5cblxuLS0tXG5cbipJbiB0aGUgbWFyZ2lucyBvZiBoZXIgbWFwLCBpbiBpbmsgdGhhdCBvbmx5IGFwcGVhcmVkIGluIG1vb25saWdodCwgdGhlIENhcnRvZ3JhcGhlciBoYWQgd3JpdHRlbiBvbmUgZmluYWwgbm90ZTogXCJFdmVyeSBwbGFjZSBpcyBmb3Jnb3R0ZW4gdW50aWwgc29tZW9uZSByZW1lbWJlcnMgdG8gbG9vay4gRXZlcnkgZHJlYW1lciBpcyBsb3N0IHVudGlsIHRoZXkgZHJhdyB0aGVpciBvd24gd2F5IGhvbWUuXCIqIn1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjoxMiwiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfY3JlYXRpb24iOnsiZXBoZW1lcmFsXzVtX2lucHV0X3Rva2VucyI6MCwiZXBoZW1lcmFsXzFoX2lucHV0X3Rva2VucyI6MH0sIm91dHB1dF90b2tlbnMiOjk5Niwic2VydmljZV90aWVyIjoic3RhbmRhcmQifX0= - recorded_at: Sat, 18 Oct 2025 03:48:44 GMT -recorded_with: VCR 6.3.1 + eyJtb2RlbCI6ImNsYXVkZS1zb25uZXQtNSIsImlkIjoibXNnXzAxMUNkMTQ4allhTW5GMzQ2d041WjRpbyIsInR5cGUiOiJtZXNzYWdlIiwicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiMgVGhlIExpZ2h0aG91c2UgS2VlcGVyJ3MgTGFzdCBTaWduYWxcblxuT2xkIE1hcmlzb2wgaGFkIGtlcHQgdGhlIGxpZ2h0aG91c2Ugb24gQ2FwZSBTb2xpdHVkZSBmb3IgdGhpcnR5LXNldmVuIHllYXJzLCBldmVyIHNpbmNlIHRoZSBhdXRvbWF0ZWQgc3lzdGVtcyBmYWlsZWQgYW5kIHNvbWVvbmUgbmVlZGVkIHRvIGNsaW1iIHRoZSB0d28gaHVuZHJlZCBhbmQgdHdlbHZlIHN0ZXBzIGVhY2ggbmlnaHQgdG8gbGlnaHQgdGhlIGxhbXAgYnkgaGFuZC4gVGhlIHRvd24gYmVsb3cgaGFkIG9mZmVyZWQgdG8gbW9kZXJuaXplIGl0IGEgZG96ZW4gdGltZXMsIGJ1dCBzaGUgYWx3YXlzIHJlZnVzZWQuIFwiU29tZSB0aGluZ3MsXCIgc2hlJ2Qgc2F5LCBcIm5lZWQgYSBodW1hbiB0b3VjaCB0byB3b3JrIHByb3Blcmx5LlwiXG5cblNoZSB3YXMgc2V2ZW50eS1vbmUgbm93LCBhbmQgaGVyIGtuZWVzIHNjcmVhbWVkIHdpdGggZWFjaCBzdGVwLCBidXQgc2hlIGNsaW1iZWQgYW55d2F5LCBldmVyeSBldmVuaW5nIGF0IGR1c2ssIHJhaW4gb3Igc2hpbmUgb3IgdGhlIGJpdHRlciBmb2cgdGhhdCByb2xsZWQgaW4gZnJvbSB0aGUgbm9ydGguXG5cblRvbmlnaHQgd2FzIGRpZmZlcmVudC4gVG9uaWdodCwgYXMgc2hlIHJlYWNoZWQgdGhlIGxhbXAgcm9vbSwgc2hlIGZvdW5kIGEgeW91bmcgbWFuIHNpdHRpbmcgb24gdGhlIGZsb29yLCBzb2FrZWQgdG8gdGhlIGJvbmUsIHN0YXJpbmcgYXQgbm90aGluZy5cblxuXCJUaGUgcm9ja3MsXCIgaGUgc2FpZCwgbm90IGxvb2tpbmcgdXAuIFwiSSB3YXMgc3VwcG9zZWQgdG8gYmUgb24gdGhhdCBib2F0LiBUaGUgb25lIHRoYXQgc2FuayBsYXN0IHdlZWsuIEkgbWlzc2VkIGl0IGJlY2F1c2UgbXkgY2FyIGJyb2tlIGRvd24sIGFuZCBldmVyeW9uZSBJIGxvdmVkIHdhcyBvbiBpdC5cIlxuXG5NYXJpc29sIHNhaWQgbm90aGluZy4gU2hlIHNpbXBseSBsaXQgdGhlIGxhbXAsIGl0cyBiZWFtIHN3ZWVwaW5nIG91dCBhY3Jvc3MgdGhlIGJsYWNrIHdhdGVyIGxpa2UgYSBzbG93LCBwYXRpZW50IGhlYXJ0YmVhdC5cblxuXCJXaHkgZG8geW91IHN0aWxsIGRvIHRoaXM/XCIgdGhlIHlvdW5nIG1hbiBmaW5hbGx5IGFza2VkLiBcIkV2ZXJ5dGhpbmcncyBhdXRvbWF0ZWQgbm93LiBTYXRlbGxpdGVzLCBHUFMsIHJhZGFyLiBObyBzaGlwIG5lZWRzIHlvdXIgbGlnaHQgdG8gc3Vydml2ZS5cIlxuXG5cIlNoaXBzIGRvbid0LFwiIHNoZSBhZ3JlZWQsIHNldHRsaW5nIG9udG8gdGhlIGJlbmNoIGJlc2lkZSBoaW0gd2l0aCBhIGdyb2FuLiBcIkJ1dCBzYWlsb3JzIHNvbWV0aW1lcyBkby4gVGhlcmUncyBhIGRpZmZlcmVuY2UgYmV0d2VlbiBub3QgZ2V0dGluZyBsb3N0LCBhbmQga25vd2luZyBzb21lb25lJ3Mgd2F0Y2hpbmcgZm9yIHlvdSB0byBjb21lIGhvbWUuXCJcblxuVGhleSBzYXQgaW4gc2lsZW5jZSBhcyB0aGUgbGlnaHQgc3dlcHQgcm91bmQgYW5kIHJvdW5kLlxuXG5cIk15IGh1c2JhbmQgd2FzIGEgZmlzaGVybWFuLFwiIHNoZSBzYWlkIGFmdGVyIGEgd2hpbGUuIFwiVGhpcnR5IHllYXJzIGFnbywgaGlzIGJvYXQgbG9zdCBwb3dlciBpbiBhIHN0b3JtLiBObyBHUFMsIG5vIHJhZGFy4oCUanVzdCB0aGlzIGxpZ2h0LCBndWlkaW5nIGhpbSBiYWNrLiBIZSBzYWlkIHdhdGNoaW5nIGl0IHR1cm4sIGtub3dpbmcgSSB3YXMgdXAgaGVyZSBrZWVwaW5nIGl0IGxpdCBmb3IgaGltLCB3YXMgdGhlIG9ubHkgdGhpbmcgdGhhdCBrZXB0IGhpbSBmcm9tIGdpdmluZyB1cC5cIiBTaGUgc21pbGVkIGZhaW50bHkuIFwiSGUncyBnb25lIG5vdy4gSGVhcnQsIG5vdCBzZWEuIEJ1dCBJIGtlZXAgY2xpbWJpbmcuIEJlY2F1c2Ugc29tZXdoZXJlIG91dCB0aGVyZSwgc29tZW9uZSBtaWdodCBuZWVkIHRvIHNlZSB0aGF0IGEgcGVyc29uIGNhcmVkIGVub3VnaCB0byBsaWdodCB0aGUgd2F5LiBOb3QgYSBtYWNoaW5lLiBBIHBlcnNvbi5cIlxuXG5UaGUgeW91bmcgbWFuIHdpcGVkIGhpcyBmYWNlLiBcIkkgZG9uJ3Qga25vdyBob3cgdG8ga2VlcCBnb2luZy4gV2l0aG91dCB0aGVtLlwiXG5cblwiWW91IGRvbid0IGZpZ3VyZSB0aGF0IG91dCBpbiBvbmUgbmlnaHQsXCIgTWFyaXNvbCBzYWlkLiBcIllvdSBqdXN0IGNsaW1iIHRoZSBuZXh0IHN0ZXAuIFRoZW4gdGhlIG9uZSBhZnRlciB0aGF0LiBFdmVudHVhbGx5LCB5b3UgbG9vayBiYWNrIGFuZCByZWFsaXplIHlvdSd2ZSBjbGltYmVkIGZ1cnRoZXIgdGhhbiB5b3UgdGhvdWdodCBwb3NzaWJsZS5cIlxuXG5UaGV5IHdhdGNoZWQgdGhlIGxpZ2h0IHR1cm4gdW50aWwgdGhlIGhvcml6b24gYmVnYW4gdG8gcGFsZSB3aXRoIGRhd24uIFdoZW4gc2hlIGZpbmFsbHkgcm9zZSB0byBleHRpbmd1aXNoIHRoZSBsYW1wLCB0aGUgeW91bmcgbWFuIHN0b29kIHRvby5cblxuXCJDYW4gSSBjb21lIGJhY2s/XCIgaGUgYXNrZWQuIFwiVG9tb3Jyb3cgbmlnaHQ/XCJcblxuTWFyaXNvbCBzbWlsZWQsIHRoZSBzYW1lIHdheSBzaGUgaGFkIGZvciB0aGlydHktc2V2ZW4geWVhcnMgb2YgZHVza3MuIFwiVGhlIGxpZ2h0IG5lZWRzIHNvbWVvbmUgdG8gY2xpbWIgdG8gaXQuIE1pZ2h0IGFzIHdlbGwgYmUgeW91LCBsZWFybmluZyBob3csIGZvciB3aGVuZXZlciB0aGVzZSBvbGQga25lZXMgZmluYWxseSBnaXZlIG91dC5cIlxuXG5IZSBkaWQgY29tZSBiYWNrLiBBbmQgdGhlIG5pZ2h0IGFmdGVyIHRoYXQuIEFuZCBzbG93bHksIHRoZSBsaWdodGhvdXNlIG9uIENhcGUgU29saXR1ZGUgZ2FpbmVkIGEgc2Vjb25kIGtlZXBlcuKAlG5vdCBiZWNhdXNlIHRoZSBsaWdodCBuZWVkZWQgdHdvIHBlb3BsZSwgYnV0IGJlY2F1c2UgZ3JpZWYsIGxpa2UgdGhlIHNlYSwgaXMgZWFzaWVyIHRvIG5hdmlnYXRlIHdoZW4gc29tZW9uZSBlbHNlIGlzIGhvbGRpbmcgYSBsYW50ZXJuIGJlc2lkZSB5b3UuIn1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjEzLCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6OTQyLCJvdXRwdXRfdG9rZW5zX2RldGFpbHMiOnsidGhpbmtpbmdfdG9rZW5zIjowfSwic2VydmljZV90aWVyIjoic3RhbmRhcmQiLCJpbmZlcmVuY2VfZ2VvIjoiZ2xvYmFsIn19 + recorded_at: Tue, 14 Jul 2026 01:07:50 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_stop_sequences.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_stop_sequences.yml index 512518b3..51894415 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_stop_sequences.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_stop_sequences.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Generate - a JSON object representing a person with a name, email, and phone number ."}],"max_tokens":1024,"stop_sequences":["}"]}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Generate a JSON + object representing a person with a name, email, and phone number .","role":"user"}],"max_tokens":1024,"stop_sequences":["}"]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -39,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '204' + - '193' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:47:37 GMT + - Tue, 14 Jul 2026 01:07:52 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,50 +54,53 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:47:36Z' + - '2026-07-14T01:07:51Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:47:37Z' + - '2026-07-14T01:07:52Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:47:36Z' + - '2026-07-14T01:07:51Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:47:36Z' + - '2026-07-14T01:07:51Z' Request-Id: - - req_011CUDyk4zKeQRqi7FsDRvw3 + - req_011Cd149tEjbUuX8KMeRV1rK Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1925' - Via: - - 1.1 google + Traceresponse: + - 00-57776f84946fd2974c0b7a456657fdde-a2e56e084442e4be-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 99050e21fc37169e-SJC + - a1aca203c8b10d16-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01MXYtF6bbpWtwC587ZPpqc2","type":"message","role":"assistant","content":[{"type":"text","text":"```json\n{\n \"name\": - \"John Smith\",\n \"email\": \"john.smith@example.com\",\n \"phone\": \"+1-555-123-4567\"\n"}],"stop_reason":"stop_sequence","stop_sequence":"}","usage":{"input_tokens":24,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":44,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 03:47:37 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd149uugxYJVLtP5uN9d9","type":"message","role":"assistant","content":[{"type":"text","text":"Here''s + a JSON object representing a person:\n\n```json\n{\n \"name\": \"Sarah Johnson\",\n \"email\": + \"sarah.johnson@email.com\",\n \"phone\": \"+1-555-123-4567\"\n"}],"stop_reason":"stop_sequence","stop_sequence":"}","stop_details":null,"usage":{"input_tokens":29,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":70,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:07:52 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_streaming.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_streaming.yml index d1bfd6d4..6ba1e21a 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_streaming.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_streaming.yml @@ -5,15 +5,14 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Tell - me a story."}],"max_tokens":1024,"stream":true}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Tell me a story.","role":"user"}],"max_tokens":1024,"stream":true}' headers: Accept-Encoding: - - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + - identity Accept: - text/event-stream User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,83 +22,87 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: - '2023-06-01' X-Api-Key: - ACCESS_TOKEN + X-Stainless-Helper-Method: + - stream X-Stainless-Retry-Count: - '0' X-Stainless-Timeout: - '600.0' Content-Length: - - '128' + - '117' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:47:03 GMT + - Tue, 14 Jul 2026 01:06:58 GMT Content-Type: - text/event-stream; charset=utf-8 Transfer-Encoding: - chunked Connection: - keep-alive - Cf-Ray: - - 99050d513da2eb25-SJC Cache-Control: - no-cache Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:47:02Z' + - '2026-07-14T01:06:57Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:47:02Z' + - '2026-07-14T01:06:57Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:47:03Z' + - '2026-07-14T01:06:57Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:47:02Z' + - '2026-07-14T01:06:57Z' Request-Id: - - req_011CUDyhcFBgsDodsJNQbSTE + - req_011Cd145wScEoL4GVR9r1jHS Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1770' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-7a961373014c3bfe107fe2ae1f84c48f-23e4803e74addf52-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC + Cf-Ray: + - a1aca0b58e8feb35-SJC body: encoding: ASCII-8BIT string: !binary |- - ZXZlbnQ6IG1lc3NhZ2Vfc3RhcnQKZGF0YTogeyJ0eXBlIjoibWVzc2FnZV9zdGFydCIsIm1lc3NhZ2UiOnsibW9kZWwiOiJjbGF1ZGUtc29ubmV0LTQtNS0yMDI1MDkyOSIsImlkIjoibXNnXzAxQ3BFVlV4QjVKRmhhR0xWZk5MTXhxTCIsInR5cGUiOiJtZXNzYWdlIiwicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOltdLCJzdG9wX3JlYXNvbiI6bnVsbCwic3RvcF9zZXF1ZW5jZSI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjoxMiwiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfY3JlYXRpb24iOnsiZXBoZW1lcmFsXzVtX2lucHV0X3Rva2VucyI6MCwiZXBoZW1lcmFsXzFoX2lucHV0X3Rva2VucyI6MH0sIm91dHB1dF90b2tlbnMiOjEsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIn19IH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX3N0YXJ0CmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfc3RhcnQiLCJpbmRleCI6MCwiY29udGVudF9ibG9jayI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiIifSAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIjIn0gICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBUaGUgTGlnaHRob3VzZSJ9ICAgICAgfQoKZXZlbnQ6IHBpbmcKZGF0YTogeyJ0eXBlIjogInBpbmcifQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgS2VlcGVyJ3MgU2VjcmV0In0gICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJcblxuT24ifX0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGEgcm9ja3kgaXNsYW4ifSAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJkIHdoZXJlIHRoZSBzZWEgbWV0In0gICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdGhlIHNreSBpbiJ9IH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGVuZGxlc3MgZ3JheSwgdGhlcmUgbGl2ZWQgYSBsaWdodGhvdXNlIGtlZXBlciBuYW1lIn0gIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiZCBFbGlhcy4gRXZlcnkifSAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgbmlnaHQsIGhlIGNsaW0ifSB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImJlZCB0aGUgIn0gICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIxMjcgc3BpciJ9ICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImFsaW5nIHN0ZXBzIn0gICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB0byBsaWdodCJ9ICAgICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdGhlIGdyZWF0In0gICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBsYW1wIHRoYXQgd2FybmUifSAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJkIHNoaXBzIGF3YXkifSAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgZnJvbSB0aGUgamEifSAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiZ2dlZCByb2NrcyBiZWxvdy5cblxuRWxpYXMifSAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBoYWQga2VwdCJ9ICAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB0aGlzIGxpZ2h0aG91c2UifSAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGZvciBmb3J0eSJ9ICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHllYXJzIn0gICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiwgYW5kIGluIn0gICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgYWxsIn0gICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdGhhdCB0aW1lLCBoZSBoYWQgbmV2ZXIgbWlzc2UifSAgICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiZCBhIHNpbmdsZSJ9ICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIG5pZ2h0LiBUaGUifSAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdmlsbCJ9ICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImFnZXJzIG9uIn0gICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdGhlIGRpc3RhbnQifSAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBzaG9yZSB0aG91Z2h0In0gICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGhpbSBwZWN1bCJ9fQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJpYXLigJRhIG1hbiB3aG8gY2hvc2UifSAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgc29sIn0gICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6Iml0dWRlIG92ZXIgY29tcGFueSwgc3Rvcm1zIn0gICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIG92ZXIgaGVhciJ9ICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoidGggZmlyZXMifSAgICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIuIn0gICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJcblxuV2hhdCJ9ICAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB0aGV5IGRpZG4ndCBrbm93IHdhcyB0aGF0IEVsIn19CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImlhcyB3YXMifSB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB3YWl0aW5nLiJ9ICAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IlxuXG5Mb25nIn0gICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgYWdvLCB3aGVuIGhlIn19CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB3YXMgYSB5b3VuZyBtYW4gd2l0aCBzYWx0In0gICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiItc3ByYXkifSAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGhhaXIgYW5kIGFtYml0aW91cyJ9ICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBkcmVhbXMsIGhlIn0gICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBoYWQgZmFsbGVuIn0gICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGluIGxvdmUgd2l0aCBhIHdvbWFuIG5hbWVkIE0ifSAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImFyZW4uIFNoZSB3YXMgYSJ9ICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHNhaWxvcidzIn0gICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgZGF1Z2h0ZXIgd2l0aCJ9ICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGV5ZXMgbGlrZSB0aWRlIn0gICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHBvb2xzIGFuZCBhIGxhdWdoIn0gICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdGhhdCBjb3VsZCBjYWxtIn0gICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGFueSJ9ICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHRlbXAifSAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJlc3QuIFRoZXkifSAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHBsYW5uZSJ9IH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiZCB0byBtYXJyeSwgdG8ifSAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgZmlsbCJ9ICAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB0aGUgbGlnaHRob3VzZSB3aXRoIGNoaWxkcmVuIGFuZCB3YXJtIn0gICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJ0aC5cblxuQnV0IHRoZSJ9ICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBzZWEgaXMifSAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgamVhbCJ9ICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0Ijoib3VzIG9mIn19CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB0aG9zZSJ9ICAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB3aG8gbG92ZSJ9ICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6Ii4ifSAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJcblxuT25lIGF1dHVtbiJ9ICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgZXZlbmluZywifSAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBNIn0gICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiYXJlbidzIn19CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBmYXRoZXIncyJ9ICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHNoaXAgd2FzIGNhdWdodCBpbiBhIHN1ZGRlbiJ9ICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGcifSAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJhbGUuIn0gICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgVGhlIGxpZ2h0aG91c2UifSAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBsYW1wIGhhIn0gIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiZCBnb25lIGRhcmvigJQifSAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImEgY3JhY2sgaW4ifSB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB0aGUgbGVucywifSAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBqdXN0IGZvciJ9ICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIG9uZSBuaWdodCJ9ICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiLiBCeSJ9ICAgICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgbW9ybmluZywgdGhlIHNoaXAifSAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBoYWQgYmVlbiJ9ICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBjbGFpbWVkIGJ5IHRoZSByb2NrcyJ9ICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIuXG5cbk0ifSAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImFyZW4gY2FtZSB0byJ9ICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGhpbSJ9ICAgICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgb25lIn19CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBsYXN0In0gICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB0aW1lLCBoZXIgZXllcyJ9ICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIG5vdyJ9ICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBob2xkaW5nIHN0b3JtcyJ9ICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGluc3RlYSJ9ICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImQgb2YgdGlkZSJ9ICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHBvb2xzLiBcIkknbSBnb2luZyJ9ICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdG8gc2VhIn0gICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIsXCIgc2hlIHNhaSJ9ICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJkLiBcIlRvIn0gICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgYmVjb21lIn0gICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB3aGF0IG15In0gICAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBmYXRoZXIgd2FzLiJ9ICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIERvbid0IHdhaXQifX0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGZvciBtZS5cIlxuXG5CdXQifSAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB3YWl0IGhlIGRpZC4ifSAgICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJcblxuRXZlcnkifSAgICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIG5pZ2h0IGZvciBmb3J0eSJ9ICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgeWVhcnMsIEVsaWFzIGNsaW1iZWQgdGhvc2UifSAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBzdGFpcnMuIEhlIn0gICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHBvbGlzaGVkIHRoZSBsZW5zIHVudGlsIn19CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBpdCBnbGVhbWVkLiJ9ICAgICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgSGUgbWFkZSBjZXJ0YWluIn0gICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHRoYXQgbm8ifSAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHNoaXAgd291bGQgbWVldCB0aGUifSAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBmYXRlIHRoYXQgaGF1bnRlZCBoaXMifX0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGRyZWFtcy4gQW4ifSAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImQgZXZlcnkgZGF3biwgaGUgd2F0Y2hlZCB0aGUgaG9yaXpvbiBmb3IgYSJ9ICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBzYWlsIHRoYXQgbmV2ZXIgY2FtZS5cblxuT24ifSAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHRoZSBuaWdodCBvZiBoaXMifSAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgZm9ydGlldGggYW5uaXZlcnNhcnksIGFzIn0gICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBFbGlhcyBsaXQifSAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB0aGUgbGFtcCwifSAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBoZSBub3RpY2UifSAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJkIGEifSAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHNoaXAifSAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgYXBwcm9hY2hpbmfigJQifSAgICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0Ijoibm90IGZyb20ifSAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHRoZSBzZWEsIGJ1dCBmcm9tIHRoZSBzdG9ybSJ9ICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgaXRzZWxmIn0gICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiwifSAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgZ2wifSB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6Im93aW5nIn0gICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHdpdGggYW4ifSAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBpbXBvc3NpYmxlIn0gfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgbGlnaHQuIEFzIn0gIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGl0IGRyZXcgY2xvc2VyLCBoZSBzYXcgaGVyIn0gICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHN0YW5kaW5nIn0gICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgYXQifSAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHRoZSBoZWxtIn19CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6Ii4ifSAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiXG5cbk1hcmVuIGhhZG4ifSAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6Iid0IGFnZWQgYSBkYXkuIn0gICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiXG5cblwiIn0gICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiSSBiZWNhbWUifSAgICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdGhlIn0gICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHNlYSJ9ICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IidzIn0gICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGtlZXBlciJ9ICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIsXCIgc2hlIGNhbGxlIn0gICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiZCB1cCJ9ICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB0byBoaW0sIn0gICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgaGVyIHZvaWNlIGNhcnJ5aW5nIGltcG9zcyJ9ICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImlibHkgb3ZlciJ9ICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB0aGUgd2luZC4gXCJKdXN0In0gICAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBhcyJ9ICAgICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgeW91IGJlY2FtZSJ9fQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdGhlIGxpZ2h0In0gICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiJ3MifSB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBrZWVwZXIuIFRoZSJ9ICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgb2NlYW4ifSAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB0b2wifSAgICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiZCBtZSBJIn19CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBjb3VsZCB2aXNpdCJ9ICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHlvdSBvbmNlIn0gICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IuKAlG9uIHRoaXMifSAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBuaWdodCBvbmx5In0gfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiLigJRpZiBJIHdpc2hlIn0gICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImQuXCJcblxuRWxpYXMgZGVzY2VuZGUifSAgICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiZCBhbGwgMTI3IHN0ZXBzIGZhc3RlciJ9ICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB0aGFuIGhlIGhhZCBpbiJ9ICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgZGVjYWRlcy4ifX0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiXG5cblRoZXkgc3RvbyJ9fQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJkIGZhY2luZyBlYWNoIG90aGVyIG9uIn0gICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdGhlIHJvY2tzLCB0aGUgbGlnaHRob3VzZSJ9ICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGJlYW0gc3dlZXBpbmcgb3ZlcmhlYSJ9ICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImQuXG5cblwiV2h5In0gICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGRpZG4ndCB5b3UgZm9yZ2V0In0gICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBtZT9cIiBzaGUgYXNrZWQuXG5cblwiU2FtZSJ9ICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHJlYXNvbiB5b3UncmUgaGVyZSxcIiBoZSBzYWlkIHNpbXBseSJ9ICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiLiBcIlNvbWUgdGhpbmdzLCJ9ICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgZXZlbiB0aGUgc2VhIGNhbiJ9ICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6Iid0IHdlYXIgYXdheS5cIlxuXG5TaGUgc21pbGVkIHRoZW4ifSAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IuKAlHRoYXQifSAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdGVtcGVzdC1jYWwifSAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJtaW5nIHNtaWxl4oCUIn0gICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImFuZCB0b2wifSAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiZCBoaW0gb2YifSAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHdhdGVycyBiZXlvbiJ9ICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJkIGltYWdpbmF0aW9uLCJ9ICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBvZiBkZXB0aHMifSB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB3aGVyZSBhbmNpZW50IHRoaW5ncyJ9fQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgZHJlYW1lZCwifSAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBvZiBoZXIifSAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGxvbmVseSBndWFyIn0gICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJkaWFuc2hpcCBvZiJ9ICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGRyb3duZWQgc2FpbG9ycycifSAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBzb3Vscy5cblxuSGUifSAgICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdG9sZCBoZXIgb2YifSAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBmb3J0eSB5ZWFycyBvZiBzdW4ifSAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJyaXNlcywifX0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIG9mIG1pZyJ9ICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJyYXRpbmcgd2gifSAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJhbGVzIGhlIn0gIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiJ2QgbmFtZSJ9ICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiZCwgb2YgdGhlIHBlYWNlIn0gICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGZvdW5kIGluIGZhaXRoZnVsIn0gICAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBkdXR5LiJ9ICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IlxuXG5BcyBkYXduIn0gICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGFwcHJvYWNoZWQsIGhlciJ9ICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBzaGlwIGJlZ2FuIn0gICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdG8gZmFkZSJ9ICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIuXG5cblwiV2lsbCJ9ICAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB5b3Ugd2FpdCJ9ICAgICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgYW5vdGhlciBmb3J0eSJ9ICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHllYXJzP1wiIHNoZSJ9ICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGFza2VkLiJ9ICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJcblxuRWxpYXMgbG9va2VkIGF0IGhpcyBsaWdodGhvdXNlIn0gICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIsIHRoZW4ifSAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBiYWNrIGF0IGhlci4gXCJObyxcIiJ9ICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgaGUgc2FpZCwifSAgICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGFuZCBoZXIifSAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgZmFjZSBmZWxsIn0gICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdW50aWwifSAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBoZSJ9ICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgY29udGludWUifSAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiZDoifX0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIFwiSSdsbCJ9fQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgd2FpdCBhcyJ9ICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGxvbmcgYXMgaXQgdGFrZXMuIn0gICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIEZvcnR5LCJ9IH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGZvdXIifSAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBodW5kcmUifSAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImQsIGZvdXIgdGhvdXNhbmQuIn0gICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgWW91IGtub3cgd2hlcmUifSAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdG8gZmluZCBtZS5cIlxuXG5TaGUga2lzcyJ9ICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJlZCBoaW0gb25jZSJ9ICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiLigJRhIGtpc3MifSB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB0aGF0IHRhc3RlZCBvZiBzYWx0IGFuZCBkZXB0aCJ9ICAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBhbmQgbG9uZ2luZ+KAlGFuZCB0aGVuIn0gIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHNoZSB3YXMgZ29uZSwifSAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGhlciBzaGlwIGRpc3NvbCJ9ICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoidmluZyBpbnRvIG1vcm5pbmcifSAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIG1pc3QuXG5cbkVsaWFzIGNsaW0ifX0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiYmVkIGhpcyJ9ICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgMTI3IHN0ZXBzIGFuIn0gICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiJkIGV4dGluZ3Vpc2hlZCB0aGUgbGFtcCwgYXMifSAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBoZSBoYWQgZG9uZSBldmVyeSBtb3JuaW5nIn19CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBmb3IgZm9ydHkgeWVhcnMuIn0gICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IlxuXG5CdXQifX0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIG5vdywgd2hlbiJ9fQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdGhlIHZpbGxhZ2VycyBzYXcifSAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBoaW0gaW4gdGhlIG1hcmtldCJ9ICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBidXlpbmcgc3VwcGxpZXMifSAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIsIHRoZXkgbm90aWNlIn0gICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiZCBzb21ldGhpbmcgZGlmZmVyZW50In0gICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiLiBUaGUifSAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgcGVjdWxpYXIgbGlnaHRob3VzZSJ9ICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBrZWVwZXIgd2FzIn0gICAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBzbWlsaW5nLlxuXG5IZSJ9ICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBoYWQgbGVhcm5lZCB3aGF0In0gICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdGhlIHNlYSBhbHJlYWR5In0gICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGtuZXc6In0gICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiB0aGF0IHNvbWUgbGlnaHRzIn0gfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgbmV2ZXIgc3RvcCJ9ICAgICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgYnVybmluZywgYW5kIHNvbWUgc2hpcHMgYWx3YXlzIn0gICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBmaW5kIHRoZWlyIHdheSBob21lLlxuXG4qIn0gICAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IkV2ZW50dWFsbHkuKiJ9ICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfc3RvcApkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX3N0b3AiLCJpbmRleCI6MCAgICAgICAgfQoKZXZlbnQ6IG1lc3NhZ2VfZGVsdGEKZGF0YTogeyJ0eXBlIjoibWVzc2FnZV9kZWx0YSIsImRlbHRhIjp7InN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsfSwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjoxMiwiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwib3V0cHV0X3Rva2VucyI6ODI4fSAgICAgICAgICB9CgpldmVudDogbWVzc2FnZV9zdG9wCmRhdGE6IHsidHlwZSI6Im1lc3NhZ2Vfc3RvcCIgICAgICAgICAgICB9Cgo= - recorded_at: Sat, 18 Oct 2025 03:47:25 GMT -recorded_with: VCR 6.3.1 + ZXZlbnQ6IG1lc3NhZ2Vfc3RhcnQKZGF0YTogeyJ0eXBlIjoibWVzc2FnZV9zdGFydCIsIm1lc3NhZ2UiOnsibW9kZWwiOiJjbGF1ZGUtc29ubmV0LTUiLCJpZCI6Im1zZ18wMTFDZDE0NXdvQnhFR25veE1Ubjc0a20iLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbXSwic3RvcF9yZWFzb24iOm51bGwsInN0b3Bfc2VxdWVuY2UiOm51bGwsInN0b3BfZGV0YWlscyI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjoxMywiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfY3JlYXRpb24iOnsiZXBoZW1lcmFsXzVtX2lucHV0X3Rva2VucyI6MCwiZXBoZW1lcmFsXzFoX2lucHV0X3Rva2VucyI6MH0sIm91dHB1dF90b2tlbnMiOjEsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIiwiaW5mZXJlbmNlX2dlbyI6Imdsb2JhbCJ9fSAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX3N0YXJ0CmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfc3RhcnQiLCJpbmRleCI6MCwiY29udGVudF9ibG9jayI6eyJ0eXBlIjoidGV4dCIsInRleHQiOiIifSB9CgpldmVudDogcGluZwpkYXRhOiB7InR5cGUiOiAicGluZyJ9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiMifSAgICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBUaGUgTGlnaHRob3VzZSBLZWVwZXIncyBMYXN0IE5pZ2h0XG5cbk9sZCBNYXJpc29sIGhhZCB0ZW5kZWQgdGhlIGxpZ2h0aG91c2Ugb24ifSAgICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgQ29ybW9yYW50IFBvaW50IGZvciB0aGlydHktc2V2ZW4geWVhcnMsIGV2ZXIgc2luY2UgaGVyIGh1c2JhbmQncyBib2F0IG5ldmVyIn0gICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBjYW1lIGJhY2sgZnJvbSB0aGUgZm9nLiBUb25pZ2h0IHdvdWxkIGJlIGhlciBsYXN04oCUdGhlIGF1dG9tYXRlZCBsaWdodCJ9ICAgICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgd2FzIGJlaW5nIGluc3RhbGxlZCBpbiB0aGUgbW9ybmluZywgYW5kIHNoZSdkIGJlZW4gdG9sZCwga2luZGx5IGJ1dCBmaXJtbHksIHRoYXQgaGVyIn0gIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHNlcnZpY2VzIHdlcmUgbm8gbG9uZ2VyIG5lZWRlZC5cblxuU2hlIGNsaW1iZWQgdGhlIHNwaXJhbCBzdGFpcnMgb25lIGZpbmFsIHRpbWUsIGhlciBoYW5kIHRyYWNpbmcgdGhlIHNhbWUifSAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGdyb292ZSBpbiB0aGUgcmFpbGluZyB0aGF0IGhlciBwYWxtIGhhZCB3b3JuIHNtb290aCBvdmVyIHRoZSJ9ICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGRlY2FkZXMuIEF0IHRoZSB0b3AsIHRoZSBncmVhdCBsZW5zIHNhdCBsaWtlIGEgcGF0aWVudCBnbCJ9ICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiYXNzIGV5ZSwgd2FpdGluZyBmb3IgZHVzay5cblxuQXMgdGhlIHN1biBkaXBwZWQgaW50byB0aGUgd2F0ZXIifSAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiLCBzaGUgbGl0IGl0IHRoZSBvbGQgd2F5LCB0aG91Z2ggc2hlIGRpZG4ndCBuZWVkIHRvIGFueW1vcmUuIn0gICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIFRoZSBnZWFycyB0dXJuZWQuIFRoZSBsaWdodCBzd2VwdCBvdXQgYWNyb3NzIHRoZSBkYXJrZW5pbmcgd2F2ZXMgaW4ifSAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgaXRzIGZhbWlsaWFyIHJoeXRobeKAlHR3byBzZWNvbmRzIG9uLCB0aHJlZSBzZWNvbmRzIG9mZiwgYXJvdW5kIGFuZCBhcm91bmQuXG5cblNoZSB0aG91Z2h0IGFib3V0IGFsbCJ9fQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdGhlIG5pZ2h0cyBzaGUnZCBzdG9vZCBoZXJlLCB3YXRjaGluZyBmb3IgYSBib2F0IHRoYXQgbmV2ZXIifX0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGNhbWUsIGJ1dCBzb21laG93IHNhdmluZyBjb3VudGxlc3Mgb3RoZXJzIGluc3RlYWQuIEZpc2hlcm1lbi4gU2FpbG9ycyBjYXVnaHQgaW4gc3Rvcm1zLiBBIn0gICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdGVlbmFnZSBnaXJsIHdobydkIHN0b2xlbiBoZXIgZmF0aGVyJ3Mgc2tpZmYgb24gYSBkYXJlIGFuZCBnb3R0ZW4gdHVyIn0gICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6Im5lZCBhcm91bmQgaW4gdGhlIGRhcmsuXG5cbkFyb3VuZCBtaWRuaWdodCwgc2hlIHNhdyBpdOKAlGEgc21hbGwgbGlnaHQgYm9iYmluZyBmYXIgb3V0IG9uIHRoZSB3YXRlciwgZmxpY2tlcmluZyB3ZSJ9ICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImFrbHkuIEEgYm9hdCBpbiB0cm91YmxlLlxuXG5NYXJpc29sIGRpZCJ9ICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0Ijoibid0IGhlc2l0YXRlLiBTaGUgZ3JhYmJlZCB0aGUgb2xkIHNpZ25hbCBsYW1wLCB0aGUgYmFja3VwIHN5c3RlbSJ9ICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgbm9ib2R5IHVzZWQgYW55bW9yZSwgYW5kIGJlZ2FuIGZsYXNoaW5nIGEgbWVzc2FnZSBpbnRvIHRoZSBkYXJrbmVzczoifX0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiICpJIHNlZSB5b3UuIEhlbHAgaXMgY29taW5nLiBIb2xkIG9uLipcblxuU2hlIGNhbGxlZCBpdCJ9ICAgICAgICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIGluIG9uIHRoZSByYWRpbywgaGVyIHZvaWNlIHN0ZWFkeSBkZXNwaXRlIGhlciByYWNpbmcgaGVhcnQuIn0gICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgVGhlbiBzaGUgc3Rvb2QgYXQgdGhlIHdpbmRvdywgaG9sZGluZyBoZXIgYm9ycm93ZWQgbGlnaHQgc3RlYWR5LCB1bnRpbCBzaGUgc2EifX0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoidyB0aGUgcmVzY3VlIGJvYXQncyBsaWdodHMgYXBwZWFyIGFuZCwgYW4gaG91ciBsYXRlciwgd2F0Y2hlZCB0aGVtIHB1bGwgdGhyZWUifSAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgc2hpdmVyaW5nIGZpc2hlcm1lbiBmcm9tIGEgc3dhbXBlZCB2In0gICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiZXNzZWwuXG5cbkJ5IGRhd24sIHdoZW4gdGhlIHRlY2huaWNpYW5zIGFycml2ZWQgdG8gaW5zdGFsbCB0aGUgYXV0b21hdGVkIHN5c3RlbSwgdGhleSBmb3VuZCBoZXIgcyJ9ICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiaXR0aW5nIGNhbG1seSBpbiBoZXIgY2hhaXIsIHRoZSBvbGQgbGVucyBzdGlsbCB0dXJuaW5nIGJlaGluZCBoZXIuXG5cblwiUm91Z2ggbmlnaHQ/XCIgb25lIn0gICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IiBhc2tlZCwgbm90aWNpbmcgaGVyIGV4aGF1c3RlZCBleWVzLlxuXG5cIk5vLFwiIHNoZSBzYWlkLCBzbWlsaW5nIGZvciJ9ICAgICAgICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgdGhlIGZpcnN0IHRpbWUgaW4gd2Vla3MuIFwiSnVzdCB0aGUgcmlnaHQgb25lLlwiXG5cblNoZSB3YWxrZWQgZG93biB0aGUgc3RhaXJzIGZvciB0aGUgbGFzdCB0aW1lLCBsZSJ9ICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6ImF2aW5nIHRoZSBsaWdodCB0byBzdHJhbmdlcnMgYW5kIG1hY2hpbmVzLCBidXQgdGFraW5nIHdpdGggaGVyIHRoZSBjZXJ0YWludHkgdGhhdCBzb21lIn0gICAgICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIG5pZ2h0cywgdGhlIG9sZCB3YXlzIHN0aWxsIG1hdHRlcmVkLiJ9ICAgICAgICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19zdG9wCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfc3RvcCIsImluZGV4IjowICAgICAgIH0KCmV2ZW50OiBtZXNzYWdlX2RlbHRhCmRhdGE6IHsidHlwZSI6Im1lc3NhZ2VfZGVsdGEiLCJkZWx0YSI6eyJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwic3RvcF9kZXRhaWxzIjpudWxsfSwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjoxMywiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwib3V0cHV0X3Rva2VucyI6NjkyLCJvdXRwdXRfdG9rZW5zX2RldGFpbHMiOnsidGhpbmtpbmdfdG9rZW5zIjowfX0gICB9CgpldmVudDogbWVzc2FnZV9zdG9wCmRhdGE6IHsidHlwZSI6Im1lc3NhZ2Vfc3RvcCIgICB9Cgo= + recorded_at: Tue, 14 Jul 2026 01:07:08 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_system_prompt.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_system_prompt.yml index ab50c384..c1298d5b 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_system_prompt.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_system_prompt.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"What - is 2+2?"}],"max_tokens":1024,"system":"You are a helpful assistant.","temperature":0.7}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"What is 2+2?","role":"user"}],"system":"You + are a helpful assistant.","max_tokens":1024}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -39,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '168' + - '139' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:47:43 GMT + - Tue, 14 Jul 2026 01:08:09 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,50 +54,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:47:41Z' + - '2026-07-14T01:08:08Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:47:43Z' + - '2026-07-14T01:08:09Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:47:40Z' + - '2026-07-14T01:08:08Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:47:41Z' + - '2026-07-14T01:08:08Z' Request-Id: - - req_011CUDykMeSGYm9R5zgQbu7v + - req_011Cd14B92kjABJ8gdMcG8to Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '3692' - Via: - - 1.1 google + Traceresponse: + - 00-98d8729a8c113373fecaada0acaebe84-4c12fc753b5c00a7-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 99050e3a5a5ff95f-SJC + - a1aca26e6b859ac2-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01VC64KqQgDdZppRajZWVrLQ","type":"message","role":"assistant","content":[{"type":"text","text":"2 - + 2 = 4"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":20,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":13,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 03:47:43 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd14B9z41DK7izb98c19b","type":"message","role":"assistant","content":[{"type":"text","text":"2 + + 2 = 4"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":24,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":11,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:08:09 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_thinking_disabled.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_thinking_disabled.yml index 113d6f82..95c407ba 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_thinking_disabled.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_thinking_disabled.yml @@ -5,14 +5,14 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"Hello!"}],"max_tokens":1024,"thinking":{"type":"disabled"}}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Hello!","role":"user"}],"max_tokens":1024,"thinking":{"type":"disabled"}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -22,11 +22,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -38,14 +38,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '135' + - '124' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:47:59 GMT + - Tue, 14 Jul 2026 01:07:33 GMT Content-Type: - application/json Transfer-Encoding: @@ -53,50 +53,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:47:56Z' + - '2026-07-14T01:07:32Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:47:59Z' + - '2026-07-14T01:07:33Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:47:55Z' + - '2026-07-14T01:07:31Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:47:56Z' + - '2026-07-14T01:07:32Z' Request-Id: - - req_011CUDymU6fCKkpxoAebQdTn + - req_011Cd148SokiPhVnqtB33KyP Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '4979' - Via: - - 1.1 google + Traceresponse: + - 00-af4333d9ebb2e55128a9c25154f25d0d-bdaa2e1c8d2644f1-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 99050e988bd6ed3c-SJC + - a1aca18a0f2ee9e7-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01SUAhK3UeW9Rh9rvhrntWQT","type":"message","role":"assistant","content":[{"type":"text","text":"Hello! - How can I help you today?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":9,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":12,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 03:47:59 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd148Uv1K29gwz5xEbv7e","type":"message","role":"assistant","content":[{"type":"text","text":"Hi + there! How''s it going? What can I help you with today?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":10,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":20,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:07:33 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_any.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_any.yml index 8b7f0c6c..0b6559ea 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_any.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_any.yml @@ -5,16 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"What''s - the weather?"}],"max_tokens":1024,"tools":[{"name":"get_weather","description":"Get - weather","input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]}}],"tool_choice":{"type":"any"}}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"What''s the weather?","role":"user"}],"max_tokens":1024,"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}],"tool_choice":{"type":"any"}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -40,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '308' + - '297' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:47:32 GMT + - Tue, 14 Jul 2026 01:07:12 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,66 +54,67 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:47:32Z' + - '2026-07-14T01:07:12Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:47:32Z' + - '2026-07-14T01:07:12Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:47:31Z' + - '2026-07-14T01:07:11Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:47:32Z' + - '2026-07-14T01:07:12Z' Request-Id: - - req_011CUDyjhKqdbZ57WaaMfAd2 + - req_011Cd146y8at69XFnu75MXmM Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2088' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-cc5c1503ab1364f1f7168ea264af17c4-5ca689d1a5d1b4b9-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 99050e022eec155d-SJC + - a1aca10ccadbeb30-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01RJsQK4pyM6YB9BfxdxCD6g","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01PeCiPf49ueZAv5MT6J8vRB","name":"get_weather","input":{"location":""}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":650,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":39,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 03:47:32 GMT + string: '{"model":"claude-sonnet-5","id":"msg_011Cd146z3edxiCbQAiufrw9","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01UnEcvaxaeUzm68tcdhKJ12","name":"get_weather","input":{"location":"UNKNOWN"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":552,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":44,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:07:12 GMT - request: method: post uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"What''s - the weather?"},{"role":"assistant","content":[{"type":"tool_use","id":"toolu_01PeCiPf49ueZAv5MT6J8vRB","name":"get_weather","input":{"location":""}}]},{"role":"user","content":[{"type":"tool_result","tool_use_id":"toolu_01PeCiPf49ueZAv5MT6J8vRB","content":"{\"location\":\"\\u003cUNKNOWN\\u003e\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}"}]}],"max_tokens":1024,"tools":[{"name":"get_weather","description":"Get - weather","input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]}}]}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"What''s the weather?","role":"user"},{"content":[{"id":"toolu_01UnEcvaxaeUzm68tcdhKJ12","input":{"location":"UNKNOWN"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01UnEcvaxaeUzm68tcdhKJ12","type":"tool_result","content":"{\"location\":\"UNKNOWN\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"max_tokens":1024,"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -124,11 +124,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -140,14 +140,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '626' + - '643' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:47:35 GMT + - Tue, 14 Jul 2026 01:07:14 GMT Content-Type: - application/json Transfer-Encoding: @@ -155,50 +155,54 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:47:34Z' + - '2026-07-14T01:07:13Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:47:35Z' + - '2026-07-14T01:07:14Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:47:33Z' + - '2026-07-14T01:07:13Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:47:34Z' + - '2026-07-14T01:07:13Z' Request-Id: - - req_011CUDyjrtZQ9iQ5nWG8MVYM + - req_011Cd1475kStSUmaR8gqjScZ Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2685' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-4291b80c002f74047343ea39a0c0b0fa-8900425a5a3c7031-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 99050e102ad360d0-SJC + - a1aca115fbe1cf49-SJC body: encoding: ASCII-8BIT - string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1zb25uZXQtNC01LTIwMjUwOTI5IiwiaWQiOiJtc2dfMDFMQU1QS0g4Z3AxRlllMzJhcVNhMldjIiwidHlwZSI6Im1lc3NhZ2UiLCJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiVGhlIHdlYXRoZXIgaXMgY3VycmVudGx5ICoqc3VubnkqKiB3aXRoIGEgdGVtcGVyYXR1cmUgb2YgKio3MsKwRioqLiBcblxuSG93ZXZlciwgSSBub3RpY2UgSSBkaWRuJ3QgaGF2ZSBhIHNwZWNpZmljIGxvY2F0aW9uIHRvIGNoZWNrLiBXb3VsZCB5b3UgbGlrZSBtZSB0byBnZXQgdGhlIHdlYXRoZXIgZm9yIGEgcGFydGljdWxhciBjaXR5IG9yIGxvY2F0aW9uPyJ9XSwic3RvcF9yZWFzb24iOiJlbmRfdHVybiIsInN0b3Bfc2VxdWVuY2UiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6NjU0LCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6NTEsInNlcnZpY2VfdGllciI6InN0YW5kYXJkIn19 - recorded_at: Sat, 18 Oct 2025 03:47:35 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd147682Ccy3q4EyWVF3i","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"","signature":"Er4DCokBCA8YAipAp7vAfXoD4kjQPw2WjAwklSrIdtogkBsnZm5YbWC7BQWuI5PjDiKfikTmHYPaejctZbbmRHBivyeA+4p4atoMITIPY2xhdWRlLXNvbm5ldC01OABCCHRoaW5raW5nWiQyNTU3YzJmMi1iY2ZhLTQwNTQtOWZhOC1hZTEzYjNiNDdkNmISDOsggW84i5aL9RpO/hoMqWZ5tpIvNpUqL2F4IjBpK88KEera2nACuVeCRb3ZkYlfv1xo2/kcC89X9ZcWIJhXcHgSgFjdDBFWyZepwL4q4QG9y/iSN+Lxt/zXRsNG0z+0YC2WTIvAotCWZV5ZZ+ANA7nOvyxwXXV6c1KG4gqp4LdWhDVhyuNMJvAuItVflurTDhph4whUvshd/eeeS28UrKkPQf7t4lQOYsnCUxJvVIIKGAUGT3G9RRR9FWBQfCdq3nLnxgtyRdLorAbucFjSByq+SPG+7LOktphPeaa1FlhnY+HP3Fvh3G2Gf2Hk2ZgzBOcg/e9Vh0niUy3QpyZMF7jUWAOacUWAT9RvdCC8ocmAgHPjHbJ+tSTsEURuZesu4o9fW8fEoHxlieMxSk0uUTMYAQ=="},{"type":"text","text":"I + don''t have your location, so I used a placeholder just now, but that won''t + give you accurate results. Could you tell me which city or location you''d + like the weather for?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":523,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":112,"output_tokens_details":{"thinking_tokens":61},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:07:14 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_auto.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_auto.yml index fe6cf3da..d7665606 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_auto.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_auto.yml @@ -5,16 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"What''s - the weather?"}],"max_tokens":1024,"tools":[{"name":"get_weather","description":"Get - weather","input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]}}],"tool_choice":{"type":"auto"}}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"What''s the weather?","role":"user"}],"max_tokens":1024,"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}],"tool_choice":{"type":"auto"}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -40,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '309' + - '298' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:47:45 GMT + - Tue, 14 Jul 2026 01:07:54 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,52 +54,53 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:47:45Z' + - '2026-07-14T01:07:53Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:47:46Z' + - '2026-07-14T01:07:54Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:47:44Z' + - '2026-07-14T01:07:52Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:47:45Z' + - '2026-07-14T01:07:53Z' Request-Id: - - req_011CUDykeBMkh7agFJbfDADg + - req_011Cd14A1RLQnXQY75JWmzYW Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2631' - Via: - - 1.1 google + Traceresponse: + - 00-1b3f2352f813440dd769468b9ce5904c-39307594c27c44aa-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 99050e527e1e6804-SJC + - a1aca20e8ee11ed2-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01GNsH4Q8hJaz6AtTkyVhrWk","type":"message","role":"assistant","content":[{"type":"text","text":"I''d - be happy to help you check the weather! However, I need to know which location - you''d like to check the weather for. Could you please tell me the city, region, - or area you''re interested in?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":558,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":48,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 03:47:45 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd14A1qt62dnCVtDmzVeU","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"","signature":"Eu8CCokBCA8YAipAAfiyWnfYTCTkuTa4uM02OVRDyKbet3Wzf5RHbI/4FUsCr50zr8FVq9/7tU3eLh7ytmAh2i4w5v+HfLTkNPJj8jIPY2xhdWRlLXNvbm5ldC01OABCCHRoaW5raW5nWiQyNTU3YzJmMi1iY2ZhLTQwNTQtOWZhOC1hZTEzYjNiNDdkNmISDIpFLwsW0UD/B7TKXBoMHZF8Axcl7T7+Dab6IjDezmTWkcSqk3qqAIaKk/W3Li0kRmTj9KdHYTKaHtE563EFpZ7RRMsS1vtWuNuOYacqkgEg6UwlYTL4GleX6fpPfwGt+gOA+1dgvTQ+P4L/Lk2MIlhn0oeFeVcDqoLp9BGOkWOkpVkwd2alxPSDc5vytcTAMFCZq2CmBCOSPpG+0gbd8KOhssF8Yb/84lpOMQqyz6Uq08ZfVHF9keL6Um0ZFpsb40RqWtEQjWQOzAC4crLU6F86qw4lAUE7iedwwnrpCWWbrhgB"},{"type":"text","text":"I''d + be happy to check the weather for you! Could you please let me know which + location you''d like the weather for (e.g., a city and state/country)?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":432,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":83,"output_tokens_details":{"thinking_tokens":36},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:07:54 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_disable_parallel.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_disable_parallel.yml index 53c94301..8b183eb6 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_disable_parallel.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_disable_parallel.yml @@ -5,16 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"What''s - the weather?"}],"max_tokens":1024,"tools":[{"name":"get_weather","description":"Get - weather","input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]}}],"tool_choice":{"type":"auto","disable_parallel_tool_use":true}}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"What''s the weather?","role":"user"}],"max_tokens":1024,"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}],"tool_choice":{"type":"auto","disable_parallel_tool_use":true}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -40,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '342' + - '331' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:48:56 GMT + - Tue, 14 Jul 2026 01:07:55 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,52 +54,53 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:48:55Z' + - '2026-07-14T01:07:54Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:48:56Z' + - '2026-07-14T01:07:55Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:48:55Z' + - '2026-07-14T01:07:54Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:48:55Z' + - '2026-07-14T01:07:54Z' Request-Id: - - req_011CUDyqsfrLK5Kskz29tTaX + - req_011Cd14A8K4rWWzLnx44PLAc Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2191' - Via: - - 1.1 google + Traceresponse: + - 00-32e8a8ba09c49532a195feebe5f3aba5-ce9da17fc33e5eb7-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 9905100e2dfff97b-SJC + - a1aca2189ef68dfa-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01TgfkddeaGEAvSiRwRZKGxk","type":"message","role":"assistant","content":[{"type":"text","text":"I''d - be happy to help you check the weather! However, I need to know which location - you''d like to know the weather for. Could you please tell me the city or - area you''re interested in?"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":350,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":45,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 03:48:56 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd14A8eAEMrjXV3GCT4vU","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"","signature":"EqkDCokBCA8YAipAcfwUOvv6ho9Lzx5gZQT6SyQBC9NzyEf9HXG3Y6pFc7OZPBEv+KPB9qfSPj3P/KMP7+yBJHy8Cdpydx/LlcGtdTIPY2xhdWRlLXNvbm5ldC01OABCCHRoaW5raW5nWiQyNTU3YzJmMi1iY2ZhLTQwNTQtOWZhOC1hZTEzYjNiNDdkNmISDGvL34xYqDSKWAoPJxoMiU6TPg0jRbJ9ZajjIjDdnrTLYkHRhF8oTjXmW1H1awKFACzvLXJIm4QG+ByAp9DbPtHgUJYha0qWMxFQ4dkqzAE/Q7hRmR7O7qcKKxnXiRVLfn1q98wZn7s89uqr8gk2b0sxDHtux/slUM7Ss/ijFW7/FVT06Pbr/6rZP2bg+xdM2tfN/0KQliOa62vDGNY5s2DhgcmbgEAluvElhdkUk9mOnQA0/cw0JTFdJWHpnUYuQbiErCOwhyKc/9Msfjv9nLMPs2BbD+NnJ5/RRLWOD3Zs6D9vfpsbsckzobCZRW7MkjLh+poYHo2NkGkD7AR/igfj2RjNrOgh0xiVLD1dDe8N4MX57F+I5OCPlHgYAQ=="},{"type":"text","text":"I''d + be happy to check the weather for you! Could you please let me know which + location (city/region) you''d like the weather for?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":432,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":89,"output_tokens_details":{"thinking_tokens":49},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:07:55 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_specific.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_specific.yml index 01564ef5..caed9ffb 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_specific.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tool_choice_specific.yml @@ -5,16 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"What''s - the weather?"}],"max_tokens":1024,"tools":[{"name":"get_weather","description":"Get - weather","input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]}}],"tool_choice":{"type":"tool","name":"get_weather"}}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"What''s the weather?","role":"user"}],"max_tokens":1024,"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}],"tool_choice":{"type":"tool","name":"get_weather"}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -24,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -40,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '330' + - '319' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:48:07 GMT + - Tue, 14 Jul 2026 01:07:16 GMT Content-Type: - application/json Transfer-Encoding: @@ -55,66 +54,67 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:48:07Z' + - '2026-07-14T01:07:16Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:48:07Z' + - '2026-07-14T01:07:16Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:48:06Z' + - '2026-07-14T01:07:15Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:48:07Z' + - '2026-07-14T01:07:16Z' Request-Id: - - req_011CUDynJaSyBVkoWGo3aduT + - req_011Cd147Eb1a84HH5e7k8jz1 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1966' - Via: - - 1.1 google + Traceresponse: + - 00-42eefa1c0b3361dd96d381ba2dc1367a-c811c5ab5fed671a-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 99050edf4d4ded3c-SJC + - a1aca1236d4717c4-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01PhcrToCNwyRQ61sfmLNDW5","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01QJjLx6V2f3GcHMGhNozUG5","name":"get_weather","input":{"location":""}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":655,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":34,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 03:48:07 GMT + string: '{"model":"claude-sonnet-5","id":"msg_011Cd147F3Yhe6wyE7iPkT7i","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_01Pv6Vg9u2q3jmjiQp9Nuijg","name":"get_weather","input":{"location":"<UNKNOWN>"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":558,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":46,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:07:16 GMT - request: method: post uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"What''s - the weather?"},{"role":"assistant","content":[{"type":"tool_use","id":"toolu_01QJjLx6V2f3GcHMGhNozUG5","name":"get_weather","input":{"location":""}}]},{"role":"user","content":[{"type":"tool_result","tool_use_id":"toolu_01QJjLx6V2f3GcHMGhNozUG5","content":"{\"location\":\"\\u003cUNKNOWN\\u003e\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}"}]}],"max_tokens":1024,"tools":[{"name":"get_weather","description":"Get - weather","input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]}}]}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"What''s the weather?","role":"user"},{"content":[{"id":"toolu_01Pv6Vg9u2q3jmjiQp9Nuijg","input":{"location":"<UNKNOWN>"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01Pv6Vg9u2q3jmjiQp9Nuijg","type":"tool_result","content":"{\"location\":\"\\u0026lt;UNKNOWN\\u0026gt;\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"max_tokens":1024,"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]},"name":"get_weather","description":"Get + weather"}]}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -124,11 +124,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -140,14 +140,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '626' + - '671' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:48:10 GMT + - Tue, 14 Jul 2026 01:07:18 GMT Content-Type: - application/json Transfer-Encoding: @@ -155,50 +155,53 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:48:10Z' + - '2026-07-14T01:07:17Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:48:11Z' + - '2026-07-14T01:07:18Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:48:09Z' + - '2026-07-14T01:07:16Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:48:10Z' + - '2026-07-14T01:07:17Z' Request-Id: - - req_011CUDynTXDABannCm65WHEE + - req_011Cd147MJaUhJtUaTNwt894 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2913' - Via: - - 1.1 google + Traceresponse: + - 00-9a81d6dabad88acde7a090ca049a6068-4190d8115ba87cc9-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 99050eec6eb9ce78-SJC + - a1aca12d3a8567ef-SJC body: encoding: ASCII-8BIT - string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1zb25uZXQtNC01LTIwMjUwOTI5IiwiaWQiOiJtc2dfMDFGZEp4ejNGaGdzYXR5NUhDeGZ0cG5zIiwidHlwZSI6Im1lc3NhZ2UiLCJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiVGhlIGN1cnJlbnQgd2VhdGhlciBpcyAqKjcywrBGIGFuZCBzdW5ueSoqISBcblxuSG93ZXZlciwgSSBub3RpY2VkIHlvdSBkaWRuJ3Qgc3BlY2lmeSBhIGxvY2F0aW9uLiBJZiB5b3UnZCBsaWtlIHRoZSB3ZWF0aGVyIGZvciBhIHNwZWNpZmljIHBsYWNlLCBwbGVhc2UgbGV0IG1lIGtub3cgdGhlIGNpdHkgb3IgbG9jYXRpb24gYW5kIEkgY2FuIGdldCB5b3UgbW9yZSBhY2N1cmF0ZSBpbmZvcm1hdGlvbiEifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjY1NCwiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfY3JlYXRpb24iOnsiZXBoZW1lcmFsXzVtX2lucHV0X3Rva2VucyI6MCwiZXBoZW1lcmFsXzFoX2lucHV0X3Rva2VucyI6MH0sIm91dHB1dF90b2tlbnMiOjU2LCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCJ9fQ== - recorded_at: Sat, 18 Oct 2025 03:48:10 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd147MjdQL1xqu3b7CBNi","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"","signature":"EvkCCokBCA8YAipAtc91OftwVaeMNXhVWOBftcdxhXK+JUsSh9MbhU8E92THh2lkrSRbPLJdRNiY6DdNuwXbXZQXOHYL9U1IbN9dOTIPY2xhdWRlLXNvbm5ldC01OABCCHRoaW5raW5nWiQyNTU3YzJmMi1iY2ZhLTQwNTQtOWZhOC1hZTEzYjNiNDdkNmISDJ0KyPNtx+MIH27XZhoM7+nH8xB3AkorF5FjIjBdW4sxu6UobJxUzk0Hgjj4f5QuxwgfYn5khX+JoNdDtwznMEaUdL3RNW1nDe2wWpsqnAG1sNZnEDfKAvVxB5pw8dWsATJZvjcEdSV7WaW2eEb6UXALmrR1IeTPHL/S7RGm7gI5NdVlV/jAoWBBZlC0QDbRYcaeYNRpKb27hWkAV44AkSgjQacs/tPYnyalebRgCEwhtimY+md0V8XYTG/XeUgTUHXNQkL8kCeKYQyD+fQ+8bVlc2ITBPulT342nZiT/KGGiOLK9rKlOV6Hek8YAQ=="},{"type":"text","text":"I''d + be happy to help! Could you let me know which location you''d like the weather + for (e.g., a city and state/country)?"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":545,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":79,"output_tokens_details":{"thinking_tokens":38},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:07:18 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tools_request.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tools_request.yml index e21d67ff..16e7e769 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tools_request.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tools_request.yml @@ -5,17 +5,17 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"What''s - the weather in San Francisco?"}],"max_tokens":1024,"tools":[{"name":"get_weather","description":"Get - the current weather in a given location","input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The - city and state, e.g. San Francisco, CA"}},"required":["location"]}}],"tool_choice":{"type":"auto"}}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"What''s the weather + in San Francisco?","role":"user"}],"max_tokens":1024,"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather in a given location"}],"tool_choice":{"type":"auto"}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -25,11 +25,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -41,14 +41,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '417' + - '406' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:48:01 GMT + - Tue, 14 Jul 2026 01:07:58 GMT Content-Type: - application/json Transfer-Encoding: @@ -56,70 +56,74 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:48:01Z' + - '2026-07-14T01:07:57Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:48:01Z' + - '2026-07-14T01:07:58Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:48:00Z' + - '2026-07-14T01:07:57Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:48:01Z' + - '2026-07-14T01:07:57Z' Request-Id: - - req_011CUDymr31tu4ixq59KGTEs + - req_011Cd14AKn8jBuFix3d92J8m Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2033' - Via: - - 1.1 google + Traceresponse: + - 00-3df01c09deaa21b8adb7a86cfc096070-8e17bf4e0d476cc8-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 99050eb89e4aeb32-SJC + - a1aca2295e4037c1-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01D9UN2Z6pGJCvXQTeH3mVsV","type":"message","role":"assistant","content":[{"type":"tool_use","id":"toolu_014Lzuofpz7Fw3bom6pqBxiA","name":"get_weather","input":{"location":"San - Francisco, CA"}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":56,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 03:48:01 GMT + string: '{"model":"claude-sonnet-5","id":"msg_011Cd14ALDg6h33V6QnMJfCT","type":"message","role":"assistant","content":[{"type":"thinking","thinking":"","signature":"EsgCCokBCA8YAipAPli/+o0KoSAruDCc9DUI5o64QQnFHhRl2ZT7OLRA2Yno5OX9JYvNi/nGziSj0jHK1Q8zUKXHYiY3a8fjkkSXzzIPY2xhdWRlLXNvbm5ldC01OABCCHRoaW5raW5nWiQyNTU3YzJmMi1iY2ZhLTQwNTQtOWZhOC1hZTEzYjNiNDdkNmISDFoubCLUAXjD1OpI9hoMe6gglOxJ+PJMC2cnIjBcmb1JKxMGA7Gvbd1kPpBSHGt0l29m9yUQ79Cc48ExWSIkiCy0KROPzbmatb66Tz4qbBukmoRlGN9jQTtwePfWLKbu7/wiidArTpc50wcyjQvbAs9ulQT4B2GQ2rgFhVwp5dcZe7n+RMHGSbxSCmD8LFC0KPdrJLzEOtUXYOs4jYIE6LausHlaqWgC1/yxbq/9ba0HQrAMqOaEqU+w9xgB"},{"type":"text","text":"I''ll + check the weather in San Francisco for you."},{"type":"tool_use","id":"toolu_012EqZhJ1Pu29Kk5ZBAUxDgg","name":"get_weather","input":{"location":"San + Francisco, CA"},"caller":{"type":"direct"}}],"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":466,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":101,"output_tokens_details":{"thinking_tokens":28},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:07:58 GMT - request: method: post uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"What''s - the weather in San Francisco?"},{"role":"assistant","content":[{"type":"tool_use","id":"toolu_014Lzuofpz7Fw3bom6pqBxiA","name":"get_weather","input":{"location":"San - Francisco, CA"}}]},{"role":"user","content":[{"type":"tool_result","tool_use_id":"toolu_014Lzuofpz7Fw3bom6pqBxiA","content":"{\"location\":\"San - Francisco, CA\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}"}]}],"max_tokens":1024,"tools":[{"name":"get_weather","description":"Get - the current weather in a given location","input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The - city and state, e.g. San Francisco, CA"}},"required":["location"]}}],"tool_choice":{"type":"auto"}}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"What''s the weather + in San Francisco?","role":"user"},{"content":[{"signature":"EsgCCokBCA8YAipAPli/+o0KoSAruDCc9DUI5o64QQnFHhRl2ZT7OLRA2Yno5OX9JYvNi/nGziSj0jHK1Q8zUKXHYiY3a8fjkkSXzzIPY2xhdWRlLXNvbm5ldC01OABCCHRoaW5raW5nWiQyNTU3YzJmMi1iY2ZhLTQwNTQtOWZhOC1hZTEzYjNiNDdkNmISDFoubCLUAXjD1OpI9hoMe6gglOxJ+PJMC2cnIjBcmb1JKxMGA7Gvbd1kPpBSHGt0l29m9yUQ79Cc48ExWSIkiCy0KROPzbmatb66Tz4qbBukmoRlGN9jQTtwePfWLKbu7/wiidArTpc50wcyjQvbAs9ulQT4B2GQ2rgFhVwp5dcZe7n+RMHGSbxSCmD8LFC0KPdrJLzEOtUXYOs4jYIE6LausHlaqWgC1/yxbq/9ba0HQrAMqOaEqU+w9xgB","thinking":"","type":"thinking"},{"text":"I''ll + check the weather in San Francisco for you.","type":"text"},{"id":"toolu_012EqZhJ1Pu29Kk5ZBAUxDgg","input":{"location":"San + Francisco, CA"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_012EqZhJ1Pu29Kk5ZBAUxDgg","type":"tool_result","content":"{\"location\":\"San + Francisco, CA\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"max_tokens":1024,"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather in a given location"}],"tool_choice":{"type":"auto"}}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -129,11 +133,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -145,14 +149,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '768' + - '1368' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:48:03 GMT + - Tue, 14 Jul 2026 01:08:00 GMT Content-Type: - application/json Transfer-Encoding: @@ -160,50 +164,52 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:48:03Z' + - '2026-07-14T01:08:00Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:48:03Z' + - '2026-07-14T01:08:00Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:48:02Z' + - '2026-07-14T01:07:58Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:48:03Z' + - '2026-07-14T01:08:00Z' Request-Id: - - req_011CUDyn1H8oR4K4GNrPVhKf + - req_011Cd14AT5RkU6aMtD55Rqab Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2119' - Via: - - 1.1 google + Traceresponse: + - 00-2e636c0a5dbf7f9e83b186491e9e7906-a50d36ab5287ab34-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 99050ec61c6115e3-SJC + - a1aca234096cfa49-SJC body: encoding: ASCII-8BIT string: !binary |- - eyJtb2RlbCI6ImNsYXVkZS1zb25uZXQtNC01LTIwMjUwOTI5IiwiaWQiOiJtc2dfMDFNUEJYS3A3OFUxUTJoRFRlR3BIc1BaIiwidHlwZSI6Im1lc3NhZ2UiLCJyb2xlIjoiYXNzaXN0YW50IiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiVGhlIGN1cnJlbnQgd2VhdGhlciBpbiBTYW4gRnJhbmNpc2NvLCBDQSBpcyBzdW5ueSB3aXRoIGEgdGVtcGVyYXR1cmUgb2YgNzLCsEYuIn1dLCJzdG9wX3JlYXNvbiI6ImVuZF90dXJuIiwic3RvcF9zZXF1ZW5jZSI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjo2NzIsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjoyMiwic2VydmljZV90aWVyIjoic3RhbmRhcmQifX0= - recorded_at: Sat, 18 Oct 2025 03:48:03 GMT -recorded_with: VCR 6.3.1 + eyJtb2RlbCI6ImNsYXVkZS1zb25uZXQtNSIsImlkIjoibXNnXzAxMUNkMTRBVFV6S3ZMOTR4M205SG8zVSIsInR5cGUiOiJtZXNzYWdlIiwicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IlRoZSB3ZWF0aGVyIGluIFNhbiBGcmFuY2lzY28sIENBIGlzIGN1cnJlbnRseSAqKjcywrBGIGFuZCBzdW5ueSoqLiBBIGJlYXV0aWZ1bCBkYXkgdG8gYmUgb3V0c2lkZSEifV0sInN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGwsInVzYWdlIjp7ImlucHV0X3Rva2VucyI6NjA0LCJjYWNoZV9jcmVhdGlvbl9pbnB1dF90b2tlbnMiOjAsImNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zIjowLCJjYWNoZV9jcmVhdGlvbiI6eyJlcGhlbWVyYWxfNW1faW5wdXRfdG9rZW5zIjowLCJlcGhlbWVyYWxfMWhfaW5wdXRfdG9rZW5zIjowfSwib3V0cHV0X3Rva2VucyI6MzgsIm91dHB1dF90b2tlbnNfZGV0YWlscyI6eyJ0aGlua2luZ190b2tlbnMiOjB9LCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCIsImluZmVyZW5jZV9nZW8iOiJnbG9iYWwifX0= + recorded_at: Tue, 14 Jul 2026 01:08:00 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tools_with_streaming.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tools_with_streaming.yml index 2b4c5aaf..e6815cf8 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tools_with_streaming.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_tools_with_streaming.yml @@ -5,17 +5,17 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"What''s - the weather in San Francisco?"}],"max_tokens":1024,"tools":[{"name":"get_weather","description":"Get - the current weather in a given location","input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The - city and state, e.g. San Francisco, CA"}},"required":["location"]}}],"tool_choice":{"type":"auto"},"stream":true}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"What''s the weather + in San Francisco?","role":"user"}],"max_tokens":1024,"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather in a given location"}],"tool_choice":{"type":"auto"},"stream":true}' headers: Accept-Encoding: - - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + - identity Accept: - text/event-stream User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -25,132 +25,145 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: - '2023-06-01' X-Api-Key: - ACCESS_TOKEN + X-Stainless-Helper-Method: + - stream X-Stainless-Retry-Count: - '0' X-Stainless-Timeout: - '600.0' Content-Length: - - '431' + - '420' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:48:51 GMT + - Tue, 14 Jul 2026 01:07:10 GMT Content-Type: - text/event-stream; charset=utf-8 Transfer-Encoding: - chunked Connection: - keep-alive - Cf-Ray: - - 99050ff2591b7ad0-SJC Cache-Control: - no-cache Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:48:50Z' + - '2026-07-14T01:07:08Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:48:52Z' + - '2026-07-14T01:07:08Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:48:50Z' + - '2026-07-14T01:07:08Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:48:50Z' + - '2026-07-14T01:07:08Z' Request-Id: - - req_011CUDyqYh6V8cJw5MyZBEBW + - req_011Cd146mHCVYrAna8Zcimy4 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1855' - Via: - - 1.1 google + Traceresponse: + - 00-8ec6bdb4c3112e43835380d60b52b665-573d9380212476a4-01 + Server: + - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Cf-Ray: + - a1aca0fb5f9d33dc-SJC body: encoding: UTF-8 string: |+ event: message_start - data: {"type":"message_start","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_01PyCEtkQhWmQVVcXkYyL1bZ","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}} } + data: {"type":"message_start","message":{"model":"claude-sonnet-5","id":"msg_011Cd146n3LLB7sNnsoEMRZc","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":466,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":55,"service_tier":"standard","inference_geo":"global"}} } event: content_block_start - data: {"type":"content_block_start","index":0,"content_block":{"type":"tool_use","id":"toolu_016WGaLu7eZCcfenKb3ssgfQ","name":"get_weather","input":{}} } + data: {"type":"content_block_start","index":0,"content_block":{"type":"tool_use","id":"toolu_01VF9uowU25wKfCVjxAHdgUi","name":"get_weather","input":{},"caller":{"type":"direct"}} } + + event: ping + data: {"type": "ping"} + + event: content_block_delta + data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":""} } event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":""} } + data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"{\"lo"} } event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"{\"location"} } + data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"catio"} } event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"\": \""} } + data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"n\""} } event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"San Francis"} } + data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":": \"San Franc"} } event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"co, CA\"}"}} + data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"isco, CA"} } + + event: content_block_delta + data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"\"}"} } event: content_block_stop - data: {"type":"content_block_stop","index":0 } + data: {"type":"content_block_stop","index":0 } event: message_delta - data: {"type":"message_delta","delta":{"stop_reason":"tool_use","stop_sequence":null},"usage":{"input_tokens":585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":56} } + data: {"type":"message_delta","delta":{"stop_reason":"tool_use","stop_sequence":null,"stop_details":null},"usage":{"input_tokens":466,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":55,"output_tokens_details":{"thinking_tokens":0}} } event: message_stop - data: {"type":"message_stop"} + data: {"type":"message_stop" } - recorded_at: Sat, 18 Oct 2025 03:48:51 GMT + recorded_at: Tue, 14 Jul 2026 01:07:10 GMT - request: method: post uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":"What''s - the weather in San Francisco?"},{"role":"assistant","content":[{"type":"tool_use","id":"toolu_016WGaLu7eZCcfenKb3ssgfQ","name":"get_weather","input":{"location":"San - Francisco, CA"}}]},{"role":"user","content":[{"type":"tool_result","tool_use_id":"toolu_016WGaLu7eZCcfenKb3ssgfQ","content":"{\"location\":\"San - Francisco, CA\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}"}]}],"max_tokens":1024,"tools":[{"name":"get_weather","description":"Get - the current weather in a given location","input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The - city and state, e.g. San Francisco, CA"}},"required":["location"]}}],"tool_choice":{"type":"auto"},"stream":true}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"What''s the weather + in San Francisco?","role":"user"},{"content":[{"id":"toolu_01VF9uowU25wKfCVjxAHdgUi","input":{"location":"San + Francisco, CA"},"name":"get_weather","type":"tool_use","caller":{"type":"direct"}}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01VF9uowU25wKfCVjxAHdgUi","type":"tool_result","content":"{\"location\":\"San + Francisco, CA\",\"temperature\":\"72°F\",\"conditions\":\"sunny\"}","is_error":false}],"role":"user"}],"max_tokens":1024,"tools":[{"input_schema":{"type":"object","properties":{"location":{"type":"string","description":"The + city and state, e.g. San Francisco, CA"}},"required":["location"]},"name":"get_weather","description":"Get + the current weather in a given location"}],"tool_choice":{"type":"auto"},"stream":true}' headers: Accept-Encoding: - - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + - identity Accept: - text/event-stream User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -160,83 +173,87 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: - '2023-06-01' X-Api-Key: - ACCESS_TOKEN + X-Stainless-Helper-Method: + - stream X-Stainless-Retry-Count: - '0' X-Stainless-Timeout: - '600.0' Content-Length: - - '782' + - '815' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:48:53 GMT + - Tue, 14 Jul 2026 01:07:10 GMT Content-Type: - text/event-stream; charset=utf-8 Transfer-Encoding: - chunked Connection: - keep-alive - Cf-Ray: - - 990510007be1909c-SJC Cache-Control: - no-cache Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:48:52Z' + - '2026-07-14T01:07:10Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:48:53Z' + - '2026-07-14T01:07:10Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:48:53Z' + - '2026-07-14T01:07:10Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:48:52Z' + - '2026-07-14T01:07:10Z' Request-Id: - - req_011CUDyqiZAmNtD5xmgfdTTQ + - req_011Cd146tF9Y9fiUztUgvwS4 Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '1664' - Via: - - 1.1 google + Traceresponse: + - 00-b8669ba0452a1aff31252dd4aaebfc83-16b53e450da56abf-01 + Server: + - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Cf-Ray: + - a1aca105ad273c35-SJC body: encoding: ASCII-8BIT string: !binary |- - ZXZlbnQ6IG1lc3NhZ2Vfc3RhcnQKZGF0YTogeyJ0eXBlIjoibWVzc2FnZV9zdGFydCIsIm1lc3NhZ2UiOnsibW9kZWwiOiJjbGF1ZGUtc29ubmV0LTQtNS0yMDI1MDkyOSIsImlkIjoibXNnXzAxVVJIVnVQcDdrM3NGOXllMll1Q0VieiIsInR5cGUiOiJtZXNzYWdlIiwicm9sZSI6ImFzc2lzdGFudCIsImNvbnRlbnQiOltdLCJzdG9wX3JlYXNvbiI6bnVsbCwic3RvcF9zZXF1ZW5jZSI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjo2NzIsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjoyLCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCJ9fSAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfc3RhcnQKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19zdGFydCIsImluZGV4IjowLCJjb250ZW50X2Jsb2NrIjp7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IiJ9ICAgICB9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IlRoZSBjdXJyZW50In0gICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgd2VhdGhlciBpbiBTYW4gRnJhbmNpc2NvLCJ9ICAgICAgICAgICAgIH0KCmV2ZW50OiBwaW5nCmRhdGE6IHsidHlwZSI6ICJwaW5nIn0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIENBIGlzIHN1bm55In0gICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfZGVsdGEKZGF0YTogeyJ0eXBlIjoiY29udGVudF9ibG9ja19kZWx0YSIsImluZGV4IjowLCJkZWx0YSI6eyJ0eXBlIjoidGV4dF9kZWx0YSIsInRleHQiOiIgd2l0aCBhIHRlbXBlcmF0dXJlIG9mIDcywrBGIn0gICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiLiJ9ICAgICAgfQoKZXZlbnQ6IGNvbnRlbnRfYmxvY2tfc3RvcApkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX3N0b3AiLCJpbmRleCI6MCAgfQoKZXZlbnQ6IG1lc3NhZ2VfZGVsdGEKZGF0YTogeyJ0eXBlIjoibWVzc2FnZV9kZWx0YSIsImRlbHRhIjp7InN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsfSwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjo2NzIsImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsIm91dHB1dF90b2tlbnMiOjIyfSB9CgpldmVudDogbWVzc2FnZV9zdG9wCmRhdGE6IHsidHlwZSI6Im1lc3NhZ2Vfc3RvcCIgICAgICB9Cgo= - recorded_at: Sat, 18 Oct 2025 03:48:54 GMT -recorded_with: VCR 6.3.1 + ZXZlbnQ6IG1lc3NhZ2Vfc3RhcnQKZGF0YTogeyJ0eXBlIjoibWVzc2FnZV9zdGFydCIsIm1lc3NhZ2UiOnsibW9kZWwiOiJjbGF1ZGUtc29ubmV0LTUiLCJpZCI6Im1zZ18wMTFDZDE0NnRnQzlwcnJWNFZKZnhTSkoiLCJ0eXBlIjoibWVzc2FnZSIsInJvbGUiOiJhc3Npc3RhbnQiLCJjb250ZW50IjpbXSwic3RvcF9yZWFzb24iOm51bGwsInN0b3Bfc2VxdWVuY2UiOm51bGwsInN0b3BfZGV0YWlscyI6bnVsbCwidXNhZ2UiOnsiaW5wdXRfdG9rZW5zIjo1NTksImNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VucyI6MCwiY2FjaGVfcmVhZF9pbnB1dF90b2tlbnMiOjAsImNhY2hlX2NyZWF0aW9uIjp7ImVwaGVtZXJhbF81bV9pbnB1dF90b2tlbnMiOjAsImVwaGVtZXJhbF8xaF9pbnB1dF90b2tlbnMiOjB9LCJvdXRwdXRfdG9rZW5zIjoxLCJzZXJ2aWNlX3RpZXIiOiJzdGFuZGFyZCIsImluZmVyZW5jZV9nZW8iOiJnbG9iYWwifX19CgpldmVudDogY29udGVudF9ibG9ja19zdGFydApkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX3N0YXJ0IiwiaW5kZXgiOjAsImNvbnRlbnRfYmxvY2siOnsidHlwZSI6InRleHQiLCJ0ZXh0IjoiIn0gICAgICB9CgpldmVudDogcGluZwpkYXRhOiB7InR5cGUiOiAicGluZyJ9CgpldmVudDogY29udGVudF9ibG9ja19kZWx0YQpkYXRhOiB7InR5cGUiOiJjb250ZW50X2Jsb2NrX2RlbHRhIiwiaW5kZXgiOjAsImRlbHRhIjp7InR5cGUiOiJ0ZXh0X2RlbHRhIiwidGV4dCI6IlRoZSJ9ICAgIH0KCmV2ZW50OiBjb250ZW50X2Jsb2NrX2RlbHRhCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfZGVsdGEiLCJpbmRleCI6MCwiZGVsdGEiOnsidHlwZSI6InRleHRfZGVsdGEiLCJ0ZXh0IjoiIHdlYXRoZXIgaW4gU2FuIEZyYW5jaXNjbywgQ0EgaXMgY3VycmVudGx5ICoqNzLCsEYgYW5kIHN1bm55KiouIEEgYmVhdXRpZnVsIGRheSBvdXQgdGhlcmUhIn0gICB9CgpldmVudDogY29udGVudF9ibG9ja19zdG9wCmRhdGE6IHsidHlwZSI6ImNvbnRlbnRfYmxvY2tfc3RvcCIsImluZGV4IjowICAgICAgICAgICAgICAgfQoKZXZlbnQ6IG1lc3NhZ2VfZGVsdGEKZGF0YTogeyJ0eXBlIjoibWVzc2FnZV9kZWx0YSIsImRlbHRhIjp7InN0b3BfcmVhc29uIjoiZW5kX3R1cm4iLCJzdG9wX3NlcXVlbmNlIjpudWxsLCJzdG9wX2RldGFpbHMiOm51bGx9LCJ1c2FnZSI6eyJpbnB1dF90b2tlbnMiOjU1OSwiY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zIjowLCJjYWNoZV9yZWFkX2lucHV0X3Rva2VucyI6MCwib3V0cHV0X3Rva2VucyI6MzYsIm91dHB1dF90b2tlbnNfZGV0YWlscyI6eyJ0aGlua2luZ190b2tlbnMiOjB9fSAgICAgICAgICB9CgpldmVudDogbWVzc2FnZV9zdG9wCmRhdGE6IHsidHlwZSI6Im1lc3NhZ2Vfc3RvcCIgICAgICAgICAgfQoK + recorded_at: Tue, 14 Jul 2026 01:07:11 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_user_message_content_blocks.yml b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_user_message_content_blocks.yml index dfbeb25b..b0aaccb2 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_user_message_content_blocks.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/native_format_test/test_agent_user_message_content_blocks.yml @@ -5,15 +5,15 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"role":"user","content":[{"type":"text","text":"What''s - in this image?"},{"type":"image","source":{"type":"base64","media_type":"image/jpeg","data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="}}]}],"max_tokens":1024}' + string: '{"model":"claude-sonnet-5","messages":[{"content":[{"text":"What''s + in this image?","type":"text"},{"source":{"data":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==","media_type":"image/png","type":"base64"},"type":"image"}],"role":"user"}],"max_tokens":1024}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Ruby + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +23,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.12.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -39,14 +39,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '320' + - '308' response: status: code: 200 message: OK headers: Date: - - Sat, 18 Oct 2025 03:48:49 GMT + - Tue, 14 Jul 2026 01:06:57 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,52 +54,57 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '30000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-10-18T03:48:48Z' + - '2026-07-14T01:06:55Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '8000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-10-18T03:48:52Z' + - '2026-07-14T01:06:57Z' Anthropic-Ratelimit-Requests-Limit: - - '50' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '49' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-10-18T03:48:48Z' + - '2026-07-14T01:06:54Z' Anthropic-Ratelimit-Tokens-Limit: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '38000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-10-18T03:48:48Z' + - '2026-07-14T01:06:55Z' Request-Id: - - req_011CUDyqLUdMFiAsMRJ42hDF + - req_011Cd145hCME8Eq1N6Sc7R5v Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2683' - Via: - - 1.1 google - Cf-Cache-Status: - - DYNAMIC - X-Robots-Tag: - - none + Traceresponse: + - 00-d6ec4f29e9f11753942c592d6333d18e-614cb2f9d0b87439-01 Server: - cloudflare + Vary: + - Accept-Encoding + X-Robots-Tag: + - none + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' + Cf-Cache-Status: + - DYNAMIC Cf-Ray: - - 99050fe06d1158ac-SJC + - a1aca0a0a8cb7396-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01C2ByjQciQ6PceQWUWUFYo5","type":"message","role":"assistant","content":[{"type":"text","text":"This - image appears to be almost entirely blank or white. I can see what looks like - a very faint gray or off-white background, but there is no discernible text, - objects, or other content visible in the image."}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":17,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":50,"service_tier":"standard"}}' - recorded_at: Sat, 18 Oct 2025 03:48:49 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd145kKNdfUA9oLPS6toT","type":"message","role":"assistant","content":[{"type":"text","text":"This + image is just a solid pale green (or very light yellow-green) color block + with no discernible objects, text, or distinct features. It appears to be + a small, uniformly colored image.\n\nIf you were expecting to share a specific + image with content, it''s possible the upload didn''t work correctly, or this + might be a background/placeholder image. Feel free to try uploading again + if you meant to share something else!"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":16,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":119,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:06:57 GMT +recorded_with: VCR 6.4.0 diff --git a/test/fixtures/vcr_cassettes/integration/anthropic/response_test/prompt.yml b/test/fixtures/vcr_cassettes/integration/anthropic/response_test/prompt.yml index d817c585..827a89ea 100644 --- a/test/fixtures/vcr_cassettes/integration/anthropic/response_test/prompt.yml +++ b/test/fixtures/vcr_cassettes/integration/anthropic/response_test/prompt.yml @@ -5,15 +5,14 @@ http_interactions: uri: https://api.anthropic.com/v1/messages body: encoding: UTF-8 - string: '{"model":"claude-sonnet-4-5-20250929","messages":[{"content":"Say ''test'' - once.","role":"user"}],"max_tokens":10}' + string: '{"model":"claude-sonnet-5","messages":[{"content":"Say ''test'' once.","role":"user"}],"max_tokens":10}' headers: Accept-Encoding: - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 Accept: - application/json User-Agent: - - Anthropic::Client/Ruby 1.14.0 + - Anthropic::Client/Ruby 1.55.0 Host: - api.anthropic.com X-Stainless-Arch: @@ -23,11 +22,11 @@ http_interactions: X-Stainless-Os: - MacOS X-Stainless-Package-Version: - - 1.14.0 + - 1.55.0 X-Stainless-Runtime: - ruby X-Stainless-Runtime-Version: - - 3.4.7 + - 4.0.2 Content-Type: - application/json Anthropic-Version: @@ -39,14 +38,14 @@ http_interactions: X-Stainless-Timeout: - '600.0' Content-Length: - - '112' + - '101' response: status: code: 200 message: OK headers: Date: - - Wed, 12 Nov 2025 22:50:02 GMT + - Tue, 14 Jul 2026 01:06:08 GMT Content-Type: - application/json Transfer-Encoding: @@ -54,49 +53,51 @@ http_interactions: Connection: - keep-alive Anthropic-Ratelimit-Input-Tokens-Limit: - - '2000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Remaining: - - '2000000' + - '10000000' Anthropic-Ratelimit-Input-Tokens-Reset: - - '2025-11-12T22:50:01Z' + - '2026-07-14T01:06:07Z' Anthropic-Ratelimit-Output-Tokens-Limit: - - '400000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Remaining: - - '400000' + - '2000000' Anthropic-Ratelimit-Output-Tokens-Reset: - - '2025-11-12T22:50:02Z' + - '2026-07-14T01:06:08Z' Anthropic-Ratelimit-Requests-Limit: - - '4000' + - '20000' Anthropic-Ratelimit-Requests-Remaining: - - '3999' + - '19999' Anthropic-Ratelimit-Requests-Reset: - - '2025-11-12T22:49:59Z' - Retry-After: - - '63' + - '2026-07-14T01:06:07Z' Anthropic-Ratelimit-Tokens-Limit: - - '2400000' + - '12000000' Anthropic-Ratelimit-Tokens-Remaining: - - '2400000' + - '12000000' Anthropic-Ratelimit-Tokens-Reset: - - '2025-11-12T22:50:01Z' + - '2026-07-14T01:06:07Z' Request-Id: - - req_011CV4p5f7xVj2hPkcfwairW + - req_011Cd142DojvD1M7jZnmHt8W Strict-Transport-Security: - max-age=31536000; includeSubDomains; preload Anthropic-Organization-Id: - 2557c2f2-bcfa-4054-9fa8-ae13b3b47d6b - X-Envoy-Upstream-Service-Time: - - '2497' + Traceresponse: + - 00-79100d079564a1d9977a9cee1f6a43e2-5faf6598171bec90-01 + Server: + - cloudflare + Vary: + - Accept-Encoding Cf-Cache-Status: - DYNAMIC X-Robots-Tag: - none - Server: - - cloudflare + Content-Security-Policy: + - default-src 'none'; frame-ancestors 'none' Cf-Ray: - - 99d995f3ed777ada-SJC + - a1ac9f7a29484b39-SJC body: encoding: ASCII-8BIT - string: '{"model":"claude-sonnet-4-5-20250929","id":"msg_01Hc9y8Feiv5FvvN5ayM8qLP","type":"message","role":"assistant","content":[{"type":"text","text":"test"}],"stop_reason":"end_turn","stop_sequence":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":4,"service_tier":"standard"}}' - recorded_at: Wed, 12 Nov 2025 22:50:02 GMT -recorded_with: VCR 6.3.1 + string: '{"model":"claude-sonnet-5","id":"msg_011Cd142EbsDBZqvYwcjZqUp","type":"message","role":"assistant","content":[{"type":"text","text":"test"}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":3,"output_tokens_details":{"thinking_tokens":0},"service_tier":"standard","inference_geo":"global"}}' + recorded_at: Tue, 14 Jul 2026 01:06:08 GMT +recorded_with: VCR 6.4.0 diff --git a/test/integration/anthropic/common_format/instructions_test.rb b/test/integration/anthropic/common_format/instructions_test.rb index dabb956b..b4b89790 100644 --- a/test/integration/anthropic/common_format/instructions_test.rb +++ b/test/integration/anthropic/common_format/instructions_test.rb @@ -10,10 +10,10 @@ class InstructionsTest < ActiveSupport::TestCase # Case 1: Agent without instructions (no instructions set in test agent) class NoInstructionsAgent < ActiveAgent::Base - generate_with :anthropic, model: "claude-sonnet-4-5-20250929" + generate_with :anthropic, model: "claude-sonnet-5" BASIC_REQUEST = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", @@ -33,7 +33,7 @@ def basic_request end BASIC_REQUEST_WITH_OVERRIDE = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", system: "You are an overridden assistant.", messages: [ { @@ -57,10 +57,10 @@ def basic_request_with_override # Case 2: Agent auto loads instructions from template (no instructions set in Test Agent, looked by name) class AutoTemplateAgent < ActiveAgent::Base - generate_with :anthropic, model: "claude-sonnet-4-5-20250929" + generate_with :anthropic, model: "claude-sonnet-5" BASIC_REQUEST = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", system: "Default auto-loaded instructions for testing.", messages: [ { @@ -81,7 +81,7 @@ def basic_request end BASIC_REQUEST_WITH_OVERRIDE = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", system: "You are an overridden assistant.", messages: [ { @@ -106,11 +106,11 @@ def basic_request_with_override # Case 3: Agent has instructions set via generate_with instructions: class ConfiguredInstructionsAgent < ActiveAgent::Base generate_with :anthropic, - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", instructions: "You are a configured assistant with default instructions." BASIC_REQUEST = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", system: "You are a configured assistant with default instructions.", messages: [ { @@ -131,7 +131,7 @@ def basic_request end BASIC_REQUEST_WITH_OVERRIDE = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", system: "You are an overridden assistant.", messages: [ { @@ -156,11 +156,11 @@ def basic_request_with_override # Case 4: Agent with array of system instructions class ArrayInstructionsAgent < ActiveAgent::Base generate_with :anthropic, - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", instructions: [ "You are a helpful assistant.", "Always be polite and professional." ] BASIC_REQUEST = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", system: [ { type: "text", text: "You are a helpful assistant." }, { type: "text", text: "Always be polite and professional." } @@ -184,7 +184,7 @@ def basic_request end BASIC_REQUEST_WITH_OVERRIDE = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", system: [ { type: "text", text: "You are an overridden assistant." }, { type: "text", text: "Please respond concisely." } diff --git a/test/integration/anthropic/common_format/mcp_test.rb b/test/integration/anthropic/common_format/mcp_test.rb index a73d4f6a..f05a1799 100644 --- a/test/integration/anthropic/common_format/mcp_test.rb +++ b/test/integration/anthropic/common_format/mcp_test.rb @@ -241,7 +241,7 @@ def common_format_sse_server end # Validate that the recorded request matches our expectations (with filtered values) - cassette_file = YAML.load_file("test/fixtures/vcr_cassettes/#{cassette_name}.yml") + cassette_file = YAML.load_file("#{VCR_CASSETTE_DIR}/#{cassette_name}.yml") saved_request_body = JSON.parse(cassette_file.dig("http_interactions", 0, "request", "body", "string"), symbolize_names: true) assert_equal expected_body, saved_request_body diff --git a/test/integration/anthropic/common_format/preview_test.rb b/test/integration/anthropic/common_format/preview_test.rb index a2657780..fa6303ad 100644 --- a/test/integration/anthropic/common_format/preview_test.rb +++ b/test/integration/anthropic/common_format/preview_test.rb @@ -9,7 +9,7 @@ class InstructionsTest < ActiveSupport::TestCase include Integration::TestHelper class PreviewAgent < ActiveAgent::Base - generate_with :anthropic, model: "claude-sonnet-4-5-20250929" + generate_with :anthropic, model: "claude-sonnet-5" def comprehensive_test prompt( diff --git a/test/integration/anthropic/native_format_test.rb b/test/integration/anthropic/native_format_test.rb index 8ea0ee34..dc588a0a 100644 --- a/test/integration/anthropic/native_format_test.rb +++ b/test/integration/anthropic/native_format_test.rb @@ -8,13 +8,13 @@ class NativeFormatTest < ActiveSupport::TestCase include Integration::TestHelper class TestAgent < ActiveAgent::Base - generate_with :anthropic, model: "claude-sonnet-4-5-20250929" + generate_with :anthropic, model: "claude-sonnet-5" ############################################################### # Basic Request ############################################################### BASIC_REQUEST = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", @@ -36,7 +36,7 @@ def basic_request # Request with System Prompt ############################################################### SYSTEM_PROMPT = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", system: "You are a helpful assistant.", messages: [ { @@ -44,8 +44,7 @@ def basic_request content: "What is 2+2?" } ], - max_tokens: 1024, - temperature: 0.7 + max_tokens: 1024 } def system_prompt prompt( @@ -53,8 +52,7 @@ def system_prompt messages: [ { role: "user", content: "What is 2+2?" } ], - max_tokens: 1024, - temperature: 0.7 + max_tokens: 1024 ) end @@ -62,7 +60,7 @@ def system_prompt # Request with Tools ############################################################### TOOLS_REQUEST = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", @@ -122,7 +120,7 @@ def get_weather(location:) # Request with Extended Thinking ############################################################### EXTENDED_THINKING = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", @@ -131,8 +129,7 @@ def get_weather(location:) ], max_tokens: 4096, thinking: { - type: "enabled", - budget_tokens: 2048 + type: "adaptive" } } def extended_thinking @@ -142,8 +139,7 @@ def extended_thinking ], max_tokens: 4096, thinking: { - type: "enabled", - budget_tokens: 2048 + type: "adaptive" } ) end @@ -152,7 +148,7 @@ def extended_thinking # Request with Metadata ############################################################### METADATA_REQUEST = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", @@ -180,7 +176,7 @@ def metadata_request # Request with Multiple Messages ############################################################### MULTIPLE_MESSAGES = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", content: "Hello there." }, { role: "assistant", content: "Hi, I'm Claude. How can I help you?" }, @@ -203,7 +199,7 @@ def multiple_messages # User Message with Content Blocks ############################################################### USER_MESSAGE_CONTENT_BLOCKS = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", @@ -213,7 +209,7 @@ def multiple_messages type: "image", source: { type: "base64", - media_type: "image/jpeg", + media_type: "image/png", data: "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==" } } @@ -233,7 +229,7 @@ def user_message_content_blocks type: "image", source: { type: "base64", - media_type: "image/jpeg", + media_type: "image/png", data: "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==" } } @@ -248,7 +244,7 @@ def user_message_content_blocks # Assistant Message with Tool Use ############################################################### ASSISTANT_MESSAGE_TOOL_USE = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", @@ -314,7 +310,7 @@ def assistant_message_tool_use # Tool Choice: Auto (Default) ############################################################### TOOL_CHOICE_AUTO = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", content: "What's the weather?" } ], @@ -361,7 +357,7 @@ def tool_choice_auto # Tool Choice: Any (Force Tool Use) ############################################################### TOOL_CHOICE_ANY = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", content: "What's the weather?" } ], @@ -408,7 +404,7 @@ def tool_choice_any # Tool Choice: Specific Tool ############################################################### TOOL_CHOICE_SPECIFIC = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", content: "What's the weather?" } ], @@ -455,7 +451,7 @@ def tool_choice_specific # Tool Choice: Disable Parallel Tool Use ############################################################### TOOL_CHOICE_DISABLE_PARALLEL = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", content: "What's the weather?" } ], @@ -508,7 +504,7 @@ def tool_choice_disable_parallel # Thinking Configuration: Disabled ############################################################### THINKING_DISABLED = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", content: "Hello!" } ], @@ -529,7 +525,7 @@ def thinking_disabled # Request with Streaming ############################################################### STREAMING = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", content: "Tell me a story." } ], @@ -581,22 +577,18 @@ def tools_with_streaming # Request with Temperature and Sampling Parameters ############################################################### SAMPLING_PARAMETERS = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", content: "Write a creative story." } ], - max_tokens: 2048, - top_k: 50, - top_p: 0.95 + max_tokens: 2048 } def sampling_parameters prompt( messages: [ { role: "user", content: "Write a creative story." } ], - max_tokens: 2048, - top_k: 50, - top_p: 0.95 + max_tokens: 2048 ) end @@ -604,7 +596,7 @@ def sampling_parameters # Request with Stop Sequences ############################################################### STOP_SEQUENCES = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", content: "Generate a JSON object representing a person with a name, email, and phone number ." } ], @@ -625,7 +617,7 @@ def stop_sequences # Native Format MCP Server ############################################################### MCP_SERVER = { - model: "claude-sonnet-4-5-20250929", + model: "claude-sonnet-5", messages: [ { role: "user", diff --git a/test/integration/anthropic/response_test.rb b/test/integration/anthropic/response_test.rb index c39cfe86..193c2aea 100644 --- a/test/integration/anthropic/response_test.rb +++ b/test/integration/anthropic/response_test.rb @@ -8,7 +8,7 @@ class ResponseTest < ActiveSupport::TestCase include Integration::TestHelper class PromptAgent < ActiveAgent::Base - generate_with :anthropic, model: "claude-sonnet-4-5-20250929" + generate_with :anthropic, model: "claude-sonnet-5" def simple_prompt prompt( diff --git a/test/integration/open_ai/responses/common_format/mcp_test.rb b/test/integration/open_ai/responses/common_format/mcp_test.rb index 84b4f762..33189d4d 100644 --- a/test/integration/open_ai/responses/common_format/mcp_test.rb +++ b/test/integration/open_ai/responses/common_format/mcp_test.rb @@ -173,7 +173,7 @@ def calculate(operation:, a:, b:) end # Validate that the recorded request matches our expectations (with filtered values) - cassette_file = YAML.load_file("test/fixtures/vcr_cassettes/#{cassette_name}.yml") + cassette_file = YAML.load_file("#{VCR_CASSETTE_DIR}/#{cassette_name}.yml") saved_request_body = JSON.parse(cassette_file.dig("http_interactions", 0, "request", "body", "string"), symbolize_names: true) assert_equal expected_body, saved_request_body diff --git a/test/integration/test_helper.rb b/test/integration/test_helper.rb index 3db14be3..a3dc3bcb 100644 --- a/test/integration/test_helper.rb +++ b/test/integration/test_helper.rb @@ -23,7 +23,7 @@ def test_request_builder(agent_class, action_name, trigger_name, expected_reques end # Validate that the 1st recorded request matches our expectations - cassette_file = YAML.load_file("test/fixtures/vcr_cassettes/#{cassette_name}.yml") + cassette_file = YAML.load_file("#{VCR_CASSETTE_DIR}/#{cassette_name}.yml") saved_request_body = JSON.parse(cassette_file.dig("http_interactions", 0, "request", "body", "string"), symbolize_names: true) assert_equal expected_request_body, saved_request_body diff --git a/test/providers/bedrock/bedrock_provider_test.rb b/test/providers/bedrock/bedrock_provider_test.rb index 2ce09048..e14224e6 100644 --- a/test/providers/bedrock/bedrock_provider_test.rb +++ b/test/providers/bedrock/bedrock_provider_test.rb @@ -13,7 +13,7 @@ class BedrockProviderTest < ActiveSupport::TestCase aws_region: "eu-west-2", aws_access_key: "test-access-key", aws_secret_key: "test-secret-key", - model: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0", + model: "eu.anthropic.claude-sonnet-5-v1:0", messages: [ { role: "user", content: "Hello" } ] } end @@ -74,7 +74,7 @@ class BedrockProviderTest < ActiveSupport::TestCase service: "Bedrock", aws_region: "eu-west-2", aws_bearer_token: "test-bearer-token", - model: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0", + model: "eu.anthropic.claude-sonnet-5-v1:0", messages: [ { role: "user", content: "Hello" } ] } @@ -96,7 +96,7 @@ class BedrockProviderTest < ActiveSupport::TestCase service: "Bedrock", aws_region: "eu-west-2", aws_bearer_token: "test-bearer-token", - model: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0" + model: "eu.anthropic.claude-sonnet-5-v1:0" } provider = ActiveAgent::Providers::BedrockProvider.new(bearer_config) @@ -122,7 +122,7 @@ class BedrockProviderTest < ActiveSupport::TestCase service: "Bedrock", aws_region: "eu-west-2", aws_bearer_token: "test-bearer-token", - model: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0", + model: "eu.anthropic.claude-sonnet-5-v1:0", initial_retry_delay: 2.0, max_retry_delay: 30.0 } diff --git a/test/providers/gemini/streaming_lifecycle_test.rb b/test/providers/gemini/streaming_lifecycle_test.rb index 7198b7c1..374a47ca 100644 --- a/test/providers/gemini/streaming_lifecycle_test.rb +++ b/test/providers/gemini/streaming_lifecycle_test.rb @@ -45,6 +45,10 @@ class StreamingLifecycleTest < ActiveSupport::TestCase def as_json { content: content, role: role }.compact end + + def deep_to_h + to_h.compact + end end MockChunkEvent = Struct.new(:type, :chunk, keyword_init: true) diff --git a/test/providers/ollama/streaming_lifecycle_test.rb b/test/providers/ollama/streaming_lifecycle_test.rb index fc3a56db..4db2300b 100644 --- a/test/providers/ollama/streaming_lifecycle_test.rb +++ b/test/providers/ollama/streaming_lifecycle_test.rb @@ -34,6 +34,10 @@ class StreamingLifecycleTest < ActiveSupport::TestCase def as_json { content: content, role: role }.compact end + + def deep_to_h + to_h.compact + end end MockChunkEvent = Struct.new(:type, :chunk, keyword_init: true) diff --git a/test/providers/open_ai/chat/streaming_lifecycle_test.rb b/test/providers/open_ai/chat/streaming_lifecycle_test.rb index a2192fa2..3b656fbe 100644 --- a/test/providers/open_ai/chat/streaming_lifecycle_test.rb +++ b/test/providers/open_ai/chat/streaming_lifecycle_test.rb @@ -35,6 +35,10 @@ class StreamingLifecycleTest < ActiveSupport::TestCase def as_json { content: content, role: role }.compact end + + def deep_to_h + to_h.compact + end end MockChunkEvent = Struct.new(:type, :chunk, keyword_init: true) diff --git a/test/providers/open_ai/chat_provider_test.rb b/test/providers/open_ai/chat_provider_test.rb index 2d9a38bb..4583d417 100644 --- a/test/providers/open_ai/chat_provider_test.rb +++ b/test/providers/open_ai/chat_provider_test.rb @@ -23,7 +23,11 @@ class ChatProviderTest < ActiveSupport::TestCase end teardown do - WebMock.disable! + # Keep WebMock enabled (its global default). Disabling it here would + # stop VCR from intercepting HTTP in every subsequent test, causing + # them to hit the real network. Just clear this test's stubs. + WebMock.reset! + WebMock.enable! end test "accumulates streaming tool call deltas into message_stack" do @@ -35,7 +39,9 @@ class ChatProviderTest < ActiveSupport::TestCase tools: weather_tool ) - chat_provider = ActiveAgent::Providers::OpenAI::ChatProvider.new + chat_provider = ActiveAgent::Providers::OpenAI::ChatProvider.new( + stream_broadcaster: ->(*_) { } + ) stream.each do |event| chat_provider.send(:process_stream_chunk, event) diff --git a/test/providers/usage_test.rb b/test/providers/usage_test.rb index 423cd1f9..a4b3fa3e 100644 --- a/test/providers/usage_test.rb +++ b/test/providers/usage_test.rb @@ -7,7 +7,7 @@ class UsageTest < ActiveSupport::TestCase # Anthropic Provider Tests class AnthropicTestAgent < ActiveAgent::Base - generate_with :anthropic, model: "claude-3-5-haiku-20241022" + generate_with :anthropic, model: "claude-haiku-4-5" def chat prompt(message: params[:message]) diff --git a/test/test_helper.rb b/test/test_helper.rb index 483dde8e..86d61402 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -97,10 +97,51 @@ def doc_example_output(example = nil, test_name = nil) File.write(file_path, content.join("\n")) end +# Version-pinned gemfiles (see gemfiles/) set a "_GEM_VERSION" env var so +# that cassettes recorded against a specific provider gem version live in their +# own subdirectory. The subdirectory is scoped by BOTH gem name and version +# (e.g. "anthropic-1.12") rather than by version alone: a bare "v1.12" could +# mean anthropic 1.12 or openai 1.12 and collide across gems. +VCR_GEM_SCOPE = { + "anthropic" => ENV["ANTHROPIC_GEM_VERSION"], + "openai" => ENV["OPENAI_GEM_VERSION"] +}.compact.map { |gem_name, version| "#{gem_name}-#{version}" }.first + +VCR_CASSETTE_DIR = if VCR_GEM_SCOPE + "test/fixtures/vcr_cassettes/#{VCR_GEM_SCOPE}" +else + "test/fixtures/vcr_cassettes" +end + +# VCR record mode. +# +# - Locally (default): ":once" — replay existing cassettes, record any that +# are missing. +# - In CI, or when VCR_RECORD_MODE=none: ":none" — never record and never make +# real HTTP calls. Any request without a matching cassette raises +# VCR::Errors::UnhandledHTTPRequestError, which prints the exact request +# (method, URI, body) so you can see what changed and why the cassette no +# longer matches — instead of silently hitting the real API and failing with +# an authentication error. +# +# To reproduce the strict CI behavior locally on specific files: +# VCR_RECORD_MODE=none BUNDLE_GEMFILE=gemfiles/rails8.gemfile bin/test +VCR_RECORD_MODE = (ENV["VCR_RECORD_MODE"] || (ENV["CI"] ? "none" : "once")).to_sym + VCR.configure do |config| - config.cassette_library_dir = "test/fixtures/vcr_cassettes" + config.cassette_library_dir = VCR_CASSETTE_DIR config.hook_into :webmock + config.default_cassette_options = { record: VCR_RECORD_MODE } + + # When recording is disabled, also refuse any real HTTP connection that + # happens outside a cassette so nothing leaks out to the real APIs. Tests + # then fail loudly with the mismatched request details instead of an + # authentication error from a real call. + if VCR_RECORD_MODE == :none + config.allow_http_connections_when_no_cassette = false + end + config.filter_sensitive_data("ACCESS_TOKEN") { ENV["OPEN_AI_ACCESS_TOKEN"] } config.filter_sensitive_data("ORGANIZATION_ID") { ENV["OPEN_AI_ORGANIZATION_ID"] } config.filter_sensitive_data("PROJECT_ID") { ENV["OPEN_AI_PROJECT_ID"] }