pub const UNIFIED_SEARCH: &str = "unified_search";
pub const UNIFIED_EXEC: &str = "unified_exec";
pub const UNIFIED_FILE: &str = "unified_file";
pub const THINK: &str = "think";
pub const SEARCH_TOOLS: &str = "search_tools";
pub const MCP_SEARCH_TOOLS: &str = "mcp_search_tools";
pub const MCP_GET_TOOL_DETAILS: &str = "mcp_get_tool_details";
pub const MCP_LIST_SERVERS: &str = "mcp_list_servers";
pub const MCP_CONNECT_SERVER: &str = "mcp_connect_server";
pub const MCP_DISCONNECT_SERVER: &str = "mcp_disconnect_server";
pub const WEB_SEARCH: &str = "web_search";
pub const WEB_FETCH: &str = "web_fetch";
pub const FETCH_URL: &str = "fetch_url";
pub const LIST: &str = "list";
pub const GREP: &str = "grep";
pub const FETCH: &str = "fetch";
pub const EXEC_PTY_CMD: &str = "exec_pty_cmd";
pub const SHELL: &str = "shell";
pub const GREP_FILE: &str = "grep_file";
pub const LIST_FILES: &str = "list_files";
pub const LIST_SKILLS: &str = "list_skills";
pub const LOAD_SKILL: &str = "load_skill";
pub const LOAD_SKILL_RESOURCE: &str = "load_skill_resource";
pub const EXEC_COMMAND: &str = "exec_command";
pub const WRITE_STDIN: &str = "write_stdin";
pub const RUN_PTY_CMD: &str = "run_pty_cmd";
pub const CREATE_PTY_SESSION: &str = "create_pty_session";
pub const LIST_PTY_SESSIONS: &str = "list_pty_sessions";
pub const CLOSE_PTY_SESSION: &str = "close_pty_session";
pub const SEND_PTY_INPUT: &str = "send_pty_input";
pub const READ_PTY_SESSION: &str = "read_pty_session";
pub const RESIZE_PTY_SESSION: &str = "resize_pty_session";
pub const EXECUTE_CODE: &str = "execute_code";
pub const READ_FILE: &str = "read_file";
pub const WRITE_FILE: &str = "write_file";
pub const EDIT_FILE: &str = "edit_file";
pub const DELETE_FILE: &str = "delete_file";
pub const CREATE_FILE: &str = "create_file";
pub const APPLY_PATCH: &str = "apply_patch";
pub const SEARCH_REPLACE: &str = "search_replace";
pub const FILE_OP: &str = "file_op";
pub const MOVE_FILE: &str = "move_file";
pub const COPY_FILE: &str = "copy_file";
pub const GET_ERRORS: &str = "get_errors";
pub const REQUEST_USER_INPUT: &str = "request_user_input";
pub const MEMORY: &str = "memory";
pub const ASK_QUESTIONS: &str = "ask_questions";
pub const ASK_USER_QUESTION: &str = "ask_user_question";
pub const CRON_CREATE: &str = "cron_create";
pub const CRON_LIST: &str = "cron_list";
pub const CRON_DELETE: &str = "cron_delete";
pub const START_PLANNING: &str = "start_planning";
pub const FINISH_PLANNING: &str = "finish_planning";
pub const TASK_TRACKER: &str = "task_tracker";
pub const SPAWN_AGENT: &str = "spawn_agent";
pub const SPAWN_BACKGROUND_SUBPROCESS: &str = "spawn_background_subprocess";
pub const SEND_INPUT: &str = "send_input";
pub const WAIT_AGENT: &str = "wait_agent";
pub const RESUME_AGENT: &str = "resume_agent";
pub const CLOSE_AGENT: &str = "close_agent";
pub const WILDCARD_ALL: &str = "*";
const _: () = {
const fn validate_tool_name(name: &str) {
assert!(!name.is_empty(), "tool name must not be empty");
let bytes = name.as_bytes();
if bytes.len() == 1 && bytes[0] == b'*' {
return;
}
assert!(
bytes[0] != b'_' && bytes[bytes.len() - 1] != b'_',
"tool name must not have leading/trailing underscores"
);
let mut i = 0;
while i < bytes.len() {
let b = bytes[i];
assert!(
b.is_ascii_lowercase() || b.is_ascii_digit() || b == b'_',
"tool name must contain only [a-z0-9_]"
);
i += 1;
}
}
validate_tool_name(UNIFIED_SEARCH);
validate_tool_name(UNIFIED_EXEC);
validate_tool_name(UNIFIED_FILE);
validate_tool_name(THINK);
validate_tool_name(SEARCH_TOOLS);
validate_tool_name(MCP_SEARCH_TOOLS);
validate_tool_name(MCP_GET_TOOL_DETAILS);
validate_tool_name(MCP_LIST_SERVERS);
validate_tool_name(MCP_CONNECT_SERVER);
validate_tool_name(MCP_DISCONNECT_SERVER);
validate_tool_name(WEB_SEARCH);
validate_tool_name(WEB_FETCH);
validate_tool_name(FETCH_URL);
validate_tool_name(LIST);
validate_tool_name(GREP);
validate_tool_name(FETCH);
validate_tool_name(EXEC_PTY_CMD);
validate_tool_name(SHELL);
validate_tool_name(GREP_FILE);
validate_tool_name(LIST_FILES);
validate_tool_name(LIST_SKILLS);
validate_tool_name(LOAD_SKILL);
validate_tool_name(LOAD_SKILL_RESOURCE);
validate_tool_name(EXEC_COMMAND);
validate_tool_name(WRITE_STDIN);
validate_tool_name(RUN_PTY_CMD);
validate_tool_name(CREATE_PTY_SESSION);
validate_tool_name(LIST_PTY_SESSIONS);
validate_tool_name(CLOSE_PTY_SESSION);
validate_tool_name(SEND_PTY_INPUT);
validate_tool_name(READ_PTY_SESSION);
validate_tool_name(RESIZE_PTY_SESSION);
validate_tool_name(EXECUTE_CODE);
validate_tool_name(READ_FILE);
validate_tool_name(WRITE_FILE);
validate_tool_name(EDIT_FILE);
validate_tool_name(DELETE_FILE);
validate_tool_name(CREATE_FILE);
validate_tool_name(APPLY_PATCH);
validate_tool_name(SEARCH_REPLACE);
validate_tool_name(FILE_OP);
validate_tool_name(MOVE_FILE);
validate_tool_name(COPY_FILE);
validate_tool_name(GET_ERRORS);
validate_tool_name(REQUEST_USER_INPUT);
validate_tool_name(MEMORY);
validate_tool_name(ASK_QUESTIONS);
validate_tool_name(ASK_USER_QUESTION);
validate_tool_name(CRON_CREATE);
validate_tool_name(CRON_LIST);
validate_tool_name(CRON_DELETE);
validate_tool_name(START_PLANNING);
validate_tool_name(FINISH_PLANNING);
validate_tool_name(TASK_TRACKER);
validate_tool_name(SPAWN_AGENT);
validate_tool_name(SPAWN_BACKGROUND_SUBPROCESS);
validate_tool_name(SEND_INPUT);
validate_tool_name(WAIT_AGENT);
validate_tool_name(RESUME_AGENT);
validate_tool_name(CLOSE_AGENT);
validate_tool_name(WILDCARD_ALL);
};