agent-device 0.10.2 → 0.11.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 (203) hide show
  1. package/README.md +6 -0
  2. package/dist/src/36.js +3 -0
  3. package/dist/src/bin.js +82 -66
  4. package/dist/src/daemon.js +40 -39
  5. package/dist/src/index.d.ts +567 -5
  6. package/dist/src/index.js +3 -1
  7. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+CommandExecution.swift +84 -16
  8. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Interaction.swift +140 -50
  9. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Lifecycle.swift +13 -2
  10. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Models.swift +22 -9
  11. package/ios-runner/AgentDeviceRunner/AgentDeviceRunnerUITests/RunnerTests+Snapshot.swift +221 -0
  12. package/ios-runner/README.md +17 -2
  13. package/ios-runner/RUNNER_PROTOCOL.md +73 -0
  14. package/package.json +11 -6
  15. package/skills/agent-device/SKILL.md +38 -12
  16. package/skills/agent-device/references/bootstrap-install.md +55 -15
  17. package/skills/agent-device/references/exploration.md +65 -8
  18. package/skills/agent-device/references/macos-desktop.md +1 -2
  19. package/skills/agent-device/references/remote-tenancy.md +15 -2
  20. package/skills/agent-device/references/verification.md +7 -3
  21. package/dist/src/224.js +0 -2
  22. package/dist/src/331.js +0 -3
  23. package/dist/src/425.js +0 -1
  24. package/dist/src/bin.d.ts +0 -1
  25. package/dist/src/cli-client-commands.d.ts +0 -8
  26. package/dist/src/cli.d.ts +0 -6
  27. package/dist/src/client-metro.d.ts +0 -64
  28. package/dist/src/client-normalizers.d.ts +0 -20
  29. package/dist/src/client-shared.d.ts +0 -20
  30. package/dist/src/client-types.d.ts +0 -269
  31. package/dist/src/client.d.ts +0 -5
  32. package/dist/src/core/app-events.d.ts +0 -8
  33. package/dist/src/core/batch.d.ts +0 -17
  34. package/dist/src/core/capabilities.d.ts +0 -3
  35. package/dist/src/core/click-button.d.ts +0 -20
  36. package/dist/src/core/dispatch-payload.d.ts +0 -1
  37. package/dist/src/core/dispatch-resolve.d.ts +0 -29
  38. package/dist/src/core/dispatch-series.d.ts +0 -7
  39. package/dist/src/core/dispatch.d.ts +0 -37
  40. package/dist/src/core/open-target.d.ts +0 -4
  41. package/dist/src/core/session-surface.d.ts +0 -3
  42. package/dist/src/core/settings-contract.d.ts +0 -9
  43. package/dist/src/daemon/action-utils.d.ts +0 -3
  44. package/dist/src/daemon/android-system-dialog.d.ts +0 -11
  45. package/dist/src/daemon/app-log-android.d.ts +0 -4
  46. package/dist/src/daemon/app-log-ios.d.ts +0 -7
  47. package/dist/src/daemon/app-log-process.d.ts +0 -15
  48. package/dist/src/daemon/app-log-stream.d.ts +0 -19
  49. package/dist/src/daemon/app-log.d.ts +0 -28
  50. package/dist/src/daemon/artifact-archive.d.ts +0 -12
  51. package/dist/src/daemon/artifact-download.d.ts +0 -12
  52. package/dist/src/daemon/artifact-materialization.d.ts +0 -17
  53. package/dist/src/daemon/artifact-registry.d.ts +0 -12
  54. package/dist/src/daemon/config.d.ts +0 -16
  55. package/dist/src/daemon/context.d.ts +0 -25
  56. package/dist/src/daemon/device-ready.d.ts +0 -6
  57. package/dist/src/daemon/handlers/find.d.ts +0 -40
  58. package/dist/src/daemon/handlers/install-source.d.ts +0 -44
  59. package/dist/src/daemon/handlers/interaction-common.d.ts +0 -41
  60. package/dist/src/daemon/handlers/interaction-flags.d.ts +0 -4
  61. package/dist/src/daemon/handlers/interaction-get.d.ts +0 -3
  62. package/dist/src/daemon/handlers/interaction-is.d.ts +0 -3
  63. package/dist/src/daemon/handlers/interaction-read.d.ts +0 -14
  64. package/dist/src/daemon/handlers/interaction-scroll.d.ts +0 -3
  65. package/dist/src/daemon/handlers/interaction-selector.d.ts +0 -27
  66. package/dist/src/daemon/handlers/interaction-snapshot.d.ts +0 -8
  67. package/dist/src/daemon/handlers/interaction-targeting.d.ts +0 -28
  68. package/dist/src/daemon/handlers/interaction-touch.d.ts +0 -45
  69. package/dist/src/daemon/handlers/interaction.d.ts +0 -9
  70. package/dist/src/daemon/handlers/lease.d.ts +0 -8
  71. package/dist/src/daemon/handlers/parse-utils.d.ts +0 -3
  72. package/dist/src/daemon/handlers/record-trace-android.d.ts +0 -18
  73. package/dist/src/daemon/handlers/record-trace-ios.d.ts +0 -52
  74. package/dist/src/daemon/handlers/record-trace-recording.d.ts +0 -32
  75. package/dist/src/daemon/handlers/record-trace.d.ts +0 -10
  76. package/dist/src/daemon/handlers/session-batch.d.ts +0 -2
  77. package/dist/src/daemon/handlers/session-close.d.ts +0 -31
  78. package/dist/src/daemon/handlers/session-deploy.d.ts +0 -37
  79. package/dist/src/daemon/handlers/session-device-utils.d.ts +0 -26
  80. package/dist/src/daemon/handlers/session-open-target.d.ts +0 -3
  81. package/dist/src/daemon/handlers/session-open.d.ts +0 -22
  82. package/dist/src/daemon/handlers/session-perf.d.ts +0 -2
  83. package/dist/src/daemon/handlers/session-replay-heal.d.ts +0 -8
  84. package/dist/src/daemon/handlers/session-replay-script.d.ts +0 -3
  85. package/dist/src/daemon/handlers/session-runtime-command.d.ts +0 -9
  86. package/dist/src/daemon/handlers/session-runtime.d.ts +0 -36
  87. package/dist/src/daemon/handlers/session-startup-metrics.d.ts +0 -11
  88. package/dist/src/daemon/handlers/session.d.ts +0 -50
  89. package/dist/src/daemon/handlers/snapshot-alert.d.ts +0 -13
  90. package/dist/src/daemon/handlers/snapshot-capture.d.ts +0 -34
  91. package/dist/src/daemon/handlers/snapshot-session.d.ts +0 -15
  92. package/dist/src/daemon/handlers/snapshot-settings.d.ts +0 -24
  93. package/dist/src/daemon/handlers/snapshot-wait.d.ts +0 -37
  94. package/dist/src/daemon/handlers/snapshot.d.ts +0 -16
  95. package/dist/src/daemon/http-server.d.ts +0 -26
  96. package/dist/src/daemon/install-source-resolution.d.ts +0 -5
  97. package/dist/src/daemon/is-predicates.d.ts +0 -15
  98. package/dist/src/daemon/lease-context.d.ts +0 -9
  99. package/dist/src/daemon/lease-registry.d.ts +0 -63
  100. package/dist/src/daemon/materialized-path-registry.d.ts +0 -15
  101. package/dist/src/daemon/network-log.d.ts +0 -32
  102. package/dist/src/daemon/record-trace-errors.d.ts +0 -6
  103. package/dist/src/daemon/recording-gestures.d.ts +0 -3
  104. package/dist/src/daemon/recording-telemetry.d.ts +0 -20
  105. package/dist/src/daemon/recording-timing.d.ts +0 -24
  106. package/dist/src/daemon/request-cancel.d.ts +0 -9
  107. package/dist/src/daemon/request-lock-policy.d.ts +0 -2
  108. package/dist/src/daemon/request-router.d.ts +0 -23
  109. package/dist/src/daemon/runtime-hints.d.ts +0 -19
  110. package/dist/src/daemon/script-utils.d.ts +0 -28
  111. package/dist/src/daemon/scroll-planner.d.ts +0 -12
  112. package/dist/src/daemon/selectors-build.d.ts +0 -5
  113. package/dist/src/daemon/selectors-match.d.ts +0 -6
  114. package/dist/src/daemon/selectors-parse.d.ts +0 -29
  115. package/dist/src/daemon/selectors-resolve.d.ts +0 -33
  116. package/dist/src/daemon/selectors.d.ts +0 -5
  117. package/dist/src/daemon/server-lifecycle.d.ts +0 -23
  118. package/dist/src/daemon/session-open-script.d.ts +0 -7
  119. package/dist/src/daemon/session-routing.d.ts +0 -3
  120. package/dist/src/daemon/session-selector.d.ts +0 -10
  121. package/dist/src/daemon/session-store.d.ts +0 -33
  122. package/dist/src/daemon/snapshot-diff.d.ts +0 -20
  123. package/dist/src/daemon/snapshot-processing.d.ts +0 -10
  124. package/dist/src/daemon/touch-reference-frame.d.ts +0 -7
  125. package/dist/src/daemon/transport.d.ts +0 -6
  126. package/dist/src/daemon/types.d.ts +0 -173
  127. package/dist/src/daemon/upload-registry.d.ts +0 -7
  128. package/dist/src/daemon/upload.d.ts +0 -5
  129. package/dist/src/daemon-client.d.ts +0 -40
  130. package/dist/src/daemon.d.ts +0 -1
  131. package/dist/src/platforms/android/adb.d.ts +0 -5
  132. package/dist/src/platforms/android/app-lifecycle.d.ts +0 -31
  133. package/dist/src/platforms/android/device-input-state.d.ts +0 -19
  134. package/dist/src/platforms/android/devices.d.ts +0 -26
  135. package/dist/src/platforms/android/index.d.ts +0 -8
  136. package/dist/src/platforms/android/input-actions.d.ts +0 -17
  137. package/dist/src/platforms/android/install-artifact.d.ts +0 -11
  138. package/dist/src/platforms/android/manifest.d.ts +0 -1
  139. package/dist/src/platforms/android/notifications.d.ts +0 -11
  140. package/dist/src/platforms/android/open-target.d.ts +0 -4
  141. package/dist/src/platforms/android/screenshot.d.ts +0 -16
  142. package/dist/src/platforms/android/sdk.d.ts +0 -2
  143. package/dist/src/platforms/android/settings.d.ts +0 -3
  144. package/dist/src/platforms/android/snapshot.d.ts +0 -7
  145. package/dist/src/platforms/android/ui-hierarchy.d.ts +0 -21
  146. package/dist/src/platforms/appearance.d.ts +0 -2
  147. package/dist/src/platforms/boot-diagnostics.d.ts +0 -14
  148. package/dist/src/platforms/install-source.d.ts +0 -29
  149. package/dist/src/platforms/ios/app-filter.d.ts +0 -2
  150. package/dist/src/platforms/ios/apps.d.ts +0 -34
  151. package/dist/src/platforms/ios/config.d.ts +0 -10
  152. package/dist/src/platforms/ios/devicectl.d.ts +0 -13
  153. package/dist/src/platforms/ios/devices.d.ts +0 -40
  154. package/dist/src/platforms/ios/ensure-simulator.d.ts +0 -18
  155. package/dist/src/platforms/ios/index.d.ts +0 -3
  156. package/dist/src/platforms/ios/install-artifact.d.ts +0 -18
  157. package/dist/src/platforms/ios/launch-diagnostics.d.ts +0 -11
  158. package/dist/src/platforms/ios/macos-apps.d.ts +0 -12
  159. package/dist/src/platforms/ios/macos-helper.d.ts +0 -69
  160. package/dist/src/platforms/ios/plist.d.ts +0 -1
  161. package/dist/src/platforms/ios/runner-client.d.ts +0 -38
  162. package/dist/src/platforms/ios/runner-errors.d.ts +0 -20
  163. package/dist/src/platforms/ios/runner-macos-products.d.ts +0 -3
  164. package/dist/src/platforms/ios/runner-session.d.ts +0 -30
  165. package/dist/src/platforms/ios/runner-transport.d.ts +0 -10
  166. package/dist/src/platforms/ios/runner-xctestrun-products.d.ts +0 -2
  167. package/dist/src/platforms/ios/runner-xctestrun.d.ts +0 -38
  168. package/dist/src/platforms/ios/screenshot-status-bar.d.ts +0 -2
  169. package/dist/src/platforms/ios/screenshot.d.ts +0 -14
  170. package/dist/src/platforms/ios/simctl.d.ts +0 -7
  171. package/dist/src/platforms/ios/simulator.d.ts +0 -11
  172. package/dist/src/platforms/permission-utils.d.ts +0 -9
  173. package/dist/src/recording/overlay.d.ts +0 -10
  174. package/dist/src/upload-client.d.ts +0 -7
  175. package/dist/src/utils/args.d.ts +0 -27
  176. package/dist/src/utils/cli-config.d.ts +0 -10
  177. package/dist/src/utils/cli-option-schema.d.ts +0 -19
  178. package/dist/src/utils/cli-options.d.ts +0 -13
  179. package/dist/src/utils/command-schema.d.ts +0 -123
  180. package/dist/src/utils/device-isolation.d.ts +0 -3
  181. package/dist/src/utils/device.d.ts +0 -35
  182. package/dist/src/utils/diagnostics.d.ts +0 -30
  183. package/dist/src/utils/errors.d.ts +0 -26
  184. package/dist/src/utils/exec.d.ts +0 -32
  185. package/dist/src/utils/finders.d.ts +0 -12
  186. package/dist/src/utils/interactors.d.ts +0 -38
  187. package/dist/src/utils/json-input.d.ts +0 -1
  188. package/dist/src/utils/keyed-lock.d.ts +0 -1
  189. package/dist/src/utils/output.d.ts +0 -27
  190. package/dist/src/utils/path-resolution.d.ts +0 -8
  191. package/dist/src/utils/payload-input.d.ts +0 -12
  192. package/dist/src/utils/process-identity.d.ts +0 -11
  193. package/dist/src/utils/remote-config.d.ts +0 -15
  194. package/dist/src/utils/remote-open.d.ts +0 -9
  195. package/dist/src/utils/retry.d.ts +0 -54
  196. package/dist/src/utils/screenshot-diff.d.ts +0 -23
  197. package/dist/src/utils/session-binding.d.ts +0 -18
  198. package/dist/src/utils/snapshot-lines.d.ts +0 -15
  199. package/dist/src/utils/snapshot.d.ts +0 -49
  200. package/dist/src/utils/text-surface.d.ts +0 -19
  201. package/dist/src/utils/timeouts.d.ts +0 -3
  202. package/dist/src/utils/version.d.ts +0 -2
  203. package/dist/src/utils/video.d.ts +0 -9
@@ -1,35 +0,0 @@
1
- export type ApplePlatform = 'ios' | 'macos';
2
- export type Platform = ApplePlatform | 'android';
3
- export type PlatformSelector = Platform | 'apple';
4
- export type DeviceKind = 'simulator' | 'emulator' | 'device';
5
- export type DeviceTarget = 'mobile' | 'tv' | 'desktop';
6
- export type DeviceInfo = {
7
- platform: Platform;
8
- id: string;
9
- name: string;
10
- kind: DeviceKind;
11
- target?: DeviceTarget;
12
- booted?: boolean;
13
- simulatorSetPath?: string;
14
- };
15
- type DeviceSelector = {
16
- platform?: PlatformSelector;
17
- target?: DeviceTarget;
18
- deviceName?: string;
19
- udid?: string;
20
- serial?: string;
21
- };
22
- type DeviceSelectionContext = {
23
- simulatorSetPath?: string;
24
- };
25
- export declare function normalizePlatformSelector(platform: PlatformSelector | undefined): PlatformSelector | undefined;
26
- export declare function isApplePlatform(platform: Platform | PlatformSelector | undefined): platform is ApplePlatform | 'apple';
27
- export declare function matchesPlatformSelector(platform: Platform, selector: PlatformSelector | undefined): boolean;
28
- export declare function resolveApplePlatformName(platformOrTarget: ApplePlatform | DeviceTarget | undefined): 'iOS' | 'tvOS' | 'macOS';
29
- export declare function resolveAppleSimulatorSetPathForSelector(params: {
30
- simulatorSetPath?: string;
31
- platform?: PlatformSelector;
32
- target?: DeviceTarget;
33
- }): string | undefined;
34
- export declare function resolveDevice(devices: DeviceInfo[], selector: DeviceSelector, context?: DeviceSelectionContext): Promise<DeviceInfo>;
35
- export {};
@@ -1,30 +0,0 @@
1
- type DiagnosticLevel = 'info' | 'warn' | 'error' | 'debug';
2
- type DiagnosticsScopeOptions = {
3
- session?: string;
4
- requestId?: string;
5
- command?: string;
6
- debug?: boolean;
7
- logPath?: string;
8
- traceLogPath?: string;
9
- };
10
- export declare function createRequestId(): string;
11
- export declare function withDiagnosticsScope<T>(options: DiagnosticsScopeOptions, fn: () => Promise<T> | T): Promise<T>;
12
- export declare function getDiagnosticsMeta(): {
13
- diagnosticId?: string;
14
- requestId?: string;
15
- session?: string;
16
- command?: string;
17
- debug?: boolean;
18
- };
19
- export declare function emitDiagnostic(event: {
20
- level?: DiagnosticLevel;
21
- phase: string;
22
- durationMs?: number;
23
- data?: Record<string, unknown>;
24
- }): void;
25
- export declare function withDiagnosticTimer<T>(phase: string, fn: () => Promise<T> | T, data?: Record<string, unknown>): Promise<T>;
26
- export declare function flushDiagnosticsToSessionFile(options?: {
27
- force?: boolean;
28
- }): string | null;
29
- export declare function redactDiagnosticData<T>(input: T): T;
30
- export {};
@@ -1,26 +0,0 @@
1
- type ErrorCode = 'INVALID_ARGS' | 'DEVICE_NOT_FOUND' | 'TOOL_MISSING' | 'APP_NOT_INSTALLED' | 'UNSUPPORTED_PLATFORM' | 'UNSUPPORTED_OPERATION' | 'COMMAND_FAILED' | 'SESSION_NOT_FOUND' | 'UNAUTHORIZED' | 'UNKNOWN';
2
- type AppErrorDetails = Record<string, unknown> & {
3
- hint?: string;
4
- diagnosticId?: string;
5
- logPath?: string;
6
- };
7
- export type NormalizedError = {
8
- code: string;
9
- message: string;
10
- hint?: string;
11
- diagnosticId?: string;
12
- logPath?: string;
13
- details?: Record<string, unknown>;
14
- };
15
- export declare class AppError extends Error {
16
- code: ErrorCode;
17
- details?: AppErrorDetails;
18
- cause?: unknown;
19
- constructor(code: ErrorCode, message: string, details?: AppErrorDetails, cause?: unknown);
20
- }
21
- export declare function asAppError(err: unknown): AppError;
22
- export declare function normalizeError(err: unknown, context?: {
23
- diagnosticId?: string;
24
- logPath?: string;
25
- }): NormalizedError;
26
- export {};
@@ -1,32 +0,0 @@
1
- import { spawn } from 'node:child_process';
2
- export type ExecResult = {
3
- stdout: string;
4
- stderr: string;
5
- exitCode: number;
6
- stdoutBuffer?: Buffer;
7
- };
8
- type ExecOptions = {
9
- cwd?: string;
10
- env?: NodeJS.ProcessEnv;
11
- allowFailure?: boolean;
12
- binaryStdout?: boolean;
13
- stdin?: string | Buffer;
14
- timeoutMs?: number;
15
- detached?: boolean;
16
- };
17
- type ExecStreamOptions = ExecOptions & {
18
- onStdoutChunk?: (chunk: string) => void;
19
- onStderrChunk?: (chunk: string) => void;
20
- onSpawn?: (child: ReturnType<typeof spawn>) => void;
21
- };
22
- export type ExecBackgroundResult = {
23
- child: ReturnType<typeof spawn>;
24
- wait: Promise<ExecResult>;
25
- };
26
- export declare function runCmd(cmd: string, args: string[], options?: ExecOptions): Promise<ExecResult>;
27
- export declare function whichCmd(cmd: string): Promise<boolean>;
28
- export declare function runCmdSync(cmd: string, args: string[], options?: ExecOptions): ExecResult;
29
- export declare function runCmdDetached(cmd: string, args: string[], options?: ExecOptions): void;
30
- export declare function runCmdStreaming(cmd: string, args: string[], options?: ExecStreamOptions): Promise<ExecResult>;
31
- export declare function runCmdBackground(cmd: string, args: string[], options?: ExecOptions): ExecBackgroundResult;
32
- export {};
@@ -1,12 +0,0 @@
1
- import type { SnapshotNode } from './snapshot.ts';
2
- export type FindLocator = 'any' | 'text' | 'label' | 'value' | 'role' | 'id';
3
- type FindMatchOptions = {
4
- requireRect?: boolean;
5
- };
6
- type FindBestMatches = {
7
- matches: SnapshotNode[];
8
- score: number;
9
- };
10
- export declare function findNodeByLocator(nodes: SnapshotNode[], locator: FindLocator, query: string, options?: FindMatchOptions): SnapshotNode | null;
11
- export declare function findBestMatchesByLocator(nodes: SnapshotNode[], locator: FindLocator, query: string, options?: FindMatchOptions): FindBestMatches;
12
- export {};
@@ -1,38 +0,0 @@
1
- import type { DeviceInfo } from './device.ts';
2
- import type { PermissionSettingOptions } from '../platforms/permission-utils.ts';
3
- export type RunnerContext = {
4
- requestId?: string;
5
- appBundleId?: string;
6
- verbose?: boolean;
7
- logPath?: string;
8
- traceLogPath?: string;
9
- };
10
- type Interactor = {
11
- open(app: string, options?: {
12
- activity?: string;
13
- appBundleId?: string;
14
- url?: string;
15
- }): Promise<void>;
16
- openDevice(): Promise<void>;
17
- close(app: string): Promise<void>;
18
- tap(x: number, y: number): Promise<Record<string, unknown> | void>;
19
- doubleTap(x: number, y: number): Promise<Record<string, unknown> | void>;
20
- swipe(x1: number, y1: number, x2: number, y2: number, durationMs?: number): Promise<Record<string, unknown> | void>;
21
- longPress(x: number, y: number, durationMs?: number): Promise<Record<string, unknown> | void>;
22
- focus(x: number, y: number): Promise<Record<string, unknown> | void>;
23
- type(text: string): Promise<void>;
24
- fill(x: number, y: number, text: string): Promise<Record<string, unknown> | void>;
25
- scroll(direction: string, amount?: number): Promise<Record<string, unknown> | void>;
26
- scrollIntoView(text: string): Promise<{
27
- attempts?: number;
28
- } | void>;
29
- screenshot(outPath: string, appBundleId?: string): Promise<void>;
30
- back(): Promise<void>;
31
- home(): Promise<void>;
32
- appSwitcher(): Promise<void>;
33
- readClipboard(): Promise<string>;
34
- writeClipboard(text: string): Promise<void>;
35
- setSetting(setting: string, state: string, appId?: string, options?: PermissionSettingOptions): Promise<Record<string, unknown> | void>;
36
- };
37
- export declare function getInteractor(device: DeviceInfo, runnerContext: RunnerContext): Interactor;
38
- export {};
@@ -1 +0,0 @@
1
- export declare function looksLikeInlineJson(value: string): boolean;
@@ -1 +0,0 @@
1
- export declare function withKeyedLock<T>(locks: Map<string, Promise<unknown>>, key: string, task: () => Promise<T>): Promise<T>;
@@ -1,27 +0,0 @@
1
- import { AppError, type NormalizedError } from './errors.ts';
2
- import type { ScreenshotDiffResult } from './screenshot-diff.ts';
3
- type JsonResult = {
4
- success: true;
5
- data?: unknown;
6
- } | {
7
- success: false;
8
- error: {
9
- code: string;
10
- message: string;
11
- hint?: string;
12
- diagnosticId?: string;
13
- logPath?: string;
14
- details?: Record<string, unknown>;
15
- };
16
- };
17
- export declare function printJson(result: JsonResult): void;
18
- export declare function printHumanError(err: AppError | NormalizedError, options?: {
19
- showDetails?: boolean;
20
- }): void;
21
- export declare function formatSnapshotText(data: Record<string, unknown>, options?: {
22
- raw?: boolean;
23
- flatten?: boolean;
24
- }): string;
25
- export declare function formatSnapshotDiffText(data: Record<string, unknown>): string;
26
- export declare function formatScreenshotDiffText(data: ScreenshotDiffResult): string;
27
- export {};
@@ -1,8 +0,0 @@
1
- type EnvMap = Record<string, string | undefined>;
2
- type PathResolutionOptions = {
3
- cwd?: string;
4
- env?: EnvMap;
5
- };
6
- export declare function expandUserHomePath(inputPath: string, options?: PathResolutionOptions): string;
7
- export declare function resolveUserPath(inputPath: string, options?: PathResolutionOptions): string;
8
- export {};
@@ -1,12 +0,0 @@
1
- export type ResolvedPayloadInput = {
2
- kind: 'file';
3
- path: string;
4
- } | {
5
- kind: 'inline';
6
- text: string;
7
- };
8
- export declare function resolvePayloadInput(value: string, options?: {
9
- subject?: string;
10
- cwd?: string;
11
- expandPath?: (value: string, cwd?: string) => string;
12
- }): ResolvedPayloadInput;
@@ -1,11 +0,0 @@
1
- export declare function isProcessAlive(pid: number): boolean;
2
- export declare function readProcessStartTime(pid: number): string | null;
3
- export declare function readProcessCommand(pid: number): string | null;
4
- export declare function isAgentDeviceDaemonCommand(command: string): boolean;
5
- export declare function isAgentDeviceDaemonProcess(pid: number, expectedStartTime?: string): boolean;
6
- export declare function waitForProcessExit(pid: number, timeoutMs: number): Promise<boolean>;
7
- export declare function stopProcessForTakeover(pid: number, options: {
8
- termTimeoutMs: number;
9
- killTimeoutMs: number;
10
- expectedStartTime?: string;
11
- }): Promise<void>;
@@ -1,15 +0,0 @@
1
- import type { CliFlags } from './command-schema.ts';
2
- type EnvMap = Record<string, string | undefined>;
3
- export declare const REMOTE_OPEN_FLAG_KEYS: readonly ["remoteConfig", "session", "platform", "daemonBaseUrl", "daemonAuthToken", "daemonTransport", "metroProjectRoot", "metroKind", "metroPublicBaseUrl", "metroProxyBaseUrl", "metroBearerToken", "metroPreparePort", "metroListenHost", "metroStatusHost", "metroStartupTimeoutMs", "metroProbeTimeoutMs", "metroRuntimeFile", "metroNoReuseExisting", "metroNoInstallDeps"];
4
- export declare function loadRemoteConfigFile(options: {
5
- configPath: string;
6
- cwd: string;
7
- env?: EnvMap;
8
- }): Partial<CliFlags>;
9
- export declare function resolveRemoteConfigDefaults(options: {
10
- cliFlags: CliFlags;
11
- cwd: string;
12
- env: EnvMap;
13
- }): Partial<CliFlags>;
14
- export declare function pickRemoteOpenDefaults(defaultFlags: Partial<CliFlags>): Partial<CliFlags>;
15
- export {};
@@ -1,9 +0,0 @@
1
- import type { AgentDeviceClient } from '../client.ts';
2
- import type { CliFlags } from './command-schema.ts';
3
- export declare function resolveRemoteOpenRuntime(flags: CliFlags, client: AgentDeviceClient): Promise<{
4
- platform?: 'ios' | 'android';
5
- metroHost?: string;
6
- metroPort?: number;
7
- bundleUrl?: string;
8
- launchUrl?: string;
9
- } | undefined>;
@@ -1,54 +0,0 @@
1
- type RetryOptions = {
2
- attempts?: number;
3
- baseDelayMs?: number;
4
- maxDelayMs?: number;
5
- jitter?: number;
6
- shouldRetry?: (error: unknown, attempt: number) => boolean;
7
- };
8
- type RetryPolicy = {
9
- maxAttempts: number;
10
- baseDelayMs: number;
11
- maxDelayMs: number;
12
- jitter: number;
13
- shouldRetry?: (error: unknown, attempt: number) => boolean;
14
- };
15
- type RetryAttemptContext = {
16
- attempt: number;
17
- maxAttempts: number;
18
- deadline?: Deadline;
19
- };
20
- type TimeoutProfile = {
21
- startupMs: number;
22
- operationMs: number;
23
- totalMs: number;
24
- };
25
- type RetryTelemetryEvent = {
26
- phase?: string;
27
- event: 'attempt_failed' | 'retry_scheduled' | 'succeeded' | 'exhausted';
28
- attempt: number;
29
- maxAttempts: number;
30
- delayMs?: number;
31
- elapsedMs?: number;
32
- remainingMs?: number;
33
- reason?: string;
34
- };
35
- export declare function isEnvTruthy(value: string | undefined): boolean;
36
- export declare const TIMEOUT_PROFILES: Record<string, TimeoutProfile>;
37
- export declare class Deadline {
38
- private readonly startedAtMs;
39
- private readonly expiresAtMs;
40
- private constructor();
41
- static fromTimeoutMs(timeoutMs: number, nowMs?: number): Deadline;
42
- remainingMs(nowMs?: number): number;
43
- elapsedMs(nowMs?: number): number;
44
- isExpired(nowMs?: number): boolean;
45
- }
46
- export declare function retryWithPolicy<T>(fn: (context: RetryAttemptContext) => Promise<T>, policy?: Partial<RetryPolicy>, options?: {
47
- deadline?: Deadline;
48
- phase?: string;
49
- signal?: AbortSignal;
50
- classifyReason?: (error: unknown) => string | undefined;
51
- onEvent?: (event: RetryTelemetryEvent) => void;
52
- }): Promise<T>;
53
- export declare function withRetry<T>(fn: () => Promise<T>, options?: RetryOptions): Promise<T>;
54
- export {};
@@ -1,23 +0,0 @@
1
- export type ScreenshotDimensionMismatch = {
2
- expected: {
3
- width: number;
4
- height: number;
5
- };
6
- actual: {
7
- width: number;
8
- height: number;
9
- };
10
- };
11
- export type ScreenshotDiffResult = {
12
- diffPath?: string;
13
- totalPixels: number;
14
- differentPixels: number;
15
- mismatchPercentage: number;
16
- match: boolean;
17
- dimensionMismatch?: ScreenshotDimensionMismatch;
18
- };
19
- export type ScreenshotDiffOptions = {
20
- threshold?: number;
21
- outputPath?: string;
22
- };
23
- export declare function compareScreenshots(baselinePath: string, currentPath: string, options?: ScreenshotDiffOptions): Promise<ScreenshotDiffResult>;
@@ -1,18 +0,0 @@
1
- import type { CliFlags } from './command-schema.ts';
2
- import type { DaemonLockPolicy } from '../daemon/types.ts';
3
- export type BindingSettings = {
4
- defaultPlatform?: CliFlags['platform'];
5
- lockPolicy?: DaemonLockPolicy;
6
- };
7
- type BindingPolicyOverrides = Pick<Partial<CliFlags>, 'sessionLock' | 'sessionLocked' | 'sessionLockConflicts'>;
8
- type LockableFlags = Pick<Partial<CliFlags>, 'platform' | 'target' | 'device' | 'udid' | 'serial' | 'iosSimulatorDeviceSet' | 'androidDeviceAllowlist'>;
9
- type BindingOptions = {
10
- env?: NodeJS.ProcessEnv;
11
- policyOverrides?: BindingPolicyOverrides;
12
- configuredPlatform?: CliFlags['platform'];
13
- configuredSession?: string;
14
- inheritedPlatform?: CliFlags['platform'];
15
- };
16
- export declare function applyDefaultPlatformBinding<T extends LockableFlags>(flags: T, options?: BindingOptions): T;
17
- export declare function resolveBindingSettings(options: BindingOptions): BindingSettings;
18
- export {};
@@ -1,15 +0,0 @@
1
- import type { SnapshotNode } from './snapshot.ts';
2
- type SnapshotDisplayLine = {
3
- node: SnapshotNode;
4
- depth: number;
5
- type: string;
6
- text: string;
7
- };
8
- type SnapshotLineFormatOptions = {
9
- summarizeTextSurfaces?: boolean;
10
- };
11
- export declare function buildSnapshotDisplayLines(nodes: SnapshotNode[], options?: SnapshotLineFormatOptions): SnapshotDisplayLine[];
12
- export declare function formatSnapshotLine(node: SnapshotNode, depth: number, hiddenGroup: boolean, normalizedType?: string, options?: SnapshotLineFormatOptions): string;
13
- export declare function displayLabel(node: SnapshotNode, type: string): string;
14
- export declare function formatRole(type: string): string;
15
- export {};
@@ -1,49 +0,0 @@
1
- export type Rect = {
2
- x: number;
3
- y: number;
4
- width: number;
5
- height: number;
6
- };
7
- export type SnapshotOptions = {
8
- interactiveOnly?: boolean;
9
- compact?: boolean;
10
- depth?: number;
11
- scope?: string;
12
- raw?: boolean;
13
- };
14
- export type RawSnapshotNode = {
15
- index: number;
16
- type?: string;
17
- role?: string;
18
- subrole?: string;
19
- label?: string;
20
- value?: string;
21
- identifier?: string;
22
- rect?: Rect;
23
- enabled?: boolean;
24
- selected?: boolean;
25
- hittable?: boolean;
26
- depth?: number;
27
- parentIndex?: number;
28
- pid?: number;
29
- bundleId?: string;
30
- appName?: string;
31
- windowTitle?: string;
32
- surface?: string;
33
- };
34
- export type SnapshotNode = RawSnapshotNode & {
35
- ref: string;
36
- };
37
- export type SnapshotState = {
38
- nodes: SnapshotNode[];
39
- createdAt: number;
40
- truncated?: boolean;
41
- backend?: 'xctest' | 'android' | 'macos-helper';
42
- };
43
- export declare function attachRefs(nodes: RawSnapshotNode[]): SnapshotNode[];
44
- export declare function normalizeRef(input: string): string | null;
45
- export declare function findNodeByRef(nodes: SnapshotNode[], ref: string): SnapshotNode | null;
46
- export declare function centerOfRect(rect: Rect): {
47
- x: number;
48
- y: number;
49
- };
@@ -1,19 +0,0 @@
1
- type TextSurfaceNode = {
2
- type?: string;
3
- label?: string;
4
- value?: string;
5
- identifier?: string;
6
- role?: string;
7
- subrole?: string;
8
- };
9
- export declare function extractReadableText(node: TextSurfaceNode): string;
10
- export declare function isLargeTextSurface(node: TextSurfaceNode, displayType?: string): boolean;
11
- export declare function buildTextPreview(text: string): string;
12
- export declare function describeTextSurface(node: TextSurfaceNode, displayType?: string): {
13
- text: string;
14
- isLargeSurface: boolean;
15
- shouldSummarize: boolean;
16
- };
17
- export declare function shouldSummarizeTextSurface(text: string): boolean;
18
- export declare function trimText(value: unknown): string;
19
- export {};
@@ -1,3 +0,0 @@
1
- export declare function resolveTimeoutMs(raw: string | undefined, fallback: number, min: number): number;
2
- /** Alias for `resolveTimeoutMs` — semantically marks the caller expects seconds. */
3
- export declare const resolveTimeoutSeconds: typeof resolveTimeoutMs;
@@ -1,2 +0,0 @@
1
- export declare function readVersion(): string;
2
- export declare function findProjectRoot(): string;
@@ -1,9 +0,0 @@
1
- export declare function waitForStableFile(filePath: string, options?: {
2
- pollMs?: number;
3
- attempts?: number;
4
- }): Promise<void>;
5
- export declare function isPlayableVideo(filePath: string): Promise<boolean>;
6
- export declare function waitForPlayableVideo(filePath: string, options?: {
7
- pollMs?: number;
8
- attempts?: number;
9
- }): Promise<void>;