// ============================================================
// UNIFIED TOOLS (Primary Interface)
// ============================================================
/// Unified search & discovery tool (aliases: grep_file, list_files, etc.)
pub const UNIFIED_SEARCH: &str = "unified_search";
/// Unified shell execution & code execution tool (aliases: run_pty_cmd, execute_code, etc.)
pub const UNIFIED_EXEC: &str = "unified_exec";
/// Unified file operations tool (aliases: read_file, write_file, edit_file, etc.)
pub const UNIFIED_FILE: &str = "unified_file";

// ============================================================
// TOOL IDS
// ============================================================
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";

// ============================================================
// SKILL MANAGEMENT TOOLS (Progressive Disclosure)
// ============================================================
/// List all available skills (local and dormant system utilities)
pub const LIST_SKILLS: &str = "list_skills";
/// Load a skill's instructions and activate its tools
pub const LOAD_SKILL: &str = "load_skill";
/// Load resources from a skill (scripts, templates, docs)
pub const LOAD_SKILL_RESOURCE: &str = "load_skill_resource";

// ============================================================
// LEGACY EXECUTION ALIASES (use unified_exec instead)
// ============================================================
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";

// ============================================================
// LEGACY FILE OPERATION ALIASES (use unified_file instead)
// ============================================================
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";

// ============================================================
// ERROR & DIAGNOSTICS
// ============================================================
pub const GET_ERRORS: &str = "get_errors";

// ============================================================
// HUMAN-IN-THE-LOOP (HITL)
// ============================================================
/// Canonical HITL tool name for structured user input.
pub const REQUEST_USER_INPUT: &str = "request_user_input";
/// Canonical memory tool name for Anthropic native memory sessions.
pub const MEMORY: &str = "memory";
/// Legacy alias routed to `request_user_input`.
pub const ASK_QUESTIONS: &str = "ask_questions";
/// Legacy alias routed to `request_user_input` (deprecated tabbed shape).
pub const ASK_USER_QUESTION: &str = "ask_user_question";
/// Schedule a session-scoped task using a cron or one-shot schedule.
pub const CRON_CREATE: &str = "cron_create";
/// List session-scoped scheduled tasks.
pub const CRON_LIST: &str = "cron_list";
/// Delete a session-scoped scheduled task by id.
pub const CRON_DELETE: &str = "cron_delete";

// ============================================================
// PLAN MODE
// ============================================================
/// Enter plan mode - enables read-only tools and planning workflow.
pub const ENTER_PLAN_MODE: &str = "enter_plan_mode";
/// Exit plan mode - triggers confirmation modal before execution.
pub const EXIT_PLAN_MODE: &str = "exit_plan_mode";
/// Task tracker / plan manager - tracks checklist progress during complex tasks.
pub const TASK_TRACKER: &str = "task_tracker";
/// Plan-mode scoped task tracker persisted under `.vtcode/plans/`.
pub const PLAN_TASK_TRACKER: &str = "plan_task_tracker";

// ============================================================
// SUBAGENT COLLABORATION
// ============================================================
/// Spawn a delegated child agent.
pub const SPAWN_AGENT: &str = "spawn_agent";
/// Launch a managed background subprocess that hosts a background-enabled subagent.
pub const SPAWN_BACKGROUND_SUBPROCESS: &str = "spawn_background_subprocess";
/// Send follow-up input to a delegated child agent.
pub const SEND_INPUT: &str = "send_input";
/// Wait for one or more delegated child agents to finish.
pub const WAIT_AGENT: &str = "wait_agent";
/// Resume a delegated child agent without sending a message.
pub const RESUME_AGENT: &str = "resume_agent";
/// Close a delegated child agent.
pub const CLOSE_AGENT: &str = "close_agent";

// Special wildcard for full access
pub const WILDCARD_ALL: &str = "*";
