anthropic 1.1.1 → 1.6.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 (197) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +123 -0
  3. data/README.md +32 -16
  4. data/lib/anthropic/client.rb +5 -2
  5. data/lib/anthropic/errors.rb +22 -0
  6. data/lib/anthropic/helpers/bedrock/client.rb +34 -4
  7. data/lib/anthropic/helpers/streaming/events.rb +141 -0
  8. data/lib/anthropic/helpers/streaming/message_stream.rb +238 -0
  9. data/lib/anthropic/helpers/streaming.rb +37 -0
  10. data/lib/anthropic/helpers/vertex/client.rb +4 -1
  11. data/lib/anthropic/internal/stream.rb +4 -2
  12. data/lib/anthropic/internal/transport/base_client.rb +29 -3
  13. data/lib/anthropic/internal/type/array_of.rb +7 -1
  14. data/lib/anthropic/internal/type/base_model.rb +80 -24
  15. data/lib/anthropic/internal/type/base_stream.rb +3 -1
  16. data/lib/anthropic/internal/type/boolean.rb +7 -1
  17. data/lib/anthropic/internal/type/converter.rb +69 -34
  18. data/lib/anthropic/internal/type/enum.rb +16 -5
  19. data/lib/anthropic/internal/type/file_input.rb +6 -1
  20. data/lib/anthropic/internal/type/hash_of.rb +7 -1
  21. data/lib/anthropic/internal/type/union.rb +26 -16
  22. data/lib/anthropic/internal/type/unknown.rb +7 -1
  23. data/lib/anthropic/internal/util.rb +8 -9
  24. data/lib/anthropic/models/anthropic_beta.rb +3 -0
  25. data/lib/anthropic/models/beta/beta_base64_pdf_block.rb +1 -65
  26. data/lib/anthropic/models/beta/beta_citation_char_location.rb +7 -1
  27. data/lib/anthropic/models/beta/beta_citation_content_block_location.rb +7 -1
  28. data/lib/anthropic/models/beta/beta_citation_page_location.rb +7 -1
  29. data/lib/anthropic/models/beta/beta_citation_search_result_location.rb +55 -0
  30. data/lib/anthropic/models/beta/beta_citation_search_result_location_param.rb +55 -0
  31. data/lib/anthropic/models/beta/beta_citations_delta.rb +5 -3
  32. data/lib/anthropic/models/beta/beta_content_block.rb +5 -5
  33. data/lib/anthropic/models/beta/beta_content_block_param.rb +20 -17
  34. data/lib/anthropic/models/beta/beta_message.rb +6 -2
  35. data/lib/anthropic/models/beta/beta_message_param.rb +3 -3
  36. data/lib/anthropic/models/beta/beta_raw_content_block_start_event.rb +7 -7
  37. data/lib/anthropic/models/beta/beta_request_document_block.rb +75 -0
  38. data/lib/anthropic/models/beta/beta_search_result_block_param.rb +55 -0
  39. data/lib/anthropic/models/beta/beta_text_block.rb +2 -2
  40. data/lib/anthropic/models/beta/beta_text_block_param.rb +2 -2
  41. data/lib/anthropic/models/beta/beta_text_citation.rb +3 -1
  42. data/lib/anthropic/models/beta/beta_text_citation_param.rb +3 -1
  43. data/lib/anthropic/models/beta/beta_tool.rb +7 -1
  44. data/lib/anthropic/models/beta/beta_tool_result_block_param.rb +6 -4
  45. data/lib/anthropic/models/beta/beta_tool_text_editor_20250728.rb +49 -0
  46. data/lib/anthropic/models/beta/beta_tool_union.rb +9 -7
  47. data/lib/anthropic/models/beta/message_count_tokens_params.rb +18 -10
  48. data/lib/anthropic/models/beta/message_create_params.rb +9 -3
  49. data/lib/anthropic/models/beta/messages/batch_create_params.rb +9 -3
  50. data/lib/anthropic/models/citation_char_location.rb +7 -1
  51. data/lib/anthropic/models/citation_content_block_location.rb +7 -1
  52. data/lib/anthropic/models/citation_page_location.rb +7 -1
  53. data/lib/anthropic/models/citation_search_result_location_param.rb +51 -0
  54. data/lib/anthropic/models/citations_delta.rb +5 -3
  55. data/lib/anthropic/models/citations_search_result_location.rb +51 -0
  56. data/lib/anthropic/models/content_block.rb +5 -5
  57. data/lib/anthropic/models/content_block_param.rb +14 -11
  58. data/lib/anthropic/models/message.rb +6 -2
  59. data/lib/anthropic/models/message_count_tokens_params.rb +9 -3
  60. data/lib/anthropic/models/message_count_tokens_tool.rb +5 -1
  61. data/lib/anthropic/models/message_create_params.rb +9 -3
  62. data/lib/anthropic/models/message_param.rb +3 -3
  63. data/lib/anthropic/models/messages/batch_create_params.rb +9 -3
  64. data/lib/anthropic/models/model.rb +10 -21
  65. data/lib/anthropic/models/raw_content_block_start_event.rb +7 -7
  66. data/lib/anthropic/models/search_result_block_param.rb +51 -0
  67. data/lib/anthropic/models/text_block.rb +2 -2
  68. data/lib/anthropic/models/text_block_param.rb +2 -2
  69. data/lib/anthropic/models/text_citation.rb +3 -1
  70. data/lib/anthropic/models/text_citation_param.rb +3 -1
  71. data/lib/anthropic/models/tool.rb +7 -1
  72. data/lib/anthropic/models/tool_result_block_param.rb +6 -4
  73. data/lib/anthropic/models/tool_text_editor_20250429.rb +36 -0
  74. data/lib/anthropic/models/tool_text_editor_20250728.rb +45 -0
  75. data/lib/anthropic/models/tool_union.rb +5 -1
  76. data/lib/anthropic/models/tool_use_block.rb +6 -0
  77. data/lib/anthropic/models.rb +14 -4
  78. data/lib/anthropic/resources/beta/messages.rb +73 -6
  79. data/lib/anthropic/resources/messages.rb +68 -7
  80. data/lib/anthropic/streaming.rb +5 -0
  81. data/lib/anthropic/version.rb +1 -1
  82. data/lib/anthropic.rb +14 -0
  83. data/rbi/anthropic/errors.rbi +16 -0
  84. data/rbi/anthropic/helpers/bedrock/client.rbi +17 -6
  85. data/rbi/anthropic/helpers/streaming/events.rbi +95 -0
  86. data/rbi/anthropic/helpers/streaming/message_stream.rbi +73 -0
  87. data/rbi/anthropic/helpers/vertex/client.rbi +17 -6
  88. data/rbi/anthropic/internal/transport/base_client.rbi +1 -1
  89. data/rbi/anthropic/internal/type/base_stream.rbi +8 -1
  90. data/rbi/anthropic/internal/type/boolean.rbi +2 -0
  91. data/rbi/anthropic/internal/type/converter.rbi +69 -15
  92. data/rbi/anthropic/internal/type/union.rbi +14 -2
  93. data/rbi/anthropic/internal/type/unknown.rbi +2 -0
  94. data/rbi/anthropic/internal/util.rbi +2 -0
  95. data/rbi/anthropic/models/anthropic_beta.rbi +2 -0
  96. data/rbi/anthropic/models/beta/beta_base64_pdf_block.rbi +1 -128
  97. data/rbi/anthropic/models/beta/beta_citation_char_location.rbi +6 -0
  98. data/rbi/anthropic/models/beta/beta_citation_content_block_location.rbi +6 -0
  99. data/rbi/anthropic/models/beta/beta_citation_page_location.rbi +6 -0
  100. data/rbi/anthropic/models/beta/beta_citation_search_result_location.rbi +78 -0
  101. data/rbi/anthropic/models/beta/beta_citation_search_result_location_param.rbi +79 -0
  102. data/rbi/anthropic/models/beta/beta_citations_delta.rbi +4 -2
  103. data/rbi/anthropic/models/beta/beta_content_block.rbi +3 -3
  104. data/rbi/anthropic/models/beta/beta_content_block_param.rbi +8 -7
  105. data/rbi/anthropic/models/beta/beta_message.rbi +11 -3
  106. data/rbi/anthropic/models/beta/beta_raw_content_block_start_event.rbi +6 -6
  107. data/rbi/anthropic/models/beta/beta_request_document_block.rbi +140 -0
  108. data/rbi/anthropic/models/beta/beta_search_result_block_param.rbi +91 -0
  109. data/rbi/anthropic/models/beta/beta_text_block.rbi +2 -1
  110. data/rbi/anthropic/models/beta/beta_text_block_param.rbi +6 -3
  111. data/rbi/anthropic/models/beta/beta_text_citation.rbi +2 -1
  112. data/rbi/anthropic/models/beta/beta_text_citation_param.rbi +2 -1
  113. data/rbi/anthropic/models/beta/beta_tool.rbi +14 -5
  114. data/rbi/anthropic/models/beta/beta_tool_result_block_param.rbi +2 -1
  115. data/rbi/anthropic/models/beta/beta_tool_text_editor_20250728.rbi +82 -0
  116. data/rbi/anthropic/models/beta/beta_tool_union.rbi +6 -5
  117. data/rbi/anthropic/models/beta/message_count_tokens_params.rbi +44 -27
  118. data/rbi/anthropic/models/beta/message_create_params.rbi +38 -22
  119. data/rbi/anthropic/models/beta/messages/batch_create_params.rbi +38 -22
  120. data/rbi/anthropic/models/citation_char_location.rbi +6 -0
  121. data/rbi/anthropic/models/citation_content_block_location.rbi +6 -0
  122. data/rbi/anthropic/models/citation_page_location.rbi +6 -0
  123. data/rbi/anthropic/models/citation_search_result_location_param.rbi +74 -0
  124. data/rbi/anthropic/models/citations_delta.rbi +4 -2
  125. data/rbi/anthropic/models/citations_search_result_location.rbi +74 -0
  126. data/rbi/anthropic/models/content_block.rbi +3 -3
  127. data/rbi/anthropic/models/content_block_param.rbi +6 -5
  128. data/rbi/anthropic/models/message.rbi +11 -3
  129. data/rbi/anthropic/models/message_count_tokens_params.rbi +22 -2
  130. data/rbi/anthropic/models/message_count_tokens_tool.rbi +2 -0
  131. data/rbi/anthropic/models/message_create_params.rbi +22 -2
  132. data/rbi/anthropic/models/messages/batch_create_params.rbi +22 -2
  133. data/rbi/anthropic/models/model.rbi +4 -8
  134. data/rbi/anthropic/models/raw_content_block_start_event.rbi +6 -6
  135. data/rbi/anthropic/models/search_result_block_param.rbi +77 -0
  136. data/rbi/anthropic/models/text_block.rbi +2 -1
  137. data/rbi/anthropic/models/text_block_param.rbi +6 -3
  138. data/rbi/anthropic/models/text_citation.rbi +2 -1
  139. data/rbi/anthropic/models/text_citation_param.rbi +2 -1
  140. data/rbi/anthropic/models/tool.rbi +16 -5
  141. data/rbi/anthropic/models/tool_result_block_param.rbi +5 -1
  142. data/rbi/anthropic/models/tool_text_editor_20250429.rbi +62 -0
  143. data/rbi/anthropic/models/tool_text_editor_20250728.rbi +72 -0
  144. data/rbi/anthropic/models/tool_union.rbi +2 -0
  145. data/rbi/anthropic/models.rbi +12 -0
  146. data/rbi/anthropic/resources/beta/messages.rbi +39 -18
  147. data/rbi/anthropic/resources/messages.rbi +318 -3
  148. data/rbi/anthropic/streaming.rbi +5 -0
  149. data/sig/anthropic/errors.rbs +9 -0
  150. data/sig/anthropic/helpers/streaming/events.rbs +117 -0
  151. data/sig/anthropic/helpers/streaming/message_stream.rbs +57 -0
  152. data/sig/anthropic/internal/transport/base_client.rbs +1 -1
  153. data/sig/anthropic/internal/type/base_stream.rbs +4 -0
  154. data/sig/anthropic/internal/type/converter.rbs +24 -1
  155. data/sig/anthropic/internal/type/union.rbs +2 -2
  156. data/sig/anthropic/models/anthropic_beta.rbs +2 -0
  157. data/sig/anthropic/models/beta/beta_base64_pdf_block.rbs +1 -58
  158. data/sig/anthropic/models/beta/beta_citation_char_location.rbs +5 -0
  159. data/sig/anthropic/models/beta/beta_citation_content_block_location.rbs +5 -0
  160. data/sig/anthropic/models/beta/beta_citation_page_location.rbs +5 -0
  161. data/sig/anthropic/models/beta/beta_citation_search_result_location.rbs +54 -0
  162. data/sig/anthropic/models/beta/beta_citation_search_result_location_param.rbs +54 -0
  163. data/sig/anthropic/models/beta/beta_citations_delta.rbs +1 -0
  164. data/sig/anthropic/models/beta/beta_content_block.rbs +2 -2
  165. data/sig/anthropic/models/beta/beta_content_block_param.rbs +9 -8
  166. data/sig/anthropic/models/beta/beta_raw_content_block_start_event.rbs +2 -2
  167. data/sig/anthropic/models/beta/beta_request_document_block.rbs +66 -0
  168. data/sig/anthropic/models/beta/beta_search_result_block_param.rbs +53 -0
  169. data/sig/anthropic/models/beta/beta_text_citation.rbs +1 -0
  170. data/sig/anthropic/models/beta/beta_text_citation_param.rbs +1 -0
  171. data/sig/anthropic/models/beta/beta_tool.rbs +14 -3
  172. data/sig/anthropic/models/beta/beta_tool_result_block_param.rbs +1 -0
  173. data/sig/anthropic/models/beta/beta_tool_text_editor_20250728.rbs +39 -0
  174. data/sig/anthropic/models/beta/beta_tool_union.rbs +5 -4
  175. data/sig/anthropic/models/beta/message_count_tokens_params.rbs +5 -4
  176. data/sig/anthropic/models/citation_char_location.rbs +5 -0
  177. data/sig/anthropic/models/citation_content_block_location.rbs +5 -0
  178. data/sig/anthropic/models/citation_page_location.rbs +5 -0
  179. data/sig/anthropic/models/citation_search_result_location_param.rbs +50 -0
  180. data/sig/anthropic/models/citations_delta.rbs +1 -0
  181. data/sig/anthropic/models/citations_search_result_location.rbs +50 -0
  182. data/sig/anthropic/models/content_block.rbs +2 -2
  183. data/sig/anthropic/models/content_block_param.rbs +6 -5
  184. data/sig/anthropic/models/message_count_tokens_tool.rbs +2 -0
  185. data/sig/anthropic/models/model.rbs +4 -10
  186. data/sig/anthropic/models/raw_content_block_start_event.rbs +2 -2
  187. data/sig/anthropic/models/search_result_block_param.rbs +49 -0
  188. data/sig/anthropic/models/text_citation.rbs +1 -0
  189. data/sig/anthropic/models/text_citation_param.rbs +1 -0
  190. data/sig/anthropic/models/tool.rbs +14 -3
  191. data/sig/anthropic/models/tool_result_block_param.rbs +4 -1
  192. data/sig/anthropic/models/tool_text_editor_20250429.rbs +30 -0
  193. data/sig/anthropic/models/tool_text_editor_20250728.rbs +35 -0
  194. data/sig/anthropic/models/tool_union.rbs +2 -0
  195. data/sig/anthropic/models.rbs +10 -0
  196. data/sig/anthropic/streaming.rbs +3 -0
  197. metadata +44 -3
@@ -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,8 @@ module Anthropic
268
274
  Anthropic::Tool,
269
275
  Anthropic::ToolBash20250124,
270
276
  Anthropic::ToolTextEditor20250124,
277
+ Anthropic::ToolTextEditor20250429,
278
+ Anthropic::ToolTextEditor20250728,
271
279
  Anthropic::WebSearchTool20250305
272
280
  )
273
281
  ]
@@ -284,6 +292,8 @@ module Anthropic
284
292
  Anthropic::Tool::OrHash,
285
293
  Anthropic::ToolBash20250124::OrHash,
286
294
  Anthropic::ToolTextEditor20250124::OrHash,
295
+ Anthropic::ToolTextEditor20250429::OrHash,
296
+ Anthropic::ToolTextEditor20250728::OrHash,
287
297
  Anthropic::WebSearchTool20250305::OrHash
288
298
  )
289
299
  ]
@@ -314,6 +324,8 @@ module Anthropic
314
324
  Anthropic::Tool::OrHash,
315
325
  Anthropic::ToolBash20250124::OrHash,
316
326
  Anthropic::ToolTextEditor20250124::OrHash,
327
+ Anthropic::ToolTextEditor20250429::OrHash,
328
+ Anthropic::ToolTextEditor20250728::OrHash,
317
329
  Anthropic::WebSearchTool20250305::OrHash
318
330
  )
319
331
  ],
@@ -408,7 +420,7 @@ module Anthropic
408
420
  # the top-level `system` parameter — there is no `"system"` role for input
409
421
  # messages in the Messages API.
410
422
  #
411
- # There is a limit of 100000 messages in a single request.
423
+ # There is a limit of 100,000 messages in a single request.
412
424
  messages:,
413
425
  # The model that will complete your prompt.\n\nSee
414
426
  # [models](https://docs.anthropic.com/en/docs/models-overview) for additional
@@ -440,6 +452,12 @@ module Anthropic
440
452
  # those tools using the tool input generated by the model and then optionally
441
453
  # return results back to the model using `tool_result` content blocks.
442
454
  #
455
+ # There are two types of tools: **client tools** and **server tools**. The
456
+ # behavior described below applies to client tools. For
457
+ # [server tools](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview#server-tools),
458
+ # see their individual documentation as each has its own behavior (e.g., the
459
+ # [web search tool](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/web-search-tool)).
460
+ #
443
461
  # Each tool definition includes:
444
462
  #
445
463
  # - `name`: Name of the tool.
@@ -531,6 +549,8 @@ module Anthropic
531
549
  Anthropic::Tool,
532
550
  Anthropic::ToolBash20250124,
533
551
  Anthropic::ToolTextEditor20250124,
552
+ Anthropic::ToolTextEditor20250429,
553
+ Anthropic::ToolTextEditor20250728,
534
554
  Anthropic::WebSearchTool20250305
535
555
  )
536
556
  ],
@@ -11,6 +11,8 @@ module Anthropic
11
11
  Anthropic::Tool,
12
12
  Anthropic::ToolBash20250124,
13
13
  Anthropic::ToolTextEditor20250124,
14
+ Anthropic::ToolTextEditor20250429,
15
+ Anthropic::ToolTextEditor20250728,
14
16
  Anthropic::WebSearchTool20250305
15
17
  )
16
18
  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,8 @@ module Anthropic
326
332
  Anthropic::Tool,
327
333
  Anthropic::ToolBash20250124,
328
334
  Anthropic::ToolTextEditor20250124,
335
+ Anthropic::ToolTextEditor20250429,
336
+ Anthropic::ToolTextEditor20250728,
329
337
  Anthropic::WebSearchTool20250305
330
338
  )
331
339
  ]
@@ -342,6 +350,8 @@ module Anthropic
342
350
  Anthropic::Tool::OrHash,
343
351
  Anthropic::ToolBash20250124::OrHash,
344
352
  Anthropic::ToolTextEditor20250124::OrHash,
353
+ Anthropic::ToolTextEditor20250429::OrHash,
354
+ Anthropic::ToolTextEditor20250728::OrHash,
345
355
  Anthropic::WebSearchTool20250305::OrHash
346
356
  )
347
357
  ]
@@ -405,6 +415,8 @@ module Anthropic
405
415
  Anthropic::Tool::OrHash,
406
416
  Anthropic::ToolBash20250124::OrHash,
407
417
  Anthropic::ToolTextEditor20250124::OrHash,
418
+ Anthropic::ToolTextEditor20250429::OrHash,
419
+ Anthropic::ToolTextEditor20250728::OrHash,
408
420
  Anthropic::WebSearchTool20250305::OrHash
409
421
  )
410
422
  ],
@@ -509,7 +521,7 @@ module Anthropic
509
521
  # the top-level `system` parameter — there is no `"system"` role for input
510
522
  # messages in the Messages API.
511
523
  #
512
- # There is a limit of 100000 messages in a single request.
524
+ # There is a limit of 100,000 messages in a single request.
513
525
  messages:,
514
526
  # The model that will complete your prompt.\n\nSee
515
527
  # [models](https://docs.anthropic.com/en/docs/models-overview) for additional
@@ -568,6 +580,12 @@ module Anthropic
568
580
  # those tools using the tool input generated by the model and then optionally
569
581
  # return results back to the model using `tool_result` content blocks.
570
582
  #
583
+ # There are two types of tools: **client tools** and **server tools**. The
584
+ # behavior described below applies to client tools. For
585
+ # [server tools](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview#server-tools),
586
+ # see their individual documentation as each has its own behavior (e.g., the
587
+ # [web search tool](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/web-search-tool)).
588
+ #
571
589
  # Each tool definition includes:
572
590
  #
573
591
  # - `name`: Name of the tool.
@@ -682,6 +700,8 @@ module Anthropic
682
700
  Anthropic::Tool,
683
701
  Anthropic::ToolBash20250124,
684
702
  Anthropic::ToolTextEditor20250124,
703
+ Anthropic::ToolTextEditor20250429,
704
+ Anthropic::ToolTextEditor20250728,
685
705
  Anthropic::WebSearchTool20250305
686
706
  )
687
707
  ],
@@ -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,8 @@ module Anthropic
458
464
  Anthropic::Tool,
459
465
  Anthropic::ToolBash20250124,
460
466
  Anthropic::ToolTextEditor20250124,
467
+ Anthropic::ToolTextEditor20250429,
468
+ Anthropic::ToolTextEditor20250728,
461
469
  Anthropic::WebSearchTool20250305
462
470
  )
463
471
  ]
@@ -474,6 +482,8 @@ module Anthropic
474
482
  Anthropic::Tool::OrHash,
475
483
  Anthropic::ToolBash20250124::OrHash,
476
484
  Anthropic::ToolTextEditor20250124::OrHash,
485
+ Anthropic::ToolTextEditor20250429::OrHash,
486
+ Anthropic::ToolTextEditor20250728::OrHash,
477
487
  Anthropic::WebSearchTool20250305::OrHash
478
488
  )
479
489
  ]
@@ -544,6 +554,8 @@ module Anthropic
544
554
  Anthropic::Tool::OrHash,
545
555
  Anthropic::ToolBash20250124::OrHash,
546
556
  Anthropic::ToolTextEditor20250124::OrHash,
557
+ Anthropic::ToolTextEditor20250429::OrHash,
558
+ Anthropic::ToolTextEditor20250728::OrHash,
547
559
  Anthropic::WebSearchTool20250305::OrHash
548
560
  )
549
561
  ],
@@ -647,7 +659,7 @@ module Anthropic
647
659
  # the top-level `system` parameter — there is no `"system"` role for input
648
660
  # messages in the Messages API.
649
661
  #
650
- # There is a limit of 100000 messages in a single request.
662
+ # There is a limit of 100,000 messages in a single request.
651
663
  messages:,
652
664
  # The model that will complete your prompt.\n\nSee
653
665
  # [models](https://docs.anthropic.com/en/docs/models-overview) for additional
@@ -711,6 +723,12 @@ module Anthropic
711
723
  # those tools using the tool input generated by the model and then optionally
712
724
  # return results back to the model using `tool_result` content blocks.
713
725
  #
726
+ # There are two types of tools: **client tools** and **server tools**. The
727
+ # behavior described below applies to client tools. For
728
+ # [server tools](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview#server-tools),
729
+ # see their individual documentation as each has its own behavior (e.g., the
730
+ # [web search tool](https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/web-search-tool)).
731
+ #
714
732
  # Each tool definition includes:
715
733
  #
716
734
  # - `name`: Name of the tool.
@@ -827,6 +845,8 @@ module Anthropic
827
845
  Anthropic::Tool,
828
846
  Anthropic::ToolBash20250124,
829
847
  Anthropic::ToolTextEditor20250124,
848
+ Anthropic::ToolTextEditor20250429,
849
+ Anthropic::ToolTextEditor20250728,
830
850
  Anthropic::WebSearchTool20250305
831
851
  )
832
852
  ],
@@ -68,6 +68,10 @@ module Anthropic
68
68
  CLAUDE_4_OPUS_20250514 =
69
69
  T.let(:"claude-4-opus-20250514", Anthropic::Model::TaggedSymbol)
70
70
 
71
+ # Our most capable model
72
+ CLAUDE_OPUS_4_1_20250805 =
73
+ T.let(:"claude-opus-4-1-20250805", Anthropic::Model::TaggedSymbol)
74
+
71
75
  # Excels at writing and complex tasks
72
76
  CLAUDE_3_OPUS_LATEST =
73
77
  T.let(:"claude-3-opus-latest", Anthropic::Model::TaggedSymbol)
@@ -76,17 +80,9 @@ module Anthropic
76
80
  CLAUDE_3_OPUS_20240229 =
77
81
  T.let(:"claude-3-opus-20240229", Anthropic::Model::TaggedSymbol)
78
82
 
79
- # Balance of speed and intelligence
80
- CLAUDE_3_SONNET_20240229 =
81
- T.let(:"claude-3-sonnet-20240229", Anthropic::Model::TaggedSymbol)
82
-
83
83
  # Our previous most fast and cost-effective
84
84
  CLAUDE_3_HAIKU_20240307 =
85
85
  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
86
  end
91
87
  end
92
88
  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
 
@@ -0,0 +1,77 @@
1
+ # typed: strong
2
+
3
+ module Anthropic
4
+ module Models
5
+ class SearchResultBlockParam < Anthropic::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Anthropic::SearchResultBlockParam, Anthropic::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T::Array[Anthropic::TextBlockParam]) }
12
+ attr_accessor :content
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :source
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :title
19
+
20
+ sig { returns(Symbol) }
21
+ attr_accessor :type
22
+
23
+ # Create a cache control breakpoint at this content block.
24
+ sig { returns(T.nilable(Anthropic::CacheControlEphemeral)) }
25
+ attr_reader :cache_control
26
+
27
+ sig do
28
+ params(
29
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral::OrHash)
30
+ ).void
31
+ end
32
+ attr_writer :cache_control
33
+
34
+ sig { returns(T.nilable(Anthropic::CitationsConfigParam)) }
35
+ attr_reader :citations
36
+
37
+ sig { params(citations: Anthropic::CitationsConfigParam::OrHash).void }
38
+ attr_writer :citations
39
+
40
+ sig do
41
+ params(
42
+ content: T::Array[Anthropic::TextBlockParam::OrHash],
43
+ source: String,
44
+ title: String,
45
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral::OrHash),
46
+ citations: Anthropic::CitationsConfigParam::OrHash,
47
+ type: Symbol
48
+ ).returns(T.attached_class)
49
+ end
50
+ def self.new(
51
+ content:,
52
+ source:,
53
+ title:,
54
+ # Create a cache control breakpoint at this content block.
55
+ cache_control: nil,
56
+ citations: nil,
57
+ type: :search_result
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ content: T::Array[Anthropic::TextBlockParam],
65
+ source: String,
66
+ title: String,
67
+ type: Symbol,
68
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral),
69
+ citations: Anthropic::CitationsConfigParam
70
+ }
71
+ )
72
+ end
73
+ def to_hash
74
+ end
75
+ end
76
+ end
77
+ end
@@ -31,7 +31,8 @@ module Anthropic
31
31
  Anthropic::CitationCharLocation::OrHash,
32
32
  Anthropic::CitationPageLocation::OrHash,
33
33
  Anthropic::CitationContentBlockLocation::OrHash,
34
- Anthropic::CitationsWebSearchResultLocation::OrHash
34
+ Anthropic::CitationsWebSearchResultLocation::OrHash,
35
+ Anthropic::CitationsSearchResultLocation::OrHash
35
36
  )
36
37
  ]
37
38
  ),
@@ -33,7 +33,8 @@ module Anthropic
33
33
  Anthropic::CitationCharLocationParam,
34
34
  Anthropic::CitationPageLocationParam,
35
35
  Anthropic::CitationContentBlockLocationParam,
36
- Anthropic::CitationWebSearchResultLocationParam
36
+ Anthropic::CitationWebSearchResultLocationParam,
37
+ Anthropic::CitationSearchResultLocationParam
37
38
  )
38
39
  ]
39
40
  )
@@ -52,7 +53,8 @@ module Anthropic
52
53
  Anthropic::CitationCharLocationParam::OrHash,
53
54
  Anthropic::CitationPageLocationParam::OrHash,
54
55
  Anthropic::CitationContentBlockLocationParam::OrHash,
55
- Anthropic::CitationWebSearchResultLocationParam::OrHash
56
+ Anthropic::CitationWebSearchResultLocationParam::OrHash,
57
+ Anthropic::CitationSearchResultLocationParam::OrHash
56
58
  )
57
59
  ]
58
60
  ),
@@ -81,7 +83,8 @@ module Anthropic
81
83
  Anthropic::CitationCharLocationParam,
82
84
  Anthropic::CitationPageLocationParam,
83
85
  Anthropic::CitationContentBlockLocationParam,
84
- Anthropic::CitationWebSearchResultLocationParam
86
+ Anthropic::CitationWebSearchResultLocationParam,
87
+ Anthropic::CitationSearchResultLocationParam
85
88
  )
86
89
  ]
87
90
  )
@@ -11,7 +11,8 @@ module Anthropic
11
11
  Anthropic::CitationCharLocation,
12
12
  Anthropic::CitationPageLocation,
13
13
  Anthropic::CitationContentBlockLocation,
14
- Anthropic::CitationsWebSearchResultLocation
14
+ Anthropic::CitationsWebSearchResultLocation,
15
+ Anthropic::CitationsSearchResultLocation
15
16
  )
16
17
  end
17
18
 
@@ -11,7 +11,8 @@ module Anthropic
11
11
  Anthropic::CitationCharLocationParam,
12
12
  Anthropic::CitationPageLocationParam,
13
13
  Anthropic::CitationContentBlockLocationParam,
14
- Anthropic::CitationWebSearchResultLocationParam
14
+ Anthropic::CitationWebSearchResultLocationParam,
15
+ Anthropic::CitationSearchResultLocationParam
15
16
  )
16
17
  end
17
18
 
@@ -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
@@ -92,7 +92,11 @@ module Anthropic
92
92
 
93
93
  Variants =
94
94
  T.type_alias do
95
- T.any(Anthropic::TextBlockParam, Anthropic::ImageBlockParam)
95
+ T.any(
96
+ Anthropic::TextBlockParam,
97
+ Anthropic::ImageBlockParam,
98
+ Anthropic::SearchResultBlockParam
99
+ )
96
100
  end
97
101
 
98
102
  sig do
@@ -0,0 +1,62 @@
1
+ # typed: strong
2
+
3
+ module Anthropic
4
+ module Models
5
+ class ToolTextEditor20250429 < Anthropic::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Anthropic::ToolTextEditor20250429, Anthropic::Internal::AnyHash)
9
+ end
10
+
11
+ # Name of the tool.
12
+ #
13
+ # This is how the tool will be called by the model and in `tool_use` blocks.
14
+ sig { returns(Symbol) }
15
+ attr_accessor :name
16
+
17
+ sig { returns(Symbol) }
18
+ attr_accessor :type
19
+
20
+ # Create a cache control breakpoint at this content block.
21
+ sig { returns(T.nilable(Anthropic::CacheControlEphemeral)) }
22
+ attr_reader :cache_control
23
+
24
+ sig do
25
+ params(
26
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral::OrHash)
27
+ ).void
28
+ end
29
+ attr_writer :cache_control
30
+
31
+ sig do
32
+ params(
33
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral::OrHash),
34
+ name: Symbol,
35
+ type: Symbol
36
+ ).returns(T.attached_class)
37
+ end
38
+ def self.new(
39
+ # Create a cache control breakpoint at this content block.
40
+ cache_control: nil,
41
+ # Name of the tool.
42
+ #
43
+ # This is how the tool will be called by the model and in `tool_use` blocks.
44
+ name: :str_replace_based_edit_tool,
45
+ type: :text_editor_20250429
46
+ )
47
+ end
48
+
49
+ sig do
50
+ override.returns(
51
+ {
52
+ name: Symbol,
53
+ type: Symbol,
54
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral)
55
+ }
56
+ )
57
+ end
58
+ def to_hash
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,72 @@
1
+ # typed: strong
2
+
3
+ module Anthropic
4
+ module Models
5
+ class ToolTextEditor20250728 < Anthropic::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Anthropic::ToolTextEditor20250728, Anthropic::Internal::AnyHash)
9
+ end
10
+
11
+ # Name of the tool.
12
+ #
13
+ # This is how the tool will be called by the model and in `tool_use` blocks.
14
+ sig { returns(Symbol) }
15
+ attr_accessor :name
16
+
17
+ sig { returns(Symbol) }
18
+ attr_accessor :type
19
+
20
+ # Create a cache control breakpoint at this content block.
21
+ sig { returns(T.nilable(Anthropic::CacheControlEphemeral)) }
22
+ attr_reader :cache_control
23
+
24
+ sig do
25
+ params(
26
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral::OrHash)
27
+ ).void
28
+ end
29
+ attr_writer :cache_control
30
+
31
+ # Maximum number of characters to display when viewing a file. If not specified,
32
+ # defaults to displaying the full file.
33
+ sig { returns(T.nilable(Integer)) }
34
+ attr_accessor :max_characters
35
+
36
+ sig do
37
+ params(
38
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral::OrHash),
39
+ max_characters: T.nilable(Integer),
40
+ name: Symbol,
41
+ type: Symbol
42
+ ).returns(T.attached_class)
43
+ end
44
+ def self.new(
45
+ # Create a cache control breakpoint at this content block.
46
+ cache_control: nil,
47
+ # Maximum number of characters to display when viewing a file. If not specified,
48
+ # defaults to displaying the full file.
49
+ max_characters: nil,
50
+ # Name of the tool.
51
+ #
52
+ # This is how the tool will be called by the model and in `tool_use` blocks.
53
+ name: :str_replace_based_edit_tool,
54
+ type: :text_editor_20250728
55
+ )
56
+ end
57
+
58
+ sig do
59
+ override.returns(
60
+ {
61
+ name: Symbol,
62
+ type: Symbol,
63
+ cache_control: T.nilable(Anthropic::CacheControlEphemeral),
64
+ max_characters: T.nilable(Integer)
65
+ }
66
+ )
67
+ end
68
+ def to_hash
69
+ end
70
+ end
71
+ end
72
+ end
@@ -11,6 +11,8 @@ module Anthropic
11
11
  Anthropic::Tool,
12
12
  Anthropic::ToolBash20250124,
13
13
  Anthropic::ToolTextEditor20250124,
14
+ Anthropic::ToolTextEditor20250429,
15
+ Anthropic::ToolTextEditor20250728,
14
16
  Anthropic::WebSearchTool20250305
15
17
  )
16
18
  end
@@ -56,6 +56,12 @@ module Anthropic
56
56
 
57
57
  CitationsDelta = Anthropic::Models::CitationsDelta
58
58
 
59
+ CitationSearchResultLocationParam =
60
+ Anthropic::Models::CitationSearchResultLocationParam
61
+
62
+ CitationsSearchResultLocation =
63
+ Anthropic::Models::CitationsSearchResultLocation
64
+
59
65
  CitationsWebSearchResultLocation =
60
66
  Anthropic::Models::CitationsWebSearchResultLocation
61
67
 
@@ -144,6 +150,8 @@ module Anthropic
144
150
 
145
151
  RedactedThinkingBlockParam = Anthropic::Models::RedactedThinkingBlockParam
146
152
 
153
+ SearchResultBlockParam = Anthropic::Models::SearchResultBlockParam
154
+
147
155
  ServerToolUsage = Anthropic::Models::ServerToolUsage
148
156
 
149
157
  ServerToolUseBlock = Anthropic::Models::ServerToolUseBlock
@@ -194,6 +202,10 @@ module Anthropic
194
202
 
195
203
  ToolTextEditor20250124 = Anthropic::Models::ToolTextEditor20250124
196
204
 
205
+ ToolTextEditor20250429 = Anthropic::Models::ToolTextEditor20250429
206
+
207
+ ToolTextEditor20250728 = Anthropic::Models::ToolTextEditor20250728
208
+
197
209
  ToolUnion = Anthropic::Models::ToolUnion
198
210
 
199
211
  ToolUseBlock = Anthropic::Models::ToolUseBlock