module RubyLLM::Providers::OpenAI::Tools

def tool_for(tool) # rubocop:disable Metrics/MethodLength

rubocop:disable Metrics/MethodLength
def tool_for(tool) # rubocop:disable Metrics/MethodLength
  {
    type: 'function',
    function: {
      name: tool.name,
      description: tool.description,
      parameters: {
        type: 'object',
        properties: tool.parameters.transform_values { |param| param_schema(param) },
        required: tool.parameters.select { |_, p| p.required }.keys
      }
    }
  }
end