Class: Cadenya::Models::ToolSets::ToolSpec

Inherits:
Internal::Type::BaseModel show all
Defined in:
lib/cadenya/models/tool_sets/tool_spec.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Internal::Type::BaseModel

==, #==, #[], coerce, #deconstruct_keys, #deep_to_h, dump, fields, hash, #hash, inherited, inspect, #inspect, known_fields, optional, recursively_to_h, required, #to_h, #to_json, #to_s, to_sorbet_type, #to_yaml

Methods included from Internal::Type::Converter

#coerce, coerce, #dump, dump, #inspect, inspect, meta_info, new_coerce_state, type_info

Methods included from Internal::Util::SorbetRuntimeSupport

#const_missing, #define_sorbet_constant!, #sorbet_constant_defined?, #to_sorbet_type, to_sorbet_type

Constructor Details

#initialize(config:, description:, parameters:, requires_approval:, llm_tool_name: nil) ⇒ Object

Some parameter documentations has been truncated, see Cadenya::Models::ToolSets::ToolSpec for more details.

Parameters:

  • config (Cadenya::Models::ToolSets::ToolSpecConfig)

    Config defines the adapter to use for the tool.

  • description (String)
  • parameters (Hash{Symbol=>Object})
  • requires_approval (Boolean)
  • llm_tool_name (String) (defaults to: nil)

    The name provided to the LLM, which may differ from the metadata.name on the too



# File 'lib/cadenya/models/tool_sets/tool_spec.rb', line 39

Instance Attribute Details

#configCadenya::Models::ToolSets::ToolSpecConfig

Config defines the adapter to use for the tool. This is used to determine how the tool is called. For example, if the tool is an HTTP tool, the adapter will be Http. If the tool is an inline tool, the adapter will be Inline.



13
# File 'lib/cadenya/models/tool_sets/tool_spec.rb', line 13

required :config, -> { Cadenya::ToolSets::ToolSpecConfig }

#descriptionString

Returns:

  • (String)


18
# File 'lib/cadenya/models/tool_sets/tool_spec.rb', line 18

required :description, String

#llm_tool_nameString?

The name provided to the LLM, which may differ from the metadata.name on the tool. LLMs have specific length and format requirements, and tool set sources may not comply with them, so Cadenya does its best to format names into a usable format.

Returns:

  • (String, nil)


37
# File 'lib/cadenya/models/tool_sets/tool_spec.rb', line 37

optional :llm_tool_name, String, api_name: :llmToolName

#parametersHash{Symbol=>Object}

Returns:

  • (Hash{Symbol=>Object})


23
# File 'lib/cadenya/models/tool_sets/tool_spec.rb', line 23

required :parameters, Cadenya::Internal::Type::HashOf[Cadenya::Internal::Type::Unknown]

#requires_approvalBoolean

Returns:

  • (Boolean)


28
# File 'lib/cadenya/models/tool_sets/tool_spec.rb', line 28

required :requires_approval, Cadenya::Internal::Type::Boolean, api_name: :requiresApproval