appium-mcp 1.8.11 → 1.8.13
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/CHANGELOG.md +12 -0
- package/dist/command.d.ts +107 -0
- package/dist/command.d.ts.map +1 -0
- package/dist/command.js +214 -0
- package/dist/command.js.map +1 -0
- package/dist/session-store.d.ts +30 -3
- package/dist/session-store.d.ts.map +1 -1
- package/dist/session-store.js +29 -0
- package/dist/session-store.js.map +1 -1
- package/dist/tools/app-management/activate-app.d.ts.map +1 -1
- package/dist/tools/app-management/activate-app.js +2 -1
- package/dist/tools/app-management/activate-app.js.map +1 -1
- package/dist/tools/app-management/install-app.d.ts.map +1 -1
- package/dist/tools/app-management/install-app.js +4 -7
- package/dist/tools/app-management/install-app.js.map +1 -1
- package/dist/tools/app-management/terminate-app.d.ts.map +1 -1
- package/dist/tools/app-management/terminate-app.js +4 -7
- package/dist/tools/app-management/terminate-app.js.map +1 -1
- package/dist/tools/app-management/uninstall-app.d.ts.map +1 -1
- package/dist/tools/app-management/uninstall-app.js +4 -7
- package/dist/tools/app-management/uninstall-app.js.map +1 -1
- package/dist/tools/context/get-contexts.d.ts.map +1 -1
- package/dist/tools/context/get-contexts.js +4 -3
- package/dist/tools/context/get-contexts.js.map +1 -1
- package/dist/tools/context/switch-context.d.ts.map +1 -1
- package/dist/tools/context/switch-context.js +6 -5
- package/dist/tools/context/switch-context.js.map +1 -1
- package/dist/tools/interactions/click.d.ts.map +1 -1
- package/dist/tools/interactions/click.js +3 -4
- package/dist/tools/interactions/click.js.map +1 -1
- package/dist/tools/interactions/double-tap.d.ts.map +1 -1
- package/dist/tools/interactions/double-tap.js +13 -16
- package/dist/tools/interactions/double-tap.js.map +1 -1
- package/dist/tools/interactions/drag-and-drop.d.ts.map +1 -1
- package/dist/tools/interactions/drag-and-drop.js +4 -3
- package/dist/tools/interactions/drag-and-drop.js.map +1 -1
- package/dist/tools/interactions/find.d.ts +2 -2
- package/dist/tools/interactions/find.d.ts.map +1 -1
- package/dist/tools/interactions/find.js +1 -1
- package/dist/tools/interactions/find.js.map +1 -1
- package/dist/tools/interactions/get-page-source.d.ts.map +1 -1
- package/dist/tools/interactions/get-page-source.js +2 -1
- package/dist/tools/interactions/get-page-source.js.map +1 -1
- package/dist/tools/interactions/get-text.d.ts.map +1 -1
- package/dist/tools/interactions/get-text.js +3 -4
- package/dist/tools/interactions/get-text.js.map +1 -1
- package/dist/tools/interactions/long-press.d.ts.map +1 -1
- package/dist/tools/interactions/long-press.js +16 -20
- package/dist/tools/interactions/long-press.js.map +1 -1
- package/dist/tools/interactions/screenshot.d.ts +2 -4
- package/dist/tools/interactions/screenshot.d.ts.map +1 -1
- package/dist/tools/interactions/screenshot.js +3 -4
- package/dist/tools/interactions/screenshot.js.map +1 -1
- package/dist/tools/interactions/set-value.d.ts.map +1 -1
- package/dist/tools/interactions/set-value.js +3 -4
- package/dist/tools/interactions/set-value.js.map +1 -1
- package/dist/tools/navigations/scroll-to-element.js.map +1 -1
- package/dist/tools/navigations/scroll.d.ts.map +1 -1
- package/dist/tools/navigations/scroll.js +16 -23
- package/dist/tools/navigations/scroll.js.map +1 -1
- package/dist/tools/navigations/swipe.d.ts.map +1 -1
- package/dist/tools/navigations/swipe.js +13 -17
- package/dist/tools/navigations/swipe.js.map +1 -1
- package/dist/tools/test-generation/locators.d.ts.map +1 -1
- package/dist/tools/test-generation/locators.js +14 -6
- package/dist/tools/test-generation/locators.js.map +1 -1
- package/package.json +12 -3
- package/server.json +2 -2
- package/.github/dependabot.yml +0 -17
- package/.github/workflows/ci.yml +0 -44
- package/.github/workflows/pr-title.yml +0 -10
- package/.github/workflows/publish.yml +0 -66
- package/.gitmodules +0 -9
- package/.prettierignore +0 -29
- package/.prettierrc +0 -9
- package/.releaserc +0 -37
- package/docs/CONTRIBUTING.md +0 -424
- package/eslint.config.js +0 -23
- package/examples/android-gmail.md +0 -7
- package/examples/android-todo-app.md +0 -9
- package/jest.config.js +0 -23
- package/src/devicemanager/adb-manager.ts +0 -164
- package/src/devicemanager/ios-manager.ts +0 -145
- package/src/index.ts +0 -45
- package/src/locators/element-filter.ts +0 -136
- package/src/locators/generate-all-locators.ts +0 -150
- package/src/locators/locator-generation.ts +0 -657
- package/src/locators/source-parsing.ts +0 -149
- package/src/logger.ts +0 -11
- package/src/resources/caps.json +0 -697
- package/src/resources/index.ts +0 -8
- package/src/resources/java/template.ts +0 -83
- package/src/resources/submodules/appium/.github/PULL_REQUEST_TEMPLATE.md +0 -28
- package/src/resources/submodules/appium/CHANGELOG.md +0 -45
- package/src/resources/submodules/appium/CONDUCT.md +0 -48
- package/src/resources/submodules/appium/GOVERNANCE.md +0 -185
- package/src/resources/submodules/appium/IDEAS.md +0 -16
- package/src/resources/submodules/appium/README.md +0 -221
- package/src/resources/submodules/appium/ROADMAP.md +0 -30
- package/src/resources/submodules/appium/SPONSORS.md +0 -3
- package/src/resources/submodules/appium/docs/README.md +0 -6
- package/src/resources/submodules/appium/docs/payout.md +0 -35
- package/src/resources/submodules/appium/packages/appium/CHANGELOG.md +0 -1437
- package/src/resources/submodules/appium/packages/appium/README.md +0 -221
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/index.md +0 -2
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-appiumconf2024.md +0 -45
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-browserstack-as-strategic-partner.md +0 -46
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-headspin-as-development-partner.md +0 -47
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-lambdatest-as-strategic-partner.md +0 -42
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-sauce-labs-as-strategic-partner.md +0 -36
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-sponsorship-program.md +0 -48
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/appium3.md +0 -40
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/hello-world.md +0 -15
- package/src/resources/submodules/appium/packages/appium/docs/en/contributing/index.md +0 -150
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-docs.md +0 -86
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-doctor-checks.md +0 -141
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-drivers.md +0 -860
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-plugins.md +0 -514
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/config-system.md +0 -451
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/index.md +0 -18
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/sensitive.md +0 -49
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/clients.md +0 -132
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/drivers.md +0 -207
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/index.md +0 -45
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/plugins.md +0 -138
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/tools.md +0 -83
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/branch-testing.md +0 -57
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/caching.md +0 -76
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/caps.md +0 -275
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/config.md +0 -98
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/context.md +0 -44
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/event-timing.md +0 -73
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/execute-methods.md +0 -122
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/grid.md +0 -166
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/headers.md +0 -17
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/log-filters.md +0 -86
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/managing-exts.md +0 -87
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/migrating-1-to-2.md +0 -368
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/migrating-2-to-3.md +0 -464
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/security.md +0 -89
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/settings.md +0 -68
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/tls.md +0 -42
- package/src/resources/submodules/appium/packages/appium/docs/en/index.md +0 -59
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/appium.md +0 -202
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/clients.md +0 -127
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/drivers.md +0 -188
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/history.md +0 -196
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/index.md +0 -39
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/index.md +0 -29
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/install.md +0 -50
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/next-steps.md +0 -23
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/requirements.md +0 -29
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-dotnet.md +0 -105
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-java.md +0 -23
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-js.md +0 -75
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-py.md +0 -60
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-rb.md +0 -83
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/uiauto2-driver.md +0 -144
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/appium.md +0 -394
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/bidi.md +0 -70
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/index.md +0 -30
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/jsonwp.md +0 -214
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/mjsonwp.md +0 -151
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/others.md +0 -671
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/plugins.md +0 -289
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/webdriver.md +0 -1114
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/env-vars.md +0 -31
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/extensions.md +0 -239
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/index.md +0 -35
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/server.md +0 -76
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/setup.md +0 -76
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/index.md +0 -25
- package/src/resources/submodules/appium/packages/appium/docs/en/resources/index.md +0 -28
- package/src/resources/submodules/appium/packages/appium/docs/en/sponsors/index.md +0 -64
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/index.md +0 -2
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-appiumconf2024.md +0 -45
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-browserstack-as-strategic-partner.md +0 -46
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-headspin-as-development-partner.md +0 -47
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-lambdatest-as-strategic-partner.md +0 -41
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-sauce-labs-as-strategic-partner.md +0 -36
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-sponsorship-program.md +0 -48
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/appium3.md +0 -40
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/hello-world.md +0 -15
- package/src/resources/submodules/appium/packages/appium/docs/ja/contributing/index.md +0 -158
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-docs.md +0 -86
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-doctor-checks.md +0 -141
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-drivers.md +0 -866
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-plugins.md +0 -520
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/config-system.md +0 -468
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/index.md +0 -18
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/sensitive.md +0 -49
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/clients.md +0 -143
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/drivers.md +0 -219
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/index.md +0 -45
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/plugins.md +0 -140
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/tools.md +0 -87
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/branch-testing.md +0 -57
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/caching.md +0 -78
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/caps.md +0 -259
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/config.md +0 -102
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/context.md +0 -44
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/event-timing.md +0 -75
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/execute-methods.md +0 -142
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/grid.md +0 -166
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/headers.md +0 -17
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/log-filters.md +0 -86
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/managing-exts.md +0 -89
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/migrating-1-to-2.md +0 -402
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/migrating-2-to-3.md +0 -458
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/security.md +0 -89
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/settings.md +0 -70
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/tls.md +0 -43
- package/src/resources/submodules/appium/packages/appium/docs/ja/index.md +0 -55
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/appium.md +0 -191
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/clients.md +0 -139
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/drivers.md +0 -188
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/history.md +0 -196
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/index.md +0 -39
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/index.md +0 -23
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/install.md +0 -47
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/next-steps.md +0 -19
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/requirements.md +0 -29
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-dotnet.md +0 -107
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-java.md +0 -23
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-js.md +0 -77
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-py.md +0 -63
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-rb.md +0 -85
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/uiauto2-driver.md +0 -148
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/appium.md +0 -395
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/bidi.md +0 -71
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/index.md +0 -30
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/jsonwp.md +0 -215
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/mjsonwp.md +0 -152
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/others.md +0 -672
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/plugins.md +0 -291
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/webdriver.md +0 -1114
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/env-vars.md +0 -31
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/extensions.md +0 -240
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/index.md +0 -35
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/server.md +0 -76
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/setup.md +0 -78
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/index.md +0 -25
- package/src/resources/submodules/appium/packages/appium/docs/ja/resources/index.md +0 -28
- package/src/resources/submodules/appium/packages/appium/docs/ja/sponsors/index.md +0 -61
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-horiz-white.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-horiz.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-white.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-dark.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-light.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-lambdatest-dark.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-lambdatest-light.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-sauce.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/index.md +0 -2
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-appiumconf2024.md +0 -45
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-browserstack-as-strategic-partner.md +0 -46
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-headspin-as-development-partner.md +0 -47
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-lambdatest-as-strategic-partner.md +0 -41
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-sauce-labs-as-strategic-partner.md +0 -36
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-sponsorship-program.md +0 -48
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/appium3.md +0 -40
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/hello-world.md +0 -15
- package/src/resources/submodules/appium/packages/appium/docs/zh/contributing/index.md +0 -132
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-docs.md +0 -86
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-doctor-checks.md +0 -141
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-drivers.md +0 -866
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-plugins.md +0 -520
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/config-system.md +0 -468
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/index.md +0 -18
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/sensitive.md +0 -49
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/clients.md +0 -143
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/drivers.md +0 -219
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/index.md +0 -45
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/plugins.md +0 -140
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/tools.md +0 -87
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/branch-testing.md +0 -57
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/caching.md +0 -78
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/caps.md +0 -284
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/config.md +0 -102
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/context.md +0 -44
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/event-timing.md +0 -75
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/execute-methods.md +0 -142
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/grid.md +0 -166
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/headers.md +0 -17
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/log-filters.md +0 -86
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/managing-exts.md +0 -89
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/migrating-1-to-2.md +0 -410
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/migrating-2-to-3.md +0 -459
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/security.md +0 -89
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/settings.md +0 -70
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/tls.md +0 -43
- package/src/resources/submodules/appium/packages/appium/docs/zh/index.md +0 -54
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/appium.md +0 -200
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/clients.md +0 -139
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/drivers.md +0 -188
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/history.md +0 -196
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/index.md +0 -39
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/index.md +0 -23
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/install.md +0 -47
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/next-steps.md +0 -19
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/requirements.md +0 -21
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-dotnet.md +0 -99
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-java.md +0 -20
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-js.md +0 -62
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-py.md +0 -57
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-rb.md +0 -80
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/uiauto2-driver.md +0 -148
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/appium.md +0 -395
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/bidi.md +0 -71
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/index.md +0 -30
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/jsonwp.md +0 -215
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/mjsonwp.md +0 -152
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/others.md +0 -672
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/plugins.md +0 -291
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/webdriver.md +0 -1114
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/env-vars.md +0 -31
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/extensions.md +0 -240
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/index.md +0 -35
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/server.md +0 -76
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/setup.md +0 -78
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/index.md +0 -25
- package/src/resources/submodules/appium/packages/appium/docs/zh/resources/index.md +0 -28
- package/src/resources/submodules/appium/packages/appium/docs/zh/sponsors/index.md +0 -61
- package/src/resources/submodules/appium/packages/appium/types/manifest/README.md +0 -30
- package/src/resources/submodules/appium/packages/base-driver/CHANGELOG.md +0 -1131
- package/src/resources/submodules/appium/packages/base-driver/README.md +0 -15
- package/src/resources/submodules/appium/packages/base-driver/docs/mjsonwp/errors.md +0 -82
- package/src/resources/submodules/appium/packages/base-driver/docs/mjsonwp/protocol-methods.md +0 -182
- package/src/resources/submodules/appium/packages/base-driver/static/appium.png +0 -0
- package/src/resources/submodules/appium/packages/base-plugin/CHANGELOG.md +0 -672
- package/src/resources/submodules/appium/packages/base-plugin/README.md +0 -15
- package/src/resources/submodules/appium/packages/docutils/CHANGELOG.md +0 -948
- package/src/resources/submodules/appium/packages/docutils/README.md +0 -27
- package/src/resources/submodules/appium/packages/driver-test-support/CHANGELOG.md +0 -717
- package/src/resources/submodules/appium/packages/driver-test-support/README.md +0 -112
- package/src/resources/submodules/appium/packages/eslint-config-appium-ts/CHANGELOG.md +0 -168
- package/src/resources/submodules/appium/packages/eslint-config-appium-ts/README.md +0 -33
- package/src/resources/submodules/appium/packages/execute-driver-plugin/CHANGELOG.md +0 -603
- package/src/resources/submodules/appium/packages/execute-driver-plugin/README.md +0 -42
- package/src/resources/submodules/appium/packages/fake-driver/CHANGELOG.md +0 -545
- package/src/resources/submodules/appium/packages/fake-driver/README.md +0 -7
- package/src/resources/submodules/appium/packages/fake-driver/lib/screen.png +0 -0
- package/src/resources/submodules/appium/packages/fake-plugin/CHANGELOG.md +0 -683
- package/src/resources/submodules/appium/packages/fake-plugin/README.md +0 -7
- package/src/resources/submodules/appium/packages/images-plugin/CHANGELOG.md +0 -602
- package/src/resources/submodules/appium/packages/images-plugin/README.md +0 -27
- package/src/resources/submodules/appium/packages/images-plugin/docs/find-by-image.md +0 -65
- package/src/resources/submodules/appium/packages/images-plugin/docs/image-comparison.md +0 -203
- package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/appstore.png +0 -0
- package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img1.png +0 -0
- package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img2.png +0 -0
- package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img2_part.png +0 -0
- package/src/resources/submodules/appium/packages/logger/CHANGELOG.md +0 -162
- package/src/resources/submodules/appium/packages/logger/README.md +0 -31
- package/src/resources/submodules/appium/packages/opencv/CHANGELOG.md +0 -384
- package/src/resources/submodules/appium/packages/opencv/README.md +0 -68
- package/src/resources/submodules/appium/packages/opencv/test/e2e/images/appium-diagram.jpg +0 -0
- package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc1.png +0 -0
- package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc2.png +0 -0
- package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc_rotated.png +0 -0
- package/src/resources/submodules/appium/packages/opencv/test/e2e/images/findwaldo.jpg +0 -0
- package/src/resources/submodules/appium/packages/opencv/test/e2e/images/number5.png +0 -0
- package/src/resources/submodules/appium/packages/opencv/test/e2e/images/waldo.jpg +0 -0
- package/src/resources/submodules/appium/packages/plugin-test-support/CHANGELOG.md +0 -539
- package/src/resources/submodules/appium/packages/plugin-test-support/README.md +0 -49
- package/src/resources/submodules/appium/packages/relaxed-caps-plugin/CHANGELOG.md +0 -154
- package/src/resources/submodules/appium/packages/relaxed-caps-plugin/README.md +0 -35
- package/src/resources/submodules/appium/packages/schema/CHANGELOG.md +0 -271
- package/src/resources/submodules/appium/packages/schema/README.md +0 -50
- package/src/resources/submodules/appium/packages/storage-plugin/CHANGELOG.md +0 -73
- package/src/resources/submodules/appium/packages/storage-plugin/README.md +0 -83
- package/src/resources/submodules/appium/packages/strongbox/CHANGELOG.md +0 -94
- package/src/resources/submodules/appium/packages/strongbox/README.md +0 -96
- package/src/resources/submodules/appium/packages/support/CHANGELOG.md +0 -1054
- package/src/resources/submodules/appium/packages/support/README.md +0 -161
- package/src/resources/submodules/appium/packages/test-support/CHANGELOG.md +0 -712
- package/src/resources/submodules/appium/packages/test-support/README.md +0 -61
- package/src/resources/submodules/appium/packages/tsconfig/CHANGELOG.md +0 -131
- package/src/resources/submodules/appium/packages/tsconfig/README.md +0 -19
- package/src/resources/submodules/appium/packages/types/CHANGELOG.md +0 -793
- package/src/resources/submodules/appium/packages/types/README.md +0 -21
- package/src/resources/submodules/appium/packages/universal-xml-plugin/CHANGELOG.md +0 -435
- package/src/resources/submodules/appium/packages/universal-xml-plugin/README.md +0 -53
- package/src/resources/submodules/appium/renovate/README.md +0 -63
- package/src/resources/submodules/appium-uiautomator2-driver/CHANGELOG.md +0 -1204
- package/src/resources/submodules/appium-uiautomator2-driver/README.md +0 -2077
- package/src/resources/submodules/appium-uiautomator2-driver/docs/actions.md +0 -72
- package/src/resources/submodules/appium-uiautomator2-driver/docs/activity-startup.md +0 -47
- package/src/resources/submodules/appium-uiautomator2-driver/docs/android-appbundle.md +0 -69
- package/src/resources/submodules/appium-uiautomator2-driver/docs/android-mobile-gestures.md +0 -352
- package/src/resources/submodules/appium-uiautomator2-driver/docs/bidi.md +0 -50
- package/src/resources/submodules/appium-uiautomator2-driver/docs/capability-sets.md +0 -136
- package/src/resources/submodules/appium-uiautomator2-driver/docs/scheduled-actions.md +0 -155
- package/src/resources/submodules/appium-uiautomator2-driver/docs/uiautomator-uiselector.md +0 -51
- package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/main.md +0 -95
- package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/screen1.png +0 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/screen2.png +0 -0
- package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/checkered-squares.png +0 -0
- package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/start-button.png +0 -0
- package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/stop-button.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/.github/ISSUE_TEMPLATE.md +0 -4
- package/src/resources/submodules/appium-xcuitest-driver/CHANGELOG.md +0 -2594
- package/src/resources/submodules/appium-xcuitest-driver/README.md +0 -55
- package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-logo-white.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-logo.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-plus-xctest.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/contributing.md +0 -45
- package/src/resources/submodules/appium-xcuitest-driver/docs/endpoints-wda.md +0 -61
- package/src/resources/submodules/appium-xcuitest-driver/docs/endpoints.md +0 -98
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/keynote.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/on_my_iphone.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/top_files.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/attach-to-running-wda.md +0 -43
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/audio-capture.md +0 -78
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/capability-sets.md +0 -169
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/ci-setup.md +0 -47
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/clipboard.md +0 -47
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/elements-lookup-troubleshooting.md +0 -158
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/file-transfer.md +0 -147
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/gestures.md +0 -52
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/hybrid.md +0 -137
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/input-events.md +0 -67
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/install-certificate.md +0 -19
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/multiple-xcode-versions.md +0 -37
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/parallel-tests.md +0 -39
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-prebuilt-wda.md +0 -135
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-preinstalled-wda.md +0 -178
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/touch-id.md +0 -33
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/troubleshooting.md +0 -191
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/tvos.md +0 -114
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/wda-custom-server.md +0 -283
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/wda-slowness.md +0 -231
- package/src/resources/submodules/appium-xcuitest-driver/docs/index.md +0 -36
- package/src/resources/submodules/appium-xcuitest-driver/docs/installation/index.md +0 -137
- package/src/resources/submodules/appium-xcuitest-driver/docs/overview.md +0 -19
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/check-prov-prof.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/create-new-project.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/create-single-page.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/no-prov-prof.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/project-prov-prof.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/set-up-bundle.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/untrusted-dev.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-bundle-id.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-config.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-facebook-fail.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-facebook-succeed.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/index.md +0 -51
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-basic-auto.md +0 -49
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-basic-manual.md +0 -40
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-full-manual.md +0 -50
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-generic-manual.md +0 -49
- package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/real-device-config.md +0 -100
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/assets/images/useXctestrunFile.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/bidi.md +0 -75
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/capabilities.md +0 -165
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/commands.md +0 -490
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/element-attributes.md +0 -27
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/execute-methods.md +0 -2206
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/ios-predicate.md +0 -196
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/locator-strategies.md +0 -19
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/scripts.md +0 -29
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/security-flags.md +0 -22
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/server-args.md +0 -16
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/settings.md +0 -49
- package/src/resources/submodules/appium-xcuitest-driver/test/assets/TestApp-iphonesimulator.app/Default-568h@2x.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/test/assets/test.png +0 -0
- package/src/schema.ts +0 -5
- package/src/scripts/simple-index-documentation.ts +0 -93
- package/src/scripts/simple-query-documentation.ts +0 -61
- package/src/server.ts +0 -40
- package/src/session-store.ts +0 -117
- package/src/tests/README.md +0 -83
- package/src/tests/__mocks__/@appium/support.ts +0 -30
- package/src/tests/generate-all-locators.test.ts +0 -178
- package/src/tests/screenshot.test.ts +0 -279
- package/src/tests/test-setup-wda.ts +0 -255
- package/src/tools/README.md +0 -179
- package/src/tools/app-management/activate-app.ts +0 -46
- package/src/tools/app-management/install-app.ts +0 -54
- package/src/tools/app-management/list-apps.ts +0 -87
- package/src/tools/app-management/terminate-app.ts +0 -56
- package/src/tools/app-management/uninstall-app.ts +0 -56
- package/src/tools/context/get-contexts.ts +0 -78
- package/src/tools/context/switch-context.ts +0 -106
- package/src/tools/documentation/answer-appium.ts +0 -73
- package/src/tools/documentation/index.ts +0 -98
- package/src/tools/documentation/reasoning-rag.ts +0 -435
- package/src/tools/documentation/sentence-transformers-embeddings.ts +0 -144
- package/src/tools/documentation/simple-pdf-indexer.ts +0 -508
- package/src/tools/documentation/uploads/documents.json +0 -1
- package/src/tools/index.ts +0 -159
- package/src/tools/interactions/click.ts +0 -50
- package/src/tools/interactions/double-tap.ts +0 -99
- package/src/tools/interactions/drag-and-drop.ts +0 -238
- package/src/tools/interactions/find.ts +0 -61
- package/src/tools/interactions/get-page-source.ts +0 -65
- package/src/tools/interactions/get-text.ts +0 -50
- package/src/tools/interactions/long-press.ts +0 -120
- package/src/tools/interactions/screenshot.ts +0 -119
- package/src/tools/interactions/set-value.ts +0 -54
- package/src/tools/ios/boot-simulator.ts +0 -88
- package/src/tools/ios/install-wda.ts +0 -277
- package/src/tools/ios/setup-wda.ts +0 -217
- package/src/tools/navigations/scroll-to-element.ts +0 -198
- package/src/tools/navigations/scroll.ts +0 -113
- package/src/tools/navigations/swipe.ts +0 -368
- package/src/tools/session/create-session.ts +0 -379
- package/src/tools/session/delete-session.ts +0 -56
- package/src/tools/session/select-device.ts +0 -326
- package/src/tools/session/select-platform.ts +0 -250
- package/src/tools/test-generation/generate-tests.ts +0 -48
- package/src/tools/test-generation/locators.ts +0 -101
- package/src/types/appium-ios-device.d.ts +0 -8
- package/src/types/appium-xcuitest-driver.d.ts +0 -5
- package/src/ui/mcp-ui-utils.ts +0 -1630
- package/tsconfig.json +0 -15
- package/tsconfig.tsbuildinfo +0 -1
package/docs/CONTRIBUTING.md
DELETED
|
@@ -1,424 +0,0 @@
|
|
|
1
|
-
# Contributing to MCP Appium
|
|
2
|
-
|
|
3
|
-
Welcome! This guide will help you extend MCP Appium by adding new tools and resources.
|
|
4
|
-
|
|
5
|
-
## Table of Contents
|
|
6
|
-
|
|
7
|
-
- [Adding New Tools](#adding-new-tools)
|
|
8
|
-
- [Adding New Resources](#adding-new-resources)
|
|
9
|
-
- [Code Style Guidelines](#code-style-guidelines)
|
|
10
|
-
- [Formatting Best Practices](#formatting-best-practices)
|
|
11
|
-
- [Tool Metadata with YAML](#tool-metadata-with-yaml)
|
|
12
|
-
- [Code Style Guidelines](#code-style-guidelines)
|
|
13
|
-
- [Formatting Best Practices](#formatting-best-practices)
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## Adding New Tools
|
|
18
|
-
|
|
19
|
-
Tools are the core capabilities of MCP Appium. They define actions that can be performed on mobile devices.
|
|
20
|
-
|
|
21
|
-
### Quick Start: Simple Tool
|
|
22
|
-
|
|
23
|
-
Here's a minimal example of adding a new tool:
|
|
24
|
-
|
|
25
|
-
```typescript
|
|
26
|
-
// src/tools/my-new-tool.ts
|
|
27
|
-
import { FastMCP } from 'fastmcp/dist/FastMCP.js';
|
|
28
|
-
import { z } from 'zod';
|
|
29
|
-
import { getDriver } from './session-store.js';
|
|
30
|
-
|
|
31
|
-
export default function myNewTool(server: FastMCP): void {
|
|
32
|
-
server.addTool({
|
|
33
|
-
name: 'appium_my_new_tool',
|
|
34
|
-
description: 'Description of what this tool does',
|
|
35
|
-
parameters: z.object({
|
|
36
|
-
param1: z.string().describe('Description of param1'),
|
|
37
|
-
param2: z.number().optional().describe('Description of param2'),
|
|
38
|
-
}),
|
|
39
|
-
annotations: {
|
|
40
|
-
readOnlyHint: false, // Set to true if tool only reads data
|
|
41
|
-
openWorldHint: false, // Set to true if tool requires real-world knowledge
|
|
42
|
-
},
|
|
43
|
-
execute: async (args: any, context: any): Promise<any> => {
|
|
44
|
-
const driver = getDriver();
|
|
45
|
-
if (!driver) {
|
|
46
|
-
throw new Error(
|
|
47
|
-
'No active driver session. Please create a session first.'
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// Your tool logic here
|
|
52
|
-
const result = await driver.someMethod(args.param1);
|
|
53
|
-
|
|
54
|
-
return {
|
|
55
|
-
content: [
|
|
56
|
-
{
|
|
57
|
-
type: 'text',
|
|
58
|
-
text: `Success message: ${result}`,
|
|
59
|
-
},
|
|
60
|
-
],
|
|
61
|
-
};
|
|
62
|
-
},
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### Registering the Tool
|
|
68
|
-
|
|
69
|
-
Add your tool to `src/tools/index.ts`:
|
|
70
|
-
|
|
71
|
-
```typescript
|
|
72
|
-
import myNewTool from './my-new-tool.js';
|
|
73
|
-
|
|
74
|
-
export default function registerTools(server: FastMCP): void {
|
|
75
|
-
// ... existing code ...
|
|
76
|
-
|
|
77
|
-
myNewTool(server); // Add this line
|
|
78
|
-
|
|
79
|
-
// ... rest of the tools ...
|
|
80
|
-
}
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### Tool Parameters
|
|
84
|
-
|
|
85
|
-
Use Zod schemas to define parameters:
|
|
86
|
-
|
|
87
|
-
```typescript
|
|
88
|
-
import { z } from 'zod';
|
|
89
|
-
|
|
90
|
-
parameters: z.object({
|
|
91
|
-
// Required string parameter
|
|
92
|
-
requiredString: z.string().describe('A required string parameter'),
|
|
93
|
-
|
|
94
|
-
// Optional number parameter
|
|
95
|
-
optionalNumber: z.number().optional().describe('An optional number'),
|
|
96
|
-
|
|
97
|
-
// Enum parameter
|
|
98
|
-
platform: z.enum(['ios', 'android']).describe('Target platform'),
|
|
99
|
-
|
|
100
|
-
// Object parameter
|
|
101
|
-
config: z
|
|
102
|
-
.object({
|
|
103
|
-
key: z.string(),
|
|
104
|
-
value: z.string(),
|
|
105
|
-
})
|
|
106
|
-
.optional()
|
|
107
|
-
.describe('Configuration object'),
|
|
108
|
-
|
|
109
|
-
// Array parameter
|
|
110
|
-
items: z.array(z.string()).describe('List of items'),
|
|
111
|
-
});
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### Tool Annotations
|
|
115
|
-
|
|
116
|
-
Annotations help the AI understand when to use your tool:
|
|
117
|
-
|
|
118
|
-
- `readOnlyHint: true` - Use when the tool only retrieves/reads data without modifying state
|
|
119
|
-
- `readOnlyHint: false` - Use when the tool performs actions or modifications
|
|
120
|
-
- `openWorldHint: true` - Use when the tool requires knowledge beyond the codebase
|
|
121
|
-
- `openWorldHint: false` - Use for codebase-specific operations
|
|
122
|
-
|
|
123
|
-
### Common Patterns
|
|
124
|
-
|
|
125
|
-
#### 1. Session Management Tools
|
|
126
|
-
|
|
127
|
-
```typescript
|
|
128
|
-
import {
|
|
129
|
-
getDriver,
|
|
130
|
-
hasActiveSession,
|
|
131
|
-
safeDeleteSession,
|
|
132
|
-
} from './session-store.js';
|
|
133
|
-
|
|
134
|
-
// Check for active session
|
|
135
|
-
if (!hasActiveSession()) {
|
|
136
|
-
throw new Error('No active session. Please create a session first.');
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
const driver = getDriver();
|
|
140
|
-
// Use driver...
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
#### 2. Platform-Specific Tools
|
|
144
|
-
|
|
145
|
-
```typescript
|
|
146
|
-
import { getPlatformName } from './session-store.js';
|
|
147
|
-
|
|
148
|
-
const platform = getPlatformName(driver);
|
|
149
|
-
if (platform === 'Android') {
|
|
150
|
-
// Android-specific implementation
|
|
151
|
-
} else if (platform === 'iOS') {
|
|
152
|
-
// iOS-specific implementation
|
|
153
|
-
}
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
## Adding New Resources
|
|
159
|
-
|
|
160
|
-
Resources provide contextual information to help the AI assist users better.
|
|
161
|
-
|
|
162
|
-
### Creating a Resource
|
|
163
|
-
|
|
164
|
-
```typescript
|
|
165
|
-
// src/resources/my-resource.ts
|
|
166
|
-
export default function myResource(server: any): void {
|
|
167
|
-
server.addResource({
|
|
168
|
-
uri: 'my://resource-uri',
|
|
169
|
-
name: 'My Resource Name',
|
|
170
|
-
description: 'Description of what this resource provides',
|
|
171
|
-
mimeType: 'text/plain', // or 'application/json', 'text/markdown', etc.
|
|
172
|
-
async load() {
|
|
173
|
-
// Return the resource content
|
|
174
|
-
return {
|
|
175
|
-
text: 'Resource content here',
|
|
176
|
-
// or
|
|
177
|
-
// data: someJSONData,
|
|
178
|
-
};
|
|
179
|
-
},
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
### Registering a Resource
|
|
185
|
-
|
|
186
|
-
Add your resource to `src/resources/index.ts`:
|
|
187
|
-
|
|
188
|
-
```typescript
|
|
189
|
-
import myResource from './my-resource.js';
|
|
190
|
-
|
|
191
|
-
export default function registerResources(server: any) {
|
|
192
|
-
myResource(server); // Add this line
|
|
193
|
-
console.log('All resources registered');
|
|
194
|
-
}
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
### Resource Types
|
|
198
|
-
|
|
199
|
-
#### Text Resource
|
|
200
|
-
|
|
201
|
-
```typescript
|
|
202
|
-
{
|
|
203
|
-
uri: 'doc://example',
|
|
204
|
-
name: 'Example Resource',
|
|
205
|
-
mimeType: 'text/plain',
|
|
206
|
-
async load() {
|
|
207
|
-
return { text: 'Simple text content' };
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
#### JSON Resource
|
|
213
|
-
|
|
214
|
-
```typescript
|
|
215
|
-
{
|
|
216
|
-
uri: 'data://example',
|
|
217
|
-
name: 'Example Data',
|
|
218
|
-
mimeType: 'application/json',
|
|
219
|
-
async load() {
|
|
220
|
-
return { data: { key: 'value' } };
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
#### Markdown Resource
|
|
226
|
-
|
|
227
|
-
```typescript
|
|
228
|
-
{
|
|
229
|
-
uri: 'doc://guide',
|
|
230
|
-
name: 'Guide',
|
|
231
|
-
mimeType: 'text/markdown',
|
|
232
|
-
async load() {
|
|
233
|
-
return { text: '# Markdown Content' };
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
---
|
|
239
|
-
|
|
240
|
-
## Code Style Guidelines
|
|
241
|
-
|
|
242
|
-
### 1. File Naming
|
|
243
|
-
|
|
244
|
-
- Tools: `kebab-case.ts` (e.g., `boot-simulator.ts`)
|
|
245
|
-
- Resources: `kebab-case.ts` (e.g., `java-template.ts`)
|
|
246
|
-
|
|
247
|
-
### 2. Function Exports
|
|
248
|
-
|
|
249
|
-
Always export as default function:
|
|
250
|
-
|
|
251
|
-
```typescript
|
|
252
|
-
export default function myTool(server: FastMCP): void {
|
|
253
|
-
// implementation
|
|
254
|
-
}
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
### 3. Error Handling
|
|
258
|
-
|
|
259
|
-
Always provide helpful error messages:
|
|
260
|
-
|
|
261
|
-
```typescript
|
|
262
|
-
if (!driver) {
|
|
263
|
-
throw new Error('No active driver session. Please create a session first.');
|
|
264
|
-
}
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
### 4. Return Values
|
|
268
|
-
|
|
269
|
-
Always return content in the expected format:
|
|
270
|
-
|
|
271
|
-
```typescript
|
|
272
|
-
return {
|
|
273
|
-
content: [
|
|
274
|
-
{
|
|
275
|
-
type: 'text',
|
|
276
|
-
text: 'Success message or data',
|
|
277
|
-
},
|
|
278
|
-
],
|
|
279
|
-
};
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
### 5. Async/Await
|
|
283
|
-
|
|
284
|
-
Always use async/await for async operations:
|
|
285
|
-
|
|
286
|
-
```typescript
|
|
287
|
-
// Good
|
|
288
|
-
const result = await driver.someMethod();
|
|
289
|
-
|
|
290
|
-
// Bad
|
|
291
|
-
driver.someMethod().then(result => ...)
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
### 6. Type Safety
|
|
295
|
-
|
|
296
|
-
Use proper TypeScript types:
|
|
297
|
-
|
|
298
|
-
```typescript
|
|
299
|
-
execute: async (args: any, context: any): Promise<any> => {
|
|
300
|
-
// Type your variables
|
|
301
|
-
const driver = getDriver();
|
|
302
|
-
if (!driver) {
|
|
303
|
-
throw new Error('No driver');
|
|
304
|
-
}
|
|
305
|
-
// ...
|
|
306
|
-
};
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
---
|
|
310
|
-
|
|
311
|
-
## Examples
|
|
312
|
-
|
|
313
|
-
See these existing tools for reference:
|
|
314
|
-
|
|
315
|
-
- **Simple tool**: `src/tools/scroll.ts` - Basic scrolling functionality
|
|
316
|
-
- **Complex tool**: `src/tools/create-session.ts` - Session management with multiple capabilities
|
|
317
|
-
- **Interaction tool**: `src/tools/interactions/click.ts` - Element interaction
|
|
318
|
-
- **Prompt-based tool**: `src/tools/generate-tests.ts` - AI instructions
|
|
319
|
-
|
|
320
|
-
---
|
|
321
|
-
|
|
322
|
-
## Testing
|
|
323
|
-
|
|
324
|
-
After adding a new tool:
|
|
325
|
-
|
|
326
|
-
1. Build the project: `npm run build`
|
|
327
|
-
2. Run linter: `npm run lint`
|
|
328
|
-
3. Test the tool with an MCP client
|
|
329
|
-
4. Verify the tool appears in the tools list
|
|
330
|
-
|
|
331
|
-
---
|
|
332
|
-
|
|
333
|
-
## Pre-Release Checklist
|
|
334
|
-
|
|
335
|
-
Before releasing a new version, ensure documentation submodules are up to date:
|
|
336
|
-
|
|
337
|
-
### Updating Documentation Submodules
|
|
338
|
-
|
|
339
|
-
This project uses Git submodules to automatically sync documentation from the official Appium repositories. Before each release, you must update the submodules to ensure you have the latest documentation files (.md and image files).
|
|
340
|
-
|
|
341
|
-
**Required steps before each release:**
|
|
342
|
-
|
|
343
|
-
1. **Update all submodules to latest commits:**
|
|
344
|
-
|
|
345
|
-
```bash
|
|
346
|
-
./scripts/update-submodules.sh
|
|
347
|
-
```
|
|
348
|
-
|
|
349
|
-
This script will:
|
|
350
|
-
|
|
351
|
-
- Update all Git submodules to their latest commits
|
|
352
|
-
- Reapply sparse-checkout to only fetch `.md` and image files (`.png`, `.jpg`, `.jpeg`, `.gif`, `.svg`)
|
|
353
|
-
- Ensure you have the latest documentation without downloading entire repositories
|
|
354
|
-
|
|
355
|
-
2. **Re-index the documentation (if needed):**
|
|
356
|
-
|
|
357
|
-
```bash
|
|
358
|
-
npm run build
|
|
359
|
-
npm run index-docs
|
|
360
|
-
```
|
|
361
|
-
|
|
362
|
-
3. **Commit the updated submodule references:**
|
|
363
|
-
```bash
|
|
364
|
-
git add .gitmodules src/resources/submodules
|
|
365
|
-
git commit -m "chore: update documentation submodules"
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
### Why This Is Important
|
|
369
|
-
|
|
370
|
-
- **Fresh Documentation**: Ensures RAG indexing uses the latest Appium documentation
|
|
371
|
-
- **Smaller Repository**: Sparse-checkout keeps repository size manageable by only fetching documentation files
|
|
372
|
-
- **Automatic Sync**: Submodules automatically track upstream repository commits
|
|
373
|
-
- **Reproducibility**: Submodule commits are tracked, ensuring consistent documentation across environments
|
|
374
|
-
|
|
375
|
-
See [SUBMODULES.md](../docs/SUBMODULES.md) for detailed information about submodule setup and usage.
|
|
376
|
-
|
|
377
|
-
---
|
|
378
|
-
|
|
379
|
-
---
|
|
380
|
-
|
|
381
|
-
## Formatting Best Practices
|
|
382
|
-
|
|
383
|
-
### Long Descriptions
|
|
384
|
-
|
|
385
|
-
For better readability when descriptions are long, use template literals with proper indentation:
|
|
386
|
-
|
|
387
|
-
**Bad (hard to read):**
|
|
388
|
-
|
|
389
|
-
```typescript
|
|
390
|
-
description: 'REQUIRED: First ASK THE USER which mobile platform they want to use (Android or iOS) before creating a session. DO NOT assume or default to any platform. You MUST explicitly prompt the user to choose between Android or iOS. This is mandatory before proceeding to use the create_session tool.',
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
**Good (readable):**
|
|
394
|
-
|
|
395
|
-
```typescript
|
|
396
|
-
description: `REQUIRED: First ASK THE USER which mobile platform they want to use (Android or iOS) before creating a session.
|
|
397
|
-
DO NOT assume or default to any platform.
|
|
398
|
-
You MUST explicitly prompt the user to choose between Android or iOS.
|
|
399
|
-
This is mandatory before proceeding to use the create_session tool.
|
|
400
|
-
`,
|
|
401
|
-
```
|
|
402
|
-
|
|
403
|
-
### Parameter Descriptions
|
|
404
|
-
|
|
405
|
-
For long parameter descriptions, also use template literals:
|
|
406
|
-
|
|
407
|
-
```typescript
|
|
408
|
-
parameters: z.object({
|
|
409
|
-
platform: z.enum(['ios', 'android']).describe(
|
|
410
|
-
`REQUIRED: Must match the platform the user explicitly selected via the select_platform tool.
|
|
411
|
-
DO NOT default to Android or iOS without asking the user first.`
|
|
412
|
-
),
|
|
413
|
-
});
|
|
414
|
-
```
|
|
415
|
-
|
|
416
|
-
---
|
|
417
|
-
|
|
418
|
-
## Need Help?
|
|
419
|
-
|
|
420
|
-
- Check existing tools in `src/tools/`
|
|
421
|
-
- See examples in `examples/`
|
|
422
|
-
- Open an issue for questions
|
|
423
|
-
|
|
424
|
-
Happy contributing! 🎉
|
package/eslint.config.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import appiumConfig from '@appium/eslint-config-appium-ts';
|
|
2
|
-
|
|
3
|
-
export default [
|
|
4
|
-
...appiumConfig,
|
|
5
|
-
{
|
|
6
|
-
files: ['src/**/*.ts'],
|
|
7
|
-
rules: {
|
|
8
|
-
'no-console': 'off',
|
|
9
|
-
'import/no-named-as-default': 'off',
|
|
10
|
-
'import/no-named-as-default-member': 'off',
|
|
11
|
-
'@typescript-eslint/no-unused-vars': 'off',
|
|
12
|
-
'@typescript-eslint/no-non-null-assertion': 'off',
|
|
13
|
-
'@typescript-eslint/explicit-function-return-type': 'off',
|
|
14
|
-
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
|
15
|
-
'@typescript-eslint/no-explicit-any': 'off',
|
|
16
|
-
'@typescript-eslint/ban-ts-comment': 'off',
|
|
17
|
-
'no-case-declarations': 'off',
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
ignores: ['dist/', 'node_modules/', '*.js'],
|
|
22
|
-
},
|
|
23
|
-
];
|
package/jest.config.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
preset: 'ts-jest/presets/js-with-ts-esm',
|
|
3
|
-
testEnvironment: 'node',
|
|
4
|
-
extensionsToTreatAsEsm: ['.ts'],
|
|
5
|
-
moduleNameMapper: {
|
|
6
|
-
'^(\\.{1,2}/.*)\\.js$': '$1',
|
|
7
|
-
// Mock @appium/support to avoid ESM/CommonJS issues with uuid
|
|
8
|
-
'^@appium/support$': '<rootDir>/src/tests/__mocks__/@appium/support.ts',
|
|
9
|
-
},
|
|
10
|
-
transform: {
|
|
11
|
-
'^.+\\.tsx?$': [
|
|
12
|
-
'ts-jest',
|
|
13
|
-
{
|
|
14
|
-
useESM: true,
|
|
15
|
-
},
|
|
16
|
-
],
|
|
17
|
-
},
|
|
18
|
-
// Add this to ensure Jest can handle ESM
|
|
19
|
-
// Exclude ES modules from transformation
|
|
20
|
-
transformIgnorePatterns: [
|
|
21
|
-
'node_modules/(?!(@xmldom|fast-xml-parser|xpath|uuid)/)',
|
|
22
|
-
],
|
|
23
|
-
};
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { ADB } from 'appium-adb';
|
|
2
|
-
import log from '../logger.js';
|
|
3
|
-
/**
|
|
4
|
-
* Singleton ADB Manager to prevent multiple ADB instances
|
|
5
|
-
* This ensures only one ADB instance per host machine
|
|
6
|
-
*/
|
|
7
|
-
export class ADBManager {
|
|
8
|
-
private static instance: ADBManager;
|
|
9
|
-
private adbInstance: ADB | null = null;
|
|
10
|
-
private isInitialized = false;
|
|
11
|
-
private initializationPromise: Promise<ADB> | null = null;
|
|
12
|
-
|
|
13
|
-
private constructor() {}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Get the singleton instance of ADBManager
|
|
17
|
-
*/
|
|
18
|
-
public static getInstance(): ADBManager {
|
|
19
|
-
if (!ADBManager.instance) {
|
|
20
|
-
ADBManager.instance = new ADBManager();
|
|
21
|
-
}
|
|
22
|
-
return ADBManager.instance;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Initialize ADB instance with configuration
|
|
27
|
-
* @param options ADB configuration options
|
|
28
|
-
* @returns Promise<ADB> The initialized ADB instance
|
|
29
|
-
*/
|
|
30
|
-
public async initialize(
|
|
31
|
-
options: { adbExecTimeout?: number; udid?: string } = {}
|
|
32
|
-
): Promise<ADB> {
|
|
33
|
-
// If already initialized, return existing instance
|
|
34
|
-
if (this.isInitialized && this.adbInstance) {
|
|
35
|
-
log.debug(
|
|
36
|
-
'ADB instance already initialized, returning existing instance'
|
|
37
|
-
);
|
|
38
|
-
return this.adbInstance;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// If initialization is in progress, wait for it
|
|
42
|
-
if (this.initializationPromise) {
|
|
43
|
-
log.debug('ADB initialization in progress, waiting for completion');
|
|
44
|
-
return await this.initializationPromise;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// Start initialization
|
|
48
|
-
this.initializationPromise = this._createADBInstance(options);
|
|
49
|
-
|
|
50
|
-
try {
|
|
51
|
-
this.adbInstance = await this.initializationPromise;
|
|
52
|
-
this.isInitialized = true;
|
|
53
|
-
log.info('ADB instance initialized successfully');
|
|
54
|
-
return this.adbInstance;
|
|
55
|
-
} catch (error) {
|
|
56
|
-
log.error(`Failed to initialize ADB instance: ${error}`);
|
|
57
|
-
this.initializationPromise = null;
|
|
58
|
-
throw error;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Get the current ADB instance
|
|
64
|
-
* @returns ADB instance or null if not initialized
|
|
65
|
-
*/
|
|
66
|
-
public getADBInstance(): ADB | null {
|
|
67
|
-
return this.adbInstance;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Check if ADB is initialized
|
|
72
|
-
* @returns boolean indicating initialization status
|
|
73
|
-
*/
|
|
74
|
-
public isADBInitialized(): boolean {
|
|
75
|
-
return this.isInitialized && this.adbInstance !== null;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Reset the ADB instance (for testing or cleanup)
|
|
80
|
-
*/
|
|
81
|
-
public async reset(): Promise<void> {
|
|
82
|
-
if (this.adbInstance) {
|
|
83
|
-
try {
|
|
84
|
-
// Cleanup any existing ADB instance
|
|
85
|
-
log.info('Resetting ADB instance');
|
|
86
|
-
this.adbInstance = null;
|
|
87
|
-
this.isInitialized = false;
|
|
88
|
-
this.initializationPromise = null;
|
|
89
|
-
} catch (error) {
|
|
90
|
-
log.error(`Error resetting ADB instance: ${error}`);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Create ADB instance with proper error handling
|
|
97
|
-
* @param options ADB configuration options
|
|
98
|
-
* @returns Promise<ADB> The created ADB instance
|
|
99
|
-
*/
|
|
100
|
-
private async _createADBInstance(
|
|
101
|
-
options: { adbExecTimeout?: number; udid?: string } = {}
|
|
102
|
-
): Promise<ADB> {
|
|
103
|
-
const defaultOptions = {
|
|
104
|
-
adbExecTimeout: 60000,
|
|
105
|
-
...options,
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
log.info(
|
|
109
|
-
`Creating ADB instance with options: ${JSON.stringify(defaultOptions)}`
|
|
110
|
-
);
|
|
111
|
-
|
|
112
|
-
try {
|
|
113
|
-
const adb = await ADB.createADB(defaultOptions);
|
|
114
|
-
log.info('ADB instance created successfully');
|
|
115
|
-
return adb;
|
|
116
|
-
} catch (error) {
|
|
117
|
-
log.error(`Failed to create ADB instance: ${error}`);
|
|
118
|
-
throw new Error(`ADB initialization failed: ${error}`);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Get ADB instance for specific device operations
|
|
124
|
-
* This method ensures we reuse the singleton instance
|
|
125
|
-
* @param udid Optional device UDID for device-specific operations
|
|
126
|
-
* @returns Promise<ADB> The ADB instance
|
|
127
|
-
*/
|
|
128
|
-
public async getADBForDevice(udid?: string): Promise<ADB> {
|
|
129
|
-
if (!this.isADBInitialized()) {
|
|
130
|
-
await this.initialize({ udid });
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
if (!this.adbInstance) {
|
|
134
|
-
throw new Error('ADB instance not available');
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
return this.adbInstance;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Global ADB Manager instance
|
|
143
|
-
* Use this throughout the application to access ADB functionality
|
|
144
|
-
*/
|
|
145
|
-
export const adbManager = ADBManager.getInstance();
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Convenience function to get ADB instance
|
|
149
|
-
* @param options ADB configuration options
|
|
150
|
-
* @returns Promise<ADB> The ADB instance
|
|
151
|
-
*/
|
|
152
|
-
export async function getADBInstance(
|
|
153
|
-
options: { adbExecTimeout?: number; udid?: string } = {}
|
|
154
|
-
): Promise<ADB> {
|
|
155
|
-
return await adbManager.getADBForDevice(options.udid);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Convenience function to get existing ADB instance (without initialization)
|
|
160
|
-
* @returns ADB instance or null if not initialized
|
|
161
|
-
*/
|
|
162
|
-
export function getExistingADBInstance(): ADB | null {
|
|
163
|
-
return adbManager.getADBInstance();
|
|
164
|
-
}
|