anthropic 1.1.1 → 1.3.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 (135) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +69 -0
  3. data/README.md +32 -16
  4. data/lib/anthropic/errors.rb +22 -0
  5. data/lib/anthropic/helpers/streaming/events.rb +141 -0
  6. data/lib/anthropic/helpers/streaming/message_stream.rb +238 -0
  7. data/lib/anthropic/helpers/streaming.rb +37 -0
  8. data/lib/anthropic/helpers/vertex/client.rb +4 -1
  9. data/lib/anthropic/internal/stream.rb +4 -2
  10. data/lib/anthropic/internal/transport/base_client.rb +10 -2
  11. data/lib/anthropic/internal/type/array_of.rb +6 -1
  12. data/lib/anthropic/internal/type/base_model.rb +77 -23
  13. data/lib/anthropic/internal/type/base_stream.rb +3 -1
  14. data/lib/anthropic/internal/type/boolean.rb +7 -1
  15. data/lib/anthropic/internal/type/converter.rb +42 -34
  16. data/lib/anthropic/internal/type/enum.rb +16 -5
  17. data/lib/anthropic/internal/type/file_input.rb +6 -1
  18. data/lib/anthropic/internal/type/hash_of.rb +6 -1
  19. data/lib/anthropic/internal/type/union.rb +17 -9
  20. data/lib/anthropic/internal/type/unknown.rb +7 -1
  21. data/lib/anthropic/internal/util.rb +8 -9
  22. data/lib/anthropic/models/beta/beta_base64_pdf_block.rb +1 -65
  23. data/lib/anthropic/models/beta/beta_citation_search_result_location.rb +55 -0
  24. data/lib/anthropic/models/beta/beta_citation_search_result_location_param.rb +55 -0
  25. data/lib/anthropic/models/beta/beta_citations_delta.rb +5 -3
  26. data/lib/anthropic/models/beta/beta_content_block.rb +5 -5
  27. data/lib/anthropic/models/beta/beta_content_block_param.rb +20 -17
  28. data/lib/anthropic/models/beta/beta_message.rb +6 -2
  29. data/lib/anthropic/models/beta/beta_message_param.rb +3 -3
  30. data/lib/anthropic/models/beta/beta_raw_content_block_start_event.rb +7 -7
  31. data/lib/anthropic/models/beta/beta_request_document_block.rb +75 -0
  32. data/lib/anthropic/models/beta/beta_search_result_block_param.rb +55 -0
  33. data/lib/anthropic/models/beta/beta_text_block.rb +2 -2
  34. data/lib/anthropic/models/beta/beta_text_block_param.rb +2 -2
  35. data/lib/anthropic/models/beta/beta_text_citation.rb +3 -1
  36. data/lib/anthropic/models/beta/beta_text_citation_param.rb +3 -1
  37. data/lib/anthropic/models/beta/beta_tool.rb +7 -1
  38. data/lib/anthropic/models/beta/beta_tool_result_block_param.rb +6 -4
  39. data/lib/anthropic/models/beta/beta_tool_union.rb +7 -7
  40. data/lib/anthropic/models/beta/message_count_tokens_params.rb +16 -10
  41. data/lib/anthropic/models/beta/message_create_params.rb +9 -3
  42. data/lib/anthropic/models/beta/messages/batch_create_params.rb +9 -3
  43. data/lib/anthropic/models/content_block.rb +5 -5
  44. data/lib/anthropic/models/content_block_param.rb +11 -11
  45. data/lib/anthropic/models/message.rb +6 -2
  46. data/lib/anthropic/models/message_count_tokens_params.rb +9 -3
  47. data/lib/anthropic/models/message_count_tokens_tool.rb +35 -1
  48. data/lib/anthropic/models/message_create_params.rb +9 -3
  49. data/lib/anthropic/models/message_param.rb +3 -3
  50. data/lib/anthropic/models/messages/batch_create_params.rb +9 -3
  51. data/lib/anthropic/models/model.rb +5 -21
  52. data/lib/anthropic/models/raw_content_block_start_event.rb +7 -7
  53. data/lib/anthropic/models/tool.rb +7 -1
  54. data/lib/anthropic/models/tool_union.rb +34 -1
  55. data/lib/anthropic/models/tool_use_block.rb +6 -0
  56. data/lib/anthropic/models.rb +4 -4
  57. data/lib/anthropic/resources/beta/messages.rb +73 -6
  58. data/lib/anthropic/resources/messages.rb +68 -7
  59. data/lib/anthropic/streaming.rb +5 -0
  60. data/lib/anthropic/version.rb +1 -1
  61. data/lib/anthropic.rb +8 -0
  62. data/rbi/anthropic/errors.rbi +16 -0
  63. data/rbi/anthropic/helpers/bedrock/client.rbi +17 -6
  64. data/rbi/anthropic/helpers/streaming/events.rbi +95 -0
  65. data/rbi/anthropic/helpers/streaming/message_stream.rbi +73 -0
  66. data/rbi/anthropic/helpers/vertex/client.rbi +17 -6
  67. data/rbi/anthropic/internal/type/base_stream.rbi +8 -1
  68. data/rbi/anthropic/internal/type/boolean.rbi +2 -0
  69. data/rbi/anthropic/internal/type/converter.rbi +15 -15
  70. data/rbi/anthropic/internal/type/union.rbi +5 -0
  71. data/rbi/anthropic/internal/type/unknown.rbi +2 -0
  72. data/rbi/anthropic/internal/util.rbi +2 -0
  73. data/rbi/anthropic/models/beta/beta_base64_pdf_block.rbi +1 -128
  74. data/rbi/anthropic/models/beta/beta_citation_search_result_location.rbi +78 -0
  75. data/rbi/anthropic/models/beta/beta_citation_search_result_location_param.rbi +79 -0
  76. data/rbi/anthropic/models/beta/beta_citations_delta.rbi +4 -2
  77. data/rbi/anthropic/models/beta/beta_content_block.rbi +3 -3
  78. data/rbi/anthropic/models/beta/beta_content_block_param.rbi +8 -7
  79. data/rbi/anthropic/models/beta/beta_message.rbi +11 -3
  80. data/rbi/anthropic/models/beta/beta_raw_content_block_start_event.rbi +6 -6
  81. data/rbi/anthropic/models/beta/beta_request_document_block.rbi +140 -0
  82. data/rbi/anthropic/models/beta/beta_search_result_block_param.rbi +91 -0
  83. data/rbi/anthropic/models/beta/beta_text_block.rbi +2 -1
  84. data/rbi/anthropic/models/beta/beta_text_block_param.rbi +6 -3
  85. data/rbi/anthropic/models/beta/beta_text_citation.rbi +2 -1
  86. data/rbi/anthropic/models/beta/beta_text_citation_param.rbi +2 -1
  87. data/rbi/anthropic/models/beta/beta_tool.rbi +14 -5
  88. data/rbi/anthropic/models/beta/beta_tool_result_block_param.rbi +2 -1
  89. data/rbi/anthropic/models/beta/beta_tool_union.rbi +5 -5
  90. data/rbi/anthropic/models/beta/message_count_tokens_params.rbi +39 -27
  91. data/rbi/anthropic/models/beta/message_create_params.rbi +34 -22
  92. data/rbi/anthropic/models/beta/messages/batch_create_params.rbi +34 -22
  93. data/rbi/anthropic/models/content_block.rbi +3 -3
  94. data/rbi/anthropic/models/content_block_param.rbi +5 -5
  95. data/rbi/anthropic/models/message.rbi +11 -3
  96. data/rbi/anthropic/models/message_count_tokens_params.rbi +18 -2
  97. data/rbi/anthropic/models/message_count_tokens_tool.rbi +61 -0
  98. data/rbi/anthropic/models/message_create_params.rbi +18 -2
  99. data/rbi/anthropic/models/messages/batch_create_params.rbi +18 -2
  100. data/rbi/anthropic/models/model.rbi +0 -8
  101. data/rbi/anthropic/models/raw_content_block_start_event.rbi +6 -6
  102. data/rbi/anthropic/models/tool.rbi +16 -5
  103. data/rbi/anthropic/models/tool_union.rbi +61 -0
  104. data/rbi/anthropic/resources/beta/messages.rbi +36 -18
  105. data/rbi/anthropic/resources/messages.rbi +315 -3
  106. data/rbi/anthropic/streaming.rbi +5 -0
  107. data/sig/anthropic/errors.rbs +9 -0
  108. data/sig/anthropic/helpers/streaming/events.rbs +117 -0
  109. data/sig/anthropic/helpers/streaming/message_stream.rbs +57 -0
  110. data/sig/anthropic/internal/type/base_stream.rbs +4 -0
  111. data/sig/anthropic/internal/type/converter.rbs +7 -1
  112. data/sig/anthropic/models/beta/beta_base64_pdf_block.rbs +1 -58
  113. data/sig/anthropic/models/beta/beta_citation_search_result_location.rbs +54 -0
  114. data/sig/anthropic/models/beta/beta_citation_search_result_location_param.rbs +54 -0
  115. data/sig/anthropic/models/beta/beta_citations_delta.rbs +1 -0
  116. data/sig/anthropic/models/beta/beta_content_block.rbs +2 -2
  117. data/sig/anthropic/models/beta/beta_content_block_param.rbs +9 -8
  118. data/sig/anthropic/models/beta/beta_raw_content_block_start_event.rbs +2 -2
  119. data/sig/anthropic/models/beta/beta_request_document_block.rbs +66 -0
  120. data/sig/anthropic/models/beta/beta_search_result_block_param.rbs +53 -0
  121. data/sig/anthropic/models/beta/beta_text_citation.rbs +1 -0
  122. data/sig/anthropic/models/beta/beta_text_citation_param.rbs +1 -0
  123. data/sig/anthropic/models/beta/beta_tool.rbs +14 -3
  124. data/sig/anthropic/models/beta/beta_tool_result_block_param.rbs +1 -0
  125. data/sig/anthropic/models/beta/beta_tool_union.rbs +4 -4
  126. data/sig/anthropic/models/beta/message_count_tokens_params.rbs +4 -4
  127. data/sig/anthropic/models/content_block.rbs +2 -2
  128. data/sig/anthropic/models/content_block_param.rbs +5 -5
  129. data/sig/anthropic/models/message_count_tokens_tool.rbs +28 -0
  130. data/sig/anthropic/models/model.rbs +0 -10
  131. data/sig/anthropic/models/raw_content_block_start_event.rbs +2 -2
  132. data/sig/anthropic/models/tool.rbs +14 -3
  133. data/sig/anthropic/models/tool_union.rbs +28 -0
  134. data/sig/anthropic/streaming.rbs +3 -0
  135. metadata +26 -3
@@ -0,0 +1,73 @@
1
+ # typed: strong
2
+
3
+ module Anthropic
4
+ module Helpers
5
+ module Streaming
6
+ RawMessageEvent =
7
+ T.type_alias do
8
+ T.any(
9
+ Anthropic::Models::RawMessageStartEvent,
10
+ Anthropic::Models::RawMessageDeltaEvent,
11
+ Anthropic::Models::RawMessageStopEvent,
12
+ Anthropic::Models::RawContentBlockStartEvent,
13
+ Anthropic::Models::RawContentBlockDeltaEvent,
14
+ Anthropic::Models::RawContentBlockStopEvent
15
+ )
16
+ end
17
+
18
+ StreamEvent =
19
+ T.type_alias do
20
+ T.any(
21
+ Anthropic::Streaming::RawMessageEvent,
22
+ Anthropic::Streaming::TextEvent,
23
+ Anthropic::Streaming::CitationEvent,
24
+ Anthropic::Streaming::ThinkingEvent,
25
+ Anthropic::Streaming::SignatureEvent,
26
+ Anthropic::Streaming::InputJsonEvent,
27
+ Anthropic::Streaming::MessageStopEvent,
28
+ Anthropic::Streaming::ContentBlockStopEvent
29
+ )
30
+ end
31
+
32
+ class MessageStream
33
+ include Anthropic::Internal::Type::BaseStream
34
+
35
+ Message =
36
+ type_member(:in) { { fixed: Anthropic::Streaming::RawMessageEvent } }
37
+ Elem =
38
+ type_member(:out) { { fixed: Anthropic::Streaming::StreamEvent } }
39
+
40
+ sig do
41
+ params(raw_stream: Anthropic::Internal::Stream[RawMessageEvent]).void
42
+ end
43
+ def initialize(raw_stream:)
44
+ end
45
+
46
+ sig { void }
47
+ def until_done
48
+ end
49
+
50
+ sig { returns(T::Enumerator[String]) }
51
+ def text
52
+ end
53
+
54
+ sig { returns(Anthropic::Models::Message) }
55
+ def accumulated_message
56
+ end
57
+
58
+ sig { returns(String) }
59
+ def accumulated_text
60
+ end
61
+
62
+ sig do
63
+ params(
64
+ event: Anthropic::Streaming::RawMessageEvent,
65
+ current_snapshot: T.nilable(Anthropic::Models::Message)
66
+ ).returns(Anthropic::Models::Message)
67
+ end
68
+ private def accumulate_event(event:, current_snapshot:)
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -21,16 +21,26 @@ module Anthropic
21
21
  # @api private
22
22
  sig do
23
23
  override
24
- .params(req: Anthropic::Internal::Transport::BaseClient::RequestComponents, opts: Anthropic::Internal::AnyHash)
24
+ .params(
25
+ req:
26
+ Anthropic::Internal::Transport::BaseClient::RequestComponents,
27
+ opts: Anthropic::Internal::AnyHash
28
+ )
25
29
  .returns(Anthropic::Internal::Transport::BaseClient::RequestInput)
26
30
  end
27
- private def build_request(req, opts); end
31
+ private def build_request(req, opts)
32
+ end
28
33
 
29
34
  sig do
30
- params(request_components: Anthropic::Internal::Transport::BaseClient::RequestComponents)
31
- .returns(Anthropic::Internal::Transport::BaseClient::RequestComponents)
35
+ params(
36
+ request_components:
37
+ Anthropic::Internal::Transport::BaseClient::RequestComponents
38
+ ).returns(
39
+ Anthropic::Internal::Transport::BaseClient::RequestComponents
40
+ )
41
+ end
42
+ private def fit_req_to_vertex_specs!(request_components)
32
43
  end
33
- private def fit_req_to_vertex_specs!(request_components) end
34
44
 
35
45
  sig do
36
46
  params(
@@ -51,7 +61,8 @@ module Anthropic
51
61
  timeout: Anthropic::Client::DEFAULT_TIMEOUT_IN_SECONDS,
52
62
  initial_retry_delay: Anthropic::Client::DEFAULT_INITIAL_RETRY_DELAY,
53
63
  max_retry_delay: Anthropic::Client::DEFAULT_MAX_RETRY_DELAY
54
- ) end
64
+ )
65
+ end
55
66
  end
56
67
  end
57
68
  end
@@ -52,10 +52,17 @@ module Anthropic
52
52
  url: URI::Generic,
53
53
  status: Integer,
54
54
  response: Net::HTTPResponse,
55
+ unwrap:
56
+ T.any(
57
+ Symbol,
58
+ Integer,
59
+ T::Array[T.any(Symbol, Integer)],
60
+ T.proc.params(arg0: T.anything).returns(T.anything)
61
+ ),
55
62
  stream: T::Enumerable[Message]
56
63
  ).void
57
64
  end
58
- def initialize(model:, url:, status:, response:, stream:)
65
+ def initialize(model:, url:, status:, response:, unwrap:, stream:)
59
66
  end
60
67
 
61
68
  # @api private
@@ -22,6 +22,8 @@ module Anthropic
22
22
 
23
23
  class << self
24
24
  # @api private
25
+ #
26
+ # Coerce value to Boolean if possible, otherwise return the original value.
25
27
  sig do
26
28
  override
27
29
  .params(
@@ -15,12 +15,14 @@ module Anthropic
15
15
  CoerceState =
16
16
  T.type_alias do
17
17
  {
18
- strictness: T.any(T::Boolean, Symbol),
18
+ translate_names: T::Boolean,
19
+ strictness: T::Boolean,
19
20
  exactness: {
20
21
  yes: Integer,
21
22
  no: Integer,
22
23
  maybe: Integer
23
24
  },
25
+ error: T::Class[StandardError],
24
26
  branched: Integer
25
27
  }
26
28
  end
@@ -88,6 +90,15 @@ module Anthropic
88
90
  def self.type_info(spec)
89
91
  end
90
92
 
93
+ # @api private
94
+ sig do
95
+ params(translate_names: T::Boolean).returns(
96
+ Anthropic::Internal::Type::Converter::CoerceState
97
+ )
98
+ end
99
+ def self.new_coerce_state(translate_names: true)
100
+ end
101
+
91
102
  # @api private
92
103
  #
93
104
  # Based on `target`, transform `value` into `target`, to the extent possible:
@@ -109,14 +120,11 @@ module Anthropic
109
120
  def self.coerce(
110
121
  target,
111
122
  value,
112
- # The `strictness` is one of `true`, `false`, or `:strong`. This informs the
113
- # coercion strategy when we have to decide between multiple possible conversion
114
- # targets:
123
+ # The `strictness` is one of `true`, `false`. This informs the coercion strategy
124
+ # when we have to decide between multiple possible conversion targets:
115
125
  #
116
126
  # - `true`: the conversion must be exact, with minimum coercion.
117
127
  # - `false`: the conversion can be approximate, with some coercion.
118
- # - `:strong`: the conversion must be exact, with no coercion, and raise an error
119
- # if not possible.
120
128
  #
121
129
  # The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For
122
130
  # any given conversion attempt, the exactness will be updated based on how closely
@@ -128,15 +136,7 @@ module Anthropic
128
136
  # - `no`: the value cannot be converted to the target type.
129
137
  #
130
138
  # See implementation below for more details.
131
- state: {
132
- strictness: true,
133
- exactness: {
134
- yes: 0,
135
- no: 0,
136
- maybe: 0
137
- },
138
- branched: 0
139
- }
139
+ state: Anthropic::Internal::Type::Converter.new_coerce_state
140
140
  )
141
141
  end
142
142
 
@@ -78,6 +78,11 @@ module Anthropic
78
78
  end
79
79
 
80
80
  # @api private
81
+ #
82
+ # Tries to efficiently coerce the given value to one of the known variants.
83
+ #
84
+ # If the value cannot match any of the known variants, the coercion is considered
85
+ # non-viable and returns the original value.
81
86
  sig do
82
87
  override
83
88
  .params(
@@ -22,6 +22,8 @@ module Anthropic
22
22
 
23
23
  class << self
24
24
  # @api private
25
+ #
26
+ # No coercion needed for Unknown type.
25
27
  sig do
26
28
  override
27
29
  .params(
@@ -332,6 +332,8 @@ module Anthropic
332
332
  end
333
333
 
334
334
  # @api private
335
+ #
336
+ # https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.1.md#special-considerations-for-multipart-content
335
337
  sig do
336
338
  params(body: T.anything).returns([String, T::Enumerable[String]])
337
339
  end
@@ -5,134 +5,7 @@ module Anthropic
5
5
  BetaBase64PDFBlock = Beta::BetaBase64PDFBlock
6
6
 
7
7
  module Beta
8
- class BetaBase64PDFBlock < Anthropic::Internal::Type::BaseModel
9
- OrHash =
10
- T.type_alias do
11
- T.any(
12
- Anthropic::Beta::BetaBase64PDFBlock,
13
- Anthropic::Internal::AnyHash
14
- )
15
- end
16
-
17
- sig do
18
- returns(
19
- T.any(
20
- Anthropic::Beta::BetaBase64PDFSource,
21
- Anthropic::Beta::BetaPlainTextSource,
22
- Anthropic::Beta::BetaContentBlockSource,
23
- Anthropic::Beta::BetaURLPDFSource,
24
- Anthropic::Beta::BetaFileDocumentSource
25
- )
26
- )
27
- end
28
- attr_accessor :source
29
-
30
- sig { returns(Symbol) }
31
- attr_accessor :type
32
-
33
- # Create a cache control breakpoint at this content block.
34
- sig { returns(T.nilable(Anthropic::Beta::BetaCacheControlEphemeral)) }
35
- attr_reader :cache_control
36
-
37
- sig do
38
- params(
39
- cache_control:
40
- T.nilable(Anthropic::Beta::BetaCacheControlEphemeral::OrHash)
41
- ).void
42
- end
43
- attr_writer :cache_control
44
-
45
- sig { returns(T.nilable(Anthropic::Beta::BetaCitationsConfigParam)) }
46
- attr_reader :citations
47
-
48
- sig do
49
- params(
50
- citations: Anthropic::Beta::BetaCitationsConfigParam::OrHash
51
- ).void
52
- end
53
- attr_writer :citations
54
-
55
- sig { returns(T.nilable(String)) }
56
- attr_accessor :context
57
-
58
- sig { returns(T.nilable(String)) }
59
- attr_accessor :title
60
-
61
- sig do
62
- params(
63
- source:
64
- T.any(
65
- Anthropic::Beta::BetaBase64PDFSource::OrHash,
66
- Anthropic::Beta::BetaPlainTextSource::OrHash,
67
- Anthropic::Beta::BetaContentBlockSource::OrHash,
68
- Anthropic::Beta::BetaURLPDFSource::OrHash,
69
- Anthropic::Beta::BetaFileDocumentSource::OrHash
70
- ),
71
- cache_control:
72
- T.nilable(Anthropic::Beta::BetaCacheControlEphemeral::OrHash),
73
- citations: Anthropic::Beta::BetaCitationsConfigParam::OrHash,
74
- context: T.nilable(String),
75
- title: T.nilable(String),
76
- type: Symbol
77
- ).returns(T.attached_class)
78
- end
79
- def self.new(
80
- source:,
81
- # Create a cache control breakpoint at this content block.
82
- cache_control: nil,
83
- citations: nil,
84
- context: nil,
85
- title: nil,
86
- type: :document
87
- )
88
- end
89
-
90
- sig do
91
- override.returns(
92
- {
93
- source:
94
- T.any(
95
- Anthropic::Beta::BetaBase64PDFSource,
96
- Anthropic::Beta::BetaPlainTextSource,
97
- Anthropic::Beta::BetaContentBlockSource,
98
- Anthropic::Beta::BetaURLPDFSource,
99
- Anthropic::Beta::BetaFileDocumentSource
100
- ),
101
- type: Symbol,
102
- cache_control:
103
- T.nilable(Anthropic::Beta::BetaCacheControlEphemeral),
104
- citations: Anthropic::Beta::BetaCitationsConfigParam,
105
- context: T.nilable(String),
106
- title: T.nilable(String)
107
- }
108
- )
109
- end
110
- def to_hash
111
- end
112
-
113
- module Source
114
- extend Anthropic::Internal::Type::Union
115
-
116
- Variants =
117
- T.type_alias do
118
- T.any(
119
- Anthropic::Beta::BetaBase64PDFSource,
120
- Anthropic::Beta::BetaPlainTextSource,
121
- Anthropic::Beta::BetaContentBlockSource,
122
- Anthropic::Beta::BetaURLPDFSource,
123
- Anthropic::Beta::BetaFileDocumentSource
124
- )
125
- end
126
-
127
- sig do
128
- override.returns(
129
- T::Array[Anthropic::Beta::BetaBase64PDFBlock::Source::Variants]
130
- )
131
- end
132
- def self.variants
133
- end
134
- end
135
- end
8
+ BetaBase64PDFBlock = Anthropic::Models::Beta::BetaRequestDocumentBlock
136
9
  end
137
10
  end
138
11
  end
@@ -0,0 +1,78 @@
1
+ # typed: strong
2
+
3
+ module Anthropic
4
+ module Models
5
+ BetaCitationSearchResultLocation = Beta::BetaCitationSearchResultLocation
6
+
7
+ module Beta
8
+ class BetaCitationSearchResultLocation < Anthropic::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Anthropic::Beta::BetaCitationSearchResultLocation,
13
+ Anthropic::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :cited_text
19
+
20
+ sig { returns(Integer) }
21
+ attr_accessor :end_block_index
22
+
23
+ sig { returns(Integer) }
24
+ attr_accessor :search_result_index
25
+
26
+ sig { returns(String) }
27
+ attr_accessor :source
28
+
29
+ sig { returns(Integer) }
30
+ attr_accessor :start_block_index
31
+
32
+ sig { returns(T.nilable(String)) }
33
+ attr_accessor :title
34
+
35
+ sig { returns(Symbol) }
36
+ attr_accessor :type
37
+
38
+ sig do
39
+ params(
40
+ cited_text: String,
41
+ end_block_index: Integer,
42
+ search_result_index: Integer,
43
+ source: String,
44
+ start_block_index: Integer,
45
+ title: T.nilable(String),
46
+ type: Symbol
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ cited_text:,
51
+ end_block_index:,
52
+ search_result_index:,
53
+ source:,
54
+ start_block_index:,
55
+ title:,
56
+ type: :search_result_location
57
+ )
58
+ end
59
+
60
+ sig do
61
+ override.returns(
62
+ {
63
+ cited_text: String,
64
+ end_block_index: Integer,
65
+ search_result_index: Integer,
66
+ source: String,
67
+ start_block_index: Integer,
68
+ title: T.nilable(String),
69
+ type: Symbol
70
+ }
71
+ )
72
+ end
73
+ def to_hash
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,79 @@
1
+ # typed: strong
2
+
3
+ module Anthropic
4
+ module Models
5
+ BetaCitationSearchResultLocationParam =
6
+ Beta::BetaCitationSearchResultLocationParam
7
+
8
+ module Beta
9
+ class BetaCitationSearchResultLocationParam < Anthropic::Internal::Type::BaseModel
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Anthropic::Beta::BetaCitationSearchResultLocationParam,
14
+ Anthropic::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :cited_text
20
+
21
+ sig { returns(Integer) }
22
+ attr_accessor :end_block_index
23
+
24
+ sig { returns(Integer) }
25
+ attr_accessor :search_result_index
26
+
27
+ sig { returns(String) }
28
+ attr_accessor :source
29
+
30
+ sig { returns(Integer) }
31
+ attr_accessor :start_block_index
32
+
33
+ sig { returns(T.nilable(String)) }
34
+ attr_accessor :title
35
+
36
+ sig { returns(Symbol) }
37
+ attr_accessor :type
38
+
39
+ sig do
40
+ params(
41
+ cited_text: String,
42
+ end_block_index: Integer,
43
+ search_result_index: Integer,
44
+ source: String,
45
+ start_block_index: Integer,
46
+ title: T.nilable(String),
47
+ type: Symbol
48
+ ).returns(T.attached_class)
49
+ end
50
+ def self.new(
51
+ cited_text:,
52
+ end_block_index:,
53
+ search_result_index:,
54
+ source:,
55
+ start_block_index:,
56
+ title:,
57
+ type: :search_result_location
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ cited_text: String,
65
+ end_block_index: Integer,
66
+ search_result_index: Integer,
67
+ source: String,
68
+ start_block_index: Integer,
69
+ title: T.nilable(String),
70
+ type: Symbol
71
+ }
72
+ )
73
+ end
74
+ def to_hash
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -27,7 +27,8 @@ module Anthropic
27
27
  Anthropic::Beta::BetaCitationCharLocation::OrHash,
28
28
  Anthropic::Beta::BetaCitationPageLocation::OrHash,
29
29
  Anthropic::Beta::BetaCitationContentBlockLocation::OrHash,
30
- Anthropic::Beta::BetaCitationsWebSearchResultLocation::OrHash
30
+ Anthropic::Beta::BetaCitationsWebSearchResultLocation::OrHash,
31
+ Anthropic::Beta::BetaCitationSearchResultLocation::OrHash
31
32
  ),
32
33
  type: Symbol
33
34
  ).returns(T.attached_class)
@@ -55,7 +56,8 @@ module Anthropic
55
56
  Anthropic::Beta::BetaCitationCharLocation,
56
57
  Anthropic::Beta::BetaCitationPageLocation,
57
58
  Anthropic::Beta::BetaCitationContentBlockLocation,
58
- Anthropic::Beta::BetaCitationsWebSearchResultLocation
59
+ Anthropic::Beta::BetaCitationsWebSearchResultLocation,
60
+ Anthropic::Beta::BetaCitationSearchResultLocation
59
61
  )
60
62
  end
61
63
 
@@ -13,15 +13,15 @@ module Anthropic
13
13
  T.type_alias do
14
14
  T.any(
15
15
  Anthropic::Beta::BetaTextBlock,
16
+ Anthropic::Beta::BetaThinkingBlock,
17
+ Anthropic::Beta::BetaRedactedThinkingBlock,
16
18
  Anthropic::Beta::BetaToolUseBlock,
17
19
  Anthropic::Beta::BetaServerToolUseBlock,
18
20
  Anthropic::Beta::BetaWebSearchToolResultBlock,
19
21
  Anthropic::Beta::BetaCodeExecutionToolResultBlock,
20
22
  Anthropic::Beta::BetaMCPToolUseBlock,
21
23
  Anthropic::Beta::BetaMCPToolResultBlock,
22
- Anthropic::Beta::BetaContainerUploadBlock,
23
- Anthropic::Beta::BetaThinkingBlock,
24
- Anthropic::Beta::BetaRedactedThinkingBlock
24
+ Anthropic::Beta::BetaContainerUploadBlock
25
25
  )
26
26
  end
27
27
 
@@ -12,18 +12,19 @@ module Anthropic
12
12
  Variants =
13
13
  T.type_alias do
14
14
  T.any(
15
+ Anthropic::Beta::BetaTextBlockParam,
16
+ Anthropic::Beta::BetaImageBlockParam,
17
+ Anthropic::Beta::BetaRequestDocumentBlock,
18
+ Anthropic::Beta::BetaSearchResultBlockParam,
19
+ Anthropic::Beta::BetaThinkingBlockParam,
20
+ Anthropic::Beta::BetaRedactedThinkingBlockParam,
21
+ Anthropic::Beta::BetaToolUseBlockParam,
22
+ Anthropic::Beta::BetaToolResultBlockParam,
15
23
  Anthropic::Beta::BetaServerToolUseBlockParam,
16
24
  Anthropic::Beta::BetaWebSearchToolResultBlockParam,
17
25
  Anthropic::Beta::BetaCodeExecutionToolResultBlockParam,
18
26
  Anthropic::Beta::BetaMCPToolUseBlockParam,
19
27
  Anthropic::Beta::BetaRequestMCPToolResultBlockParam,
20
- Anthropic::Beta::BetaTextBlockParam,
21
- Anthropic::Beta::BetaImageBlockParam,
22
- Anthropic::Beta::BetaToolUseBlockParam,
23
- Anthropic::Beta::BetaToolResultBlockParam,
24
- Anthropic::Beta::BetaBase64PDFBlock,
25
- Anthropic::Beta::BetaThinkingBlockParam,
26
- Anthropic::Beta::BetaRedactedThinkingBlockParam,
27
28
  Anthropic::Beta::BetaContainerUploadBlockParam
28
29
  )
29
30
  end
@@ -84,6 +84,10 @@ module Anthropic
84
84
  # - `"max_tokens"`: we exceeded the requested `max_tokens` or the model's maximum
85
85
  # - `"stop_sequence"`: one of your provided custom `stop_sequences` was generated
86
86
  # - `"tool_use"`: the model invoked one or more tools
87
+ # - `"pause_turn"`: we paused a long-running turn. You may provide the response
88
+ # back as-is in a subsequent request to let the model continue.
89
+ # - `"refusal"`: when streaming classifiers intervene to handle potential policy
90
+ # violations
87
91
  #
88
92
  # In non-streaming mode this value is always non-null. In streaming mode, it is
89
93
  # null in the `message_start` event and non-null otherwise.
@@ -134,15 +138,15 @@ module Anthropic
134
138
  T::Array[
135
139
  T.any(
136
140
  Anthropic::Beta::BetaTextBlock::OrHash,
141
+ Anthropic::Beta::BetaThinkingBlock::OrHash,
142
+ Anthropic::Beta::BetaRedactedThinkingBlock::OrHash,
137
143
  Anthropic::Beta::BetaToolUseBlock::OrHash,
138
144
  Anthropic::Beta::BetaServerToolUseBlock::OrHash,
139
145
  Anthropic::Beta::BetaWebSearchToolResultBlock::OrHash,
140
146
  Anthropic::Beta::BetaCodeExecutionToolResultBlock::OrHash,
141
147
  Anthropic::Beta::BetaMCPToolUseBlock::OrHash,
142
148
  Anthropic::Beta::BetaMCPToolResultBlock::OrHash,
143
- Anthropic::Beta::BetaContainerUploadBlock::OrHash,
144
- Anthropic::Beta::BetaThinkingBlock::OrHash,
145
- Anthropic::Beta::BetaRedactedThinkingBlock::OrHash
149
+ Anthropic::Beta::BetaContainerUploadBlock::OrHash
146
150
  )
147
151
  ],
148
152
  model: T.any(Anthropic::Model::OrSymbol, String),
@@ -206,6 +210,10 @@ module Anthropic
206
210
  # - `"max_tokens"`: we exceeded the requested `max_tokens` or the model's maximum
207
211
  # - `"stop_sequence"`: one of your provided custom `stop_sequences` was generated
208
212
  # - `"tool_use"`: the model invoked one or more tools
213
+ # - `"pause_turn"`: we paused a long-running turn. You may provide the response
214
+ # back as-is in a subsequent request to let the model continue.
215
+ # - `"refusal"`: when streaming classifiers intervene to handle potential policy
216
+ # violations
209
217
  #
210
218
  # In non-streaming mode this value is always non-null. In streaming mode, it is
211
219
  # null in the `message_start` event and non-null otherwise.
@@ -33,15 +33,15 @@ module Anthropic
33
33
  content_block:
34
34
  T.any(
35
35
  Anthropic::Beta::BetaTextBlock::OrHash,
36
+ Anthropic::Beta::BetaThinkingBlock::OrHash,
37
+ Anthropic::Beta::BetaRedactedThinkingBlock::OrHash,
36
38
  Anthropic::Beta::BetaToolUseBlock::OrHash,
37
39
  Anthropic::Beta::BetaServerToolUseBlock::OrHash,
38
40
  Anthropic::Beta::BetaWebSearchToolResultBlock::OrHash,
39
41
  Anthropic::Beta::BetaCodeExecutionToolResultBlock::OrHash,
40
42
  Anthropic::Beta::BetaMCPToolUseBlock::OrHash,
41
43
  Anthropic::Beta::BetaMCPToolResultBlock::OrHash,
42
- Anthropic::Beta::BetaContainerUploadBlock::OrHash,
43
- Anthropic::Beta::BetaThinkingBlock::OrHash,
44
- Anthropic::Beta::BetaRedactedThinkingBlock::OrHash
44
+ Anthropic::Beta::BetaContainerUploadBlock::OrHash
45
45
  ),
46
46
  index: Integer,
47
47
  type: Symbol
@@ -76,15 +76,15 @@ module Anthropic
76
76
  T.type_alias do
77
77
  T.any(
78
78
  Anthropic::Beta::BetaTextBlock,
79
+ Anthropic::Beta::BetaThinkingBlock,
80
+ Anthropic::Beta::BetaRedactedThinkingBlock,
79
81
  Anthropic::Beta::BetaToolUseBlock,
80
82
  Anthropic::Beta::BetaServerToolUseBlock,
81
83
  Anthropic::Beta::BetaWebSearchToolResultBlock,
82
84
  Anthropic::Beta::BetaCodeExecutionToolResultBlock,
83
85
  Anthropic::Beta::BetaMCPToolUseBlock,
84
86
  Anthropic::Beta::BetaMCPToolResultBlock,
85
- Anthropic::Beta::BetaContainerUploadBlock,
86
- Anthropic::Beta::BetaThinkingBlock,
87
- Anthropic::Beta::BetaRedactedThinkingBlock
87
+ Anthropic::Beta::BetaContainerUploadBlock
88
88
  )
89
89
  end
90
90