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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +57 -0
- data/LICENSE +8 -0
- data/README.md +42 -1
- data/lib/anthropic/client.rb +32 -0
- data/lib/anthropic/helpers/aws/client.rb +12 -2
- data/lib/anthropic/helpers/aws_auth.rb +8 -1
- data/lib/anthropic/helpers/bedrock/client.rb +19 -2
- data/lib/anthropic/helpers/bedrock/mantle_client.rb +19 -2
- data/lib/anthropic/helpers/google_cloud/client.rb +12 -2
- data/lib/anthropic/helpers/refusal_fallback.rb +52 -21
- data/lib/anthropic/helpers/streaming/message_stream.rb +20 -43
- data/lib/anthropic/helpers/tools/runner.rb +104 -11
- data/lib/anthropic/helpers/tracing/attributes.rb +34 -0
- data/lib/anthropic/helpers/tracing/config.rb +16 -0
- data/lib/anthropic/helpers/tracing/content.rb +346 -0
- data/lib/anthropic/helpers/tracing/recorders.rb +131 -0
- data/lib/anthropic/helpers/tracing/response.rb +29 -0
- data/lib/anthropic/helpers/tracing/streamed_message.rb +189 -0
- data/lib/anthropic/helpers/tracing/tool_spans.rb +138 -0
- data/lib/anthropic/helpers/tracing.rb +13 -0
- data/lib/anthropic/helpers/vertex/client.rb +19 -2
- data/lib/anthropic/internal/tracing.rb +1118 -0
- data/lib/anthropic/internal/transport/base_client.rb +174 -10
- data/lib/anthropic/internal/transport/pooled_net_requester.rb +6 -0
- data/lib/anthropic/models/anthropic_beta.rb +3 -0
- data/lib/anthropic/models/beta/agent_archive_params.rb +3 -2
- data/lib/anthropic/models/beta/agent_create_params.rb +20 -8
- data/lib/anthropic/models/beta/agent_list_params.rb +3 -2
- data/lib/anthropic/models/beta/agent_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/agent_update_params.rb +20 -8
- data/lib/anthropic/models/beta/agents/version_list_params.rb +3 -2
- data/lib/anthropic/models/beta/beta_dream_input.rb +2 -2
- data/lib/anthropic/models/beta/beta_fallbacks_param.rb +6 -2
- data/lib/anthropic/models/beta/beta_managed_agents_agent.rb +15 -6
- data/lib/anthropic/models/beta/beta_managed_agents_agent_tool_config_params.rb +8 -8
- data/lib/anthropic/models/beta/beta_managed_agents_agent_toolset_default_config.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_agent_toolset_default_config_params.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_agent_with_overrides_params.rb +6 -6
- data/lib/anthropic/models/beta/beta_managed_agents_aws_role_execution_identity.rb +29 -0
- data/lib/anthropic/models/beta/beta_managed_agents_aws_role_execution_identity_params.rb +34 -0
- data/lib/anthropic/models/beta/beta_managed_agents_bash_tool_config.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_bash_tool_config_params.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_deployment_initial_event.rb +3 -3
- data/lib/anthropic/models/beta/beta_managed_agents_deployment_initial_event_params.rb +3 -3
- data/lib/anthropic/models/beta/beta_managed_agents_deployment_paused_reason.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_deployment_paused_reason_error.rb +38 -14
- data/lib/anthropic/models/beta/beta_managed_agents_deployment_run.rb +16 -16
- data/lib/anthropic/models/beta/beta_managed_agents_deployment_user_define_outcome_event.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_deployment_user_message_event.rb +4 -4
- data/lib/anthropic/models/beta/beta_managed_agents_edit_tool_config.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_edit_tool_config_params.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_execution_identity.rb +57 -0
- data/lib/anthropic/models/beta/beta_managed_agents_execution_identity_params.rb +62 -0
- data/lib/anthropic/models/beta/beta_managed_agents_github_repository_resource_config.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_github_repository_resource_params.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_glob_tool_config.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_glob_tool_config_params.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_grep_tool_config.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_grep_tool_config_params.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_mcp_tool_config.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_mcp_tool_config_params.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_mcp_toolset_default_config.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_mcp_toolset_default_config_params.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_model.rb +0 -2
- data/lib/anthropic/models/beta/beta_managed_agents_model_config.rb +5 -5
- data/lib/anthropic/models/beta/beta_managed_agents_multiagent.rb +1 -1
- data/lib/anthropic/models/beta/beta_managed_agents_multiagent_coordinator.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_multiagent_params.rb +1 -1
- data/lib/anthropic/models/beta/beta_managed_agents_read_tool_config.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_read_tool_config_params.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_service_account_execution_identity.rb +21 -0
- data/lib/anthropic/models/beta/beta_managed_agents_service_account_execution_identity_params.rb +23 -0
- data/lib/anthropic/models/beta/beta_managed_agents_session_agent.rb +16 -6
- data/lib/anthropic/models/beta/beta_managed_agents_session_agent_update.rb +3 -3
- data/lib/anthropic/models/beta/beta_managed_agents_session_multiagent.rb +1 -1
- data/lib/anthropic/models/beta/beta_managed_agents_session_multiagent_coordinator.rb +8 -2
- data/lib/anthropic/models/beta/beta_managed_agents_session_resource_config.rb +3 -3
- data/lib/anthropic/models/beta/beta_managed_agents_session_thread_agent.rb +19 -6
- data/lib/anthropic/models/beta/beta_managed_agents_skill_params.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_start_event_preview.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_trigger_context.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_user_tool_result_event.rb +4 -4
- data/lib/anthropic/models/beta/beta_managed_agents_web_fetch_tool_config.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_web_fetch_tool_config_params.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_web_search_tool_config.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_web_search_tool_config_params.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_write_tool_config.rb +2 -2
- data/lib/anthropic/models/beta/beta_managed_agents_write_tool_config_params.rb +2 -2
- data/lib/anthropic/models/beta/beta_message_delta_usage.rb +0 -1
- data/lib/anthropic/models/beta/beta_output_behavior.rb +2 -2
- data/lib/anthropic/models/beta/beta_thinking_config_adaptive.rb +6 -4
- data/lib/anthropic/models/beta/beta_thinking_config_enabled.rb +6 -4
- data/lib/anthropic/models/beta/beta_thinking_config_param.rb +8 -7
- data/lib/anthropic/models/beta/beta_thinking_types.rb +17 -2
- data/lib/anthropic/models/beta/beta_usage.rb +0 -1
- data/lib/anthropic/models/beta/deployment_archive_params.rb +3 -2
- data/lib/anthropic/models/beta/deployment_create_params.rb +6 -5
- data/lib/anthropic/models/beta/deployment_list_params.rb +3 -2
- data/lib/anthropic/models/beta/deployment_pause_params.rb +3 -2
- data/lib/anthropic/models/beta/deployment_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/deployment_run_list_params.rb +3 -2
- data/lib/anthropic/models/beta/deployment_run_params.rb +3 -2
- data/lib/anthropic/models/beta/deployment_run_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/deployment_unpause_params.rb +3 -2
- data/lib/anthropic/models/beta/deployment_update_params.rb +6 -5
- data/lib/anthropic/models/beta/dream_archive_params.rb +3 -2
- data/lib/anthropic/models/beta/dream_cancel_params.rb +3 -2
- data/lib/anthropic/models/beta/dream_create_params.rb +3 -2
- data/lib/anthropic/models/beta/dream_list_params.rb +3 -2
- data/lib/anthropic/models/beta/dream_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/memory_store_archive_params.rb +3 -2
- data/lib/anthropic/models/beta/memory_store_create_params.rb +3 -2
- data/lib/anthropic/models/beta/memory_store_delete_params.rb +3 -2
- data/lib/anthropic/models/beta/memory_store_list_params.rb +3 -2
- data/lib/anthropic/models/beta/memory_store_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/memory_store_update_params.rb +3 -2
- data/lib/anthropic/models/beta/memory_stores/beta_managed_agents_actor.rb +3 -3
- data/lib/anthropic/models/beta/memory_stores/beta_managed_agents_error.rb +6 -3
- data/lib/anthropic/models/beta/memory_stores/beta_managed_agents_memory_list_item.rb +2 -2
- data/lib/anthropic/models/beta/memory_stores/memory_create_params.rb +3 -2
- data/lib/anthropic/models/beta/memory_stores/memory_delete_params.rb +3 -2
- data/lib/anthropic/models/beta/memory_stores/memory_list_params.rb +3 -2
- data/lib/anthropic/models/beta/memory_stores/memory_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/memory_stores/memory_update_params.rb +3 -2
- data/lib/anthropic/models/beta/memory_stores/memory_version_list_params.rb +3 -2
- data/lib/anthropic/models/beta/memory_stores/memory_version_redact_params.rb +3 -2
- data/lib/anthropic/models/beta/memory_stores/memory_version_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/message_count_tokens_params.rb +25 -10
- data/lib/anthropic/models/beta/message_create_params.rb +31 -12
- data/lib/anthropic/models/beta/messages/batch_create_params.rb +31 -12
- data/lib/anthropic/models/beta/organization/beta_analytics_cost_bucketed_result.rb +3 -3
- data/lib/anthropic/models/beta/organization/beta_analytics_cost_users_item.rb +3 -3
- data/lib/anthropic/models/beta/organization/beta_analytics_usage_bucketed_result.rb +3 -3
- data/lib/anthropic/models/beta/organization/beta_analytics_usage_users_item.rb +3 -3
- data/lib/anthropic/models/beta/organization/beta_deleted_telemetry_destination.rb +30 -0
- data/lib/anthropic/models/beta/organization/beta_spend_limit.rb +16 -6
- data/lib/anthropic/models/beta/organization/beta_spend_limit_usage_tier_scope.rb +25 -0
- data/lib/anthropic/models/beta/organization/beta_spend_summary.rb +28 -8
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination.rb +118 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_content_mode.rb +29 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_delivery_health.rb +69 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason.rb +73 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_caller.rb +21 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_invalid_address.rb +29 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_redirect.rb +23 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_sustained_failure.rb +25 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_state.rb +71 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_state_disabled.rb +36 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_state_disabled_params.rb +24 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_state_enabled.rb +21 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_state_enabled_params.rb +23 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_state_params.rb +61 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_test_failure.rb +37 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_test_response.rb +35 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_test_result.rb +61 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_test_success.rb +21 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_traces.rb +61 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_traces_params.rb +71 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces.rb +69 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_all.rb +23 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_all_params.rb +23 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_exclude.rb +22 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_exclude_params.rb +49 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_include.rb +21 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_include_params.rb +49 -0
- data/lib/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_params.rb +70 -0
- data/lib/anthropic/models/beta/organization/invite_create_params.rb +4 -2
- data/lib/anthropic/models/beta/organization/spend_limit_list_params.rb +2 -5
- data/lib/anthropic/models/beta/organization/telemetry_destination_create_params.rb +94 -0
- data/lib/anthropic/models/beta/organization/telemetry_destination_delete_params.rb +39 -0
- data/lib/anthropic/models/beta/organization/telemetry_destination_list_params.rb +63 -0
- data/lib/anthropic/models/beta/organization/telemetry_destination_retrieve_params.rb +39 -0
- data/lib/anthropic/models/beta/organization/telemetry_destination_test_params.rb +39 -0
- data/lib/anthropic/models/beta/organization/telemetry_destination_update_params.rb +121 -0
- data/lib/anthropic/models/beta/organization/telemetry_destinations/beta_deleted_telemetry_destination_workspace.rb +40 -0
- data/lib/anthropic/models/beta/organization/telemetry_destinations/beta_telemetry_destination_workspace.rb +52 -0
- data/lib/anthropic/models/beta/organization/telemetry_destinations/workspace_add_params.rb +49 -0
- data/lib/anthropic/models/beta/organization/telemetry_destinations/workspace_list_params.rb +58 -0
- data/lib/anthropic/models/beta/organization/telemetry_destinations/workspace_remove_params.rb +49 -0
- data/lib/anthropic/models/beta/organization/user_update_params.rb +4 -2
- data/lib/anthropic/models/beta/session_archive_params.rb +3 -2
- data/lib/anthropic/models/beta/session_create_params.rb +8 -7
- data/lib/anthropic/models/beta/session_delete_params.rb +3 -2
- data/lib/anthropic/models/beta/session_list_params.rb +3 -2
- data/lib/anthropic/models/beta/session_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/session_update_params.rb +3 -2
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_agent_custom_tool_use_event.rb +3 -1
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_agent_mcp_tool_result_event.rb +4 -4
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_agent_message_event.rb +2 -2
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_agent_thread_message_received_event.rb +4 -4
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_agent_thread_message_sent_event.rb +4 -4
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_agent_tool_result_event.rb +4 -4
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_billing_error.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_credential_host_unreachable_error.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_document_block.rb +4 -4
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_event_params.rb +14 -8
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_github_repository_resource.rb +2 -2
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_image_block.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_inline_agent.rb +14 -6
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_mcp_authentication_failed_error.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_mcp_connection_failed_error.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_model_overloaded_error.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_model_rate_limited_error.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_model_request_failed_error.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_repository_authentication_error.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_repository_checkout_error.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_repository_clone_error.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_repository_forbidden_error.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_repository_not_found_error.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_send_session_events.rb +8 -8
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_session_error_event.rb +14 -8
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_session_event.rb +64 -37
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_session_resource.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_session_status_idle_event.rb +4 -4
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_session_thread.rb +8 -2
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_session_thread_status_idle_event.rb +4 -4
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_stream_session_events.rb +66 -39
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_stream_session_thread_events.rb +66 -39
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_unknown_error.rb +3 -3
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_user_custom_tool_result_event.rb +7 -7
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_user_custom_tool_result_event_params.rb +7 -7
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_user_define_outcome_event.rb +2 -2
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_user_define_outcome_event_params.rb +2 -2
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_user_message_event.rb +4 -4
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_user_message_event_params.rb +4 -4
- data/lib/anthropic/models/beta/sessions/beta_managed_agents_user_tool_result_event_params.rb +4 -4
- data/lib/anthropic/models/beta/sessions/event_list_params.rb +3 -2
- data/lib/anthropic/models/beta/sessions/event_send_params.rb +3 -2
- data/lib/anthropic/models/beta/sessions/event_stream_params.rb +3 -2
- data/lib/anthropic/models/beta/sessions/resource_add_params.rb +3 -2
- data/lib/anthropic/models/beta/sessions/resource_delete_params.rb +3 -2
- data/lib/anthropic/models/beta/sessions/resource_list_params.rb +3 -2
- data/lib/anthropic/models/beta/sessions/resource_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/sessions/resource_retrieve_response.rb +3 -3
- data/lib/anthropic/models/beta/sessions/resource_update_params.rb +3 -2
- data/lib/anthropic/models/beta/sessions/resource_update_response.rb +3 -3
- data/lib/anthropic/models/beta/sessions/thread_archive_params.rb +3 -2
- data/lib/anthropic/models/beta/sessions/thread_list_params.rb +3 -2
- data/lib/anthropic/models/beta/sessions/thread_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/sessions/threads/event_list_params.rb +3 -2
- data/lib/anthropic/models/beta/sessions/threads/event_stream_params.rb +3 -2
- data/lib/anthropic/models/beta/tunnel_archive_params.rb +3 -2
- data/lib/anthropic/models/beta/tunnel_create_params.rb +3 -2
- data/lib/anthropic/models/beta/tunnel_list_params.rb +3 -2
- data/lib/anthropic/models/beta/tunnel_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/tunnel_reveal_token_params.rb +3 -2
- data/lib/anthropic/models/beta/tunnel_rotate_token_params.rb +3 -2
- data/lib/anthropic/models/beta/tunnels/certificate_archive_params.rb +3 -2
- data/lib/anthropic/models/beta/tunnels/certificate_create_params.rb +3 -2
- data/lib/anthropic/models/beta/tunnels/certificate_list_params.rb +3 -2
- data/lib/anthropic/models/beta/tunnels/certificate_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/user_profile_create_enrollment_url_params.rb +3 -2
- data/lib/anthropic/models/beta/user_profile_create_params.rb +3 -2
- data/lib/anthropic/models/beta/user_profile_list_params.rb +3 -2
- data/lib/anthropic/models/beta/user_profile_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/user_profile_update_params.rb +3 -2
- data/lib/anthropic/models/beta/vault_archive_params.rb +3 -2
- data/lib/anthropic/models/beta/vault_create_params.rb +3 -2
- data/lib/anthropic/models/beta/vault_delete_params.rb +3 -2
- data/lib/anthropic/models/beta/vault_list_params.rb +3 -2
- data/lib/anthropic/models/beta/vault_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/vault_update_params.rb +3 -2
- data/lib/anthropic/models/beta/vaults/beta_managed_agents_credential.rb +6 -3
- data/lib/anthropic/models/beta/vaults/beta_managed_agents_credential_networking_params.rb +7 -2
- data/lib/anthropic/models/beta/vaults/beta_managed_agents_environment_variable_auth_response.rb +7 -2
- data/lib/anthropic/models/beta/vaults/beta_managed_agents_mcp_oauth_refresh_params.rb +3 -3
- data/lib/anthropic/models/beta/vaults/beta_managed_agents_mcp_oauth_refresh_response.rb +12 -3
- data/lib/anthropic/models/beta/vaults/beta_managed_agents_mcp_oauth_refresh_update_params.rb +8 -2
- data/lib/anthropic/models/beta/vaults/credential_archive_params.rb +3 -2
- data/lib/anthropic/models/beta/vaults/credential_create_params.rb +9 -5
- data/lib/anthropic/models/beta/vaults/credential_delete_params.rb +3 -2
- data/lib/anthropic/models/beta/vaults/credential_list_params.rb +3 -2
- data/lib/anthropic/models/beta/vaults/credential_mcp_oauth_validate_params.rb +3 -2
- data/lib/anthropic/models/beta/vaults/credential_retrieve_params.rb +3 -2
- data/lib/anthropic/models/beta/vaults/credential_update_params.rb +9 -5
- data/lib/anthropic/models/message_count_tokens_params.rb +47 -11
- data/lib/anthropic/models/message_create_params.rb +47 -11
- data/lib/anthropic/models/messages/batch_create_params.rb +53 -11
- data/lib/anthropic/models/model.rb +0 -2
- data/lib/anthropic/models/organization/invite_create_params.rb +4 -2
- data/lib/anthropic/models/organization/user_update_params.rb +4 -2
- data/lib/anthropic/models/thinking_config_adaptive.rb +6 -4
- data/lib/anthropic/models/thinking_config_enabled.rb +6 -4
- data/lib/anthropic/models/thinking_config_param.rb +8 -7
- data/lib/anthropic/models/thinking_types.rb +17 -2
- data/lib/anthropic/models/usage.rb +22 -1
- data/lib/anthropic/request_options.rb +7 -0
- data/lib/anthropic/resources/beta/agents/versions.rb +5 -1
- data/lib/anthropic/resources/beta/agents.rb +27 -7
- data/lib/anthropic/resources/beta/deployment_runs.rb +18 -2
- data/lib/anthropic/resources/beta/deployments.rb +32 -8
- data/lib/anthropic/resources/beta/dreams.rb +20 -5
- data/lib/anthropic/resources/beta/environments/work.rb +42 -0
- data/lib/anthropic/resources/beta/environments.rb +18 -0
- data/lib/anthropic/resources/beta/files.rb +15 -0
- data/lib/anthropic/resources/beta/memory_stores/memories.rb +36 -5
- data/lib/anthropic/resources/beta/memory_stores/memory_versions.rb +31 -3
- data/lib/anthropic/resources/beta/memory_stores.rb +24 -6
- data/lib/anthropic/resources/beta/messages/batches.rb +19 -1
- data/lib/anthropic/resources/beta/messages.rb +12 -4
- data/lib/anthropic/resources/beta/models.rb +6 -0
- data/lib/anthropic/resources/beta/organization/analytics/apps/chat/projects.rb +3 -0
- data/lib/anthropic/resources/beta/organization/analytics/artifacts.rb +3 -0
- data/lib/anthropic/resources/beta/organization/analytics/connectors.rb +4 -0
- data/lib/anthropic/resources/beta/organization/analytics/cost_report.rb +20 -0
- data/lib/anthropic/resources/beta/organization/analytics/plugins.rb +4 -0
- data/lib/anthropic/resources/beta/organization/analytics/skills.rb +4 -0
- data/lib/anthropic/resources/beta/organization/analytics/summaries.rb +3 -0
- data/lib/anthropic/resources/beta/organization/analytics/usage_report.rb +20 -0
- data/lib/anthropic/resources/beta/organization/analytics/user_cost_report.rb +23 -0
- data/lib/anthropic/resources/beta/organization/analytics/user_usage_report.rb +23 -0
- data/lib/anthropic/resources/beta/organization/analytics/users.rb +4 -0
- data/lib/anthropic/resources/beta/organization/api_keys.rb +9 -0
- data/lib/anthropic/resources/beta/organization/compliance_settings.rb +4 -0
- data/lib/anthropic/resources/beta/organization/external_keys.rb +18 -0
- data/lib/anthropic/resources/beta/organization/federation/issuers.rb +15 -0
- data/lib/anthropic/resources/beta/organization/federation/rules/workspaces.rb +14 -0
- data/lib/anthropic/resources/beta/organization/federation/rules.rb +15 -0
- data/lib/anthropic/resources/beta/organization/invites.rb +12 -0
- data/lib/anthropic/resources/beta/organization/plugin_marketplaces.rb +14 -0
- data/lib/anthropic/resources/beta/organization/plugins/installation_settings.rb +16 -0
- data/lib/anthropic/resources/beta/organization/plugins/shares.rb +4 -0
- data/lib/anthropic/resources/beta/organization/plugins/versions.rb +22 -0
- data/lib/anthropic/resources/beta/organization/plugins.rb +27 -0
- data/lib/anthropic/resources/beta/organization/rate_limits.rb +3 -0
- data/lib/anthropic/resources/beta/organization/rbac_groups/members.rb +14 -0
- data/lib/anthropic/resources/beta/organization/rbac_groups.rb +15 -0
- data/lib/anthropic/resources/beta/organization/rbac_roles/permissions.rb +4 -0
- data/lib/anthropic/resources/beta/organization/rbac_roles.rb +6 -0
- data/lib/anthropic/resources/beta/organization/service_accounts/workspaces.rb +14 -0
- data/lib/anthropic/resources/beta/organization/service_accounts.rb +15 -0
- data/lib/anthropic/resources/beta/organization/spend_limits/effective.rb +5 -2
- data/lib/anthropic/resources/beta/organization/spend_limits/increase_requests.rb +12 -0
- data/lib/anthropic/resources/beta/organization/spend_limits.rb +20 -9
- data/lib/anthropic/resources/beta/organization/telemetry_destinations/workspaces.rb +181 -0
- data/lib/anthropic/resources/beta/organization/telemetry_destinations.rb +286 -0
- data/lib/anthropic/resources/beta/organization/users.rb +12 -0
- data/lib/anthropic/resources/beta/organization/workspaces/members.rb +26 -0
- data/lib/anthropic/resources/beta/organization/workspaces/rate_limits.rb +4 -0
- data/lib/anthropic/resources/beta/organization/workspaces/service_accounts.rb +26 -0
- data/lib/anthropic/resources/beta/organization/workspaces.rb +15 -0
- data/lib/anthropic/resources/beta/organization.rb +7 -0
- data/lib/anthropic/resources/beta/sessions/events.rb +24 -4
- data/lib/anthropic/resources/beta/sessions/resources.rb +31 -5
- data/lib/anthropic/resources/beta/sessions/threads/events.rb +17 -3
- data/lib/anthropic/resources/beta/sessions/threads.rb +19 -3
- data/lib/anthropic/resources/beta/sessions.rb +38 -6
- data/lib/anthropic/resources/beta/skills/versions.rb +17 -0
- data/lib/anthropic/resources/beta/skills.rb +12 -0
- data/lib/anthropic/resources/beta/tunnels/certificates.rb +24 -4
- data/lib/anthropic/resources/beta/tunnels.rb +24 -6
- data/lib/anthropic/resources/beta/user_profiles.rb +20 -5
- data/lib/anthropic/resources/beta/vaults/credentials.rb +45 -7
- data/lib/anthropic/resources/beta/vaults.rb +24 -6
- data/lib/anthropic/resources/completions.rb +5 -1
- data/lib/anthropic/resources/files.rb +15 -0
- data/lib/anthropic/resources/messages/batches.rb +19 -1
- data/lib/anthropic/resources/messages.rb +24 -8
- data/lib/anthropic/resources/models.rb +6 -0
- data/lib/anthropic/resources/organization/api_keys.rb +9 -0
- data/lib/anthropic/resources/organization/compliance_settings.rb +4 -0
- data/lib/anthropic/resources/organization/external_keys.rb +18 -0
- data/lib/anthropic/resources/organization/federation/issuers.rb +15 -0
- data/lib/anthropic/resources/organization/federation/rules/workspaces.rb +14 -0
- data/lib/anthropic/resources/organization/federation/rules.rb +15 -0
- data/lib/anthropic/resources/organization/invites.rb +12 -0
- data/lib/anthropic/resources/organization/rate_limits.rb +3 -0
- data/lib/anthropic/resources/organization/service_accounts/workspaces.rb +14 -0
- data/lib/anthropic/resources/organization/service_accounts.rb +15 -0
- data/lib/anthropic/resources/organization/users.rb +12 -0
- data/lib/anthropic/resources/organization/workspaces/members.rb +26 -0
- data/lib/anthropic/resources/organization/workspaces/rate_limits.rb +4 -0
- data/lib/anthropic/resources/organization/workspaces/service_accounts.rb +26 -0
- data/lib/anthropic/resources/organization/workspaces.rb +15 -0
- data/lib/anthropic/resources/organization.rb +2 -0
- data/lib/anthropic/resources/skills/versions.rb +14 -0
- data/lib/anthropic/resources/skills.rb +12 -0
- data/lib/anthropic/version.rb +1 -1
- data/lib/anthropic.rb +59 -0
- data/rbi/anthropic/client.rbi +28 -0
- data/rbi/anthropic/helpers/aws/client.rbi +6 -2
- data/rbi/anthropic/helpers/bedrock/client.rbi +6 -2
- data/rbi/anthropic/helpers/bedrock/mantle_client.rbi +6 -2
- data/rbi/anthropic/helpers/google_cloud/client.rbi +6 -2
- data/rbi/anthropic/helpers/streaming/message_stream.rbi +4 -1
- data/rbi/anthropic/helpers/vertex/client.rbi +6 -2
- data/rbi/anthropic/internal/tracing.rbi +847 -0
- data/rbi/anthropic/internal/transport/base_client.rbi +93 -5
- data/rbi/anthropic/internal/type/base_stream.rbi +2 -0
- data/rbi/anthropic/models/anthropic_beta.rbi +5 -0
- data/rbi/anthropic/models/beta/agent_archive_params.rbi +4 -2
- data/rbi/anthropic/models/beta/agent_create_params.rbi +38 -5
- data/rbi/anthropic/models/beta/agent_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/agent_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/agent_update_params.rbi +38 -5
- data/rbi/anthropic/models/beta/agents/version_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/beta_fallback_param.rbi +3 -2
- data/rbi/anthropic/models/beta/beta_fallbacks_param.rbi +6 -2
- data/rbi/anthropic/models/beta/beta_managed_agents_agent.rbi +17 -0
- data/rbi/anthropic/models/beta/beta_managed_agents_agent_with_overrides_params.rbi +3 -3
- data/rbi/anthropic/models/beta/beta_managed_agents_aws_role_execution_identity.rbi +40 -0
- data/rbi/anthropic/models/beta/beta_managed_agents_aws_role_execution_identity_params.rbi +42 -0
- data/rbi/anthropic/models/beta/beta_managed_agents_execution_identity.rbi +85 -0
- data/rbi/anthropic/models/beta/beta_managed_agents_execution_identity_params.rbi +87 -0
- data/rbi/anthropic/models/beta/beta_managed_agents_model.rbi +0 -2
- data/rbi/anthropic/models/beta/beta_managed_agents_service_account_execution_identity.rbi +32 -0
- data/rbi/anthropic/models/beta/beta_managed_agents_service_account_execution_identity_params.rbi +33 -0
- data/rbi/anthropic/models/beta/beta_managed_agents_session_agent.rbi +19 -0
- data/rbi/anthropic/models/beta/beta_managed_agents_session_multiagent_coordinator.rbi +9 -0
- data/rbi/anthropic/models/beta/beta_managed_agents_session_thread_agent.rbi +19 -0
- data/rbi/anthropic/models/beta/beta_message_delta_usage.rbi +0 -2
- data/rbi/anthropic/models/beta/beta_thinking_config_adaptive.rbi +9 -6
- data/rbi/anthropic/models/beta/beta_thinking_config_enabled.rbi +9 -6
- data/rbi/anthropic/models/beta/beta_thinking_config_param.rbi +11 -9
- data/rbi/anthropic/models/beta/beta_thinking_types.rbi +31 -2
- data/rbi/anthropic/models/beta/beta_usage.rbi +0 -2
- data/rbi/anthropic/models/beta/deployment_archive_params.rbi +4 -2
- data/rbi/anthropic/models/beta/deployment_create_params.rbi +4 -2
- data/rbi/anthropic/models/beta/deployment_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/deployment_pause_params.rbi +4 -2
- data/rbi/anthropic/models/beta/deployment_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/deployment_run_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/deployment_run_params.rbi +4 -2
- data/rbi/anthropic/models/beta/deployment_run_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/deployment_unpause_params.rbi +4 -2
- data/rbi/anthropic/models/beta/deployment_update_params.rbi +4 -2
- data/rbi/anthropic/models/beta/dream_archive_params.rbi +4 -2
- data/rbi/anthropic/models/beta/dream_cancel_params.rbi +4 -2
- data/rbi/anthropic/models/beta/dream_create_params.rbi +4 -2
- data/rbi/anthropic/models/beta/dream_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/dream_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/memory_store_archive_params.rbi +4 -2
- data/rbi/anthropic/models/beta/memory_store_create_params.rbi +4 -2
- data/rbi/anthropic/models/beta/memory_store_delete_params.rbi +4 -2
- data/rbi/anthropic/models/beta/memory_store_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/memory_store_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/memory_store_update_params.rbi +4 -2
- data/rbi/anthropic/models/beta/memory_stores/memory_create_params.rbi +4 -2
- data/rbi/anthropic/models/beta/memory_stores/memory_delete_params.rbi +4 -2
- data/rbi/anthropic/models/beta/memory_stores/memory_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/memory_stores/memory_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/memory_stores/memory_update_params.rbi +4 -2
- data/rbi/anthropic/models/beta/memory_stores/memory_version_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/memory_stores/memory_version_redact_params.rbi +4 -2
- data/rbi/anthropic/models/beta/memory_stores/memory_version_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/message_count_tokens_params.rbi +43 -18
- data/rbi/anthropic/models/beta/message_create_params.rbi +55 -22
- data/rbi/anthropic/models/beta/messages/batch_create_params.rbi +55 -22
- data/rbi/anthropic/models/beta/organization/beta_analytics_cost_bucketed_result.rbi +6 -6
- data/rbi/anthropic/models/beta/organization/beta_analytics_cost_users_item.rbi +6 -6
- data/rbi/anthropic/models/beta/organization/beta_analytics_usage_bucketed_result.rbi +6 -6
- data/rbi/anthropic/models/beta/organization/beta_analytics_usage_users_item.rbi +6 -6
- data/rbi/anthropic/models/beta/organization/beta_deleted_telemetry_destination.rbi +39 -0
- data/rbi/anthropic/models/beta/organization/beta_spend_limit.rbi +13 -6
- data/rbi/anthropic/models/beta/organization/beta_spend_limit_usage_tier_scope.rbi +38 -0
- data/rbi/anthropic/models/beta/organization/beta_spend_summary.rbi +18 -4
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination.rbi +191 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_content_mode.rbi +53 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_delivery_health.rbi +106 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason.rbi +95 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_caller.rbi +31 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_invalid_address.rbi +39 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_redirect.rbi +33 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_sustained_failure.rbi +35 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_state.rbi +99 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_state_disabled.rbi +66 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_state_disabled_params.rbi +34 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_state_enabled.rbi +31 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_state_enabled_params.rbi +33 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_state_params.rbi +81 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_test_failure.rbi +47 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_test_response.rbi +62 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_test_result.rbi +88 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_test_success.rbi +31 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_traces.rbi +97 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_traces_params.rbi +120 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces.rbi +93 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_all.rbi +33 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_all_params.rbi +33 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_exclude.rbi +32 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_exclude_params.rbi +80 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_include.rbi +31 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_include_params.rbi +80 -0
- data/rbi/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_params.rbi +107 -0
- data/rbi/anthropic/models/beta/organization/invite_create_params.rbi +6 -3
- data/rbi/anthropic/models/beta/organization/spend_limit_list_params.rbi +2 -8
- data/rbi/anthropic/models/beta/organization/telemetry_destination_create_params.rbi +188 -0
- data/rbi/anthropic/models/beta/organization/telemetry_destination_delete_params.rbi +75 -0
- data/rbi/anthropic/models/beta/organization/telemetry_destination_list_params.rbi +116 -0
- data/rbi/anthropic/models/beta/organization/telemetry_destination_retrieve_params.rbi +75 -0
- data/rbi/anthropic/models/beta/organization/telemetry_destination_test_params.rbi +75 -0
- data/rbi/anthropic/models/beta/organization/telemetry_destination_update_params.rbi +266 -0
- data/rbi/anthropic/models/beta/organization/telemetry_destinations/beta_deleted_telemetry_destination_workspace.rbi +61 -0
- data/rbi/anthropic/models/beta/organization/telemetry_destinations/beta_telemetry_destination_workspace.rbi +73 -0
- data/rbi/anthropic/models/beta/organization/telemetry_destinations/workspace_add_params.rbi +86 -0
- data/rbi/anthropic/models/beta/organization/telemetry_destinations/workspace_list_params.rbi +102 -0
- data/rbi/anthropic/models/beta/organization/telemetry_destinations/workspace_remove_params.rbi +86 -0
- data/rbi/anthropic/models/beta/organization/user_update_params.rbi +6 -3
- data/rbi/anthropic/models/beta/session_archive_params.rbi +4 -2
- data/rbi/anthropic/models/beta/session_create_params.rbi +4 -2
- data/rbi/anthropic/models/beta/session_delete_params.rbi +4 -2
- data/rbi/anthropic/models/beta/session_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/session_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/session_update_params.rbi +4 -2
- data/rbi/anthropic/models/beta/sessions/beta_managed_agents_agent_custom_tool_use_event.rbi +3 -1
- data/rbi/anthropic/models/beta/sessions/beta_managed_agents_event_params.rbi +2 -2
- data/rbi/anthropic/models/beta/sessions/beta_managed_agents_inline_agent.rbi +17 -0
- data/rbi/anthropic/models/beta/sessions/beta_managed_agents_send_session_events.rbi +2 -2
- data/rbi/anthropic/models/beta/sessions/beta_managed_agents_session_event.rbi +2 -2
- data/rbi/anthropic/models/beta/sessions/beta_managed_agents_session_thread.rbi +9 -0
- data/rbi/anthropic/models/beta/sessions/beta_managed_agents_stream_session_events.rbi +2 -2
- data/rbi/anthropic/models/beta/sessions/beta_managed_agents_stream_session_thread_events.rbi +2 -2
- data/rbi/anthropic/models/beta/sessions/beta_managed_agents_user_custom_tool_result_event.rbi +4 -4
- data/rbi/anthropic/models/beta/sessions/beta_managed_agents_user_custom_tool_result_event_params.rbi +4 -4
- data/rbi/anthropic/models/beta/sessions/event_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/sessions/event_send_params.rbi +4 -2
- data/rbi/anthropic/models/beta/sessions/event_stream_params.rbi +4 -2
- data/rbi/anthropic/models/beta/sessions/resource_add_params.rbi +4 -2
- data/rbi/anthropic/models/beta/sessions/resource_delete_params.rbi +4 -2
- data/rbi/anthropic/models/beta/sessions/resource_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/sessions/resource_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/sessions/resource_update_params.rbi +4 -2
- data/rbi/anthropic/models/beta/sessions/thread_archive_params.rbi +4 -2
- data/rbi/anthropic/models/beta/sessions/thread_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/sessions/thread_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/sessions/threads/event_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/sessions/threads/event_stream_params.rbi +4 -2
- data/rbi/anthropic/models/beta/tunnel_archive_params.rbi +4 -2
- data/rbi/anthropic/models/beta/tunnel_create_params.rbi +4 -2
- data/rbi/anthropic/models/beta/tunnel_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/tunnel_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/tunnel_reveal_token_params.rbi +4 -2
- data/rbi/anthropic/models/beta/tunnel_rotate_token_params.rbi +4 -2
- data/rbi/anthropic/models/beta/tunnels/certificate_archive_params.rbi +4 -2
- data/rbi/anthropic/models/beta/tunnels/certificate_create_params.rbi +4 -2
- data/rbi/anthropic/models/beta/tunnels/certificate_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/tunnels/certificate_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/user_profile_create_enrollment_url_params.rbi +4 -2
- data/rbi/anthropic/models/beta/user_profile_create_params.rbi +4 -2
- data/rbi/anthropic/models/beta/user_profile_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/user_profile_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/user_profile_update_params.rbi +4 -2
- data/rbi/anthropic/models/beta/vault_archive_params.rbi +4 -2
- data/rbi/anthropic/models/beta/vault_create_params.rbi +4 -2
- data/rbi/anthropic/models/beta/vault_delete_params.rbi +4 -2
- data/rbi/anthropic/models/beta/vault_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/vault_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/vault_update_params.rbi +4 -2
- data/rbi/anthropic/models/beta/vaults/credential_archive_params.rbi +4 -2
- data/rbi/anthropic/models/beta/vaults/credential_create_params.rbi +4 -2
- data/rbi/anthropic/models/beta/vaults/credential_delete_params.rbi +4 -2
- data/rbi/anthropic/models/beta/vaults/credential_list_params.rbi +4 -2
- data/rbi/anthropic/models/beta/vaults/credential_mcp_oauth_validate_params.rbi +4 -2
- data/rbi/anthropic/models/beta/vaults/credential_retrieve_params.rbi +4 -2
- data/rbi/anthropic/models/beta/vaults/credential_update_params.rbi +4 -2
- data/rbi/anthropic/models/message_count_tokens_params.rbi +85 -18
- data/rbi/anthropic/models/message_create_params.rbi +77 -18
- data/rbi/anthropic/models/messages/batch_create_params.rbi +101 -18
- data/rbi/anthropic/models/model.rbi +0 -2
- data/rbi/anthropic/models/organization/invite_create_params.rbi +6 -3
- data/rbi/anthropic/models/organization/user_update_params.rbi +6 -3
- data/rbi/anthropic/models/thinking_config_adaptive.rbi +9 -6
- data/rbi/anthropic/models/thinking_config_enabled.rbi +9 -6
- data/rbi/anthropic/models/thinking_config_param.rbi +11 -9
- data/rbi/anthropic/models/thinking_types.rbi +27 -2
- data/rbi/anthropic/models/usage.rbi +29 -3
- data/rbi/anthropic/request_options.rbi +5 -0
- data/rbi/anthropic/resources/beta/agents/versions.rbi +2 -1
- data/rbi/anthropic/resources/beta/agents.rbi +32 -7
- data/rbi/anthropic/resources/beta/deployment_runs.rbi +4 -2
- data/rbi/anthropic/resources/beta/deployments.rbi +16 -8
- data/rbi/anthropic/resources/beta/dreams.rbi +10 -5
- data/rbi/anthropic/resources/beta/memory_stores/memories.rbi +10 -5
- data/rbi/anthropic/resources/beta/memory_stores/memory_versions.rbi +6 -3
- data/rbi/anthropic/resources/beta/memory_stores.rbi +12 -6
- data/rbi/anthropic/resources/beta/messages/batches.rbi +2 -1
- data/rbi/anthropic/resources/beta/messages.rbi +71 -32
- data/rbi/anthropic/resources/beta/organization/invites.rbi +2 -1
- data/rbi/anthropic/resources/beta/organization/spend_limits/effective.rbi +2 -2
- data/rbi/anthropic/resources/beta/organization/spend_limits.rbi +8 -12
- data/rbi/anthropic/resources/beta/organization/telemetry_destinations/workspaces.rbi +127 -0
- data/rbi/anthropic/resources/beta/organization/telemetry_destinations.rbi +306 -0
- data/rbi/anthropic/resources/beta/organization/users.rbi +2 -1
- data/rbi/anthropic/resources/beta/organization.rbi +7 -0
- data/rbi/anthropic/resources/beta/sessions/events.rbi +8 -4
- data/rbi/anthropic/resources/beta/sessions/resources.rbi +10 -5
- data/rbi/anthropic/resources/beta/sessions/threads/events.rbi +6 -3
- data/rbi/anthropic/resources/beta/sessions/threads.rbi +6 -3
- data/rbi/anthropic/resources/beta/sessions.rbi +12 -6
- data/rbi/anthropic/resources/beta/tunnels/certificates.rbi +8 -4
- data/rbi/anthropic/resources/beta/tunnels.rbi +12 -6
- data/rbi/anthropic/resources/beta/user_profiles.rbi +13 -5
- data/rbi/anthropic/resources/beta/vaults/credentials.rbi +14 -7
- data/rbi/anthropic/resources/beta/vaults.rbi +12 -6
- data/rbi/anthropic/resources/completions.rbi +6 -1
- data/rbi/anthropic/resources/messages/batches.rbi +2 -1
- data/rbi/anthropic/resources/messages.rbi +76 -28
- data/rbi/anthropic/resources/organization/invites.rbi +2 -1
- data/rbi/anthropic/resources/organization/users.rbi +2 -1
- data/sig/anthropic/client.rbs +1 -0
- data/sig/anthropic/helpers/bedrock/client.rbs +2 -1
- data/sig/anthropic/helpers/google_cloud/client.rbs +2 -1
- data/sig/anthropic/helpers/streaming/message_stream.rbs +2 -2
- data/sig/anthropic/helpers/vertex/client.rbs +2 -1
- data/sig/anthropic/internal/tracing.rbs +477 -0
- data/sig/anthropic/internal/transport/base_client.rbs +37 -2
- data/sig/anthropic/internal/type/base_stream.rbs +1 -1
- data/sig/anthropic/models/anthropic_beta.rbs +2 -0
- data/sig/anthropic/models/beta/agent_create_params.rbs +5 -0
- data/sig/anthropic/models/beta/agent_update_params.rbs +5 -0
- data/sig/anthropic/models/beta/beta_managed_agents_agent.rbs +5 -0
- data/sig/anthropic/models/beta/beta_managed_agents_aws_role_execution_identity.rbs +20 -0
- data/sig/anthropic/models/beta/beta_managed_agents_aws_role_execution_identity_params.rbs +20 -0
- data/sig/anthropic/models/beta/beta_managed_agents_execution_identity.rbs +42 -0
- data/sig/anthropic/models/beta/beta_managed_agents_execution_identity_params.rbs +42 -0
- data/sig/anthropic/models/beta/beta_managed_agents_model.rbs +0 -2
- data/sig/anthropic/models/beta/beta_managed_agents_service_account_execution_identity.rbs +18 -0
- data/sig/anthropic/models/beta/beta_managed_agents_service_account_execution_identity_params.rbs +18 -0
- data/sig/anthropic/models/beta/beta_managed_agents_session_agent.rbs +5 -0
- data/sig/anthropic/models/beta/beta_managed_agents_session_multiagent_coordinator.rbs +2 -0
- data/sig/anthropic/models/beta/beta_managed_agents_session_thread_agent.rbs +5 -0
- data/sig/anthropic/models/beta/beta_thinking_types.rbs +5 -0
- data/sig/anthropic/models/beta/organization/beta_deleted_telemetry_destination.rbs +23 -0
- data/sig/anthropic/models/beta/organization/beta_spend_limit.rbs +6 -0
- data/sig/anthropic/models/beta/organization/beta_spend_limit_usage_tier_scope.rbs +17 -0
- data/sig/anthropic/models/beta/organization/beta_spend_summary.rbs +12 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination.rbs +74 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_content_mode.rbs +23 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_delivery_health.rbs +30 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason.rbs +51 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_caller.rbs +18 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_invalid_address.rbs +18 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_redirect.rbs +18 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_disabled_reason_sustained_failure.rbs +18 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_state.rbs +42 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_state_disabled.rbs +29 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_state_disabled_params.rbs +18 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_state_enabled.rbs +17 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_state_enabled_params.rbs +18 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_state_params.rbs +40 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_test_failure.rbs +20 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_test_response.rbs +29 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_test_result.rbs +42 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_test_success.rbs +17 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_traces.rbs +39 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_traces_params.rbs +41 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces.rbs +45 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_all.rbs +17 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_all_params.rbs +17 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_exclude.rbs +17 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_exclude_params.rbs +25 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_include.rbs +17 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_include_params.rbs +25 -0
- data/sig/anthropic/models/beta/organization/beta_telemetry_destination_workspaces_params.rbs +48 -0
- data/sig/anthropic/models/beta/organization/telemetry_destination_create_params.rbs +65 -0
- data/sig/anthropic/models/beta/organization/telemetry_destination_delete_params.rbs +39 -0
- data/sig/anthropic/models/beta/organization/telemetry_destination_list_params.rbs +55 -0
- data/sig/anthropic/models/beta/organization/telemetry_destination_retrieve_params.rbs +39 -0
- data/sig/anthropic/models/beta/organization/telemetry_destination_test_params.rbs +39 -0
- data/sig/anthropic/models/beta/organization/telemetry_destination_update_params.rbs +79 -0
- data/sig/anthropic/models/beta/organization/telemetry_destinations/beta_deleted_telemetry_destination_workspace.rbs +36 -0
- data/sig/anthropic/models/beta/organization/telemetry_destinations/beta_telemetry_destination_workspace.rbs +41 -0
- data/sig/anthropic/models/beta/organization/telemetry_destinations/workspace_add_params.rbs +46 -0
- data/sig/anthropic/models/beta/organization/telemetry_destinations/workspace_list_params.rbs +55 -0
- data/sig/anthropic/models/beta/organization/telemetry_destinations/workspace_remove_params.rbs +46 -0
- data/sig/anthropic/models/beta/sessions/beta_managed_agents_inline_agent.rbs +5 -0
- data/sig/anthropic/models/beta/sessions/beta_managed_agents_session_thread.rbs +3 -0
- data/sig/anthropic/models/message_count_tokens_params.rbs +16 -0
- data/sig/anthropic/models/message_create_params.rbs +16 -0
- data/sig/anthropic/models/messages/batch_create_params.rbs +16 -0
- data/sig/anthropic/models/model.rbs +0 -2
- data/sig/anthropic/models/thinking_types.rbs +5 -0
- data/sig/anthropic/models/usage.rbs +19 -3
- data/sig/anthropic/request_options.rbs +3 -0
- data/sig/anthropic/resources/beta/agents.rbs +2 -0
- data/sig/anthropic/resources/beta/messages/batches.rbs +1 -1
- data/sig/anthropic/resources/beta/messages.rbs +1 -1
- data/sig/anthropic/resources/beta/organization/telemetry_destinations/workspaces.rbs +35 -0
- data/sig/anthropic/resources/beta/organization/telemetry_destinations.rbs +61 -0
- data/sig/anthropic/resources/beta/organization.rbs +2 -0
- data/sig/anthropic/resources/beta/sessions/events.rbs +1 -1
- data/sig/anthropic/resources/beta/sessions/threads/events.rbs +1 -1
- data/sig/anthropic/resources/completions.rbs +1 -1
- data/sig/anthropic/resources/messages/batches.rbs +1 -1
- data/sig/anthropic/resources/messages.rbs +5 -1
- metadata +181 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9e0c2457772d14d2f544f1e29c0257bb58470949ad75041d38a87337ef6588eb
|
|
4
|
+
data.tar.gz: f3a5fe15373f2aa6391d7ed66ed73687b46523d92fb359e4a9621df437183063
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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).
|
data/lib/anthropic/client.rb
CHANGED
|
@@ -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
|
-
|
|
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`
|
|
42
|
-
# path
|
|
43
|
-
#
|
|
44
|
-
#
|
|
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
|
|
139
|
+
if entry.nil?
|
|
134
140
|
body
|
|
135
141
|
elsif streaming
|
|
136
|
-
# Only `model`
|
|
137
|
-
#
|
|
138
|
-
|
|
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,
|
|
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,
|
|
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 =
|
|
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
|
|
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
|
-
|
|
426
|
+
entry = @fallbacks.fetch(hop)
|
|
427
|
+
model = entry.fetch(:model).to_s
|
|
403
428
|
has_next = hop + 1 < @fallbacks.length
|
|
404
429
|
|
|
405
|
-
|
|
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,
|
|
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(
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
|
109
|
-
#
|
|
110
|
-
#
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|