package dev.jasonpearson.automobile.validation

/**
 * Tool names accepted in plan YAML `tool:` steps. Keep in sync with MCP `ToolRegistry` /
 * `schemas/tool-definitions.json` (and legacy aliases still used in plans).
 */
object ValidTools {
  val TOOLS =
      setOf(
          "accessibility",
          "biometricAuth",
          "bugReport",
          "captureDeviceSnapshot",
          "changeLocalization",
          "clearKeyValueFile",
          "clearMockNetwork",
          "clearText",
          "clipboard",
          "criticalSection",
          "debugSearch",
          "deleteSnapshot",
          "deviceSnapshot",
          "doctor",
          "dragAndDrop",
          "executePlan",
          "explore",
          "exportPlan",
          "getAppPermissions",
          "getDeepLinks",
          "getDeviceState",
          "getNavigationGraph",
          "getNetworkGraph",
          "getNotificationPolicy",
          "highlight",
          "homeScreen",
          "identifyInteractions",
          "imeAction",
          "inputText",
          "installApp",
          "keyboard",
          "killDevice",
          "launchApp",
          "listApps",
          "listDeviceImages",
          "listDevices",
          "listSnapshots",
          "mockNetwork",
          "navigateTo",
          "network",
          "observe",
          "openLink",
          "pinchOn",
          "postNotification",
          "pressButton",
          "pressKey",
          "recentApps",
          "recordSteps",
          "removeKeyValue",
          "restoreDeviceSnapshot",
          "rotate",
          "selectAllText",
          "setActiveDevice",
          "setAppPermissions",
          "setDeviceState",
          "setKeyValue",
          "setNotificationPolicy",
          "setUIState",
          "shake",
          "sqlQuery",
          "startDevice",
          "startTestRecording",
          "swipeOn",
          "systemTray",
          "tapOn",
          "terminateApp",
          "uninstallApp",
          "videoRecording",
      )

  val DEPRECATED_FIELDS = setOf("generated", "appId", "parameters", "description")
}
