@appium/mcp-documentation 1.0.3 → 1.0.4
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 +6 -0
- package/package.json +3 -6
- package/src/resources/submodules/appium/.github/PULL_REQUEST_TEMPLATE.md +28 -0
- package/src/resources/submodules/appium/.github/copilot-instructions.md +9 -0
- package/src/resources/submodules/appium/CHANGELOG.md +45 -0
- package/src/resources/submodules/appium/GOVERNANCE.md +189 -0
- package/src/resources/submodules/appium/README.md +221 -0
- package/src/resources/submodules/appium/ROADMAP.md +30 -0
- package/src/resources/submodules/appium/SPONSORS.md +3 -0
- package/src/resources/submodules/appium/docs/README.md +6 -0
- package/src/resources/submodules/appium/docs/payout.md +35 -0
- package/src/resources/submodules/appium/packages/appium/CHANGELOG.md +1547 -0
- package/src/resources/submodules/appium/packages/appium/README.md +221 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/index.md +2 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-appiumconf2024.md +45 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-browserstack-as-strategic-partner.md +46 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-headspin-as-development-partner.md +47 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-lambdatest-as-development-partner.md +36 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-lambdatest-as-strategic-partner.md +42 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-sauce-labs-as-strategic-partner.md +36 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-sponsorship-program.md +48 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/appium3.md +40 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/hello-world.md +15 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/contributing/index.md +150 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-docs.md +86 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-doctor-checks.md +141 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-drivers.md +1002 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-plugins.md +523 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/config-system.md +451 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/index.md +18 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/developing/sensitive.md +49 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/clients.md +132 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/drivers.md +207 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/index.md +45 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/plugins.md +138 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/tools.md +106 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/branch-testing.md +57 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/caching.md +76 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/caps.md +271 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/config.md +98 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/context.md +44 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/event-timing.md +73 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/execute-methods.md +122 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/grid.md +178 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/headers.md +17 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/log-filters.md +86 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/managing-exts.md +87 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/migrating-1-to-2.md +368 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/migrating-2-to-3.md +464 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/security.md +87 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/settings.md +68 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/guides/tls.md +42 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/index.md +59 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/appium.md +202 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/clients.md +127 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/drivers.md +188 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/history.md +196 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/intro/index.md +39 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/index.md +29 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/install.md +50 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/next-steps.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/requirements.md +29 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-dotnet.md +105 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-java.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-js.md +75 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-py.md +60 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-rb.md +83 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/uiauto2-driver.md +144 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/appium.md +394 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/bidi.md +70 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/index.md +30 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/jsonwp.md +214 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/mjsonwp.md +151 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/others.md +736 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/plugins.md +289 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/webdriver.md +1114 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/env-vars.md +31 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/extensions.md +246 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/index.md +36 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/insecure-features.md +24 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/server.md +78 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/setup.md +76 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/index.md +31 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/session/caps.md +56 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/reference/session/index.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/resources/index.md +28 -0
- package/src/resources/submodules/appium/packages/appium/docs/en/sponsors/index.md +69 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/index.md +2 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-appiumconf2024.md +45 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-browserstack-as-strategic-partner.md +46 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-headspin-as-development-partner.md +47 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-lambdatest-as-development-partner.md +34 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-lambdatest-as-strategic-partner.md +41 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-sauce-labs-as-strategic-partner.md +36 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-sponsorship-program.md +48 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/appium3.md +40 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/hello-world.md +15 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/contributing/index.md +158 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-docs.md +86 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-doctor-checks.md +141 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-drivers.md +1010 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-plugins.md +529 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/config-system.md +468 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/index.md +18 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/developing/sensitive.md +49 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/clients.md +143 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/drivers.md +219 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/index.md +45 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/plugins.md +140 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/tools.md +115 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/branch-testing.md +57 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/caching.md +78 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/caps.md +276 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/config.md +102 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/context.md +44 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/event-timing.md +75 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/execute-methods.md +142 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/grid.md +178 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/headers.md +17 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/log-filters.md +86 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/managing-exts.md +89 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/migrating-1-to-2.md +402 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/migrating-2-to-3.md +458 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/security.md +89 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/settings.md +70 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/guides/tls.md +43 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/index.md +55 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/appium.md +191 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/clients.md +139 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/drivers.md +188 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/history.md +196 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/intro/index.md +39 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/index.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/install.md +47 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/next-steps.md +19 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/requirements.md +29 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-dotnet.md +107 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-java.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-js.md +77 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-py.md +63 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-rb.md +85 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/uiauto2-driver.md +148 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/appium.md +395 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/bidi.md +71 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/index.md +30 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/jsonwp.md +215 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/mjsonwp.md +152 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/others.md +737 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/plugins.md +291 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/webdriver.md +1114 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/env-vars.md +31 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/extensions.md +247 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/index.md +36 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/insecure-features.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/server.md +78 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/setup.md +78 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/index.md +31 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/session/caps.md +56 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/reference/session/index.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/resources/index.md +28 -0
- package/src/resources/submodules/appium/packages/appium/docs/ja/sponsors/index.md +66 -0
- 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/overrides/assets/images/sponsor-logo-testmuai-dark.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-testmuai-light.png +0 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/index.md +2 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-appiumconf2024.md +45 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-browserstack-as-strategic-partner.md +46 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-headspin-as-development-partner.md +47 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-lambdatest-as-development-partner.md +34 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-lambdatest-as-strategic-partner.md +41 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-sauce-labs-as-strategic-partner.md +36 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-sponsorship-program.md +48 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/appium3.md +40 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/hello-world.md +15 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/contributing/index.md +132 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-docs.md +86 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-doctor-checks.md +141 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-drivers.md +1010 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-plugins.md +529 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/config-system.md +468 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/index.md +18 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/developing/sensitive.md +49 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/clients.md +143 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/drivers.md +219 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/index.md +45 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/plugins.md +140 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/tools.md +115 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/branch-testing.md +57 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/caching.md +78 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/caps.md +279 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/config.md +102 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/context.md +44 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/event-timing.md +75 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/execute-methods.md +142 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/grid.md +178 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/headers.md +17 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/log-filters.md +86 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/managing-exts.md +89 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/migrating-1-to-2.md +410 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/migrating-2-to-3.md +459 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/security.md +89 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/settings.md +70 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/guides/tls.md +43 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/index.md +54 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/appium.md +91 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/clients.md +100 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/drivers.md +101 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/history.md +72 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/intro/index.md +36 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/index.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/install.md +47 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/next-steps.md +19 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/requirements.md +21 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-dotnet.md +99 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-java.md +20 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-js.md +62 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-py.md +57 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-rb.md +80 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/uiauto2-driver.md +119 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/appium.md +395 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/bidi.md +71 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/index.md +30 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/jsonwp.md +215 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/mjsonwp.md +152 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/others.md +737 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/plugins.md +291 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/webdriver.md +1114 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/env-vars.md +31 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/extensions.md +247 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/index.md +36 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/insecure-features.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/server.md +78 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/setup.md +78 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/index.md +31 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/session/caps.md +56 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/reference/session/index.md +23 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/resources/index.md +28 -0
- package/src/resources/submodules/appium/packages/appium/docs/zh/sponsors/index.md +66 -0
- package/src/resources/submodules/appium/packages/appium/types/manifest/README.md +30 -0
- package/src/resources/submodules/appium/packages/base-driver/CHANGELOG.md +1244 -0
- package/src/resources/submodules/appium/packages/base-driver/README.md +15 -0
- package/src/resources/submodules/appium/packages/base-driver/docs/mjsonwp/errors.md +82 -0
- package/src/resources/submodules/appium/packages/base-driver/docs/mjsonwp/protocol-methods.md +182 -0
- package/src/resources/submodules/appium/packages/base-driver/static/appium.png +0 -0
- package/src/resources/submodules/appium/packages/base-plugin/CHANGELOG.md +764 -0
- package/src/resources/submodules/appium/packages/base-plugin/README.md +15 -0
- package/src/resources/submodules/appium/packages/docutils/CHANGELOG.md +1038 -0
- package/src/resources/submodules/appium/packages/docutils/README.md +27 -0
- package/src/resources/submodules/appium/packages/driver-test-support/CHANGELOG.md +790 -0
- package/src/resources/submodules/appium/packages/driver-test-support/README.md +103 -0
- package/src/resources/submodules/appium/packages/eslint-config-appium-ts/CHANGELOG.md +256 -0
- package/src/resources/submodules/appium/packages/eslint-config-appium-ts/README.md +47 -0
- package/src/resources/submodules/appium/packages/execute-driver-plugin/CHANGELOG.md +671 -0
- package/src/resources/submodules/appium/packages/execute-driver-plugin/README.md +55 -0
- package/src/resources/submodules/appium/packages/fake-driver/CHANGELOG.md +603 -0
- package/src/resources/submodules/appium/packages/fake-driver/README.md +7 -0
- package/src/resources/submodules/appium/packages/fake-driver/lib/screen.png +0 -0
- package/src/resources/submodules/appium/packages/fake-plugin/CHANGELOG.md +780 -0
- package/src/resources/submodules/appium/packages/fake-plugin/README.md +7 -0
- package/src/resources/submodules/appium/packages/images-plugin/CHANGELOG.md +691 -0
- package/src/resources/submodules/appium/packages/images-plugin/README.md +27 -0
- package/src/resources/submodules/appium/packages/images-plugin/docs/find-by-image.md +65 -0
- package/src/resources/submodules/appium/packages/images-plugin/docs/image-comparison.md +203 -0
- 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 +212 -0
- package/src/resources/submodules/appium/packages/logger/README.md +31 -0
- package/src/resources/submodules/appium/packages/opencv/CHANGELOG.md +446 -0
- package/src/resources/submodules/appium/packages/opencv/README.md +68 -0
- 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 +610 -0
- package/src/resources/submodules/appium/packages/plugin-test-support/README.md +49 -0
- package/src/resources/submodules/appium/packages/relaxed-caps-plugin/CHANGELOG.md +209 -0
- package/src/resources/submodules/appium/packages/relaxed-caps-plugin/README.md +35 -0
- package/src/resources/submodules/appium/packages/schema/CHANGELOG.md +308 -0
- package/src/resources/submodules/appium/packages/schema/README.md +50 -0
- package/src/resources/submodules/appium/packages/storage-plugin/CHANGELOG.md +157 -0
- package/src/resources/submodules/appium/packages/storage-plugin/README.md +83 -0
- package/src/resources/submodules/appium/packages/strongbox/CHANGELOG.md +129 -0
- package/src/resources/submodules/appium/packages/strongbox/README.md +110 -0
- package/src/resources/submodules/appium/packages/support/CHANGELOG.md +1147 -0
- package/src/resources/submodules/appium/packages/support/README.md +161 -0
- package/src/resources/submodules/appium/packages/tsconfig/CHANGELOG.md +147 -0
- package/src/resources/submodules/appium/packages/tsconfig/README.md +19 -0
- package/src/resources/submodules/appium/packages/types/CHANGELOG.md +871 -0
- package/src/resources/submodules/appium/packages/types/README.md +21 -0
- package/src/resources/submodules/appium/packages/universal-xml-plugin/CHANGELOG.md +502 -0
- package/src/resources/submodules/appium/packages/universal-xml-plugin/README.md +53 -0
- package/src/resources/submodules/appium/renovate/README.md +55 -0
- package/src/resources/submodules/appium-skills/.github/dependabot.yml +11 -0
- package/src/resources/submodules/appium-skills/.github/workflows/pr-title.yml +10 -0
- package/src/resources/submodules/appium-skills/AGENTS.md +214 -0
- package/src/resources/submodules/appium-skills/LICENSE +201 -0
- package/src/resources/submodules/appium-skills/README.md +33 -0
- package/src/resources/submodules/appium-skills/skills/appium-troubleshooting/SKILL.md +66 -0
- package/src/resources/submodules/appium-skills/skills/appium-troubleshooting/references/community-search.md +51 -0
- package/src/resources/submodules/appium-skills/skills/appium-troubleshooting/references/uiautomator2-locators.md +34 -0
- package/src/resources/submodules/appium-skills/skills/appium-troubleshooting/references/uiautomator2-session-startup.md +53 -0
- package/src/resources/submodules/appium-skills/skills/appium-troubleshooting/references/xcuitest-element-lookup.md +23 -0
- package/src/resources/submodules/appium-skills/skills/appium-troubleshooting/references/xcuitest-locators.md +16 -0
- package/src/resources/submodules/appium-skills/skills/appium-troubleshooting/references/xcuitest-troubleshooting.md +52 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-android/SKILL.md +346 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-bundletool/SKILL.md +91 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-chromium/SKILL.md +260 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-espresso/SKILL.md +216 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-ffmpeg/SKILL.md +91 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-node/SKILL.md +128 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-uiautomator2/SKILL.md +225 -0
- package/src/resources/submodules/appium-skills/skills/environment-setup-xcuitest/SKILL.md +153 -0
- package/src/resources/submodules/appium-skills/skills/xcuitest-real-device-config/SKILL.md +488 -0
- package/src/resources/submodules/appium-uiautomator2-driver/CHANGELOG.md +1506 -0
- package/src/resources/submodules/appium-uiautomator2-driver/README.md +2253 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/actions.md +72 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/activity-startup.md +47 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/android-appbundle.md +69 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/android-mobile-gestures.md +352 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/android-multiwindow.md +872 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/architecture.md +34 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/bidi.md +50 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/capability-sets.md +136 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/mjpeg.md +111 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/scheduled-actions.md +155 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/uiautomator-uiselector.md +51 -0
- package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/main.md +95 -0
- 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 +4 -0
- package/src/resources/submodules/appium-xcuitest-driver/CHANGELOG.md +3373 -0
- package/src/resources/submodules/appium-xcuitest-driver/README.md +55 -0
- 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 +45 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/endpoints-wda.md +61 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/endpoints.md +95 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/device-setup.md +81 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/index.md +36 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/installation.md +38 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/check-prov-prof.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/create-new-project.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/create-single-page.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/no-prov-prof.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/project-prov-prof.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/set-up-bundle.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/untrusted-dev.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/xcode-bundle-id.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/xcode-config.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/xcode-facebook-fail.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/assets/images/xcode-facebook-succeed.png +0 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/auto-config.md +54 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/basic-manual-config.md +40 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/full-manual-config.md +49 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/generic-device-config.md +75 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/provisioning-profile/index.md +117 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/getting-started/system-requirements.md +131 -0
- 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 +43 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/audio-capture.md +78 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/biometric-auth.md +29 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/capability-sets.md +169 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/ci-setup.md +47 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/clipboard.md +47 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/file-transfer.md +147 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/gestures.md +55 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/hybrid.md +137 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/input-events.md +67 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/install-certificate.md +20 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/mjpeg.md +98 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/multiple-xcode-versions.md +37 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/parallel-tests.md +39 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/remotexpc-tunnels-real-devices.md +148 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-prebuilt-wda.md +147 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-preinstalled-wda.md +177 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/tvos.md +246 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/guides/wda-custom-server.md +283 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/index.md +36 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/overview.md +137 -0
- 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 +192 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/capabilities.md +164 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/commands.md +468 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/element-attributes.md +157 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/env-vars.md +18 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/execute-methods.md +2269 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/ios-predicate.md +196 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/locator-strategies.md +107 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/scripts.md +555 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/security-flags.md +28 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/server-args.md +19 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/settings.md +467 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/reference/xpath-extensions.md +167 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/troubleshooting/element-lookup.md +202 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/troubleshooting/index.md +204 -0
- package/src/resources/submodules/appium-xcuitest-driver/docs/troubleshooting/wda-slowness.md +206 -0
- package/src/resources/submodules/appium-xcuitest-driver/test/assets/test.png +0 -0
- package/src/resources/submodules.zip +0 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "environment-setup-node"
|
|
3
|
+
description: "Prepare and validate Node.js and npm environment"
|
|
4
|
+
metadata:
|
|
5
|
+
last_modified: "Thu, 12 Mar 2026 03:45:00 GMT"
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
# environment-setup-node
|
|
9
|
+
|
|
10
|
+
## Goal
|
|
11
|
+
Prepares a stable Node.js and npm environment by validating the active Node runtime, confirming npm availability, and checking basic npm connectivity and health diagnostics.
|
|
12
|
+
|
|
13
|
+
## Decision Logic
|
|
14
|
+
- If `node` is missing or major version is `< 20`: install/upgrade Node.js to active LTS.
|
|
15
|
+
- If a maintained Node version manager exists (`nvm`, `fnm`, `asdf`): use it as the primary way to install/switch Node versions.
|
|
16
|
+
- If no Node version manager is available on Windows: install `fnm` with `winget` and continue non-interactively.
|
|
17
|
+
- If Windows shell cannot find `node` after `fnm` setup: configure PowerShell profile to initialize `fnm`, then open a new terminal (or reload profile).
|
|
18
|
+
- If `npm` is unavailable: repair npm environment before continuing.
|
|
19
|
+
- If `npm ping` fails: resolve registry/network configuration before continuing.
|
|
20
|
+
|
|
21
|
+
## Instructions
|
|
22
|
+
1. **Detect Node version management tools**
|
|
23
|
+
```bash
|
|
24
|
+
command -v nvm || true
|
|
25
|
+
command -v fnm || true
|
|
26
|
+
command -v asdf || true
|
|
27
|
+
```
|
|
28
|
+
Windows PowerShell:
|
|
29
|
+
```powershell
|
|
30
|
+
Get-Command fnm -ErrorAction SilentlyContinue
|
|
31
|
+
Get-Command nvm -ErrorAction SilentlyContinue
|
|
32
|
+
Get-Command winget -ErrorAction SilentlyContinue
|
|
33
|
+
```
|
|
34
|
+
Prefer this order when available: `fnm` / `nvm` / `asdf`.
|
|
35
|
+
If none is available on Windows, install `fnm` non-interactively and continue:
|
|
36
|
+
```powershell
|
|
37
|
+
winget install Schniz.fnm --accept-source-agreements --accept-package-agreements
|
|
38
|
+
```
|
|
39
|
+
Then initialize `fnm` in the current shell:
|
|
40
|
+
```powershell
|
|
41
|
+
$fnmDir = "$env:LOCALAPPDATA\Microsoft\WinGet\Packages\Schniz.fnm_Microsoft.Winget.Source_8wekyb3d8bbwe"
|
|
42
|
+
if (Test-Path $fnmDir) { $env:PATH = "$fnmDir;$env:PATH" }
|
|
43
|
+
fnm env --shell powershell | Invoke-Expression
|
|
44
|
+
fnm install --lts
|
|
45
|
+
fnm use lts-latest
|
|
46
|
+
fnm default lts-latest
|
|
47
|
+
```
|
|
48
|
+
Persist for all new Windows PowerShell sessions (beginner-friendly):
|
|
49
|
+
```powershell
|
|
50
|
+
$profileDir = Split-Path -Parent $PROFILE
|
|
51
|
+
if (-not (Test-Path $profileDir)) { New-Item -ItemType Directory -Force $profileDir | Out-Null }
|
|
52
|
+
if (-not (Test-Path $PROFILE)) { New-Item -ItemType File -Force $PROFILE | Out-Null }
|
|
53
|
+
$fnmDir = "$env:LOCALAPPDATA\Microsoft\WinGet\Packages\Schniz.fnm_Microsoft.Winget.Source_8wekyb3d8bbwe"
|
|
54
|
+
Add-Content $PROFILE "`n# fnm bootstrap"
|
|
55
|
+
Add-Content $PROFILE ('$env:PATH = "{0};$env:PATH"' -f $fnmDir)
|
|
56
|
+
Add-Content $PROFILE 'fnm env --shell powershell | Invoke-Expression'
|
|
57
|
+
```
|
|
58
|
+
Profile location example on Windows PowerShell:
|
|
59
|
+
```powershell
|
|
60
|
+
$PROFILE
|
|
61
|
+
```
|
|
62
|
+
If `npm` is blocked with a script policy error (`npm.ps1 cannot be loaded`), set per-user execution policy:
|
|
63
|
+
```powershell
|
|
64
|
+
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
|
|
65
|
+
```
|
|
66
|
+
Then open a new terminal tab, or reload profile in current terminal:
|
|
67
|
+
```powershell
|
|
68
|
+
. $PROFILE
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
2. **Verify Node and npm availability**
|
|
72
|
+
```bash
|
|
73
|
+
node -v
|
|
74
|
+
npm -v
|
|
75
|
+
```
|
|
76
|
+
Windows PowerShell:
|
|
77
|
+
```powershell
|
|
78
|
+
node -v
|
|
79
|
+
npm -v
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
3. **Validate npm connectivity**
|
|
83
|
+
```bash
|
|
84
|
+
npm ping
|
|
85
|
+
```
|
|
86
|
+
Windows PowerShell:
|
|
87
|
+
```powershell
|
|
88
|
+
npm ping
|
|
89
|
+
```
|
|
90
|
+
Ensure connectivity succeeds before continuing.
|
|
91
|
+
|
|
92
|
+
4. **Validate active Node runtime details**
|
|
93
|
+
```bash
|
|
94
|
+
node -p 'process.versions.node'
|
|
95
|
+
```
|
|
96
|
+
Windows PowerShell:
|
|
97
|
+
```powershell
|
|
98
|
+
node -p "process.versions.node"
|
|
99
|
+
```
|
|
100
|
+
Confirm the runtime is an active LTS release; if not, switch Node version using the detected version manager.
|
|
101
|
+
|
|
102
|
+
5. **Windows troubleshooting quick checks (when `node` is still not found)**
|
|
103
|
+
```powershell
|
|
104
|
+
$PROFILE
|
|
105
|
+
Test-Path $PROFILE
|
|
106
|
+
Get-Content $PROFILE
|
|
107
|
+
Get-Command fnm -ErrorAction SilentlyContinue
|
|
108
|
+
Get-Command node -ErrorAction SilentlyContinue
|
|
109
|
+
```
|
|
110
|
+
If `Get-Command node` is empty, run:
|
|
111
|
+
```powershell
|
|
112
|
+
. $PROFILE
|
|
113
|
+
fnm use lts-latest
|
|
114
|
+
node -v
|
|
115
|
+
npm -v
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
6. **Agent completion criteria**
|
|
119
|
+
Mark complete only when all are true:
|
|
120
|
+
- `node -v` and `npm -v` succeed
|
|
121
|
+
- npm registry connectivity check succeeds (`npm ping`)
|
|
122
|
+
- active Node runtime is an LTS release
|
|
123
|
+
|
|
124
|
+
## Constraints
|
|
125
|
+
- Prefer Node.js LTS versions only.
|
|
126
|
+
- Prefer maintained version-managed Node installations (`fnm`, `nvm`, `asdf`) when available.
|
|
127
|
+
- Avoid using `sudo` in setup commands; prefer user-space tooling when permissions are restricted.
|
|
128
|
+
- Use deterministic terminal checks, not assumptions.
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "environment-setup-uiautomator2"
|
|
3
|
+
description: "Set up and validate a UiAutomator2 Appium environment on Android"
|
|
4
|
+
metadata:
|
|
5
|
+
last_modified: "Mon, 27 Apr 2026 22:00:00 GMT"
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
# appium-uiautomator2-environment-setup
|
|
9
|
+
|
|
10
|
+
## Goal
|
|
11
|
+
Prepares a reliable Appium UiAutomator2 execution environment by installing Node.js and Appium prerequisites, configuring Android and Java dependencies, running Appium doctor checks, and iterating until doctor reports `0 required fixes needed`.
|
|
12
|
+
|
|
13
|
+
## Decision Logic
|
|
14
|
+
- If the host OS is not macOS, Linux, or Windows: stop and ask the user to use a supported OS.
|
|
15
|
+
- If current Node.js does not satisfy `engines.node` for both `appium` and `appium-uiautomator2-driver`: install/upgrade Node.js to a compatible active LTS version.
|
|
16
|
+
- If Appium CLI is not installed: install `appium` globally.
|
|
17
|
+
- Use global npm/Appium commands by default (`npm install -g appium`, `appium ...`).
|
|
18
|
+
- Use local Appium commands (`npx appium ...`) only when the user explicitly requests local execution.
|
|
19
|
+
- If `appium` resolves to an older Node-managed path than the active `node`/`npm` environment, reinstall Appium globally under the active Node runtime before continuing.
|
|
20
|
+
- If Android SDK prerequisites are missing (`adb`, emulator binary, SDK packages): run `environment-setup-android` first.
|
|
21
|
+
- If the user explicitly requests media features that require FFmpeg: run `environment-setup-ffmpeg` before final validation.
|
|
22
|
+
- If the user explicitly requests automatic bundletool setup: run `environment-setup-bundletool` before final validation.
|
|
23
|
+
- Always include host device/emulator inventory in the final skill result (connected devices, emulator version, and AVD list).
|
|
24
|
+
- If the `uiautomator2` driver is not installed: install it via Appium CLI.
|
|
25
|
+
- If install returns "already installed", ignore the error and continue (or run driver update).
|
|
26
|
+
- If `appium driver doctor uiautomator2` reports missing dependencies: resolve each missing item and re-run doctor.
|
|
27
|
+
|
|
28
|
+
## Instructions
|
|
29
|
+
1. **Prepare Node.js + npm environment**
|
|
30
|
+
macOS/Linux:
|
|
31
|
+
```bash
|
|
32
|
+
node -v
|
|
33
|
+
npm -v
|
|
34
|
+
```
|
|
35
|
+
Windows PowerShell:
|
|
36
|
+
```powershell
|
|
37
|
+
node -v
|
|
38
|
+
npm -v
|
|
39
|
+
```
|
|
40
|
+
If `node` is missing, run `environment-setup-node` first (including Windows PowerShell profile bootstrap), then open a new terminal or run `. $PROFILE`, and re-run the commands.
|
|
41
|
+
Windows PowerShell session bootstrap (recommended before any `appium` command in fresh/background terminals):
|
|
42
|
+
```powershell
|
|
43
|
+
$fnmDir = "$env:LOCALAPPDATA\Microsoft\WinGet\Packages\Schniz.fnm_Microsoft.Winget.Source_8wekyb3d8bbwe"
|
|
44
|
+
if (Test-Path $fnmDir) { $env:PATH = "$fnmDir;$env:PATH" }
|
|
45
|
+
fnm env --shell powershell | Invoke-Expression
|
|
46
|
+
fnm use lts-latest
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
2. **Install Appium npm command**
|
|
50
|
+
```bash
|
|
51
|
+
npm install -g appium
|
|
52
|
+
export APPIUM_HOME="$HOME/.appium"
|
|
53
|
+
appium driver install uiautomator2 || appium driver update uiautomator2
|
|
54
|
+
appium driver list --installed --json || appium driver list --installed
|
|
55
|
+
```
|
|
56
|
+
Before installing drivers, ensure `APPIUM_HOME` is writable by the current user. If `appium` fails with an Appium-home writeability error, fix that path or set `APPIUM_HOME` explicitly and retry.
|
|
57
|
+
Prefer `--json` output for machine-readable verification. Confirm a `uiautomator2` key is present; only fallback to plain-text output when `--json` is unsupported.
|
|
58
|
+
If the install command fails only because `uiautomator2` is already installed, continue and do not stop preparation.
|
|
59
|
+
|
|
60
|
+
3. **Validate Appium npm commands and Node compatibility (after driver setup)**
|
|
61
|
+
macOS/Linux:
|
|
62
|
+
```bash
|
|
63
|
+
export APPIUM_HOME="$HOME/.appium"
|
|
64
|
+
appium -v
|
|
65
|
+
appium driver list --installed --json || appium driver list --installed
|
|
66
|
+
npm view appium engines --json
|
|
67
|
+
npm view appium-uiautomator2-driver engines --json
|
|
68
|
+
```
|
|
69
|
+
Windows PowerShell:
|
|
70
|
+
```powershell
|
|
71
|
+
appium -v
|
|
72
|
+
appium driver list --installed --json; if ($LASTEXITCODE -ne 0) { appium driver list --installed }
|
|
73
|
+
npm view appium engines --json
|
|
74
|
+
npm view appium-uiautomator2-driver engines --json
|
|
75
|
+
```
|
|
76
|
+
If current Node.js does not satisfy the reported `engines.node` ranges, install/upgrade Node.js to a compatible active LTS version and re-run the setup checks.
|
|
77
|
+
|
|
78
|
+
4. **Run Android environment prerequisite skill**
|
|
79
|
+
Before UiAutomator2 doctor checks, execute `environment-setup-android` and do not continue until it passes completion criteria.
|
|
80
|
+
|
|
81
|
+
5. **Verify Android prerequisites from this skill context**
|
|
82
|
+
macOS/Linux:
|
|
83
|
+
```bash
|
|
84
|
+
export APPIUM_HOME="$HOME/.appium"
|
|
85
|
+
command -v adb
|
|
86
|
+
adb version
|
|
87
|
+
echo "$ANDROID_HOME"
|
|
88
|
+
ls "$ANDROID_HOME/emulator/emulator"
|
|
89
|
+
test -x "$ANDROID_HOME/emulator/emulator" && echo "emulator binary: OK"
|
|
90
|
+
```
|
|
91
|
+
Windows PowerShell:
|
|
92
|
+
```powershell
|
|
93
|
+
Get-Command adb.exe -ErrorAction SilentlyContinue
|
|
94
|
+
adb.exe version
|
|
95
|
+
$env:ANDROID_HOME
|
|
96
|
+
Test-Path "$env:ANDROID_HOME\emulator\emulator.exe"
|
|
97
|
+
if (Test-Path "$env:ANDROID_HOME\emulator\emulator.exe") { "emulator binary: OK" }
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
6. **Report connected devices and emulator inventory in task result**
|
|
101
|
+
macOS/Linux:
|
|
102
|
+
```bash
|
|
103
|
+
export APPIUM_HOME="$HOME/.appium"
|
|
104
|
+
adb devices -l
|
|
105
|
+
"$ANDROID_HOME/emulator/emulator" -version
|
|
106
|
+
"$ANDROID_HOME/emulator/emulator" -list-avds
|
|
107
|
+
```
|
|
108
|
+
Windows PowerShell:
|
|
109
|
+
```powershell
|
|
110
|
+
adb.exe devices -l
|
|
111
|
+
& "$env:ANDROID_HOME\emulator\emulator.exe" -version
|
|
112
|
+
& "$env:ANDROID_HOME\emulator\emulator.exe" -list-avds
|
|
113
|
+
```
|
|
114
|
+
In the result summary, explicitly state whether emulator preparation was skipped because either connected devices already existed or one/more AVDs already existed.
|
|
115
|
+
|
|
116
|
+
Optional shared dependency:
|
|
117
|
+
- If the user explicitly requests FFmpeg-related capability, run `environment-setup-ffmpeg` before continuing.
|
|
118
|
+
- If the user explicitly requests bundletool installation, run `environment-setup-bundletool` before continuing.
|
|
119
|
+
|
|
120
|
+
7. **Run Appium doctor for UiAutomator2 and fix in a loop**
|
|
121
|
+
```bash
|
|
122
|
+
export APPIUM_HOME="$HOME/.appium"
|
|
123
|
+
appium driver doctor uiautomator2
|
|
124
|
+
```
|
|
125
|
+
Use `0 required fixes needed` as the pass/fail gate. Optional warnings are non-blocking. If required fixes remain, apply targeted fixes and re-run.
|
|
126
|
+
For deterministic automation, parse the doctor output for that exact phrase instead of relying on visual formatting.
|
|
127
|
+
`gst-launch-1.0` / `gst-inspect-1.0` warnings are optional for basic session execution, but recommended if you need screen-streaming features.
|
|
128
|
+
Bash gate example:
|
|
129
|
+
```bash
|
|
130
|
+
DOCTOR_OUT="$(appium driver doctor uiautomator2 2>&1)"
|
|
131
|
+
echo "$DOCTOR_OUT" | grep -q "0 required fixes needed" || { echo "$DOCTOR_OUT"; exit 1; }
|
|
132
|
+
echo "$DOCTOR_OUT" | grep -E "0 required fixes needed|optional fix"
|
|
133
|
+
```
|
|
134
|
+
PowerShell gate example:
|
|
135
|
+
```powershell
|
|
136
|
+
$doctorOut = appium driver doctor uiautomator2 2>&1 | Out-String
|
|
137
|
+
if ($doctorOut -notmatch '0 required fixes needed') { throw "Doctor required fixes remain" }
|
|
138
|
+
$doctorOut | Select-String '0 required fixes needed|optional fix'
|
|
139
|
+
```
|
|
140
|
+
AI-assisted fallback (only if exact phrase matching is inconclusive due output-format changes):
|
|
141
|
+
1. Re-run doctor once and capture full output (`appium driver doctor uiautomator2 2>&1 | tee /tmp/appium-doctor-uiautomator2.log`).
|
|
142
|
+
2. Ask an AI agent to classify required vs optional findings from the captured output.
|
|
143
|
+
3. Accept a pass only when the output clearly indicates zero required issues (for example: no required-fix section and no required-check failures).
|
|
144
|
+
4. If still ambiguous, mark status as `needs-manual-review` and do not mark the skill complete.
|
|
145
|
+
|
|
146
|
+
8. **Start Appium server smoke test**
|
|
147
|
+
```bash
|
|
148
|
+
export APPIUM_HOME="$HOME/.appium"
|
|
149
|
+
appium server
|
|
150
|
+
```
|
|
151
|
+
Windows PowerShell recommended form (for deterministic log checks):
|
|
152
|
+
```powershell
|
|
153
|
+
appium server --log "$env:TEMP\appium-uia2-smoke.log" --log-level info
|
|
154
|
+
```
|
|
155
|
+
Keep this server process running in Terminal A.
|
|
156
|
+
In Terminal B, run:
|
|
157
|
+
```bash
|
|
158
|
+
curl -s http://127.0.0.1:4723/status
|
|
159
|
+
```
|
|
160
|
+
First confirm `/status` responds successfully.
|
|
161
|
+
Windows PowerShell reliable variant (recommended on Windows due to `curl` alias behavior):
|
|
162
|
+
```powershell
|
|
163
|
+
$ok = $false
|
|
164
|
+
for ($i = 0; $i -lt 20; $i++) {
|
|
165
|
+
try {
|
|
166
|
+
$resp = Invoke-RestMethod -Uri "http://127.0.0.1:4723/status" -Method Get -TimeoutSec 5
|
|
167
|
+
if ($resp.value.ready -eq $true) {
|
|
168
|
+
$ok = $true
|
|
169
|
+
$resp | ConvertTo-Json -Depth 5
|
|
170
|
+
break
|
|
171
|
+
}
|
|
172
|
+
} catch {
|
|
173
|
+
Start-Sleep -Milliseconds 500
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
if (-not $ok) { throw "Appium /status did not become ready in time" }
|
|
177
|
+
```
|
|
178
|
+
Then confirm startup/readiness from server logs and ensure the `Available drivers:` block contains `uiautomator2` (for example: `- uiautomator2@7.0.0 (automationName 'UiAutomator2')`).
|
|
179
|
+
If startup banner logs are not available in your terminal integration, use this fallback verification path:
|
|
180
|
+
- `appium driver list --installed --json` includes `uiautomator2`
|
|
181
|
+
- `/status` reports server readiness
|
|
182
|
+
Windows PowerShell log verification example:
|
|
183
|
+
```powershell
|
|
184
|
+
Get-Content "$env:TEMP\appium-uia2-smoke.log" | Select-String "listener started|Available drivers:|uiautomator2@"
|
|
185
|
+
```
|
|
186
|
+
After smoke validation, clean up the running Appium server:
|
|
187
|
+
- In Terminal A, stop the server with `Ctrl+C`.
|
|
188
|
+
- Verify no leftover Appium server process (Terminal B, macOS/Linux):
|
|
189
|
+
```bash
|
|
190
|
+
pgrep -fl "appium.*server" || echo "no appium server process"
|
|
191
|
+
```
|
|
192
|
+
- Verify no leftover Appium server process (Terminal B, Windows PowerShell):
|
|
193
|
+
```powershell
|
|
194
|
+
if (Get-CimInstance Win32_Process | Where-Object { $_.CommandLine -match 'appium.*server' }) {
|
|
195
|
+
Get-CimInstance Win32_Process | Where-Object { $_.CommandLine -match 'appium.*server' } | Select-Object ProcessId, Name, CommandLine
|
|
196
|
+
} else {
|
|
197
|
+
"no appium server process"
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
9. **Agent completion criteria**
|
|
202
|
+
Mark the skill complete only when all are true:
|
|
203
|
+
- `appium driver list --installed --json` includes `uiautomator2` (fallback to `appium driver list --installed` if `--json` is unsupported)
|
|
204
|
+
- `appium -v` succeeds
|
|
205
|
+
- `appium driver doctor uiautomator2` reports `0 required fixes needed` (optional warnings are allowed)
|
|
206
|
+
- task result includes the doctor summary line with required/optional fix counts
|
|
207
|
+
- `environment-setup-android` completion criteria are satisfied
|
|
208
|
+
- task result includes connected-device output (`adb devices -l`) and emulator inventory (`emulator -version`, `emulator -list-avds`)
|
|
209
|
+
- task result explicitly states whether emulator preparation was skipped (and why)
|
|
210
|
+
- `/status` check returns a successful status response (`curl` on macOS/Linux, `Invoke-RestMethod` retry loop recommended on Windows)
|
|
211
|
+
- Appium server logs show startup/readiness successfully after the status check, or (if banner logs are unavailable) readiness is confirmed by `/status` plus JSON driver listing that includes `uiautomator2`
|
|
212
|
+
- If logs are available, `Available drivers:` includes a `uiautomator2` entry
|
|
213
|
+
- Appium smoke-test server process is cleanly stopped after validation
|
|
214
|
+
|
|
215
|
+
## Constraints
|
|
216
|
+
- Always run `appium driver doctor uiautomator2` after each environment change.
|
|
217
|
+
- Use global npm/Appium commands as the default execution mode.
|
|
218
|
+
- Use `npx appium` only if the user explicitly asks for local execution.
|
|
219
|
+
- Do not skip Android prerequisite validation; rely on `environment-setup-android` for source-of-truth checks.
|
|
220
|
+
- Use shell-appropriate commands (`bash` for macOS/Linux, PowerShell/cmd for Windows).
|
|
221
|
+
- Treat optional doctor warnings as non-blocking.
|
|
222
|
+
- Ask the user before installing optional dependencies, and install them only when the user explicitly needs that capability.
|
|
223
|
+
- Prefer deterministic CLI checks over assumptions.
|
|
224
|
+
- If elevated privileges are required, pause and provide exact commands for the user to run.
|
|
225
|
+
- Do not claim success until doctor and smoke-test checks are actually green.
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "environment-setup-xcuitest"
|
|
3
|
+
description: "Set up and validate an XCUITest Appium environment on macOS"
|
|
4
|
+
metadata:
|
|
5
|
+
last_modified: "Mon, 06 Apr 2026 00:00:00 GMT"
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
# appium-xcuitest-environment-setup
|
|
9
|
+
|
|
10
|
+
## Goal
|
|
11
|
+
Prepares a stable Appium XCUITest execution environment on macOS by validating Node.js and Appium installation, installing and validating Xcode toolchains, and iterating Appium doctor checks until doctor reports `0 required fixes needed`.
|
|
12
|
+
|
|
13
|
+
## Decision Logic
|
|
14
|
+
- If host OS is not macOS: stop and tell the user this skill only supports macOS.
|
|
15
|
+
- If Xcode is missing or command line tools are unconfigured: install/configure them before continuing.
|
|
16
|
+
- If current Node.js does not satisfy `engines.node` for both `appium` and `appium-xcuitest-driver`: install/upgrade Node.js to a compatible active LTS version.
|
|
17
|
+
- If Appium CLI or `xcuitest` driver is missing: install them via Appium CLI.
|
|
18
|
+
- Use global npm/Appium commands by default (`npm install -g appium`, `appium ...`).
|
|
19
|
+
- Use local Appium commands (`npx appium ...`) only when the user explicitly requests local execution.
|
|
20
|
+
- If the user explicitly requests media features that require FFmpeg: run `environment-setup-ffmpeg` before final validation.
|
|
21
|
+
- If install returns "already installed", ignore the error and continue (or run driver update).
|
|
22
|
+
- If `appium driver doctor xcuitest` reports missing dependencies: fix each reported dependency and re-run doctor.
|
|
23
|
+
|
|
24
|
+
## Instructions
|
|
25
|
+
1. **Prepare Node.js + npm environment on macOS**
|
|
26
|
+
```bash
|
|
27
|
+
sw_vers
|
|
28
|
+
node -v
|
|
29
|
+
npm -v
|
|
30
|
+
```
|
|
31
|
+
If `node` is missing, install a compatible active LTS release and re-run the commands.
|
|
32
|
+
|
|
33
|
+
2. **Install Appium npm command and XCUITest driver**
|
|
34
|
+
```bash
|
|
35
|
+
npm install -g appium
|
|
36
|
+
appium driver install xcuitest || appium driver update xcuitest
|
|
37
|
+
appium driver list --installed --json || appium driver list --installed
|
|
38
|
+
```
|
|
39
|
+
Prefer `--json` output for machine-readable verification. Confirm an `xcuitest` key is present; only fallback to plain-text output when `--json` is unsupported.
|
|
40
|
+
If the install command fails only because `xcuitest` is already installed, continue and do not stop preparation.
|
|
41
|
+
|
|
42
|
+
3. **Validate Appium npm commands and Node compatibility (after driver setup)**
|
|
43
|
+
```bash
|
|
44
|
+
appium -v
|
|
45
|
+
appium driver list --installed --json || appium driver list --installed
|
|
46
|
+
npm view appium engines --json
|
|
47
|
+
npm view appium-xcuitest-driver engines --json
|
|
48
|
+
```
|
|
49
|
+
If current Node.js does not satisfy the reported `engines.node` ranges, install/upgrade Node.js to a compatible active LTS version and re-run the setup checks.
|
|
50
|
+
|
|
51
|
+
4. **Verify Xcode command line setup and license**
|
|
52
|
+
First validate Xcode availability:
|
|
53
|
+
```bash
|
|
54
|
+
xcodebuild -version
|
|
55
|
+
```
|
|
56
|
+
If version info is returned, continue without changing `xcode-select`.
|
|
57
|
+
If version info is not returned, check the selected developer path:
|
|
58
|
+
```bash
|
|
59
|
+
xcode-select -p
|
|
60
|
+
```
|
|
61
|
+
If the selected path does not contain `Contents/Developer`, try setting it to the default Xcode app path:
|
|
62
|
+
```bash
|
|
63
|
+
xcode-select --switch /Applications/Xcode.app/Contents/Developer
|
|
64
|
+
```
|
|
65
|
+
Re-validate:
|
|
66
|
+
```bash
|
|
67
|
+
xcodebuild -version
|
|
68
|
+
xcode-select -p
|
|
69
|
+
```
|
|
70
|
+
Then ensure license and first-launch tasks are complete (use privilege escalation only if prompted/required):
|
|
71
|
+
```bash
|
|
72
|
+
sudo xcodebuild -license accept
|
|
73
|
+
xcodebuild -runFirstLaunch
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
5. **Optional helper tools**
|
|
77
|
+
Install additional iOS helper tools only if the user explicitly requests capabilities that require them.
|
|
78
|
+
- For FFmpeg-related capabilities, run `environment-setup-ffmpeg`.
|
|
79
|
+
|
|
80
|
+
6. **Run Appium doctor for XCUITest and fix in a loop**
|
|
81
|
+
```bash
|
|
82
|
+
appium driver doctor xcuitest
|
|
83
|
+
```
|
|
84
|
+
Use `0 required fixes needed` as the pass/fail gate. Optional warnings are non-blocking. Resolve required fixes, then re-run until this gate is met.
|
|
85
|
+
For deterministic automation, parse the doctor output for that exact phrase instead of relying on visual formatting.
|
|
86
|
+
`applesimutils` warnings are optional for basic simulator session creation, but recommended when you need permission-management helper APIs.
|
|
87
|
+
Bash gate example:
|
|
88
|
+
```bash
|
|
89
|
+
DOCTOR_OUT="$(appium driver doctor xcuitest 2>&1)"
|
|
90
|
+
echo "$DOCTOR_OUT" | grep -q "0 required fixes needed" || { echo "$DOCTOR_OUT"; exit 1; }
|
|
91
|
+
echo "$DOCTOR_OUT" | grep -E "0 required fixes needed|optional fix"
|
|
92
|
+
```
|
|
93
|
+
PowerShell gate example:
|
|
94
|
+
```powershell
|
|
95
|
+
$doctorOut = appium driver doctor xcuitest 2>&1 | Out-String
|
|
96
|
+
if ($doctorOut -notmatch '0 required fixes needed') { throw "Doctor required fixes remain" }
|
|
97
|
+
$doctorOut | Select-String '0 required fixes needed|optional fix'
|
|
98
|
+
```
|
|
99
|
+
AI-assisted fallback (only if exact phrase matching is inconclusive due output-format changes):
|
|
100
|
+
1. Re-run doctor once and capture full output (`appium driver doctor xcuitest 2>&1 | tee /tmp/appium-doctor-xcuitest.log`).
|
|
101
|
+
2. Ask an AI agent to classify required vs optional findings from the captured output.
|
|
102
|
+
3. Accept a pass only when the output clearly indicates zero required issues (for example: no required-fix section and no required-check failures).
|
|
103
|
+
4. If still ambiguous, mark status as `needs-manual-review` and do not mark the skill complete.
|
|
104
|
+
|
|
105
|
+
7. **Optional simulator readiness preflight**
|
|
106
|
+
Before smoke testing, you may verify simulator availability to reduce false failures in session creation:
|
|
107
|
+
```bash
|
|
108
|
+
xcrun simctl list devices
|
|
109
|
+
```
|
|
110
|
+
If required by your flow, boot a target simulator before session creation.
|
|
111
|
+
|
|
112
|
+
8. **Start Appium server smoke test**
|
|
113
|
+
```bash
|
|
114
|
+
appium server
|
|
115
|
+
```
|
|
116
|
+
Keep this server process running in Terminal A.
|
|
117
|
+
In Terminal B, run:
|
|
118
|
+
```bash
|
|
119
|
+
curl -s http://127.0.0.1:4723/status
|
|
120
|
+
```
|
|
121
|
+
First confirm `/status` responds successfully from `curl`.
|
|
122
|
+
Then confirm readiness from server logs and ensure the `Available drivers:` block contains `xcuitest` (for example: `- xcuitest@10.23.3 (automationName 'XCUITest')`).
|
|
123
|
+
If startup banner logs are not available in your terminal integration, use this fallback verification path:
|
|
124
|
+
- `appium driver list --installed --json` includes `xcuitest`
|
|
125
|
+
- `/status` reports server readiness
|
|
126
|
+
After smoke validation, clean up the running Appium server:
|
|
127
|
+
- In Terminal A, stop the server with `Ctrl+C`.
|
|
128
|
+
- Verify no leftover Appium server process (Terminal B):
|
|
129
|
+
```bash
|
|
130
|
+
pgrep -fl "appium.*server" || echo "no appium server process"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
9. **Agent completion criteria**
|
|
134
|
+
Mark the skill complete only when all are true:
|
|
135
|
+
- `appium driver list --installed --json` includes `xcuitest` (fallback to `appium driver list --installed` if `--json` is unsupported)
|
|
136
|
+
- `appium -v` succeeds
|
|
137
|
+
- `appium driver doctor xcuitest` reports `0 required fixes needed` (optional warnings are allowed)
|
|
138
|
+
- task result includes the doctor summary line with required/optional fix counts
|
|
139
|
+
- `curl -s http://127.0.0.1:4723/status` returns a successful status response
|
|
140
|
+
- Appium server logs show startup/readiness successfully after the curl check, or (if banner logs are unavailable) readiness is confirmed by `/status` plus JSON driver listing that includes `xcuitest`
|
|
141
|
+
- If logs are available, `Available drivers:` includes an `xcuitest` entry
|
|
142
|
+
- Appium smoke-test server process is cleanly stopped after validation
|
|
143
|
+
|
|
144
|
+
## Constraints
|
|
145
|
+
- This skill is macOS-only; do not provide Linux/Windows alternatives.
|
|
146
|
+
- Use global npm/Appium commands as the default execution mode.
|
|
147
|
+
- Use `npx appium` only if the user explicitly asks for local execution.
|
|
148
|
+
- Always re-run `appium driver doctor xcuitest` after every fix.
|
|
149
|
+
- Treat optional doctor warnings as non-blocking.
|
|
150
|
+
- Ask the user before installing optional dependencies, and install them only when explicitly needed.
|
|
151
|
+
- Do not skip Xcode license and first-launch checks.
|
|
152
|
+
- If privileged commands are required, pause and provide the exact command for user execution.
|
|
153
|
+
- Do not report readiness until doctor and smoke tests pass.
|