anthropic 1.78.0 → 1.80.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 (687) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +57 -0
  3. data/LICENSE +8 -0
  4. data/README.md +42 -1
  5. data/lib/anthropic/client.rb +32 -0
  6. data/lib/anthropic/helpers/aws/client.rb +12 -2
  7. data/lib/anthropic/helpers/aws_auth.rb +8 -1
  8. data/lib/anthropic/helpers/bedrock/client.rb +19 -2
  9. data/lib/anthropic/helpers/bedrock/mantle_client.rb +19 -2
  10. data/lib/anthropic/helpers/google_cloud/client.rb +12 -2
  11. data/lib/anthropic/helpers/refusal_fallback.rb +52 -21
  12. data/lib/anthropic/helpers/streaming/message_stream.rb +20 -43
  13. data/lib/anthropic/helpers/tools/runner.rb +104 -11
  14. data/lib/anthropic/helpers/tracing/attributes.rb +34 -0
  15. data/lib/anthropic/helpers/tracing/config.rb +16 -0
  16. data/lib/anthropic/helpers/tracing/content.rb +346 -0
  17. data/lib/anthropic/helpers/tracing/recorders.rb +131 -0
  18. data/lib/anthropic/helpers/tracing/response.rb +29 -0
  19. data/lib/anthropic/helpers/tracing/streamed_message.rb +189 -0
  20. data/lib/anthropic/helpers/tracing/tool_spans.rb +138 -0
  21. data/lib/anthropic/helpers/tracing.rb +13 -0
  22. data/lib/anthropic/helpers/vertex/client.rb +19 -2
  23. data/lib/anthropic/internal/tracing.rb +1118 -0
  24. data/lib/anthropic/internal/transport/base_client.rb +174 -10
  25. data/lib/anthropic/internal/transport/pooled_net_requester.rb +6 -0
  26. data/lib/anthropic/models/anthropic_beta.rb +3 -0
  27. data/lib/anthropic/models/beta/agent_archive_params.rb +3 -2
  28. data/lib/anthropic/models/beta/agent_create_params.rb +20 -8
  29. data/lib/anthropic/models/beta/agent_list_params.rb +3 -2
  30. data/lib/anthropic/models/beta/agent_retrieve_params.rb +3 -2
  31. data/lib/anthropic/models/beta/agent_update_params.rb +20 -8
  32. data/lib/anthropic/models/beta/agents/version_list_params.rb +3 -2
  33. data/lib/anthropic/models/beta/beta_dream_input.rb +2 -2
  34. data/lib/anthropic/models/beta/beta_fallbacks_param.rb +6 -2
  35. data/lib/anthropic/models/beta/beta_managed_agents_agent.rb +15 -6
  36. data/lib/anthropic/models/beta/beta_managed_agents_agent_tool_config_params.rb +8 -8
  37. data/lib/anthropic/models/beta/beta_managed_agents_agent_toolset_default_config.rb +2 -2
  38. data/lib/anthropic/models/beta/beta_managed_agents_agent_toolset_default_config_params.rb +2 -2
  39. data/lib/anthropic/models/beta/beta_managed_agents_agent_with_overrides_params.rb +6 -6
  40. data/lib/anthropic/models/beta/beta_managed_agents_aws_role_execution_identity.rb +29 -0
  41. data/lib/anthropic/models/beta/beta_managed_agents_aws_role_execution_identity_params.rb +34 -0
  42. data/lib/anthropic/models/beta/beta_managed_agents_bash_tool_config.rb +2 -2
  43. data/lib/anthropic/models/beta/beta_managed_agents_bash_tool_config_params.rb +2 -2
  44. data/lib/anthropic/models/beta/beta_managed_agents_deployment_initial_event.rb +3 -3
  45. data/lib/anthropic/models/beta/beta_managed_agents_deployment_initial_event_params.rb +3 -3
  46. data/lib/anthropic/models/beta/beta_managed_agents_deployment_paused_reason.rb +2 -2
  47. data/lib/anthropic/models/beta/beta_managed_agents_deployment_paused_reason_error.rb +38 -14
  48. data/lib/anthropic/models/beta/beta_managed_agents_deployment_run.rb +16 -16
  49. data/lib/anthropic/models/beta/beta_managed_agents_deployment_user_define_outcome_event.rb +2 -2
  50. data/lib/anthropic/models/beta/beta_managed_agents_deployment_user_message_event.rb +4 -4
  51. data/lib/anthropic/models/beta/beta_managed_agents_edit_tool_config.rb +2 -2
  52. data/lib/anthropic/models/beta/beta_managed_agents_edit_tool_config_params.rb +2 -2
  53. data/lib/anthropic/models/beta/beta_managed_agents_execution_identity.rb +57 -0
  54. data/lib/anthropic/models/beta/beta_managed_agents_execution_identity_params.rb +62 -0
  55. data/lib/anthropic/models/beta/beta_managed_agents_github_repository_resource_config.rb +2 -2
  56. data/lib/anthropic/models/beta/beta_managed_agents_github_repository_resource_params.rb +2 -2
  57. data/lib/anthropic/models/beta/beta_managed_agents_glob_tool_config.rb +2 -2
  58. data/lib/anthropic/models/beta/beta_managed_agents_glob_tool_config_params.rb +2 -2
  59. data/lib/anthropic/models/beta/beta_managed_agents_grep_tool_config.rb +2 -2
  60. data/lib/anthropic/models/beta/beta_managed_agents_grep_tool_config_params.rb +2 -2
  61. data/lib/anthropic/models/beta/beta_managed_agents_mcp_tool_config.rb +2 -2
  62. data/lib/anthropic/models/beta/beta_managed_agents_mcp_tool_config_params.rb +2 -2
  63. data/lib/anthropic/models/beta/beta_managed_agents_mcp_toolset_default_config.rb +2 -2
  64. data/lib/anthropic/models/beta/beta_managed_agents_mcp_toolset_default_config_params.rb +2 -2
  65. data/lib/anthropic/models/beta/beta_managed_agents_model.rb +0 -2
  66. data/lib/anthropic/models/beta/beta_managed_agents_model_config.rb +5 -5
  67. data/lib/anthropic/models/beta/beta_managed_agents_multiagent.rb +1 -1
  68. data/lib/anthropic/models/beta/beta_managed_agents_multiagent_coordinator.rb +2 -2
  69. data/lib/anthropic/models/beta/beta_managed_agents_multiagent_params.rb +1 -1
  70. data/lib/anthropic/models/beta/beta_managed_agents_read_tool_config.rb +2 -2
  71. data/lib/anthropic/models/beta/beta_managed_agents_read_tool_config_params.rb +2 -2
  72. data/lib/anthropic/models/beta/beta_managed_agents_service_account_execution_identity.rb +21 -0
  73. data/lib/anthropic/models/beta/beta_managed_agents_service_account_execution_identity_params.rb +23 -0
  74. data/lib/anthropic/models/beta/beta_managed_agents_session_agent.rb +16 -6
  75. data/lib/anthropic/models/beta/beta_managed_agents_session_agent_update.rb +3 -3
  76. data/lib/anthropic/models/beta/beta_managed_agents_session_multiagent.rb +1 -1
  77. data/lib/anthropic/models/beta/beta_managed_agents_session_multiagent_coordinator.rb +8 -2
  78. data/lib/anthropic/models/beta/beta_managed_agents_session_resource_config.rb +3 -3
  79. data/lib/anthropic/models/beta/beta_managed_agents_session_thread_agent.rb +19 -6
  80. data/lib/anthropic/models/beta/beta_managed_agents_skill_params.rb +2 -2
  81. data/lib/anthropic/models/beta/beta_managed_agents_start_event_preview.rb +2 -2
  82. data/lib/anthropic/models/beta/beta_managed_agents_trigger_context.rb +2 -2
  83. data/lib/anthropic/models/beta/beta_managed_agents_user_tool_result_event.rb +4 -4
  84. data/lib/anthropic/models/beta/beta_managed_agents_web_fetch_tool_config.rb +2 -2
  85. data/lib/anthropic/models/beta/beta_managed_agents_web_fetch_tool_config_params.rb +2 -2
  86. data/lib/anthropic/models/beta/beta_managed_agents_web_search_tool_config.rb +2 -2
  87. data/lib/anthropic/models/beta/beta_managed_agents_web_search_tool_config_params.rb +2 -2
  88. data/lib/anthropic/models/beta/beta_managed_agents_write_tool_config.rb +2 -2
  89. data/lib/anthropic/models/beta/beta_managed_agents_write_tool_config_params.rb +2 -2
  90. data/lib/anthropic/models/beta/beta_message_delta_usage.rb +0 -1
  91. data/lib/anthropic/models/beta/beta_output_behavior.rb +2 -2
  92. data/lib/anthropic/models/beta/beta_thinking_config_adaptive.rb +6 -4
  93. data/lib/anthropic/models/beta/beta_thinking_config_enabled.rb +6 -4
  94. data/lib/anthropic/models/beta/beta_thinking_config_param.rb +8 -7
  95. data/lib/anthropic/models/beta/beta_thinking_types.rb +17 -2
  96. data/lib/anthropic/models/beta/beta_usage.rb +0 -1
  97. data/lib/anthropic/models/beta/deployment_archive_params.rb +3 -2
  98. data/lib/anthropic/models/beta/deployment_create_params.rb +6 -5
  99. data/lib/anthropic/models/beta/deployment_list_params.rb +3 -2
  100. data/lib/anthropic/models/beta/deployment_pause_params.rb +3 -2
  101. data/lib/anthropic/models/beta/deployment_retrieve_params.rb +3 -2
  102. data/lib/anthropic/models/beta/deployment_run_list_params.rb +3 -2
  103. data/lib/anthropic/models/beta/deployment_run_params.rb +3 -2
  104. data/lib/anthropic/models/beta/deployment_run_retrieve_params.rb +3 -2
  105. data/lib/anthropic/models/beta/deployment_unpause_params.rb +3 -2
  106. data/lib/anthropic/models/beta/deployment_update_params.rb +6 -5
  107. data/lib/anthropic/models/beta/dream_archive_params.rb +3 -2
  108. data/lib/anthropic/models/beta/dream_cancel_params.rb +3 -2
  109. data/lib/anthropic/models/beta/dream_create_params.rb +3 -2
  110. data/lib/anthropic/models/beta/dream_list_params.rb +3 -2
  111. data/lib/anthropic/models/beta/dream_retrieve_params.rb +3 -2
  112. data/lib/anthropic/models/beta/memory_store_archive_params.rb +3 -2
  113. data/lib/anthropic/models/beta/memory_store_create_params.rb +3 -2
  114. data/lib/anthropic/models/beta/memory_store_delete_params.rb +3 -2
  115. data/lib/anthropic/models/beta/memory_store_list_params.rb +3 -2
  116. data/lib/anthropic/models/beta/memory_store_retrieve_params.rb +3 -2
  117. data/lib/anthropic/models/beta/memory_store_update_params.rb +3 -2
  118. data/lib/anthropic/models/beta/memory_stores/beta_managed_agents_actor.rb +3 -3
  119. data/lib/anthropic/models/beta/memory_stores/beta_managed_agents_error.rb +6 -3
  120. data/lib/anthropic/models/beta/memory_stores/beta_managed_agents_memory_list_item.rb +2 -2
  121. data/lib/anthropic/models/beta/memory_stores/memory_create_params.rb +3 -2
  122. data/lib/anthropic/models/beta/memory_stores/memory_delete_params.rb +3 -2
  123. data/lib/anthropic/models/beta/memory_stores/memory_list_params.rb +3 -2
  124. data/lib/anthropic/models/beta/memory_stores/memory_retrieve_params.rb +3 -2
  125. data/lib/anthropic/models/beta/memory_stores/memory_update_params.rb +3 -2
  126. data/lib/anthropic/models/beta/memory_stores/memory_version_list_params.rb +3 -2
  127. data/lib/anthropic/models/beta/memory_stores/memory_version_redact_params.rb +3 -2
  128. data/lib/anthropic/models/beta/memory_stores/memory_version_retrieve_params.rb +3 -2
  129. data/lib/anthropic/models/beta/message_count_tokens_params.rb +25 -10
  130. data/lib/anthropic/models/beta/message_create_params.rb +31 -12
  131. data/lib/anthropic/models/beta/messages/batch_create_params.rb +31 -12
  132. data/lib/anthropic/models/beta/organization/beta_analytics_cost_bucketed_result.rb +3 -3
  133. data/lib/anthropic/models/beta/organization/beta_analytics_cost_users_item.rb +3 -3
  134. data/lib/anthropic/models/beta/organization/beta_analytics_usage_bucketed_result.rb +3 -3
  135. data/lib/anthropic/models/beta/organization/beta_analytics_usage_users_item.rb +3 -3
  136. data/lib/anthropic/models/beta/organization/beta_deleted_telemetry_destination.rb +30 -0
  137. data/lib/anthropic/models/beta/organization/beta_spend_limit.rb +16 -6
  138. data/lib/anthropic/models/beta/organization/beta_spend_limit_usage_tier_scope.rb +25 -0
  139. data/lib/anthropic/models/beta/organization/beta_spend_summary.rb +28 -8
  140. data/lib/anthropic/models/beta/organization/beta_telemetry_destination.rb +118 -0
  141. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_content_mode.rb +29 -0
  142. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_delivery_health.rb +69 -0
  143. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason.rb +73 -0
  144. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_caller.rb +21 -0
  145. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_invalid_address.rb +29 -0
  146. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_redirect.rb +23 -0
  147. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_sustained_failure.rb +25 -0
  148. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_state.rb +71 -0
  149. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_state_disabled.rb +36 -0
  150. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_state_disabled_params.rb +24 -0
  151. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_state_enabled.rb +21 -0
  152. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_state_enabled_params.rb +23 -0
  153. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_state_params.rb +61 -0
  154. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_test_failure.rb +37 -0
  155. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_test_response.rb +35 -0
  156. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_test_result.rb +61 -0
  157. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_test_success.rb +21 -0
  158. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_traces.rb +61 -0
  159. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_traces_params.rb +71 -0
  160. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces.rb +69 -0
  161. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_all.rb +23 -0
  162. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_all_params.rb +23 -0
  163. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_exclude.rb +22 -0
  164. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_exclude_params.rb +49 -0
  165. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_include.rb +21 -0
  166. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_include_params.rb +49 -0
  167. data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_params.rb +70 -0
  168. data/lib/anthropic/models/beta/organization/invite_create_params.rb +4 -2
  169. data/lib/anthropic/models/beta/organization/spend_limit_list_params.rb +2 -5
  170. data/lib/anthropic/models/beta/organization/telemetry_destination_create_params.rb +94 -0
  171. data/lib/anthropic/models/beta/organization/telemetry_destination_delete_params.rb +39 -0
  172. data/lib/anthropic/models/beta/organization/telemetry_destination_list_params.rb +63 -0
  173. data/lib/anthropic/models/beta/organization/telemetry_destination_retrieve_params.rb +39 -0
  174. data/lib/anthropic/models/beta/organization/telemetry_destination_test_params.rb +39 -0
  175. data/lib/anthropic/models/beta/organization/telemetry_destination_update_params.rb +121 -0
  176. data/lib/anthropic/models/beta/organization/telemetry_destinations/beta_deleted_telemetry_destination_workspace.rb +40 -0
  177. data/lib/anthropic/models/beta/organization/telemetry_destinations/beta_telemetry_destination_workspace.rb +52 -0
  178. data/lib/anthropic/models/beta/organization/telemetry_destinations/workspace_add_params.rb +49 -0
  179. data/lib/anthropic/models/beta/organization/telemetry_destinations/workspace_list_params.rb +58 -0
  180. data/lib/anthropic/models/beta/organization/telemetry_destinations/workspace_remove_params.rb +49 -0
  181. data/lib/anthropic/models/beta/organization/user_update_params.rb +4 -2
  182. data/lib/anthropic/models/beta/session_archive_params.rb +3 -2
  183. data/lib/anthropic/models/beta/session_create_params.rb +8 -7
  184. data/lib/anthropic/models/beta/session_delete_params.rb +3 -2
  185. data/lib/anthropic/models/beta/session_list_params.rb +3 -2
  186. data/lib/anthropic/models/beta/session_retrieve_params.rb +3 -2
  187. data/lib/anthropic/models/beta/session_update_params.rb +3 -2
  188. data/lib/anthropic/models/beta/sessions/beta_managed_agents_agent_custom_tool_use_event.rb +3 -1
  189. data/lib/anthropic/models/beta/sessions/beta_managed_agents_agent_mcp_tool_result_event.rb +4 -4
  190. data/lib/anthropic/models/beta/sessions/beta_managed_agents_agent_message_event.rb +2 -2
  191. data/lib/anthropic/models/beta/sessions/beta_managed_agents_agent_thread_message_received_event.rb +4 -4
  192. data/lib/anthropic/models/beta/sessions/beta_managed_agents_agent_thread_message_sent_event.rb +4 -4
  193. data/lib/anthropic/models/beta/sessions/beta_managed_agents_agent_tool_result_event.rb +4 -4
  194. data/lib/anthropic/models/beta/sessions/beta_managed_agents_billing_error.rb +3 -3
  195. data/lib/anthropic/models/beta/sessions/beta_managed_agents_credential_host_unreachable_error.rb +3 -3
  196. data/lib/anthropic/models/beta/sessions/beta_managed_agents_document_block.rb +4 -4
  197. data/lib/anthropic/models/beta/sessions/beta_managed_agents_event_params.rb +14 -8
  198. data/lib/anthropic/models/beta/sessions/beta_managed_agents_github_repository_resource.rb +2 -2
  199. data/lib/anthropic/models/beta/sessions/beta_managed_agents_image_block.rb +3 -3
  200. data/lib/anthropic/models/beta/sessions/beta_managed_agents_inline_agent.rb +14 -6
  201. data/lib/anthropic/models/beta/sessions/beta_managed_agents_mcp_authentication_failed_error.rb +3 -3
  202. data/lib/anthropic/models/beta/sessions/beta_managed_agents_mcp_connection_failed_error.rb +3 -3
  203. data/lib/anthropic/models/beta/sessions/beta_managed_agents_model_overloaded_error.rb +3 -3
  204. data/lib/anthropic/models/beta/sessions/beta_managed_agents_model_rate_limited_error.rb +3 -3
  205. data/lib/anthropic/models/beta/sessions/beta_managed_agents_model_request_failed_error.rb +3 -3
  206. data/lib/anthropic/models/beta/sessions/beta_managed_agents_repository_authentication_error.rb +3 -3
  207. data/lib/anthropic/models/beta/sessions/beta_managed_agents_repository_checkout_error.rb +3 -3
  208. data/lib/anthropic/models/beta/sessions/beta_managed_agents_repository_clone_error.rb +3 -3
  209. data/lib/anthropic/models/beta/sessions/beta_managed_agents_repository_forbidden_error.rb +3 -3
  210. data/lib/anthropic/models/beta/sessions/beta_managed_agents_repository_not_found_error.rb +3 -3
  211. data/lib/anthropic/models/beta/sessions/beta_managed_agents_send_session_events.rb +8 -8
  212. data/lib/anthropic/models/beta/sessions/beta_managed_agents_session_error_event.rb +14 -8
  213. data/lib/anthropic/models/beta/sessions/beta_managed_agents_session_event.rb +64 -37
  214. data/lib/anthropic/models/beta/sessions/beta_managed_agents_session_resource.rb +3 -3
  215. data/lib/anthropic/models/beta/sessions/beta_managed_agents_session_status_idle_event.rb +4 -4
  216. data/lib/anthropic/models/beta/sessions/beta_managed_agents_session_thread.rb +8 -2
  217. data/lib/anthropic/models/beta/sessions/beta_managed_agents_session_thread_status_idle_event.rb +4 -4
  218. data/lib/anthropic/models/beta/sessions/beta_managed_agents_stream_session_events.rb +66 -39
  219. data/lib/anthropic/models/beta/sessions/beta_managed_agents_stream_session_thread_events.rb +66 -39
  220. data/lib/anthropic/models/beta/sessions/beta_managed_agents_unknown_error.rb +3 -3
  221. data/lib/anthropic/models/beta/sessions/beta_managed_agents_user_custom_tool_result_event.rb +7 -7
  222. data/lib/anthropic/models/beta/sessions/beta_managed_agents_user_custom_tool_result_event_params.rb +7 -7
  223. data/lib/anthropic/models/beta/sessions/beta_managed_agents_user_define_outcome_event.rb +2 -2
  224. data/lib/anthropic/models/beta/sessions/beta_managed_agents_user_define_outcome_event_params.rb +2 -2
  225. data/lib/anthropic/models/beta/sessions/beta_managed_agents_user_message_event.rb +4 -4
  226. data/lib/anthropic/models/beta/sessions/beta_managed_agents_user_message_event_params.rb +4 -4
  227. data/lib/anthropic/models/beta/sessions/beta_managed_agents_user_tool_result_event_params.rb +4 -4
  228. data/lib/anthropic/models/beta/sessions/event_list_params.rb +3 -2
  229. data/lib/anthropic/models/beta/sessions/event_send_params.rb +3 -2
  230. data/lib/anthropic/models/beta/sessions/event_stream_params.rb +3 -2
  231. data/lib/anthropic/models/beta/sessions/resource_add_params.rb +3 -2
  232. data/lib/anthropic/models/beta/sessions/resource_delete_params.rb +3 -2
  233. data/lib/anthropic/models/beta/sessions/resource_list_params.rb +3 -2
  234. data/lib/anthropic/models/beta/sessions/resource_retrieve_params.rb +3 -2
  235. data/lib/anthropic/models/beta/sessions/resource_retrieve_response.rb +3 -3
  236. data/lib/anthropic/models/beta/sessions/resource_update_params.rb +3 -2
  237. data/lib/anthropic/models/beta/sessions/resource_update_response.rb +3 -3
  238. data/lib/anthropic/models/beta/sessions/thread_archive_params.rb +3 -2
  239. data/lib/anthropic/models/beta/sessions/thread_list_params.rb +3 -2
  240. data/lib/anthropic/models/beta/sessions/thread_retrieve_params.rb +3 -2
  241. data/lib/anthropic/models/beta/sessions/threads/event_list_params.rb +3 -2
  242. data/lib/anthropic/models/beta/sessions/threads/event_stream_params.rb +3 -2
  243. data/lib/anthropic/models/beta/tunnel_archive_params.rb +3 -2
  244. data/lib/anthropic/models/beta/tunnel_create_params.rb +3 -2
  245. data/lib/anthropic/models/beta/tunnel_list_params.rb +3 -2
  246. data/lib/anthropic/models/beta/tunnel_retrieve_params.rb +3 -2
  247. data/lib/anthropic/models/beta/tunnel_reveal_token_params.rb +3 -2
  248. data/lib/anthropic/models/beta/tunnel_rotate_token_params.rb +3 -2
  249. data/lib/anthropic/models/beta/tunnels/certificate_archive_params.rb +3 -2
  250. data/lib/anthropic/models/beta/tunnels/certificate_create_params.rb +3 -2
  251. data/lib/anthropic/models/beta/tunnels/certificate_list_params.rb +3 -2
  252. data/lib/anthropic/models/beta/tunnels/certificate_retrieve_params.rb +3 -2
  253. data/lib/anthropic/models/beta/user_profile_create_enrollment_url_params.rb +3 -2
  254. data/lib/anthropic/models/beta/user_profile_create_params.rb +3 -2
  255. data/lib/anthropic/models/beta/user_profile_list_params.rb +3 -2
  256. data/lib/anthropic/models/beta/user_profile_retrieve_params.rb +3 -2
  257. data/lib/anthropic/models/beta/user_profile_update_params.rb +3 -2
  258. data/lib/anthropic/models/beta/vault_archive_params.rb +3 -2
  259. data/lib/anthropic/models/beta/vault_create_params.rb +3 -2
  260. data/lib/anthropic/models/beta/vault_delete_params.rb +3 -2
  261. data/lib/anthropic/models/beta/vault_list_params.rb +3 -2
  262. data/lib/anthropic/models/beta/vault_retrieve_params.rb +3 -2
  263. data/lib/anthropic/models/beta/vault_update_params.rb +3 -2
  264. data/lib/anthropic/models/beta/vaults/beta_managed_agents_credential.rb +6 -3
  265. data/lib/anthropic/models/beta/vaults/beta_managed_agents_credential_networking_params.rb +7 -2
  266. data/lib/anthropic/models/beta/vaults/beta_managed_agents_environment_variable_auth_response.rb +7 -2
  267. data/lib/anthropic/models/beta/vaults/beta_managed_agents_mcp_oauth_refresh_params.rb +3 -3
  268. data/lib/anthropic/models/beta/vaults/beta_managed_agents_mcp_oauth_refresh_response.rb +12 -3
  269. data/lib/anthropic/models/beta/vaults/beta_managed_agents_mcp_oauth_refresh_update_params.rb +8 -2
  270. data/lib/anthropic/models/beta/vaults/credential_archive_params.rb +3 -2
  271. data/lib/anthropic/models/beta/vaults/credential_create_params.rb +9 -5
  272. data/lib/anthropic/models/beta/vaults/credential_delete_params.rb +3 -2
  273. data/lib/anthropic/models/beta/vaults/credential_list_params.rb +3 -2
  274. data/lib/anthropic/models/beta/vaults/credential_mcp_oauth_validate_params.rb +3 -2
  275. data/lib/anthropic/models/beta/vaults/credential_retrieve_params.rb +3 -2
  276. data/lib/anthropic/models/beta/vaults/credential_update_params.rb +9 -5
  277. data/lib/anthropic/models/message_count_tokens_params.rb +47 -11
  278. data/lib/anthropic/models/message_create_params.rb +47 -11
  279. data/lib/anthropic/models/messages/batch_create_params.rb +53 -11
  280. data/lib/anthropic/models/model.rb +0 -2
  281. data/lib/anthropic/models/organization/invite_create_params.rb +4 -2
  282. data/lib/anthropic/models/organization/user_update_params.rb +4 -2
  283. data/lib/anthropic/models/thinking_config_adaptive.rb +6 -4
  284. data/lib/anthropic/models/thinking_config_enabled.rb +6 -4
  285. data/lib/anthropic/models/thinking_config_param.rb +8 -7
  286. data/lib/anthropic/models/thinking_types.rb +17 -2
  287. data/lib/anthropic/models/usage.rb +22 -1
  288. data/lib/anthropic/request_options.rb +7 -0
  289. data/lib/anthropic/resources/beta/agents/versions.rb +5 -1
  290. data/lib/anthropic/resources/beta/agents.rb +27 -7
  291. data/lib/anthropic/resources/beta/deployment_runs.rb +18 -2
  292. data/lib/anthropic/resources/beta/deployments.rb +32 -8
  293. data/lib/anthropic/resources/beta/dreams.rb +20 -5
  294. data/lib/anthropic/resources/beta/environments/work.rb +42 -0
  295. data/lib/anthropic/resources/beta/environments.rb +18 -0
  296. data/lib/anthropic/resources/beta/files.rb +15 -0
  297. data/lib/anthropic/resources/beta/memory_stores/memories.rb +36 -5
  298. data/lib/anthropic/resources/beta/memory_stores/memory_versions.rb +31 -3
  299. data/lib/anthropic/resources/beta/memory_stores.rb +24 -6
  300. data/lib/anthropic/resources/beta/messages/batches.rb +19 -1
  301. data/lib/anthropic/resources/beta/messages.rb +12 -4
  302. data/lib/anthropic/resources/beta/models.rb +6 -0
  303. data/lib/anthropic/resources/beta/organization/analytics/apps/chat/projects.rb +3 -0
  304. data/lib/anthropic/resources/beta/organization/analytics/artifacts.rb +3 -0
  305. data/lib/anthropic/resources/beta/organization/analytics/connectors.rb +4 -0
  306. data/lib/anthropic/resources/beta/organization/analytics/cost_report.rb +20 -0
  307. data/lib/anthropic/resources/beta/organization/analytics/plugins.rb +4 -0
  308. data/lib/anthropic/resources/beta/organization/analytics/skills.rb +4 -0
  309. data/lib/anthropic/resources/beta/organization/analytics/summaries.rb +3 -0
  310. data/lib/anthropic/resources/beta/organization/analytics/usage_report.rb +20 -0
  311. data/lib/anthropic/resources/beta/organization/analytics/user_cost_report.rb +23 -0
  312. data/lib/anthropic/resources/beta/organization/analytics/user_usage_report.rb +23 -0
  313. data/lib/anthropic/resources/beta/organization/analytics/users.rb +4 -0
  314. data/lib/anthropic/resources/beta/organization/api_keys.rb +9 -0
  315. data/lib/anthropic/resources/beta/organization/compliance_settings.rb +4 -0
  316. data/lib/anthropic/resources/beta/organization/external_keys.rb +18 -0
  317. data/lib/anthropic/resources/beta/organization/federation/issuers.rb +15 -0
  318. data/lib/anthropic/resources/beta/organization/federation/rules/workspaces.rb +14 -0
  319. data/lib/anthropic/resources/beta/organization/federation/rules.rb +15 -0
  320. data/lib/anthropic/resources/beta/organization/invites.rb +12 -0
  321. data/lib/anthropic/resources/beta/organization/plugin_marketplaces.rb +14 -0
  322. data/lib/anthropic/resources/beta/organization/plugins/installation_settings.rb +16 -0
  323. data/lib/anthropic/resources/beta/organization/plugins/shares.rb +4 -0
  324. data/lib/anthropic/resources/beta/organization/plugins/versions.rb +22 -0
  325. data/lib/anthropic/resources/beta/organization/plugins.rb +27 -0
  326. data/lib/anthropic/resources/beta/organization/rate_limits.rb +3 -0
  327. data/lib/anthropic/resources/beta/organization/rbac_groups/members.rb +14 -0
  328. data/lib/anthropic/resources/beta/organization/rbac_groups.rb +15 -0
  329. data/lib/anthropic/resources/beta/organization/rbac_roles/permissions.rb +4 -0
  330. data/lib/anthropic/resources/beta/organization/rbac_roles.rb +6 -0
  331. data/lib/anthropic/resources/beta/organization/service_accounts/workspaces.rb +14 -0
  332. data/lib/anthropic/resources/beta/organization/service_accounts.rb +15 -0
  333. data/lib/anthropic/resources/beta/organization/spend_limits/effective.rb +5 -2
  334. data/lib/anthropic/resources/beta/organization/spend_limits/increase_requests.rb +12 -0
  335. data/lib/anthropic/resources/beta/organization/spend_limits.rb +20 -9
  336. data/lib/anthropic/resources/beta/organization/telemetry_destinations/workspaces.rb +181 -0
  337. data/lib/anthropic/resources/beta/organization/telemetry_destinations.rb +286 -0
  338. data/lib/anthropic/resources/beta/organization/users.rb +12 -0
  339. data/lib/anthropic/resources/beta/organization/workspaces/members.rb +26 -0
  340. data/lib/anthropic/resources/beta/organization/workspaces/rate_limits.rb +4 -0
  341. data/lib/anthropic/resources/beta/organization/workspaces/service_accounts.rb +26 -0
  342. data/lib/anthropic/resources/beta/organization/workspaces.rb +15 -0
  343. data/lib/anthropic/resources/beta/organization.rb +7 -0
  344. data/lib/anthropic/resources/beta/sessions/events.rb +24 -4
  345. data/lib/anthropic/resources/beta/sessions/resources.rb +31 -5
  346. data/lib/anthropic/resources/beta/sessions/threads/events.rb +17 -3
  347. data/lib/anthropic/resources/beta/sessions/threads.rb +19 -3
  348. data/lib/anthropic/resources/beta/sessions.rb +38 -6
  349. data/lib/anthropic/resources/beta/skills/versions.rb +17 -0
  350. data/lib/anthropic/resources/beta/skills.rb +12 -0
  351. data/lib/anthropic/resources/beta/tunnels/certificates.rb +24 -4
  352. data/lib/anthropic/resources/beta/tunnels.rb +24 -6
  353. data/lib/anthropic/resources/beta/user_profiles.rb +20 -5
  354. data/lib/anthropic/resources/beta/vaults/credentials.rb +45 -7
  355. data/lib/anthropic/resources/beta/vaults.rb +24 -6
  356. data/lib/anthropic/resources/completions.rb +5 -1
  357. data/lib/anthropic/resources/files.rb +15 -0
  358. data/lib/anthropic/resources/messages/batches.rb +19 -1
  359. data/lib/anthropic/resources/messages.rb +24 -8
  360. data/lib/anthropic/resources/models.rb +6 -0
  361. data/lib/anthropic/resources/organization/api_keys.rb +9 -0
  362. data/lib/anthropic/resources/organization/compliance_settings.rb +4 -0
  363. data/lib/anthropic/resources/organization/external_keys.rb +18 -0
  364. data/lib/anthropic/resources/organization/federation/issuers.rb +15 -0
  365. data/lib/anthropic/resources/organization/federation/rules/workspaces.rb +14 -0
  366. data/lib/anthropic/resources/organization/federation/rules.rb +15 -0
  367. data/lib/anthropic/resources/organization/invites.rb +12 -0
  368. data/lib/anthropic/resources/organization/rate_limits.rb +3 -0
  369. data/lib/anthropic/resources/organization/service_accounts/workspaces.rb +14 -0
  370. data/lib/anthropic/resources/organization/service_accounts.rb +15 -0
  371. data/lib/anthropic/resources/organization/users.rb +12 -0
  372. data/lib/anthropic/resources/organization/workspaces/members.rb +26 -0
  373. data/lib/anthropic/resources/organization/workspaces/rate_limits.rb +4 -0
  374. data/lib/anthropic/resources/organization/workspaces/service_accounts.rb +26 -0
  375. data/lib/anthropic/resources/organization/workspaces.rb +15 -0
  376. data/lib/anthropic/resources/organization.rb +2 -0
  377. data/lib/anthropic/resources/skills/versions.rb +14 -0
  378. data/lib/anthropic/resources/skills.rb +12 -0
  379. data/lib/anthropic/version.rb +1 -1
  380. data/lib/anthropic.rb +59 -0
  381. data/rbi/anthropic/client.rbi +28 -0
  382. data/rbi/anthropic/helpers/aws/client.rbi +6 -2
  383. data/rbi/anthropic/helpers/bedrock/client.rbi +6 -2
  384. data/rbi/anthropic/helpers/bedrock/mantle_client.rbi +6 -2
  385. data/rbi/anthropic/helpers/google_cloud/client.rbi +6 -2
  386. data/rbi/anthropic/helpers/streaming/message_stream.rbi +4 -1
  387. data/rbi/anthropic/helpers/vertex/client.rbi +6 -2
  388. data/rbi/anthropic/internal/tracing.rbi +847 -0
  389. data/rbi/anthropic/internal/transport/base_client.rbi +93 -5
  390. data/rbi/anthropic/internal/type/base_stream.rbi +2 -0
  391. data/rbi/anthropic/models/anthropic_beta.rbi +5 -0
  392. data/rbi/anthropic/models/beta/agent_archive_params.rbi +4 -2
  393. data/rbi/anthropic/models/beta/agent_create_params.rbi +38 -5
  394. data/rbi/anthropic/models/beta/agent_list_params.rbi +4 -2
  395. data/rbi/anthropic/models/beta/agent_retrieve_params.rbi +4 -2
  396. data/rbi/anthropic/models/beta/agent_update_params.rbi +38 -5
  397. data/rbi/anthropic/models/beta/agents/version_list_params.rbi +4 -2
  398. data/rbi/anthropic/models/beta/beta_fallback_param.rbi +3 -2
  399. data/rbi/anthropic/models/beta/beta_fallbacks_param.rbi +6 -2
  400. data/rbi/anthropic/models/beta/beta_managed_agents_agent.rbi +17 -0
  401. data/rbi/anthropic/models/beta/beta_managed_agents_agent_with_overrides_params.rbi +3 -3
  402. data/rbi/anthropic/models/beta/beta_managed_agents_aws_role_execution_identity.rbi +40 -0
  403. data/rbi/anthropic/models/beta/beta_managed_agents_aws_role_execution_identity_params.rbi +42 -0
  404. data/rbi/anthropic/models/beta/beta_managed_agents_execution_identity.rbi +85 -0
  405. data/rbi/anthropic/models/beta/beta_managed_agents_execution_identity_params.rbi +87 -0
  406. data/rbi/anthropic/models/beta/beta_managed_agents_model.rbi +0 -2
  407. data/rbi/anthropic/models/beta/beta_managed_agents_service_account_execution_identity.rbi +32 -0
  408. data/rbi/anthropic/models/beta/beta_managed_agents_service_account_execution_identity_params.rbi +33 -0
  409. data/rbi/anthropic/models/beta/beta_managed_agents_session_agent.rbi +19 -0
  410. data/rbi/anthropic/models/beta/beta_managed_agents_session_multiagent_coordinator.rbi +9 -0
  411. data/rbi/anthropic/models/beta/beta_managed_agents_session_thread_agent.rbi +19 -0
  412. data/rbi/anthropic/models/beta/beta_message_delta_usage.rbi +0 -2
  413. data/rbi/anthropic/models/beta/beta_thinking_config_adaptive.rbi +9 -6
  414. data/rbi/anthropic/models/beta/beta_thinking_config_enabled.rbi +9 -6
  415. data/rbi/anthropic/models/beta/beta_thinking_config_param.rbi +11 -9
  416. data/rbi/anthropic/models/beta/beta_thinking_types.rbi +31 -2
  417. data/rbi/anthropic/models/beta/beta_usage.rbi +0 -2
  418. data/rbi/anthropic/models/beta/deployment_archive_params.rbi +4 -2
  419. data/rbi/anthropic/models/beta/deployment_create_params.rbi +4 -2
  420. data/rbi/anthropic/models/beta/deployment_list_params.rbi +4 -2
  421. data/rbi/anthropic/models/beta/deployment_pause_params.rbi +4 -2
  422. data/rbi/anthropic/models/beta/deployment_retrieve_params.rbi +4 -2
  423. data/rbi/anthropic/models/beta/deployment_run_list_params.rbi +4 -2
  424. data/rbi/anthropic/models/beta/deployment_run_params.rbi +4 -2
  425. data/rbi/anthropic/models/beta/deployment_run_retrieve_params.rbi +4 -2
  426. data/rbi/anthropic/models/beta/deployment_unpause_params.rbi +4 -2
  427. data/rbi/anthropic/models/beta/deployment_update_params.rbi +4 -2
  428. data/rbi/anthropic/models/beta/dream_archive_params.rbi +4 -2
  429. data/rbi/anthropic/models/beta/dream_cancel_params.rbi +4 -2
  430. data/rbi/anthropic/models/beta/dream_create_params.rbi +4 -2
  431. data/rbi/anthropic/models/beta/dream_list_params.rbi +4 -2
  432. data/rbi/anthropic/models/beta/dream_retrieve_params.rbi +4 -2
  433. data/rbi/anthropic/models/beta/memory_store_archive_params.rbi +4 -2
  434. data/rbi/anthropic/models/beta/memory_store_create_params.rbi +4 -2
  435. data/rbi/anthropic/models/beta/memory_store_delete_params.rbi +4 -2
  436. data/rbi/anthropic/models/beta/memory_store_list_params.rbi +4 -2
  437. data/rbi/anthropic/models/beta/memory_store_retrieve_params.rbi +4 -2
  438. data/rbi/anthropic/models/beta/memory_store_update_params.rbi +4 -2
  439. data/rbi/anthropic/models/beta/memory_stores/memory_create_params.rbi +4 -2
  440. data/rbi/anthropic/models/beta/memory_stores/memory_delete_params.rbi +4 -2
  441. data/rbi/anthropic/models/beta/memory_stores/memory_list_params.rbi +4 -2
  442. data/rbi/anthropic/models/beta/memory_stores/memory_retrieve_params.rbi +4 -2
  443. data/rbi/anthropic/models/beta/memory_stores/memory_update_params.rbi +4 -2
  444. data/rbi/anthropic/models/beta/memory_stores/memory_version_list_params.rbi +4 -2
  445. data/rbi/anthropic/models/beta/memory_stores/memory_version_redact_params.rbi +4 -2
  446. data/rbi/anthropic/models/beta/memory_stores/memory_version_retrieve_params.rbi +4 -2
  447. data/rbi/anthropic/models/beta/message_count_tokens_params.rbi +43 -18
  448. data/rbi/anthropic/models/beta/message_create_params.rbi +55 -22
  449. data/rbi/anthropic/models/beta/messages/batch_create_params.rbi +55 -22
  450. data/rbi/anthropic/models/beta/organization/beta_analytics_cost_bucketed_result.rbi +6 -6
  451. data/rbi/anthropic/models/beta/organization/beta_analytics_cost_users_item.rbi +6 -6
  452. data/rbi/anthropic/models/beta/organization/beta_analytics_usage_bucketed_result.rbi +6 -6
  453. data/rbi/anthropic/models/beta/organization/beta_analytics_usage_users_item.rbi +6 -6
  454. data/rbi/anthropic/models/beta/organization/beta_deleted_telemetry_destination.rbi +39 -0
  455. data/rbi/anthropic/models/beta/organization/beta_spend_limit.rbi +13 -6
  456. data/rbi/anthropic/models/beta/organization/beta_spend_limit_usage_tier_scope.rbi +38 -0
  457. data/rbi/anthropic/models/beta/organization/beta_spend_summary.rbi +18 -4
  458. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination.rbi +191 -0
  459. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_content_mode.rbi +53 -0
  460. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_delivery_health.rbi +106 -0
  461. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason.rbi +95 -0
  462. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_caller.rbi +31 -0
  463. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_invalid_address.rbi +39 -0
  464. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_redirect.rbi +33 -0
  465. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_sustained_failure.rbi +35 -0
  466. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_state.rbi +99 -0
  467. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_state_disabled.rbi +66 -0
  468. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_state_disabled_params.rbi +34 -0
  469. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_state_enabled.rbi +31 -0
  470. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_state_enabled_params.rbi +33 -0
  471. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_state_params.rbi +81 -0
  472. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_test_failure.rbi +47 -0
  473. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_test_response.rbi +62 -0
  474. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_test_result.rbi +88 -0
  475. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_test_success.rbi +31 -0
  476. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_traces.rbi +97 -0
  477. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_traces_params.rbi +120 -0
  478. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces.rbi +93 -0
  479. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_all.rbi +33 -0
  480. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_all_params.rbi +33 -0
  481. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_exclude.rbi +32 -0
  482. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_exclude_params.rbi +80 -0
  483. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_include.rbi +31 -0
  484. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_include_params.rbi +80 -0
  485. data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_params.rbi +107 -0
  486. data/rbi/anthropic/models/beta/organization/invite_create_params.rbi +6 -3
  487. data/rbi/anthropic/models/beta/organization/spend_limit_list_params.rbi +2 -8
  488. data/rbi/anthropic/models/beta/organization/telemetry_destination_create_params.rbi +188 -0
  489. data/rbi/anthropic/models/beta/organization/telemetry_destination_delete_params.rbi +75 -0
  490. data/rbi/anthropic/models/beta/organization/telemetry_destination_list_params.rbi +116 -0
  491. data/rbi/anthropic/models/beta/organization/telemetry_destination_retrieve_params.rbi +75 -0
  492. data/rbi/anthropic/models/beta/organization/telemetry_destination_test_params.rbi +75 -0
  493. data/rbi/anthropic/models/beta/organization/telemetry_destination_update_params.rbi +266 -0
  494. data/rbi/anthropic/models/beta/organization/telemetry_destinations/beta_deleted_telemetry_destination_workspace.rbi +61 -0
  495. data/rbi/anthropic/models/beta/organization/telemetry_destinations/beta_telemetry_destination_workspace.rbi +73 -0
  496. data/rbi/anthropic/models/beta/organization/telemetry_destinations/workspace_add_params.rbi +86 -0
  497. data/rbi/anthropic/models/beta/organization/telemetry_destinations/workspace_list_params.rbi +102 -0
  498. data/rbi/anthropic/models/beta/organization/telemetry_destinations/workspace_remove_params.rbi +86 -0
  499. data/rbi/anthropic/models/beta/organization/user_update_params.rbi +6 -3
  500. data/rbi/anthropic/models/beta/session_archive_params.rbi +4 -2
  501. data/rbi/anthropic/models/beta/session_create_params.rbi +4 -2
  502. data/rbi/anthropic/models/beta/session_delete_params.rbi +4 -2
  503. data/rbi/anthropic/models/beta/session_list_params.rbi +4 -2
  504. data/rbi/anthropic/models/beta/session_retrieve_params.rbi +4 -2
  505. data/rbi/anthropic/models/beta/session_update_params.rbi +4 -2
  506. data/rbi/anthropic/models/beta/sessions/beta_managed_agents_agent_custom_tool_use_event.rbi +3 -1
  507. data/rbi/anthropic/models/beta/sessions/beta_managed_agents_event_params.rbi +2 -2
  508. data/rbi/anthropic/models/beta/sessions/beta_managed_agents_inline_agent.rbi +17 -0
  509. data/rbi/anthropic/models/beta/sessions/beta_managed_agents_send_session_events.rbi +2 -2
  510. data/rbi/anthropic/models/beta/sessions/beta_managed_agents_session_event.rbi +2 -2
  511. data/rbi/anthropic/models/beta/sessions/beta_managed_agents_session_thread.rbi +9 -0
  512. data/rbi/anthropic/models/beta/sessions/beta_managed_agents_stream_session_events.rbi +2 -2
  513. data/rbi/anthropic/models/beta/sessions/beta_managed_agents_stream_session_thread_events.rbi +2 -2
  514. data/rbi/anthropic/models/beta/sessions/beta_managed_agents_user_custom_tool_result_event.rbi +4 -4
  515. data/rbi/anthropic/models/beta/sessions/beta_managed_agents_user_custom_tool_result_event_params.rbi +4 -4
  516. data/rbi/anthropic/models/beta/sessions/event_list_params.rbi +4 -2
  517. data/rbi/anthropic/models/beta/sessions/event_send_params.rbi +4 -2
  518. data/rbi/anthropic/models/beta/sessions/event_stream_params.rbi +4 -2
  519. data/rbi/anthropic/models/beta/sessions/resource_add_params.rbi +4 -2
  520. data/rbi/anthropic/models/beta/sessions/resource_delete_params.rbi +4 -2
  521. data/rbi/anthropic/models/beta/sessions/resource_list_params.rbi +4 -2
  522. data/rbi/anthropic/models/beta/sessions/resource_retrieve_params.rbi +4 -2
  523. data/rbi/anthropic/models/beta/sessions/resource_update_params.rbi +4 -2
  524. data/rbi/anthropic/models/beta/sessions/thread_archive_params.rbi +4 -2
  525. data/rbi/anthropic/models/beta/sessions/thread_list_params.rbi +4 -2
  526. data/rbi/anthropic/models/beta/sessions/thread_retrieve_params.rbi +4 -2
  527. data/rbi/anthropic/models/beta/sessions/threads/event_list_params.rbi +4 -2
  528. data/rbi/anthropic/models/beta/sessions/threads/event_stream_params.rbi +4 -2
  529. data/rbi/anthropic/models/beta/tunnel_archive_params.rbi +4 -2
  530. data/rbi/anthropic/models/beta/tunnel_create_params.rbi +4 -2
  531. data/rbi/anthropic/models/beta/tunnel_list_params.rbi +4 -2
  532. data/rbi/anthropic/models/beta/tunnel_retrieve_params.rbi +4 -2
  533. data/rbi/anthropic/models/beta/tunnel_reveal_token_params.rbi +4 -2
  534. data/rbi/anthropic/models/beta/tunnel_rotate_token_params.rbi +4 -2
  535. data/rbi/anthropic/models/beta/tunnels/certificate_archive_params.rbi +4 -2
  536. data/rbi/anthropic/models/beta/tunnels/certificate_create_params.rbi +4 -2
  537. data/rbi/anthropic/models/beta/tunnels/certificate_list_params.rbi +4 -2
  538. data/rbi/anthropic/models/beta/tunnels/certificate_retrieve_params.rbi +4 -2
  539. data/rbi/anthropic/models/beta/user_profile_create_enrollment_url_params.rbi +4 -2
  540. data/rbi/anthropic/models/beta/user_profile_create_params.rbi +4 -2
  541. data/rbi/anthropic/models/beta/user_profile_list_params.rbi +4 -2
  542. data/rbi/anthropic/models/beta/user_profile_retrieve_params.rbi +4 -2
  543. data/rbi/anthropic/models/beta/user_profile_update_params.rbi +4 -2
  544. data/rbi/anthropic/models/beta/vault_archive_params.rbi +4 -2
  545. data/rbi/anthropic/models/beta/vault_create_params.rbi +4 -2
  546. data/rbi/anthropic/models/beta/vault_delete_params.rbi +4 -2
  547. data/rbi/anthropic/models/beta/vault_list_params.rbi +4 -2
  548. data/rbi/anthropic/models/beta/vault_retrieve_params.rbi +4 -2
  549. data/rbi/anthropic/models/beta/vault_update_params.rbi +4 -2
  550. data/rbi/anthropic/models/beta/vaults/credential_archive_params.rbi +4 -2
  551. data/rbi/anthropic/models/beta/vaults/credential_create_params.rbi +4 -2
  552. data/rbi/anthropic/models/beta/vaults/credential_delete_params.rbi +4 -2
  553. data/rbi/anthropic/models/beta/vaults/credential_list_params.rbi +4 -2
  554. data/rbi/anthropic/models/beta/vaults/credential_mcp_oauth_validate_params.rbi +4 -2
  555. data/rbi/anthropic/models/beta/vaults/credential_retrieve_params.rbi +4 -2
  556. data/rbi/anthropic/models/beta/vaults/credential_update_params.rbi +4 -2
  557. data/rbi/anthropic/models/message_count_tokens_params.rbi +85 -18
  558. data/rbi/anthropic/models/message_create_params.rbi +77 -18
  559. data/rbi/anthropic/models/messages/batch_create_params.rbi +101 -18
  560. data/rbi/anthropic/models/model.rbi +0 -2
  561. data/rbi/anthropic/models/organization/invite_create_params.rbi +6 -3
  562. data/rbi/anthropic/models/organization/user_update_params.rbi +6 -3
  563. data/rbi/anthropic/models/thinking_config_adaptive.rbi +9 -6
  564. data/rbi/anthropic/models/thinking_config_enabled.rbi +9 -6
  565. data/rbi/anthropic/models/thinking_config_param.rbi +11 -9
  566. data/rbi/anthropic/models/thinking_types.rbi +27 -2
  567. data/rbi/anthropic/models/usage.rbi +29 -3
  568. data/rbi/anthropic/request_options.rbi +5 -0
  569. data/rbi/anthropic/resources/beta/agents/versions.rbi +2 -1
  570. data/rbi/anthropic/resources/beta/agents.rbi +32 -7
  571. data/rbi/anthropic/resources/beta/deployment_runs.rbi +4 -2
  572. data/rbi/anthropic/resources/beta/deployments.rbi +16 -8
  573. data/rbi/anthropic/resources/beta/dreams.rbi +10 -5
  574. data/rbi/anthropic/resources/beta/memory_stores/memories.rbi +10 -5
  575. data/rbi/anthropic/resources/beta/memory_stores/memory_versions.rbi +6 -3
  576. data/rbi/anthropic/resources/beta/memory_stores.rbi +12 -6
  577. data/rbi/anthropic/resources/beta/messages/batches.rbi +2 -1
  578. data/rbi/anthropic/resources/beta/messages.rbi +71 -32
  579. data/rbi/anthropic/resources/beta/organization/invites.rbi +2 -1
  580. data/rbi/anthropic/resources/beta/organization/spend_limits/effective.rbi +2 -2
  581. data/rbi/anthropic/resources/beta/organization/spend_limits.rbi +8 -12
  582. data/rbi/anthropic/resources/beta/organization/telemetry_destinations/workspaces.rbi +127 -0
  583. data/rbi/anthropic/resources/beta/organization/telemetry_destinations.rbi +306 -0
  584. data/rbi/anthropic/resources/beta/organization/users.rbi +2 -1
  585. data/rbi/anthropic/resources/beta/organization.rbi +7 -0
  586. data/rbi/anthropic/resources/beta/sessions/events.rbi +8 -4
  587. data/rbi/anthropic/resources/beta/sessions/resources.rbi +10 -5
  588. data/rbi/anthropic/resources/beta/sessions/threads/events.rbi +6 -3
  589. data/rbi/anthropic/resources/beta/sessions/threads.rbi +6 -3
  590. data/rbi/anthropic/resources/beta/sessions.rbi +12 -6
  591. data/rbi/anthropic/resources/beta/tunnels/certificates.rbi +8 -4
  592. data/rbi/anthropic/resources/beta/tunnels.rbi +12 -6
  593. data/rbi/anthropic/resources/beta/user_profiles.rbi +13 -5
  594. data/rbi/anthropic/resources/beta/vaults/credentials.rbi +14 -7
  595. data/rbi/anthropic/resources/beta/vaults.rbi +12 -6
  596. data/rbi/anthropic/resources/completions.rbi +6 -1
  597. data/rbi/anthropic/resources/messages/batches.rbi +2 -1
  598. data/rbi/anthropic/resources/messages.rbi +76 -28
  599. data/rbi/anthropic/resources/organization/invites.rbi +2 -1
  600. data/rbi/anthropic/resources/organization/users.rbi +2 -1
  601. data/sig/anthropic/client.rbs +1 -0
  602. data/sig/anthropic/helpers/bedrock/client.rbs +2 -1
  603. data/sig/anthropic/helpers/google_cloud/client.rbs +2 -1
  604. data/sig/anthropic/helpers/streaming/message_stream.rbs +2 -2
  605. data/sig/anthropic/helpers/vertex/client.rbs +2 -1
  606. data/sig/anthropic/internal/tracing.rbs +477 -0
  607. data/sig/anthropic/internal/transport/base_client.rbs +37 -2
  608. data/sig/anthropic/internal/type/base_stream.rbs +1 -1
  609. data/sig/anthropic/models/anthropic_beta.rbs +2 -0
  610. data/sig/anthropic/models/beta/agent_create_params.rbs +5 -0
  611. data/sig/anthropic/models/beta/agent_update_params.rbs +5 -0
  612. data/sig/anthropic/models/beta/beta_managed_agents_agent.rbs +5 -0
  613. data/sig/anthropic/models/beta/beta_managed_agents_aws_role_execution_identity.rbs +20 -0
  614. data/sig/anthropic/models/beta/beta_managed_agents_aws_role_execution_identity_params.rbs +20 -0
  615. data/sig/anthropic/models/beta/beta_managed_agents_execution_identity.rbs +42 -0
  616. data/sig/anthropic/models/beta/beta_managed_agents_execution_identity_params.rbs +42 -0
  617. data/sig/anthropic/models/beta/beta_managed_agents_model.rbs +0 -2
  618. data/sig/anthropic/models/beta/beta_managed_agents_service_account_execution_identity.rbs +18 -0
  619. data/sig/anthropic/models/beta/beta_managed_agents_service_account_execution_identity_params.rbs +18 -0
  620. data/sig/anthropic/models/beta/beta_managed_agents_session_agent.rbs +5 -0
  621. data/sig/anthropic/models/beta/beta_managed_agents_session_multiagent_coordinator.rbs +2 -0
  622. data/sig/anthropic/models/beta/beta_managed_agents_session_thread_agent.rbs +5 -0
  623. data/sig/anthropic/models/beta/beta_thinking_types.rbs +5 -0
  624. data/sig/anthropic/models/beta/organization/beta_deleted_telemetry_destination.rbs +23 -0
  625. data/sig/anthropic/models/beta/organization/beta_spend_limit.rbs +6 -0
  626. data/sig/anthropic/models/beta/organization/beta_spend_limit_usage_tier_scope.rbs +17 -0
  627. data/sig/anthropic/models/beta/organization/beta_spend_summary.rbs +12 -0
  628. data/sig/anthropic/models/beta/organization/beta_telemetry_destination.rbs +74 -0
  629. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_content_mode.rbs +23 -0
  630. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_delivery_health.rbs +30 -0
  631. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason.rbs +51 -0
  632. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_caller.rbs +18 -0
  633. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_invalid_address.rbs +18 -0
  634. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_redirect.rbs +18 -0
  635. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_sustained_failure.rbs +18 -0
  636. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_state.rbs +42 -0
  637. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_state_disabled.rbs +29 -0
  638. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_state_disabled_params.rbs +18 -0
  639. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_state_enabled.rbs +17 -0
  640. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_state_enabled_params.rbs +18 -0
  641. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_state_params.rbs +40 -0
  642. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_test_failure.rbs +20 -0
  643. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_test_response.rbs +29 -0
  644. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_test_result.rbs +42 -0
  645. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_test_success.rbs +17 -0
  646. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_traces.rbs +39 -0
  647. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_traces_params.rbs +41 -0
  648. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces.rbs +45 -0
  649. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_all.rbs +17 -0
  650. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_all_params.rbs +17 -0
  651. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_exclude.rbs +17 -0
  652. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_exclude_params.rbs +25 -0
  653. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_include.rbs +17 -0
  654. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_include_params.rbs +25 -0
  655. data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_params.rbs +48 -0
  656. data/sig/anthropic/models/beta/organization/telemetry_destination_create_params.rbs +65 -0
  657. data/sig/anthropic/models/beta/organization/telemetry_destination_delete_params.rbs +39 -0
  658. data/sig/anthropic/models/beta/organization/telemetry_destination_list_params.rbs +55 -0
  659. data/sig/anthropic/models/beta/organization/telemetry_destination_retrieve_params.rbs +39 -0
  660. data/sig/anthropic/models/beta/organization/telemetry_destination_test_params.rbs +39 -0
  661. data/sig/anthropic/models/beta/organization/telemetry_destination_update_params.rbs +79 -0
  662. data/sig/anthropic/models/beta/organization/telemetry_destinations/beta_deleted_telemetry_destination_workspace.rbs +36 -0
  663. data/sig/anthropic/models/beta/organization/telemetry_destinations/beta_telemetry_destination_workspace.rbs +41 -0
  664. data/sig/anthropic/models/beta/organization/telemetry_destinations/workspace_add_params.rbs +46 -0
  665. data/sig/anthropic/models/beta/organization/telemetry_destinations/workspace_list_params.rbs +55 -0
  666. data/sig/anthropic/models/beta/organization/telemetry_destinations/workspace_remove_params.rbs +46 -0
  667. data/sig/anthropic/models/beta/sessions/beta_managed_agents_inline_agent.rbs +5 -0
  668. data/sig/anthropic/models/beta/sessions/beta_managed_agents_session_thread.rbs +3 -0
  669. data/sig/anthropic/models/message_count_tokens_params.rbs +16 -0
  670. data/sig/anthropic/models/message_create_params.rbs +16 -0
  671. data/sig/anthropic/models/messages/batch_create_params.rbs +16 -0
  672. data/sig/anthropic/models/model.rbs +0 -2
  673. data/sig/anthropic/models/thinking_types.rbs +5 -0
  674. data/sig/anthropic/models/usage.rbs +19 -3
  675. data/sig/anthropic/request_options.rbs +3 -0
  676. data/sig/anthropic/resources/beta/agents.rbs +2 -0
  677. data/sig/anthropic/resources/beta/messages/batches.rbs +1 -1
  678. data/sig/anthropic/resources/beta/messages.rbs +1 -1
  679. data/sig/anthropic/resources/beta/organization/telemetry_destinations/workspaces.rbs +35 -0
  680. data/sig/anthropic/resources/beta/organization/telemetry_destinations.rbs +61 -0
  681. data/sig/anthropic/resources/beta/organization.rbs +2 -0
  682. data/sig/anthropic/resources/beta/sessions/events.rbs +1 -1
  683. data/sig/anthropic/resources/beta/sessions/threads/events.rbs +1 -1
  684. data/sig/anthropic/resources/completions.rbs +1 -1
  685. data/sig/anthropic/resources/messages/batches.rbs +1 -1
  686. data/sig/anthropic/resources/messages.rbs +5 -1
  687. metadata +181 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 064db3cf4e22be64272a2aa28eb45829da4ddd01a3fdfec1cfc8bc0b6e9d0216
4
- data.tar.gz: 1f65d4417898900499d402aff8b3225c2f2016a52984c25637800e4a8d4ec0c6
3
+ metadata.gz: 9e0c2457772d14d2f544f1e29c0257bb58470949ad75041d38a87337ef6588eb
4
+ data.tar.gz: f3a5fe15373f2aa6391d7ed66ed73687b46523d92fb359e4a9621df437183063
5
5
  SHA512:
6
- metadata.gz: f6588afface6416906b56c266d0c088057aa93363b4cadb7e445ab7ec096c6bfb46006433109230ce001ce0fb4fb023cef2e294e35bb62c480c32f82d893c769
7
- data.tar.gz: c6103754b6be3dfeb451995ab5d5a9b8aa68e0af8d7ad48306d06d8cf8c82d6100a152c9cb467600346ddd2446fbde3b9ef8e24a71350c1f4a4905e77b7f28e8
6
+ metadata.gz: 519eadd659c81d42cff516a695728b4bf93f69f6ad8fe7b931e765673421e427f6f8f00c35154c41ed4e5b211119150ce9949bc97cbe19d63893738ca15c2dbd
7
+ data.tar.gz: '088cd32906704806d4be30d6ddf5291d4a3565b1780bf9f6ba87b1a2bf26fa501a2d158e7743d5afe2a4adda9c8762d94acbe6df91a077db75319d64ce065fc5'
data/CHANGELOG.md CHANGED
@@ -1,5 +1,62 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.80.0](https://github.com/anthropics/anthropic-sdk-ruby/compare/v1.79.0...v1.80.0) (2026-10-15)
4
+
5
+ ### Features
6
+
7
+ * **api:** add between_tools to thinking types in model capabilities
8
+ * **api:** add the speed parameter and usage.speed to Messages
9
+ * **api:** return a Console organization's usage-tier spend cap as a read-only spend limit
10
+
11
+
12
+ ### Chores
13
+
14
+ * **ci:** speed up breaking change detection
15
+ * **docs:** describe headers on Managed Agents and telemetry endpoints
16
+ * **tests:** cover trace context propagation and failing telemetry
17
+
18
+
19
+ ### Documentation
20
+
21
+ * **api:** note that some models need a beta header to use speed
22
+
23
+ ## [1.79.0](https://github.com/anthropics/anthropic-sdk-ruby/compare/v1.78.0...v1.79.0) (2026-10-14)
24
+
25
+ ### Features
26
+
27
+ * **api:** add execution_identity to Managed Agents agents
28
+ * **api:** add organization_type_not_supported error to spend limit lists
29
+ * **api:** add telemetry destination test endpoint
30
+ * **api:** add telemetry destinations to the Admin API
31
+ * **client:** add native support for OpenTelemetry tracing
32
+
33
+ If your app registers a global tracer provider, the SDK will create spans with it after upgrading, and they'll be exported with the rest of your traces. Requests will also get trace context headers from the global propagator. To disable, pass `open_telemetry: false` to the client or set `ANTHROPIC_OPEN_TELEMETRY=false`. Learn more in the [documentation](https://platform.claude.com/docs/en/manage-claude/opentelemetry/sdk).
34
+
35
+
36
+ ### Bug Fixes
37
+
38
+ * **api:** rename telemetry destination test response model
39
+ * **client:** ignore OpenTelemetry env vars when the option is set
40
+ * **client:** keep the discriminator when a union's .new builds a variant
41
+ * **streaming:** keep every field of a tool use block when attaching its parsed input
42
+ * **streaming:** pass events of an unknown type through the message stream helper untouched
43
+ * **tools:** name the toolset on the tool runner's result for a toolset member's call
44
+
45
+
46
+ ### Chores
47
+
48
+ * **docs:** correct prefill, thinking, fallback and model descriptions
49
+ * **docs:** document the scope required to assign the managed role
50
+ * **docs:** update model examples
51
+ * include the license files in the published packages
52
+ * **internal:** narrow the tripwire test rule in the contributor guides
53
+
54
+
55
+ ### Documentation
56
+
57
+ * **api:** clarify when custom tool results can be sent
58
+ * **api:** say is_enabled is always true for user spend limits
59
+
3
60
  ## [1.78.0](https://github.com/anthropics/anthropic-sdk-ruby/compare/v1.77.1...v1.78.0) (2026-10-09)
4
61
 
5
62
  ### Features
data/LICENSE ADDED
@@ -0,0 +1,8 @@
1
+ Copyright 2023 Anthropic, PBC.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8
+
data/README.md CHANGED
@@ -15,7 +15,7 @@ Add to your application's Gemfile:
15
15
  <!-- x-release-please-start-version -->
16
16
 
17
17
  ```ruby
18
- gem "anthropic", "~> 1.78.0"
18
+ gem "anthropic", "~> 1.80.0"
19
19
  ```
20
20
 
21
21
  <!-- x-release-please-end -->
@@ -44,6 +44,47 @@ puts(message.content)
44
44
 
45
45
  Ruby 3.2.0+
46
46
 
47
+ ## OpenTelemetry
48
+
49
+ Spans are on by default.
50
+ Register a tracer provider with OpenTelemetry, for example with `OpenTelemetry::SDK.configure`, and every client reports each API call as a span.
51
+ No client option is needed.
52
+ Each request also carries the trace context in the headers that the registered propagator writes, such as `traceparent`, with or without a tracer provider.
53
+
54
+ The `open_telemetry` client option changes the default:
55
+
56
+ - `open_telemetry: {tracer_provider: provider}` uses `provider` instead of the registered tracer provider.
57
+ - `open_telemetry: {propagation: false}` sends no trace context headers, such as `traceparent` and `baggage`, with the client's requests.
58
+ It is for an application whose HTTP client instrumentation already sends them, so that a request does not carry them twice. The spans are unaffected.
59
+ - `open_telemetry: false` turns the spans and the trace context headers off. It is short for `{traces: false}`, which is short for `{traces: {enabled: false}}`.
60
+ - `open_telemetry: {traces: {content_mode: :content}}` adds the messages, stop sequences, and tool calls to the spans.
61
+ It also adds `url.query` and `url.full` to the span of a request whose query has an `email`, `path_prefix` or `expected_content_sha256` parameter, which has neither otherwise.
62
+ - `open_telemetry: {traces: {max_content_bytes: 65_536}}` sets the most bytes of content that one span holds, in place of 0.75 MB.
63
+ A span whose content is cut to fit has `anthropic.content.truncated`.
64
+
65
+ `open_telemetry: true` is short for `{traces: true}`, and `traces: true` is short for `traces: {enabled: true}`.
66
+ With `enabled: false`, the other keys of `traces` are unused.
67
+ What the option leaves unset has its default.
68
+
69
+ A client that is given no `open_telemetry` option reads the environment when it is made: `ANTHROPIC_OPEN_TELEMETRY=false` turns its spans and the trace context headers off, `ANTHROPIC_OPEN_TELEMETRY_PROPAGATION=false` turns only the headers off, `ANTHROPIC_OPEN_TELEMETRY_TRACES_CONTENT_MODE=content` adds the content, and `ANTHROPIC_OPEN_TELEMETRY_TRACES_MAX_CONTENT_BYTES=65536` sets the most bytes.
70
+ A client that is given the option, even `true` or `{}`, reads none of these variables: `open_telemetry: true` turns the spans on whatever `ANTHROPIC_OPEN_TELEMETRY` says.
71
+
72
+ The keys of the option, and of its `traces`, can be Symbols or Strings, and a key that the option does not have raises `ArgumentError`.
73
+ So does a `propagation` other than `true` or `false`, a `content_mode` other than `:metadata_only` or `:content`, and a `max_content_bytes` that is not an Integer of 1 or more.
74
+ An environment variable with such a value is ignored.
75
+
76
+ One request option sets `gen_ai.conversation.id` on the span of a call:
77
+
78
+ ```ruby
79
+ anthropic.messages.create(**params, request_options: {open_telemetry: {conversation_id: id}})
80
+ ```
81
+
82
+ `conversation_id` is the only key of the request option, and any other key raises `ArgumentError`: the tracer provider, `propagation` and the `traces` settings belong to the client.
83
+ Without it, the span of a request to a Session thread, such as `beta.sessions.threads.retrieve`, has the thread's ID as its `gen_ai.conversation.id`.
84
+
85
+ In the content mode, the content of a streamed response comes from the message that `messages.stream` accumulates.
86
+ The span of a `messages.stream_raw` call has the request's content only.
87
+
47
88
  ## Contributing
48
89
 
49
90
  See [CONTRIBUTING.md](./CONTRIBUTING.md).
@@ -190,6 +190,36 @@ module Anthropic
190
190
  # @param timeout [Float, nil] Request timeout in seconds. Defaults to
191
191
  # `Anthropic::Client::DEFAULT_TIMEOUT_IN_SECONDS` when `nil`.
192
192
  #
193
+ # @param open_telemetry [Hash{Symbol=>Object}, Boolean, nil] OpenTelemetry tracing of this client's API calls. Each call emits a span when
194
+ # the application has registered a tracer provider with the OpenTelemetry API.
195
+ # `true` and `false` are short for `{traces: true}` and `{traces: false}`. Keys
196
+ # can be Strings, and an unknown key raises `ArgumentError`. A client that is
197
+ # given no option reads `ENV["ANTHROPIC_OPEN_TELEMETRY"]`, where `false` is
198
+ # `open_telemetry: false`, `ENV["ANTHROPIC_OPEN_TELEMETRY_PROPAGATION"]`, where
199
+ # `false` is `propagation: false`,
200
+ # `ENV["ANTHROPIC_OPEN_TELEMETRY_TRACES_CONTENT_MODE"]` and
201
+ # `ENV["ANTHROPIC_OPEN_TELEMETRY_TRACES_MAX_CONTENT_BYTES"]`. A client that is
202
+ # given the option, even `true` or `{}`, reads none of them.
203
+ #
204
+ # @option open_telemetry [#tracer] :tracer_provider Used in place of the registered tracer provider.
205
+ #
206
+ # @option open_telemetry [Boolean] :propagation `false` sends no trace context headers, such as `traceparent`, with this
207
+ # client's requests, for an application whose HTTP client instrumentation already
208
+ # sends them, so that a request does not carry them twice. The spans are
209
+ # unaffected. Defaults to `true`.
210
+ #
211
+ # @option open_telemetry [Hash{Symbol=>Object}, Boolean] :traces The settings of the spans. `true` and `false` are short for `{enabled: true}`
212
+ # and `{enabled: false}`. Its keys:
213
+ #
214
+ # - `:enabled` (Boolean): `false` disables the spans, and the other keys are then
215
+ # unused. Defaults to `true`.
216
+ # - `:content_mode` (Symbol, String): `:content` adds the content of requests and
217
+ # responses to the spans, and `:metadata_only` does not. Defaults to
218
+ # `:metadata_only`.
219
+ # - `:max_content_bytes` (Integer): the most bytes of content that one span holds,
220
+ # 1 or more. Content over the bound is cut, and the span then has
221
+ # `anthropic.content.truncated`. Defaults to 0.75 MB.
222
+ #
193
223
  # @param initial_retry_delay [Float]
194
224
  #
195
225
  # @param max_retry_delay [Float]
@@ -207,6 +237,7 @@ module Anthropic
207
237
  proxy: nil,
208
238
  max_retries: self.class::DEFAULT_MAX_RETRIES,
209
239
  timeout: nil,
240
+ open_telemetry: nil,
210
241
  initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY,
211
242
  max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY,
212
243
  middleware: nil
@@ -298,6 +329,7 @@ module Anthropic
298
329
  base_url: base_url,
299
330
  proxy: proxy,
300
331
  timeout: timeout,
332
+ open_telemetry: open_telemetry,
301
333
  max_retries: max_retries,
302
334
  initial_retry_delay: initial_retry_delay,
303
335
  max_retry_delay: max_retry_delay,
@@ -54,6 +54,9 @@ module Anthropic
54
54
  #
55
55
  # @param max_retry_delay [Float]
56
56
  #
57
+ # @param open_telemetry [Hash{Symbol=>Object}, Boolean, nil] OpenTelemetry tracing of this
58
+ # client's API calls. See {Anthropic::Client#initialize}.
59
+ #
57
60
  def initialize(
58
61
  api_key: nil,
59
62
  aws_access_key: nil,
@@ -67,7 +70,8 @@ module Anthropic
67
70
  max_retries: self.class::DEFAULT_MAX_RETRIES,
68
71
  timeout: nil,
69
72
  initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY,
70
- max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY
73
+ max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY,
74
+ open_telemetry: nil
71
75
  )
72
76
  effective_api_key, resolved_base_url = setup_aws_auth(
73
77
  api_key: api_key,
@@ -96,10 +100,16 @@ module Anthropic
96
100
  timeout: timeout,
97
101
  max_retries: max_retries,
98
102
  initial_retry_delay: initial_retry_delay,
99
- max_retry_delay: max_retry_delay
103
+ max_retry_delay: max_retry_delay,
104
+ open_telemetry: open_telemetry
100
105
  )
101
106
  end
102
107
 
108
+ # @api private
109
+ #
110
+ # @return [String]
111
+ private def open_telemetry_scope = "#{super}.aws"
112
+
103
113
  # @api private
104
114
  #
105
115
  # @return [#call]
@@ -185,6 +185,10 @@ module Anthropic
185
185
  # a `StringIO`, which the terminal's encoding passes through untouched,
186
186
  # so the signed payload is exactly the bytes that go over the wire.
187
187
  #
188
+ # The headers that carry a trace context are sent but not signed: an HTTP
189
+ # instrumentation may replace them with the context of its own span after
190
+ # this, which would invalidate a signature that covered them.
191
+ #
188
192
  # @param req [Anthropic::APIRequest]
189
193
  # @return [Anthropic::APIRequest]
190
194
  private def sign_aws_request(req)
@@ -201,7 +205,10 @@ module Anthropic
201
205
  StringIO.new(encoded.to_s)
202
206
  end
203
207
 
204
- signed = @signer.sign_request(http_method: req.method, url: req.url, body: body, headers: headers)
208
+ # The propagator is read per request: the application may register it after it makes the client.
209
+ unsigned = %w[traceparent tracestate baggage] | Anthropic::Internal::Tracing.trace_header_names(nil)
210
+ signable = headers.reject { |name, _| unsigned.include?(name.to_s.downcase) }
211
+ signed = @signer.sign_request(http_method: req.method, url: req.url, body: body, headers: signable)
205
212
  headers = Anthropic::Internal::Util.normalized_headers(headers, signed.headers)
206
213
  headers.delete("connection")
207
214
  req.with(headers: headers, body: body)
@@ -61,6 +61,9 @@ module Anthropic
61
61
  # the Bedrock URL rewrite and SigV4 signing happen inside the continuation, per
62
62
  # attempt.
63
63
  #
64
+ # @param open_telemetry [Hash{Symbol=>Object}, Boolean, nil] OpenTelemetry tracing of this
65
+ # client's API calls. See {Anthropic::Client#initialize}.
66
+ #
64
67
  def initialize(
65
68
  aws_region: nil,
66
69
  base_url: nil,
@@ -73,7 +76,8 @@ module Anthropic
73
76
  aws_session_token: nil,
74
77
  aws_profile: nil,
75
78
  api_key: nil,
76
- middleware: nil
79
+ middleware: nil,
80
+ open_telemetry: nil
77
81
  )
78
82
  api_key ||= ENV["AWS_BEARER_TOKEN_BEDROCK"]
79
83
 
@@ -140,7 +144,8 @@ module Anthropic
140
144
  max_retries: max_retries,
141
145
  initial_retry_delay: initial_retry_delay,
142
146
  max_retry_delay: max_retry_delay,
143
- middleware: middleware
147
+ middleware: middleware,
148
+ open_telemetry: open_telemetry
144
149
  )
145
150
  end
146
151
 
@@ -206,6 +211,18 @@ module Anthropic
206
211
  super
207
212
  end
208
213
 
214
+ # @api private
215
+ #
216
+ # @return [Hash{String=>String}]
217
+ def open_telemetry_attributes
218
+ {**super, Anthropic::Internal::Tracing::GEN_AI_PROVIDER_NAME => "aws.bedrock"}
219
+ end
220
+
221
+ # @api private
222
+ #
223
+ # @return [String]
224
+ private def open_telemetry_scope = "#{super}.bedrock"
225
+
209
226
  # @api private
210
227
  #
211
228
  # The Bedrock provider middleware: rewrites the canonical request into
@@ -58,6 +58,9 @@ module Anthropic
58
58
  #
59
59
  # @param max_retry_delay [Float]
60
60
  #
61
+ # @param open_telemetry [Hash{Symbol=>Object}, Boolean, nil] OpenTelemetry tracing of this
62
+ # client's API calls. See {Anthropic::Client#initialize}.
63
+ #
61
64
  def initialize(
62
65
  api_key: nil,
63
66
  aws_access_key: nil,
@@ -70,7 +73,8 @@ module Anthropic
70
73
  max_retries: self.class::DEFAULT_MAX_RETRIES,
71
74
  timeout: nil,
72
75
  initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY,
73
- max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY
76
+ max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY,
77
+ open_telemetry: nil
74
78
  )
75
79
  effective_api_key, resolved_base_url = setup_aws_auth(
76
80
  api_key: api_key,
@@ -94,7 +98,8 @@ module Anthropic
94
98
  max_retries: max_retries,
95
99
  timeout: timeout,
96
100
  initial_retry_delay: initial_retry_delay,
97
- max_retry_delay: max_retry_delay
101
+ max_retry_delay: max_retry_delay,
102
+ open_telemetry: open_telemetry
98
103
  )
99
104
 
100
105
  # Only initialize supported resources
@@ -126,6 +131,18 @@ module Anthropic
126
131
  "Skills are not supported on Bedrock Mantle. Only Messages (/v1/messages) is supported."
127
132
  end
128
133
 
134
+ # @api private
135
+ #
136
+ # @return [Hash{String=>String}]
137
+ def open_telemetry_attributes
138
+ {**super, Anthropic::Internal::Tracing::GEN_AI_PROVIDER_NAME => "aws.bedrock"}
139
+ end
140
+
141
+ # @api private
142
+ #
143
+ # @return [String]
144
+ private def open_telemetry_scope = "#{super}.bedrock"
145
+
129
146
  # @api private
130
147
  #
131
148
  # @return [#call]
@@ -87,6 +87,9 @@ module Anthropic
87
87
  # is applied per attempt, after user middleware.
88
88
  #
89
89
  # @raise [ArgumentError]
90
+ #
91
+ # @param open_telemetry [Hash{Symbol=>Object}, Boolean, nil] OpenTelemetry tracing of this
92
+ # client's API calls. See {Anthropic::Client#initialize}.
90
93
  def initialize(
91
94
  project: ENV["ANTHROPIC_GOOGLE_CLOUD_PROJECT"] || ENV["GOOGLE_CLOUD_PROJECT"],
92
95
  location: ENV["ANTHROPIC_GOOGLE_CLOUD_LOCATION"] || "global",
@@ -99,7 +102,8 @@ module Anthropic
99
102
  timeout: nil,
100
103
  initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY,
101
104
  max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY,
102
- middleware: nil
105
+ middleware: nil,
106
+ open_telemetry: nil
103
107
  )
104
108
  if skip_auth && (token_provider || google_credentials)
105
109
  raise ArgumentError.new(
@@ -151,7 +155,8 @@ module Anthropic
151
155
  max_retries: max_retries,
152
156
  initial_retry_delay: initial_retry_delay,
153
157
  max_retry_delay: max_retry_delay,
154
- middleware: middleware
158
+ middleware: middleware,
159
+ open_telemetry: open_telemetry
155
160
  )
156
161
  end
157
162
 
@@ -180,6 +185,11 @@ module Anthropic
180
185
  # @return [Hash{String=>String}]
181
186
  private def auth_headers = {}
182
187
 
188
+ # @api private
189
+ #
190
+ # @return [String]
191
+ private def open_telemetry_scope = "#{super}.google_cloud"
192
+
183
193
  # @api private
184
194
  #
185
195
  # The Google Cloud provider middleware: applies the Google OAuth
@@ -38,10 +38,11 @@ module Anthropic
38
38
  # — and the fallback's events are spliced onto the still-open stream, so the
39
39
  # client sees one continuous message: a `fallback` content block at each
40
40
  # model boundary, monotonic block indices, and per-hop `usage.iterations` on
41
- # the final `message_delta`. Only `model` is honored from each entry on this
42
- # path: the credit token is redeemable only against the refused request's
43
- # body, so the other per-entry overrides would be rejected. A
44
- # `between_tools` thinking config is always sent as `disabled` on this path.
41
+ # the final `message_delta`. Only `model` and `speed` are honored from each
42
+ # entry on this path. The other per-entry overrides are ignored, because the
43
+ # credit token is tied to the refused request's body. A `speed` value replaces
44
+ # the request's, and `speed: nil` omits it. A `between_tools` thinking config
45
+ # is always sent as `disabled` on this path.
45
46
  #
46
47
  # Credit tokens are sent in the object form with `mode: :best_effort`, so a
47
48
  # failing redemption never rejects the retry — it proceeds at normal price
@@ -49,6 +50,10 @@ module Anthropic
49
50
  # beta this requires is sent by default on every request the middleware
50
51
  # handles; the `betas:` option controls this.
51
52
  #
53
+ # A `speed: "fast"` request that falls back to an entry with no `speed`, and
54
+ # is rejected with a 429 or 529, is retried once on that entry without
55
+ # `speed`. Set `speed: "fast"` on the entry to keep it fast-only.
56
+ #
52
57
  # To keep later requests on the model that accepted, pass a
53
58
  # {BetaFallbackState} via the `fallback_state` request option; requests
54
59
  # sharing that state start directly at the pinned fallback.
@@ -72,7 +77,7 @@ module Anthropic
72
77
  # …) patch the original request body for that hop — a value overrides
73
78
  # the param, an explicit `nil` unsets it, an absent key keeps the
74
79
  # original value (an absent `thinking:` sends `between_tools` as
75
- # `disabled`).
80
+ # `disabled`). On the streaming path only `speed:` patches it.
76
81
  # @param betas [Array<String>] betas added to the `anthropic-beta` header
77
82
  # of every `/v1/messages` request this middleware handles. Defaults to
78
83
  # `["fallback-credit-2026-07-01"]`; pass `[]` to send none.
@@ -129,24 +134,24 @@ module Anthropic
129
134
  end
130
135
 
131
136
  streaming = req.streaming?
137
+ entry = @fallbacks.fetch(start_index) unless start_index == -1
132
138
  initial_body =
133
- if start_index == -1
139
+ if entry.nil?
134
140
  body
135
141
  elsif streaming
136
- # Only `model` is honored on the streaming path so the credit token
137
- # — redeemable only against the refused request's body — stays valid
138
- # for the spliced hops.
139
- degrade_between_tools(body.merge(model: @fallbacks.fetch(start_index).fetch(:model)))
142
+ # Only `model` and `speed` are honored on the streaming path: the credit
143
+ # token is tied to the refused request's body.
144
+ degrade_between_tools(patch(body, entry.slice(:speed)).merge(model: entry.fetch(:model)))
140
145
  else
141
- apply_fallback(body, @fallbacks.fetch(start_index))
146
+ apply_fallback(body, entry)
142
147
  end
143
- res = nxt.call(req.with(body: initial_body))
148
+ res = entry ? send_hop(req, nxt, entry, initial_body).first : nxt.call(req.with(body: initial_body))
144
149
  return res unless res.status < 300
145
150
 
146
151
  if streaming
147
152
  first_hop = start_index + 1
148
153
  return res unless first_hop < @fallbacks.length
149
- return splice_fallback_stream(req, res, nxt, body, first_hop, pin)
154
+ return splice_fallback_stream(req, res, nxt, initial_body, first_hop, pin)
150
155
  end
151
156
 
152
157
  handle_non_streaming(req, res, nxt, body, start_index, pin)
@@ -276,6 +281,25 @@ module Anthropic
276
281
  {token: token, mode: Anthropic::Models::Beta::BetaFallbackCreditTokenParam::Mode::BEST_EFFORT}
277
282
  end
278
283
 
284
+ # Send a request built from `entry`. One that is fast only because the
285
+ # original request was, and is rejected with a 429 or 529, is resent once
286
+ # without `speed`, and that response stands in for the first.
287
+ #
288
+ # @param req [Anthropic::APIRequest]
289
+ # @param nxt [#call]
290
+ # @param entry [Hash{Symbol=>Object}]
291
+ # @param hop_body [Hash{Symbol=>Object}]
292
+ # @return [Array(Anthropic::APIResponse, Boolean)] the response, and whether
293
+ # it answers the resend.
294
+ def send_hop(req, nxt, entry, hop_body)
295
+ res = nxt.call(req.with(body: hop_body))
296
+ return [res, false] unless [429, 529].include?(res.status)
297
+ return [res, false] if entry.key?(:speed) || hop_body[:speed].to_s != "fast"
298
+
299
+ Anthropic::Internal::Util.close_fused!(res.body)
300
+ [nxt.call(req.with(body: hop_body.except(:speed))), true]
301
+ end
302
+
279
303
  # --- non-streaming ------------------------------------------------------
280
304
 
281
305
  # @param req [Anthropic::APIRequest]
@@ -303,7 +327,7 @@ module Anthropic
303
327
  hop_body = hop_body.merge(fallback_credit_token: credit_token_param(token)) if token
304
328
 
305
329
  begin
306
- hop_res = nxt.call(req.with(body: hop_body))
330
+ hop_res = send_hop(req, nxt, entry, hop_body).first
307
331
  rescue StandardError
308
332
  hop_res = nil
309
333
  end
@@ -359,7 +383,7 @@ module Anthropic
359
383
  # @param req [Anthropic::APIRequest]
360
384
  # @param res [Anthropic::APIResponse]
361
385
  # @param nxt [#call]
362
- # @param body [Hash{Symbol=>Object}] the stripped request body
386
+ # @param body [Hash{Symbol=>Object}] the body built for stream A
363
387
  # @param first_hop [Integer]
364
388
  # @param pin [Proc]
365
389
  # @return [Anthropic::APIResponse]
@@ -399,10 +423,12 @@ module Anthropic
399
423
  iterations = [iteration_usage("message", a[:model] || "", a.dig(:refused, :usage))]
400
424
 
401
425
  (first_hop...@fallbacks.length).each do |hop|
402
- model = @fallbacks.fetch(hop).fetch(:model).to_s
426
+ entry = @fallbacks.fetch(hop)
427
+ model = entry.fetch(:model).to_s
403
428
  has_next = hop + 1 < @fallbacks.length
404
429
 
405
- res_b, sent, failed = issue_hop(req, nxt, degrade_between_tools(body), model, token, base, partial)
430
+ hop_body = degrade_between_tools(patch(body, entry.slice(:speed)))
431
+ res_b, sent, failed = issue_hop(req, nxt, hop_body, entry, token, base, partial)
406
432
 
407
433
  if failed
408
434
  next if has_next
@@ -465,15 +491,19 @@ module Anthropic
465
491
  end
466
492
  end
467
493
 
468
- # Issue one fallback hop with a single 400-on-prefill retry.
494
+ # Issue one fallback hop with a single 400-on-prefill retry, which stays
495
+ # without `speed` once the hop has been resent without it.
469
496
  #
470
497
  # @return [Array(Anthropic::APIResponse, Array<Hash>, false), Array(nil, Array<Hash>, true)]
471
498
  # the response, the continuation actually sent (`base + partial`, or
472
499
  # `base` if the prefill was dropped on retry), and whether the hop failed.
473
- def issue_hop(req, nxt, body, model, token, base, partial)
500
+ def issue_hop(req, nxt, body, entry, token, base, partial)
474
501
  continuation = base + partial
475
502
  2.times do |attempt|
476
- hop_body = body.merge(model: model, fallback_credit_token: credit_token_param(token))
503
+ hop_body = body.merge(
504
+ model: entry.fetch(:model).to_s,
505
+ fallback_credit_token: credit_token_param(token)
506
+ )
477
507
  unless continuation.empty?
478
508
  hop_body = hop_body.merge(
479
509
  messages: body.fetch(:messages) + [{role: :assistant, content: continuation}]
@@ -481,10 +511,11 @@ module Anthropic
481
511
  end
482
512
 
483
513
  begin
484
- res = nxt.call(req.with(body: hop_body))
514
+ res, resent = send_hop(req, nxt, entry, hop_body)
485
515
  rescue StandardError
486
516
  return [nil, continuation, true]
487
517
  end
518
+ body = body.except(:speed) if resent
488
519
  return [res, continuation, false] if res.status < 300
489
520
 
490
521
  if attempt.zero? && res.status == 400 && !partial.empty?
@@ -22,12 +22,20 @@ module Anthropic
22
22
  #
23
23
  # @return [Enumerable<generic<Elem>>]
24
24
  private def iterator
25
- @iterator ||= Anthropic::Internal::Util.chain_fused(@stream) do |y|
25
+ # Closing this stream closes the raw stream, which ends the request.
26
+ @iterator ||= Anthropic::Internal::Util.chain_fused(@raw_stream.to_enum) do |y|
26
27
  @raw_stream.each do |raw_event|
27
- @accumated_message_snapshot = accumulate_event(
28
- event: raw_event,
29
- current_snapshot: @accumated_message_snapshot
30
- )
28
+ # An event of a type this version doesn't know arrives as the closest known class, with
29
+ # `type` left as a String.
30
+ unless raw_event.type.is_a?(Symbol)
31
+ y << raw_event
32
+ next
33
+ end
34
+
35
+ @accumated_message_snapshot =
36
+ Anthropic::Helpers::Tracing.accumulate_streamed_message(@raw_stream) do
37
+ accumulate_event(event: raw_event, current_snapshot: @accumated_message_snapshot)
38
+ end
31
39
  events_to_yield = build_events(event: raw_event, message_snapshot: @accumated_message_snapshot)
32
40
  events_to_yield.each(&y)
33
41
  end
@@ -96,18 +104,11 @@ module Anthropic
96
104
  raise ArgumentError.new(message)
97
105
  end
98
106
 
99
- if current_snapshot.nil?
100
- return event.message if event.type == :message_start
101
-
102
- message = "Unexpected event order, got \"#{event.type}\" before \":message_start\""
103
- raise RuntimeError.new(message)
104
- end
105
-
106
107
  case event
107
108
  in Anthropic::Models::RawMessageStartEvent
108
- # `coerce` returns `event.message` itself when it is already a Message (as does the
109
- # first-event return above), so the snapshot *is* the message_start event's message
110
- # and the branches below mutate it in place rather than an isolated copy.
109
+ # `coerce` returns `event.message` itself when it is already a Message, so the snapshot *is*
110
+ # the message_start event's message and the branches below mutate it in place rather than
111
+ # an isolated copy.
111
112
  return Anthropic::Internal::Type::Converter.coerce(Anthropic::Models::Message, event.message)
112
113
  in Anthropic::Models::BetaRawMessageStartEvent
113
114
  return Anthropic::Internal::Type::Converter.coerce(Anthropic::Models::BetaMessage, event.message)
@@ -316,6 +317,7 @@ module Anthropic
316
317
  # @api private
317
318
  #
318
319
  # Parse tool use blocks and text blocks with structured output in the message.
320
+ # A block is kept as it arrived, with only `parsed` added to it.
319
321
  #
320
322
  # @param message [Anthropic::Models::Message] The message to parse
321
323
  #
@@ -324,7 +326,7 @@ module Anthropic
324
326
  return message unless message&.content
325
327
 
326
328
  # rubocop:disable Metrics/BlockLength
327
- message.content.each_with_index do |content, index|
329
+ message.content.each do |content|
328
330
  case content.type
329
331
  when :tool_use
330
332
  next unless (tool = @tools[content.name])
@@ -342,20 +344,7 @@ module Anthropic
342
344
  e
343
345
  end
344
346
 
345
- cls =
346
- case content
347
- in Anthropic::ContentBlock
348
- Anthropic::Models::ToolUseBlock
349
- else
350
- Anthropic::Models::BetaToolUseBlock
351
- end
352
- message.content[index] = cls.new(
353
- id: content.id,
354
- input: content.input,
355
- name: content.name,
356
- type: content.type,
357
- parsed: parsed
358
- )
347
+ content.parsed = parsed
359
348
  when :text
360
349
  next unless (model = @models.first&.last)
361
350
 
@@ -367,19 +356,7 @@ module Anthropic
367
356
  {error: e.message}
368
357
  end
369
358
 
370
- cls =
371
- case content
372
- in Anthropic::ContentBlock
373
- Anthropic::Models::TextBlock
374
- else
375
- Anthropic::Models::BetaTextBlock
376
- end
377
- message.content[index] = cls.new(
378
- citations: content.citations,
379
- text: content.text,
380
- type: content.type,
381
- parsed: parsed
382
- )
359
+ content.parsed = parsed
383
360
  end
384
361
  end
385
362
  # rubocop:enable Metrics/BlockLength