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
@@ -253,7 +253,7 @@ module Anthropic
253
253
  # the top-level `system` parameter — there is no `"system"` role for input
254
254
  # messages in the Messages API.
255
255
  #
256
- # There is a limit of 100000 messages in a single request.
256
+ # There is a limit of 100,000 messages in a single request.
257
257
  sig { returns(T::Array[Anthropic::Beta::BetaMessageParam]) }
258
258
  attr_accessor :messages
259
259
 
@@ -447,6 +447,12 @@ module Anthropic
447
447
  # those tools using the tool input generated by the model and then optionally
448
448
  # return results back to the model using `tool_result` content blocks.
449
449
  #
450
+ # There are two types of tools: **client tools** and **server tools**. The
451
+ # behavior described below applies to client tools. For
452
+ # [server tools](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview#server-tools),
453
+ # see their individual documentation as each has its own behavior (e.g., the
454
+ # [web search tool](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/web-search-tool)).
455
+ #
450
456
  # Each tool definition includes:
451
457
  #
452
458
  # - `name`: Name of the tool.
@@ -515,15 +521,15 @@ module Anthropic
515
521
  T::Array[
516
522
  T.any(
517
523
  Anthropic::Beta::BetaTool,
518
- Anthropic::Beta::BetaToolComputerUse20241022,
519
524
  Anthropic::Beta::BetaToolBash20241022,
520
- Anthropic::Beta::BetaToolTextEditor20241022,
521
- Anthropic::Beta::BetaToolComputerUse20250124,
522
525
  Anthropic::Beta::BetaToolBash20250124,
526
+ Anthropic::Beta::BetaCodeExecutionTool20250522,
527
+ Anthropic::Beta::BetaToolComputerUse20241022,
528
+ Anthropic::Beta::BetaToolComputerUse20250124,
529
+ Anthropic::Beta::BetaToolTextEditor20241022,
523
530
  Anthropic::Beta::BetaToolTextEditor20250124,
524
531
  Anthropic::Beta::BetaToolTextEditor20250429,
525
- Anthropic::Beta::BetaWebSearchTool20250305,
526
- Anthropic::Beta::BetaCodeExecutionTool20250522
532
+ Anthropic::Beta::BetaWebSearchTool20250305
527
533
  )
528
534
  ]
529
535
  )
@@ -537,15 +543,15 @@ module Anthropic
537
543
  T::Array[
538
544
  T.any(
539
545
  Anthropic::Beta::BetaTool::OrHash,
540
- Anthropic::Beta::BetaToolComputerUse20241022::OrHash,
541
546
  Anthropic::Beta::BetaToolBash20241022::OrHash,
542
- Anthropic::Beta::BetaToolTextEditor20241022::OrHash,
543
- Anthropic::Beta::BetaToolComputerUse20250124::OrHash,
544
547
  Anthropic::Beta::BetaToolBash20250124::OrHash,
548
+ Anthropic::Beta::BetaCodeExecutionTool20250522::OrHash,
549
+ Anthropic::Beta::BetaToolComputerUse20241022::OrHash,
550
+ Anthropic::Beta::BetaToolComputerUse20250124::OrHash,
551
+ Anthropic::Beta::BetaToolTextEditor20241022::OrHash,
545
552
  Anthropic::Beta::BetaToolTextEditor20250124::OrHash,
546
553
  Anthropic::Beta::BetaToolTextEditor20250429::OrHash,
547
- Anthropic::Beta::BetaWebSearchTool20250305::OrHash,
548
- Anthropic::Beta::BetaCodeExecutionTool20250522::OrHash
554
+ Anthropic::Beta::BetaWebSearchTool20250305::OrHash
549
555
  )
550
556
  ]
551
557
  ).void
@@ -618,15 +624,15 @@ module Anthropic
618
624
  T::Array[
619
625
  T.any(
620
626
  Anthropic::Beta::BetaTool::OrHash,
621
- Anthropic::Beta::BetaToolComputerUse20241022::OrHash,
622
627
  Anthropic::Beta::BetaToolBash20241022::OrHash,
623
- Anthropic::Beta::BetaToolTextEditor20241022::OrHash,
624
- Anthropic::Beta::BetaToolComputerUse20250124::OrHash,
625
628
  Anthropic::Beta::BetaToolBash20250124::OrHash,
629
+ Anthropic::Beta::BetaCodeExecutionTool20250522::OrHash,
630
+ Anthropic::Beta::BetaToolComputerUse20241022::OrHash,
631
+ Anthropic::Beta::BetaToolComputerUse20250124::OrHash,
632
+ Anthropic::Beta::BetaToolTextEditor20241022::OrHash,
626
633
  Anthropic::Beta::BetaToolTextEditor20250124::OrHash,
627
634
  Anthropic::Beta::BetaToolTextEditor20250429::OrHash,
628
- Anthropic::Beta::BetaWebSearchTool20250305::OrHash,
629
- Anthropic::Beta::BetaCodeExecutionTool20250522::OrHash
635
+ Anthropic::Beta::BetaWebSearchTool20250305::OrHash
630
636
  )
631
637
  ],
632
638
  top_k: Integer,
@@ -729,7 +735,7 @@ module Anthropic
729
735
  # the top-level `system` parameter — there is no `"system"` role for input
730
736
  # messages in the Messages API.
731
737
  #
732
- # There is a limit of 100000 messages in a single request.
738
+ # There is a limit of 100,000 messages in a single request.
733
739
  messages:,
734
740
  # The model that will complete your prompt.\n\nSee
735
741
  # [models](https://docs.anthropic.com/en/docs/models-overview) for additional
@@ -797,6 +803,12 @@ module Anthropic
797
803
  # those tools using the tool input generated by the model and then optionally
798
804
  # return results back to the model using `tool_result` content blocks.
799
805
  #
806
+ # There are two types of tools: **client tools** and **server tools**. The
807
+ # behavior described below applies to client tools. For
808
+ # [server tools](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview#server-tools),
809
+ # see their individual documentation as each has its own behavior (e.g., the
810
+ # [web search tool](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/web-search-tool)).
811
+ #
800
812
  # Each tool definition includes:
801
813
  #
802
814
  # - `name`: Name of the tool.
@@ -916,15 +928,15 @@ module Anthropic
916
928
  T::Array[
917
929
  T.any(
918
930
  Anthropic::Beta::BetaTool,
919
- Anthropic::Beta::BetaToolComputerUse20241022,
920
931
  Anthropic::Beta::BetaToolBash20241022,
921
- Anthropic::Beta::BetaToolTextEditor20241022,
922
- Anthropic::Beta::BetaToolComputerUse20250124,
923
932
  Anthropic::Beta::BetaToolBash20250124,
933
+ Anthropic::Beta::BetaCodeExecutionTool20250522,
934
+ Anthropic::Beta::BetaToolComputerUse20241022,
935
+ Anthropic::Beta::BetaToolComputerUse20250124,
936
+ Anthropic::Beta::BetaToolTextEditor20241022,
924
937
  Anthropic::Beta::BetaToolTextEditor20250124,
925
938
  Anthropic::Beta::BetaToolTextEditor20250429,
926
- Anthropic::Beta::BetaWebSearchTool20250305,
927
- Anthropic::Beta::BetaCodeExecutionTool20250522
939
+ Anthropic::Beta::BetaWebSearchTool20250305
928
940
  )
929
941
  ],
930
942
  top_k: Integer,
@@ -9,11 +9,11 @@ module Anthropic
9
9
  T.type_alias do
10
10
  T.any(
11
11
  Anthropic::TextBlock,
12
+ Anthropic::ThinkingBlock,
13
+ Anthropic::RedactedThinkingBlock,
12
14
  Anthropic::ToolUseBlock,
13
15
  Anthropic::ServerToolUseBlock,
14
- Anthropic::WebSearchToolResultBlock,
15
- Anthropic::ThinkingBlock,
16
- Anthropic::RedactedThinkingBlock
16
+ Anthropic::WebSearchToolResultBlock
17
17
  )
18
18
  end
19
19
 
@@ -9,15 +9,15 @@ module Anthropic
9
9
  Variants =
10
10
  T.type_alias do
11
11
  T.any(
12
- Anthropic::ServerToolUseBlockParam,
13
- Anthropic::WebSearchToolResultBlockParam,
14
12
  Anthropic::TextBlockParam,
15
13
  Anthropic::ImageBlockParam,
16
- Anthropic::ToolUseBlockParam,
17
- Anthropic::ToolResultBlockParam,
18
14
  Anthropic::DocumentBlockParam,
19
15
  Anthropic::ThinkingBlockParam,
20
- Anthropic::RedactedThinkingBlockParam
16
+ Anthropic::RedactedThinkingBlockParam,
17
+ Anthropic::ToolUseBlockParam,
18
+ Anthropic::ToolResultBlockParam,
19
+ Anthropic::ServerToolUseBlockParam,
20
+ Anthropic::WebSearchToolResultBlockParam
21
21
  )
22
22
  end
23
23
 
@@ -67,6 +67,10 @@ module Anthropic
67
67
  # - `"max_tokens"`: we exceeded the requested `max_tokens` or the model's maximum
68
68
  # - `"stop_sequence"`: one of your provided custom `stop_sequences` was generated
69
69
  # - `"tool_use"`: the model invoked one or more tools
70
+ # - `"pause_turn"`: we paused a long-running turn. You may provide the response
71
+ # back as-is in a subsequent request to let the model continue.
72
+ # - `"refusal"`: when streaming classifiers intervene to handle potential policy
73
+ # violations
70
74
  #
71
75
  # In non-streaming mode this value is always non-null. In streaming mode, it is
72
76
  # null in the `message_start` event and non-null otherwise.
@@ -114,11 +118,11 @@ module Anthropic
114
118
  T::Array[
115
119
  T.any(
116
120
  Anthropic::TextBlock::OrHash,
121
+ Anthropic::ThinkingBlock::OrHash,
122
+ Anthropic::RedactedThinkingBlock::OrHash,
117
123
  Anthropic::ToolUseBlock::OrHash,
118
124
  Anthropic::ServerToolUseBlock::OrHash,
119
- Anthropic::WebSearchToolResultBlock::OrHash,
120
- Anthropic::ThinkingBlock::OrHash,
121
- Anthropic::RedactedThinkingBlock::OrHash
125
+ Anthropic::WebSearchToolResultBlock::OrHash
122
126
  )
123
127
  ],
124
128
  model: T.any(Anthropic::Model::OrSymbol, String),
@@ -179,6 +183,10 @@ module Anthropic
179
183
  # - `"max_tokens"`: we exceeded the requested `max_tokens` or the model's maximum
180
184
  # - `"stop_sequence"`: one of your provided custom `stop_sequences` was generated
181
185
  # - `"tool_use"`: the model invoked one or more tools
186
+ # - `"pause_turn"`: we paused a long-running turn. You may provide the response
187
+ # back as-is in a subsequent request to let the model continue.
188
+ # - `"refusal"`: when streaming classifiers intervene to handle potential policy
189
+ # violations
182
190
  #
183
191
  # In non-streaming mode this value is always non-null. In streaming mode, it is
184
192
  # null in the `message_start` event and non-null otherwise.
@@ -101,7 +101,7 @@ module Anthropic
101
101
  # the top-level `system` parameter — there is no `"system"` role for input
102
102
  # messages in the Messages API.
103
103
  #
104
- # There is a limit of 100000 messages in a single request.
104
+ # There is a limit of 100,000 messages in a single request.
105
105
  sig { returns(T::Array[Anthropic::MessageParam]) }
106
106
  attr_accessor :messages
107
107
 
@@ -198,6 +198,12 @@ module Anthropic
198
198
  # those tools using the tool input generated by the model and then optionally
199
199
  # return results back to the model using `tool_result` content blocks.
200
200
  #
201
+ # There are two types of tools: **client tools** and **server tools**. The
202
+ # behavior described below applies to client tools. For
203
+ # [server tools](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview#server-tools),
204
+ # see their individual documentation as each has its own behavior (e.g., the
205
+ # [web search tool](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/web-search-tool)).
206
+ #
201
207
  # Each tool definition includes:
202
208
  #
203
209
  # - `name`: Name of the tool.
@@ -268,6 +274,7 @@ module Anthropic
268
274
  Anthropic::Tool,
269
275
  Anthropic::ToolBash20250124,
270
276
  Anthropic::ToolTextEditor20250124,
277
+ Anthropic::MessageCountTokensTool::TextEditor20250429,
271
278
  Anthropic::WebSearchTool20250305
272
279
  )
273
280
  ]
@@ -284,6 +291,7 @@ module Anthropic
284
291
  Anthropic::Tool::OrHash,
285
292
  Anthropic::ToolBash20250124::OrHash,
286
293
  Anthropic::ToolTextEditor20250124::OrHash,
294
+ Anthropic::MessageCountTokensTool::TextEditor20250429::OrHash,
287
295
  Anthropic::WebSearchTool20250305::OrHash
288
296
  )
289
297
  ]
@@ -314,6 +322,7 @@ module Anthropic
314
322
  Anthropic::Tool::OrHash,
315
323
  Anthropic::ToolBash20250124::OrHash,
316
324
  Anthropic::ToolTextEditor20250124::OrHash,
325
+ Anthropic::MessageCountTokensTool::TextEditor20250429::OrHash,
317
326
  Anthropic::WebSearchTool20250305::OrHash
318
327
  )
319
328
  ],
@@ -408,7 +417,7 @@ module Anthropic
408
417
  # the top-level `system` parameter — there is no `"system"` role for input
409
418
  # messages in the Messages API.
410
419
  #
411
- # There is a limit of 100000 messages in a single request.
420
+ # There is a limit of 100,000 messages in a single request.
412
421
  messages:,
413
422
  # The model that will complete your prompt.\n\nSee
414
423
  # [models](https://docs.anthropic.com/en/docs/models-overview) for additional
@@ -440,6 +449,12 @@ module Anthropic
440
449
  # those tools using the tool input generated by the model and then optionally
441
450
  # return results back to the model using `tool_result` content blocks.
442
451
  #
452
+ # There are two types of tools: **client tools** and **server tools**. The
453
+ # behavior described below applies to client tools. For
454
+ # [server tools](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview#server-tools),
455
+ # see their individual documentation as each has its own behavior (e.g., the
456
+ # [web search tool](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/web-search-tool)).
457
+ #
443
458
  # Each tool definition includes:
444
459
  #
445
460
  # - `name`: Name of the tool.
@@ -531,6 +546,7 @@ module Anthropic
531
546
  Anthropic::Tool,
532
547
  Anthropic::ToolBash20250124,
533
548
  Anthropic::ToolTextEditor20250124,
549
+ Anthropic::MessageCountTokensTool::TextEditor20250429,
534
550
  Anthropic::WebSearchTool20250305
535
551
  )
536
552
  ],
@@ -11,10 +11,71 @@ module Anthropic
11
11
  Anthropic::Tool,
12
12
  Anthropic::ToolBash20250124,
13
13
  Anthropic::ToolTextEditor20250124,
14
+ Anthropic::MessageCountTokensTool::TextEditor20250429,
14
15
  Anthropic::WebSearchTool20250305
15
16
  )
16
17
  end
17
18
 
19
+ class TextEditor20250429 < Anthropic::Internal::Type::BaseModel
20
+ OrHash =
21
+ T.type_alias do
22
+ T.any(
23
+ Anthropic::MessageCountTokensTool::TextEditor20250429,
24
+ Anthropic::Internal::AnyHash
25
+ )
26
+ end
27
+
28
+ # Name of the tool.
29
+ #
30
+ # This is how the tool will be called by the model and in `tool_use` blocks.
31
+ sig { returns(Symbol) }
32
+ attr_accessor :name
33
+
34
+ sig { returns(Symbol) }
35
+ attr_accessor :type
36
+
37
+ # Create a cache control breakpoint at this content block.
38
+ sig { returns(T.nilable(Anthropic::CacheControlEphemeral)) }
39
+ attr_reader :cache_control
40
+
41
+ sig do
42
+ params(
43
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral::OrHash)
44
+ ).void
45
+ end
46
+ attr_writer :cache_control
47
+
48
+ sig do
49
+ params(
50
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral::OrHash),
51
+ name: Symbol,
52
+ type: Symbol
53
+ ).returns(T.attached_class)
54
+ end
55
+ def self.new(
56
+ # Create a cache control breakpoint at this content block.
57
+ cache_control: nil,
58
+ # Name of the tool.
59
+ #
60
+ # This is how the tool will be called by the model and in `tool_use` blocks.
61
+ name: :str_replace_based_edit_tool,
62
+ type: :text_editor_20250429
63
+ )
64
+ end
65
+
66
+ sig do
67
+ override.returns(
68
+ {
69
+ name: Symbol,
70
+ type: Symbol,
71
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral)
72
+ }
73
+ )
74
+ end
75
+ def to_hash
76
+ end
77
+ end
78
+
18
79
  sig do
19
80
  override.returns(T::Array[Anthropic::MessageCountTokensTool::Variants])
20
81
  end
@@ -108,7 +108,7 @@ module Anthropic
108
108
  # the top-level `system` parameter — there is no `"system"` role for input
109
109
  # messages in the Messages API.
110
110
  #
111
- # There is a limit of 100000 messages in a single request.
111
+ # There is a limit of 100,000 messages in a single request.
112
112
  sig { returns(T::Array[Anthropic::MessageParam]) }
113
113
  attr_accessor :messages
114
114
 
@@ -256,6 +256,12 @@ module Anthropic
256
256
  # those tools using the tool input generated by the model and then optionally
257
257
  # return results back to the model using `tool_result` content blocks.
258
258
  #
259
+ # There are two types of tools: **client tools** and **server tools**. The
260
+ # behavior described below applies to client tools. For
261
+ # [server tools](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview#server-tools),
262
+ # see their individual documentation as each has its own behavior (e.g., the
263
+ # [web search tool](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/web-search-tool)).
264
+ #
259
265
  # Each tool definition includes:
260
266
  #
261
267
  # - `name`: Name of the tool.
@@ -326,6 +332,7 @@ module Anthropic
326
332
  Anthropic::Tool,
327
333
  Anthropic::ToolBash20250124,
328
334
  Anthropic::ToolTextEditor20250124,
335
+ Anthropic::ToolUnion::TextEditor20250429,
329
336
  Anthropic::WebSearchTool20250305
330
337
  )
331
338
  ]
@@ -342,6 +349,7 @@ module Anthropic
342
349
  Anthropic::Tool::OrHash,
343
350
  Anthropic::ToolBash20250124::OrHash,
344
351
  Anthropic::ToolTextEditor20250124::OrHash,
352
+ Anthropic::ToolUnion::TextEditor20250429::OrHash,
345
353
  Anthropic::WebSearchTool20250305::OrHash
346
354
  )
347
355
  ]
@@ -405,6 +413,7 @@ module Anthropic
405
413
  Anthropic::Tool::OrHash,
406
414
  Anthropic::ToolBash20250124::OrHash,
407
415
  Anthropic::ToolTextEditor20250124::OrHash,
416
+ Anthropic::ToolUnion::TextEditor20250429::OrHash,
408
417
  Anthropic::WebSearchTool20250305::OrHash
409
418
  )
410
419
  ],
@@ -509,7 +518,7 @@ module Anthropic
509
518
  # the top-level `system` parameter — there is no `"system"` role for input
510
519
  # messages in the Messages API.
511
520
  #
512
- # There is a limit of 100000 messages in a single request.
521
+ # There is a limit of 100,000 messages in a single request.
513
522
  messages:,
514
523
  # The model that will complete your prompt.\n\nSee
515
524
  # [models](https://docs.anthropic.com/en/docs/models-overview) for additional
@@ -568,6 +577,12 @@ module Anthropic
568
577
  # those tools using the tool input generated by the model and then optionally
569
578
  # return results back to the model using `tool_result` content blocks.
570
579
  #
580
+ # There are two types of tools: **client tools** and **server tools**. The
581
+ # behavior described below applies to client tools. For
582
+ # [server tools](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview#server-tools),
583
+ # see their individual documentation as each has its own behavior (e.g., the
584
+ # [web search tool](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/web-search-tool)).
585
+ #
571
586
  # Each tool definition includes:
572
587
  #
573
588
  # - `name`: Name of the tool.
@@ -682,6 +697,7 @@ module Anthropic
682
697
  Anthropic::Tool,
683
698
  Anthropic::ToolBash20250124,
684
699
  Anthropic::ToolTextEditor20250124,
700
+ Anthropic::ToolUnion::TextEditor20250429,
685
701
  Anthropic::WebSearchTool20250305
686
702
  )
687
703
  ],
@@ -220,7 +220,7 @@ module Anthropic
220
220
  # the top-level `system` parameter — there is no `"system"` role for input
221
221
  # messages in the Messages API.
222
222
  #
223
- # There is a limit of 100000 messages in a single request.
223
+ # There is a limit of 100,000 messages in a single request.
224
224
  sig { returns(T::Array[Anthropic::MessageParam]) }
225
225
  attr_accessor :messages
226
226
 
@@ -388,6 +388,12 @@ module Anthropic
388
388
  # those tools using the tool input generated by the model and then optionally
389
389
  # return results back to the model using `tool_result` content blocks.
390
390
  #
391
+ # There are two types of tools: **client tools** and **server tools**. The
392
+ # behavior described below applies to client tools. For
393
+ # [server tools](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview#server-tools),
394
+ # see their individual documentation as each has its own behavior (e.g., the
395
+ # [web search tool](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/web-search-tool)).
396
+ #
391
397
  # Each tool definition includes:
392
398
  #
393
399
  # - `name`: Name of the tool.
@@ -458,6 +464,7 @@ module Anthropic
458
464
  Anthropic::Tool,
459
465
  Anthropic::ToolBash20250124,
460
466
  Anthropic::ToolTextEditor20250124,
467
+ Anthropic::ToolUnion::TextEditor20250429,
461
468
  Anthropic::WebSearchTool20250305
462
469
  )
463
470
  ]
@@ -474,6 +481,7 @@ module Anthropic
474
481
  Anthropic::Tool::OrHash,
475
482
  Anthropic::ToolBash20250124::OrHash,
476
483
  Anthropic::ToolTextEditor20250124::OrHash,
484
+ Anthropic::ToolUnion::TextEditor20250429::OrHash,
477
485
  Anthropic::WebSearchTool20250305::OrHash
478
486
  )
479
487
  ]
@@ -544,6 +552,7 @@ module Anthropic
544
552
  Anthropic::Tool::OrHash,
545
553
  Anthropic::ToolBash20250124::OrHash,
546
554
  Anthropic::ToolTextEditor20250124::OrHash,
555
+ Anthropic::ToolUnion::TextEditor20250429::OrHash,
547
556
  Anthropic::WebSearchTool20250305::OrHash
548
557
  )
549
558
  ],
@@ -647,7 +656,7 @@ module Anthropic
647
656
  # the top-level `system` parameter — there is no `"system"` role for input
648
657
  # messages in the Messages API.
649
658
  #
650
- # There is a limit of 100000 messages in a single request.
659
+ # There is a limit of 100,000 messages in a single request.
651
660
  messages:,
652
661
  # The model that will complete your prompt.\n\nSee
653
662
  # [models](https://docs.anthropic.com/en/docs/models-overview) for additional
@@ -711,6 +720,12 @@ module Anthropic
711
720
  # those tools using the tool input generated by the model and then optionally
712
721
  # return results back to the model using `tool_result` content blocks.
713
722
  #
723
+ # There are two types of tools: **client tools** and **server tools**. The
724
+ # behavior described below applies to client tools. For
725
+ # [server tools](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview#server-tools),
726
+ # see their individual documentation as each has its own behavior (e.g., the
727
+ # [web search tool](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/web-search-tool)).
728
+ #
714
729
  # Each tool definition includes:
715
730
  #
716
731
  # - `name`: Name of the tool.
@@ -827,6 +842,7 @@ module Anthropic
827
842
  Anthropic::Tool,
828
843
  Anthropic::ToolBash20250124,
829
844
  Anthropic::ToolTextEditor20250124,
845
+ Anthropic::ToolUnion::TextEditor20250429,
830
846
  Anthropic::WebSearchTool20250305
831
847
  )
832
848
  ],
@@ -76,17 +76,9 @@ module Anthropic
76
76
  CLAUDE_3_OPUS_20240229 =
77
77
  T.let(:"claude-3-opus-20240229", Anthropic::Model::TaggedSymbol)
78
78
 
79
- # Balance of speed and intelligence
80
- CLAUDE_3_SONNET_20240229 =
81
- T.let(:"claude-3-sonnet-20240229", Anthropic::Model::TaggedSymbol)
82
-
83
79
  # Our previous most fast and cost-effective
84
80
  CLAUDE_3_HAIKU_20240307 =
85
81
  T.let(:"claude-3-haiku-20240307", Anthropic::Model::TaggedSymbol)
86
-
87
- CLAUDE_2_1 = T.let(:"claude-2.1", Anthropic::Model::TaggedSymbol)
88
-
89
- CLAUDE_2_0 = T.let(:"claude-2.0", Anthropic::Model::TaggedSymbol)
90
82
  end
91
83
  end
92
84
  end
@@ -27,11 +27,11 @@ module Anthropic
27
27
  content_block:
28
28
  T.any(
29
29
  Anthropic::TextBlock::OrHash,
30
+ Anthropic::ThinkingBlock::OrHash,
31
+ Anthropic::RedactedThinkingBlock::OrHash,
30
32
  Anthropic::ToolUseBlock::OrHash,
31
33
  Anthropic::ServerToolUseBlock::OrHash,
32
- Anthropic::WebSearchToolResultBlock::OrHash,
33
- Anthropic::ThinkingBlock::OrHash,
34
- Anthropic::RedactedThinkingBlock::OrHash
34
+ Anthropic::WebSearchToolResultBlock::OrHash
35
35
  ),
36
36
  index: Integer,
37
37
  type: Symbol
@@ -60,11 +60,11 @@ module Anthropic
60
60
  T.type_alias do
61
61
  T.any(
62
62
  Anthropic::TextBlock,
63
+ Anthropic::ThinkingBlock,
64
+ Anthropic::RedactedThinkingBlock,
63
65
  Anthropic::ToolUseBlock,
64
66
  Anthropic::ServerToolUseBlock,
65
- Anthropic::WebSearchToolResultBlock,
66
- Anthropic::ThinkingBlock,
67
- Anthropic::RedactedThinkingBlock
67
+ Anthropic::WebSearchToolResultBlock
68
68
  )
69
69
  end
70
70
 
@@ -106,20 +106,31 @@ module Anthropic
106
106
  sig { returns(T.nilable(T.anything)) }
107
107
  attr_accessor :properties
108
108
 
109
+ sig { returns(T.nilable(T::Array[String])) }
110
+ attr_accessor :required
111
+
109
112
  # [JSON schema](https://json-schema.org/draft/2020-12) for this tool's input.
110
113
  #
111
114
  # This defines the shape of the `input` that your tool accepts and that the model
112
115
  # will produce.
113
116
  sig do
114
- params(properties: T.nilable(T.anything), type: Symbol).returns(
115
- T.attached_class
116
- )
117
+ params(
118
+ properties: T.nilable(T.anything),
119
+ required: T.nilable(T::Array[String]),
120
+ type: Symbol
121
+ ).returns(T.attached_class)
117
122
  end
118
- def self.new(properties: nil, type: :object)
123
+ def self.new(properties: nil, required: nil, type: :object)
119
124
  end
120
125
 
121
126
  sig do
122
- override.returns({ type: Symbol, properties: T.nilable(T.anything) })
127
+ override.returns(
128
+ {
129
+ type: Symbol,
130
+ properties: T.nilable(T.anything),
131
+ required: T.nilable(T::Array[String])
132
+ }
133
+ )
123
134
  end
124
135
  def to_hash
125
136
  end
@@ -11,10 +11,71 @@ module Anthropic
11
11
  Anthropic::Tool,
12
12
  Anthropic::ToolBash20250124,
13
13
  Anthropic::ToolTextEditor20250124,
14
+ Anthropic::ToolUnion::TextEditor20250429,
14
15
  Anthropic::WebSearchTool20250305
15
16
  )
16
17
  end
17
18
 
19
+ class TextEditor20250429 < Anthropic::Internal::Type::BaseModel
20
+ OrHash =
21
+ T.type_alias do
22
+ T.any(
23
+ Anthropic::ToolUnion::TextEditor20250429,
24
+ Anthropic::Internal::AnyHash
25
+ )
26
+ end
27
+
28
+ # Name of the tool.
29
+ #
30
+ # This is how the tool will be called by the model and in `tool_use` blocks.
31
+ sig { returns(Symbol) }
32
+ attr_accessor :name
33
+
34
+ sig { returns(Symbol) }
35
+ attr_accessor :type
36
+
37
+ # Create a cache control breakpoint at this content block.
38
+ sig { returns(T.nilable(Anthropic::CacheControlEphemeral)) }
39
+ attr_reader :cache_control
40
+
41
+ sig do
42
+ params(
43
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral::OrHash)
44
+ ).void
45
+ end
46
+ attr_writer :cache_control
47
+
48
+ sig do
49
+ params(
50
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral::OrHash),
51
+ name: Symbol,
52
+ type: Symbol
53
+ ).returns(T.attached_class)
54
+ end
55
+ def self.new(
56
+ # Create a cache control breakpoint at this content block.
57
+ cache_control: nil,
58
+ # Name of the tool.
59
+ #
60
+ # This is how the tool will be called by the model and in `tool_use` blocks.
61
+ name: :str_replace_based_edit_tool,
62
+ type: :text_editor_20250429
63
+ )
64
+ end
65
+
66
+ sig do
67
+ override.returns(
68
+ {
69
+ name: Symbol,
70
+ type: Symbol,
71
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral)
72
+ }
73
+ )
74
+ end
75
+ def to_hash
76
+ end
77
+ end
78
+
18
79
  sig { override.returns(T::Array[Anthropic::ToolUnion::Variants]) }
19
80
  def self.variants
20
81
  end