docs: def prompt_terminal(path):
      """Prompt for a new filename via terminal."""
  
      def rlinput(prompt_msg, prefill=''):
          """
          One line is read from standard input. Display `prompt_msg` on
          standard error. `prefill` is placed into the editing buffer
          before editing begins.
          """
          import readline
          readline.set_startup_hook(lambda: readline.insert_text(prefill))
          try:
              return input(prompt_msg)
          finally:
              readline.set_startup_hook()
  
      filepath, extension = os.path.splitext(path)
      basename = os.path.basename(filepath)
      dirname = os.path.dirname(filepath)
  
      # display filename prompt
      new_basename = rlinput('Filename: ', basename)
  
      # retry prompt if new filename already exists
      while os.path.exists(os.path.join(dirname, new_basename + extension)) and \
              new_basename != basename:
          new_basename = rlinput('Sorry, please try again... Filename: ',
                                 basename)
  
      if new_basename == '':
          new_basename = basename
  
      return os.path.join(dirname, new_basename + extension)