anthropic 1.58.0 → 1.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +1 -1
  4. data/lib/anthropic/helpers/messages.rb +12 -3
  5. data/lib/anthropic/helpers/refusal_fallback.rb +85 -14
  6. data/lib/anthropic/helpers/streaming/message_stream.rb +7 -2
  7. data/lib/anthropic/helpers/tools/runner.rb +98 -1
  8. data/lib/anthropic/internal/type/converter.rb +2 -0
  9. data/lib/anthropic/models/anthropic_beta.rb +6 -0
  10. data/lib/anthropic/models/beta/beta_content_block_param.rb +15 -1
  11. data/lib/anthropic/models/beta/beta_fallback_credit_not_applied.rb +75 -0
  12. data/lib/anthropic/models/beta/beta_fallback_credit_redeemed.rb +22 -0
  13. data/lib/anthropic/models/beta/beta_fallback_credit_token_param.rb +64 -0
  14. data/lib/anthropic/models/beta/beta_fallback_credit_usage.rb +54 -0
  15. data/lib/anthropic/models/beta/beta_fallbacks_param.rb +27 -0
  16. data/lib/anthropic/models/beta/beta_managed_agents_model.rb +10 -5
  17. data/lib/anthropic/models/beta/beta_message_delta_usage.rb +9 -1
  18. data/lib/anthropic/models/beta/beta_message_param.rb +3 -3
  19. data/lib/anthropic/models/beta/beta_mid_conversation_system_block_param.rb +33 -3
  20. data/lib/anthropic/models/beta/beta_request_tool_addition_block.rb +72 -0
  21. data/lib/anthropic/models/beta/beta_request_tool_removal_block.rb +72 -0
  22. data/lib/anthropic/models/beta/beta_tool_change_mcp_tool_reference.rb +34 -0
  23. data/lib/anthropic/models/beta/beta_tool_change_mcp_toolset_reference.rb +27 -0
  24. data/lib/anthropic/models/beta/beta_tool_change_tool_reference.rb +29 -0
  25. data/lib/anthropic/models/beta/beta_usage.rb +9 -1
  26. data/lib/anthropic/models/beta/message_create_params.rb +47 -9
  27. data/lib/anthropic/models/beta/messages/batch_create_params.rb +51 -9
  28. data/lib/anthropic/models/model.rb +12 -7
  29. data/lib/anthropic/resources/beta/messages.rb +4 -4
  30. data/lib/anthropic/version.rb +1 -1
  31. data/lib/anthropic.rb +10 -0
  32. data/rbi/anthropic/models/anthropic_beta.rbi +10 -0
  33. data/rbi/anthropic/models/beta/beta_content_block_param.rbi +2 -0
  34. data/rbi/anthropic/models/beta/beta_fallback_credit_not_applied.rbi +171 -0
  35. data/rbi/anthropic/models/beta/beta_fallback_credit_redeemed.rbi +32 -0
  36. data/rbi/anthropic/models/beta/beta_fallback_credit_token_param.rbi +124 -0
  37. data/rbi/anthropic/models/beta/beta_fallback_credit_usage.rbi +89 -0
  38. data/rbi/anthropic/models/beta/beta_fallbacks_param.rbi +38 -0
  39. data/rbi/anthropic/models/beta/beta_managed_agents_model.rbi +12 -5
  40. data/rbi/anthropic/models/beta/beta_message_delta_usage.rbi +18 -0
  41. data/rbi/anthropic/models/beta/beta_mid_conversation_system_block_param.rbi +54 -3
  42. data/rbi/anthropic/models/beta/beta_request_tool_addition_block.rbi +120 -0
  43. data/rbi/anthropic/models/beta/beta_request_tool_removal_block.rbi +120 -0
  44. data/rbi/anthropic/models/beta/beta_tool_change_mcp_tool_reference.rbi +44 -0
  45. data/rbi/anthropic/models/beta/beta_tool_change_mcp_toolset_reference.rbi +36 -0
  46. data/rbi/anthropic/models/beta/beta_tool_change_tool_reference.rbi +36 -0
  47. data/rbi/anthropic/models/beta/beta_usage.rbi +18 -0
  48. data/rbi/anthropic/models/beta/message_create_params.rbi +76 -8
  49. data/rbi/anthropic/models/beta/messages/batch_create_params.rbi +78 -8
  50. data/rbi/anthropic/models/model.rbi +10 -7
  51. data/rbi/anthropic/resources/beta/messages.rbi +30 -6
  52. data/sig/anthropic/models/anthropic_beta.rbs +4 -0
  53. data/sig/anthropic/models/beta/beta_content_block_param.rbs +2 -0
  54. data/sig/anthropic/models/beta/beta_fallback_credit_not_applied.rbs +67 -0
  55. data/sig/anthropic/models/beta/beta_fallback_credit_redeemed.rbs +17 -0
  56. data/sig/anthropic/models/beta/beta_fallback_credit_token_param.rbs +44 -0
  57. data/sig/anthropic/models/beta/beta_fallback_credit_usage.rbs +32 -0
  58. data/sig/anthropic/models/beta/beta_fallbacks_param.rbs +18 -0
  59. data/sig/anthropic/models/beta/beta_managed_agents_model.rbs +9 -5
  60. data/sig/anthropic/models/beta/beta_message_delta_usage.rbs +5 -0
  61. data/sig/anthropic/models/beta/beta_mid_conversation_system_block_param.rbs +15 -4
  62. data/sig/anthropic/models/beta/beta_request_tool_addition_block.rbs +45 -0
  63. data/sig/anthropic/models/beta/beta_request_tool_removal_block.rbs +45 -0
  64. data/sig/anthropic/models/beta/beta_tool_change_mcp_tool_reference.rbs +30 -0
  65. data/sig/anthropic/models/beta/beta_tool_change_mcp_toolset_reference.rbs +23 -0
  66. data/sig/anthropic/models/beta/beta_tool_change_tool_reference.rbs +20 -0
  67. data/sig/anthropic/models/beta/beta_usage.rbs +5 -0
  68. data/sig/anthropic/models/beta/message_create_params.rbs +17 -8
  69. data/sig/anthropic/models/beta/messages/batch_create_params.rbs +17 -8
  70. data/sig/anthropic/models/model.rbs +11 -7
  71. data/sig/anthropic/resources/beta/messages.rbs +4 -4
  72. metadata +32 -2
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Anthropic
4
+ module Models
5
+ module Beta
6
+ class BetaFallbackCreditUsage < Anthropic::Internal::Type::BaseModel
7
+ # @!attribute status
8
+ # Whether the fallback-credit reprice was applied to this response's billing.
9
+ #
10
+ # A union discriminated on `type`. `redeemed`: the retry is billed as if the
11
+ # conversation had been on the retry model all along — including when the
12
+ # resulting shift is zero because there was nothing to move. `not_applied`: no
13
+ # reprice was applied; the arm's `reason` says why.
14
+ #
15
+ # @return [Anthropic::Models::Beta::BetaFallbackCreditRedeemed, Anthropic::Models::Beta::BetaFallbackCreditNotApplied]
16
+ required :status, union: -> { Anthropic::Beta::BetaFallbackCreditUsage::Status }
17
+
18
+ # @!method initialize(status:)
19
+ # Some parameter documentations has been truncated, see
20
+ # {Anthropic::Models::Beta::BetaFallbackCreditUsage} for more details.
21
+ #
22
+ # Outcome of the `fallback_credit_token` presented on this request.
23
+ #
24
+ # @param status [Anthropic::Models::Beta::BetaFallbackCreditRedeemed, Anthropic::Models::Beta::BetaFallbackCreditNotApplied] Whether the fallback-credit reprice was applied to this response's billing.
25
+
26
+ # Whether the fallback-credit reprice was applied to this response's billing.
27
+ #
28
+ # A union discriminated on `type`. `redeemed`: the retry is billed as if the
29
+ # conversation had been on the retry model all along — including when the
30
+ # resulting shift is zero because there was nothing to move. `not_applied`: no
31
+ # reprice was applied; the arm's `reason` says why.
32
+ #
33
+ # @see Anthropic::Models::Beta::BetaFallbackCreditUsage#status
34
+ module Status
35
+ extend Anthropic::Internal::Type::Union
36
+
37
+ discriminator :type
38
+
39
+ # The reprice was applied: the retry is billed as if the conversation
40
+ # had been on the retry model all along.
41
+ variant :redeemed, -> { Anthropic::Beta::BetaFallbackCreditRedeemed }
42
+
43
+ # No reprice was applied; ``reason`` says why.
44
+ variant :not_applied, -> { Anthropic::Beta::BetaFallbackCreditNotApplied }
45
+
46
+ # @!method self.variants
47
+ # @return [Array(Anthropic::Models::Beta::BetaFallbackCreditRedeemed, Anthropic::Models::Beta::BetaFallbackCreditNotApplied)]
48
+ end
49
+ end
50
+ end
51
+
52
+ BetaFallbackCreditUsage = Beta::BetaFallbackCreditUsage
53
+ end
54
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Anthropic
4
+ module Models
5
+ module Beta
6
+ # Opt-in server-side retry on one or more substitute models when the requested
7
+ # model declines for policy reasons. Tried in order: if the first entry also
8
+ # declines, the second is tried, and so on. The string "default" requests the
9
+ # requested model's server-defined default fallback configuration.
10
+ module BetaFallbacksParam
11
+ extend Anthropic::Internal::Type::Union
12
+
13
+ variant -> { Anthropic::Models::Beta::BetaFallbacksParam::BetaFallbackParamArray }
14
+
15
+ variant const: :default
16
+
17
+ # @!method self.variants
18
+ # @return [Array(Array<Anthropic::Models::Beta::BetaFallbackParam>, Symbol, :default)]
19
+
20
+ # @type [Anthropic::Internal::Type::Converter]
21
+ BetaFallbackParamArray = Anthropic::Internal::Type::ArrayOf[-> { Anthropic::Beta::BetaFallbackParam }]
22
+ end
23
+ end
24
+
25
+ BetaFallbacksParam = Beta::BetaFallbacksParam
26
+ end
27
+ end
@@ -14,6 +14,8 @@ module Anthropic
14
14
 
15
15
  variant const: -> { Anthropic::Models::Beta::BetaManagedAgentsModel::CLAUDE_FABLE_5 }
16
16
 
17
+ variant const: -> { Anthropic::Models::Beta::BetaManagedAgentsModel::CLAUDE_OPUS_5 }
18
+
17
19
  variant const: -> { Anthropic::Models::Beta::BetaManagedAgentsModel::CLAUDE_OPUS_4_8 }
18
20
 
19
21
  variant const: -> { Anthropic::Models::Beta::BetaManagedAgentsModel::CLAUDE_OPUS_4_7 }
@@ -51,13 +53,16 @@ module Anthropic
51
53
  # Next generation of intelligence for the hardest knowledge work and coding problems
52
54
  CLAUDE_FABLE_5 = :"claude-fable-5"
53
55
 
54
- # Frontier intelligence for long-running agents and coding
56
+ # Powerful intelligence for long-running agents and coding
57
+ CLAUDE_OPUS_5 = :"claude-opus-5"
58
+
59
+ # Powerful intelligence for long-running agents and coding
55
60
  CLAUDE_OPUS_4_8 = :"claude-opus-4-8"
56
61
 
57
- # Frontier intelligence for long-running agents and coding
62
+ # Powerful intelligence for long-running agents and coding
58
63
  CLAUDE_OPUS_4_7 = :"claude-opus-4-7"
59
64
 
60
- # Most intelligent model for building agents and coding
65
+ # Powerful intelligence for long-running agents and coding
61
66
  CLAUDE_OPUS_4_6 = :"claude-opus-4-6"
62
67
 
63
68
  # Best combination of speed and intelligence
@@ -69,10 +74,10 @@ module Anthropic
69
74
  # Fastest model with near-frontier intelligence
70
75
  CLAUDE_HAIKU_4_5_20251001 = :"claude-haiku-4-5-20251001"
71
76
 
72
- # Premium model combining maximum intelligence with practical performance
77
+ # Powerful intelligence for long-running agents and coding
73
78
  CLAUDE_OPUS_4_5 = :"claude-opus-4-5"
74
79
 
75
- # Premium model combining maximum intelligence with practical performance
80
+ # Powerful intelligence for long-running agents and coding
76
81
  CLAUDE_OPUS_4_5_20251101 = :"claude-opus-4-5-20251101"
77
82
 
78
83
  # High-performance model for agents and coding
@@ -16,6 +16,12 @@ module Anthropic
16
16
  # @return [Integer, nil]
17
17
  required :cache_read_input_tokens, Integer, nil?: true
18
18
 
19
+ # @!attribute fallback_credit
20
+ # Outcome of the `fallback_credit_token` presented on this request.
21
+ #
22
+ # @return [Anthropic::Models::Beta::BetaFallbackCreditUsage, nil]
23
+ required :fallback_credit, -> { Anthropic::Beta::BetaFallbackCreditUsage }, nil?: true
24
+
19
25
  # @!attribute input_tokens
20
26
  # The cumulative number of input tokens which were used.
21
27
  #
@@ -60,7 +66,7 @@ module Anthropic
60
66
  # @return [Anthropic::Models::Beta::BetaServerToolUsage, nil]
61
67
  required :server_tool_use, -> { Anthropic::Beta::BetaServerToolUsage }, nil?: true
62
68
 
63
- # @!method initialize(cache_creation_input_tokens:, cache_read_input_tokens:, input_tokens:, iterations:, output_tokens:, output_tokens_details:, server_tool_use:)
69
+ # @!method initialize(cache_creation_input_tokens:, cache_read_input_tokens:, fallback_credit:, input_tokens:, iterations:, output_tokens:, output_tokens_details:, server_tool_use:)
64
70
  # Some parameter documentations has been truncated, see
65
71
  # {Anthropic::Models::Beta::BetaMessageDeltaUsage} for more details.
66
72
  #
@@ -68,6 +74,8 @@ module Anthropic
68
74
  #
69
75
  # @param cache_read_input_tokens [Integer, nil] The cumulative number of input tokens read from the cache.
70
76
  #
77
+ # @param fallback_credit [Anthropic::Models::Beta::BetaFallbackCreditUsage, nil] Outcome of the `fallback_credit_token` presented on this request.
78
+ #
71
79
  # @param input_tokens [Integer, nil] The cumulative number of input tokens which were used.
72
80
  #
73
81
  # @param iterations [Array<Anthropic::Models::Beta::BetaMessageIterationUsage, Anthropic::Models::Beta::BetaCompactionIterationUsage, Anthropic::Models::Beta::BetaAdvisorMessageIterationUsage, Anthropic::Models::Beta::BetaFallbackMessageIterationUsage>, nil] Per-iteration token usage breakdown.
@@ -6,7 +6,7 @@ module Anthropic
6
6
  class BetaMessageParam < Anthropic::Internal::Type::BaseModel
7
7
  # @!attribute content
8
8
  #
9
- # @return [String, Array<Anthropic::Models::Beta::BetaTextBlockParam, Anthropic::Models::Beta::BetaImageBlockParam, Anthropic::Models::Beta::BetaRequestDocumentBlock, Anthropic::Models::Beta::BetaSearchResultBlockParam, Anthropic::Models::Beta::BetaThinkingBlockParam, Anthropic::Models::Beta::BetaRedactedThinkingBlockParam, Anthropic::Models::Beta::BetaToolUseBlockParam, Anthropic::Models::Beta::BetaToolResultBlockParam, Anthropic::Models::Beta::BetaServerToolUseBlockParam, Anthropic::Models::Beta::BetaWebSearchToolResultBlockParam, Anthropic::Models::Beta::BetaWebFetchToolResultBlockParam, Anthropic::Models::Beta::BetaAdvisorToolResultBlockParam, Anthropic::Models::Beta::BetaCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaBashCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaTextEditorCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaToolSearchToolResultBlockParam, Anthropic::Models::Beta::BetaMCPToolUseBlockParam, Anthropic::Models::Beta::BetaRequestMCPToolResultBlockParam, Anthropic::Models::Beta::BetaContainerUploadBlockParam, Anthropic::Models::Beta::BetaCompactionBlockParam, Anthropic::Models::Beta::BetaMidConversationSystemBlockParam, Anthropic::Models::Beta::BetaFallbackBlockParam>]
9
+ # @return [String, Array<Anthropic::Models::Beta::BetaTextBlockParam, Anthropic::Models::Beta::BetaImageBlockParam, Anthropic::Models::Beta::BetaRequestDocumentBlock, Anthropic::Models::Beta::BetaSearchResultBlockParam, Anthropic::Models::Beta::BetaThinkingBlockParam, Anthropic::Models::Beta::BetaRedactedThinkingBlockParam, Anthropic::Models::Beta::BetaToolUseBlockParam, Anthropic::Models::Beta::BetaToolResultBlockParam, Anthropic::Models::Beta::BetaServerToolUseBlockParam, Anthropic::Models::Beta::BetaWebSearchToolResultBlockParam, Anthropic::Models::Beta::BetaWebFetchToolResultBlockParam, Anthropic::Models::Beta::BetaAdvisorToolResultBlockParam, Anthropic::Models::Beta::BetaCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaBashCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaTextEditorCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaToolSearchToolResultBlockParam, Anthropic::Models::Beta::BetaMCPToolUseBlockParam, Anthropic::Models::Beta::BetaRequestMCPToolResultBlockParam, Anthropic::Models::Beta::BetaContainerUploadBlockParam, Anthropic::Models::Beta::BetaCompactionBlockParam, Anthropic::Models::Beta::BetaMidConversationSystemBlockParam, Anthropic::Models::Beta::BetaRequestToolAdditionBlock, Anthropic::Models::Beta::BetaRequestToolRemovalBlock, Anthropic::Models::Beta::BetaFallbackBlockParam>]
10
10
  required :content, union: -> { Anthropic::Beta::BetaMessageParam::Content }
11
11
 
12
12
  # @!attribute role
@@ -15,7 +15,7 @@ module Anthropic
15
15
  required :role, enum: -> { Anthropic::Beta::BetaMessageParam::Role }
16
16
 
17
17
  # @!method initialize(content:, role:)
18
- # @param content [String, Array<Anthropic::Models::Beta::BetaTextBlockParam, Anthropic::Models::Beta::BetaImageBlockParam, Anthropic::Models::Beta::BetaRequestDocumentBlock, Anthropic::Models::Beta::BetaSearchResultBlockParam, Anthropic::Models::Beta::BetaThinkingBlockParam, Anthropic::Models::Beta::BetaRedactedThinkingBlockParam, Anthropic::Models::Beta::BetaToolUseBlockParam, Anthropic::Models::Beta::BetaToolResultBlockParam, Anthropic::Models::Beta::BetaServerToolUseBlockParam, Anthropic::Models::Beta::BetaWebSearchToolResultBlockParam, Anthropic::Models::Beta::BetaWebFetchToolResultBlockParam, Anthropic::Models::Beta::BetaAdvisorToolResultBlockParam, Anthropic::Models::Beta::BetaCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaBashCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaTextEditorCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaToolSearchToolResultBlockParam, Anthropic::Models::Beta::BetaMCPToolUseBlockParam, Anthropic::Models::Beta::BetaRequestMCPToolResultBlockParam, Anthropic::Models::Beta::BetaContainerUploadBlockParam, Anthropic::Models::Beta::BetaCompactionBlockParam, Anthropic::Models::Beta::BetaMidConversationSystemBlockParam, Anthropic::Models::Beta::BetaFallbackBlockParam>]
18
+ # @param content [String, Array<Anthropic::Models::Beta::BetaTextBlockParam, Anthropic::Models::Beta::BetaImageBlockParam, Anthropic::Models::Beta::BetaRequestDocumentBlock, Anthropic::Models::Beta::BetaSearchResultBlockParam, Anthropic::Models::Beta::BetaThinkingBlockParam, Anthropic::Models::Beta::BetaRedactedThinkingBlockParam, Anthropic::Models::Beta::BetaToolUseBlockParam, Anthropic::Models::Beta::BetaToolResultBlockParam, Anthropic::Models::Beta::BetaServerToolUseBlockParam, Anthropic::Models::Beta::BetaWebSearchToolResultBlockParam, Anthropic::Models::Beta::BetaWebFetchToolResultBlockParam, Anthropic::Models::Beta::BetaAdvisorToolResultBlockParam, Anthropic::Models::Beta::BetaCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaBashCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaTextEditorCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaToolSearchToolResultBlockParam, Anthropic::Models::Beta::BetaMCPToolUseBlockParam, Anthropic::Models::Beta::BetaRequestMCPToolResultBlockParam, Anthropic::Models::Beta::BetaContainerUploadBlockParam, Anthropic::Models::Beta::BetaCompactionBlockParam, Anthropic::Models::Beta::BetaMidConversationSystemBlockParam, Anthropic::Models::Beta::BetaRequestToolAdditionBlock, Anthropic::Models::Beta::BetaRequestToolRemovalBlock, Anthropic::Models::Beta::BetaFallbackBlockParam>]
19
19
  # @param role [Symbol, Anthropic::Models::Beta::BetaMessageParam::Role]
20
20
 
21
21
  # @see Anthropic::Models::Beta::BetaMessageParam#content
@@ -27,7 +27,7 @@ module Anthropic
27
27
  variant -> { Anthropic::Models::Beta::BetaMessageParam::Content::BetaContentBlockParamArray }
28
28
 
29
29
  # @!method self.variants
30
- # @return [Array(String, Array<Anthropic::Models::Beta::BetaTextBlockParam, Anthropic::Models::Beta::BetaImageBlockParam, Anthropic::Models::Beta::BetaRequestDocumentBlock, Anthropic::Models::Beta::BetaSearchResultBlockParam, Anthropic::Models::Beta::BetaThinkingBlockParam, Anthropic::Models::Beta::BetaRedactedThinkingBlockParam, Anthropic::Models::Beta::BetaToolUseBlockParam, Anthropic::Models::Beta::BetaToolResultBlockParam, Anthropic::Models::Beta::BetaServerToolUseBlockParam, Anthropic::Models::Beta::BetaWebSearchToolResultBlockParam, Anthropic::Models::Beta::BetaWebFetchToolResultBlockParam, Anthropic::Models::Beta::BetaAdvisorToolResultBlockParam, Anthropic::Models::Beta::BetaCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaBashCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaTextEditorCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaToolSearchToolResultBlockParam, Anthropic::Models::Beta::BetaMCPToolUseBlockParam, Anthropic::Models::Beta::BetaRequestMCPToolResultBlockParam, Anthropic::Models::Beta::BetaContainerUploadBlockParam, Anthropic::Models::Beta::BetaCompactionBlockParam, Anthropic::Models::Beta::BetaMidConversationSystemBlockParam, Anthropic::Models::Beta::BetaFallbackBlockParam>)]
30
+ # @return [Array(String, Array<Anthropic::Models::Beta::BetaTextBlockParam, Anthropic::Models::Beta::BetaImageBlockParam, Anthropic::Models::Beta::BetaRequestDocumentBlock, Anthropic::Models::Beta::BetaSearchResultBlockParam, Anthropic::Models::Beta::BetaThinkingBlockParam, Anthropic::Models::Beta::BetaRedactedThinkingBlockParam, Anthropic::Models::Beta::BetaToolUseBlockParam, Anthropic::Models::Beta::BetaToolResultBlockParam, Anthropic::Models::Beta::BetaServerToolUseBlockParam, Anthropic::Models::Beta::BetaWebSearchToolResultBlockParam, Anthropic::Models::Beta::BetaWebFetchToolResultBlockParam, Anthropic::Models::Beta::BetaAdvisorToolResultBlockParam, Anthropic::Models::Beta::BetaCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaBashCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaTextEditorCodeExecutionToolResultBlockParam, Anthropic::Models::Beta::BetaToolSearchToolResultBlockParam, Anthropic::Models::Beta::BetaMCPToolUseBlockParam, Anthropic::Models::Beta::BetaRequestMCPToolResultBlockParam, Anthropic::Models::Beta::BetaContainerUploadBlockParam, Anthropic::Models::Beta::BetaCompactionBlockParam, Anthropic::Models::Beta::BetaMidConversationSystemBlockParam, Anthropic::Models::Beta::BetaRequestToolAdditionBlock, Anthropic::Models::Beta::BetaRequestToolRemovalBlock, Anthropic::Models::Beta::BetaFallbackBlockParam>)]
31
31
 
32
32
  # @type [Anthropic::Internal::Type::Converter]
33
33
  BetaContentBlockParamArray =
@@ -7,8 +7,9 @@ module Anthropic
7
7
  # @!attribute content
8
8
  # System instruction text blocks.
9
9
  #
10
- # @return [Array<Anthropic::Models::Beta::BetaTextBlockParam>]
11
- required :content, -> { Anthropic::Internal::Type::ArrayOf[Anthropic::Beta::BetaTextBlockParam] }
10
+ # @return [Array<Anthropic::Models::Beta::BetaTextBlockParam, Anthropic::Models::Beta::BetaRequestToolAdditionBlock, Anthropic::Models::Beta::BetaRequestToolRemovalBlock>]
11
+ required :content,
12
+ -> { Anthropic::Internal::Type::ArrayOf[union: Anthropic::Beta::BetaMidConversationSystemBlockParam::Content] }
12
13
 
13
14
  # @!attribute type
14
15
  #
@@ -28,11 +29,40 @@ module Anthropic
28
29
  # point in the conversation, rather than only via the top-level `system`
29
30
  # parameter.
30
31
  #
31
- # @param content [Array<Anthropic::Models::Beta::BetaTextBlockParam>] System instruction text blocks.
32
+ # @param content [Array<Anthropic::Models::Beta::BetaTextBlockParam, Anthropic::Models::Beta::BetaRequestToolAdditionBlock, Anthropic::Models::Beta::BetaRequestToolRemovalBlock>] System instruction text blocks.
32
33
  #
33
34
  # @param cache_control [Anthropic::Models::Beta::BetaCacheControlEphemeral, nil] Create a cache control breakpoint at this content block.
34
35
  #
35
36
  # @param type [Symbol, :mid_conv_system]
37
+
38
+ # Mid-conversation directive to surface a declared tool.
39
+ #
40
+ # `tool` references a tool (or MCP toolset) by name from the request's `tools`; it
41
+ # is offered to the model from this point in the conversation onward.
42
+ module Content
43
+ extend Anthropic::Internal::Type::Union
44
+
45
+ discriminator :type
46
+
47
+ variant :text, -> { Anthropic::Beta::BetaTextBlockParam }
48
+
49
+ # Mid-conversation directive to surface a declared tool.
50
+ #
51
+ # ``tool`` references a tool (or MCP toolset) by name from the request's
52
+ # ``tools``; it is offered to the model from this point in the
53
+ # conversation onward.
54
+ variant :tool_addition, -> { Anthropic::Beta::BetaRequestToolAdditionBlock }
55
+
56
+ # Mid-conversation directive to withdraw a tool.
57
+ #
58
+ # ``tool`` references a tool (or MCP toolset) by name from the request's
59
+ # ``tools``; it is no longer offered to the model from this point in the
60
+ # conversation onward.
61
+ variant :tool_removal, -> { Anthropic::Beta::BetaRequestToolRemovalBlock }
62
+
63
+ # @!method self.variants
64
+ # @return [Array(Anthropic::Models::Beta::BetaTextBlockParam, Anthropic::Models::Beta::BetaRequestToolAdditionBlock, Anthropic::Models::Beta::BetaRequestToolRemovalBlock)]
65
+ end
36
66
  end
37
67
  end
38
68
 
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Anthropic
4
+ module Models
5
+ module Beta
6
+ class BetaRequestToolAdditionBlock < Anthropic::Internal::Type::BaseModel
7
+ # @!attribute tool
8
+ # Reference to a single tool the caller declared directly in `tools[]`. Does not
9
+ # accept the composed `{server}_{name}` form the server assigns to MCP-resolved
10
+ # tools — use `mcp_tool_reference` or `mcp_toolset_reference` for those.
11
+ #
12
+ # @return [Anthropic::Models::Beta::BetaToolChangeToolReference, Anthropic::Models::Beta::BetaToolChangeMCPToolReference, Anthropic::Models::Beta::BetaToolChangeMCPToolsetReference]
13
+ required :tool, union: -> { Anthropic::Beta::BetaRequestToolAdditionBlock::Tool }
14
+
15
+ # @!attribute type
16
+ #
17
+ # @return [Symbol, :tool_addition]
18
+ required :type, const: :tool_addition
19
+
20
+ # @!attribute cache_control
21
+ # Create a cache control breakpoint at this content block.
22
+ #
23
+ # @return [Anthropic::Models::Beta::BetaCacheControlEphemeral, nil]
24
+ optional :cache_control, -> { Anthropic::Beta::BetaCacheControlEphemeral }, nil?: true
25
+
26
+ # @!method initialize(tool:, cache_control: nil, type: :tool_addition)
27
+ # Some parameter documentations has been truncated, see
28
+ # {Anthropic::Models::Beta::BetaRequestToolAdditionBlock} for more details.
29
+ #
30
+ # Mid-conversation directive to surface a declared tool.
31
+ #
32
+ # `tool` references a tool (or MCP toolset) by name from the request's `tools`; it
33
+ # is offered to the model from this point in the conversation onward.
34
+ #
35
+ # @param tool [Anthropic::Models::Beta::BetaToolChangeToolReference, Anthropic::Models::Beta::BetaToolChangeMCPToolReference, Anthropic::Models::Beta::BetaToolChangeMCPToolsetReference] Reference to a single tool the caller declared directly in
36
+ #
37
+ # @param cache_control [Anthropic::Models::Beta::BetaCacheControlEphemeral, nil] Create a cache control breakpoint at this content block.
38
+ #
39
+ # @param type [Symbol, :tool_addition]
40
+
41
+ # Reference to a single tool the caller declared directly in `tools[]`. Does not
42
+ # accept the composed `{server}_{name}` form the server assigns to MCP-resolved
43
+ # tools — use `mcp_tool_reference` or `mcp_toolset_reference` for those.
44
+ #
45
+ # @see Anthropic::Models::Beta::BetaRequestToolAdditionBlock#tool
46
+ module Tool
47
+ extend Anthropic::Internal::Type::Union
48
+
49
+ discriminator :type
50
+
51
+ # Reference to a single tool the caller declared directly in
52
+ # ``tools[]``. Does not accept the composed ``{server}_{name}`` form the
53
+ # server assigns to MCP-resolved tools — use ``mcp_tool_reference`` or
54
+ # ``mcp_toolset_reference`` for those.
55
+ variant :tool_reference, -> { Anthropic::Beta::BetaToolChangeToolReference }
56
+
57
+ # Reference to a single MCP tool by its server and remote name — the
58
+ # same ``server_name``/``name`` pair ``mcp_tool_use`` carries.
59
+ variant :mcp_tool_reference, -> { Anthropic::Beta::BetaToolChangeMCPToolReference }
60
+
61
+ # Reference to every tool in the named MCP server's toolset.
62
+ variant :mcp_toolset_reference, -> { Anthropic::Beta::BetaToolChangeMCPToolsetReference }
63
+
64
+ # @!method self.variants
65
+ # @return [Array(Anthropic::Models::Beta::BetaToolChangeToolReference, Anthropic::Models::Beta::BetaToolChangeMCPToolReference, Anthropic::Models::Beta::BetaToolChangeMCPToolsetReference)]
66
+ end
67
+ end
68
+ end
69
+
70
+ BetaRequestToolAdditionBlock = Beta::BetaRequestToolAdditionBlock
71
+ end
72
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Anthropic
4
+ module Models
5
+ module Beta
6
+ class BetaRequestToolRemovalBlock < Anthropic::Internal::Type::BaseModel
7
+ # @!attribute tool
8
+ # Reference to a single tool the caller declared directly in `tools[]`. Does not
9
+ # accept the composed `{server}_{name}` form the server assigns to MCP-resolved
10
+ # tools — use `mcp_tool_reference` or `mcp_toolset_reference` for those.
11
+ #
12
+ # @return [Anthropic::Models::Beta::BetaToolChangeToolReference, Anthropic::Models::Beta::BetaToolChangeMCPToolReference, Anthropic::Models::Beta::BetaToolChangeMCPToolsetReference]
13
+ required :tool, union: -> { Anthropic::Beta::BetaRequestToolRemovalBlock::Tool }
14
+
15
+ # @!attribute type
16
+ #
17
+ # @return [Symbol, :tool_removal]
18
+ required :type, const: :tool_removal
19
+
20
+ # @!attribute cache_control
21
+ # Create a cache control breakpoint at this content block.
22
+ #
23
+ # @return [Anthropic::Models::Beta::BetaCacheControlEphemeral, nil]
24
+ optional :cache_control, -> { Anthropic::Beta::BetaCacheControlEphemeral }, nil?: true
25
+
26
+ # @!method initialize(tool:, cache_control: nil, type: :tool_removal)
27
+ # Some parameter documentations has been truncated, see
28
+ # {Anthropic::Models::Beta::BetaRequestToolRemovalBlock} for more details.
29
+ #
30
+ # Mid-conversation directive to withdraw a tool.
31
+ #
32
+ # `tool` references a tool (or MCP toolset) by name from the request's `tools`; it
33
+ # is no longer offered to the model from this point in the conversation onward.
34
+ #
35
+ # @param tool [Anthropic::Models::Beta::BetaToolChangeToolReference, Anthropic::Models::Beta::BetaToolChangeMCPToolReference, Anthropic::Models::Beta::BetaToolChangeMCPToolsetReference] Reference to a single tool the caller declared directly in
36
+ #
37
+ # @param cache_control [Anthropic::Models::Beta::BetaCacheControlEphemeral, nil] Create a cache control breakpoint at this content block.
38
+ #
39
+ # @param type [Symbol, :tool_removal]
40
+
41
+ # Reference to a single tool the caller declared directly in `tools[]`. Does not
42
+ # accept the composed `{server}_{name}` form the server assigns to MCP-resolved
43
+ # tools — use `mcp_tool_reference` or `mcp_toolset_reference` for those.
44
+ #
45
+ # @see Anthropic::Models::Beta::BetaRequestToolRemovalBlock#tool
46
+ module Tool
47
+ extend Anthropic::Internal::Type::Union
48
+
49
+ discriminator :type
50
+
51
+ # Reference to a single tool the caller declared directly in
52
+ # ``tools[]``. Does not accept the composed ``{server}_{name}`` form the
53
+ # server assigns to MCP-resolved tools — use ``mcp_tool_reference`` or
54
+ # ``mcp_toolset_reference`` for those.
55
+ variant :tool_reference, -> { Anthropic::Beta::BetaToolChangeToolReference }
56
+
57
+ # Reference to a single MCP tool by its server and remote name — the
58
+ # same ``server_name``/``name`` pair ``mcp_tool_use`` carries.
59
+ variant :mcp_tool_reference, -> { Anthropic::Beta::BetaToolChangeMCPToolReference }
60
+
61
+ # Reference to every tool in the named MCP server's toolset.
62
+ variant :mcp_toolset_reference, -> { Anthropic::Beta::BetaToolChangeMCPToolsetReference }
63
+
64
+ # @!method self.variants
65
+ # @return [Array(Anthropic::Models::Beta::BetaToolChangeToolReference, Anthropic::Models::Beta::BetaToolChangeMCPToolReference, Anthropic::Models::Beta::BetaToolChangeMCPToolsetReference)]
66
+ end
67
+ end
68
+ end
69
+
70
+ BetaRequestToolRemovalBlock = Beta::BetaRequestToolRemovalBlock
71
+ end
72
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Anthropic
4
+ module Models
5
+ module Beta
6
+ class BetaToolChangeMCPToolReference < Anthropic::Internal::Type::BaseModel
7
+ # @!attribute name
8
+ #
9
+ # @return [String]
10
+ required :name, String
11
+
12
+ # @!attribute server_name
13
+ #
14
+ # @return [String]
15
+ required :server_name, String
16
+
17
+ # @!attribute type
18
+ #
19
+ # @return [Symbol, :mcp_tool_reference]
20
+ required :type, const: :mcp_tool_reference
21
+
22
+ # @!method initialize(name:, server_name:, type: :mcp_tool_reference)
23
+ # Reference to a single MCP tool by its server and remote name — the same
24
+ # `server_name`/`name` pair `mcp_tool_use` carries.
25
+ #
26
+ # @param name [String]
27
+ # @param server_name [String]
28
+ # @param type [Symbol, :mcp_tool_reference]
29
+ end
30
+ end
31
+
32
+ BetaToolChangeMCPToolReference = Beta::BetaToolChangeMCPToolReference
33
+ end
34
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Anthropic
4
+ module Models
5
+ module Beta
6
+ class BetaToolChangeMCPToolsetReference < Anthropic::Internal::Type::BaseModel
7
+ # @!attribute server_name
8
+ #
9
+ # @return [String]
10
+ required :server_name, String
11
+
12
+ # @!attribute type
13
+ #
14
+ # @return [Symbol, :mcp_toolset_reference]
15
+ required :type, const: :mcp_toolset_reference
16
+
17
+ # @!method initialize(server_name:, type: :mcp_toolset_reference)
18
+ # Reference to every tool in the named MCP server's toolset.
19
+ #
20
+ # @param server_name [String]
21
+ # @param type [Symbol, :mcp_toolset_reference]
22
+ end
23
+ end
24
+
25
+ BetaToolChangeMCPToolsetReference = Beta::BetaToolChangeMCPToolsetReference
26
+ end
27
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Anthropic
4
+ module Models
5
+ module Beta
6
+ class BetaToolChangeToolReference < Anthropic::Internal::Type::BaseModel
7
+ # @!attribute name
8
+ #
9
+ # @return [String]
10
+ required :name, String
11
+
12
+ # @!attribute type
13
+ #
14
+ # @return [Symbol, :tool_reference]
15
+ required :type, const: :tool_reference
16
+
17
+ # @!method initialize(name:, type: :tool_reference)
18
+ # Reference to a single tool the caller declared directly in `tools[]`. Does not
19
+ # accept the composed `{server}_{name}` form the server assigns to MCP-resolved
20
+ # tools — use `mcp_tool_reference` or `mcp_toolset_reference` for those.
21
+ #
22
+ # @param name [String]
23
+ # @param type [Symbol, :tool_reference]
24
+ end
25
+ end
26
+
27
+ BetaToolChangeToolReference = Beta::BetaToolChangeToolReference
28
+ end
29
+ end
@@ -22,6 +22,12 @@ module Anthropic
22
22
  # @return [Integer, nil]
23
23
  required :cache_read_input_tokens, Integer, nil?: true
24
24
 
25
+ # @!attribute fallback_credit
26
+ # Outcome of the `fallback_credit_token` presented on this request.
27
+ #
28
+ # @return [Anthropic::Models::Beta::BetaFallbackCreditUsage, nil]
29
+ required :fallback_credit, -> { Anthropic::Beta::BetaFallbackCreditUsage }, nil?: true
30
+
25
31
  # @!attribute inference_geo
26
32
  # The geographic region where inference was performed for this request.
27
33
  #
@@ -86,7 +92,7 @@ module Anthropic
86
92
  # @return [Symbol, Anthropic::Models::Beta::BetaUsage::Speed, nil]
87
93
  required :speed, enum: -> { Anthropic::Beta::BetaUsage::Speed }, nil?: true
88
94
 
89
- # @!method initialize(cache_creation:, cache_creation_input_tokens:, cache_read_input_tokens:, inference_geo:, input_tokens:, iterations:, output_tokens:, output_tokens_details:, server_tool_use:, service_tier:, speed:)
95
+ # @!method initialize(cache_creation:, cache_creation_input_tokens:, cache_read_input_tokens:, fallback_credit:, inference_geo:, input_tokens:, iterations:, output_tokens:, output_tokens_details:, server_tool_use:, service_tier:, speed:)
90
96
  # Some parameter documentations has been truncated, see
91
97
  # {Anthropic::Models::Beta::BetaUsage} for more details.
92
98
  #
@@ -96,6 +102,8 @@ module Anthropic
96
102
  #
97
103
  # @param cache_read_input_tokens [Integer, nil] The number of input tokens read from the cache.
98
104
  #
105
+ # @param fallback_credit [Anthropic::Models::Beta::BetaFallbackCreditUsage, nil] Outcome of the `fallback_credit_token` presented on this request.
106
+ #
99
107
  # @param inference_geo [String, nil] The geographic region where inference was performed for this request.
100
108
  #
101
109
  # @param input_tokens [Integer] The number of input tokens which were used.
@@ -157,18 +157,19 @@ module Anthropic
157
157
  # When the appended-assistant form is used on a model that otherwise disallows
158
158
  # assistant-turn prefill, this token also authorizes that one prefill.
159
159
  #
160
- # @return [String, nil]
161
- optional :fallback_credit_token, String, nil?: true
160
+ # @return [String, Anthropic::Models::Beta::BetaFallbackCreditTokenParam, nil]
161
+ optional :fallback_credit_token,
162
+ union: -> { Anthropic::Beta::MessageCreateParams::FallbackCreditToken },
163
+ nil?: true
162
164
 
163
165
  # @!attribute fallbacks
164
166
  # Opt-in server-side retry on one or more substitute models when the requested
165
167
  # model declines for policy reasons. Tried in order: if the first entry also
166
- # declines, the second is tried, and so on.
168
+ # declines, the second is tried, and so on. The string "default" requests the
169
+ # requested model's server-defined default fallback configuration.
167
170
  #
168
- # @return [Array<Anthropic::Models::Beta::BetaFallbackParam>, nil]
169
- optional :fallbacks,
170
- -> { Anthropic::Internal::Type::ArrayOf[Anthropic::Beta::BetaFallbackParam] },
171
- nil?: true
171
+ # @return [Array<Anthropic::Models::Beta::BetaFallbackParam>, Symbol, :default, nil]
172
+ optional :fallbacks, union: -> { Anthropic::Beta::BetaFallbacksParam }, nil?: true
172
173
 
173
174
  # @!attribute inference_geo
174
175
  # Specifies the geographic region for inference processing. If not specified, the
@@ -432,9 +433,9 @@ module Anthropic
432
433
  #
433
434
  # @param diagnostics [Anthropic::Models::Beta::BetaDiagnosticsParam, nil] Request-level diagnostics. Currently carries the previous response
434
435
  #
435
- # @param fallback_credit_token [String, nil] The `fallback_credit_token` from a prior refusal's `stop_details`.
436
+ # @param fallback_credit_token [String, Anthropic::Models::Beta::BetaFallbackCreditTokenParam, nil] The `fallback_credit_token` from a prior refusal's `stop_details`.
436
437
  #
437
- # @param fallbacks [Array<Anthropic::Models::Beta::BetaFallbackParam>, nil] Opt-in server-side retry on one or more substitute models when the requested mod
438
+ # @param fallbacks [Array<Anthropic::Models::Beta::BetaFallbackParam>, Symbol, :default, nil] Opt-in server-side retry on one or more substitute models when the requested mod
438
439
  #
439
440
  # @param inference_geo [String, nil] Specifies the geographic region for inference processing. If not specified, the
440
441
  #
@@ -485,6 +486,43 @@ module Anthropic
485
486
  # @return [Array(Anthropic::Models::Beta::BetaContainerParams, String)]
486
487
  end
487
488
 
489
+ # The `fallback_credit_token` from a prior refusal's `stop_details`.
490
+ #
491
+ # When a preceding request was refused and returned a `fallback_credit_token`,
492
+ # pass that code here on the retry to have the retry's cache-creation tokens for
493
+ # the prefix that was warm on the refused model billed at the cache-read rate.
494
+ # Must be redeemed by the same organization and workspace, with the same request
495
+ # body (optionally extended by one appended `assistant` message whose content is
496
+ # the partial text — with any trailing whitespace stripped from the final text
497
+ # block — and paired server-tool blocks streamed before the refusal; the
498
+ # appended-assistant form is not available for requests with `output_format` set
499
+ # or forced `tool_choice`), on an eligible fallback model, on the same platform,
500
+ # and within 5 minutes of the refusal; a mismatch is a 400. A token minted
501
+ # mid-server-tool-loop whose partial content was continuable may only be redeemed
502
+ # with the appended-assistant form — if an exact-body retry is rejected with a 400
503
+ # saying the token must be redeemed by continuing the partial response, retry with
504
+ # the appended-assistant form instead.
505
+ #
506
+ # When the appended-assistant form is used on a model that otherwise disallows
507
+ # assistant-turn prefill, this token also authorizes that one prefill.
508
+ module FallbackCreditToken
509
+ extend Anthropic::Internal::Type::Union
510
+
511
+ variant String
512
+
513
+ # Object form of ``fallback_credit_token``: the token plus a redemption
514
+ # mode.
515
+ #
516
+ # Requires ``anthropic-beta: fallback-credit-2026-07-01``; without that
517
+ # header the field accepts the bare string only. The bare string and the
518
+ # mode-less object are equivalent (both select ``strict``), so wrapping
519
+ # an existing token changes nothing by itself.
520
+ variant -> { Anthropic::Beta::BetaFallbackCreditTokenParam }
521
+
522
+ # @!method self.variants
523
+ # @return [Array(String, Anthropic::Models::Beta::BetaFallbackCreditTokenParam)]
524
+ end
525
+
488
526
  # Determines whether to use priority capacity (if available) or standard capacity
489
527
  # for this request.
490
528
  #