agent-device 0.20.10 → 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 (490) hide show
  1. package/README.md +2 -2
  2. package/android/ime-helper/dist/{agent-device-android-ime-helper-0.20.10.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.10.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.10.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 +16 -8
  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 +106 -103
  26. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+CommandJournal.swift +6 -14
  27. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Interaction.swift +63 -91
  28. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Lifecycle.swift +13 -6
  29. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Models.swift +72 -155
  30. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+PrivateAXElementTypes.swift +12 -0
  31. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+PrivateAXPresentation.swift +74 -78
  32. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+ScreenRecorder.swift +17 -9
  33. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+ScrollGesture.swift +42 -11
  34. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Snapshot.swift +185 -461
  35. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SnapshotBackendCapabilities.swift +98 -0
  36. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SnapshotCapturePlan.swift +224 -164
  37. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SnapshotPresentationInvariant.swift +19 -0
  38. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SnapshotTiming.swift +110 -0
  39. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SynthesizedCommitDeadline.swift +206 -0
  40. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SynthesizedTextEntry.swift +147 -25
  41. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SystemModal.swift +1 -0
  42. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+TextEntry.swift +24 -307
  43. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+TextEntryFocus.swift +206 -0
  44. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+TextEntryReadiness.swift +158 -0
  45. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+TextTyping.swift +49 -16
  46. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Transport.swift +2 -11
  47. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+TvRemote.swift +4 -19
  48. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests.swift +16 -20
  49. package/dist/apple/runner/AgentDeviceRunner/RecordingScripts/RecordingExportSupport.swift +111 -0
  50. package/dist/apple/runner/AgentDeviceRunner/RecordingScripts/recording-overlay.swift +42 -81
  51. package/dist/apple/runner/AgentDeviceRunner/RecordingScripts/recording-trim.swift +35 -82
  52. package/dist/apple/snapshot-presentation/Package.swift +21 -0
  53. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotGeometry.swift +56 -0
  54. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotModels.swift +259 -0
  55. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotPresentation.swift +153 -0
  56. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotPresentationFailure.swift +27 -0
  57. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotPresentationInvariant.swift +91 -0
  58. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotPresentationProjection.swift +161 -0
  59. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotScopePolicy.swift +53 -0
  60. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotVisibilityFold.swift +242 -0
  61. package/dist/apple/snapshot-presentation/Sources/AgentDeviceSnapshotPresentation/SnapshotVisibilityFoldProjection.swift +97 -0
  62. package/dist/src/adapter.js +1 -0
  63. package/dist/src/adb-executor.js +2 -0
  64. package/dist/src/adb-failure.js +1 -0
  65. package/dist/src/adb-host.js +1 -0
  66. package/dist/src/adb.js +1 -0
  67. package/dist/src/agent-browser-lifecycle.js +1 -0
  68. package/dist/src/agent-browser-process-record.js +1 -0
  69. package/dist/src/agent-browser-provider.js +1 -0
  70. package/dist/src/agent-browser-tool.js +1 -1
  71. package/dist/src/agent-device-client.js +2 -2
  72. package/dist/src/ai-sdk.d.ts +2 -2
  73. package/dist/src/ai-sdk.js +1 -1
  74. package/dist/src/alert-contract.js +1 -0
  75. package/dist/src/alert-runtime.js +1 -0
  76. package/dist/src/android-adb.d.ts +27 -19
  77. package/dist/src/android-adb.js +1 -1
  78. package/dist/src/android-input-ownership.js +1 -0
  79. package/dist/src/android-system-chrome.js +1 -0
  80. package/dist/src/android.js +1 -1
  81. package/dist/src/api.js +11 -0
  82. package/dist/src/app-catalog.js +1 -0
  83. package/dist/src/app-deployment-resolution.js +2 -0
  84. package/dist/src/app-helpers.js +1 -1
  85. package/dist/src/app-inventory-contract.js +1 -0
  86. package/dist/src/app-inventory.js +1 -0
  87. package/dist/src/app-launch.js +2 -0
  88. package/dist/src/app-lifecycle-facade.js +1 -0
  89. package/dist/src/app-lifecycle.js +3 -6
  90. package/dist/src/app-lifecycle2.js +2 -2
  91. package/dist/src/app-lifecycle3.js +1 -0
  92. package/dist/src/app-log-files.js +1 -1
  93. package/dist/src/app-log-reconnect.js +1 -1
  94. package/dist/src/app-log-runtime.js +1 -4
  95. package/dist/src/app-log-runtime2.js +4 -0
  96. package/dist/src/app-parsers.js +4 -0
  97. package/dist/src/app-resolution-cache.js +1 -0
  98. package/dist/src/app-resolution-facade.js +1 -0
  99. package/dist/src/app-resolution.js +2 -2
  100. package/dist/src/app-state.js +1 -2
  101. package/dist/src/application-lifecycle-interaction.js +1 -0
  102. package/dist/src/application-lifecycle-runtime.js +1 -0
  103. package/dist/src/apps-simctl.js +1 -0
  104. package/dist/src/archive.js +4 -0
  105. package/dist/src/artifact-download.js +1 -0
  106. package/dist/src/artifacts.d.ts +6 -2
  107. package/dist/src/artifacts.js +1 -1
  108. package/dist/src/async-lifecycle.js +1 -0
  109. package/dist/src/audio-probe-result.js +1 -0
  110. package/dist/src/audio-probe-runtime.js +1 -0
  111. package/dist/src/audio-probe-support.js +1 -0
  112. package/dist/src/auth-session.js +1 -1
  113. package/dist/src/auth.js +1 -1
  114. package/dist/src/back-mode.js +1 -0
  115. package/dist/src/{url.js → base-url.js} +1 -1
  116. package/dist/src/boot-diagnostics.js +2 -2
  117. package/dist/src/byte-limit-stream.js +1 -1
  118. package/dist/src/capabilities.js +1 -0
  119. package/dist/src/capture.js +1 -0
  120. package/dist/src/catalog.js +1 -0
  121. package/dist/src/cli-command-aliases.js +1 -0
  122. package/dist/src/cli-config.js +1 -1
  123. package/dist/src/cli-help.js +69 -50
  124. package/dist/src/cli-output.js +1 -1
  125. package/dist/src/cli-runner.js +1 -1
  126. package/dist/src/cli.js +4 -6
  127. package/dist/src/click-button.js +1 -0
  128. package/dist/src/client-metro-companion.js +1 -0
  129. package/dist/src/client-metro.js +1 -1
  130. package/dist/src/client-types.d.ts +255 -231
  131. package/dist/src/clipboard.js +1 -0
  132. package/dist/src/code-signature-cache.js +1 -0
  133. package/dist/src/code-signature.js +1 -0
  134. package/dist/src/color.js +1 -0
  135. package/dist/src/command-metadata.js +1 -1
  136. package/dist/src/command-schema.js +3 -3
  137. package/dist/src/command-surface.js +1 -1
  138. package/dist/src/command-tools.js +2 -2
  139. package/dist/src/command.js +1 -0
  140. package/dist/src/compatibility-policy.js +1 -0
  141. package/dist/src/config.js +1 -1
  142. package/dist/src/config2.js +1 -0
  143. package/dist/src/connection-runtime.js +1 -1
  144. package/dist/src/connection.js +5 -5
  145. package/dist/src/contracts.d.ts +1 -1
  146. package/dist/src/contracts.js +1 -1
  147. package/dist/src/daemon-client-lifecycle.js +1 -0
  148. package/dist/src/daemon-process.js +1 -0
  149. package/dist/src/daemon-registration.js +1 -0
  150. package/dist/src/daemon-shutdown-report.js +1 -1
  151. package/dist/src/daemon.js +2 -2
  152. package/dist/src/debug-symbols-facade.js +5 -0
  153. package/dist/src/deploy-result-target.js +1 -0
  154. package/dist/src/device-claim-inspection.js +1 -1
  155. package/dist/src/device-claim-rule.js +1 -0
  156. package/dist/src/device-input-state.d.ts +190 -3
  157. package/dist/src/device-inventory-context.js +1 -0
  158. package/dist/src/device-isolation.js +1 -0
  159. package/dist/src/device-release.js +1 -0
  160. package/dist/src/device-rotation.js +1 -0
  161. package/dist/src/device-selection-resolver.js +1 -0
  162. package/dist/src/device-session.js +1 -0
  163. package/dist/src/device.js +1 -1
  164. package/dist/src/device2.js +3 -2
  165. package/dist/src/diagnostics.js +3 -0
  166. package/dist/src/diagnostics2.js +1 -0
  167. package/dist/src/dispatch-resolve.js +1 -0
  168. package/dist/src/doctor-facade.js +1 -0
  169. package/dist/src/doctor-output.js +1 -0
  170. package/dist/src/doctor.js +1 -0
  171. package/dist/src/doctor2.js +1 -0
  172. package/dist/src/doctor3.js +1 -0
  173. package/dist/src/durable-resource.js +1 -0
  174. package/dist/src/entities.js +1 -1
  175. package/dist/src/error.js +2 -0
  176. package/dist/src/exec.js +1 -0
  177. package/dist/src/file.js +1 -0
  178. package/dist/src/find.js +1 -1
  179. package/dist/src/finders.js +1 -1
  180. package/dist/src/format.js +2 -0
  181. package/dist/src/generic-settle.js +1 -1
  182. package/dist/src/generic.js +1 -1
  183. package/dist/src/gesture-admission.js +1 -0
  184. package/dist/src/gesture-plan-types.js +1 -0
  185. package/dist/src/gesture-plan.js +1 -0
  186. package/dist/src/gesture-runtime.js +1 -0
  187. package/dist/src/harmonyos.js +1 -1
  188. package/dist/src/hdc.js +1 -1
  189. package/dist/src/helper.js +2 -2
  190. package/dist/src/host-file.js +1 -0
  191. package/dist/src/human-control-contract.js +1 -0
  192. package/dist/src/human-control.js +1 -0
  193. package/dist/src/index.d.ts +1 -1
  194. package/dist/src/index.js +1 -1
  195. package/dist/src/input-actions.js +1 -4
  196. package/dist/src/input-actions2.js +2 -1
  197. package/dist/src/install-artifact-facade.js +1 -0
  198. package/dist/src/install-source-network-transport.js +1 -0
  199. package/dist/src/install-source.d.ts +3 -10
  200. package/dist/src/install-source2.js +1 -1
  201. package/dist/src/interaction-positionals.js +1 -0
  202. package/dist/src/interaction-ref-policy.js +1 -0
  203. package/dist/src/interaction.js +1 -1
  204. package/dist/src/interaction2.js +1 -1
  205. package/dist/src/interactor-operation-catalog.js +1 -0
  206. package/dist/src/interactor-types.js +1 -0
  207. package/dist/src/interactor.js +6 -2
  208. package/dist/src/interactor2.js +1 -1
  209. package/dist/src/interactors.js +1 -1
  210. package/dist/src/internal/bin.d.ts +1 -1
  211. package/dist/src/internal/bin.js +1 -2
  212. package/dist/src/internal/companion-tunnel.d.ts +1 -1
  213. package/dist/src/internal/companion-tunnel.js +1 -1
  214. package/dist/src/internal/daemon.d.ts +1 -1
  215. package/dist/src/internal/daemon.js +2 -4
  216. package/dist/src/internal/png-worker.d.ts +4 -4
  217. package/dist/src/internal/png-worker.js +1 -1
  218. package/dist/src/internal/run-script-http-child.d.ts +4 -0
  219. package/dist/src/internal/run-script-http-child.js +1 -0
  220. package/dist/src/internal/update-check-entry.d.ts +1 -1
  221. package/dist/src/inventory.js +4 -4
  222. package/dist/src/inventory2.js +1 -1
  223. package/dist/src/inventory3.js +1 -1
  224. package/dist/src/inventory5.js +1 -1
  225. package/dist/src/inventory6.js +1 -1
  226. package/dist/src/ios-client.js +16 -0
  227. package/dist/src/ios-snapshot-acquisition.js +1 -0
  228. package/dist/src/ios-snapshot-adapter.js +1 -0
  229. package/dist/src/ios-snapshot-planning.js +1 -0
  230. package/dist/src/ios-snapshot-runtime.js +1 -0
  231. package/dist/src/json.js +1 -0
  232. package/dist/src/keyboard-actions.js +1 -0
  233. package/dist/src/launch-console.js +1 -0
  234. package/dist/src/lease-context.js +1 -1
  235. package/dist/src/lease-scope.js +1 -0
  236. package/dist/src/lease.js +1 -1
  237. package/dist/src/limrun-runtime-dependencies.js +1 -1
  238. package/dist/src/limrun.d.ts +1610 -7
  239. package/dist/src/limrun.js +1 -1
  240. package/dist/src/linux.js +1 -1
  241. package/dist/src/local-interactor-operation-set.js +1 -0
  242. package/dist/src/location-coordinates.js +1 -1
  243. package/dist/src/logcat.js +1 -1
  244. package/dist/src/macos-facade.js +1 -0
  245. package/dist/src/managed-device-scope.js +1 -0
  246. package/dist/src/mechanics.js +19 -0
  247. package/dist/src/metro.d.ts +4 -2
  248. package/dist/src/metro.js +1 -1
  249. package/dist/src/metro2.js +1 -1
  250. package/dist/src/mobile-snapshot-semantics.js +1 -1
  251. package/dist/src/multitouch-support.js +1 -0
  252. package/dist/src/numeric.js +1 -0
  253. package/dist/src/observability.js +1 -1
  254. package/dist/src/observation.js +2 -0
  255. package/dist/src/output-path.js +1 -1
  256. package/dist/src/owner-identity.js +3 -1
  257. package/dist/src/parameterized-recorded-fill.js +1 -0
  258. package/dist/src/parser.js +1 -1
  259. package/dist/src/perf-facade.js +2 -0
  260. package/dist/src/perf-runtime-operation-builder.js +1 -0
  261. package/dist/src/perf-runtime-plan.js +1 -0
  262. package/dist/src/perf-runtime.js +1 -0
  263. package/dist/src/perf.js +1 -4
  264. package/dist/src/physical-device-control.js +1 -1
  265. package/dist/src/physical-device-facade.js +1 -0
  266. package/dist/src/platform-request-scope.js +1 -0
  267. package/dist/src/platform-runtime-android-adb-host.js +1 -0
  268. package/dist/src/platform-runtime-android-mechanics.js +1 -0
  269. package/dist/src/platform-runtime-app-log-android-transport.js +1 -1
  270. package/dist/src/platform-runtime-app-log-process.js +1 -1
  271. package/dist/src/platform-runtime-apple-resources.js +1 -0
  272. package/dist/src/platform-runtime-host.js +1 -1
  273. package/dist/src/platform-runtime-managed-owner.js +1 -0
  274. package/dist/src/platform-runtime-network-web-transport.js +1 -1
  275. package/dist/src/platform-runtime-open-target.js +1 -1
  276. package/dist/src/platform-runtime-operation-host.js +4 -4
  277. package/dist/src/platform-runtime-runtime-hints.js +2 -2
  278. package/dist/src/platform-runtime-screen-recording-android-host.js +1 -1
  279. package/dist/src/platform-runtime-screen-recording-apple-runner-host.js +1 -1
  280. package/dist/src/platform-runtime-screen-recording-apple-runner-transport.js +1 -1
  281. package/dist/src/platform-runtime-screen-recording-apple-simulator-host.js +1 -1
  282. package/dist/src/platform-runtime-screen-recording-apple-transport.js +1 -1
  283. package/dist/src/platform-runtime-screen-recording-finalizer-host.js +1 -1
  284. package/dist/src/platform-runtime-screen-recording-harmony-host.js +1 -1
  285. package/dist/src/platform-runtime-screen-recording-process-host.js +1 -0
  286. package/dist/src/platform-runtime-screen-recording-web-host.js +1 -1
  287. package/dist/src/platform-runtime-unavailable.js +1 -0
  288. package/dist/src/platform-runtime.js +1 -1
  289. package/dist/src/platform-runtime2.js +1 -1
  290. package/dist/src/plist.js +1 -1
  291. package/dist/src/png-worker-contract.js +1 -1
  292. package/dist/src/prepare-kind.js +1 -0
  293. package/dist/src/process-exit.js +1 -1
  294. package/dist/src/process.js +1 -0
  295. package/dist/src/provider-device-runtime.js +1 -0
  296. package/dist/src/provider-session-ownership.js +2 -0
  297. package/dist/src/provider-webdriver.js +1 -1
  298. package/dist/src/provider.js +1 -1
  299. package/dist/src/providers.js +1 -0
  300. package/dist/src/proxy.js +2 -2
  301. package/dist/src/react-native-overlay.js +1 -0
  302. package/dist/src/react-native.js +1 -1
  303. package/dist/src/record-runtime.js +1 -1
  304. package/dist/src/record-trace.js +1 -1
  305. package/dist/src/rect-center.js +1 -0
  306. package/dist/src/register-builtins.js +1 -0
  307. package/dist/src/registry.js +39 -28
  308. package/dist/src/remote-config2.js +1 -1
  309. package/dist/src/replay-divergence.js +2 -0
  310. package/dist/src/replay.js +2 -2
  311. package/dist/src/reporting.js +8 -8
  312. package/dist/src/request-admission.js +1 -0
  313. package/dist/src/request-cancel.js +1 -0
  314. package/dist/src/request-cancellation.js +1 -0
  315. package/dist/src/request-progress-protocol.js +1 -0
  316. package/dist/src/request-providers.js +1 -0
  317. package/dist/src/request-runtime-binding.js +1 -0
  318. package/dist/src/request.js +1 -0
  319. package/dist/src/result-serialization.js +1 -0
  320. package/dist/src/retry.js +1 -0
  321. package/dist/src/rolldown-runtime.js +1 -1
  322. package/dist/src/runner-cache-metadata.js +2 -0
  323. package/dist/src/runner-client.js +1 -1
  324. package/dist/src/runner-disposal.js +1 -1
  325. package/dist/src/runner-operations-facade.js +1 -0
  326. package/dist/src/runner-owner-facade.js +1 -0
  327. package/dist/src/runner-owner-state.js +1 -0
  328. package/dist/src/runner-presentation.js +1 -0
  329. package/dist/src/runner-selector-query.js +1 -0
  330. package/dist/src/runner.js +1 -0
  331. package/dist/src/{runtime-transport.js → runtime-transport-hints.js} +1 -1
  332. package/dist/src/runtime.js +3 -3
  333. package/dist/src/runtime2.js +4 -4
  334. package/dist/src/runtime3.js +1 -1
  335. package/dist/src/runtime4.js +4 -3
  336. package/dist/src/runtime5.js +1 -1
  337. package/dist/src/runtime6.js +1 -1
  338. package/dist/src/runtime7.js +1 -1
  339. package/dist/src/runtime8.js +1 -1
  340. package/dist/src/runtime9.js +1 -1
  341. package/dist/src/scoped-provider.js +1 -1
  342. package/dist/src/screen-recording-completion.js +1 -0
  343. package/dist/src/screen-recording-live-handle.js +1 -0
  344. package/dist/src/screen-recording-options.js +1 -0
  345. package/dist/src/screen-recording-resource-recovery.js +1 -0
  346. package/dist/src/screen-recording-runtime.js +1 -0
  347. package/dist/src/screenshot-density.js +1 -1
  348. package/dist/src/screenshot-result.js +1 -6
  349. package/dist/src/screenshot-runtime.js +1 -0
  350. package/dist/src/screenshot.js +1 -1
  351. package/dist/src/screenshot2.js +1 -0
  352. package/dist/src/screenshot3.js +5 -0
  353. package/dist/src/script.js +1 -0
  354. package/dist/src/scroll-command.js +1 -0
  355. package/dist/src/scroll-gesture.js +1 -0
  356. package/dist/src/scroll-indicator.js +1 -0
  357. package/dist/src/sdk-batch-runner.d.ts +23 -6
  358. package/dist/src/sdk-batch-runner.js +2 -3
  359. package/dist/src/sdk-batch.js +2 -0
  360. package/dist/src/sdk-contracts.d.ts +127 -41
  361. package/dist/src/sdk-contracts.js +2 -2
  362. package/dist/src/sdk-device.js +1 -1
  363. package/dist/src/sdk-finders.js +1 -1
  364. package/dist/src/sdk-io.js +1 -1
  365. package/dist/src/sdk-remote-config.d.ts +1 -1
  366. package/dist/src/sdk-remote-config.js +1 -1
  367. package/dist/src/sdk-selectors.d.ts +472 -144
  368. package/dist/src/sdk-selectors.js +1 -1
  369. package/dist/src/selection.js +1 -0
  370. package/dist/src/selector-runtime.js +1 -1
  371. package/dist/src/selectors.js +1 -1
  372. package/dist/src/semantic-index.js +1 -0
  373. package/dist/src/server.js +4 -4
  374. package/dist/src/session-allocation.js +1 -0
  375. package/dist/src/session-artifact-paths.js +1 -0
  376. package/dist/src/session-paths.js +1 -0
  377. package/dist/src/session-repair-tombstone.js +1 -0
  378. package/dist/src/session-routing.js +1 -0
  379. package/dist/src/session-runtime-admission.js +1 -0
  380. package/dist/src/session-snapshot.js +1 -0
  381. package/dist/src/session-store.js +4 -0
  382. package/dist/src/session-target-evidence.js +1 -1
  383. package/dist/src/session2.js +5 -27
  384. package/dist/src/settings.js +1 -0
  385. package/dist/src/shared.js +2 -2
  386. package/dist/src/simctl-facade.js +1 -0
  387. package/dist/src/simctl.js +1 -1
  388. package/dist/src/simulator-facade.js +1 -0
  389. package/dist/src/simulator.js +1 -1
  390. package/dist/src/snapshot-capture-annotations.js +1 -0
  391. package/dist/src/snapshot-desktop-projection.js +1 -0
  392. package/dist/src/snapshot-diagnostics.js +1 -0
  393. package/dist/src/snapshot-process.js +1 -0
  394. package/dist/src/snapshot-quality-backend-capabilities.js +1 -0
  395. package/dist/src/snapshot-quality-verdict.js +1 -0
  396. package/dist/src/snapshot-runtime-binding.js +1 -0
  397. package/dist/src/snapshot-runtime.js +1 -1
  398. package/dist/src/snapshot-scope.js +1 -1
  399. package/dist/src/snapshot-state.js +1 -0
  400. package/dist/src/snapshot.js +1 -8
  401. package/dist/src/snapshot2.js +1 -1
  402. package/dist/src/snapshot3.js +1 -1
  403. package/dist/src/snapshot4.js +1 -0
  404. package/dist/src/src.js +1 -1
  405. package/dist/src/src2.js +1 -1
  406. package/dist/src/src3.js +1 -2
  407. package/dist/src/src4.js +1 -1
  408. package/dist/src/src5.js +1 -0
  409. package/dist/src/src6.js +1 -0
  410. package/dist/src/src7.js +2 -0
  411. package/dist/src/src8.js +115 -0
  412. package/dist/src/startup-recovery-fence.js +1 -0
  413. package/dist/src/status-markers.js +1 -0
  414. package/dist/src/string-enum.js +1 -1
  415. package/dist/src/success-text.js +1 -0
  416. package/dist/src/surface-snapshot.js +1 -0
  417. package/dist/src/surface-snapshot2.js +1 -0
  418. package/dist/src/takeover.js +5 -0
  419. package/dist/src/tool-provider-facade.js +1 -0
  420. package/dist/src/tool-provider.js +4 -3
  421. package/dist/src/tool-provider2.js +1 -1
  422. package/dist/src/tool-provider3.js +1 -1
  423. package/dist/src/toolchain-probe.js +2 -0
  424. package/dist/src/touch-runtime.js +1 -0
  425. package/dist/src/transport.js +3 -0
  426. package/dist/src/tree.js +1 -0
  427. package/dist/src/ttl-memo.js +1 -0
  428. package/dist/src/tv-remote.js +1 -0
  429. package/dist/src/type-text-runtime.js +1 -0
  430. package/dist/src/undici.js +99 -0
  431. package/dist/src/update-check.js +1 -1
  432. package/dist/src/verified-file.js +1 -1
  433. package/dist/src/version.js +1 -1
  434. package/dist/src/video.js +2 -2
  435. package/dist/src/web.js +2 -1
  436. package/dist/src/web2.js +1 -0
  437. package/dist/src/webdriver-ios-snapshot.js +1 -0
  438. package/dist/src/webdriver-source.js +1 -0
  439. package/linux/atspi-dump.py +54 -9
  440. package/package.json +56 -34
  441. package/server.json +9 -3
  442. package/android/ime-helper/dist/agent-device-android-ime-helper-0.20.10.apk.sha256 +0 -1
  443. package/android/snapshot-helper/dist/agent-device-android-snapshot-helper-0.20.10.apk +0 -0
  444. package/android/snapshot-helper/dist/agent-device-android-snapshot-helper-0.20.10.apk.sha256 +0 -1
  445. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+CoordinateTextEntryTests.swift +0 -4
  446. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+FlatSnapshotFiltering.swift +0 -168
  447. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+LifecycleCacheTests.swift +0 -6
  448. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+RecordingTests.swift +0 -4
  449. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SelectorMatchPolicyTests.swift +0 -4
  450. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SnapshotPresentation.swift +0 -183
  451. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SnapshotPresentationTests.swift +0 -0
  452. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+SnapshotTraversalIdentityTests.swift +0 -4
  453. package/dist/apple/runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+TextEntryPolicyTests.swift +0 -4
  454. package/dist/src/appearance.js +0 -1
  455. package/dist/src/apps.js +0 -5
  456. package/dist/src/audio-probe.js +0 -1
  457. package/dist/src/cli-grammar.js +0 -1
  458. package/dist/src/command-catalog.js +0 -1
  459. package/dist/src/debug-symbols.js +0 -5
  460. package/dist/src/device-input-state.js +0 -2
  461. package/dist/src/device-ready.js +0 -1
  462. package/dist/src/dispatch.js +0 -1
  463. package/dist/src/handler-utils.js +0 -1
  464. package/dist/src/helper-package-install.js +0 -1
  465. package/dist/src/host-process.js +0 -3
  466. package/dist/src/ime-lifecycle.js +0 -2
  467. package/dist/src/ime-recovery-marker.js +0 -1
  468. package/dist/src/input-actions3.js +0 -1
  469. package/dist/src/install-artifact.js +0 -1
  470. package/dist/src/install-artifact2.js +0 -1
  471. package/dist/src/interaction-common.js +0 -1
  472. package/dist/src/interaction-runtime.js +0 -1
  473. package/dist/src/interaction-snapshot.js +0 -1
  474. package/dist/src/manifest.js +0 -1
  475. package/dist/src/method-scope.js +0 -1
  476. package/dist/src/png-resize.js +0 -1
  477. package/dist/src/process-lock.js +0 -1
  478. package/dist/src/runner-lease.js +0 -1
  479. package/dist/src/runner-sequence.js +0 -1
  480. package/dist/src/script-source-bundle.js +0 -16
  481. package/dist/src/sdk-android-adb.d.ts +0 -245
  482. package/dist/src/sdk-android-adb.js +0 -4
  483. package/dist/src/sdk.js +0 -1
  484. package/dist/src/setting-state.js +0 -1
  485. package/dist/src/shell-quote.js +0 -1
  486. package/dist/src/snapshot-session.js +0 -1
  487. package/dist/src/timing-safe-equal.js +0 -1
  488. package/dist/src/unsupported-interactor.js +0 -1
  489. package/dist/src/verdict.js +0 -1
  490. /package/dist/src/{recording-telemetry.js → telemetry.js} +0 -0
@@ -1,8 +1,7 @@
1
- import { B as DeviceTarget, C as SnapshotNode, D as SnapshotUnchanged, H as PlatformSelector, L as AppleOS, M as NormalizedError, O as SnapshotVisibility, T as SnapshotQualityVerdict, U as PublicPlatform, _ as SessionRuntimeHints, a as DaemonRequest, f as LeaseBackend, g as SessionIsolationMode, h as ResponseLevel, i as DaemonLockPolicy, j as DaemonError, o as DaemonResponse, p as NetworkIncludeMode, r as DaemonInstallSource, s as DaemonResponseData, t as DaemonArtifact, z as DeviceKind } from "./sdk-contracts.js";
1
+ import { B as NormalizedError, C as SnapshotNode, E as SnapshotQualityVerdict, I as PlatformSelector, L as PublicPlatform, N as DeviceKind, O as SnapshotUnchanged, P as DeviceTarget, _ as SessionIsolationMode, a as DaemonRequest, f as LeaseBackend, g as ResponseLevel, i as DaemonLockPolicy, j as AppleOS, k as SnapshotVisibility, m as NetworkIncludeMode, o as DaemonResponse, r as DaemonInstallSource, s as DaemonResponseData, t as DaemonArtifact, v as SessionRuntimeHints, z as DaemonError } from "./sdk-contracts.js";
2
2
  import { t as AppsFilter } from "./app-inventory.js";
3
- import { C as ClickButton, D as SnapshotDiagnosticsSummary, E as ScreenshotResultData, O as SessionSurface, S as BackMode, T as FindLocator, _ as SettleObservation, b as TvRemoteButton, d as ClickCommandResponseData, f as FillCommandResponseData, g as PressCommandResponseData, h as LongPressCommandResponseData, m as HoverCommandResponseData, p as FindCommandResponseData, w as AndroidSnapshotBackendMetadata, x as DeviceRotation } from "./sdk-selectors.js";
3
+ import { A as ScrollInputDirection, C as BackMode, F as AndroidSnapshotBackendMetadata, I as FindLocator, L as ScreenshotResultData, M as SwipePreset, N as TransformGestureParams, P as ClickButton, R as SnapshotDiagnosticsSummary, S as DeviceRotation, _ as HoverCommandResponseData, b as SettleObservation, g as FindCommandResponseData, h as FillCommandResponseData, j as SwipePattern, k as ScrollDirection, m as ClickCommandResponseData, p as ScrollCommandResult, v as LongPressCommandResponseData, w as GesturePointerCount, x as TvRemoteButton, y as PressCommandResponseData, z as SessionSurface } from "./sdk-selectors.js";
4
4
  import { a as RemoteConnectionProfileFields, c as MetroPrepareResult, i as CloudProviderProfileFields, l as MetroReloadOptions, s as MetroPrepareOptions, u as MetroReloadResult } from "./sdk-remote-config.js";
5
- import { c as ScrollDirection, d as SwipePreset, f as TransformGestureParams, l as ScrollInputDirection, s as GesturePointerCount, u as SwipePattern } from "./sdk-android-adb.js";
6
5
  import { t as BatchRunResult } from "./sdk-batch-runner.js";
7
6
  import { r as CloudProviderSessionResult, t as AgentArtifactsResult } from "./cloud-artifacts.js";
8
7
  //#region packages/contracts/src/json.d.ts
@@ -79,6 +78,15 @@ type AgentDeviceDevice = {
79
78
  */
80
79
  appleOs?: AppleOS;
81
80
  identifiers: AgentDeviceIdentifiers;
81
+ /**
82
+ * Present when a host-local device claim currently blocks foreign use of
83
+ * this device (#1320). Provably dead owners are not projected — the next
84
+ * open reconciles and replaces them automatically.
85
+ */
86
+ claimedBy?: {
87
+ session: string;
88
+ workspace: string;
89
+ };
82
90
  ios?: {
83
91
  udid: string;
84
92
  };
@@ -123,6 +131,13 @@ type AgentDeviceSessionDevice = {
123
131
  };
124
132
  type AgentDeviceSession = {
125
133
  name: string;
134
+ /**
135
+ * The exact value `--session` must carry to address this session, which is not always `name`:
136
+ * a session opened without `--session` is named `default` but stored — and addressed — as
137
+ * `cwd:<hash>:default` (#2031/#1394). Optional only because a daemon older than the field does
138
+ * not send it.
139
+ */
140
+ address?: string;
126
141
  createdAt: number;
127
142
  sessionStateDir?: string;
128
143
  runnerLogPath?: string;
@@ -142,6 +157,16 @@ type DeviceBootOptions = DeviceCommandBaseOptions & {
142
157
  type DeviceShutdownOptions = DeviceCommandBaseOptions;
143
158
  //#endregion
144
159
  //#region packages/contracts/src/client-app.d.ts
160
+ type DeviceSelectionReason = 'explicit-selector' | 'existing-session' | 'single-booted-local' | 'single-bootable-local' | 'single-app-installed-local' | 'preferred-local' | 'single-provider-device';
161
+ type DeviceSelectionSource = 'session' | 'local' | 'provider';
162
+ /** Deterministic device-selection evidence shared by daemon responses and the published client. */
163
+ type DeviceSelectionMetadata = {
164
+ reason: DeviceSelectionReason;
165
+ source: DeviceSelectionSource;
166
+ candidateCount: number;
167
+ /** Whether this request booted a previously stopped local virtual target during open. */
168
+ bootOccurred: boolean;
169
+ };
145
170
  type AppInstallOptions = AgentDeviceRequestOverrides & AgentDeviceSelectionOptions & {
146
171
  app?: string;
147
172
  appPath: string;
@@ -167,6 +192,8 @@ type AppOpenOptions = AgentDeviceRequestOverrides & AgentDeviceSelectionOptions
167
192
  launchConsole?: string;
168
193
  launchArgs?: string[];
169
194
  relaunch?: boolean;
195
+ /** Startup budget in milliseconds: bounds the Simulator boot wait on a cold device. */
196
+ timeoutMs?: number;
170
197
  /**
171
198
  * Include the initial interactive snapshot in a fresh open response. With
172
199
  * no app argument, iOS can discover the sole running app on the sole booted
@@ -193,6 +220,7 @@ type AppOpenResult = {
193
220
  appId?: string;
194
221
  startup?: StartupPerfSample;
195
222
  runtime?: SessionRuntimeHints;
223
+ selection?: DeviceSelectionMetadata;
196
224
  device?: AgentDeviceSessionDevice;
197
225
  /**
198
226
  * Initial interactive snapshot captured immediately after an open that
@@ -310,7 +338,8 @@ type CaptureSnapshotOptions = AgentDeviceRequestOverrides & AgentDeviceSelection
310
338
  };
311
339
  type CaptureSnapshotResult = {
312
340
  nodes: SnapshotNode[];
313
- truncated: boolean;
341
+ /** Present only when the capture owner establishes whether the tree was truncated. */
342
+ truncated?: boolean;
314
343
  appName?: string;
315
344
  appBundleId?: string;
316
345
  visibility?: SnapshotVisibility;
@@ -341,6 +370,8 @@ type CaptureSnapshotResult = {
341
370
  type CaptureScreenshotOptions = AgentDeviceRequestOverrides & {
342
371
  path?: string;
343
372
  overlayRefs?: boolean;
373
+ /** Crop the capture to the frame of the selector resolved on the same screen. */
374
+ cropOn?: string;
344
375
  pixelDensity?: number;
345
376
  fullscreen?: boolean;
346
377
  scale?: number;
@@ -530,13 +561,31 @@ type CloudArtifactsOptions = AgentDeviceRequestOverrides & {
530
561
  provider?: string;
531
562
  providerSessionId?: string;
532
563
  };
564
+ type HumanControlHoldScope = {
565
+ backend: LeaseBackend;
566
+ leaseProvider?: string;
567
+ deviceKey: string;
568
+ };
569
+ type HumanControlHold = {
570
+ id: string;
571
+ scope: HumanControlHoldScope;
572
+ reason?: string;
573
+ state: 'activating' | 'active';
574
+ createdAt: number;
575
+ updatedAt: number;
576
+ expiresAt?: number;
577
+ };
578
+ type HumanControlHoldOptions = {
579
+ reason?: string;
580
+ ttlMs?: number;
581
+ };
533
582
  //#endregion
534
583
  //#region packages/contracts/src/logs.d.ts
535
584
  declare const LOG_ACTION_VALUES: readonly ['path', 'start', 'stop', 'doctor', 'mark', 'clear'];
536
585
  type LogAction = (typeof LOG_ACTION_VALUES)[number];
537
586
  //#endregion
538
587
  //#region packages/contracts/src/perf.d.ts
539
- declare const PERF_AREA_VALUES: readonly ['metrics', 'frames', 'memory', 'cpu', 'trace'];
588
+ declare const PERF_AREA_VALUES: readonly ['frames', 'memory', 'cpu', 'trace'];
540
589
  declare const PERF_ACTION_VALUES: readonly ['sample', 'snapshot', 'start', 'stop', 'report'];
541
590
  declare const PERF_SUBJECT_VALUES: readonly ['profile'];
542
591
  declare const PERF_KIND_VALUES: readonly ['xctrace', 'simpleperf', 'perfetto', 'android-hprof', 'memgraph'];
@@ -555,11 +604,8 @@ type RecordingScope = (typeof RECORDING_SCOPE_VALUES)[number];
555
604
  //#endregion
556
605
  //#region packages/contracts/src/client-observability.d.ts
557
606
  type PerfOptions = DeviceCommandBaseOptions & {
558
- /**
559
- * Select focused performance evidence. Omitted values retain the deprecated aggregate
560
- * metrics response for compatibility; prefer an explicit area.
561
- */
562
- area?: PerfArea;
607
+ /** Select focused performance evidence. */
608
+ area: PerfArea;
563
609
  subject?: PerfSubject;
564
610
  action?: PerfAction;
565
611
  kind?: PerfKind;
@@ -718,6 +764,8 @@ type ReplaySuiteTestFailed = {
718
764
  attempts: number;
719
765
  artifactsDir?: string;
720
766
  error: DaemonError;
767
+ /** Present when the owning runtime classified the failure as device/runner infrastructure. */
768
+ infrastructure?: true;
721
769
  shardIndex?: number;
722
770
  shardCount?: number;
723
771
  deviceId?: string;
@@ -743,12 +791,24 @@ type ReplaySuiteResult = {
743
791
  durationMs: number;
744
792
  failures: ReplaySuiteTestFailed[];
745
793
  tests: ReplaySuiteTestResult[];
794
+ /**
795
+ * The suite's own artifacts root (the parent of every test's `artifactsDir`), as resolved on
796
+ * the host that ran the suite. Absent when the suite produced no attempt (e.g. every source
797
+ * was filtered out). #2246: a remote daemon rewrites this to the caller-local path once the
798
+ * directory has been transferred back, so it always names a path the caller can open.
799
+ */
800
+ artifactsDir?: string;
746
801
  snapshotDiagnostics?: SnapshotDiagnosticsSummary;
747
802
  };
748
803
  //#endregion
749
804
  //#region packages/contracts/src/client-request.d.ts
750
805
  type CommandRequestResult = DaemonResponseData;
751
806
  //#endregion
807
+ //#region packages/contracts/src/is-predicate.d.ts
808
+ /** The complete predicate vocabulary accepted by the `is` command. */
809
+ declare const IS_PREDICATES: readonly ['visible', 'hidden', 'exists', 'absent', 'editable', 'selected', 'focused', 'text'];
810
+ type IsPredicate = (typeof IS_PREDICATES)[number];
811
+ //#endregion
752
812
  //#region packages/contracts/src/client-selector-read.d.ts
753
813
  /**
754
814
  * #1271 stage 2 (ADR 0012 amendment): `get`/`is`/`find` are observation-only
@@ -764,12 +824,12 @@ type GetOptions = DeviceCommandBaseOptions & SelectorSnapshotCommandOptions & El
764
824
  format: 'text' | 'attrs';
765
825
  };
766
826
  type IsTextPredicateOptions = DeviceCommandBaseOptions & SelectorSnapshotCommandOptions & RecordControlOptions & {
767
- predicate: 'text';
827
+ predicate: Extract<IsPredicate, 'text'>;
768
828
  selector: string;
769
829
  value: string;
770
830
  };
771
831
  type IsStatePredicateOptions = DeviceCommandBaseOptions & SelectorSnapshotCommandOptions & RecordControlOptions & {
772
- predicate: 'visible' | 'hidden' | 'exists' | 'editable' | 'selected' | 'focused';
832
+ predicate: Exclude<IsPredicate, 'text'>;
773
833
  selector: string;
774
834
  value?: never;
775
835
  };
@@ -821,6 +881,9 @@ type SettingsUpdateOptions = (DeviceCommandBaseOptions & {
821
881
  setting: 'clear-app-state';
822
882
  state: 'clear';
823
883
  app?: string;
884
+ }) | (DeviceCommandBaseOptions & {
885
+ setting: 'reset-keychain';
886
+ state: 'clear';
824
887
  }) | (DeviceCommandBaseOptions & {
825
888
  setting: 'wifi' | 'airplane' | 'location';
826
889
  state: 'on' | 'off';
@@ -858,6 +921,7 @@ type WaitCommandTarget = {
858
921
  text?: never;
859
922
  ref?: never;
860
923
  selector?: never;
924
+ absent?: never;
861
925
  stable?: never;
862
926
  quietMs?: never;
863
927
  timeoutMs?: never;
@@ -866,6 +930,7 @@ type WaitCommandTarget = {
866
930
  durationMs?: never;
867
931
  ref?: never;
868
932
  selector?: never;
933
+ absent?: never;
869
934
  stable?: never;
870
935
  quietMs?: never;
871
936
  timeoutMs?: number;
@@ -874,6 +939,7 @@ type WaitCommandTarget = {
874
939
  durationMs?: never;
875
940
  text?: never;
876
941
  selector?: never;
942
+ absent?: never;
877
943
  stable?: never;
878
944
  quietMs?: never;
879
945
  timeoutMs?: number;
@@ -882,6 +948,16 @@ type WaitCommandTarget = {
882
948
  durationMs?: never;
883
949
  text?: never;
884
950
  ref?: never;
951
+ absent?: never;
952
+ stable?: never;
953
+ quietMs?: never;
954
+ timeoutMs?: number;
955
+ }) | (SelectorSnapshotCommandOptions & {
956
+ absent: string;
957
+ durationMs?: never;
958
+ text?: never;
959
+ ref?: never;
960
+ selector?: never;
885
961
  stable?: never;
886
962
  quietMs?: never;
887
963
  timeoutMs?: number;
@@ -891,6 +967,7 @@ type WaitCommandTarget = {
891
967
  text?: never;
892
968
  ref?: never;
893
969
  selector?: never;
970
+ absent?: never;
894
971
  quietMs?: number;
895
972
  timeoutMs?: number;
896
973
  });
@@ -900,6 +977,19 @@ type AlertCommandOptions = DeviceCommandBaseOptions & {
900
977
  timeoutMs?: number;
901
978
  };
902
979
  type AppStateCommandOptions = DeviceCommandBaseOptions;
980
+ /** #1638: `back` carries the shared `--settle` triple, and its result may carry the settled diff. */
981
+ type BackCommandOptions = DeviceCommandBaseOptions & {
982
+ mode?: BackMode;
983
+ } & SettleCommandOptions;
984
+ type HomeCommandOptions = DeviceCommandBaseOptions;
985
+ type OrientationCommandOptions = DeviceCommandBaseOptions & {
986
+ orientation: DeviceRotation;
987
+ };
988
+ type AppSwitcherCommandOptions = DeviceCommandBaseOptions;
989
+ type TvRemoteCommandOptions = DeviceCommandBaseOptions & {
990
+ button: TvRemoteButton;
991
+ durationMs?: number;
992
+ };
903
993
  type KeyboardCommandOptions = DeviceCommandBaseOptions & {
904
994
  action?: 'status' | 'dismiss' | 'enter' | 'return';
905
995
  };
@@ -1009,136 +1099,6 @@ type ShutdownCommandResult = {
1009
1099
  appleOs?: AppleOS;
1010
1100
  };
1011
1101
  //#endregion
1012
- //#region packages/contracts/src/clipboard.d.ts
1013
- /**
1014
- * Closed result of the `clipboard` command. Mirrors the dispatch handler's
1015
- * literal return EXACTLY (src/core/dispatch.ts `handleClipboardCommand`): a
1016
- * discriminated union on `action`. `read` returns the clipboard `text`; `write`
1017
- * reports the written `textLength` plus the `successText` message. The handler
1018
- * spreads nothing else, so each branch is closed.
1019
- */
1020
- type ClipboardCommandResult = {
1021
- action: 'read';
1022
- text: string;
1023
- } | {
1024
- action: 'write';
1025
- textLength: number;
1026
- message: string;
1027
- };
1028
- //#endregion
1029
- //#region packages/contracts/src/keyboard.d.ts
1030
- /**
1031
- * Closed result of the `keyboard` command, grounded in the dispatch handlers'
1032
- * literal returns (src/core/dispatch.ts `handleAndroidKeyboardCommand` /
1033
- * `handleIosKeyboardCommand`).
1034
- *
1035
- * `platform` and `action` are always present; the remaining fields appear per
1036
- * branch (Android `status`/`dismiss` carry the keyboard-state fields; `enter`
1037
- * and iOS `dismiss` carry a `message`). It is kept as a flat closed shape rather
1038
- * than a five-way `platform`×`action` union because the per-branch field sets
1039
- * overlap heavily and the underlying Android keyboard-state types live in the
1040
- * platform layer (below the public contract). The `Record` index signature of
1041
- * the previous hand-written mirror is dropped, and the spurious `| null`s are
1042
- * removed (the handler never returns `null` for these).
1043
- */
1044
- type KeyboardCommandResult = {
1045
- platform: 'android' | 'ios';
1046
- action: 'status' | 'dismiss' | 'enter';
1047
- visible?: boolean;
1048
- wasVisible?: boolean;
1049
- dismissed?: boolean;
1050
- attempts?: number;
1051
- inputType?: string;
1052
- type?: 'text' | 'number' | 'email' | 'phone' | 'password' | 'datetime' | 'unknown';
1053
- inputMethodPackage?: string;
1054
- focusedPackage?: string;
1055
- focusedResourceId?: string;
1056
- inputOwner?: 'app' | 'ime' | 'unknown';
1057
- message?: string;
1058
- /** iOS `dismiss` only (#1598): which mechanism actually resigned the
1059
- * keyboard — 'dismissKey' (tapped the keyboard's own Hide/Dismiss/Done
1060
- * key). Generic background-tap dismissal is deliberately unsupported
1061
- * (#1606 review): no query can prove a coordinate is side-effect-free,
1062
- * so the runner only ever taps the keyboard's own control. Absent when
1063
- * the keyboard was not dismissed. */
1064
- mechanism?: 'dismissKey';
1065
- };
1066
- //#endregion
1067
- //#region packages/contracts/src/navigation.d.ts
1068
- /**
1069
- * Closed results of the navigation/global action commands. Each mirrors the
1070
- * dispatch handler's literal return EXACTLY (src/core/dispatch.ts
1071
- * `DISPATCH_HANDLERS`): a fixed `action` discriminant plus the always-present
1072
- * `successText` message (the handlers always pass a non-empty message, so it is
1073
- * required here). The handlers spread nothing else, so the shapes are closed —
1074
- * consistent with the `viewport` contract, the generic-dispatch Android
1075
- * dialog-recovery `warning` annotation is intentionally not part of the contract.
1076
- */
1077
- /** `home` — `{ action: 'home', message: 'Home' }`. */
1078
- type HomeCommandResult = {
1079
- action: 'home';
1080
- message: string;
1081
- };
1082
- /**
1083
- * `back` — `{ action: 'back', mode, message: 'Back' }`; `mode` defaults to
1084
- * `'in-app'`. The one field the generic route may add on top of the dispatch
1085
- * handler's literal return: `settle`, the opt-in `--settle` observation
1086
- * (#1638), attached after the command by the generic dispatcher.
1087
- */
1088
- type BackCommandResult = {
1089
- action: 'back';
1090
- mode: BackMode;
1091
- message: string;
1092
- settle?: SettleObservation;
1093
- };
1094
- /** `orientation` — `{ action: 'orientation', orientation, message: 'Rotated to <orientation>' }`. */
1095
- type OrientationCommandResult = {
1096
- action: 'orientation';
1097
- orientation: DeviceRotation;
1098
- message: string;
1099
- };
1100
- /**
1101
- * @deprecated The `rotate` command was renamed to `orientation`. This is the
1102
- * legacy response contract (`action: 'rotate'`) that shipped in v0.18/v0.19,
1103
- * retained for existing SDK consumers until the next major version. New code
1104
- * should use {@link OrientationCommandResult}.
1105
- */
1106
- type RotateCommandResult = {
1107
- action: 'rotate';
1108
- orientation: DeviceRotation;
1109
- message: string;
1110
- };
1111
- /** `app-switcher` — `{ action: 'app-switcher', message: 'Opened app switcher' }`. */
1112
- type AppSwitcherCommandResult = {
1113
- action: 'app-switcher';
1114
- message: string;
1115
- };
1116
- /** `tv-remote` — `{ action: 'tv-remote', button, durationMs?, message }`. */
1117
- type TvRemoteCommandResult = {
1118
- action: 'tv-remote';
1119
- button: TvRemoteButton;
1120
- durationMs?: number;
1121
- message: string;
1122
- };
1123
- //#endregion
1124
- //#region packages/contracts/src/wait.d.ts
1125
- /**
1126
- * Public daemon result for `wait`. The runtime-local result carries a `kind`
1127
- * discriminant, but `toDaemonWaitData` intentionally projects the normal daemon
1128
- * payload to this compact shape. The direct iOS selector fast path may still
1129
- * include `kind: 'selector'` additively.
1130
- */
1131
- type WaitCommandResult = {
1132
- waitedMs: number;
1133
- kind?: 'selector';
1134
- text?: string;
1135
- selector?: string;
1136
- captures?: number;
1137
- nodeCount?: number;
1138
- hint?: string;
1139
- warning?: string;
1140
- };
1141
- //#endregion
1142
1102
  //#region packages/contracts/src/prepare.d.ts
1143
1103
  type PrepareIosRunnerCacheKind = 'exact' | 'restore-key' | 'miss' | 'external';
1144
1104
  type PrepareIosRunnerArtifactState = 'valid' | 'rebuilt';
@@ -1193,55 +1153,6 @@ type PushCommandResult = {
1193
1153
  message: string;
1194
1154
  };
1195
1155
  //#endregion
1196
- //#region src/commands/command-contract.d.ts
1197
- type JsonSchema = {
1198
- type?: string | readonly string[];
1199
- description?: string;
1200
- properties?: Record<string, JsonSchema>;
1201
- required?: readonly string[];
1202
- additionalProperties?: boolean | JsonSchema;
1203
- items?: JsonSchema;
1204
- prefixItems?: readonly JsonSchema[];
1205
- oneOf?: readonly JsonSchema[];
1206
- not?: JsonSchema;
1207
- enum?: readonly unknown[];
1208
- const?: unknown;
1209
- minimum?: number;
1210
- maximum?: number;
1211
- };
1212
- type ExecutableCommandProjection<ClientMethod extends string = string> = {
1213
- clientMethod: ClientMethod;
1214
- outputSchema: JsonSchema;
1215
- };
1216
- //#endregion
1217
- //#region src/commands/system/navigation-projection.d.ts
1218
- declare const navigationCommandProjectionType: unique symbol;
1219
- type NavigationCommandProjection<Options, Result, Required extends boolean, ClientMethod extends string> = ExecutableCommandProjection<ClientMethod> & {
1220
- readonly [navigationCommandProjectionType]?: {
1221
- options: Options;
1222
- result: Result;
1223
- required: Required;
1224
- };
1225
- };
1226
- declare const NAVIGATION_COMMAND_PROJECTIONS: {
1227
- readonly back: NavigationCommandProjection<{
1228
- mode?: BackMode;
1229
- } & SettleCommandOptions, BackCommandResult, false, "back">;
1230
- readonly home: NavigationCommandProjection<{}, HomeCommandResult, false, "home">;
1231
- readonly orientation: NavigationCommandProjection<{
1232
- orientation: DeviceRotation;
1233
- }, OrientationCommandResult, true, "orientation">;
1234
- readonly 'app-switcher': NavigationCommandProjection<{}, AppSwitcherCommandResult, false, "appSwitcher">;
1235
- readonly 'tv-remote': NavigationCommandProjection<{
1236
- button: TvRemoteButton;
1237
- durationMs?: number;
1238
- }, TvRemoteCommandResult, true, "tvRemote">;
1239
- };
1240
- type NavigationCommandName = keyof typeof NAVIGATION_COMMAND_PROJECTIONS;
1241
- type NavigationCommandOptions<Name extends NavigationCommandName> = (typeof NAVIGATION_COMMAND_PROJECTIONS)[Name] extends NavigationCommandProjection<infer Options, unknown, boolean, string> ? Options : never;
1242
- type ProjectedNavigationCommandMethod<BaseOptions, Projection> = Projection extends NavigationCommandProjection<infer Options, infer Result, infer Required, string> ? Required extends true ? (options: BaseOptions & Options) => Promise<Result> : (options?: BaseOptions & Options) => Promise<Result> : never;
1243
- type ProjectedNavigationCommandClient<BaseOptions> = { [Name in NavigationCommandName as (typeof NAVIGATION_COMMAND_PROJECTIONS)[Name]['clientMethod']]: ProjectedNavigationCommandMethod<BaseOptions, (typeof NAVIGATION_COMMAND_PROJECTIONS)[Name]>; };
1244
- //#endregion
1245
1156
  //#region packages/contracts/src/debug-symbols.d.ts
1246
1157
  type DebugSymbolsOptions = {
1247
1158
  action?: 'symbols';
@@ -1340,19 +1251,129 @@ type DiffSnapshotCommandResult = {
1340
1251
  };
1341
1252
  //#endregion
1342
1253
  //#region packages/contracts/src/viewport.d.ts
1343
- /**
1344
- * Closed result of the `viewport` command. Mirrors the dispatch handler's return
1345
- * EXACTLY (src/core/dispatch.ts `handleViewportCommand`) — `{ width, height }`
1346
- * plus the always-present `successText` message. The generic dispatch path
1347
- * returns this object unchanged (viewport has no Android dialog guard, so no
1348
- * `warning` is ever appended), so the shape is intentionally closed.
1349
- */
1350
1254
  type ViewportCommandResult = {
1351
1255
  width: number;
1352
1256
  height: number;
1353
1257
  message: string;
1354
1258
  };
1355
1259
  //#endregion
1260
+ //#region packages/contracts/src/navigation.d.ts
1261
+ /**
1262
+ * Closed results of the navigation/global action commands. Each mirrors its
1263
+ * request-scoped runtime's literal return: a fixed `action` discriminant plus the always-present
1264
+ * `successText` message (the handlers always pass a non-empty message, so it is
1265
+ * required here). The handlers spread nothing else, so the shapes are closed —
1266
+ * consistent with the `viewport` contract, the generic-dispatch Android
1267
+ * dialog-recovery `warning` annotation is intentionally not part of the contract.
1268
+ */
1269
+ /** `home` — `{ action: 'home', message: 'Home' }`. */
1270
+ type HomeCommandResult = {
1271
+ action: 'home';
1272
+ message: string;
1273
+ };
1274
+ /**
1275
+ * `back` — `{ action: 'back', mode, message: 'Back' }`; `mode` defaults to
1276
+ * `'in-app'`. The one field the generic route may add on top of the dispatch
1277
+ * runtime's literal return: `settle`, the opt-in `--settle` observation
1278
+ * (#1638), attached after the command by the generic dispatcher.
1279
+ */
1280
+ type BackCommandResult = {
1281
+ action: 'back';
1282
+ mode: BackMode;
1283
+ message: string;
1284
+ settle?: SettleObservation;
1285
+ };
1286
+ /** `orientation` — `{ action: 'orientation', orientation, message: 'Rotated to <orientation>' }`. */
1287
+ type OrientationCommandResult = {
1288
+ action: 'orientation';
1289
+ orientation: DeviceRotation;
1290
+ message: string;
1291
+ };
1292
+ /** `app-switcher` — `{ action: 'app-switcher', message: 'Opened app switcher' }`. */
1293
+ type AppSwitcherCommandResult = {
1294
+ action: 'app-switcher';
1295
+ message: string;
1296
+ };
1297
+ /** `tv-remote` — `{ action: 'tv-remote', button, durationMs?, message }`. */
1298
+ type TvRemoteCommandResult = {
1299
+ action: 'tv-remote';
1300
+ button: TvRemoteButton;
1301
+ durationMs?: number;
1302
+ message: string;
1303
+ };
1304
+ //#endregion
1305
+ //#region packages/contracts/src/clipboard.d.ts
1306
+ /**
1307
+ * Closed result of the `clipboard` command. Mirrors the session runtime's
1308
+ * literal return exactly (`src/daemon/handlers/session-clipboard.ts`): a
1309
+ * discriminated union on `action`. `read` returns the clipboard `text`; `write`
1310
+ * reports the written `textLength` plus the `successText` message. The handler
1311
+ * spreads nothing else, so each branch is closed.
1312
+ */
1313
+ type ClipboardCommandResult = {
1314
+ action: 'read';
1315
+ text: string;
1316
+ } | {
1317
+ action: 'write';
1318
+ textLength: number;
1319
+ message: string;
1320
+ };
1321
+ //#endregion
1322
+ //#region packages/contracts/src/keyboard.d.ts
1323
+ /**
1324
+ * Closed result of the `keyboard` command, grounded in the runtime operation
1325
+ * results projected by `src/daemon/keyboard-runtime.ts`.
1326
+ *
1327
+ * `platform` and `action` are always present; the remaining fields appear per
1328
+ * branch (Android `status`/`dismiss` carry the keyboard-state fields; `enter`
1329
+ * and iOS `dismiss` carry a `message`). It is kept as a flat closed shape rather
1330
+ * than a five-way `platform`×`action` union because the per-branch field sets
1331
+ * overlap heavily and the underlying Android keyboard-state types live in the
1332
+ * platform layer (below the public contract). The `Record` index signature of
1333
+ * the previous hand-written mirror is dropped, and the spurious `| null`s are
1334
+ * removed (the handler never returns `null` for these).
1335
+ */
1336
+ type KeyboardCommandResult = {
1337
+ platform: 'android' | 'ios';
1338
+ action: 'status' | 'dismiss' | 'enter';
1339
+ visible?: boolean;
1340
+ wasVisible?: boolean;
1341
+ dismissed?: boolean;
1342
+ attempts?: number;
1343
+ inputType?: string;
1344
+ type?: 'text' | 'number' | 'email' | 'phone' | 'password' | 'datetime' | 'unknown';
1345
+ inputMethodPackage?: string;
1346
+ focusedPackage?: string;
1347
+ focusedResourceId?: string;
1348
+ inputOwner?: 'app' | 'ime' | 'unknown';
1349
+ message?: string;
1350
+ /** iOS `dismiss` only (#1598): which mechanism actually resigned the
1351
+ * keyboard — 'dismissKey' (tapped the keyboard's own Hide/Dismiss/Done
1352
+ * key). Generic background-tap dismissal is deliberately unsupported
1353
+ * (#1606 review): no query can prove a coordinate is side-effect-free,
1354
+ * so the runner only ever taps the keyboard's own control. Absent when
1355
+ * the keyboard was not dismissed. */
1356
+ mechanism?: 'dismissKey';
1357
+ };
1358
+ //#endregion
1359
+ //#region packages/contracts/src/wait.d.ts
1360
+ /**
1361
+ * Public daemon result for `wait`. The runtime-local result carries a `kind`
1362
+ * discriminant, but `toDaemonWaitData` intentionally projects the normal daemon
1363
+ * payload to this compact shape. The direct iOS selector fast path may still
1364
+ * include `kind: 'selector'` additively.
1365
+ */
1366
+ type WaitCommandResult = {
1367
+ waitedMs: number;
1368
+ kind?: 'selector';
1369
+ text?: string;
1370
+ selector?: string;
1371
+ captures?: number;
1372
+ nodeCount?: number;
1373
+ hint?: string;
1374
+ warning?: string;
1375
+ };
1376
+ //#endregion
1356
1377
  //#region packages/contracts/src/recording.d.ts
1357
1378
  type RecordingAppIdentity = {
1358
1379
  bundleId: string;
@@ -1396,7 +1417,7 @@ type TraceCommandResult = {
1396
1417
  artifacts: DaemonArtifact[];
1397
1418
  };
1398
1419
  //#endregion
1399
- //#region src/core/command-descriptor/command-result.d.ts
1420
+ //#region packages/command-registry/src/command-result.d.ts
1400
1421
  /**
1401
1422
  * The additive typed-result spine (ADR-0008, Phase 1 step 6).
1402
1423
  *
@@ -1413,37 +1434,42 @@ type TraceCommandResult = {
1413
1434
  * `appstate` (a closed `platform` union — Apple session state with the iOS-only
1414
1435
  * device locators, or Android package/activity). Batch 4 adds `keyboard` (a
1415
1436
  * closed flat shape). Batch 5 adds the compact daemon projections for `wait`,
1416
- * `prepare`, `push`, and `trigger-app-event`. Each entry is grounded in a
1437
+ * `prepare`, `push`, and `trigger-app-event`. #1652 adds `scroll`
1438
+ * (ScrollCommandResult): the shared dispatch vocabulary plus the opt-in
1439
+ * settle observation, so the settle-capable generic-route pair (`back`,
1440
+ * `scroll`) is fully typed and its MCP output schema derives from the trait.
1441
+ * Each entry is grounded in a
1417
1442
  * re-read of the handler's literal return; see the per-type docstrings.
1418
1443
  */
1419
1444
  interface CommandResultMap {
1420
- press: PressCommandResponseData;
1445
+ 'app-switcher': AppSwitcherCommandResult;
1446
+ appstate: AppStateCommandResult;
1447
+ back: BackCommandResult;
1448
+ boot: BootCommandResult;
1421
1449
  click: ClickCommandResponseData;
1450
+ clipboard: ClipboardCommandResult;
1451
+ diff: DiffSnapshotCommandResult;
1452
+ doctor: DoctorCommandResult;
1422
1453
  fill: FillCommandResponseData;
1423
- longpress: LongPressCommandResponseData;
1424
- hover: HoverCommandResponseData;
1425
1454
  find: FindCommandResponseData;
1426
- boot: BootCommandResult;
1427
- shutdown: ShutdownCommandResult;
1428
- viewport: ViewportCommandResult;
1429
1455
  home: HomeCommandResult;
1430
- back: BackCommandResult;
1431
- orientation: OrientationCommandResult;
1432
- 'app-switcher': AppSwitcherCommandResult;
1433
- clipboard: ClipboardCommandResult;
1434
- appstate: AppStateCommandResult;
1456
+ hover: HoverCommandResponseData;
1435
1457
  keyboard: KeyboardCommandResult;
1436
- 'tv-remote': TvRemoteCommandResult;
1437
- wait: WaitCommandResult;
1458
+ longpress: LongPressCommandResponseData;
1459
+ orientation: OrientationCommandResult;
1438
1460
  prepare: PrepareCommandResult;
1461
+ press: PressCommandResponseData;
1439
1462
  push: PushCommandResult;
1440
- 'trigger-app-event': TriggerAppEventCommandResult;
1441
- doctor: DoctorCommandResult;
1442
- diff: DiffSnapshotCommandResult;
1463
+ record: RecordingCommandResult;
1443
1464
  replay: ReplayCommandResult;
1465
+ scroll: ScrollCommandResult;
1466
+ shutdown: ShutdownCommandResult;
1444
1467
  test: ReplaySuiteResult;
1445
- record: RecordingCommandResult;
1446
1468
  trace: TraceCommandResult;
1469
+ 'trigger-app-event': TriggerAppEventCommandResult;
1470
+ 'tv-remote': TvRemoteCommandResult;
1471
+ viewport: ViewportCommandResult;
1472
+ wait: WaitCommandResult;
1447
1473
  }
1448
1474
  /**
1449
1475
  * The typed result for a command named `N`. Seeded commands resolve to their
@@ -1455,10 +1481,12 @@ interface CommandResultMap {
1455
1481
  type CommandResult<N extends string> = N extends keyof CommandResultMap ? CommandResultMap[N] : Record<string, unknown>;
1456
1482
  //#endregion
1457
1483
  //#region src/client/client-types.d.ts
1458
- type OrientationCommandOptions = DeviceCommandBaseOptions & NavigationCommandOptions<'orientation'>;
1459
- /** @deprecated Renamed to `OrientationCommandOptions`. Retained until the next major. */
1460
- type RotateCommandOptions = OrientationCommandOptions;
1461
- type NonNavigationCommandClient = {
1484
+ type AgentDeviceCommandClient = {
1485
+ back: (options?: BackCommandOptions) => Promise<CommandResult<'back'>>;
1486
+ home: (options?: HomeCommandOptions) => Promise<CommandResult<'home'>>;
1487
+ orientation: (options: OrientationCommandOptions) => Promise<CommandResult<'orientation'>>;
1488
+ appSwitcher: (options?: AppSwitcherCommandOptions) => Promise<CommandResult<'app-switcher'>>;
1489
+ tvRemote: (options: TvRemoteCommandOptions) => Promise<CommandResult<'tv-remote'>>;
1462
1490
  wait: (options: WaitCommandOptions) => Promise<CommandResult<'wait'>>;
1463
1491
  alert: (options?: AlertCommandOptions) => Promise<CommandRequestResult>;
1464
1492
  appState: (options?: AppStateCommandOptions) => Promise<CommandResult<'appstate'>>;
@@ -1473,15 +1501,6 @@ type NonNavigationCommandClient = {
1473
1501
  prepare: (options: PrepareCommandOptions) => Promise<CommandResult<'prepare'>>;
1474
1502
  viewport: (options: ViewportCommandOptions) => Promise<CommandResult<'viewport'>>;
1475
1503
  };
1476
- type AgentDeviceCommandClient = ProjectedNavigationCommandClient<DeviceCommandBaseOptions> & NonNavigationCommandClient & DeprecatedCommandClient;
1477
- /** Renamed command methods retained for existing consumers until the next major. */
1478
- type DeprecatedCommandClient = {
1479
- /**
1480
- * @deprecated Renamed to `orientation`. Delegates to it and returns the legacy
1481
- * `action: 'rotate'` response contract. Retained until the next major version.
1482
- */
1483
- rotate: (options: RotateCommandOptions) => Promise<RotateCommandResult>;
1484
- };
1485
1504
  type AgentDeviceClient = {
1486
1505
  command: AgentDeviceCommandClient;
1487
1506
  devices: {
@@ -1522,6 +1541,11 @@ type AgentDeviceClient = {
1522
1541
  released: boolean;
1523
1542
  provider?: CloudProviderSessionResult;
1524
1543
  }>;
1544
+ humanControl: {
1545
+ list: (options?: AgentDeviceRequestOverrides) => Promise<HumanControlHold[]>;
1546
+ put: (id: string, input?: HumanControlHoldOptions, options?: AgentDeviceRequestOverrides) => Promise<HumanControlHold>;
1547
+ remove: (id: string, options?: AgentDeviceRequestOverrides) => Promise<boolean>;
1548
+ };
1525
1549
  };
1526
1550
  metro: {
1527
1551
  prepare: (options: MetroPrepareOptions) => Promise<MetroPrepareResult>;
@@ -1561,7 +1585,7 @@ type AgentDeviceClient = {
1561
1585
  run: (options: BatchRunOptions) => Promise<BatchRunResult>;
1562
1586
  };
1563
1587
  observability: {
1564
- perf: (options?: PerfOptions) => Promise<CommandRequestResult>;
1588
+ perf: (options: PerfOptions) => Promise<CommandRequestResult>;
1565
1589
  logs: (options?: LogsOptions) => Promise<CommandRequestResult>;
1566
1590
  events: (options?: EventsOptions) => Promise<CommandRequestResult>;
1567
1591
  network: (options?: NetworkOptions) => Promise<CommandRequestResult>;