agent-device 0.10.2 → 0.10.3

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 (195) hide show
  1. package/dist/src/376.js +3 -0
  2. package/dist/src/bin.js +74 -73
  3. package/dist/src/daemon.js +37 -37
  4. package/dist/src/index.d.ts +559 -5
  5. package/dist/src/index.js +3 -1
  6. package/package.json +2 -1
  7. package/skills/agent-device/SKILL.md +35 -12
  8. package/skills/agent-device/references/bootstrap-install.md +55 -15
  9. package/skills/agent-device/references/exploration.md +49 -7
  10. package/skills/agent-device/references/macos-desktop.md +1 -2
  11. package/skills/agent-device/references/remote-tenancy.md +15 -2
  12. package/skills/agent-device/references/verification.md +2 -3
  13. package/dist/src/224.js +0 -2
  14. package/dist/src/331.js +0 -3
  15. package/dist/src/425.js +0 -1
  16. package/dist/src/bin.d.ts +0 -1
  17. package/dist/src/cli-client-commands.d.ts +0 -8
  18. package/dist/src/cli.d.ts +0 -6
  19. package/dist/src/client-metro.d.ts +0 -64
  20. package/dist/src/client-normalizers.d.ts +0 -20
  21. package/dist/src/client-shared.d.ts +0 -20
  22. package/dist/src/client-types.d.ts +0 -269
  23. package/dist/src/client.d.ts +0 -5
  24. package/dist/src/core/app-events.d.ts +0 -8
  25. package/dist/src/core/batch.d.ts +0 -17
  26. package/dist/src/core/capabilities.d.ts +0 -3
  27. package/dist/src/core/click-button.d.ts +0 -20
  28. package/dist/src/core/dispatch-payload.d.ts +0 -1
  29. package/dist/src/core/dispatch-resolve.d.ts +0 -29
  30. package/dist/src/core/dispatch-series.d.ts +0 -7
  31. package/dist/src/core/dispatch.d.ts +0 -37
  32. package/dist/src/core/open-target.d.ts +0 -4
  33. package/dist/src/core/session-surface.d.ts +0 -3
  34. package/dist/src/core/settings-contract.d.ts +0 -9
  35. package/dist/src/daemon/action-utils.d.ts +0 -3
  36. package/dist/src/daemon/android-system-dialog.d.ts +0 -11
  37. package/dist/src/daemon/app-log-android.d.ts +0 -4
  38. package/dist/src/daemon/app-log-ios.d.ts +0 -7
  39. package/dist/src/daemon/app-log-process.d.ts +0 -15
  40. package/dist/src/daemon/app-log-stream.d.ts +0 -19
  41. package/dist/src/daemon/app-log.d.ts +0 -28
  42. package/dist/src/daemon/artifact-archive.d.ts +0 -12
  43. package/dist/src/daemon/artifact-download.d.ts +0 -12
  44. package/dist/src/daemon/artifact-materialization.d.ts +0 -17
  45. package/dist/src/daemon/artifact-registry.d.ts +0 -12
  46. package/dist/src/daemon/config.d.ts +0 -16
  47. package/dist/src/daemon/context.d.ts +0 -25
  48. package/dist/src/daemon/device-ready.d.ts +0 -6
  49. package/dist/src/daemon/handlers/find.d.ts +0 -40
  50. package/dist/src/daemon/handlers/install-source.d.ts +0 -44
  51. package/dist/src/daemon/handlers/interaction-common.d.ts +0 -41
  52. package/dist/src/daemon/handlers/interaction-flags.d.ts +0 -4
  53. package/dist/src/daemon/handlers/interaction-get.d.ts +0 -3
  54. package/dist/src/daemon/handlers/interaction-is.d.ts +0 -3
  55. package/dist/src/daemon/handlers/interaction-read.d.ts +0 -14
  56. package/dist/src/daemon/handlers/interaction-scroll.d.ts +0 -3
  57. package/dist/src/daemon/handlers/interaction-selector.d.ts +0 -27
  58. package/dist/src/daemon/handlers/interaction-snapshot.d.ts +0 -8
  59. package/dist/src/daemon/handlers/interaction-targeting.d.ts +0 -28
  60. package/dist/src/daemon/handlers/interaction-touch.d.ts +0 -45
  61. package/dist/src/daemon/handlers/interaction.d.ts +0 -9
  62. package/dist/src/daemon/handlers/lease.d.ts +0 -8
  63. package/dist/src/daemon/handlers/parse-utils.d.ts +0 -3
  64. package/dist/src/daemon/handlers/record-trace-android.d.ts +0 -18
  65. package/dist/src/daemon/handlers/record-trace-ios.d.ts +0 -52
  66. package/dist/src/daemon/handlers/record-trace-recording.d.ts +0 -32
  67. package/dist/src/daemon/handlers/record-trace.d.ts +0 -10
  68. package/dist/src/daemon/handlers/session-batch.d.ts +0 -2
  69. package/dist/src/daemon/handlers/session-close.d.ts +0 -31
  70. package/dist/src/daemon/handlers/session-deploy.d.ts +0 -37
  71. package/dist/src/daemon/handlers/session-device-utils.d.ts +0 -26
  72. package/dist/src/daemon/handlers/session-open-target.d.ts +0 -3
  73. package/dist/src/daemon/handlers/session-open.d.ts +0 -22
  74. package/dist/src/daemon/handlers/session-perf.d.ts +0 -2
  75. package/dist/src/daemon/handlers/session-replay-heal.d.ts +0 -8
  76. package/dist/src/daemon/handlers/session-replay-script.d.ts +0 -3
  77. package/dist/src/daemon/handlers/session-runtime-command.d.ts +0 -9
  78. package/dist/src/daemon/handlers/session-runtime.d.ts +0 -36
  79. package/dist/src/daemon/handlers/session-startup-metrics.d.ts +0 -11
  80. package/dist/src/daemon/handlers/session.d.ts +0 -50
  81. package/dist/src/daemon/handlers/snapshot-alert.d.ts +0 -13
  82. package/dist/src/daemon/handlers/snapshot-capture.d.ts +0 -34
  83. package/dist/src/daemon/handlers/snapshot-session.d.ts +0 -15
  84. package/dist/src/daemon/handlers/snapshot-settings.d.ts +0 -24
  85. package/dist/src/daemon/handlers/snapshot-wait.d.ts +0 -37
  86. package/dist/src/daemon/handlers/snapshot.d.ts +0 -16
  87. package/dist/src/daemon/http-server.d.ts +0 -26
  88. package/dist/src/daemon/install-source-resolution.d.ts +0 -5
  89. package/dist/src/daemon/is-predicates.d.ts +0 -15
  90. package/dist/src/daemon/lease-context.d.ts +0 -9
  91. package/dist/src/daemon/lease-registry.d.ts +0 -63
  92. package/dist/src/daemon/materialized-path-registry.d.ts +0 -15
  93. package/dist/src/daemon/network-log.d.ts +0 -32
  94. package/dist/src/daemon/record-trace-errors.d.ts +0 -6
  95. package/dist/src/daemon/recording-gestures.d.ts +0 -3
  96. package/dist/src/daemon/recording-telemetry.d.ts +0 -20
  97. package/dist/src/daemon/recording-timing.d.ts +0 -24
  98. package/dist/src/daemon/request-cancel.d.ts +0 -9
  99. package/dist/src/daemon/request-lock-policy.d.ts +0 -2
  100. package/dist/src/daemon/request-router.d.ts +0 -23
  101. package/dist/src/daemon/runtime-hints.d.ts +0 -19
  102. package/dist/src/daemon/script-utils.d.ts +0 -28
  103. package/dist/src/daemon/scroll-planner.d.ts +0 -12
  104. package/dist/src/daemon/selectors-build.d.ts +0 -5
  105. package/dist/src/daemon/selectors-match.d.ts +0 -6
  106. package/dist/src/daemon/selectors-parse.d.ts +0 -29
  107. package/dist/src/daemon/selectors-resolve.d.ts +0 -33
  108. package/dist/src/daemon/selectors.d.ts +0 -5
  109. package/dist/src/daemon/server-lifecycle.d.ts +0 -23
  110. package/dist/src/daemon/session-open-script.d.ts +0 -7
  111. package/dist/src/daemon/session-routing.d.ts +0 -3
  112. package/dist/src/daemon/session-selector.d.ts +0 -10
  113. package/dist/src/daemon/session-store.d.ts +0 -33
  114. package/dist/src/daemon/snapshot-diff.d.ts +0 -20
  115. package/dist/src/daemon/snapshot-processing.d.ts +0 -10
  116. package/dist/src/daemon/touch-reference-frame.d.ts +0 -7
  117. package/dist/src/daemon/transport.d.ts +0 -6
  118. package/dist/src/daemon/types.d.ts +0 -173
  119. package/dist/src/daemon/upload-registry.d.ts +0 -7
  120. package/dist/src/daemon/upload.d.ts +0 -5
  121. package/dist/src/daemon-client.d.ts +0 -40
  122. package/dist/src/daemon.d.ts +0 -1
  123. package/dist/src/platforms/android/adb.d.ts +0 -5
  124. package/dist/src/platforms/android/app-lifecycle.d.ts +0 -31
  125. package/dist/src/platforms/android/device-input-state.d.ts +0 -19
  126. package/dist/src/platforms/android/devices.d.ts +0 -26
  127. package/dist/src/platforms/android/index.d.ts +0 -8
  128. package/dist/src/platforms/android/input-actions.d.ts +0 -17
  129. package/dist/src/platforms/android/install-artifact.d.ts +0 -11
  130. package/dist/src/platforms/android/manifest.d.ts +0 -1
  131. package/dist/src/platforms/android/notifications.d.ts +0 -11
  132. package/dist/src/platforms/android/open-target.d.ts +0 -4
  133. package/dist/src/platforms/android/screenshot.d.ts +0 -16
  134. package/dist/src/platforms/android/sdk.d.ts +0 -2
  135. package/dist/src/platforms/android/settings.d.ts +0 -3
  136. package/dist/src/platforms/android/snapshot.d.ts +0 -7
  137. package/dist/src/platforms/android/ui-hierarchy.d.ts +0 -21
  138. package/dist/src/platforms/appearance.d.ts +0 -2
  139. package/dist/src/platforms/boot-diagnostics.d.ts +0 -14
  140. package/dist/src/platforms/install-source.d.ts +0 -29
  141. package/dist/src/platforms/ios/app-filter.d.ts +0 -2
  142. package/dist/src/platforms/ios/apps.d.ts +0 -34
  143. package/dist/src/platforms/ios/config.d.ts +0 -10
  144. package/dist/src/platforms/ios/devicectl.d.ts +0 -13
  145. package/dist/src/platforms/ios/devices.d.ts +0 -40
  146. package/dist/src/platforms/ios/ensure-simulator.d.ts +0 -18
  147. package/dist/src/platforms/ios/index.d.ts +0 -3
  148. package/dist/src/platforms/ios/install-artifact.d.ts +0 -18
  149. package/dist/src/platforms/ios/launch-diagnostics.d.ts +0 -11
  150. package/dist/src/platforms/ios/macos-apps.d.ts +0 -12
  151. package/dist/src/platforms/ios/macos-helper.d.ts +0 -69
  152. package/dist/src/platforms/ios/plist.d.ts +0 -1
  153. package/dist/src/platforms/ios/runner-client.d.ts +0 -38
  154. package/dist/src/platforms/ios/runner-errors.d.ts +0 -20
  155. package/dist/src/platforms/ios/runner-macos-products.d.ts +0 -3
  156. package/dist/src/platforms/ios/runner-session.d.ts +0 -30
  157. package/dist/src/platforms/ios/runner-transport.d.ts +0 -10
  158. package/dist/src/platforms/ios/runner-xctestrun-products.d.ts +0 -2
  159. package/dist/src/platforms/ios/runner-xctestrun.d.ts +0 -38
  160. package/dist/src/platforms/ios/screenshot-status-bar.d.ts +0 -2
  161. package/dist/src/platforms/ios/screenshot.d.ts +0 -14
  162. package/dist/src/platforms/ios/simctl.d.ts +0 -7
  163. package/dist/src/platforms/ios/simulator.d.ts +0 -11
  164. package/dist/src/platforms/permission-utils.d.ts +0 -9
  165. package/dist/src/recording/overlay.d.ts +0 -10
  166. package/dist/src/upload-client.d.ts +0 -7
  167. package/dist/src/utils/args.d.ts +0 -27
  168. package/dist/src/utils/cli-config.d.ts +0 -10
  169. package/dist/src/utils/cli-option-schema.d.ts +0 -19
  170. package/dist/src/utils/cli-options.d.ts +0 -13
  171. package/dist/src/utils/command-schema.d.ts +0 -123
  172. package/dist/src/utils/device-isolation.d.ts +0 -3
  173. package/dist/src/utils/device.d.ts +0 -35
  174. package/dist/src/utils/diagnostics.d.ts +0 -30
  175. package/dist/src/utils/errors.d.ts +0 -26
  176. package/dist/src/utils/exec.d.ts +0 -32
  177. package/dist/src/utils/finders.d.ts +0 -12
  178. package/dist/src/utils/interactors.d.ts +0 -38
  179. package/dist/src/utils/json-input.d.ts +0 -1
  180. package/dist/src/utils/keyed-lock.d.ts +0 -1
  181. package/dist/src/utils/output.d.ts +0 -27
  182. package/dist/src/utils/path-resolution.d.ts +0 -8
  183. package/dist/src/utils/payload-input.d.ts +0 -12
  184. package/dist/src/utils/process-identity.d.ts +0 -11
  185. package/dist/src/utils/remote-config.d.ts +0 -15
  186. package/dist/src/utils/remote-open.d.ts +0 -9
  187. package/dist/src/utils/retry.d.ts +0 -54
  188. package/dist/src/utils/screenshot-diff.d.ts +0 -23
  189. package/dist/src/utils/session-binding.d.ts +0 -18
  190. package/dist/src/utils/snapshot-lines.d.ts +0 -15
  191. package/dist/src/utils/snapshot.d.ts +0 -49
  192. package/dist/src/utils/text-surface.d.ts +0 -19
  193. package/dist/src/utils/timeouts.d.ts +0 -3
  194. package/dist/src/utils/version.d.ts +0 -2
  195. package/dist/src/utils/video.d.ts +0 -9
@@ -1,50 +0,0 @@
1
- import { dispatchCommand, resolveTargetDevice } from '../../core/dispatch.ts';
2
- import { type DeviceInfo } from '../../utils/device.ts';
3
- import type { DaemonRequest, DaemonResponse } from '../types.ts';
4
- import { SessionStore } from '../session-store.ts';
5
- import { ensureDeviceReady } from '../device-ready.ts';
6
- import { stopIosRunnerSession } from '../../platforms/ios/runner-client.ts';
7
- import { shutdownSimulator } from '../../platforms/ios/simulator.ts';
8
- import { startAppLog, stopAppLog } from '../app-log.ts';
9
- import { applyRuntimeHintsToApp, clearRuntimeHintsFromApp } from '../runtime-hints.ts';
10
- import { settleIosSimulator } from './session-device-utils.ts';
11
- import { type ShutdownAndroidEmulatorFn } from './session-close.ts';
12
- import { type InstallOps, type ReinstallOps } from './session-deploy.ts';
13
- type EnsureAndroidEmulatorBoot = (params: {
14
- avdName: string;
15
- serial?: string;
16
- headless?: boolean;
17
- }) => Promise<DeviceInfo>;
18
- type ListAndroidDevices = typeof import('../../platforms/android/devices.ts').listAndroidDevices;
19
- type ListAppleDevices = typeof import('../../platforms/ios/devices.ts').listAppleDevices;
20
- export declare function handleSessionCommands(params: {
21
- req: DaemonRequest;
22
- sessionName: string;
23
- logPath: string;
24
- sessionStore: SessionStore;
25
- invoke: (req: DaemonRequest) => Promise<DaemonResponse>;
26
- dispatch?: typeof dispatchCommand;
27
- ensureReady?: typeof ensureDeviceReady;
28
- resolveTargetDevice?: typeof resolveTargetDevice;
29
- installOps?: InstallOps;
30
- reinstallOps?: ReinstallOps;
31
- stopIosRunner?: typeof stopIosRunnerSession;
32
- appLogOps?: {
33
- start: typeof startAppLog;
34
- stop: typeof stopAppLog;
35
- };
36
- ensureAndroidEmulatorBoot?: EnsureAndroidEmulatorBoot;
37
- resolveAndroidPackageForOpen?: (device: DeviceInfo, openTarget: string | undefined) => Promise<string | undefined>;
38
- applyRuntimeHints?: typeof applyRuntimeHintsToApp;
39
- clearRuntimeHints?: typeof clearRuntimeHintsFromApp;
40
- settleSimulator?: typeof settleIosSimulator;
41
- shutdownSimulator?: typeof shutdownSimulator;
42
- shutdownAndroidEmulator?: ShutdownAndroidEmulatorFn;
43
- listAndroidDevices?: ListAndroidDevices;
44
- listAppleDevices?: ListAppleDevices;
45
- listAppleApps?: (device: DeviceInfo, filter: 'user-installed' | 'all') => Promise<Array<{
46
- bundleId: string;
47
- name?: string;
48
- }>>;
49
- }): Promise<DaemonResponse | null>;
50
- export {};
@@ -1,13 +0,0 @@
1
- import { runIosRunnerCommand } from '../../platforms/ios/runner-client.ts';
2
- import type { DaemonRequest, DaemonResponse, SessionState } from '../types.ts';
3
- import { SessionStore } from '../session-store.ts';
4
- type HandleAlertCommandParams = {
5
- req: DaemonRequest;
6
- logPath: string;
7
- sessionStore: SessionStore;
8
- session: SessionState | undefined;
9
- device: SessionState['device'];
10
- runnerCommand?: typeof runIosRunnerCommand;
11
- };
12
- export declare function handleAlertCommand(params: HandleAlertCommandParams): Promise<DaemonResponse>;
13
- export {};
@@ -1,34 +0,0 @@
1
- import { dispatchCommand, type CommandFlags } from '../../core/dispatch.ts';
2
- import { type RawSnapshotNode, type SnapshotState } from '../../utils/snapshot.ts';
3
- import type { DaemonResponse, SessionState } from '../types.ts';
4
- type CaptureSnapshotParams = {
5
- dispatchSnapshotCommand: typeof dispatchCommand;
6
- device: SessionState['device'];
7
- session: SessionState | undefined;
8
- flags: CommandFlags | undefined;
9
- outPath?: string;
10
- logPath: string;
11
- snapshotScope?: string;
12
- };
13
- type SnapshotData = {
14
- nodes?: RawSnapshotNode[];
15
- truncated?: boolean;
16
- backend?: 'xctest' | 'android' | 'macos-helper';
17
- };
18
- export declare function captureSnapshot(params: CaptureSnapshotParams): Promise<{
19
- snapshot: SnapshotState;
20
- }>;
21
- export declare function captureSnapshotData(params: CaptureSnapshotParams): Promise<SnapshotData>;
22
- export declare function buildSnapshotState(data: {
23
- nodes?: RawSnapshotNode[];
24
- truncated?: boolean;
25
- backend?: 'xctest' | 'android' | 'macos-helper';
26
- }, snapshotRaw: boolean | undefined): SnapshotState;
27
- export declare function resolveSnapshotScope(snapshotScope: string | undefined, session: SessionState | undefined): {
28
- ok: true;
29
- scope?: string;
30
- } | {
31
- ok: false;
32
- response: DaemonResponse;
33
- };
34
- export {};
@@ -1,15 +0,0 @@
1
- import type { DaemonRequest, SessionState } from '../types.ts';
2
- import { SessionStore } from '../session-store.ts';
3
- export declare function resolveSessionDevice(sessionStore: SessionStore, sessionName: string, flags: DaemonRequest['flags']): Promise<{
4
- session: SessionState | undefined;
5
- device: import("../../utils/device.ts").DeviceInfo;
6
- }>;
7
- export declare function withSessionlessRunnerCleanup<T>(session: SessionState | undefined, device: SessionState['device'], task: () => Promise<T>): Promise<T>;
8
- export declare function recordIfSession(sessionStore: SessionStore, session: SessionState | undefined, req: DaemonRequest, result: Record<string, unknown>): void;
9
- export declare function buildSnapshotSession(params: {
10
- session: SessionState | undefined;
11
- sessionName: string;
12
- device: SessionState['device'];
13
- snapshot: SessionState['snapshot'];
14
- appBundleId?: string;
15
- }): SessionState;
@@ -1,24 +0,0 @@
1
- import { SessionStore } from '../session-store.ts';
2
- import type { DaemonRequest, DaemonResponse, SessionState } from '../types.ts';
3
- type ParsedSettingsArgs = {
4
- setting: string;
5
- state: string;
6
- permissionTarget?: string;
7
- };
8
- type HandleSettingsCommandParams = {
9
- req: DaemonRequest;
10
- logPath: string;
11
- sessionStore: SessionStore;
12
- session: SessionState | undefined;
13
- device: SessionState['device'];
14
- parsed: ParsedSettingsArgs;
15
- };
16
- export declare function parseSettingsArgs(req: DaemonRequest): {
17
- ok: true;
18
- parsed: ParsedSettingsArgs;
19
- } | {
20
- ok: false;
21
- response: DaemonResponse;
22
- };
23
- export declare function handleSettingsCommand(params: HandleSettingsCommandParams): Promise<DaemonResponse>;
24
- export {};
@@ -1,37 +0,0 @@
1
- import { dispatchCommand } from '../../core/dispatch.ts';
2
- import { runIosRunnerCommand } from '../../platforms/ios/runner-client.ts';
3
- import { SessionStore } from '../session-store.ts';
4
- import { type SelectorChain } from '../selectors.ts';
5
- import type { DaemonRequest, DaemonResponse, SessionState } from '../types.ts';
6
- export type WaitParsed = {
7
- kind: 'sleep';
8
- durationMs: number;
9
- } | {
10
- kind: 'ref';
11
- rawRef: string;
12
- timeoutMs: number | null;
13
- } | {
14
- kind: 'selector';
15
- selector: SelectorChain;
16
- selectorExpression: string;
17
- timeoutMs: number | null;
18
- } | {
19
- kind: 'text';
20
- text: string;
21
- timeoutMs: number | null;
22
- };
23
- export declare function parseWaitArgs(args: string[]): WaitParsed | null;
24
- type HandleWaitCommandParams = {
25
- parsed: WaitParsed;
26
- req: DaemonRequest;
27
- sessionName: string;
28
- logPath: string;
29
- sessionStore: SessionStore;
30
- session: SessionState | undefined;
31
- device: SessionState['device'];
32
- dispatchSnapshotCommand?: typeof dispatchCommand;
33
- runnerCommand?: typeof runIosRunnerCommand;
34
- };
35
- export declare function waitNeedsRunnerCleanup(parsed: WaitParsed): boolean;
36
- export declare function handleWaitCommand(params: HandleWaitCommandParams): Promise<DaemonResponse>;
37
- export {};
@@ -1,16 +0,0 @@
1
- import { dispatchCommand } from '../../core/dispatch.ts';
2
- import { runIosRunnerCommand } from '../../platforms/ios/runner-client.ts';
3
- import type { DaemonRequest, DaemonResponse } from '../types.ts';
4
- import { SessionStore } from '../session-store.ts';
5
- import { withSessionlessRunnerCleanup } from './snapshot-session.ts';
6
- import { parseWaitArgs } from './snapshot-wait.ts';
7
- export { parseWaitArgs };
8
- export declare function handleSnapshotCommands(params: {
9
- req: DaemonRequest;
10
- sessionName: string;
11
- logPath: string;
12
- sessionStore: SessionStore;
13
- dispatchSnapshotCommand?: typeof dispatchCommand;
14
- runnerCommand?: typeof runIosRunnerCommand;
15
- sessionlessRunnerCleanup?: typeof withSessionlessRunnerCleanup;
16
- }): Promise<DaemonResponse | null>;
@@ -1,26 +0,0 @@
1
- import http, { type IncomingHttpHeaders } from 'node:http';
2
- import type { DaemonRequest, DaemonResponse } from './types.ts';
3
- type JsonRpcRequest = {
4
- jsonrpc?: string;
5
- id?: string | number | null;
6
- method?: string;
7
- params?: unknown;
8
- };
9
- export type HttpAuthHookContext = {
10
- headers: IncomingHttpHeaders;
11
- rpcRequest: JsonRpcRequest;
12
- daemonRequest: DaemonRequest;
13
- };
14
- export type HttpAuthHookResult = boolean | void | {
15
- ok?: boolean;
16
- tenantId?: string;
17
- code?: string;
18
- message?: string;
19
- details?: Record<string, unknown>;
20
- };
21
- export type HttpAuthHook = (context: HttpAuthHookContext) => Promise<HttpAuthHookResult> | HttpAuthHookResult;
22
- export declare function createDaemonHttpServer(options: {
23
- handleRequest: (req: DaemonRequest) => Promise<DaemonResponse>;
24
- token?: string;
25
- }): Promise<http.Server>;
26
- export {};
@@ -1,5 +0,0 @@
1
- import type { DaemonInstallSource, DaemonRequest } from './types.ts';
2
- export declare function resolveInstallSource(req: DaemonRequest): {
3
- source: DaemonInstallSource;
4
- cleanup: () => void;
5
- };
@@ -1,15 +0,0 @@
1
- import type { Platform } from '../utils/device.ts';
2
- import type { SnapshotState } from '../utils/snapshot.ts';
3
- type IsPredicate = 'visible' | 'hidden' | 'exists' | 'editable' | 'selected' | 'text';
4
- export declare function isSupportedPredicate(input: string): input is IsPredicate;
5
- export declare function evaluateIsPredicate(params: {
6
- predicate: Exclude<IsPredicate, 'exists'>;
7
- node: SnapshotState['nodes'][number];
8
- expectedText?: string;
9
- platform: Platform;
10
- }): {
11
- pass: boolean;
12
- actualText: string;
13
- details: string;
14
- };
15
- export {};
@@ -1,9 +0,0 @@
1
- import type { DaemonRequest } from './types.ts';
2
- export type LeaseScope = {
3
- tenantId?: string;
4
- runId?: string;
5
- leaseId?: string;
6
- leaseTtlMs?: number;
7
- leaseBackend?: 'ios-simulator';
8
- };
9
- export declare function resolveLeaseScope(req: Pick<DaemonRequest, 'flags' | 'meta'>): LeaseScope;
@@ -1,63 +0,0 @@
1
- export type LeaseBackend = 'ios-simulator';
2
- export type SimulatorLease = {
3
- leaseId: string;
4
- tenantId: string;
5
- runId: string;
6
- backend: LeaseBackend;
7
- createdAt: number;
8
- heartbeatAt: number;
9
- expiresAt: number;
10
- };
11
- export type LeaseRegistryOptions = {
12
- maxActiveSimulatorLeases?: number;
13
- defaultLeaseTtlMs?: number;
14
- minLeaseTtlMs?: number;
15
- maxLeaseTtlMs?: number;
16
- now?: () => number;
17
- };
18
- export type AllocateLeaseRequest = {
19
- tenantId: string;
20
- runId: string;
21
- backend?: LeaseBackend;
22
- ttlMs?: number;
23
- };
24
- export type HeartbeatLeaseRequest = {
25
- leaseId: string;
26
- tenantId?: string;
27
- runId?: string;
28
- ttlMs?: number;
29
- };
30
- export type ReleaseLeaseRequest = {
31
- leaseId: string;
32
- tenantId?: string;
33
- runId?: string;
34
- };
35
- export type AdmissionRequest = {
36
- tenantId: string | undefined;
37
- runId: string | undefined;
38
- leaseId: string | undefined;
39
- backend?: LeaseBackend;
40
- };
41
- export declare class LeaseRegistry {
42
- private readonly leases;
43
- private readonly runBindings;
44
- private readonly maxActiveSimulatorLeases;
45
- private readonly defaultLeaseTtlMs;
46
- private readonly minLeaseTtlMs;
47
- private readonly maxLeaseTtlMs;
48
- private readonly now;
49
- constructor(options?: LeaseRegistryOptions);
50
- allocateLease(request: AllocateLeaseRequest): SimulatorLease;
51
- heartbeatLease(request: HeartbeatLeaseRequest): SimulatorLease;
52
- releaseLease(request: ReleaseLeaseRequest): {
53
- released: boolean;
54
- };
55
- assertLeaseAdmission(request: AdmissionRequest): void;
56
- listActiveLeases(): SimulatorLease[];
57
- private cleanupExpiredLeases;
58
- private enforceCapacity;
59
- private resolveLeaseTtlMs;
60
- private refreshLease;
61
- private bindingKey;
62
- private assertOptionalScopeMatch;
63
- }
@@ -1,15 +0,0 @@
1
- export type RetainedMaterializedPaths = {
2
- materializationId: string;
3
- installablePath: string;
4
- archivePath?: string;
5
- expiresAt: string;
6
- };
7
- export declare function retainMaterializedPaths(params: {
8
- installablePath: string;
9
- archivePath?: string;
10
- tenantId?: string;
11
- sessionName?: string;
12
- ttlMs?: number;
13
- }): Promise<RetainedMaterializedPaths>;
14
- export declare function cleanupRetainedMaterializedPaths(materializationId: string, tenantId?: string): Promise<void>;
15
- export declare function cleanupRetainedMaterializedPathsForSession(sessionName: string): Promise<void>;
@@ -1,32 +0,0 @@
1
- type NetworkIncludeMode = 'summary' | 'headers' | 'body' | 'all';
2
- export type NetworkEntry = {
3
- method?: string;
4
- url: string;
5
- status?: number;
6
- timestamp?: string;
7
- headers?: string;
8
- requestBody?: string;
9
- responseBody?: string;
10
- raw: string;
11
- line: number;
12
- };
13
- export type NetworkDump = {
14
- path: string;
15
- exists: boolean;
16
- scannedLines: number;
17
- matchedLines: number;
18
- entries: NetworkEntry[];
19
- include: NetworkIncludeMode;
20
- limits: {
21
- maxEntries: number;
22
- maxPayloadChars: number;
23
- maxScanLines: number;
24
- };
25
- };
26
- export declare function readRecentNetworkTraffic(logPath: string, options?: {
27
- maxEntries?: number;
28
- include?: NetworkIncludeMode;
29
- maxPayloadChars?: number;
30
- maxScanLines?: number;
31
- }): NetworkDump;
32
- export {};
@@ -1,6 +0,0 @@
1
- export declare function formatRecordTraceError(error: unknown): string;
2
- export declare function formatRecordTraceExecFailure(result: {
3
- stdout: string;
4
- stderr: string;
5
- exitCode: number;
6
- }, command: string): string;
@@ -1,3 +0,0 @@
1
- import type { SessionState } from './types.ts';
2
- export declare function recordTouchVisualizationEvent(session: SessionState, command: string, positionals: string[], result: Record<string, unknown> | void, fallback?: Record<string, unknown>, startedAtMs?: number, finishedAtMs?: number): void;
3
- export declare function augmentScrollVisualizationResult(session: SessionState, command: string, positionals: string[], result: Record<string, unknown> | void): Record<string, unknown> | void;
@@ -1,20 +0,0 @@
1
- import type { RecordingGestureEvent } from './types.ts';
2
- type RecordingTelemetryState = {
3
- outPath: string;
4
- gestureEvents: RecordingGestureEvent[];
5
- telemetryPath?: string;
6
- };
7
- export declare function deriveRecordingTelemetryPath(videoPath: string): string;
8
- export declare function trimRecordingTelemetryEvents(events: RecordingGestureEvent[], trimStartMs: number): RecordingGestureEvent[];
9
- export declare function normalizeRecordingTelemetryEvents(events: RecordingGestureEvent[]): RecordingGestureEvent[];
10
- export declare function writeRecordingTelemetry(params: {
11
- videoPath: string;
12
- events: RecordingGestureEvent[];
13
- trimStartMs?: number;
14
- }): string;
15
- export declare function persistRecordingTelemetry(params: {
16
- recording: RecordingTelemetryState;
17
- trimStartMs?: number;
18
- writeTelemetry?: typeof writeRecordingTelemetry;
19
- }): string;
20
- export {};
@@ -1,24 +0,0 @@
1
- type GestureTimingSource = {
2
- recordingStartedAt: number;
3
- gestureClockOriginAtMs?: number;
4
- gestureClockOriginUptimeMs?: number;
5
- runnerStartedAtUptimeMs?: number;
6
- gestureStartUptimeMs?: number;
7
- gestureEndUptimeMs?: number;
8
- fallbackStartedAtMs: number;
9
- fallbackFinishedAtMs: number;
10
- };
11
- type GestureDurationSource = {
12
- gestureStartUptimeMs?: number;
13
- gestureEndUptimeMs?: number;
14
- reportedDurationMs?: number;
15
- fallbackStartedAtMs: number;
16
- fallbackFinishedAtMs: number;
17
- };
18
- type TapVisualizationOffsetSource = GestureTimingSource & {
19
- gestureDurationMs: number;
20
- };
21
- export declare function resolveGestureOffsetMs(source: GestureTimingSource): number;
22
- export declare function resolveGestureDurationMs(source: GestureDurationSource): number;
23
- export declare function resolveTapVisualizationOffsetMs(source: TapVisualizationOffsetSource): number;
24
- export {};
@@ -1,9 +0,0 @@
1
- import { AppError } from '../utils/errors.ts';
2
- export declare function resolveRequestTrackingId(requestId: string | undefined, fallbackSeed?: unknown): string;
3
- export declare function registerRequestAbort(requestId: string | undefined): void;
4
- export declare function markRequestCanceled(requestId: string | undefined): void;
5
- export declare function clearRequestCanceled(requestId: string | undefined): void;
6
- export declare function isRequestCanceled(requestId: string | undefined): boolean;
7
- export declare function getRequestSignal(requestId: string | undefined): AbortSignal | undefined;
8
- export declare function createRequestCanceledError(): AppError;
9
- export declare function isRequestCanceledError(error: unknown): boolean;
@@ -1,2 +0,0 @@
1
- import type { SessionState, DaemonRequest } from './types.ts';
2
- export declare function applyRequestLockPolicy(req: DaemonRequest, existingSession?: SessionState): DaemonRequest;
@@ -1,23 +0,0 @@
1
- import { dispatchCommand } from '../core/dispatch.ts';
2
- import type { DaemonRequest, DaemonResponse } from './types.ts';
3
- import { SessionStore } from './session-store.ts';
4
- import type { LeaseRegistry } from './lease-registry.ts';
5
- import { snapshotAndroid, openAndroidApp, getAndroidAppState } from '../platforms/android/index.ts';
6
- import { runCmd } from '../utils/exec.ts';
7
- export type RequestRouterDeps = {
8
- logPath: string;
9
- token: string;
10
- sessionStore: SessionStore;
11
- leaseRegistry: LeaseRegistry;
12
- trackDownloadableArtifact: (opts: {
13
- artifactPath: string;
14
- tenantId?: string;
15
- fileName?: string;
16
- }) => string;
17
- dispatchCommand?: typeof dispatchCommand;
18
- snapshotAndroidUi?: typeof snapshotAndroid;
19
- reopenAndroidApp?: typeof openAndroidApp;
20
- readAndroidAppState?: typeof getAndroidAppState;
21
- execCommand?: typeof runCmd;
22
- };
23
- export declare function createRequestHandler(deps: RequestRouterDeps): (req: DaemonRequest) => Promise<DaemonResponse>;
@@ -1,19 +0,0 @@
1
- import type { DeviceInfo } from '../utils/device.ts';
2
- import type { SessionRuntimeHints } from './types.ts';
3
- type ResolvedRuntimeTransport = {
4
- host: string;
5
- port: number;
6
- scheme: 'http' | 'https';
7
- };
8
- export declare function hasRuntimeTransportHints(runtime: SessionRuntimeHints | undefined): boolean;
9
- export declare function resolveRuntimeTransportHints(runtime: SessionRuntimeHints | undefined): ResolvedRuntimeTransport | undefined;
10
- export declare function applyRuntimeHintsToApp(params: {
11
- device: DeviceInfo;
12
- appId?: string;
13
- runtime: SessionRuntimeHints | undefined;
14
- }): Promise<void>;
15
- export declare function clearRuntimeHintsFromApp(params: {
16
- device: DeviceInfo;
17
- appId?: string;
18
- }): Promise<void>;
19
- export {};
@@ -1,28 +0,0 @@
1
- import type { SessionAction } from './types.ts';
2
- export declare function isClickLikeCommand(command: string): command is 'click' | 'press';
3
- export declare function formatScriptArg(value: string): string;
4
- export declare function formatScriptArgQuoteIfNeeded(value: string): string;
5
- export declare function formatScriptActionSummary(action: SessionAction): string;
6
- export declare function appendScriptSeriesFlags(parts: string[], action: Pick<SessionAction, 'command' | 'flags'>): void;
7
- export declare function appendRuntimeHintFlags(parts: string[], flags: Pick<SessionAction, 'flags'>['flags'] | {
8
- platform?: 'ios' | 'android';
9
- metroHost?: string;
10
- metroPort?: number;
11
- bundleUrl?: string;
12
- launchUrl?: string;
13
- } | undefined): void;
14
- export declare function appendRecordActionScriptArgs(parts: string[], action: SessionAction): void;
15
- export declare function parseReplaySeriesFlags(command: string, args: string[]): {
16
- positionals: string[];
17
- flags: SessionAction['flags'];
18
- };
19
- export declare function parseReplayRuntimeFlags(args: string[]): {
20
- positionals: string[];
21
- flags: {
22
- platform?: 'ios' | 'android';
23
- metroHost?: string;
24
- metroPort?: number;
25
- bundleUrl?: string;
26
- launchUrl?: string;
27
- };
28
- };
@@ -1,12 +0,0 @@
1
- import { type RawSnapshotNode, type Rect } from '../utils/snapshot.ts';
2
- type ScrollIntoViewPlan = {
3
- x: number;
4
- startY: number;
5
- endY: number;
6
- count: number;
7
- direction: 'up' | 'down';
8
- };
9
- export declare function resolveViewportRect(nodes: RawSnapshotNode[], targetRect: Rect): Rect | null;
10
- export declare function buildScrollIntoViewPlan(targetRect: Rect, viewportRect: Rect): ScrollIntoViewPlan | null;
11
- export declare function isRectWithinSafeViewportBand(targetRect: Rect, viewportRect: Rect): boolean;
12
- export {};
@@ -1,5 +0,0 @@
1
- import type { Platform } from '../utils/device.ts';
2
- import type { SnapshotNode } from '../utils/snapshot.ts';
3
- export declare function buildSelectorChainForNode(node: SnapshotNode, _platform: Platform, options?: {
4
- action?: 'click' | 'fill' | 'get';
5
- }): string[];
@@ -1,6 +0,0 @@
1
- import type { Platform } from '../utils/device.ts';
2
- import type { SnapshotNode } from '../utils/snapshot.ts';
3
- import type { Selector } from './selectors-parse.ts';
4
- export declare function matchesSelector(node: SnapshotNode, selector: Selector, platform: Platform): boolean;
5
- export declare function isNodeVisible(node: SnapshotNode): boolean;
6
- export declare function isNodeEditable(node: SnapshotNode, platform: Platform): boolean;
@@ -1,29 +0,0 @@
1
- export type SelectorKey = 'id' | 'role' | 'text' | 'label' | 'value' | 'visible' | 'hidden' | 'editable' | 'selected' | 'enabled' | 'hittable';
2
- export type SelectorTerm = {
3
- key: SelectorKey;
4
- value: string | boolean;
5
- };
6
- export type Selector = {
7
- raw: string;
8
- terms: SelectorTerm[];
9
- };
10
- export type SelectorChain = {
11
- raw: string;
12
- selectors: Selector[];
13
- };
14
- export declare function parseSelectorChain(expression: string): SelectorChain;
15
- export declare function tryParseSelectorChain(expression: string): SelectorChain | null;
16
- export declare function isSelectorToken(token: string): boolean;
17
- export declare function splitSelectorFromArgs(args: string[], options?: {
18
- preferTrailingValue?: boolean;
19
- }): {
20
- selectorExpression: string;
21
- rest: string[];
22
- } | null;
23
- export declare function splitIsSelectorArgs(positionals: string[]): {
24
- predicate: string;
25
- split: {
26
- selectorExpression: string;
27
- rest: string[];
28
- } | null;
29
- };
@@ -1,33 +0,0 @@
1
- import type { Platform } from '../utils/device.ts';
2
- import type { SnapshotNode, SnapshotState } from '../utils/snapshot.ts';
3
- import type { Selector, SelectorChain } from './selectors-parse.ts';
4
- export type SelectorDiagnostics = {
5
- selector: string;
6
- matches: number;
7
- };
8
- type SelectorResolution = {
9
- node: SnapshotNode;
10
- selector: Selector;
11
- selectorIndex: number;
12
- matches: number;
13
- diagnostics: SelectorDiagnostics[];
14
- };
15
- export declare function resolveSelectorChain(nodes: SnapshotState['nodes'], chain: SelectorChain, options: {
16
- platform: Platform;
17
- requireRect?: boolean;
18
- requireUnique?: boolean;
19
- disambiguateAmbiguous?: boolean;
20
- }): SelectorResolution | null;
21
- export declare function findSelectorChainMatch(nodes: SnapshotState['nodes'], chain: SelectorChain, options: {
22
- platform: Platform;
23
- requireRect?: boolean;
24
- }): {
25
- selectorIndex: number;
26
- selector: Selector;
27
- matches: number;
28
- diagnostics: SelectorDiagnostics[];
29
- } | null;
30
- export declare function formatSelectorFailure(chain: SelectorChain, diagnostics: SelectorDiagnostics[], options: {
31
- unique?: boolean;
32
- }): string;
33
- export {};
@@ -1,5 +0,0 @@
1
- export type { SelectorChain } from './selectors-parse.ts';
2
- export { parseSelectorChain, tryParseSelectorChain, isSelectorToken, splitSelectorFromArgs, splitIsSelectorArgs, } from './selectors-parse.ts';
3
- export { isNodeVisible, isNodeEditable } from './selectors-match.ts';
4
- export { resolveSelectorChain, findSelectorChainMatch, formatSelectorFailure, } from './selectors-resolve.ts';
5
- export { buildSelectorChainForNode } from './selectors-build.ts';
@@ -1,23 +0,0 @@
1
- import { readVersion } from '../utils/version.ts';
2
- import { readProcessStartTime } from '../utils/process-identity.ts';
3
- export type DaemonLockInfo = {
4
- pid: number;
5
- version: string;
6
- startedAt: number;
7
- processStartTime?: string;
8
- };
9
- export declare function resolveDaemonCodeSignature(): string;
10
- export declare function writeInfo(baseDir: string, infoPath: string, logPath: string, opts: {
11
- socketPort?: number;
12
- httpPort?: number;
13
- token: string;
14
- version: string;
15
- codeSignature: string;
16
- processStartTime: string | undefined;
17
- }): void;
18
- export declare function removeInfo(infoPath: string): void;
19
- export declare function readLockInfo(lockPath: string): DaemonLockInfo | null;
20
- export declare function acquireDaemonLock(baseDir: string, lockPath: string, lockData: DaemonLockInfo): boolean;
21
- export declare function releaseDaemonLock(lockPath: string): void;
22
- export declare function parseIntegerEnv(raw: string | undefined): number | undefined;
23
- export { readVersion, readProcessStartTime };
@@ -1,7 +0,0 @@
1
- import type { SessionAction } from './types.ts';
2
- export declare function appendOpenActionScriptArgs(parts: string[], action: Pick<SessionAction, 'positionals' | 'flags' | 'runtime'>): void;
3
- export declare function parseReplayOpenFlags(args: string[]): {
4
- positionals: string[];
5
- flags: SessionAction['flags'];
6
- runtime?: SessionAction['runtime'];
7
- };