"""Extracts the argument names of a specified function from its source code.

This function parses the provided source code and identifies the argument names of the function
whose name matches the given `tool_name`. It handles both synchronous and asynchronous functions.

Args:
    source_code (str): The source code containing the function definition.
    tool_name (str): The name of the function whose arguments are to be extracted.

Returns:
    list: A list of strings representing the argument names of the specified function.
"""
You should write code starting with:
import ast

def parse_function_arguments(source_code: str, tool_name: str) -> list:
    # TODO: Implement this function
    pass

