agent-device 0.20.9 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (492) hide show
  1. package/README.md +2 -2
  2. package/android/ime-helper/dist/{agent-device-android-ime-helper-0.20.9.apk → agent-device-android-ime-helper-0.21.0.apk} +0 -0
  3. package/android/ime-helper/dist/agent-device-android-ime-helper-0.21.0.apk.sha256 +1 -0
  4. package/android/ime-helper/dist/{agent-device-android-ime-helper-0.20.9.manifest.json → agent-device-android-ime-helper-0.21.0.manifest.json} +4 -4
  5. package/android/snapshot-helper/dist/agent-device-android-snapshot-helper-0.21.0.apk +0 -0
  6. package/android/snapshot-helper/dist/agent-device-android-snapshot-helper-0.21.0.apk.sha256 +1 -0
  7. package/android/snapshot-helper/dist/{agent-device-android-snapshot-helper-0.20.9.manifest.json → agent-device-android-snapshot-helper-0.21.0.manifest.json} +6 -6
  8. package/apple/macos-helper/Sources/AgentDeviceMacOSHelper/AudioProbe.swift +35 -33
  9. package/apple/macos-helper/Sources/AgentDeviceMacOSHelper/main.swift +6 -1
  10. package/apple/snapshot-bridge/LICENSE.idb +23 -0
  11. package/apple/snapshot-bridge/README.md +49 -0
  12. package/apple/snapshot-bridge/SnapshotBridge.m +280 -0
  13. package/apple/snapshot-bridge/SnapshotBridgeRuntime.h +33 -0
  14. package/apple/snapshot-bridge/SnapshotBridgeRuntime.m +382 -0
  15. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunner/AgentDeviceRunnerApp.m +58 -0
  16. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunner.xcodeproj/project.pbxproj +19 -0
  17. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerAlertVerification.swift +36 -0
  18. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerStringNormalization.swift +8 -0
  19. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerSynthesizedGesture.h +12 -1
  20. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerSynthesizedGesture.m +100 -6
  21. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTapPointPolicy.swift +2 -2
  22. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+AXSnapshotFallback.swift +21 -12
  23. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Alert.swift +21 -88
  24. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+AlertObservation.swift +124 -0
  25. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+CommandExecution.swift +110 -107
  26. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+CommandJournal.swift +6 -14
  27. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Interaction.swift +85 -114
  28. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Lifecycle.swift +13 -6
  29. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Models.swift +72 -175
  30. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Navigation.swift +10 -11
  31. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+PrivateAXElementTypes.swift +12 -0
  32. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+PrivateAXPresentation.swift +78 -64
  33. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+ScreenRecorder.swift +17 -9
  34. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+ScrollGesture.swift +47 -13
  35. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Snapshot.swift +232 -438
  36. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SnapshotBackendCapabilities.swift +98 -0
  37. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SnapshotCapturePlan.swift +229 -168
  38. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SnapshotPresentationInvariant.swift +19 -0
  39. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SnapshotTiming.swift +110 -0
  40. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SynthesizedCommitDeadline.swift +206 -0
  41. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SynthesizedTextEntry.swift +147 -25
  42. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SystemModal.swift +21 -18
  43. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+TextEntry.swift +24 -307
  44. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+TextEntryFocus.swift +206 -0
  45. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+TextEntryReadiness.swift +158 -0
  46. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+TextInputCandidatePolicy.swift +19 -0
  47. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+TextTyping.swift +49 -16
  48. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Transport.swift +2 -11
  49. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+TvRemote.swift +4 -19
  50. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests.swift +16 -20
  51. package/dist/apple/runner/AgentDeviceRunner/RecordingScripts/RecordingExportSupport.swift +111 -0
  52. package/dist/apple/runner/AgentDeviceRunner/RecordingScripts/recording-overlay.swift +42 -81
  53. package/dist/apple/runner/AgentDeviceRunner/RecordingScripts/recording-trim.swift +35 -82
  54. package/dist/apple/snapshot-presentation/Package.swift +21 -0
  55. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotGeometry.swift +56 -0
  56. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotModels.swift +259 -0
  57. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotPresentation.swift +153 -0
  58. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotPresentationFailure.swift +27 -0
  59. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotPresentationInvariant.swift +91 -0
  60. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotPresentationProjection.swift +161 -0
  61. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotScopePolicy.swift +53 -0
  62. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotVisibilityFold.swift +242 -0
  63. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotVisibilityFoldProjection.swift +97 -0
  64. package/dist/src/adapter.js +1 -0
  65. package/dist/src/adb-executor.js +2 -0
  66. package/dist/src/adb-failure.js +1 -0
  67. package/dist/src/adb-host.js +1 -0
  68. package/dist/src/adb.js +1 -0
  69. package/dist/src/agent-browser-lifecycle.js +1 -0
  70. package/dist/src/agent-browser-process-record.js +1 -0
  71. package/dist/src/agent-browser-provider.js +1 -0
  72. package/dist/src/agent-browser-tool.js +1 -1
  73. package/dist/src/agent-device-client.js +2 -2
  74. package/dist/src/ai-sdk.d.ts +61 -0
  75. package/dist/src/ai-sdk.js +1 -0
  76. package/dist/src/alert-contract.js +1 -0
  77. package/dist/src/alert-runtime.js +1 -0
  78. package/dist/src/android-adb.d.ts +27 -19
  79. package/dist/src/android-adb.js +1 -1
  80. package/dist/src/android-input-ownership.js +1 -0
  81. package/dist/src/android-system-chrome.js +1 -0
  82. package/dist/src/android.js +1 -1
  83. package/dist/src/api.js +11 -0
  84. package/dist/src/app-catalog.js +1 -0
  85. package/dist/src/app-deployment-resolution.js +2 -0
  86. package/dist/src/app-helpers.js +1 -1
  87. package/dist/src/app-inventory-contract.js +1 -0
  88. package/dist/src/app-inventory.js +1 -0
  89. package/dist/src/app-launch.js +2 -0
  90. package/dist/src/app-lifecycle-facade.js +1 -0
  91. package/dist/src/app-lifecycle.js +3 -6
  92. package/dist/src/app-lifecycle2.js +2 -2
  93. package/dist/src/app-lifecycle3.js +1 -0
  94. package/dist/src/app-log-files.js +1 -1
  95. package/dist/src/app-log-reconnect.js +1 -1
  96. package/dist/src/app-log-runtime.js +1 -4
  97. package/dist/src/app-log-runtime2.js +4 -0
  98. package/dist/src/app-parsers.js +4 -0
  99. package/dist/src/app-resolution-cache.js +1 -0
  100. package/dist/src/app-resolution-facade.js +1 -0
  101. package/dist/src/app-resolution.js +2 -2
  102. package/dist/src/app-state.js +1 -2
  103. package/dist/src/application-lifecycle-interaction.js +1 -0
  104. package/dist/src/application-lifecycle-runtime.js +1 -0
  105. package/dist/src/apps-simctl.js +1 -0
  106. package/dist/src/archive.js +4 -0
  107. package/dist/src/artifact-download.js +1 -0
  108. package/dist/src/artifacts.d.ts +6 -2
  109. package/dist/src/artifacts.js +1 -1
  110. package/dist/src/async-lifecycle.js +1 -0
  111. package/dist/src/audio-probe-result.js +1 -0
  112. package/dist/src/audio-probe-runtime.js +1 -0
  113. package/dist/src/audio-probe-support.js +1 -0
  114. package/dist/src/auth-session.js +1 -1
  115. package/dist/src/auth.js +1 -1
  116. package/dist/src/back-mode.js +1 -0
  117. package/dist/src/{url.js → base-url.js} +1 -1
  118. package/dist/src/boot-diagnostics.js +2 -2
  119. package/dist/src/byte-limit-stream.js +1 -1
  120. package/dist/src/capabilities.js +1 -0
  121. package/dist/src/capture.js +1 -0
  122. package/dist/src/catalog.js +1 -0
  123. package/dist/src/cli-command-aliases.js +1 -0
  124. package/dist/src/cli-config.js +1 -1
  125. package/dist/src/cli-help.js +77 -51
  126. package/dist/src/cli-output.js +1 -1
  127. package/dist/src/cli-runner.js +1 -1
  128. package/dist/src/cli.js +5 -7
  129. package/dist/src/click-button.js +1 -0
  130. package/dist/src/client-metro-companion.js +1 -0
  131. package/dist/src/client-metro.js +1 -1
  132. package/dist/src/client-types.d.ts +1606 -0
  133. package/dist/src/clipboard.js +1 -0
  134. package/dist/src/code-signature-cache.js +1 -0
  135. package/dist/src/code-signature.js +1 -0
  136. package/dist/src/color.js +1 -0
  137. package/dist/src/command-metadata.js +1 -1
  138. package/dist/src/command-schema.js +3 -3
  139. package/dist/src/command-surface.js +1 -1
  140. package/dist/src/command-tools.js +2 -0
  141. package/dist/src/command.js +1 -0
  142. package/dist/src/{selector-vocabulary.js → compatibility-policy.js} +1 -1
  143. package/dist/src/config.js +1 -1
  144. package/dist/src/config2.js +1 -0
  145. package/dist/src/connection-runtime.js +1 -1
  146. package/dist/src/connection.js +5 -5
  147. package/dist/src/contracts.d.ts +1 -1
  148. package/dist/src/contracts.js +1 -1
  149. package/dist/src/daemon-client-lifecycle.js +1 -0
  150. package/dist/src/daemon-process.js +1 -0
  151. package/dist/src/daemon-registration.js +1 -0
  152. package/dist/src/daemon-shutdown-report.js +1 -1
  153. package/dist/src/daemon.js +2 -2
  154. package/dist/src/debug-symbols-facade.js +5 -0
  155. package/dist/src/deploy-result-target.js +1 -0
  156. package/dist/src/device-claim-inspection.js +1 -1
  157. package/dist/src/device-claim-rule.js +1 -0
  158. package/dist/src/device-input-state.d.ts +190 -3
  159. package/dist/src/device-inventory-context.js +1 -0
  160. package/dist/src/device-isolation.js +1 -0
  161. package/dist/src/device-release.js +1 -0
  162. package/dist/src/device-rotation.js +1 -0
  163. package/dist/src/device-selection-resolver.js +1 -0
  164. package/dist/src/device-session.js +1 -0
  165. package/dist/src/device.js +1 -1
  166. package/dist/src/device2.js +3 -2
  167. package/dist/src/diagnostics.js +3 -0
  168. package/dist/src/diagnostics2.js +1 -0
  169. package/dist/src/dispatch-resolve.js +1 -0
  170. package/dist/src/doctor-facade.js +1 -0
  171. package/dist/src/doctor-output.js +1 -0
  172. package/dist/src/doctor.js +1 -0
  173. package/dist/src/doctor2.js +1 -0
  174. package/dist/src/doctor3.js +1 -0
  175. package/dist/src/durable-resource.js +1 -0
  176. package/dist/src/entities.js +1 -1
  177. package/dist/src/error.js +2 -0
  178. package/dist/src/exec.js +1 -0
  179. package/dist/src/file.js +1 -0
  180. package/dist/src/find.js +1 -1
  181. package/dist/src/finders.js +1 -1
  182. package/dist/src/format.js +2 -0
  183. package/dist/src/generic-settle.js +1 -1
  184. package/dist/src/generic.js +1 -1
  185. package/dist/src/gesture-admission.js +1 -0
  186. package/dist/src/gesture-plan-types.js +1 -0
  187. package/dist/src/gesture-plan.js +1 -0
  188. package/dist/src/gesture-runtime.js +1 -0
  189. package/dist/src/harmonyos.js +1 -1
  190. package/dist/src/hdc.js +1 -1
  191. package/dist/src/helper.js +2 -2
  192. package/dist/src/host-file.js +1 -0
  193. package/dist/src/human-control-contract.js +1 -0
  194. package/dist/src/human-control.js +1 -0
  195. package/dist/src/index.d.ts +2 -1578
  196. package/dist/src/index.js +1 -1
  197. package/dist/src/input-actions.js +1 -4
  198. package/dist/src/input-actions2.js +2 -1
  199. package/dist/src/install-artifact-facade.js +1 -0
  200. package/dist/src/install-source-network-transport.js +1 -0
  201. package/dist/src/install-source.d.ts +3 -10
  202. package/dist/src/install-source2.js +1 -1
  203. package/dist/src/interaction-positionals.js +1 -0
  204. package/dist/src/interaction-ref-policy.js +1 -0
  205. package/dist/src/interaction.js +1 -1
  206. package/dist/src/interaction2.js +1 -1
  207. package/dist/src/interactor-operation-catalog.js +1 -0
  208. package/dist/src/interactor-types.js +1 -0
  209. package/dist/src/interactor.js +6 -2
  210. package/dist/src/interactor2.js +1 -1
  211. package/dist/src/interactors.js +1 -1
  212. package/dist/src/internal/bin.d.ts +1 -1
  213. package/dist/src/internal/bin.js +1 -2
  214. package/dist/src/internal/companion-tunnel.d.ts +1 -1
  215. package/dist/src/internal/companion-tunnel.js +1 -1
  216. package/dist/src/internal/daemon.d.ts +1 -1
  217. package/dist/src/internal/daemon.js +2 -4
  218. package/dist/src/internal/png-worker.d.ts +4 -4
  219. package/dist/src/internal/png-worker.js +1 -1
  220. package/dist/src/internal/run-script-http-child.d.ts +4 -0
  221. package/dist/src/internal/run-script-http-child.js +1 -0
  222. package/dist/src/internal/update-check-entry.d.ts +1 -1
  223. package/dist/src/inventory.js +4 -4
  224. package/dist/src/inventory2.js +1 -1
  225. package/dist/src/inventory3.js +1 -1
  226. package/dist/src/inventory5.js +1 -1
  227. package/dist/src/inventory6.js +1 -1
  228. package/dist/src/ios-client.js +16 -0
  229. package/dist/src/ios-snapshot-acquisition.js +1 -0
  230. package/dist/src/ios-snapshot-adapter.js +1 -0
  231. package/dist/src/ios-snapshot-planning.js +1 -0
  232. package/dist/src/ios-snapshot-runtime.js +1 -0
  233. package/dist/src/json.js +1 -0
  234. package/dist/src/keyboard-actions.js +1 -0
  235. package/dist/src/launch-console.js +1 -0
  236. package/dist/src/lease-context.js +1 -1
  237. package/dist/src/lease-scope.js +1 -0
  238. package/dist/src/lease.js +1 -1
  239. package/dist/src/limrun-runtime-dependencies.js +1 -1
  240. package/dist/src/limrun.d.ts +1618 -7
  241. package/dist/src/limrun.js +1 -1
  242. package/dist/src/linux.js +1 -1
  243. package/dist/src/local-interactor-operation-set.js +1 -0
  244. package/dist/src/location-coordinates.js +1 -1
  245. package/dist/src/logcat.js +1 -1
  246. package/dist/src/macos-facade.js +1 -0
  247. package/dist/src/managed-device-scope.js +1 -0
  248. package/dist/src/mechanics.js +19 -0
  249. package/dist/src/metro.d.ts +4 -2
  250. package/dist/src/metro.js +1 -1
  251. package/dist/src/metro2.js +1 -1
  252. package/dist/src/mobile-snapshot-semantics.js +1 -0
  253. package/dist/src/multitouch-support.js +1 -0
  254. package/dist/src/numeric.js +1 -0
  255. package/dist/src/observability.js +1 -1
  256. package/dist/src/observation.js +2 -0
  257. package/dist/src/output-path.js +1 -1
  258. package/dist/src/owner-identity.js +3 -1
  259. package/dist/src/parameterized-recorded-fill.js +1 -0
  260. package/dist/src/parser.js +1 -1
  261. package/dist/src/perf-facade.js +2 -0
  262. package/dist/src/perf-runtime-operation-builder.js +1 -0
  263. package/dist/src/perf-runtime-plan.js +1 -0
  264. package/dist/src/perf-runtime.js +1 -0
  265. package/dist/src/perf.js +1 -4
  266. package/dist/src/physical-device-control.js +1 -1
  267. package/dist/src/physical-device-facade.js +1 -0
  268. package/dist/src/platform-request-scope.js +1 -0
  269. package/dist/src/platform-runtime-android-adb-host.js +1 -0
  270. package/dist/src/platform-runtime-android-mechanics.js +1 -0
  271. package/dist/src/platform-runtime-app-log-android-transport.js +1 -1
  272. package/dist/src/platform-runtime-app-log-process.js +1 -1
  273. package/dist/src/platform-runtime-apple-resources.js +1 -0
  274. package/dist/src/platform-runtime-host.js +1 -1
  275. package/dist/src/platform-runtime-managed-owner.js +1 -0
  276. package/dist/src/platform-runtime-network-web-transport.js +1 -1
  277. package/dist/src/platform-runtime-open-target.js +1 -1
  278. package/dist/src/platform-runtime-operation-host.js +4 -4
  279. package/dist/src/platform-runtime-runtime-hints.js +2 -2
  280. package/dist/src/platform-runtime-screen-recording-android-host.js +1 -1
  281. package/dist/src/platform-runtime-screen-recording-apple-runner-host.js +1 -1
  282. package/dist/src/platform-runtime-screen-recording-apple-runner-transport.js +1 -1
  283. package/dist/src/platform-runtime-screen-recording-apple-simulator-host.js +1 -1
  284. package/dist/src/platform-runtime-screen-recording-apple-transport.js +1 -1
  285. package/dist/src/platform-runtime-screen-recording-finalizer-host.js +1 -1
  286. package/dist/src/platform-runtime-screen-recording-harmony-host.js +1 -1
  287. package/dist/src/platform-runtime-screen-recording-process-host.js +1 -0
  288. package/dist/src/platform-runtime-screen-recording-web-host.js +1 -1
  289. package/dist/src/platform-runtime-unavailable.js +1 -0
  290. package/dist/src/platform-runtime.js +1 -1
  291. package/dist/src/platform-runtime2.js +1 -1
  292. package/dist/src/plist.js +1 -1
  293. package/dist/src/png-worker-contract.js +1 -1
  294. package/dist/src/prepare-kind.js +1 -15
  295. package/dist/src/process-exit.js +1 -1
  296. package/dist/src/process.js +1 -0
  297. package/dist/src/provider-device-runtime.js +1 -0
  298. package/dist/src/provider-session-ownership.js +2 -0
  299. package/dist/src/provider-webdriver.js +1 -1
  300. package/dist/src/provider.js +1 -1
  301. package/dist/src/providers.js +1 -0
  302. package/dist/src/proxy.js +2 -2
  303. package/dist/src/react-native-overlay.js +1 -0
  304. package/dist/src/react-native.js +1 -1
  305. package/dist/src/record-runtime.js +1 -1
  306. package/dist/src/record-trace.js +1 -1
  307. package/dist/src/rect-center.js +1 -0
  308. package/dist/src/register-builtins.js +1 -0
  309. package/dist/src/registry.js +39 -28
  310. package/dist/src/remote-config2.js +1 -1
  311. package/dist/src/replay-divergence.js +2 -0
  312. package/dist/src/replay.js +2 -2
  313. package/dist/src/reporting.js +8 -8
  314. package/dist/src/request-admission.js +1 -0
  315. package/dist/src/request-cancel.js +1 -0
  316. package/dist/src/request-cancellation.js +1 -0
  317. package/dist/src/request-progress-protocol.js +1 -0
  318. package/dist/src/request-providers.js +1 -0
  319. package/dist/src/request-runtime-binding.js +1 -0
  320. package/dist/src/request.js +1 -0
  321. package/dist/src/result-serialization.js +1 -0
  322. package/dist/src/retry.js +1 -0
  323. package/dist/src/rolldown-runtime.js +1 -1
  324. package/dist/src/runner-cache-metadata.js +2 -0
  325. package/dist/src/runner-client.js +1 -1
  326. package/dist/src/runner-disposal.js +1 -1
  327. package/dist/src/runner-operations-facade.js +1 -0
  328. package/dist/src/runner-owner-facade.js +1 -0
  329. package/dist/src/runner-owner-state.js +1 -0
  330. package/dist/src/runner-presentation.js +1 -0
  331. package/dist/src/runner-selector-query.js +1 -0
  332. package/dist/src/runner.js +1 -0
  333. package/dist/src/{runtime-transport.js → runtime-transport-hints.js} +1 -1
  334. package/dist/src/runtime.js +3 -3
  335. package/dist/src/runtime2.js +4 -4
  336. package/dist/src/runtime3.js +1 -1
  337. package/dist/src/runtime4.js +4 -3
  338. package/dist/src/runtime5.js +1 -1
  339. package/dist/src/runtime6.js +1 -1
  340. package/dist/src/runtime7.js +1 -1
  341. package/dist/src/runtime8.js +1 -1
  342. package/dist/src/runtime9.js +1 -1
  343. package/dist/src/scoped-provider.js +1 -1
  344. package/dist/src/screen-recording-completion.js +1 -0
  345. package/dist/src/screen-recording-live-handle.js +1 -0
  346. package/dist/src/screen-recording-options.js +1 -0
  347. package/dist/src/screen-recording-resource-recovery.js +1 -0
  348. package/dist/src/screen-recording-runtime.js +1 -0
  349. package/dist/src/screenshot-density.js +1 -1
  350. package/dist/src/screenshot-result.js +1 -6
  351. package/dist/src/screenshot-runtime.js +1 -0
  352. package/dist/src/screenshot.js +1 -1
  353. package/dist/src/screenshot2.js +1 -0
  354. package/dist/src/screenshot3.js +5 -0
  355. package/dist/src/script.js +1 -0
  356. package/dist/src/scroll-command.js +1 -0
  357. package/dist/src/scroll-gesture.js +1 -0
  358. package/dist/src/scroll-indicator.js +1 -0
  359. package/dist/src/sdk-batch-runner.d.ts +23 -6
  360. package/dist/src/sdk-batch-runner.js +2 -3
  361. package/dist/src/sdk-batch.js +2 -0
  362. package/dist/src/sdk-contracts.d.ts +222 -99
  363. package/dist/src/sdk-contracts.js +2 -2
  364. package/dist/src/sdk-device.js +1 -1
  365. package/dist/src/sdk-finders.d.ts +1 -1
  366. package/dist/src/sdk-finders.js +1 -1
  367. package/dist/src/sdk-io.js +1 -1
  368. package/dist/src/sdk-remote-config.d.ts +1 -1
  369. package/dist/src/sdk-remote-config.js +1 -1
  370. package/dist/src/sdk-selectors.d.ts +539 -199
  371. package/dist/src/sdk-selectors.js +1 -1
  372. package/dist/src/selection.js +1 -0
  373. package/dist/src/selector-runtime.js +1 -1
  374. package/dist/src/selectors.js +1 -1
  375. package/dist/src/semantic-index.js +1 -0
  376. package/dist/src/server.js +10 -3
  377. package/dist/src/session-allocation.js +1 -0
  378. package/dist/src/session-artifact-paths.js +1 -0
  379. package/dist/src/session-paths.js +1 -0
  380. package/dist/src/session-repair-tombstone.js +1 -0
  381. package/dist/src/session-routing.js +1 -0
  382. package/dist/src/session-runtime-admission.js +1 -0
  383. package/dist/src/session-snapshot.js +1 -0
  384. package/dist/src/session-store.js +4 -0
  385. package/dist/src/session-target-evidence.js +1 -1
  386. package/dist/src/session2.js +5 -28
  387. package/dist/src/settings.js +1 -0
  388. package/dist/src/shared.js +2 -2
  389. package/dist/src/simctl-facade.js +1 -0
  390. package/dist/src/simctl.js +1 -1
  391. package/dist/src/simulator-facade.js +1 -0
  392. package/dist/src/simulator.js +1 -1
  393. package/dist/src/snapshot-capture-annotations.js +1 -0
  394. package/dist/src/snapshot-desktop-projection.js +1 -0
  395. package/dist/src/snapshot-diagnostics.js +1 -0
  396. package/dist/src/snapshot-process.js +1 -0
  397. package/dist/src/snapshot-quality-backend-capabilities.js +1 -0
  398. package/dist/src/snapshot-quality-verdict.js +1 -0
  399. package/dist/src/snapshot-runtime-binding.js +1 -0
  400. package/dist/src/snapshot-runtime.js +1 -1
  401. package/dist/src/snapshot-scope.js +1 -0
  402. package/dist/src/snapshot-state.js +1 -0
  403. package/dist/src/snapshot.js +1 -8
  404. package/dist/src/snapshot2.js +1 -1
  405. package/dist/src/snapshot3.js +1 -1
  406. package/dist/src/snapshot4.js +1 -0
  407. package/dist/src/src.js +1 -1
  408. package/dist/src/src2.js +1 -1
  409. package/dist/src/src3.js +1 -2
  410. package/dist/src/src4.js +1 -0
  411. package/dist/src/src5.js +1 -0
  412. package/dist/src/src6.js +1 -0
  413. package/dist/src/src7.js +2 -0
  414. package/dist/src/src8.js +115 -0
  415. package/dist/src/startup-recovery-fence.js +1 -0
  416. package/dist/src/status-markers.js +1 -0
  417. package/dist/src/string-enum.js +1 -1
  418. package/dist/src/success-text.js +1 -0
  419. package/dist/src/surface-snapshot.js +1 -0
  420. package/dist/src/surface-snapshot2.js +1 -0
  421. package/dist/src/takeover.js +5 -0
  422. package/dist/src/tool-provider-facade.js +1 -0
  423. package/dist/src/tool-provider.js +4 -3
  424. package/dist/src/tool-provider2.js +1 -1
  425. package/dist/src/tool-provider3.js +1 -0
  426. package/dist/src/toolchain-probe.js +2 -0
  427. package/dist/src/touch-runtime.js +1 -0
  428. package/dist/src/transport.js +3 -0
  429. package/dist/src/tree.js +1 -0
  430. package/dist/src/ttl-memo.js +1 -0
  431. package/dist/src/tv-remote.js +1 -0
  432. package/dist/src/type-text-runtime.js +1 -0
  433. package/dist/src/undici.js +99 -0
  434. package/dist/src/update-check.js +1 -1
  435. package/dist/src/verified-file.js +1 -1
  436. package/dist/src/version.js +1 -1
  437. package/dist/src/video.js +2 -2
  438. package/dist/src/web.js +2 -1
  439. package/dist/src/web2.js +1 -0
  440. package/dist/src/webdriver-ios-snapshot.js +1 -0
  441. package/dist/src/webdriver-source.js +1 -0
  442. package/linux/atspi-dump.py +54 -9
  443. package/package.json +73 -38
  444. package/server.json +9 -3
  445. package/android/ime-helper/dist/agent-device-android-ime-helper-0.20.9.apk.sha256 +0 -1
  446. package/android/snapshot-helper/dist/agent-device-android-snapshot-helper-0.20.9.apk +0 -0
  447. package/android/snapshot-helper/dist/agent-device-android-snapshot-helper-0.20.9.apk.sha256 +0 -1
  448. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+CoordinateTextEntryTests.swift +0 -4
  449. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+FlatSnapshotFiltering.swift +0 -75
  450. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+LifecycleCacheTests.swift +0 -6
  451. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+RecordingTests.swift +0 -4
  452. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SelectorMatchPolicyTests.swift +0 -4
  453. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SnapshotTraversalIdentityTests.swift +0 -4
  454. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+TextEntryPolicyTests.swift +0 -4
  455. package/dist/src/appearance.js +0 -1
  456. package/dist/src/apps.js +0 -5
  457. package/dist/src/audio-probe.js +0 -1
  458. package/dist/src/cancel.js +0 -1
  459. package/dist/src/cli-grammar.js +0 -1
  460. package/dist/src/command-catalog.js +0 -1
  461. package/dist/src/debug-symbols.js +0 -5
  462. package/dist/src/device-input-state.js +0 -2
  463. package/dist/src/device-ready.js +0 -1
  464. package/dist/src/dispatch.js +0 -1
  465. package/dist/src/handler-utils.js +0 -1
  466. package/dist/src/helper-package-install.js +0 -1
  467. package/dist/src/host-process.js +0 -3
  468. package/dist/src/ime-lifecycle.js +0 -2
  469. package/dist/src/ime-recovery-marker.js +0 -1
  470. package/dist/src/input-actions3.js +0 -1
  471. package/dist/src/install-artifact.js +0 -1
  472. package/dist/src/install-artifact2.js +0 -1
  473. package/dist/src/interaction-common.js +0 -1
  474. package/dist/src/interaction-runtime.js +0 -1
  475. package/dist/src/interaction-snapshot.js +0 -1
  476. package/dist/src/manifest.js +0 -1
  477. package/dist/src/method-scope.js +0 -1
  478. package/dist/src/png-resize.js +0 -1
  479. package/dist/src/process-lock.js +0 -1
  480. package/dist/src/runner-lease.js +0 -1
  481. package/dist/src/runner-sequence.js +0 -1
  482. package/dist/src/screenshot-geometry.js +0 -1
  483. package/dist/src/sdk-android-adb.d.ts +0 -245
  484. package/dist/src/sdk-android-adb.js +0 -4
  485. package/dist/src/sdk.js +0 -1
  486. package/dist/src/setting-state.js +0 -1
  487. package/dist/src/shell-quote.js +0 -1
  488. package/dist/src/snapshot-session.js +0 -1
  489. package/dist/src/timing-safe-equal.js +0 -1
  490. package/dist/src/unsupported-interactor.js +0 -1
  491. package/dist/src/verdict.js +0 -1
  492. /package/dist/src/{recording-telemetry.js → telemetry.js} +0 -0
@@ -1,79 +1,4 @@
1
- import { A as SnapshotNode, D as Rect, E as RawSnapshotNode, M as SnapshotQualityVerdict, N as SnapshotState, O as ScreenshotOverlayRef, T as Point, U as PublicPlatform, V as Platform, j as SnapshotOptions$1, k as SnapshotBackend, m as ResponseCost } from "./sdk-contracts.js";
2
- import { c as ScrollDirection, o as GesturePlan } from "./sdk-android-adb.js";
3
- //#region packages/contracts/src/back-mode.d.ts
4
- declare const BACK_MODES: readonly ['in-app', 'system'];
5
- type BackMode = (typeof BACK_MODES)[number];
6
- //#endregion
7
- //#region packages/contracts/src/click-button.d.ts
8
- declare const CLICK_BUTTONS: readonly ['primary', 'secondary', 'middle'];
9
- type ClickButton = (typeof CLICK_BUTTONS)[number];
10
- //#endregion
11
- //#region packages/contracts/src/device-rotation.d.ts
12
- declare const DEVICE_ROTATIONS: readonly ['portrait', 'portrait-upside-down', 'landscape-left', 'landscape-right'];
13
- type DeviceRotation = (typeof DEVICE_ROTATIONS)[number];
14
- //#endregion
15
- //#region packages/contracts/src/tv-remote.d.ts
16
- declare const TV_REMOTE_BUTTON_DEFINITIONS: {
17
- readonly up: {
18
- readonly aliases: readonly [];
19
- readonly androidKeyevent: 'KEYCODE_DPAD_UP';
20
- readonly appleRemoteButton: 'up';
21
- readonly vegaKey: 'KEY_UP';
22
- };
23
- readonly down: {
24
- readonly aliases: readonly [];
25
- readonly androidKeyevent: 'KEYCODE_DPAD_DOWN';
26
- readonly appleRemoteButton: 'down';
27
- readonly vegaKey: 'KEY_DOWN';
28
- };
29
- readonly left: {
30
- readonly aliases: readonly [];
31
- readonly androidKeyevent: 'KEYCODE_DPAD_LEFT';
32
- readonly appleRemoteButton: 'left';
33
- readonly vegaKey: 'KEY_LEFT';
34
- };
35
- readonly right: {
36
- readonly aliases: readonly [];
37
- readonly androidKeyevent: 'KEYCODE_DPAD_RIGHT';
38
- readonly appleRemoteButton: 'right';
39
- readonly vegaKey: 'KEY_RIGHT';
40
- };
41
- readonly select: {
42
- readonly aliases: readonly ["ok", "center", "enter"];
43
- readonly androidKeyevent: 'KEYCODE_DPAD_CENTER';
44
- readonly appleRemoteButton: 'select';
45
- readonly vegaKey: 'KEY_ENTER';
46
- };
47
- readonly menu: {
48
- readonly aliases: readonly [];
49
- readonly androidKeyevent: 'KEYCODE_MENU';
50
- readonly appleRemoteButton: 'menu';
51
- readonly vegaKey: 'KEY_MENU';
52
- };
53
- readonly home: {
54
- readonly aliases: readonly [];
55
- readonly androidKeyevent: 'KEYCODE_HOME';
56
- readonly appleRemoteButton: 'home';
57
- readonly vegaKey: 'KEY_HOMEPAGE';
58
- };
59
- readonly back: {
60
- readonly aliases: readonly [];
61
- readonly androidKeyevent: 'KEYCODE_BACK';
62
- readonly appleRemoteButton: 'menu';
63
- readonly vegaKey: 'KEY_BACK';
64
- };
65
- };
66
- declare const TV_REMOTE_BUTTONS: (keyof typeof TV_REMOTE_BUTTON_DEFINITIONS)[];
67
- type TvRemoteButton = (typeof TV_REMOTE_BUTTONS)[number];
68
- //#endregion
69
- //#region packages/contracts/src/settings.d.ts
70
- type SettingOptions = {
71
- permissionTarget?: string;
72
- permissionMode?: string;
73
- latitude?: number;
74
- longitude?: number;
75
- };
76
- //#endregion
1
+ import { C as SnapshotNode, D as SnapshotState, E as SnapshotQualityVerdict, F as Platform, L as PublicPlatform, S as ScreenshotOverlayRef, T as SnapshotProvenance, b as RawSnapshotNode, h as ResponseCost, w as SnapshotOptions$1, x as Rect, y as Point } from "./sdk-contracts.js";
77
2
  //#region packages/contracts/src/session-surface.d.ts
78
3
  declare const SESSION_SURFACES: readonly ['app', 'frontmost-app', 'desktop', 'menubar'];
79
4
  type SessionSurface = (typeof SESSION_SURFACES)[number];
@@ -102,6 +27,7 @@ type ScreenshotResultData = {
102
27
  logicalHeight?: number;
103
28
  pixelDensity?: number;
104
29
  overlayRefs?: ScreenshotOverlayRef[];
30
+ warnings?: string[];
105
31
  };
106
32
  type BackendSnapshotResult = {
107
33
  nodes?: SnapshotNode[];
@@ -144,134 +70,133 @@ type AndroidSnapshotBackendMetadata = {
144
70
  nodeCount?: number;
145
71
  helperTruncated?: boolean;
146
72
  elapsedMs?: number;
73
+ presentationFailure?: {
74
+ phase: 'deadline' | 'complexity' | 'regular-invariant';
75
+ workUnits: number;
76
+ maxWorkUnits?: number;
77
+ };
78
+ /** API 23 exposes no sibling drawing order, so same-window occlusion fails conservative. */
79
+ occlusionScanUnavailable?: boolean;
147
80
  };
148
81
  type FindLocator = 'any' | 'text' | 'label' | 'value' | 'role' | 'id';
149
82
  //#endregion
150
- //#region packages/contracts/src/runner-lease-context.d.ts
151
- type RunnerLogicalLeaseContext = {
152
- leaseId?: string;
153
- clientId?: string;
154
- tenantId?: string;
155
- runId?: string;
156
- leaseProvider?: string;
157
- deviceKey?: string;
158
- };
83
+ //#region packages/contracts/src/click-button.d.ts
84
+ declare const CLICK_BUTTONS: readonly ['primary', 'secondary', 'middle'];
85
+ type ClickButton = (typeof CLICK_BUTTONS)[number];
159
86
  //#endregion
160
- //#region packages/contracts/src/interactor-types.d.ts
161
- type RunnerContext = {
162
- requestId?: string;
163
- signal?: AbortSignal;
164
- appBundleId?: string;
165
- verbose?: boolean;
166
- logPath?: string;
167
- traceLogPath?: string;
168
- iosXctestrunFile?: string;
169
- iosXctestDerivedDataPath?: string;
170
- iosXctestEnvDir?: string;
171
- runnerLeaseContext?: RunnerLogicalLeaseContext;
172
- };
173
- type ScreenshotOptions = {
174
- appBundleId?: string;
175
- pixelDensity?: number;
176
- fullscreen?: boolean;
177
- normalizeStatusBar?: boolean;
178
- stabilize?: boolean;
179
- surface?: SessionSurface;
180
- skipIosSimulatorBootCheck?: boolean;
181
- captureBackend?: 'runner';
182
- };
183
- type ElementSelectorKey = 'id' | 'label' | 'text' | 'value';
184
- type ElementSelectorTapOptions = {
185
- key: ElementSelectorKey;
186
- value: string;
187
- allowNonHittableCoordinateFallback?: boolean;
188
- expectedPoint?: Point;
189
- };
190
- /**
191
- * The channel the XCTest runner actually entered text through — the Swift
192
- * `TextEntryResult.textEntryRoute` (RunnerTests+TextTyping.swift,
193
- * RunnerTests+SynthesizedTextEntry.swift). Closed set, because the runner is
194
- * its only producer and the boundary that narrows it
195
- * (readTypeTextBackendResult, src/platforms/apple/interactions.ts) drops a
196
- * route it cannot name — so a Swift-side addition would silently vanish. The
197
- * route-parity test in src/platforms/apple/core/__tests__/interactions.test.ts
198
- * reads the Swift sources and fails instead.
199
- */
200
- declare const TEXT_ENTRY_ROUTES: readonly ['xctest-element', 'synthesized-first-responder', 'synthesized-first-responder-replacement', 'xctest-application-fallback'];
201
- type TextEntryRoute = (typeof TEXT_ENTRY_ROUTES)[number];
202
- /**
203
- * What `Interactor.type` reports back about the entry it performed. Only the
204
- * Apple runner populates it; every other platform types blind and returns void.
205
- */
206
- type TypeTextBackendResult = {
207
- textEntryRoute?: TextEntryRoute;
208
- };
209
- type FillVerificationTarget = {
210
- resourceId: string | null;
211
- className: string | null;
212
- packageName: string | null;
213
- rect: Rect;
214
- };
215
- type FillUnconfirmedVerification = {
216
- verification: 'unconfirmed';
217
- requested: string;
218
- before: string | null;
219
- after: string | null;
220
- target: FillVerificationTarget;
221
- };
222
- type SnapshotOptions = SnapshotOptions$1 & {
223
- appBundleId?: string;
224
- signal?: AbortSignal;
225
- includeRects?: boolean;
226
- includeHiddenContentHints?: boolean;
227
- surface?: SessionSurface;
228
- };
229
- type SnapshotResult = Omit<BackendSnapshotResult, 'backend' | 'nodes'> & {
230
- nodes?: RawSnapshotNode[];
231
- backend: Extract<SnapshotBackend, 'android' | 'harmonyos-arkui' | 'xctest' | 'linux-atspi' | 'web'>;
87
+ //#region packages/contracts/src/scroll-gesture.d.ts
88
+ declare const SCROLL_INPUT_DIRECTIONS: readonly ['up', 'down', 'left', 'right', 'top', 'bottom'];
89
+ type ScrollInputDirection = (typeof SCROLL_INPUT_DIRECTIONS)[number];
90
+ declare const SCROLL_DIRECTIONS: readonly ['up', 'down', 'left', 'right'];
91
+ type ScrollDirection = (typeof SCROLL_DIRECTIONS)[number];
92
+ declare const SWIPE_PRESETS: readonly ['left', 'right', 'left-edge', 'right-edge'];
93
+ type SwipePreset = (typeof SWIPE_PRESETS)[number];
94
+ declare const SWIPE_PATTERNS: readonly ['one-way', 'ping-pong'];
95
+ type SwipePattern = (typeof SWIPE_PATTERNS)[number];
96
+ type TransformGestureParams = {
97
+ x: number;
98
+ y: number;
99
+ dx: number;
100
+ dy: number;
101
+ scale: number;
102
+ degrees: number;
103
+ durationMs?: number;
232
104
  };
233
- type Interactor = {
234
- open(app: string, options?: {
235
- activity?: string;
236
- appBundleId?: string;
237
- launchConsole?: string;
238
- launchArgs?: string[];
239
- terminateRunningApp?: boolean;
240
- url?: string;
241
- }): Promise<void>;
242
- openDevice(): Promise<void>;
243
- close(app: string): Promise<void>;
244
- tap(x: number, y: number): Promise<Record<string, unknown> | void>;
245
- tapElementSelector?(selector: ElementSelectorTapOptions): Promise<Record<string, unknown> | void>;
246
- doubleTap(x: number, y: number): Promise<Record<string, unknown> | void>;
247
- longPress(x: number, y: number, durationMs?: number): Promise<Record<string, unknown> | void>;
248
- focus(x: number, y: number): Promise<Record<string, unknown> | void>;
249
- type(text: string, delayMs?: number): Promise<TypeTextBackendResult | void>;
250
- fillElementSelector?(selector: ElementSelectorTapOptions, text: string, delayMs?: number): Promise<Record<string, unknown> | void>;
251
- fill(x: number, y: number, text: string, delayMs?: number, options?: {
252
- allowNonHittableCoordinateFallback?: boolean;
253
- }): Promise<Record<string, unknown> | void>;
254
- scroll(direction: ScrollDirection, options?: {
255
- amount?: number;
256
- pixels?: number;
257
- durationMs?: number;
258
- }): Promise<Record<string, unknown> | void>;
259
- screenshot(outPath: string, options?: ScreenshotOptions): Promise<void>;
260
- setViewport?(width: number, height: number): Promise<Record<string, unknown> | void>;
261
- snapshot(options?: SnapshotOptions): Promise<SnapshotResult>;
262
- gestureViewport?(): Promise<Rect>;
263
- back(mode?: BackMode): Promise<void>;
264
- home(): Promise<void>;
265
- setOrientation(orientation: DeviceRotation): Promise<{
266
- orientation?: DeviceRotation;
267
- } | void>;
268
- performGesture?(plan: GesturePlan): Promise<Record<string, unknown> | void>;
269
- appSwitcher(): Promise<void>;
270
- tvRemote(button: TvRemoteButton, durationMs?: number): Promise<void>;
271
- readClipboard(): Promise<string>;
272
- writeClipboard(text: string): Promise<void>;
273
- setSetting(setting: string, state: string, appId?: string, options?: SettingOptions): Promise<Record<string, unknown> | void>;
105
+ //#endregion
106
+ //#region packages/contracts/src/gesture-plan-types.d.ts
107
+ type GesturePointerCount = 1 | 2;
108
+ /** Selects one-pointer release timing without changing semantic gesture intent. */
109
+ type GestureExecutionProfile = 'endpoint-hold' | 'timed-pan';
110
+ type PointerTrajectorySample = {
111
+ offsetMs: number;
112
+ point: Point;
113
+ };
114
+ type PointerTrajectory = {
115
+ pointerId: 0 | 1;
116
+ samples: readonly PointerTrajectorySample[];
117
+ };
118
+ type SinglePointerTrajectory = {
119
+ pointerId: 0;
120
+ samples: readonly [PointerTrajectorySample, PointerTrajectorySample, ...PointerTrajectorySample[]];
121
+ };
122
+ type SinglePointerGesturePlan = {
123
+ topology: 'single';
124
+ intent: 'fling' | 'pan';
125
+ executionProfile: GestureExecutionProfile;
126
+ durationMs: number;
127
+ viewport: Rect;
128
+ pointers: readonly [SinglePointerTrajectory];
129
+ };
130
+ type MultiTouchGesturePlan = {
131
+ topology: 'two';
132
+ intent: 'pan' | 'pinch' | 'rotate' | 'transform';
133
+ durationMs: number;
134
+ viewport: Rect;
135
+ pointers: readonly [PointerTrajectory, PointerTrajectory];
136
+ };
137
+ type GesturePlan = SinglePointerGesturePlan | MultiTouchGesturePlan;
138
+ //#endregion
139
+ //#region packages/contracts/src/back-mode.d.ts
140
+ declare const BACK_MODES: readonly ['in-app', 'system'];
141
+ type BackMode = (typeof BACK_MODES)[number];
142
+ //#endregion
143
+ //#region packages/contracts/src/device-rotation.d.ts
144
+ declare const DEVICE_ROTATIONS: readonly ['portrait', 'portrait-upside-down', 'landscape-left', 'landscape-right'];
145
+ type DeviceRotation = (typeof DEVICE_ROTATIONS)[number];
146
+ //#endregion
147
+ //#region packages/contracts/src/tv-remote.d.ts
148
+ declare const TV_REMOTE_BUTTON_DEFINITIONS: {
149
+ readonly up: {
150
+ readonly aliases: readonly [];
151
+ readonly androidKeyevent: 'KEYCODE_DPAD_UP';
152
+ readonly appleRemoteButton: 'up';
153
+ readonly vegaKey: 'KEY_UP';
154
+ };
155
+ readonly down: {
156
+ readonly aliases: readonly [];
157
+ readonly androidKeyevent: 'KEYCODE_DPAD_DOWN';
158
+ readonly appleRemoteButton: 'down';
159
+ readonly vegaKey: 'KEY_DOWN';
160
+ };
161
+ readonly left: {
162
+ readonly aliases: readonly [];
163
+ readonly androidKeyevent: 'KEYCODE_DPAD_LEFT';
164
+ readonly appleRemoteButton: 'left';
165
+ readonly vegaKey: 'KEY_LEFT';
166
+ };
167
+ readonly right: {
168
+ readonly aliases: readonly [];
169
+ readonly androidKeyevent: 'KEYCODE_DPAD_RIGHT';
170
+ readonly appleRemoteButton: 'right';
171
+ readonly vegaKey: 'KEY_RIGHT';
172
+ };
173
+ readonly select: {
174
+ readonly aliases: readonly ["ok", "center", "enter"];
175
+ readonly androidKeyevent: 'KEYCODE_DPAD_CENTER';
176
+ readonly appleRemoteButton: 'select';
177
+ readonly vegaKey: 'KEY_ENTER';
178
+ };
179
+ readonly menu: {
180
+ readonly aliases: readonly [];
181
+ readonly androidKeyevent: 'KEYCODE_MENU';
182
+ readonly appleRemoteButton: 'menu';
183
+ readonly vegaKey: 'KEY_MENU';
184
+ };
185
+ readonly home: {
186
+ readonly aliases: readonly [];
187
+ readonly androidKeyevent: 'KEYCODE_HOME';
188
+ readonly appleRemoteButton: 'home';
189
+ readonly vegaKey: 'KEY_HOMEPAGE';
190
+ };
191
+ readonly back: {
192
+ readonly aliases: readonly [];
193
+ readonly androidKeyevent: 'KEYCODE_BACK';
194
+ readonly appleRemoteButton: 'menu';
195
+ readonly vegaKey: 'KEY_BACK';
196
+ };
274
197
  };
198
+ declare const TV_REMOTE_BUTTONS: (keyof typeof TV_REMOTE_BUTTON_DEFINITIONS)[];
199
+ type TvRemoteButton = (typeof TV_REMOTE_BUTTONS)[number];
275
200
  //#endregion
276
201
  //#region packages/contracts/src/interaction.d.ts
277
202
  /** The decisive criterion separating a resolveSelectorChain winner from its strongest runner-up (ADR 0012). */
@@ -479,6 +404,10 @@ type TouchLongPressExtras = {
479
404
  gesture: 'longpress';
480
405
  };
481
406
  type LongPressCommandResponseData = (TouchResponsePoint & TouchLongPressExtras) | (TouchResponseRef & TouchLongPressExtras) | (TouchResponseSelector & TouchLongPressExtras);
407
+ type TouchHoverExtras = {
408
+ gesture: 'hover';
409
+ };
410
+ type HoverCommandResponseData = (TouchResponsePoint & TouchHoverExtras) | (TouchResponseRef & TouchHoverExtras) | (TouchResponseSelector & TouchHoverExtras);
482
411
  /**
483
412
  * Daemon response data for the `find` command. Read-only actions (`exists`,
484
413
  * `wait`, `get_text`, `get_attrs`) may issue a pinnable ref with
@@ -508,6 +437,417 @@ type FindCommandResponseData = {
508
437
  cost?: ResponseCost;
509
438
  };
510
439
  //#endregion
440
+ //#region packages/contracts/src/scroll-command.d.ts
441
+ type ScrollReleaseBehavior = 'controlled' | 'inertial';
442
+ type ScrollDistanceOptions = {
443
+ amount?: number;
444
+ pixels?: number;
445
+ };
446
+ type ScrollTimingOptions = {
447
+ durationMs?: number;
448
+ };
449
+ type ScrollCommandOptions = ScrollDistanceOptions & ScrollTimingOptions;
450
+ type ScrollExecutionOptions = ScrollCommandOptions & {
451
+ releaseBehavior?: ScrollReleaseBehavior;
452
+ };
453
+ /**
454
+ * `scroll` — the generic-route result built by `buildDispatchedScrollResult`
455
+ * (src/core/dispatch-scroll.ts): the resolved direction, the edge-pass
456
+ * bookkeeping for `top`/`bottom` scrolls, the honored distance/timing echo,
457
+ * and the success message. Platform leaves add gesture-plan coordinates
458
+ * (`x1`/`y1`/`x2`/`y2`, reference frame) on top; the output schema stays
459
+ * non-strict so those additive fields validate. The one field the dispatcher
460
+ * itself may add: `settle`, the opt-in `--settle` observation (#1638),
461
+ * attached after the command — same shape as `BackCommandResult`.
462
+ */
463
+ type ScrollCommandResult = {
464
+ direction: ScrollDirection;
465
+ /** Set for `top`/`bottom` requests: the extreme being scrolled to. */
466
+ edge?: 'top' | 'bottom';
467
+ /** Edge scrolls only: how many scroll-and-check passes ran. */
468
+ passes?: number;
469
+ amount?: number;
470
+ pixels?: number;
471
+ durationMs?: number;
472
+ message?: string;
473
+ settle?: SettleObservation;
474
+ };
475
+ //#endregion
476
+ //#region packages/contracts/src/settings.d.ts
477
+ type SettingOptions = {
478
+ permissionTarget?: string;
479
+ permissionMode?: string;
480
+ latitude?: number;
481
+ longitude?: number;
482
+ };
483
+ //#endregion
484
+ //#region packages/contracts/src/runner-lease-context.d.ts
485
+ type RunnerLogicalLeaseContext = {
486
+ leaseId?: string;
487
+ clientId?: string;
488
+ tenantId?: string;
489
+ runId?: string;
490
+ leaseProvider?: string;
491
+ deviceKey?: string;
492
+ };
493
+ //#endregion
494
+ //#region packages/contracts/src/ios-snapshot.d.ts
495
+ type IosSnapshotProducer = 'apple-runner' | 'simulator-ax-bridge' | 'appium-source' | 'limrun-ios-tree';
496
+ type IosAcquisitionProducer = Exclude<IosSnapshotProducer, 'apple-runner'>;
497
+ type IosAcquisitionIntent = 'full' | 'surface-observation';
498
+ type IosSnapshotProjection = 'regular' | 'raw';
499
+ type IosSnapshotGeneration = string;
500
+ type IosSnapshotLineage = Readonly<{
501
+ targetId?: string;
502
+ generation?: IosSnapshotGeneration;
503
+ }>;
504
+ type IosSnapshotPresentationKey = Readonly<{
505
+ projection: IosSnapshotProjection;
506
+ interactiveOnly: boolean;
507
+ depth: number | null;
508
+ scope: string | null;
509
+ customActions: boolean;
510
+ }>;
511
+ type CaptureHint = Readonly<{
512
+ projection: IosSnapshotProjection;
513
+ rawTraversalDepth: number | null;
514
+ regularPresentedDepth: number | null;
515
+ interactiveOnly: boolean;
516
+ customActions: boolean;
517
+ acquisitionIntent: IosAcquisitionIntent;
518
+ }>;
519
+ type IosSnapshotFact = 'acquisition-depth' | 'scope' | 'interactive-query' | 'viewport' | 'hittability' | 'generation' | 'truncation';
520
+ type IosViewportEvidence = Readonly<{
521
+ kind: 'reported';
522
+ rect: Rect;
523
+ }> | Readonly<{
524
+ kind: 'derived';
525
+ rect: Rect;
526
+ }> | Readonly<{
527
+ kind: 'missing';
528
+ reason: 'not-provided' | 'not-supported' | 'invalid';
529
+ }>;
530
+ type IosProviderPrunedField = 'nodes' | 'depth' | 'scope' | 'interactive-only';
531
+ type IosTruncationDimension = 'nodes' | 'depth' | 'payload';
532
+ type IosAcquisitionResidue = Readonly<{
533
+ kind: 'provider-pruned';
534
+ fields: readonly IosProviderPrunedField[];
535
+ }> | Readonly<{
536
+ kind: 'missing-viewport';
537
+ reason: 'not-provided' | 'not-supported' | 'invalid';
538
+ }> | Readonly<{
539
+ kind: 'truncated';
540
+ dimension: IosTruncationDimension;
541
+ limit?: number;
542
+ }> | Readonly<{
543
+ kind: 'stale-generation';
544
+ expected?: IosSnapshotGeneration;
545
+ observed?: IosSnapshotGeneration;
546
+ }> | Readonly<{
547
+ kind: 'unknown-generation';
548
+ captureId: string;
549
+ }> | Readonly<{
550
+ kind: 'unavailable-fact';
551
+ fact: IosSnapshotFact;
552
+ }> | Readonly<{
553
+ kind: 'fallback-source';
554
+ producer: IosSnapshotProducer;
555
+ }>;
556
+ type IosSnapshotAcquisitionForIntent<Intent extends IosAcquisitionIntent> = Readonly<{
557
+ producer: IosAcquisitionProducer;
558
+ intent: Intent;
559
+ hint: CaptureHint & Readonly<{
560
+ acquisitionIntent: Intent;
561
+ }>;
562
+ nodes: readonly RawSnapshotNode[];
563
+ truncated?: boolean;
564
+ viewport: IosViewportEvidence;
565
+ lineage: IosSnapshotLineage;
566
+ residue: readonly IosAcquisitionResidue[];
567
+ }>;
568
+ type IosSnapshotAcquisition = IosSnapshotAcquisitionForIntent<'full'> | IosSnapshotAcquisitionForIntent<'surface-observation'>;
569
+ type IosSnapshotAcquisitionFacts = Omit<IosSnapshotAcquisition, 'hint'>;
570
+ type IosSnapshotComparisonIdentity = Readonly<{
571
+ producer: IosSnapshotProducer;
572
+ intent: IosAcquisitionIntent;
573
+ lineage: IosSnapshotLineage;
574
+ presentationKey: IosSnapshotPresentationKey;
575
+ residue: readonly IosAcquisitionResidue[];
576
+ }>;
577
+ //#endregion
578
+ //#region packages/contracts/src/interactor-types.d.ts
579
+ type RunnerContext = {
580
+ requestId?: string;
581
+ signal?: AbortSignal;
582
+ appBundleId?: string;
583
+ verbose?: boolean;
584
+ logPath?: string;
585
+ traceLogPath?: string;
586
+ iosXctestrunFile?: string;
587
+ iosXctestDerivedDataPath?: string;
588
+ iosXctestEnvDir?: string;
589
+ runnerLeaseContext?: RunnerLogicalLeaseContext;
590
+ };
591
+ type ScreenshotOptions = {
592
+ appBundleId?: string;
593
+ pixelDensity?: number;
594
+ fullscreen?: boolean;
595
+ normalizeStatusBar?: boolean;
596
+ stabilize?: boolean;
597
+ surface?: SessionSurface;
598
+ skipIosSimulatorBootCheck?: boolean;
599
+ captureBackend?: 'runner';
600
+ };
601
+ type ElementSelectorKey = 'id' | 'label' | 'text' | 'value';
602
+ type ElementSelectorTapOptions = {
603
+ key: ElementSelectorKey;
604
+ value: string;
605
+ allowNonHittableCoordinateFallback?: boolean;
606
+ expectedPoint?: Point;
607
+ };
608
+ type PressPointOptions = Readonly<{
609
+ button: 'primary' | 'secondary' | 'middle';
610
+ count: number;
611
+ intervalMs: number;
612
+ holdMs: number;
613
+ jitterPx: number;
614
+ doubleTap: boolean;
615
+ surface?: SessionSurface;
616
+ }>;
617
+ /**
618
+ * The channel the XCTest runner actually entered text through — the Swift
619
+ * `TextEntryResult.textEntryRoute` (RunnerTests+TextTyping.swift,
620
+ * RunnerTests+SynthesizedTextEntry.swift). Closed set, because the runner is
621
+ * its only producer and the boundary that narrows it
622
+ * (readTypeTextBackendResult, packages/platform-apple/src/interactions.ts) drops a
623
+ * route it cannot name — so a Swift-side addition would silently vanish. The
624
+ * route-parity test in packages/platform-apple/src/core/__tests__/interactions.test.ts
625
+ * reads the Swift sources and fails instead.
626
+ */
627
+ declare const TEXT_ENTRY_ROUTES: readonly ['xctest-element', 'synthesized-first-responder', 'synthesized-first-responder-replacement', 'xctest-application-fallback'];
628
+ type TextEntryRoute = (typeof TEXT_ENTRY_ROUTES)[number];
629
+ /**
630
+ * What `Interactor.type` reports back about the entry it performed. Only the
631
+ * Apple runner populates it; every other platform types blind and returns void.
632
+ */
633
+ type TypeTextBackendResult = {
634
+ textEntryRoute?: TextEntryRoute;
635
+ };
636
+ type FillVerificationTarget = {
637
+ resourceId: string | null;
638
+ className: string | null;
639
+ packageName: string | null;
640
+ rect: Rect;
641
+ };
642
+ type FillUnconfirmedVerification = {
643
+ verification: 'unconfirmed';
644
+ requested: string;
645
+ before: string | null;
646
+ after: string | null;
647
+ target: FillVerificationTarget;
648
+ };
649
+ type SnapshotOptions = SnapshotOptions$1 & {
650
+ appBundleId?: string;
651
+ signal?: AbortSignal;
652
+ includeRects?: boolean;
653
+ includeHiddenContentHints?: boolean;
654
+ surface?: SessionSurface;
655
+ /** Internal capture purpose; action outcomes always require the full tree. */
656
+ acquisitionIntent?: 'full' | 'surface-observation';
657
+ };
658
+ /**
659
+ * Android's live IME status read. Optional on {@link Interactor}: parity with the retired leaf,
660
+ * which refused `status`/`get` on every other family (no other platform's runner exposes one).
661
+ * A single-member discriminated union rather than a bare object so the daemon can derive its wire
662
+ * `platform` label from `kind` the same way it does for dismiss and enter — an owner can only ever
663
+ * produce its own result shape.
664
+ */
665
+ type KeyboardStatusResult = Readonly<{
666
+ kind: 'ime-probe';
667
+ visible: boolean;
668
+ inputType?: string;
669
+ type?: string;
670
+ inputMethodPackage?: string;
671
+ focusedPackage?: string;
672
+ focusedResourceId?: string;
673
+ inputOwner?: string;
674
+ }>;
675
+ /**
676
+ * Owner-shaped dismiss evidence, discriminated by which owner produced it: Android's IME probe
677
+ * fields, or iOS's `mechanism` disclosure (#1598), or HarmonyOS's bare acknowledgment (its HDC
678
+ * key press reports nothing beyond success). The daemon derives the wire `platform` label from
679
+ * `kind` rather than re-deriving it from the device, so an owner can only ever produce its own
680
+ * result shape — an android-probe result under an `ios` label is unrepresentable.
681
+ */
682
+ type KeyboardDismissResult = Readonly<{
683
+ kind: 'ime-probe';
684
+ attempts?: number;
685
+ wasVisible?: boolean;
686
+ dismissed?: boolean;
687
+ visible?: boolean;
688
+ inputType?: string;
689
+ type?: string;
690
+ inputMethodPackage?: string;
691
+ focusedPackage?: string;
692
+ focusedResourceId?: string;
693
+ inputOwner?: string;
694
+ }> | Readonly<{
695
+ kind: 'mechanism';
696
+ wasVisible?: boolean;
697
+ dismissed?: boolean;
698
+ visible?: boolean;
699
+ mechanism?: string;
700
+ }> | Readonly<{
701
+ kind: 'acknowledged';
702
+ }>;
703
+ /**
704
+ * Only the Apple runner echoes visibility around the return-key press; Android and HarmonyOS
705
+ * acknowledge with no fields beyond success. Kind is owner-specific, not just content-shaped —
706
+ * Android's and HarmonyOS's acknowledgments are structurally identical, so only the discriminant
707
+ * itself tells the daemon which owner actually pressed enter.
708
+ */
709
+ type KeyboardEnterResult = Readonly<{
710
+ kind: 'visibility-echo';
711
+ visible?: boolean;
712
+ wasVisible?: boolean;
713
+ }> | Readonly<{
714
+ kind: 'android-acknowledged';
715
+ }> | Readonly<{
716
+ kind: 'harmonyos-acknowledged';
717
+ }>;
718
+ /**
719
+ * Every acquisition carries its provenance pair atomically: the channel alone cannot say who
720
+ * acquired the tree or which guarantees it carries, and `SnapshotProvenance`
721
+ * (`@agent-device/kernel/snapshot`) makes a cross-channel `backend`/`producer` combination
722
+ * fail to compile.
723
+ */
724
+ type SnapshotResult = Omit<BackendSnapshotResult, 'backend' | 'nodes'> & {
725
+ nodes?: RawSnapshotNode[];
726
+ comparisonIdentity?: IosSnapshotComparisonIdentity;
727
+ } & SnapshotProvenance;
728
+ type SnapshotRuntimeAcquiredResult = Readonly<{
729
+ stage: 'acquired';
730
+ acquisition: IosSnapshotAcquisitionFacts & Readonly<{
731
+ producer: IosAcquisitionProducer;
732
+ }>;
733
+ }>;
734
+ type SnapshotRuntimeResult = SnapshotResult | SnapshotRuntimeAcquiredResult;
735
+ type Interactor = {
736
+ open(app: string, options?: {
737
+ activity?: string;
738
+ appBundleId?: string;
739
+ launchConsole?: string;
740
+ launchArgs?: string[];
741
+ terminateRunningApp?: boolean;
742
+ url?: string;
743
+ }): Promise<void>;
744
+ openDevice(): Promise<void>;
745
+ close(app: string): Promise<void>;
746
+ tap(x: number, y: number): Promise<Record<string, unknown> | void>;
747
+ /** Complete point-press semantics for owners with fused series, alternate buttons, or surfaces. */
748
+ pressPoint?(point: Point, options: PressPointOptions): Promise<Record<string, unknown> | void>;
749
+ /** Alternate mouse buttons for owners that otherwise use the shared point-press series. */
750
+ alternateClick?(point: Point, button: 'secondary' | 'middle'): Promise<Record<string, unknown> | void>;
751
+ /** Owner-native ref routes; currently the managed web runtime is their only local owner. */
752
+ tapRef?(ref: string): Promise<Record<string, unknown> | void>;
753
+ tapElementSelector?(selector: ElementSelectorTapOptions): Promise<Record<string, unknown> | void>;
754
+ doubleTap(x: number, y: number): Promise<Record<string, unknown> | void>;
755
+ longPress(x: number, y: number, durationMs?: number): Promise<Record<string, unknown> | void>;
756
+ /**
757
+ * Move the pointer to a point without pressing. Only pointer-driven
758
+ * platforms (web today) implement it; touch platforms have no hover state
759
+ * and leave it undefined, which the `hover` command reports as unsupported.
760
+ */
761
+ hover?(x: number, y: number): Promise<Record<string, unknown> | void>;
762
+ hoverRef?(ref: string): Promise<Record<string, unknown> | void>;
763
+ focus(x: number, y: number): Promise<Record<string, unknown> | void>;
764
+ type(text: string, delayMs?: number): Promise<TypeTextBackendResult | void>;
765
+ /**
766
+ * Replace the target's text with `text`. The empty string is the clear request (#2063), not a
767
+ * no-op: an implementation must empty the field or fail — never report success over an
768
+ * untouched value. A backend with no clear mechanism refuses the empty text up front (see the
769
+ * webdriver interactor).
770
+ */
771
+ fill(x: number, y: number, text: string, delayMs?: number, options?: {
772
+ allowNonHittableCoordinateFallback?: boolean;
773
+ }): Promise<Record<string, unknown> | void>;
774
+ fillRef?(ref: string, text: string, delayMs?: number): Promise<Record<string, unknown> | void>;
775
+ scroll(direction: ScrollDirection, options?: ScrollExecutionOptions): Promise<Record<string, unknown> | void>;
776
+ screenshot(outPath: string, options?: ScreenshotOptions): Promise<void>;
777
+ setViewport?(width: number, height: number): Promise<Record<string, unknown> | void>;
778
+ snapshot(options?: SnapshotOptions): Promise<SnapshotRuntimeResult>;
779
+ /**
780
+ * Native reading of the live text at a point, when the backend has one. Answers the text the
781
+ * owner can see right now, which can exceed what an already-captured node carries (an editable
782
+ * field whose value is longer than its label). Optional: a backend without it leaves the
783
+ * captured tree as the complete answer.
784
+ */
785
+ readTextAtPoint?(point: Point, options?: {
786
+ appBundleId?: string;
787
+ surface?: SessionSurface;
788
+ signal?: AbortSignal;
789
+ }): Promise<string | undefined>;
790
+ /**
791
+ * Native text-presence reading, when the backend has one that does not require a tree capture.
792
+ * A `true` answer is authoritative; anything else means "not proven here" and the caller
793
+ * consults the canonical tree (see `FindTextResult`).
794
+ */
795
+ findText?(text: string, options?: {
796
+ appBundleId?: string;
797
+ signal?: AbortSignal;
798
+ }): Promise<{
799
+ found: boolean;
800
+ }>;
801
+ /** Native one-sided observation for a simple selector; false defers to canonical capture. */
802
+ findSelector?(selector: Readonly<{
803
+ key: ElementSelectorKey;
804
+ value: string;
805
+ }>, options?: {
806
+ appBundleId?: string;
807
+ signal?: AbortSignal;
808
+ }): Promise<{
809
+ found: boolean;
810
+ }>;
811
+ gestureViewport?(): Promise<Rect>;
812
+ back(mode?: BackMode): Promise<void>;
813
+ home(): Promise<void>;
814
+ setOrientation(orientation: DeviceRotation): Promise<{
815
+ orientation?: DeviceRotation;
816
+ } | void>;
817
+ performGesture?(plan: GesturePlan): Promise<Record<string, unknown> | void>;
818
+ appSwitcher(): Promise<void>;
819
+ tvRemote(button: TvRemoteButton, durationMs?: number): Promise<void>;
820
+ /** Optional: only Android implements a live status read (see {@link KeyboardStatusResult}). */
821
+ keyboardStatus?(): Promise<KeyboardStatusResult>;
822
+ /** Optional: platforms with no keyboard-dismiss concept leave it undefined. */
823
+ keyboardDismiss?(): Promise<KeyboardDismissResult>;
824
+ /** Optional: platforms with no keyboard-return concept leave it undefined. */
825
+ keyboardEnter?(): Promise<KeyboardEnterResult>;
826
+ readClipboard(): Promise<string>;
827
+ writeClipboard(text: string): Promise<void>;
828
+ setSetting(setting: string, state: string, appId?: string, options?: SettingOptions): Promise<Record<string, unknown> | void>;
829
+ /**
830
+ * The four alert legs. Each owner runs its own observation and, where it needs one, its own
831
+ * poll: an alert is a transient device surface, and how long to look for it — and how to press
832
+ * its buttons — is family mechanics, not something a caller can supply. `timeoutMs` is the
833
+ * whole window the caller allows; the owner spends it however its backend requires.
834
+ */
835
+ readAlert(options?: AlertInteractorOptions): Promise<Record<string, unknown>>;
836
+ awaitAlert(options?: AlertInteractorOptions): Promise<Record<string, unknown>>;
837
+ acceptAlert(options?: AlertInteractorOptions): Promise<Record<string, unknown>>;
838
+ dismissAlert(options?: AlertInteractorOptions): Promise<Record<string, unknown>>;
839
+ };
840
+ /**
841
+ * The session-derived target one alert leg acts on. `appBundleId` is separate from the runner
842
+ * context's because the macOS helper reads a frontmost-app surface with no bundle at all, and
843
+ * the two must not collapse into one field that means both.
844
+ */
845
+ type AlertInteractorOptions = {
846
+ timeoutMs?: number;
847
+ appBundleId?: string;
848
+ surface?: SessionSurface;
849
+ };
850
+ //#endregion
511
851
  //#region packages/selectors/src/internal/parse.d.ts
512
852
  type SelectorKey = 'id' | 'role' | 'text' | 'label' | 'value' | 'appname' | 'windowtitle' | 'visible' | 'hidden' | 'editable' | 'selected' | 'focused' | 'enabled' | 'hittable';
513
853
  type SelectorTerm = {
@@ -602,4 +942,4 @@ declare function formatSelectorFailure(chain: SelectorChain | string, diagnostic
602
942
  unique?: boolean;
603
943
  }): string;
604
944
  //#endregion
605
- export { SessionSurface as C, BackMode as D, ClickButton as E, SnapshotDiagnosticsSummary as S, DeviceRotation as T, Interactor as _, resolveSelectorChain as a, FindLocator as b, isSelectorToken as c, ClickCommandResponseData as d, FillCommandResponseData as f, SettleObservation as g, PressCommandResponseData as h, findSelectorChainMatch as i, parseSelectorChain as l, LongPressCommandResponseData as m, isNodeEditable as n, SelectorDiagnostics as o, FindCommandResponseData as p, isNodeVisible as r, SelectorChain as s, formatSelectorFailure as t, tryParseSelectorChain as u, RunnerContext as v, TvRemoteButton as w, ScreenshotResultData as x, AndroidSnapshotBackendMetadata as y };
945
+ export { ScrollInputDirection as A, BackMode as C, PointerTrajectorySample as D, PointerTrajectory as E, AndroidSnapshotBackendMetadata as F, FindLocator as I, ScreenshotResultData as L, SwipePreset as M, TransformGestureParams as N, SinglePointerGesturePlan as O, ClickButton as P, SnapshotDiagnosticsSummary as R, DeviceRotation as S, MultiTouchGesturePlan as T, HoverCommandResponseData as _, resolveSelectorChain as a, SettleObservation as b, isSelectorToken as c, Interactor as d, RunnerContext as f, FindCommandResponseData as g, FillCommandResponseData as h, findSelectorChainMatch as i, SwipePattern as j, ScrollDirection as k, parseSelectorChain as l, ClickCommandResponseData as m, isNodeEditable as n, SelectorDiagnostics as o, ScrollCommandResult as p, isNodeVisible as r, SelectorChain as s, formatSelectorFailure as t, tryParseSelectorChain as u, LongPressCommandResponseData as v, GesturePointerCount as w, TvRemoteButton as x, PressCommandResponseData as y, SessionSurface as z };