text: pushd(new_dir):    """Context manager for changing the current working directory."""    prev_dir = os.getcwd()    os.chdir(new_dir)    try:        yield    finally:        os.chdir(prev_dir)@tooldef process_csv(    csv_file_path: str, instructions: str, output_path: Optional[str] = None) -> str:    """Process a CSV by with pandas in a limited REPL.\ Only use this after writing data to disk as a csv file.\ Any figures must be saved to disk to be viewed by the human.\ Instructions should be written in natural language, not code. Assume the dataframe is already loaded."""    with pushd(ROOT_DIR):        try:            df = pd.read_csv(csv_file_path)        except Exception as e:            return f"Error: {e}"        agent = create_pandas_dataframe_agent(llm, df, max_iterations=30, verbose=True)        if output_path is not None:            instructions += f" Save output to disk at {output_path}"        try:            result = agent.run(instructions)            return result        except Exception as e:            return f"Error: {e}"Browse a web page with PlayWright# !pip install playwright# !playwright installasync def async_load_playwright(url: str) -> str:    """Load the specified URLs