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
package/dist/desktop/client.js
DELETED
|
@@ -1,540 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Desktop Client - communicates with Kotlin companion app via JSON-RPC
|
|
3
|
-
*/
|
|
4
|
-
import { spawn, execFileSync } from "child_process";
|
|
5
|
-
import { EventEmitter } from "events";
|
|
6
|
-
import * as readline from "readline";
|
|
7
|
-
import { GradleLauncher } from "./gradle.js";
|
|
8
|
-
import { findCompanionAppPath } from "./permission-allowlist.js";
|
|
9
|
-
import { LogRing } from "./log-ring.js";
|
|
10
|
-
import { normalizeLaunchOptions } from "./launch-options.js";
|
|
11
|
-
import { DESKTOP } from "../constants/timeouts.js";
|
|
12
|
-
import { AttachLauncher, BundleAppLauncher, GradleAppLauncher, NoOpLauncher, } from "./launchers.js";
|
|
13
|
-
// Re-export module-scoped helpers so existing imports of `src/desktop/client.js` keep working.
|
|
14
|
-
export { APP_PATH_ALLOWLIST, BLOCKED_COMMS, findCompanionAppPath, getBundleIdFromAppPath, resolvePidByBundleId, validateAndResolveAppPath, validateAttachPid, } from "./permission-allowlist.js";
|
|
15
|
-
export { LogRing } from "./log-ring.js";
|
|
16
|
-
export { normalizeLaunchOptions } from "./launch-options.js";
|
|
17
|
-
export { AttachLauncher, BundleAppLauncher, GradleAppLauncher, NoOpLauncher, } from "./launchers.js";
|
|
18
|
-
const MAX_RESTARTS = 3;
|
|
19
|
-
export class DesktopClient extends EventEmitter {
|
|
20
|
-
process = null;
|
|
21
|
-
activeStrategy = null;
|
|
22
|
-
gradleLauncher;
|
|
23
|
-
requestId = 0;
|
|
24
|
-
pendingRequests = new Map();
|
|
25
|
-
logRing = new LogRing(10_000);
|
|
26
|
-
state = {
|
|
27
|
-
status: "stopped",
|
|
28
|
-
crashCount: 0,
|
|
29
|
-
targetPid: null,
|
|
30
|
-
};
|
|
31
|
-
lastLaunchOptions = null;
|
|
32
|
-
readline = null;
|
|
33
|
-
/** PID of the user's app — set after native launch or attach. Auto-passed to tap/input/key. */
|
|
34
|
-
targetPid;
|
|
35
|
-
constructor() {
|
|
36
|
-
super();
|
|
37
|
-
this.gradleLauncher = new GradleLauncher();
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Get current state
|
|
41
|
-
*/
|
|
42
|
-
getState() {
|
|
43
|
-
return { ...this.state };
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Check if running
|
|
47
|
-
*/
|
|
48
|
-
isRunning() {
|
|
49
|
-
return this.state.status === "running" && this.process !== null && !this.process.killed;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Launch desktop automation. Accepts the flat RawLaunchOptions (backward-compatible)
|
|
53
|
-
* and normalizes internally to the discriminated-union LaunchOptions.
|
|
54
|
-
*/
|
|
55
|
-
async launch(options) {
|
|
56
|
-
if (this.isRunning()) {
|
|
57
|
-
throw new Error("Desktop companion is already running. Stop it first.");
|
|
58
|
-
}
|
|
59
|
-
const normalized = normalizeLaunchOptions(options);
|
|
60
|
-
this.lastLaunchOptions = options;
|
|
61
|
-
this.state = {
|
|
62
|
-
status: "starting",
|
|
63
|
-
projectPath: normalized.mode === "gradle" ? normalized.projectPath : undefined,
|
|
64
|
-
crashCount: this.state.crashCount,
|
|
65
|
-
targetPid: null,
|
|
66
|
-
};
|
|
67
|
-
try {
|
|
68
|
-
const companionPath = findCompanionAppPath();
|
|
69
|
-
this.addLog("stdout", `Starting companion app: ${companionPath}`);
|
|
70
|
-
this.process = spawn(companionPath, [], {
|
|
71
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
72
|
-
env: {
|
|
73
|
-
...process.env,
|
|
74
|
-
JAVA_HOME: process.env.JAVA_HOME || (() => {
|
|
75
|
-
if (process.platform !== "darwin")
|
|
76
|
-
return "";
|
|
77
|
-
try {
|
|
78
|
-
return execFileSync("/usr/libexec/java_home", ["-v", "21"], { encoding: "utf-8", timeout: 3000 }).trim();
|
|
79
|
-
}
|
|
80
|
-
catch {
|
|
81
|
-
try {
|
|
82
|
-
return execFileSync("/usr/libexec/java_home", [], { encoding: "utf-8", timeout: 3000 }).trim();
|
|
83
|
-
}
|
|
84
|
-
catch {
|
|
85
|
-
return "";
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
})(),
|
|
89
|
-
},
|
|
90
|
-
});
|
|
91
|
-
this.state.pid = this.process.pid;
|
|
92
|
-
if (this.process.stdout) {
|
|
93
|
-
this.readline = readline.createInterface({ input: this.process.stdout, crlfDelay: Infinity });
|
|
94
|
-
this.readline.on("line", (line) => this.handleLine(line));
|
|
95
|
-
}
|
|
96
|
-
if (this.process.stderr) {
|
|
97
|
-
this.process.stderr.on("data", (data) => {
|
|
98
|
-
const message = data.toString();
|
|
99
|
-
this.addLog("stderr", message);
|
|
100
|
-
if (message.includes("Desktop companion ready") || message.includes("JsonRpcServer started")) {
|
|
101
|
-
this.state.status = "running";
|
|
102
|
-
this.emit("ready");
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
this.process.on("exit", (code, signal) => this.handleExit(code, signal));
|
|
107
|
-
this.process.on("error", (error) => {
|
|
108
|
-
this.addLog("crash", `Process error: ${error.message}`);
|
|
109
|
-
this.handleCrash(error);
|
|
110
|
-
});
|
|
111
|
-
await this.waitForReady(10000);
|
|
112
|
-
this.activeStrategy = this.selectStrategy(normalized);
|
|
113
|
-
const targetPid = await this.activeStrategy.launch();
|
|
114
|
-
this.state.targetPid = targetPid;
|
|
115
|
-
}
|
|
116
|
-
catch (error) {
|
|
117
|
-
// Kill companion if it was spawned before strategy failure (prevents orphan processes)
|
|
118
|
-
if (this.process && !this.process.killed) {
|
|
119
|
-
this.process.kill();
|
|
120
|
-
}
|
|
121
|
-
if (this.readline) {
|
|
122
|
-
this.readline.close();
|
|
123
|
-
this.readline = null;
|
|
124
|
-
}
|
|
125
|
-
this.process = null;
|
|
126
|
-
this.state.status = "stopped";
|
|
127
|
-
this.state.lastError = error instanceof Error ? error.message : String(error);
|
|
128
|
-
throw error;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
selectStrategy(opts) {
|
|
132
|
-
switch (opts.mode) {
|
|
133
|
-
case "gradle":
|
|
134
|
-
return new GradleAppLauncher(opts, this.gradleLauncher, this.addLog.bind(this));
|
|
135
|
-
case "bundle":
|
|
136
|
-
return new BundleAppLauncher(opts, this.addLog.bind(this));
|
|
137
|
-
case "attach":
|
|
138
|
-
return new AttachLauncher(opts, this.addLog.bind(this));
|
|
139
|
-
case "companion-only":
|
|
140
|
-
return new NoOpLauncher();
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
getTargetPid() {
|
|
144
|
-
return this.state.targetPid;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Wait for the companion app to be ready
|
|
148
|
-
*/
|
|
149
|
-
waitForReady(timeoutMs) {
|
|
150
|
-
return new Promise((resolve, reject) => {
|
|
151
|
-
const cleanup = () => {
|
|
152
|
-
clearTimeout(timeout);
|
|
153
|
-
this.removeListener("ready", onReady);
|
|
154
|
-
this.process?.removeListener("exit", onExit);
|
|
155
|
-
};
|
|
156
|
-
const onReady = () => {
|
|
157
|
-
cleanup();
|
|
158
|
-
resolve();
|
|
159
|
-
};
|
|
160
|
-
const onExit = () => {
|
|
161
|
-
cleanup();
|
|
162
|
-
reject(new Error("Desktop app exited before becoming ready"));
|
|
163
|
-
};
|
|
164
|
-
const timeout = setTimeout(() => {
|
|
165
|
-
cleanup();
|
|
166
|
-
// Consider ready even without explicit signal after timeout
|
|
167
|
-
// The app might not send a ready signal
|
|
168
|
-
if (this.process && !this.process.killed) {
|
|
169
|
-
this.state.status = "running";
|
|
170
|
-
resolve();
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
reject(new Error("Desktop app failed to start"));
|
|
174
|
-
}
|
|
175
|
-
}, timeoutMs);
|
|
176
|
-
this.once("ready", onReady);
|
|
177
|
-
this.process?.once("exit", onExit);
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Stop desktop app
|
|
182
|
-
*/
|
|
183
|
-
async stop() {
|
|
184
|
-
if (!this.process) {
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
// Stop any app process managed by the active strategy (e.g. Gradle child)
|
|
188
|
-
this.activeStrategy?.stop();
|
|
189
|
-
this.activeStrategy = null;
|
|
190
|
-
if (this.readline) {
|
|
191
|
-
this.readline.close();
|
|
192
|
-
this.readline = null;
|
|
193
|
-
}
|
|
194
|
-
// Reject all pending requests
|
|
195
|
-
for (const [id, pending] of this.pendingRequests) {
|
|
196
|
-
clearTimeout(pending.timeout);
|
|
197
|
-
pending.reject(new Error("Desktop app stopped"));
|
|
198
|
-
}
|
|
199
|
-
this.pendingRequests.clear();
|
|
200
|
-
// Stop process
|
|
201
|
-
this.gradleLauncher.stop(this.process);
|
|
202
|
-
this.process = null;
|
|
203
|
-
this.targetPid = undefined;
|
|
204
|
-
this.state = {
|
|
205
|
-
status: "stopped",
|
|
206
|
-
crashCount: 0,
|
|
207
|
-
targetPid: null,
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Handle incoming line from stdout
|
|
212
|
-
*/
|
|
213
|
-
handleLine(line) {
|
|
214
|
-
const trimmed = line.trim();
|
|
215
|
-
if (!trimmed)
|
|
216
|
-
return;
|
|
217
|
-
// Try to parse as JSON-RPC response
|
|
218
|
-
if (trimmed.startsWith("{")) {
|
|
219
|
-
try {
|
|
220
|
-
const response = JSON.parse(trimmed);
|
|
221
|
-
this.handleResponse(response);
|
|
222
|
-
return;
|
|
223
|
-
}
|
|
224
|
-
catch {
|
|
225
|
-
// Not JSON, treat as log
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
// Regular log output
|
|
229
|
-
this.addLog("stdout", trimmed);
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Handle JSON-RPC response
|
|
233
|
-
*/
|
|
234
|
-
handleResponse(response) {
|
|
235
|
-
const pending = this.pendingRequests.get(response.id);
|
|
236
|
-
if (!pending) {
|
|
237
|
-
return; // Unknown response
|
|
238
|
-
}
|
|
239
|
-
this.pendingRequests.delete(response.id);
|
|
240
|
-
clearTimeout(pending.timeout);
|
|
241
|
-
if (response.error) {
|
|
242
|
-
pending.reject(new Error(`${response.error.message} (code: ${response.error.code})`));
|
|
243
|
-
}
|
|
244
|
-
else {
|
|
245
|
-
pending.resolve(response.result);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Handle process exit
|
|
250
|
-
*/
|
|
251
|
-
handleExit(code, signal) {
|
|
252
|
-
const wasRunning = this.state.status === "running";
|
|
253
|
-
if (code !== 0 && wasRunning) {
|
|
254
|
-
this.addLog("crash", `Process exited with code ${code}, signal ${signal}`);
|
|
255
|
-
this.handleCrash(new Error(`Exit code: ${code}`));
|
|
256
|
-
}
|
|
257
|
-
else {
|
|
258
|
-
this.state.status = "stopped";
|
|
259
|
-
}
|
|
260
|
-
this.process = null;
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* Detach the old (dead/dying) companion process and its associated handles
|
|
264
|
-
* so they don't linger until GC when launch() respawns a replacement.
|
|
265
|
-
* Safe to call when there's nothing to detach.
|
|
266
|
-
*/
|
|
267
|
-
detachProcess() {
|
|
268
|
-
if (this.readline) {
|
|
269
|
-
this.readline.removeAllListeners();
|
|
270
|
-
this.readline.close();
|
|
271
|
-
this.readline = null;
|
|
272
|
-
}
|
|
273
|
-
const old = this.process;
|
|
274
|
-
if (old) {
|
|
275
|
-
old.stdout?.removeAllListeners();
|
|
276
|
-
old.stderr?.removeAllListeners();
|
|
277
|
-
old.removeAllListeners();
|
|
278
|
-
if (!old.killed) {
|
|
279
|
-
old.kill();
|
|
280
|
-
}
|
|
281
|
-
this.process = null;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Handle crash with auto-restart
|
|
286
|
-
*/
|
|
287
|
-
async handleCrash(error) {
|
|
288
|
-
this.state.status = "crashed";
|
|
289
|
-
this.state.crashCount++;
|
|
290
|
-
this.state.lastError = error.message;
|
|
291
|
-
// Reject all pending requests
|
|
292
|
-
for (const [id, pending] of this.pendingRequests) {
|
|
293
|
-
clearTimeout(pending.timeout);
|
|
294
|
-
pending.reject(new Error("Desktop app crashed"));
|
|
295
|
-
}
|
|
296
|
-
this.pendingRequests.clear();
|
|
297
|
-
// Detach the crashed process + its listeners/readline before respawning,
|
|
298
|
-
// otherwise the old handles linger until GC (M3).
|
|
299
|
-
this.detachProcess();
|
|
300
|
-
// Auto-restart if under limit
|
|
301
|
-
if (this.state.crashCount <= MAX_RESTARTS && this.lastLaunchOptions) {
|
|
302
|
-
console.error(`Desktop app crashed, restarting (${this.state.crashCount}/${MAX_RESTARTS})...`);
|
|
303
|
-
try {
|
|
304
|
-
await new Promise((resolve) => setTimeout(resolve, 1000)); // Wait before restart
|
|
305
|
-
await this.launch(this.lastLaunchOptions);
|
|
306
|
-
}
|
|
307
|
-
catch (restartError) {
|
|
308
|
-
console.error(`Failed to restart: ${restartError.message}`);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
else {
|
|
312
|
-
this.emit("crash", error);
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* Send JSON-RPC request
|
|
317
|
-
*/
|
|
318
|
-
async sendRequest(method, params) {
|
|
319
|
-
if (!this.isRunning() || !this.process?.stdin) {
|
|
320
|
-
throw new Error("Desktop app is not running");
|
|
321
|
-
}
|
|
322
|
-
const id = ++this.requestId;
|
|
323
|
-
const request = {
|
|
324
|
-
jsonrpc: "2.0",
|
|
325
|
-
id,
|
|
326
|
-
method,
|
|
327
|
-
params,
|
|
328
|
-
};
|
|
329
|
-
return new Promise((resolve, reject) => {
|
|
330
|
-
const timeout = setTimeout(() => {
|
|
331
|
-
this.pendingRequests.delete(id);
|
|
332
|
-
reject(new Error(`Request timeout: ${method}`));
|
|
333
|
-
}, DESKTOP.RPC_TIMEOUT_MS);
|
|
334
|
-
this.pendingRequests.set(id, {
|
|
335
|
-
resolve: resolve,
|
|
336
|
-
reject,
|
|
337
|
-
timeout,
|
|
338
|
-
});
|
|
339
|
-
const json = JSON.stringify(request);
|
|
340
|
-
this.process.stdin.write(json + "\n");
|
|
341
|
-
});
|
|
342
|
-
}
|
|
343
|
-
/**
|
|
344
|
-
* Add log entry (delegates to LogRing)
|
|
345
|
-
*/
|
|
346
|
-
addLog(type, message) {
|
|
347
|
-
this.logRing.push(type, message);
|
|
348
|
-
}
|
|
349
|
-
// ============ Public API Methods ============
|
|
350
|
-
/**
|
|
351
|
-
* Take screenshot
|
|
352
|
-
*/
|
|
353
|
-
async screenshotRaw(options) {
|
|
354
|
-
const result = await this.sendRequest("screenshot", options);
|
|
355
|
-
return Buffer.from(result.base64, "base64");
|
|
356
|
-
}
|
|
357
|
-
/**
|
|
358
|
-
* Take screenshot and return base64
|
|
359
|
-
*/
|
|
360
|
-
async screenshot(options) {
|
|
361
|
-
const result = await this.sendRequest("screenshot", options);
|
|
362
|
-
return result.base64;
|
|
363
|
-
}
|
|
364
|
-
/**
|
|
365
|
-
* Get screenshot with metadata
|
|
366
|
-
*/
|
|
367
|
-
async screenshotWithMeta(options) {
|
|
368
|
-
return this.sendRequest("screenshot", options);
|
|
369
|
-
}
|
|
370
|
-
/**
|
|
371
|
-
* Tap at coordinates
|
|
372
|
-
* @param targetPid - Optional PID to send click without stealing focus (macOS only)
|
|
373
|
-
*/
|
|
374
|
-
async tap(x, y, targetPid) {
|
|
375
|
-
await this.sendRequest("tap", { x, y, targetPid: targetPid ?? this.targetPid });
|
|
376
|
-
}
|
|
377
|
-
/**
|
|
378
|
-
* Tap an element by its text content using Accessibility API
|
|
379
|
-
* This does NOT move the cursor - perfect for background automation (macOS only)
|
|
380
|
-
* @param text - The text to search for (partial match, case-insensitive)
|
|
381
|
-
* @param pid - The process ID of the target application
|
|
382
|
-
* @param exactMatch - If true, requires exact text match
|
|
383
|
-
*/
|
|
384
|
-
async tapByText(text, pid, exactMatch = false) {
|
|
385
|
-
const resolvedPid = pid ?? this.targetPid;
|
|
386
|
-
if (resolvedPid === undefined) {
|
|
387
|
-
throw new Error("No target PID. Launch a native app (bundleId/appPath) or pass pid explicitly.");
|
|
388
|
-
}
|
|
389
|
-
return this.sendRequest("tap_by_text", { text, pid: resolvedPid, exactMatch });
|
|
390
|
-
}
|
|
391
|
-
/**
|
|
392
|
-
* Long press at coordinates
|
|
393
|
-
*/
|
|
394
|
-
async longPress(x, y, durationMs = 1000) {
|
|
395
|
-
await this.sendRequest("long_press", { x, y, durationMs });
|
|
396
|
-
}
|
|
397
|
-
/**
|
|
398
|
-
* Swipe gesture
|
|
399
|
-
*/
|
|
400
|
-
async swipe(x1, y1, x2, y2, durationMs = 300) {
|
|
401
|
-
await this.sendRequest("swipe", { x1, y1, x2, y2, durationMs });
|
|
402
|
-
}
|
|
403
|
-
/**
|
|
404
|
-
* Swipe in direction
|
|
405
|
-
*/
|
|
406
|
-
async swipeDirection(direction, distance) {
|
|
407
|
-
await this.sendRequest("swipe_direction", { direction, distance });
|
|
408
|
-
}
|
|
409
|
-
/**
|
|
410
|
-
* Input text
|
|
411
|
-
* @param targetPid - Optional PID to send input without stealing focus (macOS only)
|
|
412
|
-
*/
|
|
413
|
-
async inputText(text, targetPid) {
|
|
414
|
-
await this.sendRequest("input_text", { text, targetPid: targetPid ?? this.targetPid });
|
|
415
|
-
}
|
|
416
|
-
/**
|
|
417
|
-
* Press key
|
|
418
|
-
* @param targetPid - Optional PID to send key without stealing focus (macOS only)
|
|
419
|
-
*/
|
|
420
|
-
async pressKey(key, modifiers, targetPid) {
|
|
421
|
-
await this.sendRequest("key_event", { key, modifiers, targetPid: targetPid ?? this.targetPid });
|
|
422
|
-
}
|
|
423
|
-
/**
|
|
424
|
-
* Get the PID of the focused window (for background input)
|
|
425
|
-
*/
|
|
426
|
-
async getFocusedWindowPid() {
|
|
427
|
-
const info = await this.getWindowInfo();
|
|
428
|
-
const focused = info.windows.find((w) => w.focused);
|
|
429
|
-
return focused?.processId ?? null;
|
|
430
|
-
}
|
|
431
|
-
/**
|
|
432
|
-
* Get UI hierarchy
|
|
433
|
-
*/
|
|
434
|
-
async getUiHierarchy(windowId) {
|
|
435
|
-
return this.sendRequest("get_ui_hierarchy", { windowId });
|
|
436
|
-
}
|
|
437
|
-
/**
|
|
438
|
-
* Get UI hierarchy as XML string (for compatibility)
|
|
439
|
-
*/
|
|
440
|
-
getUiHierarchyXml() {
|
|
441
|
-
// Not supported - desktop uses accessibility tree
|
|
442
|
-
throw new Error("XML hierarchy not supported for desktop. Use getUiHierarchy() instead.");
|
|
443
|
-
}
|
|
444
|
-
/**
|
|
445
|
-
* Get window information
|
|
446
|
-
*/
|
|
447
|
-
async getWindowInfo() {
|
|
448
|
-
return this.sendRequest("get_window_info");
|
|
449
|
-
}
|
|
450
|
-
/**
|
|
451
|
-
* Focus a window
|
|
452
|
-
*/
|
|
453
|
-
async focusWindow(windowId) {
|
|
454
|
-
await this.sendRequest("focus_window", { windowId });
|
|
455
|
-
}
|
|
456
|
-
/**
|
|
457
|
-
* Resize a window
|
|
458
|
-
*/
|
|
459
|
-
async resizeWindow(width, height, windowId) {
|
|
460
|
-
await this.sendRequest("resize_window", { windowId, width, height });
|
|
461
|
-
}
|
|
462
|
-
/**
|
|
463
|
-
* Get clipboard content
|
|
464
|
-
*/
|
|
465
|
-
async getClipboard() {
|
|
466
|
-
const result = await this.sendRequest("get_clipboard");
|
|
467
|
-
return result.text ?? "";
|
|
468
|
-
}
|
|
469
|
-
/**
|
|
470
|
-
* Set clipboard content
|
|
471
|
-
*/
|
|
472
|
-
async setClipboard(text) {
|
|
473
|
-
await this.sendRequest("set_clipboard", { text });
|
|
474
|
-
}
|
|
475
|
-
/**
|
|
476
|
-
* Check accessibility permissions
|
|
477
|
-
*/
|
|
478
|
-
async checkPermissions() {
|
|
479
|
-
return this.sendRequest("check_permissions");
|
|
480
|
-
}
|
|
481
|
-
/**
|
|
482
|
-
* Get logs
|
|
483
|
-
*/
|
|
484
|
-
getLogs(options) {
|
|
485
|
-
return this.logRing.query(options);
|
|
486
|
-
}
|
|
487
|
-
/**
|
|
488
|
-
* Clear logs
|
|
489
|
-
*/
|
|
490
|
-
clearLogs() {
|
|
491
|
-
this.logRing.clear();
|
|
492
|
-
}
|
|
493
|
-
/**
|
|
494
|
-
* Get performance metrics
|
|
495
|
-
*/
|
|
496
|
-
async getPerformanceMetrics() {
|
|
497
|
-
return this.sendRequest("get_performance_metrics");
|
|
498
|
-
}
|
|
499
|
-
/**
|
|
500
|
-
* Get screen size
|
|
501
|
-
*/
|
|
502
|
-
async getScreenSize() {
|
|
503
|
-
const info = await this.getWindowInfo();
|
|
504
|
-
if (info.windows.length > 0) {
|
|
505
|
-
const focused = info.windows.find((w) => w.focused) ?? info.windows[0];
|
|
506
|
-
return {
|
|
507
|
-
width: focused.bounds.width,
|
|
508
|
-
height: focused.bounds.height,
|
|
509
|
-
};
|
|
510
|
-
}
|
|
511
|
-
return { width: 1920, height: 1080 }; // Default
|
|
512
|
-
}
|
|
513
|
-
/**
|
|
514
|
-
* Get list of connected monitors (multi-monitor support)
|
|
515
|
-
*/
|
|
516
|
-
async getMonitors() {
|
|
517
|
-
const result = await this.sendRequest("get_monitors");
|
|
518
|
-
return result.monitors;
|
|
519
|
-
}
|
|
520
|
-
/**
|
|
521
|
-
* Launch app by bundle ID (for compatibility with mobile interface).
|
|
522
|
-
* If companion is running, launches native macOS app and resolves PID.
|
|
523
|
-
*/
|
|
524
|
-
launchApp(packageName) {
|
|
525
|
-
return `Desktop platform doesn't support package launch. Use desktop_launch to start an app.`;
|
|
526
|
-
}
|
|
527
|
-
/**
|
|
528
|
-
* Stop app (for compatibility)
|
|
529
|
-
*/
|
|
530
|
-
stopApp(packageName) {
|
|
531
|
-
// No-op for desktop
|
|
532
|
-
}
|
|
533
|
-
/**
|
|
534
|
-
* Shell command (not supported)
|
|
535
|
-
*/
|
|
536
|
-
shell(command) {
|
|
537
|
-
throw new Error("Shell commands not supported for desktop. Use native APIs.");
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
|
-
//# sourceMappingURL=client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/desktop/client.ts"],"names":[],"mappings":"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"}
|
package/dist/desktop/gradle.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gradle task detection and launcher for Compose Desktop projects
|
|
3
|
-
*/
|
|
4
|
-
import { ChildProcess } from "child_process";
|
|
5
|
-
import type { GradleProject, RawLaunchOptions } from "./types.js";
|
|
6
|
-
export declare class GradleLauncher {
|
|
7
|
-
/**
|
|
8
|
-
* Check if Gradle wrapper exists in project
|
|
9
|
-
*/
|
|
10
|
-
hasGradleWrapper(projectPath: string): boolean;
|
|
11
|
-
/**
|
|
12
|
-
* Get Gradle executable (wrapper or system gradle)
|
|
13
|
-
*/
|
|
14
|
-
private getGradleExecutable;
|
|
15
|
-
/**
|
|
16
|
-
* Detect available desktop run tasks in the project
|
|
17
|
-
*/
|
|
18
|
-
detectDesktopTasks(projectPath: string): Promise<string[]>;
|
|
19
|
-
/**
|
|
20
|
-
* Analyze Gradle project and return info
|
|
21
|
-
*/
|
|
22
|
-
analyzeProject(projectPath: string): Promise<GradleProject>;
|
|
23
|
-
/**
|
|
24
|
-
* Launch desktop app via Gradle
|
|
25
|
-
* Returns the spawned process
|
|
26
|
-
*/
|
|
27
|
-
launch(options: RawLaunchOptions): ChildProcess;
|
|
28
|
-
/**
|
|
29
|
-
* Synchronous version of detectDesktopTasks (for launch)
|
|
30
|
-
*/
|
|
31
|
-
private detectDesktopTasksSync;
|
|
32
|
-
/**
|
|
33
|
-
* Stop a running Gradle process
|
|
34
|
-
*/
|
|
35
|
-
stop(process: ChildProcess): void;
|
|
36
|
-
/**
|
|
37
|
-
* Check if Gradle daemon is running
|
|
38
|
-
*/
|
|
39
|
-
isGradleDaemonRunning(projectPath: string): boolean;
|
|
40
|
-
/**
|
|
41
|
-
* Stop Gradle daemon
|
|
42
|
-
*/
|
|
43
|
-
stopGradleDaemon(projectPath: string): void;
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=gradle.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gradle.d.ts","sourceRoot":"","sources":["../../src/desktop/gradle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAuB,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlE,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAYlE,qBAAa,cAAc;IACzB;;OAEG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAM9C;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA2DhE;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAuBjE;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY;IAuD/C;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAcjC;;OAEG;IACH,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAenD;;OAEG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;CAa5C"}
|