feat: add Roku WebDriver provider

Closed
TH
3mo ago
+1176-26

Summary

Add a Roku WebDriver provider for LAN Roku devices.

  • Adds connect roku profile support with --roku-webdriver-url and --roku-device-ip, plus web-instance lease backend plumbing.
  • Implements Roku WebDriver session allocation, launch, source snapshots, ECP TV remote input, close/release cleanup, and conservative web-TV capability gating.
  • Covers CLI/profile parsing, capability gating, and a provider-scenario daemon flow using a fake Roku WebDriver/ECP server.

Validation

  • pnpm format
  • pnpm exec vitest run src/cli/parser/__tests__ src/utils/__tests__/command-schema-guards.test.ts src/__tests__/cloud-connect-profile.test.ts src/__tests__/remote-connection.test.ts src/core/__tests__/capabilities.test.ts src/core/__tests__/capability-plugin-routing-parity.test.ts test/integration/provider-scenarios/roku-webdriver-runtime.test.ts
  • pnpm typecheck
  • pnpm build
  • pnpm test:smoke
  • pnpm check:unit unit projects passed once; a rerun hit an unrelated Apple runner slow-test timeout under host load, and the timed-out tests passed in isolation with pnpm exec vitest run src/platforms/apple/core/__tests__/runner-client.test.ts src/platforms/apple/core/__tests__/index.test.ts --testNamePattern "ensureXctestrun rebuilds after cached macOS runner repair failure|screenshotIos retries simulator capture timeouts and eventually succeeds"