import yaml import os import sys from urllib.parse import urljoin from typing import Callable, Dict, Any from utils.configs import TOOLS_SERVER_BASE_ENDPOINT_URL, WEB_BASED_TOOLS_USE_CACHE from tool_kits.base import BaseToolkit class BashToolkit(BaseToolkit): NAME = "bash" TOOLS_SERVER_BASE_ENDPOINT = TOOLS_SERVER_BASE_ENDPOINT_URL ENTRY_POINT = "bash" DESCRIPTION = ( "Execute a shell script in the current working directory. " "Use this tool to run one or more shell commands as a single script or " "execute script files (e.g. `python script.py`)." ) TIMEOUT = 900 TOOL_PARAMS = { "command": { "type": "string", "description": ( "A shell script to execute. Multiple commands are allowed and will be " "executed sequentially in the same shell session. Use relative paths by default." ), }, } TOOL_PARAMS_REQUIRED = ["command"] USE_CACHE = WEB_BASED_TOOLS_USE_CACHE