lib/anthropic/models/beta/beta_tool.rb (23 lines of code) (raw):

# frozen_string_literal: true module Anthropic module Models module Beta class BetaTool < Anthropic::Internal::Type::BaseModel # @!attribute input_schema # [JSON schema](https://json-schema.org/draft/2020-12) for this tool's input. # # This defines the shape of the `input` that your tool accepts and that the model # will produce. # # @return [Anthropic::Models::Beta::BetaTool::InputSchema] required :input_schema, -> { Anthropic::Models::Beta::BetaTool::InputSchema } # @!attribute name # Name of the tool. # # This is how the tool will be called by the model and in tool_use blocks. # # @return [String] required :name, String # @!attribute cache_control # # @return [Anthropic::Models::Beta::BetaCacheControlEphemeral, nil] optional :cache_control, -> { Anthropic::Models::Beta::BetaCacheControlEphemeral }, nil?: true # @!attribute [r] description # Description of what this tool does. # # Tool descriptions should be as detailed as possible. The more information that # the model has about what the tool is and how to use it, the better it will # perform. You can use natural language descriptions to reinforce important # aspects of the tool input JSON schema. # # @return [String, nil] optional :description, String # @!parse # # @return [String] # attr_writer :description # @!attribute type # # @return [Symbol, Anthropic::Models::Beta::BetaTool::Type, nil] optional :type, enum: -> { Anthropic::Models::Beta::BetaTool::Type }, nil?: true # @!parse # # @param input_schema [Anthropic::Models::Beta::BetaTool::InputSchema] # # @param name [String] # # @param cache_control [Anthropic::Models::Beta::BetaCacheControlEphemeral, nil] # # @param description [String] # # @param type [Symbol, Anthropic::Models::Beta::BetaTool::Type, nil] # # # def initialize(input_schema:, name:, cache_control: nil, description: nil, type: nil, **) = super # def initialize: (Hash | Anthropic::Internal::Type::BaseModel) -> void # @see Anthropic::Models::Beta::BetaTool#input_schema class InputSchema < Anthropic::Internal::Type::BaseModel # @!attribute type # # @return [Symbol, :object] required :type, const: :object # @!attribute properties # # @return [Object, nil] optional :properties, Anthropic::Internal::Type::Unknown, nil?: true # @!parse # # [JSON schema](https://json-schema.org/draft/2020-12) for this tool's input. # # # # This defines the shape of the `input` that your tool accepts and that the model # # will produce. # # # # @param properties [Object, nil] # # @param type [Symbol, :object] # # # def initialize(properties: nil, type: :object, **) = super # def initialize: (Hash | Anthropic::Internal::Type::BaseModel) -> void end # @see Anthropic::Models::Beta::BetaTool#type module Type extend Anthropic::Internal::Type::Enum CUSTOM = :custom finalize! # @!parse # # @return [Array<Symbol>] # def self.values; end end end end BetaTool = Beta::BetaTool end end