<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_project_source_path(path: str) -> str: """ Converts the given path into a project source path, to the cauldron.json file. If the path already points to a cauldron.json file, the path is returned without modification. :param path: The path to convert into a project source path """


    path = environ.paths.clean(path)

    if not path.endswith('cauldron.json'):
        return os.path.join(path, 'cauldron.json')

    return path