{
  "name": "agent-device",
  "version": "0.19.3",
  "description": "Agent-native CLI for AI app automation across iOS, Android, tvOS, Android TV, macOS, Linux, and web.",
  "mcpName": "io.github.callstackincubator/agent-device",
  "license": "MIT",
  "author": "Callstack",
  "homepage": "https://agent-device.dev/",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/callstack/agent-device.git"
  },
  "bugs": {
    "url": "https://github.com/callstack/agent-device/issues"
  },
  "type": "module",
  "packageManager": "pnpm@11.1.2",
  "main": "dist/src/index.js",
  "types": "dist/src/index.d.ts",
  "exports": {
    ".": {
      "import": "./dist/src/index.js",
      "types": "./dist/src/index.d.ts"
    },
    "./io": {
      "import": "./dist/src/io.js",
      "types": "./dist/src/io.d.ts"
    },
    "./artifacts": {
      "import": "./dist/src/artifacts.js",
      "types": "./dist/src/artifacts.d.ts"
    },
    "./metro": {
      "import": "./dist/src/metro.js",
      "types": "./dist/src/metro.d.ts"
    },
    "./batch": {
      "import": "./dist/src/batch.js",
      "types": "./dist/src/batch.d.ts"
    },
    "./remote-config": {
      "import": "./dist/src/remote-config.js",
      "types": "./dist/src/remote-config.d.ts"
    },
    "./install-source": {
      "import": "./dist/src/install-source.js",
      "types": "./dist/src/install-source.d.ts"
    },
    "./android-adb": {
      "import": "./dist/src/android-adb.js",
      "types": "./dist/src/android-adb.d.ts"
    },
    "./contracts": {
      "import": "./dist/src/contracts.js",
      "types": "./dist/src/contracts.d.ts"
    },
    "./selectors": {
      "import": "./dist/src/selectors.js",
      "types": "./dist/src/selectors.d.ts"
    },
    "./finders": {
      "import": "./dist/src/finders.js",
      "types": "./dist/src/finders.d.ts"
    }
  },
  "engines": {
    "node": ">=22.12"
  },
  "bin": {
    "agent-device": "bin/agent-device.mjs"
  },
  "scripts": {
    "build": "tsdown",
    "clean:daemon": "node --experimental-strip-types scripts/clean-daemon.ts",
    "daemon:state-dir": "node --experimental-strip-types scripts/print-daemon-state-dir.ts",
    "explain:command": "node --experimental-strip-types scripts/explain-command.ts",
    "clean:xcuitest": "node scripts/clean-xcuitest-derived.mjs",
    "clean:xcuitest:ios": "node scripts/clean-xcuitest-derived.mjs ios",
    "clean:xcuitest:macos": "node scripts/clean-xcuitest-derived.mjs macos",
    "clean:xcuitest:tvos": "node scripts/clean-xcuitest-derived.mjs tvos",
    "clean:xcuitest:visionos": "node scripts/clean-xcuitest-derived.mjs visionos",
    "build:node": "pnpm build && pnpm clean:daemon",
    "build:xcuitest": "pnpm build:xcuitest:ios && pnpm build:xcuitest:macos",
    "build:xcuitest:ios": "AGENT_DEVICE_XCUITEST_PLATFORM=ios sh ./scripts/build-xcuitest-apple.sh",
    "build:xcuitest:ios:clean": "pnpm clean:xcuitest:ios && pnpm build:xcuitest:ios",
    "build:xcuitest:macos": "AGENT_DEVICE_XCUITEST_PLATFORM=macos sh ./scripts/build-xcuitest-apple.sh",
    "build:xcuitest:tvos": "AGENT_DEVICE_XCUITEST_PLATFORM=tvos sh ./scripts/build-xcuitest-apple.sh",
    "build:xcuitest:tvos:clean": "pnpm clean:xcuitest:tvos && pnpm build:xcuitest:tvos",
    "build:xcuitest:visionos": "AGENT_DEVICE_XCUITEST_PLATFORM=visionos sh ./scripts/build-xcuitest-apple.sh",
    "build:xcuitest:visionos:clean": "pnpm clean:xcuitest:visionos && pnpm build:xcuitest:visionos",
    "build:android-snapshot-helper": "sh ./scripts/build-android-snapshot-helper.sh $(node -p \"require('./package.json').version\") .tmp/android-snapshot-helper",
    "package:android-snapshot-helper": "sh ./scripts/package-android-snapshot-helper.sh $(node -p \"require('./package.json').version\") v$(node -p \"require('./package.json').version\") .tmp/android-snapshot-helper",
    "package:android-snapshot-helper:npm": "rm -rf android-snapshot-helper/dist && sh ./scripts/package-android-snapshot-helper.sh $(node -p \"require('./package.json').version\") v$(node -p \"require('./package.json').version\") android-snapshot-helper/dist",
    "package:apple-runner:npm": "node scripts/package-apple-runner-source.mjs",
    "build:android-multitouch-helper": "sh ./scripts/build-android-multitouch-helper.sh $(node -p \"require('./package.json').version\") .tmp/android-multitouch-helper",
    "package:android-multitouch-helper": "sh ./scripts/package-android-multitouch-helper.sh $(node -p \"require('./package.json').version\") .tmp/android-multitouch-helper",
    "package:android-multitouch-helper:npm": "rm -rf android-multitouch-helper/dist && sh ./scripts/package-android-multitouch-helper.sh $(node -p \"require('./package.json').version\") android-multitouch-helper/dist",
    "build:android": "pnpm package:android-snapshot-helper:npm && pnpm package:android-multitouch-helper:npm",
    "build:macos-helper": "swift build -c release --package-path macos-helper",
    "build:all": "pnpm build:node && pnpm build:xcuitest",
    "ad": "node bin/agent-device.mjs",
    "bench:help-conformance": "node scripts/help-conformance-bench.mjs",
    "size": "node scripts/size-report.mjs",
    "size:markdown": "node scripts/size-report.mjs --json .tmp/size-report.json --markdown .tmp/size-report.md",
    "perf": "node --experimental-strip-types scripts/perf/run.ts",
    "perf:ios": "node --experimental-strip-types scripts/perf/run.ts --platform ios",
    "perf:android": "node --experimental-strip-types scripts/perf/run.ts --platform android",
    "lint": "oxlint . --deny-warnings",
    "format": "node ./node_modules/oxfmt/bin/oxfmt --write src test skills package.json tsconfig.json tsconfig.lib.json tsdown.config.ts vitest.config.ts .github/actions/setup-node-pnpm/action.yml .oxlintrc.json .oxfmtrc.json '!test/skillgym/.skillgym-results/**'",
    "format:check": "node ./node_modules/oxfmt/bin/oxfmt --check src test skills package.json tsconfig.json tsconfig.lib.json tsdown.config.ts vitest.config.ts .github/actions/setup-node-pnpm/action.yml .oxlintrc.json .oxfmtrc.json '!test/skillgym/.skillgym-results/**'",
    "fallow": "fallow audit --base origin/main",
    "fallow:all": "fallow --summary",
    "fallow:baseline": "(fallow dead-code --save-baseline fallow-baselines/dead-code.json --summary || true) && (fallow health --save-baseline fallow-baselines/health.json --summary || true)",
    "check:fallow": "fallow audit",
    "check:affected": "node --experimental-strip-types scripts/check-affected/run.ts",
    "check:affected:test": "node --experimental-strip-types --test scripts/check-affected/model.test.ts scripts/check-affected/run.test.ts",
    "check:layering": "node --experimental-strip-types --test scripts/layering/model.test.ts && node --experimental-strip-types scripts/layering/check.ts",
    "check:layering:baseline": "node --experimental-strip-types scripts/layering/check.ts --update-baseline",
    "check:production-exports": "fallow dead-code --config fallow-production-exports.json --production --unused-exports --baseline fallow-baselines/production-unused-exports.json --fail-on-issues",
    "check:production-exports:baseline": "fallow dead-code --config fallow-production-exports.json --production --unused-exports --save-baseline fallow-baselines/production-unused-exports.json --summary",
    "check:quick": "pnpm lint && pnpm typecheck",
    "sync:mcp-metadata": "node scripts/sync-mcp-metadata.mjs",
    "check:mcp-metadata": "node scripts/sync-mcp-metadata.mjs --check",
    "version": "node scripts/sync-mcp-metadata.mjs && git add server.json",
    "check:tooling": "pnpm lint && pnpm typecheck && pnpm check:layering && pnpm check:production-exports && pnpm check:mcp-metadata && pnpm build",
    "check:unit": "pnpm test:unit && pnpm test:smoke",
    "check": "pnpm check:tooling && pnpm check:fallow && pnpm check:unit",
    "prepack": "pnpm check:mcp-metadata && pnpm build:all && pnpm package:apple-runner:npm && pnpm package:android-snapshot-helper:npm && pnpm package:android-multitouch-helper:npm",
    "typecheck": "tsc -p tsconfig.json",
    "test-app:install": "pnpm install --dir examples/test-app --ignore-workspace",
    "test-app:start": "pnpm --dir examples/test-app start",
    "test-app:ios": "pnpm --dir examples/test-app ios",
    "test-app:android": "pnpm --dir examples/test-app android",
    "test-app:typecheck": "pnpm --dir examples/test-app typecheck",
    "test-app:replay:ios": "pnpm ad test examples/test-app/replays --platform ios --artifacts-dir .tmp/test-app-replay/ios",
    "test-app:replay:android": "pnpm ad test examples/test-app/replays --platform android --artifacts-dir .tmp/test-app-replay/android",
    "test-app:maestro": "node scripts/run-test-app-maestro-suite.mjs",
    "test-app:maestro:ios": "node scripts/run-test-app-maestro-suite.mjs --platform ios",
    "test-app:maestro:android": "node scripts/run-test-app-maestro-suite.mjs --platform android",
    "test": "vitest run --project unit-core --project android-adb",
    "test:unit": "vitest run --project unit-core --project android-adb",
    "test:coverage": "vitest run --coverage",
    "test:integration:provider": "vitest run --project provider-integration",
    "test:integration:progress": "node --experimental-strip-types scripts/integration-progress.ts",
    "test:integration:progress:check": "node --experimental-strip-types scripts/integration-progress.ts --check",
    "test:output-economy": "vitest run --project output-economy",
    "test:smoke:web": "pnpm build && node --test test/integration/smoke-web-platform.test.ts",
    "test:skillgym": "node test/skillgym/runner-environment.ts && pnpm build && skillgym run ./test/skillgym/suites/agent-device-smoke-suite.ts --config ./test/skillgym/skillgym.config.ts",
    "test:skillgym:case": "node test/skillgym/runner-environment.ts && pnpm build && skillgym run ./test/skillgym/suites/agent-device-smoke-suite.ts --config ./test/skillgym/skillgym.config.ts --case",
    "test:smoke": "node --test test/integration/smoke-*.test.ts",
    "test:integration:node": "node --test test/integration/*.test.ts",
    "test:integration": "pnpm test:integration:node && pnpm test:integration:provider",
    "test:replay:ios": "node --experimental-strip-types src/bin.ts test test/integration/replays/ios/simulator",
    "test:replay:ios-device": "node --experimental-strip-types src/bin.ts test test/integration/replays/ios/device",
    "test:replay:android": "node --experimental-strip-types src/bin.ts test test/integration/replays/android",
    "test:replay:macos": "node --experimental-strip-types src/bin.ts test test/integration/replays/macos",
    "test:replay:linux": "node --experimental-strip-types src/bin.ts test test/integration/replays/linux"
  },
  "files": [
    "bin",
    "dist",
    "macos-helper",
    "!macos-helper/**/.build",
    "android-snapshot-helper/dist",
    "!android-snapshot-helper/dist/*.idsig",
    "!android-snapshot-helper/README.md",
    "android-multitouch-helper/dist",
    "!android-multitouch-helper/dist/*.idsig",
    "!android-multitouch-helper/README.md",
    "src/platforms/linux/atspi-dump.py",
    "skills",
    "server.json",
    "smithery.yaml",
    "README.md",
    "LICENSE"
  ],
  "keywords": [
    "agent",
    "device",
    "cli",
    "automation",
    "adb",
    "simctl",
    "devicectl",
    "ios",
    "android",
    "tvos",
    "macos",
    "web",
    "browser",
    "react-native",
    "observability",
    "diagnostics",
    "network",
    "profiling",
    "performance",
    "mcp",
    "model-context-protocol",
    "mcp-server",
    "ai-agent",
    "mobile-automation",
    "ios-simulator",
    "android-emulator",
    "xcuitest",
    "e2e-testing",
    "cursor",
    "claude-code",
    "expo",
    "mobile-testing",
    "qa-automation",
    "ai-testing",
    "ios-automation",
    "android-automation",
    "simulator",
    "emulator",
    "appium",
    "maestro",
    "detox"
  ],
  "dependencies": {
    "yaml": "^2.9.0"
  },
  "devDependencies": {
    "@types/node": "^22.19.21",
    "typescript": "^7.0.2",
    "@vitest/coverage-v8": "4.1.8",
    "fallow": "^2.95.0",
    "oxc-parser": "^0.138.0",
    "oxfmt": "^0.42.0",
    "oxlint": "^1.69.0",
    "skillgym": "^0.9.1",
    "tsdown": "^0.22.4",
    "vite": "^8.0.16",
    "vitest": "^4.1.8"
  }
}
