claude-in-mobile 3.13.0 → 4.0.0-dev
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.
- package/README.md +61 -574
- package/dist/a11y/types.d.ts +1 -1
- package/dist/a11y/types.d.ts.map +1 -1
- package/dist/adapters/contracts.d.ts +66 -0
- package/dist/adapters/contracts.d.ts.map +1 -0
- package/dist/adapters/contracts.js +15 -0
- package/dist/adapters/contracts.js.map +1 -0
- package/dist/adapters/index.d.ts +0 -5
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +1 -5
- package/dist/adapters/index.js.map +1 -1
- package/dist/autopilot/explorer.js +1 -1
- package/dist/autopilot/explorer.js.map +1 -1
- package/dist/autopilot/healer.d.ts +1 -1
- package/dist/autopilot/healer.d.ts.map +1 -1
- package/dist/autopilot/screen-fingerprint.d.ts +1 -1
- package/dist/autopilot/screen-fingerprint.d.ts.map +1 -1
- package/dist/autopilot/types.d.ts +1 -1
- package/dist/autopilot/types.d.ts.map +1 -1
- package/dist/device/client-cache.d.ts +1 -1
- package/dist/device/client-cache.d.ts.map +1 -1
- package/dist/device/client-cache.js +4 -24
- package/dist/device/client-cache.js.map +1 -1
- package/dist/device/proxies/desktop-facade.d.ts +5 -8
- package/dist/device/proxies/desktop-facade.d.ts.map +1 -1
- package/dist/device/proxies/desktop-facade.js +12 -14
- package/dist/device/proxies/desktop-facade.js.map +1 -1
- package/dist/device-manager.d.ts +16 -16
- package/dist/device-manager.d.ts.map +1 -1
- package/dist/device-manager.js +23 -17
- package/dist/device-manager.js.map +1 -1
- package/dist/index.js +21 -6
- package/dist/index.js.map +1 -1
- package/dist/perf/collector.d.ts +5 -5
- package/dist/perf/collector.d.ts.map +1 -1
- package/dist/perf/collector.js.map +1 -1
- package/dist/plugins/repl/client.d.ts +15 -1
- package/dist/plugins/repl/client.d.ts.map +1 -1
- package/dist/plugins/repl/client.js +65 -8
- package/dist/plugins/repl/client.js.map +1 -1
- package/dist/plugins/repl/index.d.ts +2 -0
- package/dist/plugins/repl/index.d.ts.map +1 -1
- package/dist/plugins/repl/index.js +22 -3
- package/dist/plugins/repl/index.js.map +1 -1
- package/dist/plugins/repl/types.d.ts +6 -0
- package/dist/plugins/repl/types.d.ts.map +1 -1
- package/dist/runtime/bootstrap.d.ts +7 -0
- package/dist/runtime/bootstrap.d.ts.map +1 -1
- package/dist/runtime/bootstrap.js +87 -15
- package/dist/runtime/bootstrap.js.map +1 -1
- package/dist/runtime/cli.d.ts.map +1 -1
- package/dist/runtime/cli.js +14 -0
- package/dist/runtime/cli.js.map +1 -1
- package/dist/runtime/platform-cli.d.ts +24 -0
- package/dist/runtime/platform-cli.d.ts.map +1 -0
- package/dist/runtime/platform-cli.js +116 -0
- package/dist/runtime/platform-cli.js.map +1 -0
- package/dist/runtime/platform-config.d.ts +21 -0
- package/dist/runtime/platform-config.d.ts.map +1 -0
- package/dist/runtime/platform-config.js +71 -0
- package/dist/runtime/platform-config.js.map +1 -0
- package/dist/tools/browser-tools.js.map +1 -1
- package/dist/tools/clipboard-tools.js +1 -1
- package/dist/tools/clipboard-tools.js.map +1 -1
- package/dist/tools/context/hints.d.ts +1 -1
- package/dist/tools/context/hints.d.ts.map +1 -1
- package/dist/tools/context/hints.js +1 -1
- package/dist/tools/context/hints.js.map +1 -1
- package/dist/tools/context/ios-helpers.d.ts +1 -1
- package/dist/tools/context/ios-helpers.d.ts.map +1 -1
- package/dist/tools/context/shared-state-class.d.ts +1 -1
- package/dist/tools/context/shared-state-class.d.ts.map +1 -1
- package/dist/tools/context/shared-state.d.ts +1 -1
- package/dist/tools/context/shared-state.d.ts.map +1 -1
- package/dist/tools/context.d.ts +2 -1
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +17 -9
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/desktop-tools.d.ts.map +1 -1
- package/dist/tools/desktop-tools.js.map +1 -1
- package/dist/tools/flow/common.js +1 -1
- package/dist/tools/flow/common.js.map +1 -1
- package/dist/tools/flow/run.js +1 -1
- package/dist/tools/flow/run.js.map +1 -1
- package/dist/tools/helpers/get-elements.d.ts +1 -1
- package/dist/tools/helpers/get-elements.d.ts.map +1 -1
- package/dist/tools/helpers/get-elements.js +1 -1
- package/dist/tools/helpers/get-elements.js.map +1 -1
- package/dist/tools/helpers/resolve-element.js +1 -1
- package/dist/tools/helpers/resolve-element.js.map +1 -1
- package/dist/tools/screenshot-tools.js +1 -1
- package/dist/tools/screenshot-tools.js.map +1 -1
- package/dist/tools/ui/analyze.js +1 -1
- package/dist/tools/ui/analyze.js.map +1 -1
- package/dist/tools/ui/assert.js +1 -1
- package/dist/tools/ui/assert.js.map +1 -1
- package/dist/tools/ui/find.js +1 -1
- package/dist/tools/ui/find.js.map +1 -1
- package/dist/tools/ui/tree.js +1 -1
- package/dist/tools/ui/tree.js.map +1 -1
- package/dist/tools/ui/wait.js +1 -1
- package/dist/tools/ui/wait.js.map +1 -1
- package/dist/ui-tree/ui-parser/diff-engine.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/diff-engine.js.map +1 -0
- package/dist/ui-tree/ui-parser/element-builder.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/element-builder.js.map +1 -0
- package/dist/ui-tree/ui-parser/element-finders.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/element-finders.js.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/compact.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/compact.js.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/full.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/full.js.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/index.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/index.js.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/semantic.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/formatters/semantic.js.map +1 -0
- package/dist/ui-tree/ui-parser/node-parser.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/node-parser.js.map +1 -0
- package/dist/ui-tree/ui-parser/screen-analyzer.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/screen-analyzer.js.map +1 -0
- package/dist/ui-tree/ui-parser/types.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser/types.js.map +1 -0
- package/dist/ui-tree/ui-parser.d.ts.map +1 -0
- package/dist/ui-tree/ui-parser.js.map +1 -0
- package/dist/ui-tree/ui-scoring.d.ts.map +1 -0
- package/dist/ui-tree/ui-scoring.js.map +1 -0
- package/dist/ui-tree/ui-tree-cache.d.ts.map +1 -0
- package/dist/ui-tree/ui-tree-cache.js.map +1 -0
- package/dist/utils/image/annotate.d.ts +1 -1
- package/dist/utils/image/annotate.d.ts.map +1 -1
- package/package.json +11 -6
- package/dist/adapters/android-adapter.d.ts +0 -64
- package/dist/adapters/android-adapter.d.ts.map +0 -1
- package/dist/adapters/android-adapter.js +0 -164
- package/dist/adapters/android-adapter.js.map +0 -1
- package/dist/adapters/aurora-adapter.d.ts +0 -56
- package/dist/adapters/aurora-adapter.d.ts.map +0 -1
- package/dist/adapters/aurora-adapter.js +0 -118
- package/dist/adapters/aurora-adapter.js.map +0 -1
- package/dist/adapters/browser-adapter.d.ts +0 -51
- package/dist/adapters/browser-adapter.d.ts.map +0 -1
- package/dist/adapters/browser-adapter.js +0 -223
- package/dist/adapters/browser-adapter.js.map +0 -1
- package/dist/adapters/desktop-adapter.d.ts +0 -64
- package/dist/adapters/desktop-adapter.d.ts.map +0 -1
- package/dist/adapters/desktop-adapter.js +0 -202
- package/dist/adapters/desktop-adapter.js.map +0 -1
- package/dist/adapters/ios-adapter.d.ts +0 -60
- package/dist/adapters/ios-adapter.d.ts.map +0 -1
- package/dist/adapters/ios-adapter.js +0 -146
- package/dist/adapters/ios-adapter.js.map +0 -1
- package/dist/adb/client.d.ts +0 -238
- package/dist/adb/client.d.ts.map +0 -1
- package/dist/adb/client.js +0 -462
- package/dist/adb/client.js.map +0 -1
- package/dist/adb/exec.d.ts +0 -23
- package/dist/adb/exec.d.ts.map +0 -1
- package/dist/adb/exec.js +0 -98
- package/dist/adb/exec.js.map +0 -1
- package/dist/adb/index.d.ts +0 -5
- package/dist/adb/index.d.ts.map +0 -1
- package/dist/adb/index.js +0 -3
- package/dist/adb/index.js.map +0 -1
- package/dist/adb/keycodes.d.ts +0 -22
- package/dist/adb/keycodes.d.ts.map +0 -1
- package/dist/adb/keycodes.js +0 -69
- package/dist/adb/keycodes.js.map +0 -1
- package/dist/adb/logcat.d.ts +0 -23
- package/dist/adb/logcat.d.ts.map +0 -1
- package/dist/adb/logcat.js +0 -40
- package/dist/adb/logcat.js.map +0 -1
- package/dist/adb/parsers.d.ts +0 -60
- package/dist/adb/parsers.d.ts.map +0 -1
- package/dist/adb/parsers.js +0 -118
- package/dist/adb/parsers.js.map +0 -1
- package/dist/adb/resolver.d.ts +0 -24
- package/dist/adb/resolver.d.ts.map +0 -1
- package/dist/adb/resolver.js +0 -130
- package/dist/adb/resolver.js.map +0 -1
- package/dist/adb/text-escape.d.ts +0 -23
- package/dist/adb/text-escape.d.ts.map +0 -1
- package/dist/adb/text-escape.js +0 -41
- package/dist/adb/text-escape.js.map +0 -1
- package/dist/adb/ui-parser/diff-engine.d.ts.map +0 -1
- package/dist/adb/ui-parser/diff-engine.js.map +0 -1
- package/dist/adb/ui-parser/element-builder.d.ts.map +0 -1
- package/dist/adb/ui-parser/element-builder.js.map +0 -1
- package/dist/adb/ui-parser/element-finders.d.ts.map +0 -1
- package/dist/adb/ui-parser/element-finders.js.map +0 -1
- package/dist/adb/ui-parser/formatters/compact.d.ts.map +0 -1
- package/dist/adb/ui-parser/formatters/compact.js.map +0 -1
- package/dist/adb/ui-parser/formatters/full.d.ts.map +0 -1
- package/dist/adb/ui-parser/formatters/full.js.map +0 -1
- package/dist/adb/ui-parser/formatters/index.d.ts.map +0 -1
- package/dist/adb/ui-parser/formatters/index.js.map +0 -1
- package/dist/adb/ui-parser/formatters/semantic.d.ts.map +0 -1
- package/dist/adb/ui-parser/formatters/semantic.js.map +0 -1
- package/dist/adb/ui-parser/node-parser.d.ts.map +0 -1
- package/dist/adb/ui-parser/node-parser.js.map +0 -1
- package/dist/adb/ui-parser/screen-analyzer.d.ts.map +0 -1
- package/dist/adb/ui-parser/screen-analyzer.js.map +0 -1
- package/dist/adb/ui-parser/types.d.ts.map +0 -1
- package/dist/adb/ui-parser/types.js.map +0 -1
- package/dist/adb/ui-parser.d.ts.map +0 -1
- package/dist/adb/ui-parser.js.map +0 -1
- package/dist/adb/ui-scoring.d.ts.map +0 -1
- package/dist/adb/ui-scoring.js.map +0 -1
- package/dist/adb/ui-tree-cache.d.ts.map +0 -1
- package/dist/adb/ui-tree-cache.js.map +0 -1
- package/dist/adb/webview.d.ts +0 -59
- package/dist/adb/webview.d.ts.map +0 -1
- package/dist/adb/webview.js +0 -169
- package/dist/adb/webview.js.map +0 -1
- package/dist/aurora/client.d.ts +0 -180
- package/dist/aurora/client.d.ts.map +0 -1
- package/dist/aurora/client.js +0 -324
- package/dist/aurora/client.js.map +0 -1
- package/dist/aurora/index.d.ts +0 -2
- package/dist/aurora/index.d.ts.map +0 -1
- package/dist/aurora/index.js +0 -2
- package/dist/aurora/index.js.map +0 -1
- package/dist/browser/cdp-helpers.d.ts +0 -17
- package/dist/browser/cdp-helpers.d.ts.map +0 -1
- package/dist/browser/cdp-helpers.js +0 -79
- package/dist/browser/cdp-helpers.js.map +0 -1
- package/dist/browser/cdp-types.d.ts +0 -167
- package/dist/browser/cdp-types.d.ts.map +0 -1
- package/dist/browser/cdp-types.js +0 -9
- package/dist/browser/cdp-types.js.map +0 -1
- package/dist/browser/client.d.ts +0 -29
- package/dist/browser/client.d.ts.map +0 -1
- package/dist/browser/client.js +0 -391
- package/dist/browser/client.js.map +0 -1
- package/dist/browser/index.d.ts +0 -5
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js +0 -4
- package/dist/browser/index.js.map +0 -1
- package/dist/browser/key-map.d.ts +0 -16
- package/dist/browser/key-map.d.ts.map +0 -1
- package/dist/browser/key-map.js +0 -35
- package/dist/browser/key-map.js.map +0 -1
- package/dist/browser/session-manager.d.ts +0 -21
- package/dist/browser/session-manager.d.ts.map +0 -1
- package/dist/browser/session-manager.js +0 -109
- package/dist/browser/session-manager.js.map +0 -1
- package/dist/browser/snapshot-builder.d.ts +0 -4
- package/dist/browser/snapshot-builder.d.ts.map +0 -1
- package/dist/browser/snapshot-builder.js +0 -76
- package/dist/browser/snapshot-builder.js.map +0 -1
- package/dist/browser/types.d.ts +0 -75
- package/dist/browser/types.d.ts.map +0 -1
- package/dist/browser/types.js +0 -11
- package/dist/browser/types.js.map +0 -1
- package/dist/desktop/client.d.ts +0 -196
- package/dist/desktop/client.d.ts.map +0 -1
- package/dist/desktop/client.js +0 -540
- package/dist/desktop/client.js.map +0 -1
- package/dist/desktop/gradle.d.ts +0 -45
- package/dist/desktop/gradle.d.ts.map +0 -1
- package/dist/desktop/gradle.js +0 -234
- package/dist/desktop/gradle.js.map +0 -1
- package/dist/desktop/index.d.ts +0 -7
- package/dist/desktop/index.d.ts.map +0 -1
- package/dist/desktop/index.js +0 -7
- package/dist/desktop/index.js.map +0 -1
- package/dist/desktop/launch-options.d.ts +0 -13
- package/dist/desktop/launch-options.d.ts.map +0 -1
- package/dist/desktop/launch-options.js +0 -54
- package/dist/desktop/launch-options.js.map +0 -1
- package/dist/desktop/launchers.d.ts +0 -52
- package/dist/desktop/launchers.d.ts.map +0 -1
- package/dist/desktop/launchers.js +0 -125
- package/dist/desktop/launchers.js.map +0 -1
- package/dist/desktop/log-ring.d.ts +0 -21
- package/dist/desktop/log-ring.d.ts.map +0 -1
- package/dist/desktop/log-ring.js +0 -45
- package/dist/desktop/log-ring.js.map +0 -1
- package/dist/desktop/permission-allowlist.d.ts +0 -47
- package/dist/desktop/permission-allowlist.d.ts.map +0 -1
- package/dist/desktop/permission-allowlist.js +0 -148
- package/dist/desktop/permission-allowlist.js.map +0 -1
- package/dist/desktop/types.d.ts +0 -177
- package/dist/desktop/types.d.ts.map +0 -1
- package/dist/desktop/types.js +0 -5
- package/dist/desktop/types.js.map +0 -1
- package/dist/ios/client.d.ts +0 -194
- package/dist/ios/client.d.ts.map +0 -1
- package/dist/ios/client.js +0 -457
- package/dist/ios/client.js.map +0 -1
- package/dist/ios/index.d.ts +0 -2
- package/dist/ios/index.d.ts.map +0 -1
- package/dist/ios/index.js +0 -2
- package/dist/ios/index.js.map +0 -1
- package/dist/ios/keymap.d.ts +0 -20
- package/dist/ios/keymap.d.ts.map +0 -1
- package/dist/ios/keymap.js +0 -33
- package/dist/ios/keymap.js.map +0 -1
- package/dist/ios/simctl-commands.d.ts +0 -35
- package/dist/ios/simctl-commands.d.ts.map +0 -1
- package/dist/ios/simctl-commands.js +0 -60
- package/dist/ios/simctl-commands.js.map +0 -1
- package/dist/ios/simctl-exec.d.ts +0 -19
- package/dist/ios/simctl-exec.d.ts.map +0 -1
- package/dist/ios/simctl-exec.js +0 -55
- package/dist/ios/simctl-exec.js.map +0 -1
- package/dist/ios/simctl-parsers.d.ts +0 -10
- package/dist/ios/simctl-parsers.d.ts.map +0 -1
- package/dist/ios/simctl-parsers.js +0 -29
- package/dist/ios/simctl-parsers.js.map +0 -1
- package/dist/ios/types.d.ts +0 -8
- package/dist/ios/types.d.ts.map +0 -1
- package/dist/ios/types.js +0 -2
- package/dist/ios/types.js.map +0 -1
- package/dist/ios/wda/index.d.ts +0 -4
- package/dist/ios/wda/index.d.ts.map +0 -1
- package/dist/ios/wda/index.js +0 -4
- package/dist/ios/wda/index.js.map +0 -1
- package/dist/ios/wda/wda-client.d.ts +0 -27
- package/dist/ios/wda/wda-client.d.ts.map +0 -1
- package/dist/ios/wda/wda-client.js +0 -237
- package/dist/ios/wda/wda-client.js.map +0 -1
- package/dist/ios/wda/wda-manager.d.ts +0 -18
- package/dist/ios/wda/wda-manager.d.ts.map +0 -1
- package/dist/ios/wda/wda-manager.js +0 -238
- package/dist/ios/wda/wda-manager.js.map +0 -1
- package/dist/ios/wda/wda-types.d.ts +0 -39
- package/dist/ios/wda/wda-types.d.ts.map +0 -1
- package/dist/ios/wda/wda-types.js +0 -2
- package/dist/ios/wda/wda-types.js.map +0 -1
- package/dist/ios/wda-errors.d.ts +0 -8
- package/dist/ios/wda-errors.d.ts.map +0 -1
- package/dist/ios/wda-errors.js +0 -13
- package/dist/ios/wda-errors.js.map +0 -1
- package/dist/ios/wda-payloads.d.ts +0 -32
- package/dist/ios/wda-payloads.d.ts.map +0 -1
- package/dist/ios/wda-payloads.js +0 -31
- package/dist/ios/wda-payloads.js.map +0 -1
- package/dist/plugins/android/index.d.ts +0 -23
- package/dist/plugins/android/index.d.ts.map +0 -1
- package/dist/plugins/android/index.js +0 -45
- package/dist/plugins/android/index.js.map +0 -1
- package/dist/plugins/aurora/index.d.ts +0 -17
- package/dist/plugins/aurora/index.d.ts.map +0 -1
- package/dist/plugins/aurora/index.js +0 -27
- package/dist/plugins/aurora/index.js.map +0 -1
- package/dist/plugins/desktop/index.d.ts +0 -18
- package/dist/plugins/desktop/index.d.ts.map +0 -1
- package/dist/plugins/desktop/index.js +0 -28
- package/dist/plugins/desktop/index.js.map +0 -1
- package/dist/plugins/ios/index.d.ts +0 -17
- package/dist/plugins/ios/index.d.ts.map +0 -1
- package/dist/plugins/ios/index.js +0 -36
- package/dist/plugins/ios/index.js.map +0 -1
- package/dist/plugins/web/index.d.ts +0 -17
- package/dist/plugins/web/index.d.ts.map +0 -1
- package/dist/plugins/web/index.js +0 -27
- package/dist/plugins/web/index.js.map +0 -1
- /package/dist/{adb → ui-tree}/ui-parser/diff-engine.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/diff-engine.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/element-builder.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/element-builder.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/element-finders.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/element-finders.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/compact.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/compact.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/full.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/full.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/index.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/index.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/semantic.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/formatters/semantic.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/node-parser.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/node-parser.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/screen-analyzer.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/screen-analyzer.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/types.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser/types.js +0 -0
- /package/dist/{adb → ui-tree}/ui-parser.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-parser.js +0 -0
- /package/dist/{adb → ui-tree}/ui-scoring.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-scoring.js +0 -0
- /package/dist/{adb → ui-tree}/ui-tree-cache.d.ts +0 -0
- /package/dist/{adb → ui-tree}/ui-tree-cache.js +0 -0
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Path and process-attach allowlist helpers for the macOS desktop companion.
|
|
3
|
-
*
|
|
4
|
-
* These helpers guard the surface that translates a "launch this app" request
|
|
5
|
-
* into a real process. They intentionally fail closed — anything that cannot
|
|
6
|
-
* be canonically resolved within an allowed directory, or any pid that does
|
|
7
|
-
* not belong to the current user, is rejected before reaching `open` or the
|
|
8
|
-
* companion's attach path.
|
|
9
|
-
*/
|
|
10
|
-
declare const BUNDLE_LAUNCH_POLL_INTERVAL_MS = 100;
|
|
11
|
-
declare const BUNDLE_LAUNCH_TIMEOUT_MS = 5000;
|
|
12
|
-
/** Allowed prefixes for appPath (realpath-resolved). */
|
|
13
|
-
export declare const APP_PATH_ALLOWLIST: string[];
|
|
14
|
-
/** System processes that must not be attached to. */
|
|
15
|
-
export declare const BLOCKED_COMMS: Set<string>;
|
|
16
|
-
/**
|
|
17
|
-
* Resolve bundleId from an .app path by reading Info.plist via `defaults read`.
|
|
18
|
-
* All calls use execFileSync (no shell).
|
|
19
|
-
*/
|
|
20
|
-
export declare function getBundleIdFromAppPath(appPath: string): string;
|
|
21
|
-
/**
|
|
22
|
-
* Validate an appPath: must be absolute, end with .app, no .., within allowlist (realpath-resolved).
|
|
23
|
-
* Returns the canonicalized path to use when calling `open`.
|
|
24
|
-
*/
|
|
25
|
-
export declare function validateAndResolveAppPath(appPath: string): string;
|
|
26
|
-
/**
|
|
27
|
-
* Poll AppleScript until the process with the given bundle ID appears, or timeout.
|
|
28
|
-
* Uses execFileAsync (non-blocking) so the event loop is not held during the 3s osascript call.
|
|
29
|
-
* bundleId is pre-validated by validateBundleId; regex permits only [a-zA-Z0-9.-].
|
|
30
|
-
* AppleScript injection prevention relies on this regex — do not relax without re-auditing.
|
|
31
|
-
*/
|
|
32
|
-
export declare function resolvePidByBundleId(bundleId: string): Promise<number>;
|
|
33
|
-
/**
|
|
34
|
-
* Validate a PID for safe attach: must be positive, belong to current user, not a system process.
|
|
35
|
-
* Uses separate ps calls to avoid space-split issues with multi-word comm names.
|
|
36
|
-
*/
|
|
37
|
-
export declare function validateAttachPid(pid: number): void;
|
|
38
|
-
/**
|
|
39
|
-
* Find the companion app path on disk.
|
|
40
|
-
*
|
|
41
|
-
* Two candidate locations are checked: relative to the compiled `dist/desktop/client.js`
|
|
42
|
-
* (production) and relative to the source `src/desktop/client.ts` (when running with ts-node
|
|
43
|
-
* or a similar in-place runner).
|
|
44
|
-
*/
|
|
45
|
-
export declare function findCompanionAppPath(): string;
|
|
46
|
-
export { BUNDLE_LAUNCH_POLL_INTERVAL_MS, BUNDLE_LAUNCH_TIMEOUT_MS };
|
|
47
|
-
//# sourceMappingURL=permission-allowlist.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"permission-allowlist.d.ts","sourceRoot":"","sources":["../../src/desktop/permission-allowlist.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,QAAA,MAAM,8BAA8B,MAAM,CAAC;AAC3C,QAAA,MAAM,wBAAwB,OAAO,CAAC;AAEtC,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,UAM9B,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,aAAa,aAAkE,CAAC;AAE7F;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAe9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiBjE;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4B5E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA8BnD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAiB7C;AAED,OAAO,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Path and process-attach allowlist helpers for the macOS desktop companion.
|
|
3
|
-
*
|
|
4
|
-
* These helpers guard the surface that translates a "launch this app" request
|
|
5
|
-
* into a real process. They intentionally fail closed — anything that cannot
|
|
6
|
-
* be canonically resolved within an allowed directory, or any pid that does
|
|
7
|
-
* not belong to the current user, is rejected before reaching `open` or the
|
|
8
|
-
* companion's attach path.
|
|
9
|
-
*/
|
|
10
|
-
import { execFileSync, execFile } from "child_process";
|
|
11
|
-
import { promisify } from "util";
|
|
12
|
-
import * as path from "path";
|
|
13
|
-
import * as os from "os";
|
|
14
|
-
import * as fs from "fs";
|
|
15
|
-
import { fileURLToPath } from "url";
|
|
16
|
-
import { validatePath } from "../utils/sanitize.js";
|
|
17
|
-
import { MobileError } from "../errors.js";
|
|
18
|
-
const execFileAsync = promisify(execFile);
|
|
19
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
20
|
-
const __dirname = path.dirname(__filename);
|
|
21
|
-
const BUNDLE_LAUNCH_POLL_INTERVAL_MS = 100;
|
|
22
|
-
const BUNDLE_LAUNCH_TIMEOUT_MS = 5000;
|
|
23
|
-
/** Allowed prefixes for appPath (realpath-resolved). */
|
|
24
|
-
export const APP_PATH_ALLOWLIST = [
|
|
25
|
-
"/Applications",
|
|
26
|
-
"/System/Applications",
|
|
27
|
-
path.join(os.homedir(), "Applications"),
|
|
28
|
-
"/Developer",
|
|
29
|
-
path.join(os.homedir(), "Library/Developer/Xcode/DerivedData"),
|
|
30
|
-
];
|
|
31
|
-
/** System processes that must not be attached to. */
|
|
32
|
-
export const BLOCKED_COMMS = new Set(["launchd", "kernel_task", "securityd", "loginwindow"]);
|
|
33
|
-
/**
|
|
34
|
-
* Resolve bundleId from an .app path by reading Info.plist via `defaults read`.
|
|
35
|
-
* All calls use execFileSync (no shell).
|
|
36
|
-
*/
|
|
37
|
-
export function getBundleIdFromAppPath(appPath) {
|
|
38
|
-
try {
|
|
39
|
-
const result = execFileSync("defaults", ["read", `${appPath}/Contents/Info`, "CFBundleIdentifier"], { encoding: "utf-8", timeout: 5000 }).trim();
|
|
40
|
-
if (!result)
|
|
41
|
-
throw new Error("empty result");
|
|
42
|
-
return result;
|
|
43
|
-
}
|
|
44
|
-
catch (e) {
|
|
45
|
-
throw new MobileError(`Could not read bundle ID from ${appPath}/Contents/Info.plist: ${e.message}`, "BUNDLE_ID_READ_FAILED");
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Validate an appPath: must be absolute, end with .app, no .., within allowlist (realpath-resolved).
|
|
50
|
-
* Returns the canonicalized path to use when calling `open`.
|
|
51
|
-
*/
|
|
52
|
-
export function validateAndResolveAppPath(appPath) {
|
|
53
|
-
validatePath(appPath, "appPath");
|
|
54
|
-
if (!path.isAbsolute(appPath)) {
|
|
55
|
-
throw new MobileError(`appPath must be an absolute path: ${appPath}`, "INVALID_APP_PATH");
|
|
56
|
-
}
|
|
57
|
-
if (!appPath.endsWith(".app")) {
|
|
58
|
-
throw new MobileError(`appPath must end with .app: ${appPath}`, "INVALID_APP_PATH");
|
|
59
|
-
}
|
|
60
|
-
const resolved = fs.realpathSync(appPath);
|
|
61
|
-
const allowed = APP_PATH_ALLOWLIST.some(prefix => resolved.startsWith(prefix + "/") || resolved === prefix);
|
|
62
|
-
if (!allowed) {
|
|
63
|
-
throw new MobileError(`appPath "${resolved}" is outside allowed directories (${APP_PATH_ALLOWLIST.join(", ")})`, "APP_PATH_NOT_ALLOWED");
|
|
64
|
-
}
|
|
65
|
-
return resolved;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Poll AppleScript until the process with the given bundle ID appears, or timeout.
|
|
69
|
-
* Uses execFileAsync (non-blocking) so the event loop is not held during the 3s osascript call.
|
|
70
|
-
* bundleId is pre-validated by validateBundleId; regex permits only [a-zA-Z0-9.-].
|
|
71
|
-
* AppleScript injection prevention relies on this regex — do not relax without re-auditing.
|
|
72
|
-
*/
|
|
73
|
-
export async function resolvePidByBundleId(bundleId) {
|
|
74
|
-
const deadline = Date.now() + BUNDLE_LAUNCH_TIMEOUT_MS;
|
|
75
|
-
while (Date.now() < deadline) {
|
|
76
|
-
try {
|
|
77
|
-
const { stdout } = await execFileAsync("osascript", ["-e", `tell application "System Events" to unix id of first application process whose bundle identifier is "${bundleId}"`], { timeout: 3000 });
|
|
78
|
-
const pid = parseInt(stdout.trim(), 10);
|
|
79
|
-
if (pid > 0)
|
|
80
|
-
return pid;
|
|
81
|
-
}
|
|
82
|
-
catch (e) {
|
|
83
|
-
const stderr = e.stderr ?? "";
|
|
84
|
-
// Non-transient: permission denial from System Events will never self-resolve
|
|
85
|
-
if (stderr.includes("Not authorized") || stderr.includes("-1743")) {
|
|
86
|
-
throw new MobileError(`Accessibility permission denied. Grant access in System Settings → Privacy → Automation.`, "AUTOMATION_PERMISSION_DENIED");
|
|
87
|
-
}
|
|
88
|
-
// App not yet running — continue polling
|
|
89
|
-
}
|
|
90
|
-
await new Promise(resolve => setTimeout(resolve, BUNDLE_LAUNCH_POLL_INTERVAL_MS));
|
|
91
|
-
}
|
|
92
|
-
throw new MobileError(`App with bundle ID "${bundleId}" did not start within ${BUNDLE_LAUNCH_TIMEOUT_MS}ms`, "BUNDLE_LAUNCH_TIMEOUT");
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Validate a PID for safe attach: must be positive, belong to current user, not a system process.
|
|
96
|
-
* Uses separate ps calls to avoid space-split issues with multi-word comm names.
|
|
97
|
-
*/
|
|
98
|
-
export function validateAttachPid(pid) {
|
|
99
|
-
if (!Number.isInteger(pid) || pid <= 0) {
|
|
100
|
-
throw new MobileError(`Invalid pid: ${pid}. Must be a positive integer`, "INVALID_PID");
|
|
101
|
-
}
|
|
102
|
-
let psOut;
|
|
103
|
-
try {
|
|
104
|
-
psOut = execFileSync("ps", ["-o", "uid=,comm=", "-p", String(pid)], { encoding: "utf-8" }).trim();
|
|
105
|
-
}
|
|
106
|
-
catch (e) {
|
|
107
|
-
if (e.status === 1) {
|
|
108
|
-
throw new MobileError(`Process with pid ${pid} does not exist`, "PROCESS_NOT_FOUND");
|
|
109
|
-
}
|
|
110
|
-
throw new MobileError(`Failed to inspect pid ${pid}: ${e.message}`, "PS_EXEC_FAILED");
|
|
111
|
-
}
|
|
112
|
-
// uid= and comm= are separated by whitespace; comm= may contain spaces — split on first whitespace only
|
|
113
|
-
const spaceIdx = psOut.search(/\s/);
|
|
114
|
-
const uidStr = spaceIdx >= 0 ? psOut.slice(0, spaceIdx) : psOut;
|
|
115
|
-
const comm = spaceIdx >= 0 ? psOut.slice(spaceIdx + 1).trim() : "";
|
|
116
|
-
const uid = parseInt(uidStr, 10);
|
|
117
|
-
const currentUid = process.getuid ? process.getuid() : -1;
|
|
118
|
-
if (currentUid >= 0 && uid !== currentUid) {
|
|
119
|
-
throw new MobileError(`Cannot attach to pid ${pid}: process belongs to another user`, "PID_FOREIGN_USER");
|
|
120
|
-
}
|
|
121
|
-
const basename = path.basename(comm);
|
|
122
|
-
if (BLOCKED_COMMS.has(basename)) {
|
|
123
|
-
throw new MobileError(`Cannot attach to system process: ${basename} (pid ${pid})`, "PID_SYSTEM_PROCESS");
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Find the companion app path on disk.
|
|
128
|
-
*
|
|
129
|
-
* Two candidate locations are checked: relative to the compiled `dist/desktop/client.js`
|
|
130
|
-
* (production) and relative to the source `src/desktop/client.ts` (when running with ts-node
|
|
131
|
-
* or a similar in-place runner).
|
|
132
|
-
*/
|
|
133
|
-
export function findCompanionAppPath() {
|
|
134
|
-
const possiblePaths = [
|
|
135
|
-
// From dist/desktop/client.js (production layout)
|
|
136
|
-
path.join(__dirname, "..", "..", "desktop-companion", "build", "install", "desktop-companion", "bin", "desktop-companion"),
|
|
137
|
-
// From src/desktop/client.ts (when running directly)
|
|
138
|
-
path.join(__dirname, "..", "..", "..", "desktop-companion", "build", "install", "desktop-companion", "bin", "desktop-companion"),
|
|
139
|
-
];
|
|
140
|
-
for (const p of possiblePaths) {
|
|
141
|
-
if (fs.existsSync(p)) {
|
|
142
|
-
return p;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
throw new Error("Desktop companion app not found. Please build it first: cd desktop-companion && ./gradlew installDist");
|
|
146
|
-
}
|
|
147
|
-
export { BUNDLE_LAUNCH_POLL_INTERVAL_MS, BUNDLE_LAUNCH_TIMEOUT_MS };
|
|
148
|
-
//# sourceMappingURL=permission-allowlist.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"permission-allowlist.js","sourceRoot":"","sources":["../../src/desktop/permission-allowlist.ts"],"names":[],"mappings":"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"}
|
package/dist/desktop/types.d.ts
DELETED
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Desktop platform types for claude-in-mobile
|
|
3
|
-
*/
|
|
4
|
-
export interface JsonRpcRequest {
|
|
5
|
-
jsonrpc: "2.0";
|
|
6
|
-
id: number;
|
|
7
|
-
method: string;
|
|
8
|
-
params?: Record<string, unknown>;
|
|
9
|
-
}
|
|
10
|
-
export interface JsonRpcResponse {
|
|
11
|
-
jsonrpc: "2.0";
|
|
12
|
-
id: number;
|
|
13
|
-
result?: unknown;
|
|
14
|
-
error?: JsonRpcError;
|
|
15
|
-
}
|
|
16
|
-
export interface JsonRpcError {
|
|
17
|
-
code: number;
|
|
18
|
-
message: string;
|
|
19
|
-
data?: unknown;
|
|
20
|
-
}
|
|
21
|
-
export interface Bounds {
|
|
22
|
-
x: number;
|
|
23
|
-
y: number;
|
|
24
|
-
width: number;
|
|
25
|
-
height: number;
|
|
26
|
-
}
|
|
27
|
-
export interface DesktopWindow {
|
|
28
|
-
id: string;
|
|
29
|
-
title: string;
|
|
30
|
-
bounds: Bounds;
|
|
31
|
-
focused: boolean;
|
|
32
|
-
minimized: boolean;
|
|
33
|
-
fullscreen: boolean;
|
|
34
|
-
processId?: number;
|
|
35
|
-
ownerName?: string;
|
|
36
|
-
}
|
|
37
|
-
export interface WindowInfo {
|
|
38
|
-
windows: DesktopWindow[];
|
|
39
|
-
activeWindowId: string | null;
|
|
40
|
-
}
|
|
41
|
-
export interface DesktopUiElement {
|
|
42
|
-
index: number;
|
|
43
|
-
id?: string;
|
|
44
|
-
text?: string;
|
|
45
|
-
contentDescription?: string;
|
|
46
|
-
className: string;
|
|
47
|
-
role?: string;
|
|
48
|
-
bounds: Bounds;
|
|
49
|
-
clickable: boolean;
|
|
50
|
-
enabled: boolean;
|
|
51
|
-
focused: boolean;
|
|
52
|
-
focusable: boolean;
|
|
53
|
-
children: DesktopUiElement[];
|
|
54
|
-
centerX: number;
|
|
55
|
-
centerY: number;
|
|
56
|
-
}
|
|
57
|
-
export interface UiHierarchy {
|
|
58
|
-
windows: DesktopWindow[];
|
|
59
|
-
elements: DesktopUiElement[];
|
|
60
|
-
scaleFactor: number;
|
|
61
|
-
}
|
|
62
|
-
export interface ScreenshotOptions {
|
|
63
|
-
windowId?: string;
|
|
64
|
-
quality?: number;
|
|
65
|
-
monitorIndex?: number;
|
|
66
|
-
}
|
|
67
|
-
export interface ScreenshotResult {
|
|
68
|
-
base64: string;
|
|
69
|
-
width: number;
|
|
70
|
-
height: number;
|
|
71
|
-
scaleFactor: number;
|
|
72
|
-
mimeType: "image/jpeg";
|
|
73
|
-
}
|
|
74
|
-
export interface TapOptions {
|
|
75
|
-
x: number;
|
|
76
|
-
y: number;
|
|
77
|
-
}
|
|
78
|
-
export interface SwipeOptions {
|
|
79
|
-
x1: number;
|
|
80
|
-
y1: number;
|
|
81
|
-
x2: number;
|
|
82
|
-
y2: number;
|
|
83
|
-
durationMs?: number;
|
|
84
|
-
}
|
|
85
|
-
export interface KeyEventOptions {
|
|
86
|
-
key: string;
|
|
87
|
-
modifiers?: string[];
|
|
88
|
-
}
|
|
89
|
-
export type LaunchMode = "gradle" | "bundle" | "attach" | "companion-only";
|
|
90
|
-
export type LaunchOptions = {
|
|
91
|
-
mode: "gradle";
|
|
92
|
-
projectPath: string;
|
|
93
|
-
task?: string;
|
|
94
|
-
jvmArgs?: string[];
|
|
95
|
-
env?: Record<string, string>;
|
|
96
|
-
} | {
|
|
97
|
-
mode: "bundle";
|
|
98
|
-
bundleId: string;
|
|
99
|
-
appPath?: string;
|
|
100
|
-
env?: Record<string, string>;
|
|
101
|
-
} | {
|
|
102
|
-
mode: "bundle";
|
|
103
|
-
bundleId?: string;
|
|
104
|
-
appPath: string;
|
|
105
|
-
env?: Record<string, string>;
|
|
106
|
-
} | {
|
|
107
|
-
mode: "attach";
|
|
108
|
-
pid: number;
|
|
109
|
-
} | {
|
|
110
|
-
mode: "companion-only";
|
|
111
|
-
};
|
|
112
|
-
export interface RawLaunchOptions {
|
|
113
|
-
mode?: LaunchMode;
|
|
114
|
-
projectPath?: string;
|
|
115
|
-
task?: string;
|
|
116
|
-
jvmArgs?: string[];
|
|
117
|
-
env?: Record<string, string>;
|
|
118
|
-
bundleId?: string;
|
|
119
|
-
appPath?: string;
|
|
120
|
-
pid?: number;
|
|
121
|
-
}
|
|
122
|
-
export interface GradleProject {
|
|
123
|
-
path: string;
|
|
124
|
-
desktopTasks: string[];
|
|
125
|
-
selectedTask?: string;
|
|
126
|
-
}
|
|
127
|
-
export type LogType = "stdout" | "stderr" | "compose" | "crash";
|
|
128
|
-
export interface LogEntry {
|
|
129
|
-
timestamp: number;
|
|
130
|
-
type: LogType;
|
|
131
|
-
message: string;
|
|
132
|
-
}
|
|
133
|
-
export interface LogOptions {
|
|
134
|
-
type?: LogType;
|
|
135
|
-
since?: number;
|
|
136
|
-
limit?: number;
|
|
137
|
-
}
|
|
138
|
-
export interface PerformanceMetrics {
|
|
139
|
-
fps?: number;
|
|
140
|
-
memoryUsageMb: number;
|
|
141
|
-
cpuPercent?: number;
|
|
142
|
-
}
|
|
143
|
-
export interface PermissionStatus {
|
|
144
|
-
granted: boolean;
|
|
145
|
-
instructions?: string[];
|
|
146
|
-
}
|
|
147
|
-
export type DesktopStatus = "stopped" | "starting" | "running" | "crashed";
|
|
148
|
-
export interface DesktopState {
|
|
149
|
-
status: DesktopStatus;
|
|
150
|
-
pid?: number;
|
|
151
|
-
projectPath?: string;
|
|
152
|
-
crashCount: number;
|
|
153
|
-
lastError?: string;
|
|
154
|
-
targetPid: number | null;
|
|
155
|
-
}
|
|
156
|
-
export interface ClipboardContent {
|
|
157
|
-
text?: string;
|
|
158
|
-
hasImage?: boolean;
|
|
159
|
-
}
|
|
160
|
-
export interface MonitorInfo {
|
|
161
|
-
index: number;
|
|
162
|
-
name: string;
|
|
163
|
-
x: number;
|
|
164
|
-
y: number;
|
|
165
|
-
width: number;
|
|
166
|
-
height: number;
|
|
167
|
-
isPrimary: boolean;
|
|
168
|
-
}
|
|
169
|
-
export interface MonitorsResult {
|
|
170
|
-
monitors: MonitorInfo[];
|
|
171
|
-
}
|
|
172
|
-
export interface TapByTextResult {
|
|
173
|
-
success: boolean;
|
|
174
|
-
elementRole?: string;
|
|
175
|
-
error?: string;
|
|
176
|
-
}
|
|
177
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/desktop/types.ts"],"names":[],"mappings":"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"}
|
package/dist/desktop/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/desktop/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/ios/client.d.ts
DELETED
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
import { WDAElement, WDARect } from "./wda/index.js";
|
|
2
|
-
import type { IosDevice } from "./types.js";
|
|
3
|
-
import { type FindElementsCriteria } from "./wda-payloads.js";
|
|
4
|
-
export type { IosDevice } from "./types.js";
|
|
5
|
-
export declare class IosClient {
|
|
6
|
-
private deviceId?;
|
|
7
|
-
private wdaManager;
|
|
8
|
-
private wdaClient?;
|
|
9
|
-
constructor(deviceId?: string);
|
|
10
|
-
cleanup(): void;
|
|
11
|
-
private ensureWDA;
|
|
12
|
-
/** Thin instance wrapper around `execSimctl` (argv-form, no shell). */
|
|
13
|
-
private execArgs;
|
|
14
|
-
/** Thin instance wrapper around `execSimctlQuiet` (stderr suppressed). */
|
|
15
|
-
private execArgsQuiet;
|
|
16
|
-
/** Legacy string form: whitespace-split into argv tokens, then `execSimctl`. */
|
|
17
|
-
private exec;
|
|
18
|
-
/**
|
|
19
|
-
* Get the active device ID or 'booted'
|
|
20
|
-
*/
|
|
21
|
-
private get targetDevice();
|
|
22
|
-
/** Resolve target device for a per-call override or fall back to instance default. */
|
|
23
|
-
private targetDeviceFor;
|
|
24
|
-
/**
|
|
25
|
-
* Get list of iOS simulators
|
|
26
|
-
*/
|
|
27
|
-
getDevices(): IosDevice[];
|
|
28
|
-
/**
|
|
29
|
-
* Get booted simulators
|
|
30
|
-
*/
|
|
31
|
-
getBootedDevices(): IosDevice[];
|
|
32
|
-
/**
|
|
33
|
-
* Set active device
|
|
34
|
-
*/
|
|
35
|
-
setDevice(deviceId: string): void;
|
|
36
|
-
/**
|
|
37
|
-
* Get currently configured device ID
|
|
38
|
-
*/
|
|
39
|
-
getDeviceId(): string | undefined;
|
|
40
|
-
/**
|
|
41
|
-
* Boot simulator
|
|
42
|
-
*/
|
|
43
|
-
boot(deviceId?: string): void;
|
|
44
|
-
/**
|
|
45
|
-
* Shutdown simulator
|
|
46
|
-
*/
|
|
47
|
-
shutdown(deviceId?: string): void;
|
|
48
|
-
/**
|
|
49
|
-
* Take screenshot and return raw PNG buffer
|
|
50
|
-
*/
|
|
51
|
-
screenshotRaw(deviceIdOverride?: string): Buffer;
|
|
52
|
-
/**
|
|
53
|
-
* Take screenshot and return as base64 (legacy)
|
|
54
|
-
*/
|
|
55
|
-
screenshot(deviceIdOverride?: string): string;
|
|
56
|
-
/**
|
|
57
|
-
* Tap at coordinates
|
|
58
|
-
*/
|
|
59
|
-
tap(x: number, y: number, deviceIdOverride?: string): Promise<void>;
|
|
60
|
-
/**
|
|
61
|
-
* Swipe gesture
|
|
62
|
-
*/
|
|
63
|
-
swipe(x1: number, y1: number, x2: number, y2: number, durationMs?: number, deviceIdOverride?: string): Promise<void>;
|
|
64
|
-
/**
|
|
65
|
-
* Long press at coordinates via WDA Actions API
|
|
66
|
-
*/
|
|
67
|
-
longPress(x: number, y: number, durationMs?: number, deviceIdOverride?: string): Promise<void>;
|
|
68
|
-
/**
|
|
69
|
-
* Swipe in direction (uses actual screen center from WDA, not hardcoded)
|
|
70
|
-
*/
|
|
71
|
-
swipeDirection(direction: "up" | "down" | "left" | "right", distance?: number): Promise<void>;
|
|
72
|
-
/**
|
|
73
|
-
* Input text via WDA (types into the currently focused element)
|
|
74
|
-
*/
|
|
75
|
-
inputText(text: string, deviceIdOverride?: string): Promise<void>;
|
|
76
|
-
/**
|
|
77
|
-
* Press key
|
|
78
|
-
*
|
|
79
|
-
* SECURITY: AppleScript invocations use execFileSync("osascript", ["-e", literal])
|
|
80
|
-
* — the script literal is a single argv slot, so /bin/sh never parses its contents.
|
|
81
|
-
* The `key` argument is whitelisted via keyMap; only fixed AppleScript literals reach
|
|
82
|
-
* osascript.
|
|
83
|
-
*/
|
|
84
|
-
pressKey(key: string): void;
|
|
85
|
-
/**
|
|
86
|
-
* Launch app by bundle ID
|
|
87
|
-
*/
|
|
88
|
-
launchApp(bundleId: string, deviceIdOverride?: string): string;
|
|
89
|
-
/**
|
|
90
|
-
* Terminate app
|
|
91
|
-
*/
|
|
92
|
-
stopApp(bundleId: string, deviceIdOverride?: string): void;
|
|
93
|
-
/**
|
|
94
|
-
* Install app (.app bundle or .ipa)
|
|
95
|
-
*/
|
|
96
|
-
installApp(path: string): string;
|
|
97
|
-
/**
|
|
98
|
-
* Uninstall app
|
|
99
|
-
*/
|
|
100
|
-
uninstallApp(bundleId: string): string;
|
|
101
|
-
/**
|
|
102
|
-
* Get UI hierarchy (limited on iOS simulator)
|
|
103
|
-
* Returns accessibility info if available
|
|
104
|
-
*/
|
|
105
|
-
getUiHierarchy(deviceIdOverride?: string): Promise<string>;
|
|
106
|
-
/**
|
|
107
|
-
* Find element by text or label
|
|
108
|
-
*/
|
|
109
|
-
findElement(criteria: {
|
|
110
|
-
text?: string;
|
|
111
|
-
label?: string;
|
|
112
|
-
}): Promise<WDAElement>;
|
|
113
|
-
/**
|
|
114
|
-
* Find multiple elements by criteria
|
|
115
|
-
*/
|
|
116
|
-
findElements(criteria: FindElementsCriteria): Promise<Array<{
|
|
117
|
-
id: string;
|
|
118
|
-
type: string;
|
|
119
|
-
label: string;
|
|
120
|
-
rect: WDARect;
|
|
121
|
-
}>>;
|
|
122
|
-
/**
|
|
123
|
-
* Get element rect (position + size) by element ID
|
|
124
|
-
*/
|
|
125
|
-
getElementRect(elementId: string): Promise<WDARect | null>;
|
|
126
|
-
/**
|
|
127
|
-
* Tap element by element ID
|
|
128
|
-
*/
|
|
129
|
-
tapElement(elementId: string): Promise<void>;
|
|
130
|
-
/**
|
|
131
|
-
* Open URL in simulator
|
|
132
|
-
*
|
|
133
|
-
* SECURITY: URL passes as a single argv slot to xcrun (no /bin/sh -c).
|
|
134
|
-
* Any shell metacharacters in `url` are not parsed by the host shell.
|
|
135
|
-
* Scheme validation happens at the tool layer (validateUrl).
|
|
136
|
-
*/
|
|
137
|
-
openUrl(url: string): void;
|
|
138
|
-
/**
|
|
139
|
-
* Add photo to simulator
|
|
140
|
-
*/
|
|
141
|
-
addPhoto(imagePath: string): void;
|
|
142
|
-
/**
|
|
143
|
-
* Set location
|
|
144
|
-
*/
|
|
145
|
-
setLocation(lat: number, lon: number): void;
|
|
146
|
-
/**
|
|
147
|
-
* Get device info
|
|
148
|
-
*/
|
|
149
|
-
getDeviceInfo(): Record<string, string>;
|
|
150
|
-
/**
|
|
151
|
-
* Execute arbitrary simctl command
|
|
152
|
-
*
|
|
153
|
-
* SECURITY: `command` is whitespace-split into argv tokens before reaching
|
|
154
|
-
* execFileSync. Shell metacharacters (;, &, |, $(), backticks, etc.) cannot
|
|
155
|
-
* spawn a host shell from this path. The MCP tool layer additionally validates
|
|
156
|
-
* via validateShellCommand as defense in depth.
|
|
157
|
-
*/
|
|
158
|
-
shell(command: string): string;
|
|
159
|
-
/**
|
|
160
|
-
* Get device logs
|
|
161
|
-
*/
|
|
162
|
-
getLogs(options?: {
|
|
163
|
-
predicate?: string;
|
|
164
|
-
lines?: number;
|
|
165
|
-
level?: "debug" | "info" | "default" | "error" | "fault";
|
|
166
|
-
}): string;
|
|
167
|
-
/**
|
|
168
|
-
* Get app-specific logs
|
|
169
|
-
*
|
|
170
|
-
* SECURITY: bundleId is validated against the reverse-DNS whitelist before
|
|
171
|
-
* embedding into the simctl predicate string. The predicate itself is passed
|
|
172
|
-
* as ONE argv slot — the host shell never parses it; simctl parses it
|
|
173
|
-
* internally as its own DSL.
|
|
174
|
-
*/
|
|
175
|
-
getAppLogs(bundleId: string, lines?: number): string;
|
|
176
|
-
/**
|
|
177
|
-
* Clear logs (not fully supported on iOS, but we can note the timestamp)
|
|
178
|
-
*/
|
|
179
|
-
clearLogs(): string;
|
|
180
|
-
/**
|
|
181
|
-
* Grant privacy permission on iOS simulator
|
|
182
|
-
* Services: camera, microphone, photos, location, contacts, calendar, reminders, motion, health, speech-recognition
|
|
183
|
-
*/
|
|
184
|
-
grantPermission(bundleId: string, service: string): string;
|
|
185
|
-
/**
|
|
186
|
-
* Revoke privacy permission on iOS simulator
|
|
187
|
-
*/
|
|
188
|
-
revokePermission(bundleId: string, service: string): string;
|
|
189
|
-
/**
|
|
190
|
-
* Reset all privacy permissions for an app on iOS simulator
|
|
191
|
-
*/
|
|
192
|
-
resetPermissions(bundleId: string): string;
|
|
193
|
-
}
|
|
194
|
-
//# sourceMappingURL=client.d.ts.map
|
package/dist/ios/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ios/client.ts"],"names":[],"mappings":"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"}
|